{"version":3,"sources":["webpack:///../node_modules/@syncfusion/ej2-dropdowns/src/multi-select/multi-select.js"],"names":["extendStatics","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","FOCUS","HIDE_LIST","CHIP","MultiSelect","_super","option","element","_this","call","clearIconWidth","previousFilterText","storedSelectAllHeight","isUpdateHeaderHeight","isUpdateFooterHeight","isBlurDispatching","isFilterPrevented","isFilteringAction","isVirtualReorder","isValidKey","selectAllEventData","selectAllEventEle","preventSetCurrentData","isSelectAllLoop","scrollFocusStatus","keyDownStatus","enableRTL","state","overAllWrapper","classList","add","remove","popupObj","enableRtl","dataBind","requiredModules","modules","enableVirtualization","push","args","member","mode","isGroupChecking","enableGroupCheckBox","prevOnChange","isProtectedOnChange","enableSelectionOrder","allowCustomValue","hideSelectedItem","closePopupOnSelect","updateHTMLAttribute","keys","htmlAttributes","_i","_a","htmlAttr","updatedClassValue","replace","trim","split","popupWrapper","enable","placeholder","inputElement","setAttribute","setProperties","refreshPlaceHolder","indexOf","hiddenElement","updateReadonly","removeAttribute","updateClearButton","overAllClear","parentNode","style","display","componentWrapper","appendChild","updateCssClass","cssClass","updatedCssClassValues","updateOldPropCssClass","oldClass","onPopupShown","e","isDevice","allowFiltering","proxy_1","window","onpopstate","hidePopup","focus","history","pushState","eventArgs","popup","event","cancel","animation","name","duration","trigger","focusAtFirstListItem","document","body","fields","groupBy","updateListItems","list","querySelectorAll","mainList","showDropDownIcon","refreshPopup","renderReactTemplates","show","zIndex","isReact","setTimeout","popupHeight","popupHeightValue","parseInt","headerTemplate","header","listHeight","maxHeight","offsetHeight","toString","footerTemplate","footer","id","updateAriaActiveDescendant","isFirstClick","loadTemplate","showSelectAll","clickHandler","updateVirtualReOrderList","isCheckBoxUpdate","query","getForQuery","value","clone","dataSource","resetList","selectedListData","UpdateSkeleton","liCollections","li","virtualItemCount","itemCount","totalItemCount","querySelector","getElementsByClassName","GetVirtualTrackHeight","virualElement","createElement","className","cssText","getTransformValues","listItems","mainListItems","findGroupStart","deselectHeader","refreshListItems","reOrderList","removeChild","removeFocus","notify","module","isPreventScrollAction","setScrollPosition","allowObjectBinding","valueEle","findListElement","ulElement","scrollBottom","undefined","focusedItem","isKeyBoardAction","isOpen","elements","disabled","viewPortInfo","startIndex","addListFocus","focusAtLastListItem","data","activeElement","ignoreCase","item","isPopupOpen","index","getAriaAttributes","updateListARIA","disableStatus","ensureAriaDisabled","status","attr","removelastSelection","chipCollectionWrapper","getAttribute","tempValues","slice","customValue","getDataByValue","getFormattedValue","removeValue","removeChipSelection","updateDelimeter","delimiterChar","makeTextBoxEmpty","listData","refreshSelection","checkPlaceholderSize","removeSelectedChip","onActionFailure","renderPopup","targetElement","targetInputElement","valuecheck","isCheckbox","predicate","field","isPrimitiveData","startindex","endindex","endIndex","or","where","isaddNonPresentItems","and","adaptor","getQuery","onActionComplete","isUpdated","virtualGroupDataSource","count","every","itemValue","some","val","innerHTML","skeletonCount","updateSelectElementData","splice","presentItemValue","addNonPresentItems","updateActionList","isCustomRendered","text","ignoreAccent","checkForCustomValue","remoteCustomValue","disableGroupHeader","mainData","cloneNode","mainListCollection","inputFocus","tempQuery","keyCode","unwireListEvents","wireListEvents","setInitialValue","selectAllAction","setDynValue","initialTextUpdate","initialValueUpdate","initialUpdate","changeOnBlur","updateValueState","beforePopupOpen","selected","previousSibling","previousElementSibling","contains","group","nextElementSibling","hideGroupItem","listEle","parentElement","l10nUpdate","noData","checkSelectAll","checkMaxSelection","element1","j","temp","temp1","getValidLi","liElement","groupItemLength","listItem","searchCount","searchActiveCount","maximumSelectionLength","virtualSelectAll","openClick","openOnClick","showPopup","keyUp","isWordCharacter","String","fromCharCode","match","ctrlKey","expandTextbox","showOverAllClear","search","filter","isFiltered","remoteFilterAction","dataUpdater","filterQuery","customFilterQuery","virtualFilterQuery","filterAction","dataType","typeOfData","typeof","isClearAllAction","filterType","take","requiresCount","takeValue","getTakeValue","isReOrder","isSkip","queryElements","queries","getModuleName","condition","operator","fn","queryTakeValue","nos","skip","virtualItemStartIndex","isIncrementalRequest","incrementalEndIndex","Math","round","outerHeight","listItemHeight","isDataFetched","isNoData","backCommand","isReordered","scrollTop","previousStartIndex","virtualListInfo","component","contentElement","getFilteringSkeletonCount","allowResize","setResize","dataChecks","getValueByText","customData","dataItem_1","random","emptyObject_1","firstItem","forEach","virtualCustomData","tempData","JSON","parse","stringify","virtualCustomSelectData","concat","isCustomDataUpdated","tempCount","virtualItemEndIndex","isNaN","parseFloat","isRemoteSelection","getNgDirective","wrapperClick","keyboardEvent","enabled","readonly","preventDefault","onBlurHandler","eve","isDocClickFromCheck","isAngular","relatedTarget","floatLabelType","isIE","addTagOnBlur","listLiElement","updateListSelection","updateDataList","updateDelimView","dispatchEvent","focused","removeChipFocus","refreshInputHight","createSpanElement","calculateWidth","elementWidth","clientWidth","getComputedStyle","paddingRight","downIconWidth","dropIcon","offsetWidth","marginRight","setPlaceholderSize","searchWrapper","width","validateValues","newValue","oldValue","sort","newVal","oldVal","initStatus","isInteracted","preventChange","updateTempValue","selectedValueInfo","pageUpSelection","steps","isVirtualKeyAction","collection","previousItem","getIndexByValue","previousFocusItem","pageDownSelection","getItems","render","focusInHandler","showDelimWrapper","viewWrapper","delimiterWrapper","hideDelimWrapper","size","codePoint","charCodeAt","sizeMultiplier","mobFilter","calcPopupWidth","refreshPosition","resolveCollision","checkTextLength","popupKeyActions","updatePopupPosition","updateAriaAttribute","filterInput","homeNavigation","isHome","updateVirtualItemIndex","scrollEle","updateSelectionList","selectedItem","getElementByValue","handleVirtualKeyboardActions","pageCount","activeIndex","arrowDown","arrowUp","isMouseScrollAction","isScrollChanged","onKeyDown","isPreventKeyAction","altKey","getPageCount","selectByKey","spaceKeySelection","escapeAction","keyNavigation","checkBackCommand","moveByList","keyAction","focuseElem","focusFirstListItem","selectAllParent","li_1","moveBy","selectListByKey","hideOverAllClear","selectedLI","isInitialSelection","isInitial","selectedListMargin","marginBottom","isUpwardScrolling","virtualListCount","lastElementValue","selectedLiOffsetTop","offsetTop","currentOffset","nextBottom","nextOffset","isScrollerCHanged","boxRange","fixedHeaderElement","currentElementValue","liCount","isVirtualScrolling","isScrollerAtEnd","scrollHeight","firstElementValue","isPageUpKeyAction","scrollTo","clientHeight","limit","isValidLI","firstElementChild","lastElementChild","isFilterData","textContent","selectAllItem","selectAllCheckBox","childNodes","renderItems","updateInitialData","isVirtualTrackHeight","selectedElem","addChipSelection","currentChip","moveByTop","filterInputClassName","position","currentFocuedListElement","updateCheck","isVirtualElement","elementIndex","focusedLi","isDisabledElement","listItems_1","liItem","chipClick","elem","onChipRemove","which","button","customVal","setFloatLabelType","removeAllItems","isClearAll","mainElement","indexOfObjectInArray","removeVal","invokeCheckboxSelection","currentValue","updateMainList","updateChipStatus","isSelectAll","targetEle","element_1","val_1","itemData","removeIndex","isRemoveSelection","currentRemoveValue","currentText","currentValue_1","hideElement","currentValue_2","scrollStop","removeChip","targetEle_1","currentTarget","isSelectAllTarget","items","isChecked","clearAllCallback","isArray","totalItemsCount","element2","setWidth","objectToFind","array","_loop_1","state_1","addValue","isObjectInArray","getOverflowVal","updateWrapperText","textValues","addListSelection","addChip","activeItems","inactiveItems","dispatchSelect","isNotTrigger","dataValue","val_2","isServerRendered","updateListSelectEventCallback","getChip","closeElements","onMobileChipInteraction","chipElem","chipClose","multiCompiler","multiselectTemplate","checkTemplate","exception","encodeHtmlEntities","input","chip","attrs","chipContent","valueTemplate","valueCompTemp","valueTemplateId","isStringTemplate","enableHtmlSanitizer","innerText","setClass","classes","isPreventChange","showClearButton","popupWidth","mouseIn","mouseOut","listOption","iconCss","fieldProperty","properties","listCurrentOptions","showIcon","ariaAttributes","groupItemRole","checkboxFilter","filterParent","overAllHeight","visibility","setHeaderTemplate","setFooterTemplate","selectAllHeight","popupElement","searchBoxHeight","targetType","X","Y","relateTo","collision","offsetY","close","unwireScrollEvents","checkboxFilterInput","blur","open","wireScrollEvents","offsets","top","targetExitViewport","checkCollision","popupContentElement","isDeviceFullScreen","popupEle","marginTop","headercheck","headerTemplateId","onListMouseDown","footercheck","footerTemplateId","currentData","selectData","currentPageNumber","direction","sentinelInfo","previousEndIndex","remoteDataCount","dataCount","getSkeletonCount","clearAll","selectAllItems","selectedElementID","checkAndResetCache","isClearAllItem","preventSelection","stopPropagation","windowResize","resetValueHandler","formElement","textVal","tagName","wireEvent","onInput","pasteHandler","info","isRequesting","eventArgs_1","preventDefaultAction","updateData","isCustomFiltering","type","updatingincrementalindex","incrementalStartIndex","updateIncrementalInfo","updateIncrementalView","incrementalLiCollections","preRender","initializeData","updateDataAttribute","getLocaleName","initial","isInitialVirtualData","delim","out_index_1","valueLength","hiddenElementContent","_loop_2","valueItem","this_1","listValue","isDynamicRemoteVirtualData","getTextByValue","item_1","lastChild","state_2","isChipRemove","addValidInputClass","textArr","renderList","isEmptyData","noRecordsTemplate","childElementCount","removeListSelection","isCustomData","includes","indexItem","noDataEle","addItem","replaceChild","updateActionCompleteData","updateAddItemList","isDynamicGroupItemUpdate","isReactTemplateUpdate","children","isAngularTemplateUpdate","itemTemplate","removeHover","temp_1","fieldValue","data_1","newData","selectedItems","selectItems","hoveredItem","hover","mainlist","addListHover","delimChar","onMouseClick","visibleListElements","actualCount","virtualListHeight","floor","groupValues","findGroupAttrtibutes","updateCheckBox","listElement","checked","unChecked","groupHeader","checkBoxElement","isDisabled","disableListItem","onMouseOver","currentLi","onMouseLeave","onDocumentClick","focusIn","focusOut","showSpinner","spinnerElement","filterClear","CLOSEICON_CLASS","hideSpinner","wrapperType","wrapperData","tempIndex","wrapperleng","remaining","overAllContainer","l10nLocale","actionFailureTemplate","overflowCountTemplate","totalCountTemplate","l10n","locale","getConstant","remainContent","totalContent","raminElement","remainCompildTemp","remainSize","checkClearIconWidth","paddingLeft","join","totalWidth","updateRemainTemplate","updateRemainWidth","updateRemainingText","firstChild","nodeType","nodeValue","remainTemp","totalTemp","pop","newTemp","unWireEvent","resizingWireEvent","resizePopup","stopResizing","resizingUnWireEvent","groupTemplate","selectionLimit","focusedElement","textboxValueUpdate","updateValue","virtualSelectionAll","virtualSelectAllData","firstItems","createListItems","fragment_1","createDocumentFragment","node","concatenatedNodeList","map","obj","updatedataValueItems","updateHiddenElement","virtualTrackElement","virtualContentElement","beforeSelectArgs","preventSelectEvent","index_1","count_1","virtualSelectAllState","CurrentEvent","isVirtualSelectAll","hiddenValue","wrapperText","isRemoveAll","setZIndex","updateDataSource","prop","onLoadSelect","getPersistData","addOnPersist","onPropertyChanged","newProp","oldProp","isDynamicDataChange","setUpdateInitial","destroy","isDisabledItemByIndex","updateVal","removeDisabledItemsValue","filterBarPlaceholder","height","dropDownIcon","reInitializePoup","removeScrollEvent","msProps","getPropObject","newProperty","oldProperty","dataSourceCount","checkvalue","executeQuery","then","result","isInitRemoteVirtualData","itemIndex","animModel","delay","typedValue","hide","resizer","boxSizing","paddingBottom","startResizing","mainLiLength","liLength","updatevirtualizationList","checkValue","selectAll","clear","SEARCHBOX_WRAPPER","DELIMITER_VIEW","spellcheck","autocomplete","tabindex","role","hasAttribute","insertBefore","opacity","validationAttribute","updateVirtualizationProperties","getListHeight","checkInitialValue","renderComplete","toLowerCase","resizeWidth","resizeHeight","isResizing","clientX","MouseEvent","touches","clientY","originalWidth","originalHeight","originalMouseX","originalMouseY","dx","dy","max","minWidth_1","minWidth","minHeight_1","minHeight","listParent","listParentHeight","getBoundingClientRect","ceil","dataIndex","indexValue","isData","options","optionsElement","valueCol","textCol","optionsLen","opt","listItems_2","executeLocal","checkAutoFocus","disableItem","HTMLLIElement","parsedData","clearTemplate","selectElement","attrArray"],"mappings":"2FAAA,sCACMA,EADN,oFAAIC,GACED,EAAgB,SAAUE,EAAGC,GAQ/B,OAPAH,EAAgBI,OAAOC,gBAAkB,CACvCC,UAAW,cACAC,OAAS,SAAUL,EAAGC,GACjCD,EAAEI,UAAYH,IACX,SAAUD,EAAGC,GAChB,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MAEhCN,EAAGC,IAEnB,SAAUD,EAAGC,GAElB,SAASO,IACPC,KAAKC,YAAcV,EAFrBF,EAAcE,EAAGC,GAIjBD,EAAEW,UAAkB,OAANV,EAAaC,OAAOU,OAAOX,IAAMO,EAAGG,UAAYV,EAAEU,UAAW,IAAIH,KAG/EK,EAAwC,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAEEjB,EAFEkB,EAAIC,UAAUC,OAChBC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOf,OAAOoB,yBAAyBP,EAAQC,GAAOC,EAE7F,GAAuB,iBAAZM,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASV,EAAYC,EAAQC,EAAKC,QAAW,IAAK,IAAIQ,EAAIX,EAAWM,OAAS,EAAGK,GAAK,EAAGA,KAASzB,EAAIc,EAAWW,MAAIJ,GAAKH,EAAI,EAAIlB,EAAEqB,GAAKH,EAAI,EAAIlB,EAAEe,EAAQC,EAAKK,GAAKrB,EAAEe,EAAQC,KAASK,GAC/Q,OAAOH,EAAI,GAAKG,GAAKnB,OAAOwB,eAAeX,EAAQC,EAAKK,GAAIA,GAiB1DM,EAAQ,gBAKRC,EAAY,kBAGZC,EAAO,UA+CPC,EAA2B,SAAUC,GASvC,SAASD,EAAYE,EAAQC,GAC3B,IAAIC,EAAQH,EAAOI,KAAK1B,KAAMuB,EAAQC,IAAYxB,KAiBlD,OAhBAyB,EAAME,eAAiB,EACvBF,EAAMG,mBAAqB,GAC3BH,EAAMI,sBAAwB,EAC9BJ,EAAMK,sBAAuB,EAC7BL,EAAMM,sBAAuB,EAC7BN,EAAMO,mBAAoB,EAC1BP,EAAMQ,mBAAoB,EAC1BR,EAAMS,mBAAoB,EAC1BT,EAAMU,kBAAmB,EACzBV,EAAMW,YAAa,EACnBX,EAAMY,mBAAqB,GAC3BZ,EAAMa,kBAAoB,GAC1Bb,EAAMc,uBAAwB,EAC9Bd,EAAMe,iBAAkB,EACxBf,EAAMgB,mBAAoB,EAC1BhB,EAAMiB,eAAgB,EACfjB,EAk3LT,OA54LAnC,EAAU+B,EAAaC,GA4BvBD,EAAYnB,UAAUyC,UAAY,SAAUC,GACtCA,EACF5C,KAAK6C,eAAeC,UAAUC,IAlEpB,SAoEV/C,KAAK6C,eAAeC,UAAUE,OApEpB,SAsERhD,KAAKiD,WACPjD,KAAKiD,SAASC,UAAYN,EAC1B5C,KAAKiD,SAASE,aAGlB9B,EAAYnB,UAAUkD,gBAAkB,WACtC,IAAIC,EAAU,GAOd,GANIrD,KAAKsD,sBACPD,EAAQE,KAAK,CACXC,KAAM,CAACxD,MACPyD,OAAQ,kBAGM,aAAdzD,KAAK0D,KAAqB,CAE5B,GADA1D,KAAK2D,gBAAkB3D,KAAK4D,oBACxB5D,KAAK4D,oBAAqB,CAC5B,IAAIC,EAAe7D,KAAK8D,oBACxB9D,KAAK8D,qBAAsB,EAC3B9D,KAAK+D,sBAAuB,EAC5B/D,KAAK8D,oBAAsBD,EAE7B7D,KAAKgE,kBAAmB,EACxBhE,KAAKiE,kBAAmB,EACxBjE,KAAKkE,oBAAqB,EAC1Bb,EAAQE,KAAK,CACXE,OAAQ,oBACRD,KAAM,CAACxD,QAGX,OAAOqD,GAEThC,EAAYnB,UAAUiE,oBAAsB,WAC1C,GAAI1E,OAAO2E,KAAKpE,KAAKqE,gBAAgB1D,OACnC,IAAK,IAAI2D,EAAK,EAAGC,EAAK9E,OAAO2E,KAAKpE,KAAKqE,gBAAiBC,EAAKC,EAAG5D,OAAQ2D,IAAM,CAC5E,IAAIE,EAAWD,EAAGD,GAClB,OAAQE,GACN,IAAK,QAED,IAAIC,EAAoBzE,KAAKqE,eAAe,GAAKG,GAAUE,QAAQ,OAAQ,KAAKC,OACtD,KAAtBF,IACF,YAAS,CAACzE,KAAK6C,gBAAiB4B,EAAkBG,MAAM,MACxD,YAAS,CAAC5E,KAAK6E,cAAeJ,EAAkBG,MAAM,OAExD,MAEJ,IAAK,WACH5E,KAAK8E,QAAO,GACZ,MACF,IAAK,cACE9E,KAAK+E,cACR/E,KAAKgF,aAAaC,aAAaT,EAAUxE,KAAKqE,eAAe,GAAKG,IAClExE,KAAKkF,cAAc,CACjBH,YAAa/E,KAAKgF,aAAaD,cAC9B,GACH/E,KAAKmF,sBAEP,MACF,QAEsB,CAAC,MAGHC,QAAQZ,IAAa,EACnCxE,KAAKwB,QAAQyD,aAAaT,EAAUxE,KAAKqE,eAAe,GAAKG,IACvB,IAA7BA,EAASY,QAAQ,SAJT,CAAC,OAAQ,WAAY,gBAAiB,QAICA,QAAQZ,IAAa,EAC7ExE,KAAKqF,cAAcJ,aAAaT,EAAUxE,KAAKqE,eAAe,GAAKG,IAJjD,CAAC,QAAS,OAAQ,QAAS,SAKtBY,QAAQZ,IAAa,EAC5CxE,KAAK6C,eAAeoC,aAAaT,EAAUxE,KAAKqE,eAAe,GAAKG,IAC9C,SAAbA,GAAwB,YAAkBxE,KAAKgF,eACxDhF,KAAKgF,aAAaC,aAAaT,EAAUxE,KAAKqE,eAAe,GAAKG,OAQhFnD,EAAYnB,UAAUoF,eAAiB,SAAU1C,GAC1C,YAAkB5C,KAAKgF,gBACtBpC,GAAuB,aAAd5C,KAAK0D,KAChB1D,KAAKgF,aAAaC,aAAa,WAAY,QAE3CjF,KAAKgF,aAAaO,gBAAgB,cAIxClE,EAAYnB,UAAUsF,kBAAoB,SAAU5C,GAC9CA,GACE5C,KAAKyF,aAAaC,WACpB1F,KAAKyF,aAAaE,MAAMC,QAAU,GAElC5F,KAAK6F,iBAAiBC,YAAY9F,KAAKyF,cAEzCzF,KAAK6F,iBAAiB/C,UAAUE,OAlKhB,uBAoKhBhD,KAAKyF,aAAaE,MAAMC,QAAU,OAClC5F,KAAK6F,iBAAiB/C,UAAUC,IArKhB,uBAwKpB1B,EAAYnB,UAAU6F,eAAiB,WACrC,IAAK,YAAkB/F,KAAKgG,WAA+B,KAAlBhG,KAAKgG,SAAiB,CAC7D,IAAIC,EAAwBjG,KAAKgG,SAEH,MAD9BC,EAAwBjG,KAAKgG,SAAStB,QAAQ,OAAQ,KAAKC,UAEzD,YAAS,CAAC3E,KAAK6C,gBAAiBoD,EAAsBrB,MAAM,MAC5D,YAAS,CAAC5E,KAAK6E,cAAeoB,EAAsBrB,MAAM,SAIhEvD,EAAYnB,UAAUgG,sBAAwB,SAAUC,GACjD,YAAkBA,IAA0B,KAAbA,GAEjB,MADjBA,EAAWA,EAASzB,QAAQ,OAAQ,KAAKC,UAEvC,aAAY,CAAC3E,KAAK6C,gBAAiBsD,EAASvB,MAAM,MAClD,aAAY,CAAC5E,KAAK6E,cAAesB,EAASvB,MAAM,QAItDvD,EAAYnB,UAAUkG,aAAe,SAAUC,GAC7C,IAAI5E,EAAQzB,KACZ,GAAI,IAAQsG,UAA0B,aAAdtG,KAAK0D,MAAuB1D,KAAKuG,eAAgB,CAEvE,IAAIC,EAAUxG,KACdyG,OAAOC,WAAa,WAClBF,EAAQG,YACRH,EAAQxB,aAAa4B,SAEvBC,QAAQC,UAAU,GAAI,IAExB,IAIIC,EAAY,CACdC,MAAOhH,KAAKiD,SACZgE,MAAOZ,EACPa,QAAQ,EACRC,UARc,CACdC,KAAM,SACNC,SAAU,MAQZrH,KAAKsH,QAAQ,OAAQP,GAAW,SAAUA,GACnCA,EAAUG,SACbzF,EAAM8F,sBAAqB,GACvB9F,EAAMwB,UACRuE,SAASC,KAAK3B,YAAYrE,EAAMwB,SAASzB,SAExB,aAAfC,EAAMiC,MAAuBjC,EAAMmC,sBAAwB,YAAkBnC,EAAMiG,OAAOC,UAC5FlG,EAAMmG,gBAAgBnG,EAAMoG,KAAKC,iBAAiB,kBAAmBrG,EAAMsG,SAASD,iBAAiB,oBAEpF,aAAfrG,EAAMiC,MAAuBjC,EAAMuG,mBACrC,YAAS,CAACvG,EAAMoB,gBAAiB,CAjNvB,gBAmNZpB,EAAMwG,eACNxG,EAAMyG,uBACFzG,EAAMwB,UACRxB,EAAMwB,SAASkF,KAAKpB,EAAUI,UAA4B,MAAjB1F,EAAM2G,OAAkB3G,EAAMD,QAAU,MAE/EC,EAAM4G,SACRC,YAAW,WACT,GAAI7G,EAAM8G,aAAe9G,EAAMoG,MAA8B,SAAtBpG,EAAM8G,YAAwB,CACnE,IAAIC,EAAgD,iBAAtB/G,EAAM8G,YAA2BE,SAAShH,EAAM8G,YAAa,IAAM9G,EAAM8G,YACvG,IAAK9G,EAAMK,sBAAwBL,EAAMiH,gBAAkBjH,EAAMkH,OAAQ,CACvE,IAAIC,EAA4C,KAA/BnH,EAAMoG,KAAKlC,MAAMkD,UAAmBL,EAAmBC,SAAShH,EAAMoG,KAAKlC,MAAMkD,UAAW,IAC7GpH,EAAMoG,KAAKlC,MAAMkD,WAAaD,EAAanH,EAAMkH,OAAOG,cAAcC,WAAa,KACnFtH,EAAMK,sBAAuB,EAE/B,IAAKL,EAAMM,sBAAwBN,EAAMuH,gBAAkBvH,EAAMwH,OAAQ,CACnEL,EAA4C,KAA/BnH,EAAMoG,KAAKlC,MAAMkD,UAAmBL,EAAmBC,SAAShH,EAAMoG,KAAKlC,MAAMkD,UAAW,IAC7GpH,EAAMoG,KAAKlC,MAAMkD,WAAaD,EAAanH,EAAMwH,OAAOH,cAAcC,WAAa,KACnFtH,EAAMM,sBAAuB,MAGhC,IAEL,YAAWN,EAAMuD,aAAc,CAC7B,gBAAiB,OACjB,YAAavD,EAAMD,QAAQ0H,GAAK,SAChC,gBAAiBzH,EAAMD,QAAQ0H,KAEjCzH,EAAM0H,6BACF1H,EAAM2H,eACH3H,EAAM6B,sBACT7B,EAAM4H,gBAGS,aAAf5H,EAAMiC,MAAuBjC,EAAM6H,eACrC,IAAavG,IAAItB,EAAMwB,SAASzB,QAAS,QAASC,EAAM8H,aAAc9H,QAK9EJ,EAAYnB,UAAUsJ,yBAA2B,SAAUC,GACzD,IAAIC,EAAQ1J,KAAK2J,YAAY3J,KAAK4J,OAAO,GAAMC,QAc/C,GAbA7J,KAAKmC,kBAAmB,EACpBnC,KAAKsD,sBAAwBtD,KAAK8J,sBAAsB,IAC1D9J,KAAK+J,UAAU/J,KAAKgK,iBAAkBhK,KAAK0H,OAAQgC,GAEnD1J,KAAK+J,UAAU/J,KAAK8J,WAAY9J,KAAK0H,OAAQgC,GAE/C1J,KAAKmC,kBAAmB,EACxBnC,KAAKiK,iBACLjK,KAAKkK,cAAgBlK,KAAK6H,KAAKC,iBAAiB,IAAM,IAAoBqC,IAC1EnK,KAAKoK,iBAAmBpK,KAAKqK,UACX,aAAdrK,KAAK0D,OACP1D,KAAKsK,eAAiBtK,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAKsK,eAAiBtK,KAAK4J,MAAMjJ,OAASX,KAAKsK,gBAEpGtK,KAAK6H,KAAK0C,cAAc,kBAS3BvK,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAAG7E,MAAQ3F,KAAKyK,4BATpB,CAC9C,IAAIC,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,kBAEbF,EAAc/E,MAAMkF,QAAU7K,KAAKyK,wBACnCzK,KAAK6E,aAAa0F,cAAc,mBAAmBzE,YAAY4E,GAK7D1K,KAAK6H,KAAK0C,cAAc,4BAE1BvK,KAAK6H,KAAK2C,uBAAuB,yBAAyB,GAAG7E,MAAQ3F,KAAK8K,sBAExErB,GACFzJ,KAAKqJ,gBAGThI,EAAYnB,UAAU0H,gBAAkB,SAAUmD,EAAWC,GAC3D,IAAK,IAAIhK,EAAI,EAAGA,EAAI+J,EAAUpK,OAAQK,IACpChB,KAAKiL,eAAeF,EAAU/J,IAC9BhB,KAAKiL,eAAeD,EAAchK,IAEpChB,KAAKkL,kBAEP7J,EAAYnB,UAAUmJ,aAAe,WAEnC,GADArJ,KAAKmL,iBAAiB,MAClBnL,KAAKsD,sBAAwBtD,KAAK6H,MAAsB,aAAd7H,KAAK0D,KAAqB,CACtE,IAAI0H,EAAcpL,KAAK6H,KAAKC,iBAAiB,cAAc,GACvD9H,KAAK6H,KAAK0C,cAAc,2BAA6Ba,GACvDpL,KAAK6H,KAAK0C,cAAc,0BAA0Bc,YAAYD,GAGhD,aAAdpL,KAAK0D,MACP1D,KAAKsL,cAEPtL,KAAKuL,OAAO,UAAW,CACrBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACb2C,EAAGrG,OAELA,KAAKyL,uBAAwB,GAE/BpK,EAAYnB,UAAUwL,kBAAoB,WACxC,KAAM1L,KAAKiE,kBAAkC,aAAdjE,KAAK0D,MAAqC,aAAd1D,KAAK0D,OAAwB1D,KAAK+D,wBAA0B,YAAkB/D,KAAK4J,QAAU5J,KAAK4J,MAAMjJ,OAAS,EAAG,CAC7K,IAAIiJ,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,IAAMX,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,GAC3JiL,EAAW5L,KAAK6L,gBAAgB7L,KAAKiE,iBAAmBjE,KAAK8L,UAAY9L,KAAK6H,KAAM,KAAM,aAAc+B,GACvG,YAAkBgC,IACrB5L,KAAK+L,aAAaH,OAAUI,GAAW,EAAO,MAAM,GAGxD,GAAIhM,KAAKsD,qBAAsB,CAC7B,IAAI2I,EAAcjM,KAAK6H,KAAK0C,cAAc,IAAM,IAAoB3D,OACpE5G,KAAKkM,kBAAmB,EACxBlM,KAAK+L,aAAaE,OAAaD,GAAW,EAAO,MAAM,KAG3D3K,EAAYnB,UAAUqH,qBAAuB,SAAU4E,GACrD,GAAInM,KAAK8L,WAAa9L,KAAK8L,UAAUvB,cAAc,MAAQ,IAAoBJ,IAAK,CAClF,IAeYiC,EAfR5K,OAAU,EACd,GAAkB,aAAdxB,KAAK0D,KAEP,YADA1D,KAAKsL,cAGDtL,KAAKsD,qBACHtD,KAAK0H,OAAO2E,UACd7K,EAAUxB,KAAK8L,UAAUvB,cAAc,MAAQ,IAAoBJ,GAA5B,gEACnCgC,GAAUnM,KAAKsM,cAAiD,IAAjCtM,KAAKsM,aAAaC,aAEnD/K,GADI4K,EAAWpM,KAAK8L,UAAUhE,iBAAiB,MAAQ,IAAoBqC,GAA5B,iDACzBiC,EAASzL,OAAS,EAAIyL,EAAS,GAAK5K,KAG5DA,EAAUxB,KAAK8L,UAAUvB,cAAc,MAAQ,IAAoBJ,GAA5B,+CACnCgC,GAAUnM,KAAKsM,cAAiD,IAAjCtM,KAAKsM,aAAaC,aAEnD/K,GADI4K,EAAWpM,KAAK8L,UAAUhE,iBAAiB,MAAQ,IAAoBqC,GAA5B,iDACzBiC,EAASzL,OAAS,EAAIyL,EAAS,GAAK5K,IAK5DA,EADExB,KAAK0H,OAAO2E,SACJrM,KAAK8L,UAAUvB,cAAc,MAAQ,IAAoBJ,GAAK,SAAWhJ,EAA5C,sBAE7BnB,KAAK8L,UAAUvB,cAAc,MAAQ,IAAoBJ,GAAK,SAAWhJ,EAAY,KAIrF,OAAZK,IACFxB,KAAKsL,cACLtL,KAAKwM,aAAahL,MAIxBH,EAAYnB,UAAUuM,oBAAsB,SAAUC,GACpD,IAAIC,EACJ,GAAID,EACFC,EAAgB,YAAOD,EAAM1M,KAAKkK,cAAe,aAAclK,KAAK4M,iBAEpE,GAAI5M,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAQ,CACnC,IAAIiJ,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,IAAMX,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,GAC/J,YAAOiJ,EAAO5J,KAAKkK,cAAe,aAAclK,KAAK4M,iBAErDD,EAAgB,KAGhBA,GAAwC,OAAvBA,EAAcE,OACjC7M,KAAKwM,aAAaG,EAAcE,QAC3B7M,KAAKgE,kBAAoBhE,KAAKuG,iBAAmBvG,KAAK8M,eAAiB9M,KAAKkE,qBAAuBlE,KAAKsD,sBAAwBtD,KAAKkE,qBAAuBlE,KAAKsD,uBACpKtD,KAAK+L,aAAaY,EAAcE,KAAMF,EAAcI,SAI1D1L,EAAYnB,UAAU8M,kBAAoB,WAMxC,MALqB,CACnB,gBAAiB,QACjB,KAAQ,WACR,gBAAiB,UAIrB3L,EAAYnB,UAAU+M,eAAiB,WAChC,YAAkBjN,KAAK8L,YAC1B,YAAW9L,KAAK8L,UAAW,CACzB,GAAM9L,KAAKwB,QAAQ0H,GAAK,WACxB,KAAQ,UACR,cAAe,QACf,aAAc,SAGlB,IAAIgE,IAAiB,YAAkBlN,KAAKgF,gBAAiBhF,KAAKgF,aAAaqH,UAC1ErM,KAAK8M,eAAkB,YAAkB9M,KAAKgF,eACjD,YAAWhF,KAAKgF,aAAchF,KAAKgN,qBAEjCE,GACF,YAAWlN,KAAKgF,aAAc,CAC5B,gBAAiB,SAGrBhF,KAAKmN,mBAAmBD,EAAgB,OAAS,UAEnD7L,EAAYnB,UAAUiN,mBAAqB,SAAUC,GACnD,GAAIpN,KAAKqE,gBAAkBrE,KAAKqE,eAAe,iBAAkB,CAC/D,IAAIgJ,EAAOrN,KAAKqE,eAChB,YAAOgJ,EAAM,CACX,gBAAiBD,GAChBC,GACHrN,KAAKkF,cAAc,CACjBb,eAAgBgJ,IACf,KAGPhM,EAAYnB,UAAUoN,oBAAsB,SAAUjH,GAEpD,GAAqB,OADFrG,KAAKuN,sBAAsBhD,cAAc,wBAC5D,CAIA,IAAI6B,EAAWpM,KAAKuN,sBAAsBzF,iBAAiB,QAAU1G,GACjEwI,EAAQwC,EAASA,EAASzL,OAAS,GAAG6M,aAAa,cAClD,YAAkBxN,KAAK4J,SAC1B5J,KAAKyN,YAAazN,KAAK2L,mBAAqB3L,KAAK4J,MAAM8D,UAEzD,IAAIC,EAAc3N,KAAK2L,mBAAqB3L,KAAK4N,eAAe5N,KAAK6N,kBAAkBjE,IAAU5J,KAAK6N,kBAAkBjE,GACpH5J,KAAKgE,mBAA+B,UAAV4F,IAAqC,IAAhB+D,IAA0B,YAAkBA,IAA2C,QAA3BA,EAAY5E,cACzH4E,EAAc/D,GAEhB5J,KAAK8N,YAAYH,EAAatH,GAC9BrG,KAAK+N,sBACL/N,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GACzCrG,KAAKkO,mBACDlO,KAAK+H,UAAY/H,KAAKmO,UACxBnO,KAAKoO,mBAEPpO,KAAKqO,4BAnBHrO,KAAKsO,mBAAmBjI,IAqB5BhF,EAAYnB,UAAUqO,gBAAkB,SAAUlI,GAChD/E,EAAOpB,UAAUqO,gBAAgB7M,KAAK1B,KAAMqG,GAC5CrG,KAAKwO,cACLxO,KAAKoG,gBAEP/E,EAAYnB,UAAUuO,cAAgB,WAQpC,OAPAzO,KAAK0O,mBAAqB1O,KAAKgF,aACb,aAAdhF,KAAK0D,MAAuB1D,KAAKuG,gBACnCvG,KAAKuL,OAAO,gBAAiB,CAC3BC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,OAGV1D,KAAK0O,mBAAmB9E,OAEjCvI,EAAYnB,UAAUyJ,YAAc,SAAUgF,EAAYC,GACxD,IAAIC,EACAC,EAAQ9O,KAAK+O,gBAAkB,GAAK/O,KAAK0H,OAAOkC,MACpD,GAAI5J,KAAKsD,sBAAwBqL,EAAY,CAC3C,GAAIC,EAAY,CAGd,IAFA,IAAII,EAAahP,KAAKsM,aAAaC,WAC/B0C,EAAWD,EAAahP,KAAKsM,aAAa4C,UAAYP,EAAWhO,QAAUgO,EAAWK,EAAahP,KAAKsM,aAAa4C,UAAYF,EAAahP,KAAKsM,aAAa4C,SAAWP,EAAWhO,OACjLK,EAAIgO,EAAYhO,EAAIiO,EAAUjO,IAAK,CAC1C,IAAI4I,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI+E,EAAW3N,IAAM2N,EAAW3N,GAErH6N,EADE7N,IAAMgO,EACI,IAAI,IAAUF,EAAO,QAASlF,GAE9BiF,EAAUM,GAAGL,EAAO,QAASlF,GAG7C,OAAO,IAAI,KAAQwF,MAAMP,GAEzB,IAAS7N,EAAI,EAAGA,EAAI2N,EAAWhO,OAAQK,IAAK,CACtC4I,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI+E,EAAW3N,IAAM2N,EAAW3N,GAErH6N,EADE7O,KAAKqP,qBACW,IAANrO,EAAU,IAAI,IAAU8N,EAAO,QAASH,EAAW3N,IAAM6N,EAAUM,GAAGL,EAAO,QAASH,EAAW3N,IAE3F,IAANA,EAAU6N,EAAY,IAAI,IAAUC,EAAO,WAAYlF,GAASiF,EAAUS,IAAIR,EAAO,WAAYlF,GAGjH,OAAO,IAAI,KAAQwF,MAAMP,GAG3B,IAAS7N,EAAI,EAAGA,EAAI2N,EAAWhO,OAAQK,IAEnC6N,EADQ,IAAN7N,EACU,IAAI,IAAU8N,EAAO,QAASH,EAAW3N,IAEzC6N,EAAUM,GAAGL,EAAO,QAASH,EAAW3N,IAI1D,OAAIhB,KAAK8J,sBAAsB,KAAe9J,KAAK8J,WAAWyF,mBAAmB,KACxE,IAAI,KAAQH,MAAMP,GAElB7O,KAAKwP,SAASxP,KAAK0J,OAAOG,QAAQuF,MAAMP,IAInDxN,EAAYnB,UAAUuP,iBAAmB,SAAU3D,EAAWjE,EAAMxB,EAAGqJ,GACrE,IAAIjO,EAAQzB,MACRA,KAAK8J,sBAAsB,MAAgB,YAAkBzD,KAAOrG,KAAK2P,yBAE3E3P,KAAKsK,eAAiBjE,EAAEuJ,OAEtB5P,KAAK4J,OAAS/B,GAAQA,EAAKlH,OAAS,GAAKX,KAAKuG,gBAAgC,aAAdvG,KAAK0D,OAAwB1D,KAAKsD,uBAAyBtD,KAAKiC,oBAAsBjC,KAAKgE,kBAAoBhE,KAAKkC,qBAChK2F,EAAKgI,OAAM,SAAUhD,GACzC,IAAIiD,EAAY,YAASrO,EAAMiG,OAAOkC,MAAQnI,EAAMiG,OAAOkC,MAAQ,GAAIiD,GACvE,OAAOpL,EAAMmI,MAAMmG,MAAK,SAAUC,GAChC,IAAIpG,EAAQnI,EAAMkK,mBAAqB,YAASlK,EAAMiG,OAAOkC,MAAQnI,EAAMiG,OAAOkC,MAAQ,GAAIoG,GAAOA,EACrG,OAAOF,IAAclG,UAIvBkC,EAAUmE,UAAY,GACtBpI,EAAO,KAIXvG,EAAOpB,UAAUuP,iBAAiB/N,KAAK1B,KAAM8L,EAAWjE,EAAMxB,GAC9DrG,KAAKkQ,cAAwC,IAAxBlQ,KAAKsK,gBAAwBtK,KAAKsK,eAAkC,EAAjBtK,KAAKqK,cAAoBrK,KAAK8J,sBAAsB,MAAgB9J,KAAK8J,sBAAsB,KAAe9J,KAAKsK,gBAAkBtK,KAAKqK,WAAa,EAAIrK,KAAKkQ,cACxOlQ,KAAKmQ,wBAAwBnQ,KAAKuG,gBAGlC,IAAK,YAAkBvG,KAAK4J,SAAW5J,KAAKgE,mBAAqBhE,KAAKsD,sBAAwBtD,KAAKmO,UAAYnO,KAAKmO,SAASxN,OAAS,EACpI,IAAK,IAAIK,EAAI,EAAGA,EAAIhB,KAAK4J,MAAMjJ,OAAQK,IAAK,CAC1C,IAAI4I,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAH/E5J,KAGyF4J,MAAM5I,IAH/FhB,KAG2G4J,MAAM5I,GAC1GhB,KAAK6L,gBAAgB7L,KAAKuG,iBAAmB,YAAkBvG,KAAK+H,UAAY/H,KAAK+H,SAAW+D,EAAW,KAAM,aAAclC,IAC3H5J,KAAK8J,sBAAsB,MAC5C9J,KAAK4J,MAAMwG,OAAOpP,EAAG,GACrBA,GAAK,GAIX,IAAI2N,EAAa,GAWjB,GAVK,YAAkB3O,KAAK4J,SAC1B+E,EAAa3O,KAAKqQ,iBAAiBrQ,KAAK8L,YAEtC6C,EAAWhO,OAAS,GAAKX,KAAK8J,sBAAsB,MAAgB,YAAkB9J,KAAK4J,QAA2B,MAAjB5J,KAAKmO,UAC5GnO,KAAKqP,sBAAuB,EAC5BrP,KAAKsQ,mBAAmB3B,EAAY3O,KAAK8L,UAAW9L,KAAKmO,UACzDnO,KAAKqP,sBAAuB,GAE5BrP,KAAKuQ,iBAAiBzE,EAAWjE,EAAMxB,GAErCrG,KAAK8J,sBAAsB,KAAe9J,KAAKgE,mBAAqBhE,KAAKwQ,kBAAoBxQ,KAAKgF,aAAa4E,OAAqC,KAA5B5J,KAAKgF,aAAa4E,MAAc,CAC1J,IAAIF,EAAQ,IAAI,IAChBA,EAAQ1J,KAAKuG,eAAiBmD,EAAM0F,MAAMpP,KAAK0H,OAAO+I,KAAM,aAAczQ,KAAKgF,aAAa4E,MAAO5J,KAAK4M,WAAY5M,KAAK0Q,cAAgBhH,EACzI1J,KAAK2Q,oBAAoBjH,EAAO1J,KAAK0H,QACrC1H,KAAKwQ,kBAAmB,EACxBxQ,KAAK4Q,mBAAoB5Q,KAAKsD,sBAA+BtD,KAAK4Q,kBAElD,aAAd5Q,KAAK0D,OAAuB1D,KAAK4D,qBAAwB,YAAkB5D,KAAK0H,OAAOC,UAAa,YAAkB3H,KAAK0H,OAAO2E,WACpIrM,KAAK6Q,qBAEH7Q,KAAK8J,sBAAsB,KAA6B,aAAd9J,KAAK0D,MAAuB1D,KAAKuG,gBAC7EvG,KAAKsL,eAITjK,EAAYnB,UAAUqQ,iBAAmB,SAAUzE,EAAWjE,EAAMxB,EAAGqJ,GAEnD,aAAd1P,KAAK0D,MAAuB1D,KAAKsJ,eACnCtJ,KAAKuL,OAAO,YAAa,CACvBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,OAGZ1D,KAAK+H,UAAa/H,KAAK8Q,UAIjB,YAAkB9Q,KAAK8Q,WAAsC,IAAzB9Q,KAAK8Q,SAASnQ,UAC3DX,KAAK8Q,SAAWjJ,IAJhB7H,KAAK+H,SAAW+D,EAAUiF,UAAYjF,EAAUiF,WAAU,GAAQjF,EAClE9L,KAAK8Q,SAAWjJ,EAChB7H,KAAKgR,mBAAqBhR,KAAKkK,gBAI5BlK,KAAK4Q,mBAAqB/I,EAAKlH,QAAU,IAAMX,KAAKgE,kBAAoBhE,KAAKiR,YAAcjR,KAAKuG,gBAAkBvG,KAAKgF,aAAa4E,OAAqC,KAA5B5J,KAAKgF,aAAa4E,QAClK5J,KAAK2Q,oBAAoB3Q,KAAKkR,UAAWlR,KAAK0H,QAC1C1H,KAAKwQ,oBAIPxQ,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SAAyB,aAAdX,KAAK0D,OAAwB,YAAkB1D,KAAKgF,eAAoD,KAAnChF,KAAKgF,aAAa4E,MAAMjF,QAA+B,aAAd3E,KAAK0D,OAAyC,IAAjB1D,KAAKmR,SAAkC,KAAjBnR,KAAKmR,UAAmBnR,KAAKuG,gBAAkBvG,KAAKgE,kBAAoBhE,KAAK8J,sBAAsB,KAA2C,KAA5B9J,KAAKgF,aAAa4E,QAC3U5J,KAAKoO,mBAEPpO,KAAKiN,iBACLjN,KAAKoR,mBACLpR,KAAKqR,iBACA,YAAkBrR,KAAKsR,kBAC1BtR,KAAKsR,kBAEF,YAAkBtR,KAAKuR,kBAC1BvR,KAAKuR,kBAEHvR,KAAKwR,cACF,YAAkBxR,KAAKyQ,QAAU,YAAkBzQ,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,QAChFX,KAAKyR,oBAEFzR,KAAKsD,wBAAwBtD,KAAKsD,sBAA0BtD,KAAK8J,sBAAsB,KAG1F9J,KAAK0R,mBAAmB1R,KAAKmO,UAAU,GAFvCnO,KAAK0R,qBAIP1R,KAAK2R,gBACL3R,KAAKmF,qBACa,aAAdnF,KAAK0D,MAAuB1D,KAAK4R,cACnC5R,KAAK6R,iBAAiB,KAAM7R,KAAK4J,MAAO,OAG5C5J,KAAKwO,cACDxO,KAAK8R,kBACP9R,KAAK8R,iBAAkB,EACvB9R,KAAKoG,aAAaC,MAGtBhF,EAAYnB,UAAUkO,iBAAmB,WACvC,IAAIxE,EACApI,EACAoJ,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,SACxE,IAAK,YAAkB/R,KAAK4J,OAC1B,IAAK,IAAImD,EAAQ,GAAI,YAAkB/M,KAAK4J,MAAMmD,IAASA,IAGzD,GAFAnD,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAMmD,IAAU/M,KAAK4J,MAAMmD,GACvHvL,EAAUxB,KAAK6L,gBAAgB7L,KAAK6H,KAAM,KAAM,aAAc+B,GACjD,CAQX,GAPA,YAAS,CAACpI,GAAUoJ,GAChB5K,KAAKiE,kBAAoBzC,EAAQwQ,iBAAmBxQ,EAAQyQ,uBAAuBnP,UAAUoP,SAAS,IAAoBC,UAAY3Q,EAAQ4Q,oBAAsB5Q,EAAQ4Q,mBAAmBtP,UAAUoP,SAAS,IAAoBC,SACxO,YAAS,CAAC3Q,EAAQyQ,wBAAyBrH,GAEzC5K,KAAKiE,kBAAoBjE,KAAK0H,OAAOC,UAAYnG,EAAQyQ,uBAAuBnP,UAAUoP,SAAS/Q,IACrGnB,KAAKqS,cAAczI,GAEjB5J,KAAKiE,kBAAoBzC,EAAQsB,UAAUoP,SAAS,IAAoBtL,OAAQ,CAClF,aAAY,CAACpF,GAAU,IAAoBoF,OAC3C,IAAI0L,EAAU9Q,EAAQ+Q,cAAczK,iBAAiB,IAAM,IAAoBqC,GAAK,SAAWhJ,EAA1C,sBACjDmR,EAAQ3R,OAAS,GACnB,YAAS,CAAC2R,EAAQ,IAAK,IAAoB1L,OAC3C5G,KAAKmJ,8BAGCnJ,KAAK6H,MAAQ7H,KAAK6H,KAAKC,iBAAiB,IAAM,IAAoBqC,IAAIxJ,OAAS,IACnFX,KAAKwS,aACL,YAAS,CAACxS,KAAK6H,MAAO,IAAoB4K,SAKhD,GADAjR,EAAQyD,aAAa,gBAAiB,QACpB,aAAdjF,KAAK0D,MAAuBlC,EAAQsB,UAAUoP,SAAS,YAEzD,GAAkB,IADF1Q,EAAQgJ,uBAAuB,WAAW7J,OACrC,CACnB,IAAI6C,EAAO,CACTgI,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbyG,GAAI3I,EACJ6E,EAAG,MAELrG,KAAKuL,OAAO,aAAc/H,IAMpCxD,KAAK0S,iBACL1S,KAAK2S,qBAEPtR,EAAYnB,UAAUmS,cAAgB,SAAUzI,GAC9C,IAAIpI,EACAoR,EACAhI,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,SACxEa,EAAWpR,EAAUxB,KAAK6L,gBAAgB7L,KAAK8L,UAAW,KAAM,aAAclC,GAC9E,IAAI5I,EAAI,EACJ6R,EAAI,EACJC,GAAO,EACPC,GAAQ,EACZ,GACMvR,GAAWA,EAAQyQ,yBAA2BzQ,EAAQyQ,uBAAuBnP,UAAUoP,SAAS/Q,IAAcK,EAAQyQ,uBAAuBnP,UAAUoP,SAAS,IAAoB/H,MACtL2I,GAAO,IAEJA,IAAStR,GAAWA,EAAQyQ,wBAA0BzQ,EAAQyQ,uBAAuBnP,UAAUoP,SAAS,IAAoBC,OAC/HnR,EAAI,GAEJQ,EAAUA,EAAQyQ,uBAEhBW,GAAYA,EAASR,qBAAuBQ,EAASR,mBAAmBtP,UAAUoP,SAAS/Q,IAAcyR,EAASR,mBAAmBtP,UAAUoP,SAAS,IAAoB/H,MAC9K4I,GAAQ,IAELA,IAAUH,GAAYA,EAASR,oBAAsBQ,EAASR,mBAAmBtP,UAAUoP,SAAS,IAAoBC,OAC3HU,EAAI,GAEJD,EAAWA,EAASR,yBAEfpR,EAAI,IAAM6R,EAAI,IACnBC,GAAQC,IAAUvR,EAAQyQ,uBAAuBnP,UAAUoP,SAAS/Q,GACtE,YAAS,CAACK,EAAQyQ,wBAAyBrH,GAClCkI,GAAQC,GAASvR,EAAQyQ,uBAAuBnP,UAAUoP,SAAS/Q,IAC5E,aAAY,CAACK,EAAQyQ,wBAAyBrH,IAGlDvJ,EAAYnB,UAAU8S,WAAa,WACjC,IAAIC,EAAYjT,KAAK8L,UAAUvB,cAAc,MAAQ,IAAoBJ,GAAK,SAAWhJ,EAAY,KACrG,OAAQ,YAAkB8R,GAAyBjT,KAAKkK,cAAc,GAA/B+I,GAEzC5R,EAAYnB,UAAUwS,eAAiB,WACrC,IAAIQ,EAAmB,YAAkBlT,KAAK0H,OAAO2E,UAAkGrM,KAAK6H,KAAKC,iBAAiB,iCAAiCnH,OAAlJX,KAAK6H,KAAKC,iBAAiB,kDAAkDnH,OAC1IwS,EAAWnT,KAAK6H,KAAKC,iBAAiB,kBACtCsL,EAAcpT,KAAKsD,qBAAuBtD,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,yBAAyBxJ,OAAU,YAAkBX,KAAK0H,OAAO2E,UAAsGrM,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,IAAIxJ,OAArJX,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,qBAAqBxJ,OACpQ0S,EAAoBrT,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBiK,UAAUpR,OAiBzF,GAhBIX,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,WAC7D0L,GAAwCH,IAErClT,KAAKsD,uBAAyB8P,IAAgBC,GAAqBA,IAAsBrT,KAAKsT,yBAAyC,aAAdtT,KAAK0D,MAAuB1D,KAAKsJ,eAAiBtJ,KAAKsD,sBAAsC,aAAdtD,KAAK0D,MAAuB1D,KAAKsJ,eAAiBtJ,KAAKuT,kBAAoBvT,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SAAWX,KAAKsK,eAC/TtK,KAAKuL,OAAO,iBAAkB,CAC5BC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,UAEAwJ,IAAgBC,GAAmC,aAAdrT,KAAK0D,MAAuB1D,KAAKsJ,iBAAmBtJ,KAAKsD,sBAAwBtD,KAAKsD,uBAAyBtD,KAAKuT,mBAClKvT,KAAKuL,OAAO,iBAAkB,CAC5BC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,YAGP5J,KAAK4D,qBAAuB5D,KAAK0H,OAAOC,UAAY3H,KAAK+D,qBAAsB,CACjF,IAAK,IAAI/C,EAAI,EAAGA,EAAImS,EAASxS,OAAQK,IACnChB,KAAKiL,eAAekI,EAASnS,IAE/BhB,KAAKkL,mBAIT7J,EAAYnB,UAAUsT,UAAY,SAAUnN,GACrCrG,KAAKyT,aAA6B,aAAdzT,KAAK0D,MAAwB1D,KAAK8M,cAM/C9M,KAAKyT,aAA6B,aAAdzT,KAAK0D,MAAwB1D,KAAK8M,eAChE9M,KAAK0T,YANwB,KAAzB1T,KAAKyO,gBACPzO,KAAK0T,YAEL1T,KAAK2G,UAAUN,IAMrBhF,EAAYnB,UAAUyT,MAAQ,SAAUtN,GACtC,GAAkB,aAAdrG,KAAK0D,OAAwB1D,KAAKyT,YAAa,CACjD,IACIG,EADOC,OAAOC,aAAazN,EAAE8K,SACN4C,MAAM,MAC5B,YAAkBH,KACrB5T,KAAKoC,YAAa,GAGtBpC,KAAKoC,WAAapC,KAAK8M,eAA+B,IAAdzG,EAAE8K,SAAiBnR,KAAKoC,WAChEpC,KAAKoC,aAAaiE,EAAE2N,SAAyB,KAAd3N,EAAE8K,UAAyBnR,KAAKoC,WAC3DpC,KAAKoC,YAAcpC,KAAKgF,eAC1BhF,KAAKoC,YAAa,EAClBpC,KAAKiU,gBACLjU,KAAKkU,mBACG7N,EAAE8K,QAGNnR,KAAKmU,OAAO9N,KAYpBhF,EAAYnB,UAAUkU,OAAS,SAAUtK,EAAYJ,EAAOhC,GAC1D1H,KAAKqU,YAAa,EAClBrU,KAAKsU,oBAAqB,EAC1BtU,KAAKuU,YAAYzK,EAAYJ,EAAOhC,IAEtCrG,EAAYnB,UAAUsP,SAAW,SAAU9F,GACzC,IAAI8K,EAAc9K,EAAQA,EAAMG,QAAU7J,KAAK0J,MAAQ1J,KAAK0J,MAAMG,QAAU,IAAI,IAChF,GAAI7J,KAAKqU,WAAY,CACnB,GAAIrU,KAAKsD,uBAAyB,YAAkBtD,KAAKyU,mBAEvD,OADAD,EAAcxU,KAAKyU,kBAAkB5K,QAC9B7J,KAAK0U,mBAAmBF,GAC1B,IAAKxU,KAAKsD,qBACf,OAAOkR,EAGX,GAAIxU,KAAK2U,aAAc,CACrB,GAA6B,OAAzB3U,KAAKyO,kBAA6BzO,KAAKsD,sBAAwBtD,KAAKsD,sBAAiD,OAAzBtD,KAAKyO,iBAA4D,KAAhCzO,KAAKyO,gBAAgB9J,OAAe,CACnK,IAAIiQ,EAAW5U,KAAK6U,WAAW7U,KAAK8J,YAAYgL,OAChD,IAAM9U,KAAK8J,sBAAsB,KAA6B,WAAb8K,IAAsC,WAAbA,GAEnE,GAAI5U,KAAKsD,sBAAiD,KAAzBtD,KAAKyO,kBAA2BzO,KAAK+U,mBAAqB/U,KAAKsD,qBAAsB,CAC3H,IAAIoE,EAAS1H,KAAK0H,OAClB8M,EAAYpF,MAAO,YAAkB1H,EAAO+I,MAAsB,GAAd/I,EAAO+I,KAAWzQ,KAAKgV,WAAYhV,KAAKyO,gBAAiBzO,KAAK4M,WAAY5M,KAAK0Q,oBAHnI8D,EAAYpF,MAAM,GAAIpP,KAAKgV,WAAYhV,KAAKyO,gBAAiBzO,KAAK4M,WAAY5M,KAAK0Q,cAMvF,OAAI1Q,KAAKsD,sBAAuD,IAA/BtD,KAAKsM,aAAa4C,WAAmBlP,KAAKuT,iBAClEvT,KAAK0U,mBAAmBF,GAE7BxU,KAAKuT,iBACA7J,EAAQA,EAAMuL,KAAKjV,KAAKsT,wBAAwB4B,gBAAkBlV,KAAK0J,MAAQ1J,KAAK0J,MAAMuL,KAAKjV,KAAKsT,wBAAwB4B,iBAAkB,IAAI,KAAQD,KAAKjV,KAAKsT,wBAAwB4B,gBAE9LV,EAEP,OAAIxU,KAAKsD,sBAAuD,IAA/BtD,KAAKsM,aAAa4C,WAAmBlP,KAAKuT,iBAClEvT,KAAK0U,mBAAmBF,GAE7BxU,KAAKuT,iBACA7J,EAAQA,EAAMuL,KAAKjV,KAAKsT,wBAAwB4B,gBAAkBlV,KAAK0J,MAAQ1J,KAAK0J,MAAMuL,KAAKjV,KAAKsT,wBAAwB4B,iBAAkB,IAAI,KAAQD,KAAKjV,KAAKsT,wBAAwB4B,gBAE9LxL,IAAgB1J,KAAK0J,MAAQ1J,KAAK0J,MAAQ,IAAI,MAGzDrI,EAAYnB,UAAUwU,mBAAqB,SAAUF,GAKnD,IAJA,IAAIW,EAAYnV,KAAKoV,eACjBC,GAAY,EACZC,GAAS,EAEJC,EAAgB,EAAGA,EAAgBf,EAAYgB,QAAQ7U,OAAQ4U,IACzC,gBAAzBvV,KAAKyV,kBAAsCjB,EAAYgB,QAAQD,GAAelP,GAAwD,OAAnDmO,EAAYgB,QAAQD,GAAelP,EAAEqP,WAAsBlB,EAAYgB,QAAQD,GAAelP,GAAuD,UAAlDmO,EAAYgB,QAAQD,GAAelP,EAAEsP,YAC7NN,GAAY,GAEgC,WAA1Cb,EAAYgB,QAAQD,GAAeK,KACrCN,GAAS,GAEmC,WAA1Cd,EAAYgB,QAAQD,GAAeK,KAC5B,EAGb,IAAIC,EAAiB,EACrB,GAAIrB,GAAeA,EAAYgB,QAAQ7U,OAAS,EAC9C,IAAS4U,EAAgB,EAAGA,EAAgBf,EAAYgB,QAAQ7U,OAAQ4U,IACxB,WAA1Cf,EAAYgB,QAAQD,GAAeK,KACrCC,EAAiBV,GAAaX,EAAYgB,QAAQD,GAAelP,EAAEyP,IAAMtB,EAAYgB,QAAQD,GAAelP,EAAEyP,IAAMX,GAI1H,GAAIU,GAAkB,GAAK7V,KAAK0J,OAAS1J,KAAK0J,MAAM8L,QAAQ7U,OAAS,EACnE,IAAS4U,EAAgB,EAAGA,EAAgBvV,KAAK0J,MAAM8L,QAAQ7U,OAAQ4U,IACxB,WAAzCvV,KAAK0J,MAAM8L,QAAQD,GAAeK,KACpCC,EAAiBV,GAAanV,KAAK0J,MAAM8L,QAAQD,GAAelP,EAAEyP,IAAM9V,KAAK0J,MAAM8L,QAAQD,GAAelP,EAAEyP,IAAMX,GAIxH,GAAIX,GAAeA,EAAYgB,QAAQ7U,OAAS,EAC9C,IAAS4U,EAAgB,EAAGA,EAAgBf,EAAYgB,QAAQ7U,OAAQ4U,IACxB,WAA1Cf,EAAYgB,QAAQD,GAAeK,KACrCC,EAAiBrB,EAAYgB,QAAQD,GAAelP,EAAEyP,KAAOD,EAAiBA,EAAiBrB,EAAYgB,QAAQD,GAAelP,EAAEyP,IACpItB,EAAYgB,QAAQpF,OAAOmF,EAAe,KACxCA,GAoBR,OAhBIvV,KAAKuG,gBAAkB+O,IAAWD,IAAcrV,KAAKuG,gBAAkB+O,IAAWtV,KAAKmC,oBACpFkT,EAGHb,EAAYuB,KAAK/V,KAAKgW,uBAFtBxB,EAAYuB,KAAK/V,KAAKsM,aAAaC,aAKnCvM,KAAKiW,qBACPzB,EAAYS,KAAKjV,KAAKkW,qBACbL,EAAiB,EAC1BrB,EAAYS,KAAKY,GAEjBrB,EAAYS,KAAKE,GAEnBX,EAAYU,gBACZlV,KAAKyU,kBAAoB,KAClBD,GAETnT,EAAYnB,UAAUkV,aAAe,WACnC,OAAOpV,KAAKuG,gBAAkB,IAAQD,SAAW6P,KAAKC,MAAM3P,OAAO4P,YAAcrW,KAAKsW,gBAAkBtW,KAAKqK,WAE/GhJ,EAAYnB,UAAUqU,YAAc,SAAUzK,EAAYJ,EAAOhC,GAC/D1H,KAAKuW,eAAgB,EACrB,IAAIC,EAAWxW,KAAK6H,KAAK/E,UAAUoP,SAAS,IAAoBO,QAChE,GAAoC,KAAhCzS,KAAKyO,gBAAgB9J,OAAe,CACtC,IAAIkD,EAAO7H,KAAKsD,qBAAuBtD,KAAK6H,KAAKkJ,WAAU,GAAQ/Q,KAAK+H,SAASgJ,UAAY/Q,KAAK+H,SAASgJ,WAAU,GAAQ/Q,KAAK+H,SAClI,GAAI/H,KAAKyW,aAAezW,KAAKsD,sBAAsC,aAAdtD,KAAK0D,MAAuB1D,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,EAAG,CACpHX,KAAK4Q,mBAAoB,EACzB,IAAI8F,GAAc,EAIlB,GAHI1W,KAAKgE,kBAA2D,IAAvC6D,EAAKC,iBAAiB,MAAMnH,QAAgBX,KAAK8Q,SAASnQ,OAAS,IAC9FX,KAAK8Q,SAAW,IAEd9Q,KAAKsD,qBAOP,GANItD,KAAKuG,iBACPvG,KAAKyL,uBAAwB,EAC7BzL,KAAK6H,KAAK8O,UAAY,EACtB3W,KAAK4W,mBAAqB,EAC1B5W,KAAK6W,gBAAkB,MAErB7W,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,GAAmB,aAAdX,KAAK0D,KAC9C1D,KAAKuL,OAAO,0BAA2B,CACrCuL,UAAW9W,KAAKyV,gBAChBjK,OAAQ,kBAEVkL,GAAc,OASd,GANA1W,KAAKsK,eAAiBtK,KAAK8J,YAAc9J,KAAK8J,WAAWnJ,OAASX,KAAK8J,WAAWnJ,OAAS,EAC3FX,KAAK+J,UAAUD,EAAYpC,EAAQgC,GACjB,aAAd1J,KAAK0D,OACP1D,KAAKsK,eAAiBtK,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAKsK,eAAiBtK,KAAK4J,MAAMjJ,OAASX,KAAKsK,gBAEzGtK,KAAKiK,kBACAuM,GAAYxW,KAAKgE,oBAAsBhE,KAAK6H,KAAK/E,UAAUoP,SAAS,IAAoBO,QAAS,CACpG,IAAKzS,KAAK6H,KAAK0C,cAAc,2BACvBwM,EAAiB/W,KAAK2K,cAAc,MAAO,CAC7CC,UAAW,2BAEEjF,MAAMkF,QAAU7K,KAAK8K,qBACpC9K,KAAK6H,KAAK/B,YAAYiR,GAAgBjR,YAAY9F,KAAK6H,KAAK0C,cAAc,mBAE5E,IAAKvK,KAAK6H,KAAK0C,cAAc,mBACvBG,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,mBAECjF,MAAMkF,QAAU7K,KAAKyK,wBACnCjD,SAASgD,uBAAuB,+BAA+B,GAAGD,cAAc,mBAAmBzE,YAAY4E,GAKvH1K,KAAKyP,iBAAiB5H,EAAM7H,KAAK8Q,UAC7B9Q,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QAC3BX,KAAKoO,mBAEc,IAAjBpO,KAAKmR,SACPnR,KAAKuH,uBAEFmP,GACH1W,KAAKuL,OAAO,UAAW,CACrBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACb2C,EAAGrG,YAIJ,CAWL,GAVIA,KAAKsD,sBAAwBtD,KAAKuG,iBACpCvG,KAAKyL,uBAAwB,EAC7BzL,KAAK6H,KAAK8O,UAAY,EACtB3W,KAAK4W,mBAAqB,EAC1B5W,KAAK6W,gBAAkB,KACnB7W,KAAK6H,KAAK0C,cAAc,6BAC1BvK,KAAK6H,KAAK0C,cAAc,4BAAiCvH,UAG7DhD,KAAK+J,UAAUD,EAAYpC,EAAQgC,GAC/B1J,KAAKsD,uBAAyBkT,GAAYxW,KAAKgE,oBAAsBhE,KAAK6H,KAAK/E,UAAUoP,SAAS,IAAoBO,QAAS,CAE/H,IAAIsE,EAUArM,EAXN,IAAK1K,KAAK6H,KAAK0C,cAAc,2BACvBwM,EAAiB/W,KAAK2K,cAAc,MAAO,CAC7CC,UAAW,2BAEEjF,MAAMkF,QAAU7K,KAAK8K,qBACpC9K,KAAK6H,KAAK/B,YAAYiR,GAAgBjR,YAAY9F,KAAK6H,KAAK0C,cAAc,mBAK5E,GAHkB,aAAdvK,KAAK0D,OACP1D,KAAKsK,eAAiBtK,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAKsK,eAAiBtK,KAAK4J,MAAMjJ,OAASX,KAAKsK,iBAEpGtK,KAAK6H,KAAK0C,cAAc,mBACvBG,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,mBAECjF,MAAMkF,QAAU7K,KAAKyK,wBACnCjD,SAASgD,uBAAuB,+BAA+B,GAAGD,cAAc,mBAAmBzE,YAAY4E,GAG/G1K,KAAKgE,mBACD8F,aAAsB,KAG1B9J,KAAK4Q,mBAAoB,EACzB5Q,KAAKkR,UAAYxH,GAHjB1J,KAAK2Q,oBAAoBjH,EAAOhC,IAOlC1H,KAAKsD,sBAAwBtD,KAAKuG,gBACpCvG,KAAKgX,4BAEPhX,KAAKiI,eACDjI,KAAKiX,aACPjX,KAAKkX,YAEW,aAAdlX,KAAK0D,MACP1D,KAAKsL,eAGTjK,EAAYnB,UAAUyQ,oBAAsB,SAAUjH,EAAOhC,GAC3D,IAAIyP,GAAcnX,KAAKoX,eAAepX,KAAKgF,aAAa4E,MAAO5J,KAAK4M,YAChEkC,EAAQpH,GAAkB1H,KAAK0H,OACnC,GAAI1H,KAAKgE,kBAAoBmT,EAAY,CACvC,IAAIvN,EAAQ5J,KAAKgF,aAAa4E,MAC1ByN,GAAc,YAAkBrX,KAAK8Q,WAAa9Q,KAAK8Q,SAASnQ,OAAS,EAAIX,KAAK8Q,SAAS,GAAK9Q,KAAK8Q,SACzG,GAAIuG,GAAoC,iBAAfA,GAAiD,iBAAfA,GAAiD,kBAAfA,EAA0B,CACrH,IAAIC,EAAa,GACjB,aAASxI,EAAM2B,KAAM7G,EAAO0N,GACyD,iBAA1E,YAAStX,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,QAASyN,IAA4BrX,KAAK0H,OAAOkC,QAAU5J,KAAK0H,OAAO+I,KACjI,aAAS3B,EAAMlF,MAAOuM,KAAKoB,SAAUD,GAErC,aAASxI,EAAMlF,MAAOA,EAAO0N,GAE/B,IAAIE,EAAgB,GACpB,GAAIxX,KAAK2L,oBACI3L,KAAKmO,UAAYnO,KAAKmO,SAASxN,OAAS,EAAIlB,OAAO2E,KAAKpE,KAAKmO,SAAS,IAAMnO,KAAKyX,UAAYhY,OAAO2E,KAAKpE,KAAKyX,WAAahY,OAAO2E,KAAKkT,IAE7II,SAAQ,SAAUnX,GACrBiX,EAAcjX,GAAOA,IAAQmH,EAAOkC,OAASrJ,IAAQmH,EAAO+I,KAAO,YAAS/I,EAAOkC,MAAO0N,GAAc,QAI5G,GADAA,EAAatX,KAAK2L,mBAAqB6L,EAAgBF,EACnDtX,KAAKsD,qBAAsB,CAC7BtD,KAAK2X,kBAAoBL,EACzB,IAAIM,EAAW5X,KAAK8J,sBAAsB,IAAc+N,KAAKC,MAAMD,KAAKE,UAAU/X,KAAKmO,WAAa0J,KAAKC,MAAMD,KAAKE,UAAU/X,KAAK8J,aAE/H9J,KAAKgY,yBAA2BhY,KAAKgY,wBAAwBrX,OAAS,GAC5DiX,EAASK,OAAOjY,KAAKgY,yBAEnCJ,EAASxH,OAAO,EAAG,EAAGkH,GACtBtX,KAAKkY,qBAAsB,EAC3B,IAAIC,EAAYnY,KAAKsK,eACrBtK,KAAKsM,aAAaC,WAAavM,KAAKgW,sBAAwB,EAC5DhW,KAAKsM,aAAa4C,SAAWlP,KAAKoY,oBAAsBpY,KAAKqK,UAC7DrK,KAAK+J,UAAU6N,EAAU9I,EAAOpF,GAChC1J,KAAKkY,qBAAsB,EAC3BlY,KAAKsK,eAAiBtK,KAAKsD,sBAAwBtD,KAAK8J,sBAAsB,IAAcqO,EAAYnY,KAAKsK,mBACxG,CACDtK,KAAK8J,sBAAsB,KAAe9J,KAAKgE,kBAAoBhE,KAAKuG,iBAC1EvG,KAAK4Q,mBAAoB,IAEvBgH,EAAWC,KAAKC,MAAMD,KAAKE,UAAU/X,KAAKmO,YACrCiC,OAAO,EAAG,EAAGkH,GACtBtX,KAAK+J,UAAU6N,EAAU9I,EAAOpF,SAE7B,GAAI1J,KAAKmO,SAAU,EACpByJ,EAAWC,KAAKC,MAAMD,KAAKE,UAAU/X,KAAKmO,YACrCiC,OAAO,EAAG,EAAGpQ,KAAKgF,aAAa4E,OACxCgO,EAAS,GAA2B,iBAAfP,GAA4BgB,MAAMC,WAAWV,EAAS,KAAiCA,EAAS,GAAnCU,WAAWV,EAAS,IACtGA,EAAS,GAA2B,kBAAfP,EAA2C,SAAhBO,EAAS,IAAuC,UAAhBA,EAAS,IAAyBA,EAAS,GAAKA,EAAS,GACzI5X,KAAK+J,UAAU6N,EAAU9I,SAEtB,GAAI9O,KAAKmO,UAAYnO,KAAK8Q,WAAaqG,GAAcnX,KAAKgE,iBAC/D,GAAIhE,KAAKuG,gBAAkBvG,KAAKuY,mBAAqBvY,KAAK4Q,kBACxD5Q,KAAKuY,mBAAoB,EACpBvY,KAAKsD,sBACRtD,KAAK+J,UAAU/J,KAAKmO,SAAUW,EAAOpF,QAElC,IAAK1J,KAAKuG,gBAAkBvG,KAAK6H,KAAM,CAC5C,IAAIqC,EAAgBlK,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,0BAC5EwC,EAAgB,YAAO3M,KAAKyO,gBAAiBvE,EAAe,aAAclK,KAAK4M,YAC/ED,GAAwC,OAAvBA,EAAcE,MACjC7M,KAAKwM,aAAaG,EAAcE,MAIlC7M,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QAC3BX,KAAKoO,oBAGT/M,EAAYnB,UAAUsY,eAAiB,WACrC,MAAO,mBAETnX,EAAYnB,UAAUuY,aAAe,SAAUpS,GAI7C,GAHArG,KAAKwR,aAAc,EACnBxR,KAAK0Y,cAAgB,KACrB1Y,KAAKkM,kBAAmB,EACnBlM,KAAK2Y,QAGV,GAAItS,EAAE/F,SAAWN,KAAKyF,aAAtB,CAOA,GAHKzF,KAAKiR,YACRjR,KAAKgF,aAAa4B,SAEf5G,KAAK4Y,SAAU,CAClB,GAAIvS,EAAE/F,SAAiE,IAAvD+F,EAAE/F,OAAOwC,UAAUiG,WAAW3D,QAzkCnC,iBA6kCT,YAHIpF,KAAK8M,eACP9M,KAAKiI,iBAIJjI,KAAK8M,gBAAkB9M,KAAKyT,aAAezT,KAAKgI,kBAAoB3B,EAAE/F,QA5jC9D,kCA4jCwE+F,EAAE/F,OAAOsK,WAC5F5K,KAAK0T,UAAUrN,IAEfrG,KAAK2G,UAAUN,GACG,aAAdrG,KAAK0D,OACP1D,KAAKkU,mBACLlU,KAAKiR,YAAa,EACbjR,KAAK6C,eAAeC,UAAUoP,SAAShR,IAC1ClB,KAAK6C,eAAeC,UAAUC,IAAI7B,KAKpClB,KAAKyO,iBAA4C,KAAzBzO,KAAKyO,iBACjCpI,EAAEwS,sBA3BFxS,EAAEwS,kBA8BNxX,EAAYnB,UAAU4E,OAAS,SAAUlC,GACnCA,GACF5C,KAAK6C,eAAeC,UAAUE,OA3mCrB,cA4mCThD,KAAKgF,aAAaO,gBAAgB,YAClC,YAAWvF,KAAKgF,aAAc,CAC5B,gBAAiB,UAEnBhF,KAAKmN,mBAAmB,WAExBnN,KAAK6C,eAAeC,UAAUC,IAlnCrB,cAmnCT/C,KAAKgF,aAAaC,aAAa,WAAY,QAC3C,YAAWjF,KAAKgF,aAAc,CAC5B,gBAAiB,SAEnBhF,KAAKmN,mBAAmB,SAEtBnN,KAAK2Y,UAAY/V,IACnB5C,KAAK2Y,QAAU/V,GAEjB5C,KAAK2G,aAEPtF,EAAYnB,UAAU4Y,cAAgB,SAAUC,EAAKC,GACnD,IAAI1Y,EACJ,GAAIN,KAAKgC,mBAAqBhC,KAAKiZ,UACjCjZ,KAAKgC,mBAAoB,OAM3B,GAHK,YAAkB+W,KACrBzY,EAASyY,EAAIG,eAEXlZ,KAAKiD,UAAYuE,SAASC,KAAKyK,SAASlS,KAAKiD,SAASzB,UAAYxB,KAAKiD,SAASzB,QAAQ0Q,SAAS5R,GACjF,aAAdN,KAAK0D,KACP1D,KAAKgF,aAAa4B,QACe,SAAxB5G,KAAKmZ,iBAA8BnZ,KAAK6C,eAAeC,UAAUoP,SAAS,cAAgBlS,KAAK6C,eAAeC,UAAUoP,SAAS,cAC1I,YAAS,CAAClS,KAAK6C,gBAAiB,qBAJpC,CAWA,GAH4B,SAAxB7C,KAAKmZ,gBAA6BnZ,KAAK6C,eAAeC,UAAUoP,SAAS,cAA8B,aAAdlS,KAAK0D,OAAwB,YAAkB1D,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,SACpK,aAAY,CAACX,KAAK6C,gBAAiB,iBAEnB,aAAd7C,KAAK0D,MAAuB,IAAQ0V,OAAS,YAAkBL,KAASC,EAG1E,OAFAhZ,KAAKiR,YAAa,OAClBjR,KAAK6C,eAAeC,UAAUE,OAAO9B,GAGvC,GAAIlB,KAAKyC,kBAMP,OALK,YAAkBsW,IACrBA,EAAIF,iBAEN7Y,KAAKgF,aAAa4B,aAClB5G,KAAKyC,mBAAoB,GAK3B,GAFAzC,KAAKiR,YAAa,EAClBjR,KAAK6C,eAAeC,UAAUE,OAAO9B,GACjClB,KAAKqZ,aAAc,CACrB,IAAIlC,EAAanX,KAAKoX,eAAepX,KAAKgF,aAAa4E,MAAO5J,KAAK4M,WAAY5M,KAAK0Q,cAChF4I,EAAgBtZ,KAAK6L,gBAAgB7L,KAAK6H,KAAM,KAAM,aAAcsP,GACpEvM,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,YAChDuH,GAAkBA,EAAcxW,UAAUoP,SAAStH,MAEzE5K,KAAKuZ,oBAAoBD,EAAeP,GACtB,cAAd/Y,KAAK0D,MACP1D,KAAKgO,gBAAgBhO,KAAKiO,gBAIhCjO,KAAKwZ,iBACLxZ,KAAKmL,iBAAiB,MACJ,QAAdnL,KAAK0D,MAAgC,aAAd1D,KAAK0D,MAC9B1D,KAAKyZ,kBAEHzZ,KAAK4R,eACP5R,KAAK6R,iBAAiBkH,EAAK/Y,KAAK4J,MAAO5J,KAAKyN,YAC5CzN,KAAK0Z,cAAc1Z,KAAKqF,cAAe,WAEzCrF,KAAKyF,aAAaE,MAAMC,QAAU,OAC9B5F,KAAK8M,eACP9M,KAAK2G,UAAUoS,GAEjB/Y,KAAKkO,mBACLlO,KAAKsH,QAAQ,QACbtH,KAAK2Z,SAAU,EACX,IAAQrT,UAA0B,cAAdtG,KAAK0D,MAAsC,aAAd1D,KAAK0D,MACxD1D,KAAK4Z,kBAEP5Z,KAAK+N,sBACL/N,KAAK6Z,oBACL,YAAe7Z,KAAK6C,eAAgB7C,KAAK6F,iBAAkB7F,KAAK4J,MAAO5J,KAAKmZ,eAAgBnZ,KAAK+E,aACjG/E,KAAKmF,sBACAnF,KAAKuG,iBAAgD,IAA9BvG,KAAK+D,sBAA+C,aAAd/D,KAAK0D,QAAyB,YAAkB1D,KAAK+H,YACrH/H,KAAK8L,UAAY9L,KAAK+H,UAExB/H,KAAKqO,uBACL,IAAMyL,kBAAkB9Z,KAAK6C,eAAgB7C,KAAK2K,eAClD3K,KAAK+Z,iBACA,YAAkB/Z,KAAK6C,iBAAoB,YAAkB7C,KAAK6C,eAAe2H,uBAAuB,cAAc,IAAMxK,KAAK6C,eAAe2H,uBAAuB,wBAAwB,IAA8B,UAAxBxK,KAAKmZ,iBAC7MnZ,KAAK6C,eAAe2H,uBAAuB,wBAAwB,GAAG1H,UAAUC,IAAI,UAEtF/C,KAAKgC,mBAAoB,EACrBhC,KAAKiZ,WACPjZ,KAAK0Z,cAAc1Z,KAAKgF,aAAc,UAG1C3D,EAAYnB,UAAU6Z,eAAiB,WACrC,IAAIC,EACJ,GAAIha,KAAK6C,eAAgB,CACvB,IAAK7C,KAAKgI,kBAAoBhI,KAAK6C,eAAe0H,cAAc,gBAC9DyP,EAAeha,KAAK6C,eAAeoX,YAAc,EAAIxR,SAASyR,iBAAiBla,KAAKgF,cAAcmV,aAAc,QAC3G,CACL,IAAIC,EAAgBpa,KAAKqa,SAASC,YAAc7R,SAASyR,iBAAiBla,KAAKqa,UAAUE,YAAa,IACtGP,EAAeha,KAAK6C,eAAeoX,aAAeG,EAAgB,EAAI3R,SAASyR,iBAAiBla,KAAKgF,cAAcmV,aAAc,KAEvG,UAAxBna,KAAKmZ,gBACP,IAAMY,eAAeC,EAAcha,KAAK6C,eAAgB7C,KAAKyV,mBAInEpU,EAAYnB,UAAUmO,qBAAuB,WAC3C,GAAIrO,KAAKgI,iBAAkB,CACzB,IAAIoS,EAAgBpa,KAAKqa,SAASC,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAKqa,UAAUE,YAAa,IAC7Gva,KAAKwa,mBAAmBJ,QAEnB,YAAkBpa,KAAKqa,WAC1Bra,KAAKwa,mBAAmBxa,KAAKgI,iBAAmBhI,KAAKqa,SAASC,YAAc,IAIlFjZ,EAAYnB,UAAUsa,mBAAqB,SAAUJ,GAC/C,YAAkBpa,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,OACZ,IAA9BX,KAAKqa,SAASC,YAChBta,KAAKya,cAAc9U,MAAM+U,MAAQ,gBAAkBN,EAAgB,IAAM,KAEzE,YAAS,CAACpa,KAAKya,eA9sCJ,yBAgtCH,YAAkBza,KAAK4J,SACjC5J,KAAKya,cAAclV,gBAAgB,SACnC,aAAY,CAACvF,KAAKya,eAltCL,2BAqtCjBpZ,EAAYnB,UAAU2Z,kBAAoB,WACnC,YAAkB7Z,KAAKya,iBACpBza,KAAK4J,OAAU5J,KAAK4J,MAAMjJ,SAAY,YAAkBX,KAAKyQ,OAAuB,KAAdzQ,KAAKyQ,KAG/EzQ,KAAKya,cAAc3X,UAAUC,IA9uCrB,eA4uCR/C,KAAKya,cAAc3X,UAAUE,OA5uCrB,iBAkvCd3B,EAAYnB,UAAUya,eAAiB,SAAUC,EAAUC,GACzD,OAAOhD,KAAKE,UAAU6C,EAASlN,QAAQoN,UAAYjD,KAAKE,UAAU8C,EAASnN,QAAQoN,SAErFzZ,EAAYnB,UAAU2R,iBAAmB,SAAU5K,EAAO8T,EAAQC,GAChE,IAAIJ,EAAWG,GAAkB,GAC7BF,EAAWG,GAAkB,GACjC,GAAIhb,KAAKib,YAAcjb,KAAK2a,eAAeC,EAAUC,GAAW,CAC9D,IAAI9T,EAAY,CACdV,EAAGY,EACH4T,UAAU7a,KAAK2L,mBAAqBqP,GACpCpR,OAAO5J,KAAK2L,mBAAqBoP,GACjCG,eAAcjU,EACdzF,QAASxB,KAAKwB,QACdyF,MAAOA,GAELjH,KAAKiZ,WAAajZ,KAAKmb,cACzBnb,KAAKmb,eAAgB,EAErBnb,KAAKsH,QAAQ,SAAUP,GAEzB/G,KAAKob,kBACApb,KAAK4R,cACR5R,KAAK0Z,cAAc1Z,KAAKqF,cAAe,UAG3CrF,KAAKqb,kBAAoBrb,KAAKsM,cAEhCjL,EAAYnB,UAAUkb,gBAAkB,WACjCpb,KAAK4J,MAGR5J,KAAKyN,YAAazN,KAAK2L,mBAAqB3L,KAAK4J,MAAM8D,SAFvD1N,KAAKyN,WAAazN,KAAK4J,OAK3BvI,EAAYnB,UAAUiJ,2BAA6B,WAC5C,YAAkBnJ,KAAK8L,YAAe,YAAkB9L,KAAK8L,UAAUtB,uBAAuB,gBAAgB,KACjH,YAAWxK,KAAKgF,aAAc,CAC5B,wBAAyBhF,KAAK8L,UAAUtB,uBAAuB,gBAAgB,GAAGtB,MAIxF7H,EAAYnB,UAAUob,gBAAkB,SAAUC,EAAOC,GACvD,IAAIC,EAAazb,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,0BACxCua,EAAeH,GAAS,EAAIE,EAAWF,EAAQ,GAAKE,EAAW,GACnE,GAAIzb,KAAK0H,OAAO2E,UAAYqP,IAAiB1b,KAAKsD,qBAAsB,CACtE,KAAOoY,IAAiBA,EAAa5Y,UAAUoP,SAAS,eAAiBwJ,EAAa5Y,UAAUoP,SAAS/Q,IAAcua,EAAa5Y,UAAUoP,SAAS,oBAAsBwJ,EAAa5Y,UAAUoP,SAAS,uBAC3MwJ,EAAeA,EAAazJ,uBAE9B,IAAKyJ,EACH,OAGA1b,KAAKsD,sBAAwBkY,IAC/BE,EAAe1b,KAAKkK,cAAcvJ,QAAU4a,GAASA,GAAS,EAAIvb,KAAKkK,cAAcqR,GAASvb,KAAKkK,cAAclK,KAAKkQ,iBAEnH,YAAkBwL,IAAiBA,EAAa5Y,UAAUoP,SAAS,oBACtEwJ,EAAe1b,KAAKkK,cAAclK,KAAKkQ,gBAErClQ,KAAKsD,sBACF,YAAkBoY,IAAkBA,EAAa5Y,UAAUoP,SAAS,gBAI7B,IAAjClS,KAAKsM,aAAaC,aAC3BvM,KAAKkM,kBAAmB,EACxBlM,KAAK2W,UAAU+E,EAAc1b,KAAK2b,gBAAgBD,EAAalO,aAAa,eAAgBxN,KAAK0Y,cAAcvH,WAL/GnR,KAAKkM,kBAAmB,EACxBlM,KAAKwM,aAAakP,GAClB1b,KAAK2W,UAAU+E,EAAc1b,KAAK2b,gBAAgBD,EAAalO,aAAa,eAAgBxN,KAAK0Y,cAAcvH,UAKjHnR,KAAK4b,kBAAoBF,IAEzB1b,KAAKkM,kBAAmB,EACxBlM,KAAKwM,aAAakP,GAClB1b,KAAK2W,UAAU+E,EAAc1b,KAAK2b,gBAAgBD,EAAalO,aAAa,eAAgBxN,KAAK0Y,cAAcvH,WAGnH9P,EAAYnB,UAAU2b,kBAAoB,SAAUN,EAAOC,GACzD,IAAI3T,EAAO7H,KAAK8b,WACZL,EAAazb,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,0BACxCua,EAAeH,GAASE,EAAW9a,OAAS8a,EAAWF,EAAQ,GAAKE,EAAWA,EAAW9a,OAAS,GACvG,GAAIX,KAAK0H,OAAO2E,UAAYqP,IAAiB1b,KAAKsD,qBAAsB,CACtE,KAAOoY,IAAiBA,EAAa5Y,UAAUoP,SAAS,eAAiBwJ,EAAa5Y,UAAUoP,SAAS/Q,IAAcua,EAAa5Y,UAAUoP,SAAS,oBAAsBwJ,EAAa5Y,UAAUoP,SAAS,uBAC3MwJ,EAAeA,EAAatJ,mBAE9B,IAAKsJ,EACH,OAGA1b,KAAKsD,sBAAwBtD,KAAKkQ,cAAgB,IACpDwL,EAAeH,EAAQ1T,EAAKlH,OAASX,KAAKkK,cAAcqR,GAASvb,KAAKkK,cAAcrC,EAAKlH,OAAS,IAEhGX,KAAKsD,sBAAwBkY,IAC/BE,EAAeH,GAAS1T,EAAKlH,OAASX,KAAKkK,cAAcqR,GAASvb,KAAKkK,cAAcrC,EAAKlH,OAAS,IAErGX,KAAKkM,kBAAmB,EACxBlM,KAAKwM,aAAakP,GAClB1b,KAAK4b,kBAAoBF,EACzB1b,KAAK+L,aAAa2P,EAAc1b,KAAK2b,gBAAgBD,EAAalO,aAAa,gBAAgB,EAAOxN,KAAK0Y,cAAcvH,UAE3H9P,EAAYnB,UAAU4b,SAAW,WAI/B,OAHK9b,KAAK6H,MACRvG,EAAOpB,UAAU6b,OAAOra,KAAK1B,MAExBA,KAAK8L,WAAa9L,KAAK8L,UAAUhE,iBAAiB,IAAM,IAAoBqC,IAAIxJ,OAAS,EAAIX,KAAK8L,UAAUhE,iBAAiB,IAAM,IAAoBqC,GAAK,SAAWhJ,EAAY,KAAO,IAEnME,EAAYnB,UAAU8b,eAAiB,SAAU3V,GAC/C,IAAI5E,EAAQzB,KACZ,GAAIA,KAAK2Y,QAAS,CAiBhB,GAhBA3Y,KAAKkU,mBACLlU,KAAKiR,YAAa,EACdjR,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SACT,cAAdX,KAAK0D,MAAsC,aAAd1D,KAAK0D,KACpC1D,KAAKuN,sBAAsB5H,MAAMC,QAAU,GAE3C5F,KAAKic,mBAEW,aAAdjc,KAAK0D,OACP1D,KAAKkc,YAAYvW,MAAMC,QAAU,SAGnB,aAAd5F,KAAK0D,MACP1D,KAAKya,cAAc3X,UAAUE,OAz2CrB,eA22CVhD,KAAKqO,uBACDrO,KAAK2Z,QAAS,CAChB,IAAInW,EAAO,CACT0X,eAAc7U,EACdY,MAAOZ,GAETrG,KAAKsH,QAAQ,QAAS9D,GACtBxD,KAAK2Z,SAAU,EAejB,OAbK3Z,KAAK6C,eAAeC,UAAUoP,SAAShR,IAC1ClB,KAAK6C,eAAeC,UAAUC,IAAI7B,GAEpC,YAAgBlB,KAAK6C,eAAgB7C,KAAK6F,kBACtC7F,KAAK8M,eACP9M,KAAKiI,eAEHjI,KAAKiX,aACPjX,KAAKkX,YAEP5O,YAAW,WACT7G,EAAMsY,mBACL,MACI,EAEP,OAAO,GAGX1Y,EAAYnB,UAAU+b,iBAAmB,WACrB,aAAdjc,KAAK0D,KACP1D,KAAKkc,YAAYvW,MAAMC,QAAU,GAEjC5F,KAAKmc,iBAAiBxW,MAAMC,QAAU,GAExC5F,KAAK6F,iBAAiB/C,UAAUC,IA74CP,gBA+4C3B1B,EAAYnB,UAAUkc,iBAAmB,WACvCpc,KAAKmc,iBAAiBxW,MAAMC,QAAU,OACtC5F,KAAK6F,iBAAiB/C,UAAUE,OAj5CP,gBAm5C3B3B,EAAYnB,UAAU+T,cAAgB,WACpC,IAAIoI,EAAO,EACX,GAAIrc,KAAK+E,YAAa,CACpB,IAAIuX,EAAYtc,KAAK+E,YAAYwX,WAAW,GACxCC,EAAiB,OAAUF,GAAaA,GAAa,MAAS,IAAM,OAAUA,GAAaA,GAAa,MAAS,EAAI,EACzHD,EAAOA,EAAOrc,KAAKgF,aAAaD,YAAYpE,OAAS0b,EAAOrc,KAAKgF,aAAaD,YAAYpE,OAAS6b,EAEjGxc,KAAKgF,aAAa4E,MAAMjJ,OAAS0b,EACnCrc,KAAKgF,aAAaqX,KAAOrc,KAAKgF,aAAa4E,MAAMjJ,OAEjDX,KAAKgF,aAAaqX,KAAOA,GAG7Bhb,EAAYnB,UAAU4M,YAAc,WAClC,OAA6B,OAAtB9M,KAAK6E,cAA6D,OAApC7E,KAAK6E,aAAa0N,eAEzDlR,EAAYnB,UAAU+H,aAAe,WAC/BjI,KAAKiD,UAAYjD,KAAKyc,YACxBzc,KAAKiD,SAASiC,cAAc,CAC1BwV,MAAO1a,KAAK0c,mBAEd1c,KAAKiD,SAAS0Z,gBAAgB3c,KAAK6C,gBACnC7C,KAAKiD,SAAS2Z,qBAGlBvb,EAAYnB,UAAU2c,gBAAkB,WACtC,OAAO7c,KAAKyO,gBAAgB9N,OAAS,GAEvCU,EAAYnB,UAAU4c,gBAAkB,SAAUzW,GAChD,OAAQA,EAAE8K,SACR,KAAK,GACHnR,KAAK2G,UAAUN,GACG,aAAdrG,KAAK0D,MACP1D,KAAKgF,aAAa4B,QAEpBP,EAAEwS,iBACF,MACF,KAAK,GACE7Y,KAAK8M,gBACR9M,KAAK0T,UAAUrN,GACfA,EAAEwS,oBAKVxX,EAAYnB,UAAU6c,oBAAsB,WAC1C/c,KAAKiI,gBAEP5G,EAAYnB,UAAU8c,oBAAsB,WAC1C,IAAI/Q,EAAcjM,KAAK6H,KAAK0C,cAAc,IAAM,IAAoB3D,OACpE,IAAK,YAAkBqF,GAErB,GADAjM,KAAKgF,aAAaC,aAAa,wBAAyBgH,EAAY/C,IAChElJ,KAAKuG,eAAgB,CACvB,IAAI0W,EAAcjd,KAAK6E,aAAa0F,cAAc,mBAC9C0S,GACFA,EAAYhY,aAAa,wBAAyBgH,EAAY/C,QAEzC,aAAdlJ,KAAK0D,MACd1D,KAAK6C,eAAeoC,aAAa,wBAAyBgH,EAAY/C,KAI5E7H,EAAYnB,UAAUgd,eAAiB,SAAUC,EAAQ3B,GAEvD,GADAxb,KAAKsL,cACDtL,KAAKsD,qBACP,GAAI6Z,EACEnd,KAAKsD,sBAAyD,IAAjCtD,KAAKsM,aAAaC,aACjDvM,KAAKsM,aAAaC,WAAa,EAC/BvM,KAAKsM,aAAa4C,SAAWlP,KAAKqK,UAClCrK,KAAKod,yBACLpd,KAAK+J,UAAU/J,KAAK8J,WAAY9J,KAAK0H,OAAQ1H,KAAK0J,aAGpD,GAAI1J,KAAKsD,wBAA0BtD,KAAK4J,OAAS5J,KAAKsM,aAAa4C,WAAalP,KAAKsK,gBAAkBtK,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,GAAKX,KAAKsM,aAAa4C,WAAalP,KAAKsK,eAAiBtK,KAAK4J,MAAMjJ,QAAS,CACrNX,KAAKsM,aAAaC,WAAavM,KAAKsK,eAAiBtK,KAAKqK,UAC1DrK,KAAKsM,aAAa4C,SAAWlP,KAAKsK,eAClCtK,KAAKod,yBACL,IAAI1T,GAAQ,IAAI,KAAQG,QACpB7J,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,IAEpC+I,GADAA,EAAQ1J,KAAK2J,YAAY3J,KAAK4J,OAAOC,SACvBkM,KAAK/V,KAAKsK,eAAiBtK,KAAKqK,YAEhDrK,KAAK+J,UAAU/J,KAAK8J,WAAY9J,KAAK0H,OAAQgC,GAInD1J,KAAKiK,iBACL,IAAIoT,EAAYrd,KAAK8L,UAAUhE,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,0BAChD,GAAIkc,EAAU1c,OAAS,EAAG,CACxB,IAAIa,EAAU6b,EAAUF,EAAS,EAAIE,EAAU1c,OAAS,GACpDX,KAAKsD,sBAAwB6Z,IAC/B3b,EAAU6b,EAAUrd,KAAKkQ,gBAE3BlQ,KAAKsL,cACL9J,EAAQsB,UAAUC,IAAI,IAAoB6D,OACtC5G,KAAKsD,sBAAwB6Z,EAC/Bnd,KAAK2W,UAAUnV,OAASwK,EAAWhM,KAAK0Y,cAAcvH,SAC5CqK,GACVxb,KAAK+L,aAAavK,OAASwK,GAAW,EAAOhM,KAAK0Y,cAAcvH,SAElEnR,KAAKmJ,+BAGT9H,EAAYnB,UAAUod,oBAAsB,WAC1C,IAAK,YAAkBtd,KAAK4J,QAAU5J,KAAK4J,MAAMjJ,OAC/C,IAAK,IAAIoM,EAAQ,EAAGA,EAAQ/M,KAAK4J,MAAMjJ,OAAQoM,IAAS,CACtD,IAAInD,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAMmD,IAAU/M,KAAK4J,MAAMmD,GACvHwQ,EAAevd,KAAKwd,kBAAkB5T,GACtC2T,IAAiBA,EAAaza,UAAUoP,SAAS,IAAoBH,WACvEwL,EAAaza,UAAUC,IAAI,cAKnC1B,EAAYnB,UAAUud,6BAA+B,SAAUpX,EAAGqX,GAChE,IACIC,EADA1R,EAAcjM,KAAK6H,KAAK0C,cAAc,IAAM,IAAoB3D,OAGpE,OADA5G,KAAKkM,kBAAmB,EAChB7F,EAAE8K,SACR,KAAK,GACHnR,KAAK4d,UAAUvX,GAAG,GAClB,MACF,KAAK,GACHrG,KAAK6d,QAAQxX,GAAG,GAChB,MACF,KAAK,GACHA,EAAEwS,iBACE5M,IACF0R,EAAc3d,KAAK2b,gBAAgB3b,KAAK4b,kBAAkBpO,aAAa,eAAiB,EACxFxN,KAAKsb,gBAAgBqC,GAAa,GAClC3d,KAAKgd,uBAEP,MACF,KAAK,GACH3W,EAAEwS,iBACE5M,IACF0R,EAAc3d,KAAK2b,gBAAgB3b,KAAK4b,kBAAkBpO,aAAa,eACvExN,KAAK6b,kBAAkB8B,GAAa,GACpC3d,KAAKgd,uBAEP,MACF,KAAK,GACL,KAAK,GACHhd,KAAK8d,qBAAsB,EAC3B9d,KAAKkd,eAA6B,KAAd7W,EAAE8K,SAA+B,GACrDnR,KAAKyL,uBAAwB,EAGjCzL,KAAK0Y,cAAgB,KACrB1Y,KAAK+d,iBAAkB,EACvB/d,KAAKkM,kBAAmB,GAE1B7K,EAAYnB,UAAU8d,UAAY,SAAU3X,GAC1C,IAAIrG,KAAK4Y,WAAa5Y,KAAK2Y,SAAyB,aAAd3Y,KAAK0D,QAG3C1D,KAAKuC,uBAAwB,EAC7BvC,KAAK0Y,cAAgBrS,EACjBrG,KAAKie,oBAAsBje,KAAKsD,sBAClC+C,EAAEwS,iBAEJ7Y,KAAKmR,QAAU9K,EAAE8K,QACjBnR,KAAK0C,eAAgB,IACjB2D,EAAE8K,QAAU,KAAO9K,EAAE8K,QAAU,MAGnC,GAAI9K,EAAE6X,OACJle,KAAK8c,gBAAgBzW,OADvB,CAGO,GAAIrG,KAAK8M,cAAe,CAC7B,IAAIb,EAAcjM,KAAK6H,KAAK0C,cAAc,IAAM,IAAoB3D,OAChE+W,OAAc,EAClB,OAAQtX,EAAE8K,SACR,KAAK,GACL,KAAK,GACHnR,KAAK8d,qBAAsB,EAC3B9d,KAAKkM,kBAAmB,EACxBlM,KAAKkd,eAA6B,KAAd7W,EAAE8K,SACtB,MACF,KAAK,GAOH,OANA9K,EAAEwS,sBACE5M,IACF0R,EAAc3d,KAAK2b,gBAAgB1P,EAAYuB,aAAa,eAC5DxN,KAAKsb,gBAAgBqC,EAAc3d,KAAKme,eAAiB,GACzDne,KAAKgd,wBAGT,KAAK,GAOH,OANA3W,EAAEwS,sBACE5M,IACF0R,EAAc3d,KAAK2b,gBAAgB1P,EAAYuB,aAAa,eAC5DxN,KAAK6b,kBAAkB8B,EAAc3d,KAAKme,gBAC1Cne,KAAKgd,wBAGT,KAAK,GACHhd,KAAKkM,kBAAmB,EACxBlM,KAAK6d,QAAQxX,GACb,MACF,KAAK,GACHrG,KAAKkM,kBAAmB,EACxBlM,KAAK4d,UAAUvX,GACf,MACF,KAAK,GAQH,OAPAA,EAAEwS,iBACF7Y,KAAKkM,kBAAmB,EACxBlM,KAAK2G,UAAUN,GACG,aAAdrG,KAAK0D,MACP1D,KAAKgF,aAAa4B,aAEpB5G,KAAKkM,kBAAmB,GAE1B,KAAK,GAQH,OAPA7F,EAAEwS,iBACF7Y,KAAKkM,kBAAmB,EACN,aAAdlM,KAAK0D,MACP1D,KAAKoe,YAAY/X,GAEnBrG,KAAKqO,4BACLrO,KAAKkM,kBAAmB,GAE1B,KAAK,GAIH,OAHAlM,KAAKkM,kBAAmB,EACxBlM,KAAKqe,kBAAkBhY,QACvBrG,KAAKkM,kBAAmB,GAE1B,KAAK,EACH7F,EAAEwS,iBACF7Y,KAAKkM,kBAAmB,EACxBlM,KAAK2G,UAAUN,GACfrG,KAAKgF,aAAa4B,QAClB5G,KAAK6C,eAAeC,UAAUC,IAAI7B,SAGtC,OAAQmF,EAAE8K,SACR,KAAK,GACL,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACH,OACF,KAAK,GACCnR,KAAKyT,aACPzT,KAAK0T,YAEP,MACF,KAAK,GAGH,OAFArN,EAAEwS,sBACF7Y,KAAKse,eAIPte,KAAK6c,mBACP7c,KAAKue,cAAclY,GAEH,aAAdrG,KAAK0D,MAAuB1D,KAAK+D,uBAC/B/D,KAAKuG,iBACPvG,KAAK4B,mBAAqB5B,KAAKyO,iBAEjCzO,KAAKwe,iBAAiBnY,IAExBrG,KAAKiU,gBACe,aAAdjU,KAAK0D,MAAuB1D,KAAKsJ,eACrCtJ,KAAKiI,eAEHjI,KAAKiX,aACPjX,KAAKkX,YAEPlX,KAAKkM,kBAAmB,IAE1B7K,EAAYnB,UAAU0d,UAAY,SAAUvX,EAAGmV,GAC7CnV,EAAEwS,iBACF7Y,KAAKye,WAAW,EAAGjD,GACnBxb,KAAK0e,WAAY,GACblX,SAASmF,cAAc7J,UAAUoP,SA/oDvB,mBA+oD8D,aAAdlS,KAAK0D,OAAwB1D,KAAKuG,gBAAkBiB,SAASmF,gBAAkB3M,KAAK6H,OAChJ,IAAa9E,IAAI/C,KAAK6H,KAAM,UAAW7H,KAAKge,UAAWhe,MAEzDA,KAAKgd,uBAEP3b,EAAYnB,UAAU2d,QAAU,SAAUxX,EAAGmV,GAC3CnV,EAAEwS,iBACF7Y,KAAK0e,WAAY,EACjB,IAAI7W,EAAO7H,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,0BAClCnB,KAAK4D,qBAAqC,aAAd5D,KAAK0D,OAAwB,YAAkB1D,KAAK0H,OAAOC,WACzFE,EAAO7H,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,OAAS,IAAoBgI,MAAQ,SAAWhR,EAAjF,2BAEpC,IAAIwd,EAAa3e,KAAK6H,KAAK0C,cAAc,MAAQ,IAAoB3D,OACrE5G,KAAK4e,oBAAsB,YAAkB5e,KAAKkK,cAAc,KAAMlK,KAAKkK,cAAc,GAAGpH,UAAUoP,SAAS,gBACnGtS,MAAMM,UAAUwN,MAAMhM,KAAKmG,GAAMzC,QAAQuZ,IACxC,GAAmB,aAAd3e,KAAK0D,MAAuB1D,KAAKuG,iBACjDvG,KAAK0e,WAAY,EACjB1e,KAAKuL,OAAO,aAAc,CACxBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,WAGX5J,KAAKye,YAAY,EAAGjD,GACpBxb,KAAKgd,uBAEP3b,EAAYnB,UAAUme,kBAAoB,SAAUhY,GAClD,GAAkB,aAAdrG,KAAK0D,KAAqB,CAC5B,IAAIyG,EAAKnK,KAAK6H,KAAK0C,cAAc,MAAQ,IAAoB3D,OACzDiY,EAAkBrX,SAASgD,uBAAuB,sBAAsB,GAM5E,KALK,YAAkBL,IAAO0U,GAAmBA,EAAgB/b,UAAUoP,SAAS,mBAClF7L,EAAEwS,iBACF7Y,KAAK0e,WAAY,GAEnB1e,KAAKoe,YAAY/X,GACbrG,KAAK0e,UAAW,CAClB,IAAII,EAAO9e,KAAK6H,KAAK0C,cAAc,MAAQ,IAAoB3D,QAC1D,YAAkBkY,IAASD,GAAmBA,EAAgB/b,UAAUoP,SAAS,iBACpF4M,EAAKhc,UAAUE,OAAO,iBAI5BhD,KAAKqO,wBAEPhN,EAAYnB,UAAUse,iBAAmB,SAAUnY,IAC/B,IAAdA,EAAE8K,SAAiBnR,KAAKuG,eAAiBvG,KAAKyO,kBAAoBzO,KAAK4B,mBAA8C,KAAzB5B,KAAKyO,iBACnGzO,KAAKyW,aAAc,EAEnBzW,KAAKyW,aAAc,GAGvBpV,EAAYnB,UAAUqe,cAAgB,SAAUlY,GAC9C,GAAkB,cAAdrG,KAAK0D,MAAsC,aAAd1D,KAAK0D,MAAuB1D,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OACpF,OAAQ0F,EAAE8K,SACR,KAAK,GAEH9K,EAAEwS,iBACF7Y,KAAK+e,QAAQ,EAAG1Y,GAChB,MACF,KAAK,GAEHA,EAAEwS,iBACF7Y,KAAK+e,OAAO,EAAG1Y,GACf,MACF,KAAK,EACHrG,KAAKsN,oBAAoBjH,GACzB,MACF,KAAK,GAEHrG,KAAKsO,mBAAmBjI,QAGvB,GAAkB,IAAdA,EAAE8K,SAA+B,cAAdnR,KAAK0D,MAC7B1D,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAQ,CACnC0F,EAAEwS,iBACF,IAAI/F,EAAO9S,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,IAAMX,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,GAC9JX,KAAK8N,YAAY9N,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,GAAI0F,GACpDrG,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GACzCrG,KAAKyM,oBAAoBqG,KAI/BzR,EAAYnB,UAAUke,YAAc,SAAU/X,GAC5CrG,KAAK+N,sBACL/N,KAAKgf,gBAAgB3Y,GACjBrG,KAAKiE,kBACPjE,KAAKuH,wBAGTlG,EAAYnB,UAAUoe,aAAe,WACnC,IAAIxL,EAAO9S,KAAKyN,WAAazN,KAAKyN,WAAWC,QAAU,GACnD1N,KAAK2L,qBACPmH,EAAO9S,KAAKyN,WAAazN,KAAKyN,WAAWC,QAAU,IAEjD1N,KAAK4J,OAAS5J,KAAK2a,eAAe3a,KAAK4J,MAAOkJ,KAC9B,aAAd9S,KAAK0D,OACP1D,KAAK4J,MAAQkJ,EACb9S,KAAK0R,sBAEW,cAAd1R,KAAK0D,MAAsC,aAAd1D,KAAK0D,KACpC1D,KAAKuN,sBAAsB5H,MAAMC,QAAU,GAE3C5F,KAAKic,mBAEPjc,KAAKmF,qBACDnF,KAAK4J,MAAMjJ,OACbX,KAAKkU,mBAELlU,KAAKif,oBAGTjf,KAAKkO,oBAEP7M,EAAYnB,UAAU6L,aAAe,SAAUmT,EAAYvB,EAAawB,EAAoBhO,EAASiO,QACxE,IAAvBD,IACFA,GAAqB,QAEP,IAAZhO,IACFA,EAAU,WAEM,IAAdiO,IACFA,GAAY,KAET,YAAkBF,IAAeA,EAAWpc,UAAUoP,SAAS,mBAAqBlS,KAAKsD,sBAAwB,YAAkB4b,MACtIA,EAAalf,KAAKkK,cAAclK,KAAKkQ,gBAEvC,IAAImP,EAAqBH,IAAe7G,MAAM5P,SAAShC,OAAOyT,iBAAiBgF,GAAYI,aAAc,KAAO7W,SAAShC,OAAOyT,iBAAiBgF,GAAYI,aAAc,IAAM,EACjLtf,KAAKuf,mBAAoB,EACzB,IAAIC,EAAmBxf,KAAK6H,KAAKC,iBAAiB,mBAAmBnH,OACjE8e,EAAmBzf,KAAK6H,KAAK0C,cAAc,mBAAqBvK,KAAK6H,KAAK0C,cAAc,mBAAmBiD,aAAa,cAAgB,KACxIkS,EAAsB1f,KAAK6W,iBAAmB7W,KAAK6W,gBAAgBtK,WAAa2S,EAAWS,UAAY3f,KAAK6W,gBAAgBtK,YAAc2S,EAAWpW,aAAeuW,GAAsBH,EAAWS,UACrMC,EAAgB5f,KAAK6H,KAAKiB,aAC1B+W,EAAaH,EAAsBF,GAAoBN,EAAWpW,aAAeuW,IAAuBH,EAAWpW,aAAeuW,GAAsBrf,KAAK6H,KAAK8O,UAClKmJ,EAAa9f,KAAK6H,KAAK8O,UAAYkJ,EAAaD,EAChDG,GAAoB,EAEpBC,EAAWN,EAAsBF,GAAoBN,EAAWpW,aAAeuW,IAAuBH,EAAWpW,aAAeuW,GAAsBrf,KAAK6H,KAAK8O,UAEpK,GADAqJ,EAAWhgB,KAAK0H,OAAOC,UAAY,YAAkB3H,KAAKigB,oBAAsBD,EAAWhgB,KAAKigB,mBAAmBnX,aAAekX,EAC9G,IAAhBrC,GAAsB3d,KAAKsD,sBAExB,GAAIuc,EAAaD,KAAmBI,EAAW,GAAKhgB,KAAK6H,KAAKiB,aAAekX,GAAW,CAC7F,IAAIE,EAAsBhB,EAAaA,EAAW1R,aAAa,cAAgB,KAC3E2S,EAAsB,KAAZhP,EAAiBnR,KAAKme,eAAiB,EAAI,GACpDne,KAAKsD,sBAAwBtD,KAAKkM,kBAAoBiT,EACrDnf,KAAKkM,kBAAoBlM,KAAKsD,sBAAwBmc,GAAoBS,IAAwBT,GAAgC,KAAZtO,IAAmBnR,KAAKogB,oBAChJpgB,KAAKie,oBAAqB,EAC1Bje,KAAK6H,KAAK8O,YAAcuI,EAAWpW,aAAeuW,GAAsBc,EACxEngB,KAAKie,oBAAqBje,KAAKqgB,mBAA4BrgB,KAAKie,mBAChEje,KAAKkM,kBAAmB,EACxBlM,KAAKyL,uBAAwB,GACpBzL,KAAKsD,sBAAoC,KAAZ6N,GACtCnR,KAAKie,oBAAqB,EAC1Bje,KAAKkM,kBAAmB,EACxBlM,KAAKyL,uBAAwB,EAC7BzL,KAAK6H,KAAK8O,UAAY3W,KAAK6H,KAAKyY,eAEhB,KAAZnP,GAAkBnR,KAAKsD,uBAAyBtD,KAAKogB,qBACvDpgB,KAAKie,oBAAqB,EAC1Bje,KAAKkM,kBAAmB,EACxBlM,KAAKyL,uBAAwB,GAE/BzL,KAAK6H,KAAK8O,UAAYmJ,GAGxB9f,KAAK6H,KAAK8O,UAAY3W,KAAK6W,iBAAmB7W,KAAK6W,gBAAgBtK,WAAa6S,GAAapf,KAAK6W,gBAAgBtK,WAAavM,KAAK6W,gBAAgBtK,WAAavM,KAAKsW,eAAuC,EAAtBtW,KAAKsW,eAAqBtW,KAAK6W,gBAAgBtK,WAAavM,KAAKsW,eAAiB,EAE3QyJ,EAAoB/f,KAAKkM,kBACJ,QA5BrBlM,KAAK6H,KAAK8O,UAAY,EA8BxB3W,KAAKkM,iBAAmB6T,GAE1B1e,EAAYnB,UAAUyW,UAAY,SAAUuI,EAAYvB,EAAaxM,QACnD,IAAZA,IACFA,EAAU,MAEZ,IAAIqO,EAAmBxf,KAAK6H,KAAKC,iBAAiB,mBAAmBnH,OACjE0e,EAAqBH,IAAe7G,MAAM5P,SAAShC,OAAOyT,iBAAiBgF,GAAYI,aAAc,KAAO7W,SAAShC,OAAOyT,iBAAiBgF,GAAYI,aAAc,IAAM,EAC7KI,EAAsB1f,KAAK6W,iBAAmB7W,KAAK6W,gBAAgBtK,WAAa2S,EAAWS,UAAY3f,KAAK6W,gBAAgBtK,YAAc2S,EAAWpW,aAAeuW,GAAsBH,EAAWS,UACrMG,EAAaJ,EAAsBF,GAAoBN,EAAWpW,aAAeuW,GAAsBrf,KAAK6H,KAAK8O,UACjH4J,EAAoBvgB,KAAK6H,KAAK0C,cAAc,uCAAyCvK,KAAK6H,KAAK0C,cAAc,uCAAuCiD,aAAa,cAAgB,KACrLsS,EAAa9f,KAAK0H,OAAOC,UAAY,YAAY3H,KAAKigB,oBAAsBH,EAAa9f,KAAKigB,mBAAmBnX,aAAegX,EAChI,IAAIE,EAAWN,EAAsBF,GAAoBN,EAAWpW,aAAeuW,IAAuBH,EAAWpW,aAAeuW,GAAsBrf,KAAK6H,KAAK8O,UAChK6J,EAAoBxgB,KAAKsD,sBAAiD,iBAAzBtD,KAAKyV,iBAAsCqK,GAAc,EAC9G,GAAoB,IAAhBnC,GAAsB3d,KAAKsD,qBAExB,GAAIwc,EAAa,GAAKU,EAAmB,CAC9C,IAAIN,EAAsBhB,EAAaA,EAAW1R,aAAa,cAAgB,KAC3E2S,EAAsB,KAAZhP,EAAiBnR,KAAKme,eAAiB,EAAI,EACrDne,KAAKsD,sBAAwBtD,KAAKkM,kBAAoBqU,GAAqBL,IAAwBK,GAAiC,KAAZpP,IAAmBnR,KAAKogB,oBAClJpgB,KAAKuf,mBAAoB,EACzBvf,KAAKie,oBAAqB,EAC1Bje,KAAKkM,kBAAmB,EACxBlM,KAAK6H,KAAK8O,YAAcuI,EAAWpW,aAAeuW,GAAsBc,EACxEngB,KAAKie,mBAA6C,IAAxBje,KAAK6H,KAAK8O,WAAkB3W,KAAKie,mBAC3Dje,KAAKyL,uBAAwB,GACpBzL,KAAKsD,sBAAoC,KAAZ6N,GACtCnR,KAAKyL,uBAAwB,EAC7BzL,KAAKie,oBAAqB,EAC1Bje,KAAKkM,kBAAmB,EACxBlM,KAAK6H,KAAK4Y,SAAS,EAAG,KAEN,KAAZtP,GAAkBnR,KAAKsD,uBAAyBtD,KAAKogB,qBACvDpgB,KAAKie,oBAAqB,EAC1Bje,KAAKkM,kBAAmB,EACxBlM,KAAKyL,uBAAwB,GAE/BzL,KAAK6H,KAAK8O,UAAY3W,KAAK6H,KAAK8O,UAAYmJ,QAEnCE,EAAW,GAAKhgB,KAAK6H,KAAKiB,aAAekX,IACpDhgB,KAAK6H,KAAK8O,UAAYuI,EAAWS,WAAa3f,KAAK0H,OAAOC,UAAY,YAAkB3H,KAAKigB,oBAAsBjgB,KAAKigB,mBAAmBnX,aAAe,SAzB1J9I,KAAK6H,KAAK8O,UAAY,GA4B1BtV,EAAYnB,UAAUmgB,gBAAkB,WACtC,OAAOrgB,KAAK6H,MAAQ7H,KAAK6H,KAAK8O,UAAY3W,KAAK6H,KAAK6Y,cAAgB1gB,KAAK6H,KAAKyY,cAEhFjf,EAAYnB,UAAU8e,gBAAkB,SAAU3Y,GAChD,IAEI/F,EAFA6J,EAAKnK,KAAK6H,KAAK0C,cAAc,MAAQ,IAAoB3D,OACzD+Z,EAAQ3gB,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAK4J,MAAMjJ,OAAS,EAElE,GAAW,OAAPwJ,EAAa,CAKf,GAJA9D,EAAEwS,iBACE1O,EAAGrH,UAAUoP,SAAS,cACxByO,GAAgB,GAEd3gB,KAAK4gB,UAAUzW,IAAOwW,EAAQ3gB,KAAKsT,uBAAwB,CAC7DtT,KAAKuZ,oBAAoBpP,EAAI9D,GAC7BrG,KAAKwM,aAAarC,GACA,aAAdnK,KAAK0D,MACP1D,KAAKyZ,kBACLzZ,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GACzCrG,KAAK6Z,oBACL7Z,KAAKqO,uBACDrO,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,WAC7DrH,EAAS6J,EAAG0W,kBAAkBC,iBAC9B9gB,KAAKiL,eAAe3K,GACpBN,KAAKkL,mBAGPlL,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GAE3C,IAAI0a,EAA+C,KAAhC/gB,KAAKyO,gBAAgB9J,OACxC3E,KAAKkO,mBACa,aAAdlO,KAAK0D,MACP1D,KAAKmL,iBAAiBhB,EAAG6W,YAAaD,GAEnC/gB,KAAK4R,cACR5R,KAAK6R,iBAAiBxL,EAAGrG,KAAK4J,MAAO5J,KAAKyN,YAE5CzN,KAAKiI,oBAEAjI,KAAK4gB,UAAUzW,IAAOwW,EAAQ3gB,KAAKsT,0BACtChT,EAAS6J,EAAG0W,kBAAkBC,kBACnBhe,UAAUoP,SAAS,WAC5BlS,KAAKihB,eAAc,EAAO5a,EAAG8D,GAE7BnK,KAAKihB,eAAc,EAAM5a,EAAG8D,IAIlCnK,KAAKoO,mBACDpO,KAAKkE,oBACPlE,KAAK2G,UAAUN,GAGnB,IAAIwY,EAAkBrX,SAASgD,uBAAuB,sBAAsB,GAC5E,GAAIqU,GAAmBA,EAAgB/b,UAAUoP,SAAS,gBAAiB,CACzE,IAAIgP,EAAoBrC,EAAgBsC,WAAW,GACnD,GAAKD,EAAkBpe,UAAUoP,SAAS,WAUnC,CACLgP,EAAkBpe,UAAUE,OAAO,WAC/BQ,EAAO,CACTgI,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,QACPxC,KAAM,kBAERpH,KAAKuL,OAAO,iBAAkB/H,GAC9BxD,KAAKihB,eAAc,EAAO5a,EAAG8D,OAnBuB,CACpD+W,EAAkBpe,UAAUC,IAAI,WAChC,IAAIS,EAAO,CACTgI,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,QACPxC,KAAM,kBAERpH,KAAKuL,OAAO,iBAAkB/H,GAC9BxD,KAAKihB,eAAc,EAAM5a,EAAG8D,IAahCnK,KAAKmF,sBAEP9D,EAAYnB,UAAUiL,iBAAmB,SAAUuB,EAAMqU,GACvD,IAAK/gB,KAAKuG,gBAAgC,aAAdvG,KAAK0D,OAAqD,IAA9B1D,KAAK+D,sBAAiC/D,KAAKgE,mBAAqBhE,KAAK+H,UAAY/H,KAAKmO,SAAU,CACtJ,IAAItG,EAAO7H,KAAK+H,SAASgJ,UAAY/Q,KAAK+H,SAASgJ,WAAU,GAAQ/Q,KAAK+H,SAC1E,GAAI/H,KAAKsD,qBACP,GAAItD,KAAKgE,kBAAoBhE,KAAK2X,mBAA6B,MAARjL,GAAgB1M,KAAK2X,mBAAqB3X,KAAKsM,cAAiD,IAAjCtM,KAAKsM,aAAaC,YAAoBvM,KAAKsM,aAAa4C,WAAalP,KAAKqK,UAC9LrK,KAAK2X,kBAAoB,KAEzB3X,KAAKohB,YAAYphB,KAAK8Q,SAAU9Q,KAAK0H,aAErC,GAAI1H,KAAKuG,gBAAkBwa,GAKzB,GAJA/gB,KAAKqhB,oBACLrhB,KAAKyP,iBAAiB5H,EAAM7H,KAAK8Q,UACjC9Q,KAAKshB,sBAAuB,EAExBthB,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAEpDxK,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAAG7E,MAAQ3F,KAAKyK,6BAC7D,IAAKzK,KAAK6H,KAAK0C,cAAc,mBAAqBvK,KAAKkQ,cAAgB,EAAG,CAC/E,IAAIxF,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,kBAEbF,EAAc/E,MAAMkF,QAAU7K,KAAKyK,wBACnCzK,KAAK6E,aAAa0F,cAAc,mBAAmBzE,YAAY4E,SAGjE1K,KAAKyP,iBAAiBzP,KAAK6H,KAAM7H,KAAKmO,eAI1CnO,KAAKyP,iBAAiB5H,EAAM7H,KAAK8Q,UAEnC9Q,KAAKyM,oBAAoBC,GACrB1M,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QAC3BX,KAAKoO,wBAEG,YAAkBpO,KAAK0H,OAAOC,UAAY3H,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QAC7EX,KAAKoO,oBAGT/M,EAAYnB,UAAUoO,mBAAqB,SAAUjI,GACnD,IACIyM,EADAyO,EAAevhB,KAAKuN,sBAAsBhD,cAAc,wBAE5D,GAAqB,OAAjBgX,EAAuB,CACpB,YAAkBvhB,KAAK4J,SAC1B5J,KAAKyN,YAAazN,KAAK2L,mBAAqB3L,KAAK4J,MAAM8D,UAG5C,QADboF,EAAOyO,EAAanP,sBAElBpS,KAAK+N,sBACL/N,KAAKwhB,iBAAiB1O,EAAMzM,IAE9B,IAAIob,EAAczhB,KAAK2L,mBAAqB3L,KAAK4N,eAAe5N,KAAK6N,kBAAkB0T,EAAa/T,aAAa,gBAAkB+T,EAAa/T,aAAa,cAC7JxN,KAAK8N,YAAY2T,EAAapb,GAC9BrG,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GACzCrG,KAAKkO,mBAEHlO,KAAKkE,oBACPlE,KAAK2G,UAAUN,GAEjBrG,KAAKqO,wBAEPhN,EAAYnB,UAAUwhB,UAAY,SAAU9e,GAC1C,IACImK,EADAX,EAAWpM,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,IAElEiC,EAASzL,OAAS,IACpBX,KAAKsL,cACLyB,EAAQnK,EAAQ,EAAIwJ,EAASzL,OAAS,EACtCX,KAAKwM,aAAaJ,EAASW,IAC3B/M,KAAK+L,aAAaK,EAASW,GAAQA,IAErC/M,KAAKgd,uBAEP3b,EAAYnB,UAAUqJ,aAAe,SAAUlD,GAC7C,IACIsb,EADgBtb,EAAE/F,OACmBsK,UACrCiU,EAAkBrX,SAASgD,uBAAuB,sBAAsB,GAC9C,2BAAzBmX,GAA8E,kDAAzBA,IAA6E9C,EAAgB/b,UAAUoP,SAAS,iBACxK2M,EAAgB/b,UAAUE,OAAO,iBAGrC3B,EAAYnB,UAAUue,WAAa,SAAUmD,EAAUpG,GACrD,GAAIxb,KAAK6H,KAAM,CACb,IAAIuE,EAAWpM,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,0BACxB,aAAdnB,KAAK0D,MAAuB1D,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,WACzFyE,EAAWpM,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,OAAS,IAAoBgI,MAAQ,SAAWhR,EAAjF,2BAExC,IAAIogB,EAAevhB,KAAK6H,KAAK0C,cAAc,MAAQ,IAAoB3D,OACnE5G,KAAKsD,sBAAwBkY,IAAuB,YAAkBxb,KAAK6hB,4BAC7EN,EAAevhB,KAAKwd,kBAAkBxd,KAAK6N,kBAAkB7N,KAAK6hB,yBAAyBrU,aAAa,iBAE1G,IAAIsF,GAAQ,EACR+L,EAAkBrX,SAASgD,uBAAuB,sBAAsB,GAC5E,GAAkB,aAAdxK,KAAK0D,MAAuB1D,KAAKsJ,eAA8B,IAAbsY,IAAmB,YAAkB/C,KAAqBA,EAAgB/b,UAAUoP,SAAS,iBAA+E,IAA5DlS,KAAK6H,KAAK2C,uBAAuB,gBAAgB7J,QAAgBX,KAAKkK,cAAcvJ,OAAS,GAC5PX,KAAK4e,oBAAsBC,EAAgB/b,UAAUoP,SAAS,gBACjE2M,EAAgB/b,UAAUE,OAAO,gBACvB6b,EAAgB/b,UAAUoP,SAAS,iBAC7C2M,EAAgB/b,UAAUC,IAAI,qBAE3B,GAAIqJ,EAASzL,OAAQ,CACR,aAAdX,KAAK0D,MAAuB1D,KAAKsJ,gBAAkB,YAAkBuV,IAAiC,IAAd+C,MACrF5hB,KAAK4e,oBAAsBC,EAAgB/b,UAAUoP,SAAS,gBACjE2M,EAAgB/b,UAAUE,OAAO,gBACxBhD,KAAK4e,qBAAuBC,EAAgB/b,UAAUoP,SAAS,iBACxE2M,EAAgB/b,UAAUC,IAAI,iBAGlC,IAAK,IAAIgK,EAAQ,EAAGA,EAAQX,EAASzL,OAAQoM,IAC3C,GAAIX,EAASW,KAAWwU,EAAc,CACpCzO,EAAO/F,EACP,MAGJ,GAAI6U,EAAW,EACT9O,EAAO1G,EAASzL,OAAS,IAC3BX,KAAKsL,cACDtL,KAAKsD,sBAAwBkY,EAC/Bxb,KAAKwM,aAAaJ,EAAS0G,IAEvB9S,KAAKsD,sBAAwB8I,EAAS0G,EAAO,GAAGhQ,UAAUoP,SAAS,kBACrElS,KAAKwM,aAAaJ,EAASpM,KAAKkQ,gBAEhClQ,KAAKwM,aAAaJ,IAAW0G,IAG7BA,GAAQ,IACV9S,KAAK8hB,YAAY1V,EAAS0G,IAC1B9S,KAAK+L,aAAaK,EAAS0G,GAAOA,GAClC9S,KAAK6hB,yBAA2BzV,EAAS0G,UAI7C,GAAIA,EAAO,EACT,GAAI9S,KAAKsD,qBAAsB,CAC7B,IAAIye,EAAmB3V,EAAS0G,EAAO,GAAGhQ,UAAUoP,SAAS,kBACzD8P,EAAexG,EAAqB1I,EAAOA,EAAO,GAClD0I,GAAuBuG,GACzB/hB,KAAKsL,eAEHkQ,GAAuBuG,IACzB/hB,KAAKwM,aAAaJ,EAAS4V,IAC3BhiB,KAAK8hB,YAAY1V,EAAS4V,IAC1BhiB,KAAK2W,UAAUvK,EAAS4V,GAAelP,GACvC9S,KAAK6hB,yBAA2BzV,EAAS4V,SAG3ChiB,KAAKsL,cACLtL,KAAKwM,aAAaJ,IAAW0G,IAC7B9S,KAAK8hB,YAAY1V,EAAS0G,IAC1B9S,KAAK2W,UAAUvK,EAAS0G,GAAOA,IAMzC,IAAImP,EAAYjiB,KAAK6H,KAAO7H,KAAK6H,KAAK0C,cAAc,iBAAmB,KACvE,GAAIvK,KAAKkiB,kBAAkBD,GAAY,CACrC,GAAiG,IAA7FjiB,KAAK6H,KAAKC,iBAAiB,uDAAuDnH,QAAiC,KAAjBX,KAAKmR,SAAgC,aAAdnR,KAAK0D,MAAuB1D,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,UAAYsa,IAAcjiB,KAAK6H,KAAK0C,cAAc,wBAEpQ,YADAvK,KAAKsL,cAIO,KADVyB,EAAQ/M,KAAK2b,gBAAgBsG,EAAUzU,aAAa,kBAEtDoU,EAAW,GAET7U,IAAU/M,KAAK6H,KAAKC,iBAAiB,sCAAsCnH,OAAS,IACtFihB,GAAY,GAEd5hB,KAAKye,WAAWmD,KAGpBvgB,EAAYnB,UAAUsd,kBAAoB,SAAU5T,GAGlD,IAFA,IAAIiD,EAEKvI,EAAK,EAAG6d,EADDniB,KAAK8b,WACqBxX,EAAK6d,EAAYxhB,OAAQ2D,IAAM,CACvE,IAAI8d,EAASD,EAAY7d,GACzB,GAAItE,KAAK6N,kBAAkBuU,EAAO5U,aAAa,iBAAmB5D,EAAO,CACvEiD,EAAOuV,EACP,OAGJ,OAAOvV,GAETxL,EAAYnB,UAAU4hB,YAAc,SAAUtgB,GAC1B,aAAdxB,KAAK0D,MAAuB1D,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,WACtEnG,EAAQqf,kBAAkBC,iBAC5Bhe,UAAUoP,SAAS,WAClC1Q,EAAQsB,UAAUC,IAAI,YAEtBvB,EAAQsB,UAAUE,OAAO,cAI/B3B,EAAYnB,UAAU6e,OAAS,SAAU6C,EAAUvb,GACjD,IAAIyM,EACA1G,EAAWpM,KAAKuN,sBAAsBzF,iBAAiB,QAAU1G,GACjEmgB,EAAevhB,KAAKuN,sBAAsBhD,cAAc,wBACvC,OAAjBgX,EACEK,EAAW,GACb5hB,KAAKwhB,iBAAiBpV,EAASA,EAASzL,OAAS,GAAI0F,GAGnDub,EAAW,EAEA,QADb9O,EAAOyO,EAAatP,0BAElBjS,KAAK+N,sBACL/N,KAAKwhB,iBAAiB1O,EAAMzM,KAG9ByM,EAAOyO,EAAanP,mBACpBpS,KAAK+N,sBACQ,OAAT+E,GACF9S,KAAKwhB,iBAAiB1O,EAAMzM,KAKpChF,EAAYnB,UAAUmiB,UAAY,SAAUhc,GAC1C,GAAIrG,KAAK2Y,QAAS,CAChB,IAAI2J,EAAO,YAAQjc,EAAE/F,OAAQ,IAAMc,GACnCpB,KAAK+N,sBACL/N,KAAKwhB,iBAAiBc,EAAMjc,KAGhChF,EAAYnB,UAAU6N,oBAAsB,WACtC/N,KAAKuN,uBACPvN,KAAK4Z,mBAGTvY,EAAYnB,UAAUshB,iBAAmB,SAAUhgB,EAAS6E,GAC1D,YAAS,CAAC7E,GAhrEM,mBAirEhBxB,KAAKsH,QAAQ,gBAAiBjB,IAEhChF,EAAYnB,UAAUqiB,aAAe,SAAUlc,GAC7C,GAAgB,IAAZA,EAAEmc,OAA4B,IAAbnc,EAAEoc,QAGnBziB,KAAK2Y,UAAY3Y,KAAK4Y,SAAU,CAClC,IACI8J,EADUrc,EAAE/F,OAAOiS,cACC/E,aAAa,cACjC5D,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAe5N,KAAK6N,kBAAkB6U,IAAc1iB,KAAK6N,kBAAkB6U,GAYtH,GAXI1iB,KAAKgE,mBAAmC,UAAd0e,IAAmC,IAAV9Y,IAAoB,YAAkBA,IAA+B,QAArBA,EAAMb,cAC3Ga,EAAQ8Y,GAEN1iB,KAAK8M,eAA+B,aAAd9M,KAAK0D,MAC7B1D,KAAK2G,UAAUN,GAEZrG,KAAKiR,YACRjR,KAAKgF,aAAa4B,QAEpB5G,KAAK8N,YAAYlE,EAAOvD,GACxBuD,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAIA,GAASA,EAC5F,YAAkB5J,KAAK6L,gBAAgB7L,KAAK6H,KAAM,KAAM,aAAc+B,KAAW5J,KAAK+H,UAAY/H,KAAKmO,SAAU,CACnH,IAAItG,EAAO7H,KAAK+H,SAASgJ,UAAY/Q,KAAK+H,SAASgJ,WAAU,GAAQ/Q,KAAK+H,SAC1E/H,KAAKyP,iBAAiB5H,EAAM7H,KAAK8Q,UAEnC9Q,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GACrCrG,KAAK+E,aAAuC,UAAxB/E,KAAKmZ,gBAC3BnZ,KAAKkO,mBACLlO,KAAKqO,wBAELrO,KAAKgF,aAAa4E,MAAQ,GAE5BvD,EAAEwS,mBAGNxX,EAAYnB,UAAUgO,iBAAmB,WACvClO,KAAKgF,aAAa4E,MAAQ,GAC1B5J,KAAKmF,sBAEP9D,EAAYnB,UAAUiF,mBAAqB,WACrCnF,KAAK+E,aAAuC,UAAxB/E,KAAKmZ,eACvBnZ,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SAAW,YAAkBX,KAAKyQ,OAAuB,KAAdzQ,KAAKyQ,KAC3EzQ,KAAKgF,aAAaD,YAAc,GAEhC/E,KAAKgF,aAAaD,YAAc,YAAkB/E,KAAK+E,aAGzD/E,KAAK2iB,oBAEP3iB,KAAKiU,iBAEP5S,EAAYnB,UAAU0iB,eAAiB,SAAUhZ,EAAOmP,EAAK8J,EAAYrhB,EAASshB,GAChF,IAAI/V,EAAQ/M,KAAK2L,mBAAqB3L,KAAK+iB,qBAAqBnZ,EAAO5J,KAAK4J,OAAS5J,KAAK4J,MAAMxE,QAAQwE,GACpGoZ,EAAYhjB,KAAK4J,MAAM8D,MAAM,GACjCsV,EAAU5S,OAAOrD,EAAO,GACxB/M,KAAKkF,cAAc,CACjB0E,MAAO,GAAGqO,OAAO,GAAI+K,KACpB,GACHxhB,EAAQyD,aAAa,gBAAiB,SACtC,IAAI2F,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,SACxE,aAAY,CAACvQ,GAAUoJ,GACvB5K,KAAKuL,OAAO,aAAc,CACxBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbyG,GAAI3I,EACJ6E,EAAGrG,KACH+M,MAAOA,IAET/M,KAAKijB,wBAAwBzhB,EAASuX,EAAK8J,GAC3C,IAAIK,EAAeljB,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAIA,GAASA,EAC3G5J,KAAKmjB,gBAAe,EAAMD,EAAcJ,GACxC9iB,KAAKojB,oBAEP/hB,EAAYnB,UAAU+iB,wBAA0B,SAAUzhB,EAASuX,EAAK8J,GACtE7iB,KAAKuL,OAAO,aAAc,CACxBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbyG,GAAI3I,EACJ6E,EAAG0S,IAEL/Y,KAAKmJ,6BACDnJ,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SAAWX,KAAK8Q,SAASnQ,QAAwB,aAAdX,KAAK0D,MAAuB1D,KAAKsJ,gBAAmBtJ,KAAKqjB,cAAeR,GACtI7iB,KAAKuL,OAAO,iBAAkB,CAC5BC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,aAIbvI,EAAYnB,UAAU4N,YAAc,SAAUlE,EAAOmP,EAAKpY,EAAQkiB,GAChE,IAAIphB,EAAQzB,KACR+M,EAAQ/M,KAAK2L,mBAAqB3L,KAAK+iB,qBAAqBnZ,EAAO5J,KAAK4J,OAAS5J,KAAK4J,MAAMxE,QAAQpF,KAAK6N,kBAAkBjE,KAChH,IAAXmD,GAAgB/M,KAAKgE,mBAAqB,YAAkB4F,KAC9DmD,EAAQ/M,KAAK2L,mBAAqB3L,KAAK+iB,qBAAqBnZ,EAAO5J,KAAK4J,OAAS5J,KAAK4J,MAAMxE,QAAQwE,EAAMb,aAE5G,IAAIua,EAAYvK,GAAOA,EAAIzY,OAC3BuiB,KAAaA,GAAcS,GAAaA,EAAUxgB,UAAUoP,SAAS,oBAA2B,KAChG,IAAItH,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,SACxE,IAAe,IAAXhF,EAAc,CAChB,IAAImW,EAAeljB,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAIA,GAASA,EACvG2Z,EAAYvjB,KAAKuT,iBAAmB,KAAOvT,KAAK6L,gBAAgB7L,KAAK6H,KAAM,KAAM,aAAcqb,GAC/FM,EAAQxjB,KAAK2L,mBAAqB/B,EAAQ5J,KAAK4N,eAAehE,GAC9D7C,EAAY,CACdV,EAAG0S,EACHlM,KAAM0W,EACNE,SAAUD,EACVtI,eAAcnC,EACd7R,QAAQ,GAEVlH,KAAKsH,QAAQ,WAAYP,GAAW,SAAUA,GAC5C,GAAIA,EAAUG,OACZzF,EAAMiiB,kBACD,CACLjiB,EAAMkiB,oBAAoBliB,EAAM6B,sBAA8B7B,EAAMkiB,kBACpEliB,EAAMmiB,mBAAqBniB,EAAMkK,mBAAqB,YAASlK,EAAMiG,OAAOkC,MAAQnI,EAAMiG,OAAOkC,MAAQ,GAAIA,GAASA,EACtHnI,EAAM8R,kBAAmB,EACzB,IAAIyP,EAAYvhB,EAAMmI,MAAM8D,MAAM,GAQlC,GAPAsV,EAAU5S,OAAOrD,EAAO,GACpBtL,EAAM6B,sBAAuC,aAAf7B,EAAMiC,MACtCjC,EAAMuI,iBAAiBoG,OAAOrD,EAAO,GAEvCtL,EAAMyD,cAAc,CAClB0E,MAAO,GAAGqO,OAAO,GAAI+K,KACpB,GACCvhB,EAAM6B,qBAAsB,CAC9B,IAAIugB,EAAwB,IAAV9W,GAAetL,EAAMgP,KAAK7L,MAAMnD,EAAMwM,gBAAmE,IAAjDxM,EAAMgP,KAAK7L,MAAMnD,EAAMwM,eAAetN,OAAec,EAAMgP,KAAK/L,QAAQjD,EAAMgP,KAAK7L,MAAMnD,EAAMwM,eAAelB,GAAQ,IAAgB,IAAVA,EAActL,EAAMgP,KAAK/L,QAAQjD,EAAMgP,KAAK7L,MAAMnD,EAAMwM,eAAelB,GAAStL,EAAMwM,cAAe,IAAMxM,EAAMgP,KAAK/L,QAAQjD,EAAMwM,cAAgBxM,EAAMgP,KAAK7L,MAAMnD,EAAMwM,eAAelB,GAAQ,IACxYtL,EAAMyD,cAAc,CAClBuL,KAAMoT,EAAY9a,aACjB,GAEL,GAAkB,OAAdwa,EAAoB,CACtB,IAAIO,EAAiBriB,EAAMkK,mBAAqB,YAASlK,EAAMiG,OAAOkC,MAAQnI,EAAMiG,OAAOkC,MAAQ,GAAIA,GAASA,EAC5Gma,EAActiB,EAAMoK,gBAAgBpK,EAAMsG,SAAU,KAAM,aAAc+b,GAC5EP,EAAUte,aAAa,gBAAiB,SACxC,aAAY,CAACse,GAAY3Y,GACrBmZ,IACFA,EAAY9e,aAAa,gBAAiB,SAC1C,aAAY,CAACse,EAAWQ,GAAcnZ,IAExCnJ,EAAM8J,OAAO,aAAc,CACzBC,OAAQ,oBACR1G,OAAuB,aAAfrD,EAAMiC,KACdyG,GAAIoZ,EACJld,EAAG5E,EACHsL,MAAOA,IAETtL,EAAMwhB,wBAAwBM,EAAWxK,EAAK8J,GAEhD,IAAImB,EAAiBviB,EAAMkK,mBAAqB,YAASlK,EAAMiG,OAAOkC,MAAQnI,EAAMiG,OAAOkC,MAAQ,GAAIA,GAASA,EAWhH,GAVInI,EAAMwC,kBAAoBxC,EAAMiG,OAAOC,SAAW4b,GACpD9hB,EAAM4Q,cAAc2R,GAElBviB,EAAMwC,kBAAoBxC,EAAMwe,oBAAsBxe,EAAMiG,OAAOC,SAA0B,aAAflG,EAAMiC,MAAuBjC,EAAMqL,eACnHxL,EAAOpB,UAAU+jB,WAAWviB,KAAKD,GAEnCA,EAAM0hB,gBAAe,EAAMa,GAC3BviB,EAAMyiB,WAAWF,EAAgBnB,GACjCphB,EAAM2hB,oBACM3hB,EAAMmI,OAASnI,EAAMmI,MAAMjJ,OAASc,EAAMmI,MAAMjJ,OAAS,GACzDc,EAAM6R,uBAAwB,CACxC,IAAImI,EAAaha,EAAMoG,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,mBAC9E,aAAYsR,EAAY,aAE1Bha,EAAM6F,QAAQ,UAAWP,GACzB,IAAIod,EAAcpL,GAAOA,EAAIqL,cACzBf,KAAcc,IAAeA,EAAYrhB,UAAUoP,SAAS,wBAA+B,KAQ/F,IAPKzQ,EAAMmQ,eAAiBiR,GAAc9J,GAAOpY,IAAW0iB,GAAe5hB,EAAM4iB,mBAC/E5iB,EAAMoQ,iBAAiBkH,EAAKtX,EAAMmI,MAAOnI,EAAMgM,YAE7C9M,IACFc,EAAMY,mBAAmBkB,KAAKigB,GAC9B/hB,EAAMa,kBAAkBiB,KAAKggB,IAEhB,IAAX5iB,EAAc,CACXc,EAAMmQ,cACTnQ,EAAMoQ,iBAAiBkH,EAAKtX,EAAMmI,MAAOnI,EAAMgM,YAEjD,IAAIjK,EAAO,CACTyD,MAAO8R,EACPuL,MAAO7iB,EAAMa,kBACbmhB,SAAUhiB,EAAMY,mBAChB6Y,eAAcnC,EACdwL,WAAW,GAEb9iB,EAAM6F,QAAQ,cAAe9D,GAC7B/B,EAAMY,mBAAqB,GAC3BZ,EAAMa,kBAAoB,IAExBugB,GAA0B,IAAXliB,GAA2B,OAAXA,GACjCc,EAAM+iB,iBAAiBzL,EAAK8J,GAE1BphB,EAAMqL,eAAiByW,GAAaA,EAAUhR,cAAczP,UAAUoP,SAAS,eAC7EzQ,EAAMwC,kBAAoBxC,EAAMmI,OAAShK,MAAM6kB,QAAQhjB,EAAMmI,QAAUnI,EAAMmI,MAAMjJ,OAAS,GAC9Fc,EAAMijB,kBAERjjB,EAAM8J,OAAO,0BAA2B,CACtCC,OAAQ,yBAOpBnK,EAAYnB,UAAUijB,eAAiB,SAAUvgB,EAAOgH,EAAOkZ,GAC7D,GAAI9iB,KAAKuG,gBAAgC,aAAdvG,KAAK0D,KAAqB,CACnD,IAAIihB,EAAW7B,GAA4B9iB,KAAK6L,gBAAgB7L,KAAK+H,SAAU,KAAM,aAAc6B,GAC/F+a,IACE/hB,GACF+hB,EAAS1f,aAAa,gBAAiB,SACvC,aAAY,CAAC0f,GAAW3kB,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,UAC9D,aAAd/R,KAAK0D,MACP,aAAY,CAACihB,EAAS9D,kBAAkBC,kBAAmB,aAG7D6D,EAAS1f,aAAa,gBAAiB,QACvC,YAAS,CAAC0f,GAAW3kB,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,UAC3D,aAAd/R,KAAK0D,MACP,YAAS,CAACihB,EAAS9D,kBAAkBC,kBAAmB,eAMlEzf,EAAYnB,UAAUgkB,WAAa,SAAUta,EAAOiZ,GAClD,GAAI7iB,KAAKuN,yBACDvN,KAAKsD,uBAAwBuf,GAAa,CAC9C,IAAIrhB,EAAUxB,KAAK6L,gBAAgB7L,KAAKuN,sBAAuB,OAAQ,aAAc3D,GACjFpI,GACF,aAAOA,KAKfH,EAAYnB,UAAU0kB,SAAW,SAAUlK,GACpC,YAAkBA,KACA,iBAAVA,EACT1a,KAAK6C,eAAe8C,MAAM+U,MAAQ,YAAWA,GACnB,iBAAVA,IAChB1a,KAAK6C,eAAe8C,MAAM+U,MAAQA,EAAM3G,MAAM,WAAa2G,EAAQ,YAAWA,MAIpFrZ,EAAYnB,UAAUkjB,iBAAmB,WACnCpjB,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QACtB,YAAkBX,KAAKuN,yBAC1BvN,KAAKuN,sBAAsB5H,MAAMC,QAAU,IAE3B,cAAd5F,KAAK0D,MAAsC,aAAd1D,KAAK0D,MACpC1D,KAAKic,mBAEPjc,KAAKkU,qBAEA,YAAkBlU,KAAKuN,yBAC1BvN,KAAKuN,sBAAsB5H,MAAMC,QAAU,QAExC,YAAkB5F,KAAKmc,oBAC1Bnc,KAAKmc,iBAAiBxW,MAAMC,QAAU,QAExC5F,KAAKif,qBAGT5d,EAAYnB,UAAU6iB,qBAAuB,SAAU8B,EAAcC,GAYnE,IAXA,IAAIC,EAAU,SAAU/jB,GACtB,IAAI6L,EAAOiY,EAAM9jB,GAEjB,GAAIvB,OAAO2E,KAAKygB,GAAchV,OAAM,SAAUtP,GAC5C,OAAOsM,EAAK/M,eAAeS,IAAQsM,EAAKtM,KAASskB,EAAatkB,MAE9D,MAAO,CACLqJ,MAAO5I,IAIJA,EAAI,EAAGA,EAAI8jB,EAAMnkB,OAAQK,IAAK,CACrC,IAAIgkB,EAAUD,EAAQ/jB,GACtB,GAAuB,iBAAZgkB,EAAsB,OAAOA,EAAQpb,MAElD,OAAQ,GAEVvI,EAAYnB,UAAU+kB,SAAW,SAAUrb,EAAO6G,EAAMsI,GACjD/Y,KAAK4J,QACR5J,KAAK4J,MAAQ,IAEf,IAAIsZ,EAAeljB,KAAK2L,mBAAqB3L,KAAK4N,eAAehE,GAASA,EAC1E,GAAI5J,KAAK2L,qBAAuB3L,KAAKklB,gBAAgBllB,KAAK4N,eAAehE,GAAQ5J,KAAK4J,SAAW5J,KAAK2L,oBAAsB3L,KAAK4J,MAAMxE,QAAQ8d,GAAgB,EAAG,CAIhK,GAHAljB,KAAKkF,cAAc,CACjB0E,MAAO,GAAGqO,OAAO,GAAIjY,KAAK4J,MAAO,CAACsZ,MACjC,GACCljB,KAAKsD,uBAAyBtD,KAAKwC,gBAAiB,CACtD,IAAIkK,EAAO1M,KAAKkc,YAAYjM,UACxB6C,OAAO,EACXpG,GAA8B,IAAtB1M,KAAK4J,MAAMjJ,OAAe,GAAKX,KAAKiO,cAAgB,IAE5DvB,GADAoG,EAAO9S,KAAKmlB,eAAenlB,KAAK4J,MAAMjJ,OAAS,GAE/CmS,EAAO9S,KAAKkc,YAAYjM,UACxBjQ,KAAKolB,kBAAkBplB,KAAKkc,YAAaxP,GAE3C,GAAI1M,KAAKsD,sBAAsC,aAAdtD,KAAK0D,KAAqB,CACzD,IAAImgB,EAAc,GAGdwB,GAFUrlB,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,IAAMX,KAAK4J,MAAM5J,KAAK4J,MAAMjJ,OAAS,GAC7JmS,EAAOrC,EACmB,MAAbzQ,KAAKyQ,MAA8B,KAAdzQ,KAAKyQ,KAAczQ,KAAKyQ,KAAOzQ,KAAKiO,cAAgB6E,EAAOA,GACjG+Q,EAAYtgB,KAAK8hB,GACjBrlB,KAAKkF,cAAc,CACjBuL,KAAMoT,EAAY9a,aACjB,IAGP,IAAIvH,EAAUxB,KAAK6L,gBAAgB7L,KAAK6H,KAAM,KAAM,aAAc+B,GAClE5J,KAAKsL,cACD9J,IACFxB,KAAKwM,aAAahL,GAClBxB,KAAKslB,iBAAiB9jB,IAEN,cAAdxB,KAAK0D,MAAsC,aAAd1D,KAAK0D,MACpC1D,KAAKulB,QAAQ9U,EAAM7G,EAAOmP,GAExB/Y,KAAKiE,kBAAoBjE,KAAK0H,OAAOC,SACvC3H,KAAKqS,cAAczI,GAErB5J,KAAKojB,mBACLpjB,KAAK2S,qBAEPtR,EAAYnB,UAAUyS,kBAAoB,WACxC,IAAIgO,EAAQ3gB,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAK4J,MAAMjJ,OAAS,EAClE,GAAIggB,IAAU3gB,KAAKsT,uBAAwB,CACzC,IAAIkS,EAAcxlB,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,aAC9E,aAAYqb,EAAa,aACzB,IAAIC,EAAgBzlB,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,mBAChF,YAASsb,EAAe,aAE1B,GAAI9E,EAAQ3gB,KAAKsT,uBAAwB,CACvC,IAAImI,EAAazb,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,IACxE,aAAYsR,EAAY,eAG5Bpa,EAAYnB,UAAUwlB,eAAiB,SAAU9b,EAAOmP,EAAKvX,EAASmkB,EAAchlB,EAAQilB,EAAWnV,GACrG,IAAIhP,EAAQzB,KACR6H,EAAO7H,KAAKmO,SAChB,GAAInO,KAAKib,aAAe0K,EAAc,CACpC/b,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAIA,GAASA,EAChG,IAAIic,EAAQD,GAAwB5lB,KAAK4N,eAAehE,GACpD7C,EAAY,CACdV,EAAG0S,EACHlM,KAAMrL,EACNiiB,SAAUoC,EACV3K,eAAcnC,EACd7R,QAAQ,GAEVlH,KAAKsH,QAAQ,SAAUP,GAAW,SAAUA,GAC1C,IAAKA,EAAUG,OAAQ,CAKrB,GAJIvG,IACFc,EAAMY,mBAAmBkB,KAAKsiB,GAC9BpkB,EAAMa,kBAAkBiB,KAAK/B,IAEhB,IAAXb,EAAc,CAChB,IAAI6C,EAAO,CACTyD,MAAO8R,EACPuL,MAAO7iB,EAAMa,kBACbmhB,SAAUhiB,EAAMY,mBAChB6Y,eAAcnC,EACdwL,WAAW,GAEb9iB,EAAM6F,QAAQ,cAAe9D,GAC7B/B,EAAMY,mBAAqB,GAEzBZ,EAAMuC,kBAAoBvC,EAAMqkB,kBAAoBrkB,EAAM0M,WAAatG,IACzEpG,EAAM0M,SAAWtG,GAEnB+B,EAAQnI,EAAMkK,mBAAqBlK,EAAMmM,eAAehE,GAASA,EAC7DnI,EAAM6B,uBACJ,YAAkB7B,EAAMuI,kBAC1BvI,EAAMuI,iBAAmB,CAACvI,EAAMmM,eAAehE,IAE3Cgc,EACEhmB,MAAM6kB,QAAQhjB,EAAMuI,kBACtBvI,EAAMuI,iBAAiBzG,KAAKqiB,GAE5BnkB,EAAMuI,iBAAmB,CAACvI,EAAMuI,iBAAkB4b,GAGhDhmB,MAAM6kB,QAAQhjB,EAAMuI,kBACtBvI,EAAMuI,iBAAiBzG,KAAK9B,EAAMmM,eAAehE,IAEjDnI,EAAMuI,iBAAmB,CAACvI,EAAMuI,iBAAkBvI,EAAMmM,eAAehE,MAK3EnI,EAAM6B,sBAAwBsG,IAAUnI,EAAM6B,uBAChD7B,EAAMskB,8BAA8Bnc,EAAOpI,EAASuX,EAAKtI,GAEvDhP,EAAMwC,kBAAoBxC,EAAMwe,oBAAsBxe,EAAMiG,OAAOC,SAA0B,aAAflG,EAAMiC,MACtFpC,EAAOpB,UAAU+jB,WAAWviB,KAAKD,SAM3CJ,EAAYnB,UAAUqlB,QAAU,SAAU9U,EAAM7G,EAAOvD,GACjDrG,KAAKuN,uBACPvN,KAAKgmB,QAAQvV,EAAM7G,EAAOvD,IAG9BhF,EAAYnB,UAAU0Z,gBAAkB,WACtC,IAAIxN,EAAWpM,KAAKuN,sBAAsBzF,iBAAiB,QAAU1G,EAAV,oBAE3D,GADA,aAAYgL,EAvkFI,mBAwkFZ,IAAQ9F,SAEV,IADA,IAAI2f,EAAgBjmB,KAAKuN,sBAAsBzF,iBAAiB,QA1kFrD,gBA0kF0ElD,MAAM,KAAK,IACvFmI,EAAQ,EAAGA,EAAQkZ,EAActlB,OAAQoM,IAChDkZ,EAAclZ,GAAOpH,MAAMC,QAAU,QAI3CvE,EAAYnB,UAAUgmB,wBAA0B,SAAU7f,GACxD,IAAI8f,EAAW,YAAQ9f,EAAE/F,OAAQ,IAAMc,GACnCglB,EAAYD,EAAS5b,cAAc,QAllF1B,gBAklF+C3F,MAAM,KAAK,IACnE5E,KAAK2Y,UAAY3Y,KAAK4Y,WACnBuN,EAASrjB,UAAUoP,SAnlFV,qBAolFZlS,KAAK4Z,kBACLwM,EAAUzgB,MAAMC,QAAU,GAC1BugB,EAASrjB,UAAUC,IAtlFP,oBAwlFd/C,KAAKiI,eACL5B,EAAEwS,mBAGNxX,EAAYnB,UAAUmmB,cAAgB,SAAUC,GAC9C,IAAIC,GAAgB,EACpB,GAAmC,mBAAxBD,GAAsCA,EAC/C,IACEC,IAAgB,aAAUD,EAAqB9e,UAAU7G,OACzD,MAAO6lB,GACPD,GAAgB,EAGpB,OAAOA,GAETllB,EAAYnB,UAAUumB,mBAAqB,SAAUC,GACnD,OAAOA,EAAMhiB,QAAQ,uBAAuB,SAAUqP,GACpD,MAAO,KAAOA,EAAMwI,WAAW,GAAK,QAGxClb,EAAYnB,UAAU8lB,QAAU,SAAUtZ,EAAM9C,EAAOvD,GACrD,IAAI5E,EAAQzB,KACRyjB,EAAW,CACbhT,KAAM7G,EACNA,MAAOA,GAEL+c,EAAO3mB,KAAK2K,cAAc,OAAQ,CACpCC,UAAWxJ,EACXwlB,MAAO,CACL,aAAchd,EACd,MAAS8C,KAITma,EAAc7mB,KAAK2K,cAAc,OAAQ,CAC3CC,UA7nFa,kBA+nFXwb,EAAYpmB,KAAK2K,cAAc,OAAQ,CACzCC,UA/nFW,kBAooFb,GAHI5K,KAAK8Q,WACP2S,EAAWzjB,KAAK4N,eAAehE,IAE7B5J,KAAK8mB,gBAAkB,YAAkBrD,GAAW,CACtD,IAAI9U,EAAa3O,KAAKqmB,cAAcrmB,KAAK8mB,eAMrCC,GAL8B,mBAAvB/mB,KAAK8mB,eAAgCnY,EAC7B,YAAQ,aAAO3O,KAAK8mB,cAAetf,UAAUyI,UAAUtL,QAEvD,YAAQ3E,KAAK8mB,gBAEGrD,EAAUzjB,KAAM,gBAAiBA,KAAKgnB,gBAAiBhnB,KAAKinB,iBAAkB,KAAMJ,GACnHE,GAAiBA,EAAcpmB,OAAS,GAC1C,YAAOomB,EAAeF,GAExB7mB,KAAKkI,4BACIlI,KAAKknB,oBACdL,EAAYM,UAAYza,EAExBma,EAAY5W,UAAYjQ,KAAKymB,mBAAmB/Z,EAAK3D,YAEvD4d,EAAK7gB,YAAY+gB,GACjB,IAAI9f,EAAY,CACdmU,eAAc7U,EACdod,SAAUA,EACVpd,EAAGA,EACH+gB,SAAU,SAAUC,GAClB,YAAS,CAACV,GAAOU,IAEnBngB,QAAQ,GAEVlH,KAAKsnB,gBAAkBtnB,KAAKiZ,WAAajZ,KAAKmb,cAC9Cnb,KAAKsH,QAAQ,UAAWP,GAAW,SAAUA,GACtCA,EAAUG,SACT,IAAQZ,UACVqgB,EAAK7jB,UAAUC,IAvpFP,cAwpFR,YAAO,CAACqjB,GAAYO,GACpBP,EAAUzgB,MAAMC,QAAU,OAC1B,IAAa7C,IAAI4jB,EAAM,QAASllB,EAAMykB,wBAAyBzkB,KAE/D,IAAasB,IAAI4jB,EAAM,YAAallB,EAAM4gB,UAAW5gB,GACjDA,EAAM8lB,iBACRZ,EAAK7gB,YAAYsgB,IAGrB,IAAarjB,IAAIqjB,EAAW,YAAa3kB,EAAM8gB,aAAc9gB,GAC7DA,EAAM8L,sBAAsBzH,YAAY6gB,IACnCllB,EAAMmQ,cAAgBvL,GACzB5E,EAAMoQ,iBAAiBxL,EAAG5E,EAAMmI,MAAOnI,EAAMgM,iBAKrDpM,EAAYnB,UAAUwc,eAAiB,WACrC,IAAIhC,EAAQ,YAAW1a,KAAKwnB,YACxB9M,EAAMtV,QAAQ,MAAQ,IAExBsV,GADiB1a,KAAK6F,iBAAiByU,YAAchC,WAAWoC,GAAS,KACtD3R,WAAa,MAElC,OAAO2R,GAETrZ,EAAYnB,UAAUunB,QAAU,WAC1BznB,KAAK2Y,UAAY3Y,KAAK4Y,UACxB5Y,KAAKkU,oBAGT7S,EAAYnB,UAAUwnB,SAAW,WAC1B1nB,KAAKiR,aACRjR,KAAKyF,aAAaE,MAAMC,QAAU,SAGtCvE,EAAYnB,UAAUynB,WAAa,SAAU7d,EAAYpC,GACvD,IAAIkgB,GAAU,YAAkBlgB,EAAOkgB,SACnCC,EAAgB,YAAkBngB,EAAOogB,YAAcpgB,EAASA,EAAOogB,WAqB3E,OApBA9nB,KAAK+nB,mBAAqC,OAAhBrgB,EAAO+I,MAAkC,OAAjB/I,EAAOkC,MAAiB,CACxElC,OAAQmgB,EACRG,SAAUJ,EACVK,eAAgB,CACdC,cAAe,iBAEf,CACFxgB,OAAQ,CACNkC,MAAO,SAGX,YAAO5J,KAAK+nB,mBAAoB/nB,KAAK+nB,mBAAoBrgB,GAAQ,GAC/C,aAAd1H,KAAK0D,MACP1D,KAAKuL,OAAO,aAAc,CACxBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACboG,WAAYA,EACZ+d,cAAeA,IAGZ7nB,KAAK+nB,oBAEd1mB,EAAYnB,UAAUsO,YAAc,WAClC,IAAI/M,EAAQzB,KAIZ,GAHKA,KAAK6H,MACRvG,EAAOpB,UAAU6b,OAAOra,KAAK1B,MAE3BA,KAAKiD,UAAYuE,SAASC,KAAKyK,SAASlS,KAAKiD,SAASzB,UAAYxB,KAAKuG,eACzEvG,KAAKiI,oBAGP,IAAKjI,KAAKiD,WACH,YAAkBjD,KAAK6E,cAAe,CACzC2C,SAASC,KAAK3B,YAAY9F,KAAK6E,cAC/B,IAAIsjB,EAAiBnoB,KAAK6E,aAAa0F,cAAc,oBACnC,aAAdvK,KAAK0D,OAAwB1D,KAAKuG,gBAAkB4hB,GAAkBnoB,KAAKooB,eAC7ED,EAAenlB,SACfhD,KAAKooB,aAAe,MAEtB,IAAIC,EAAgB5f,SAASzI,KAAKuI,YAAa,IAW/C,GAVAvI,KAAK6E,aAAac,MAAM2iB,WAAa,SACjCtoB,KAAK0I,iBACP1I,KAAKuoB,oBACLF,GAAiBroB,KAAK2I,OAAOG,aAC7B9I,KAAK8B,qBAAoD,IAA7B9B,KAAK2I,OAAOG,cAE1C,YAAO,CAAC9I,KAAK6H,MAAO7H,KAAK6E,eACpB7E,KAAK6H,KAAK/E,UAAUoP,SAAS,IAAoBO,SAAWzS,KAAK8b,WAAW,KAC/E9b,KAAKsW,eAAiBtW,KAAK8b,WAAW,GAAGhT,aAAeL,SAAShC,OAAOyT,iBAAiBla,KAAK8b,WAAW,IAAIwD,aAAc,KAEzHtf,KAAKsD,uBAAyBtD,KAAK6H,KAAK/E,UAAUoP,SAAS,IAAoBO,QAAS,CAC1F,IAAKzS,KAAK6H,KAAK0C,cAAc,2BAA6BvK,KAAK6H,KAAK0C,cAAc,kBAAmB,CACnG,IAAIwM,EAAiB/W,KAAK2K,cAAc,MAAO,CAC7CC,UAAW,0BAEbmM,EAAepR,MAAMkF,QAAU7K,KAAK8K,qBACpC9K,KAAK6H,KAAK/B,YAAYiR,GAAgBjR,YAAY9F,KAAK6H,KAAK0C,cAAc,wBACjEvK,KAAK6H,KAAK0C,cAAc,4BAEjCvK,KAAK6H,KAAK2C,uBAAuB,yBAAyB,GAAG7E,MAAQ3F,KAAK8K,sBAQ5E,GANA9K,KAAKiK,iBACLjK,KAAKkK,cAAgBlK,KAAK6H,KAAKC,iBAAiB,IAAM,IAAoBqC,IAC1EnK,KAAKoK,iBAAmBpK,KAAKqK,UACX,aAAdrK,KAAK0D,MACP1D,KAAK0kB,kBAEF1kB,KAAK6H,KAAK0C,cAAc,kBAS3BvK,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAAG7E,MAAQ3F,KAAKyK,4BATpB,CAC9C,IAAIC,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,kBAEbF,EAAc/E,MAAMkF,QAAU7K,KAAKyK,wBACnCzK,KAAK6E,aAAa0F,cAAc,mBAAmBzE,YAAY4E,IAoCnE,GA9BI1K,KAAKgJ,iBACPhJ,KAAKwoB,oBACLH,GAAiBroB,KAAKiJ,OAAOH,aAC7B9I,KAAK+B,qBAAoD,IAA7B/B,KAAKiJ,OAAOH,cAExB,aAAd9I,KAAK0D,MAAuB1D,KAAKsJ,eACnCtJ,KAAKuL,OAAO,YAAa,CACvBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,OAEf2kB,GAAiBroB,KAAKyoB,iBACC,aAAdzoB,KAAK0D,MAAwB1D,KAAKsJ,eAAkBtJ,KAAK0I,gBAAmB1I,KAAKgJ,eAMnE,aAAdhJ,KAAK0D,MAAwB1D,KAAKsJ,gBAC3CtJ,KAAKuL,OAAO,YAAa,CACvBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,OAEf2kB,EAAgB5f,SAASzI,KAAKuI,YAAa,IACvCvI,KAAK0I,gBAAkB1I,KAAK2I,SAC9B0f,GAAiBroB,KAAK2I,OAAOG,cAE3B9I,KAAKgJ,gBAAkBhJ,KAAKiJ,SAC9Bof,GAAiBroB,KAAKiJ,OAAOH,gBAf/B9I,KAAKuL,OAAO,YAAa,CACvBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,OAEf2kB,EAAgB5f,SAASzI,KAAKuI,YAAa,KAc3B,aAAdvI,KAAK0D,KAAqB,CAC5B,IAAIF,EAAO,CACTgI,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbglB,aAAc1oB,KAAK6E,cAEjB7E,KAAKuG,iBACPvG,KAAKuL,OAAO,YAAa/H,GACzB6kB,GAAiBroB,KAAK2oB,iBAExB,YAAS,CAAC3oB,KAAK6E,cAAe,cAEP,SAArB7E,KAAKuI,aACPvI,KAAK6H,KAAKlC,MAAMkD,UAAY,YAAWwf,GACvCroB,KAAK6E,aAAac,MAAMkD,UAAY,YAAW7I,KAAKuI,cAEpDvI,KAAK6H,KAAKlC,MAAMkD,UAAY,YAAW7I,KAAKuI,aAE9CvI,KAAKiD,SAAW,IAAI,IAAMjD,KAAK6E,aAAc,CAC3C6V,MAAO1a,KAAK0c,iBACZkM,WAAY,WACZhH,SAAU5hB,KAAKkD,UAAY,CACzB2lB,EAAG,QACHC,EAAG,UACD,CACFD,EAAG,OACHC,EAAG,UAELC,SAAU/oB,KAAK6C,eACfmmB,UAAWhpB,KAAKkD,UAAY,CAC1B2lB,EAAG,MACHC,EAAG,QACD,CACFD,EAAG,OACHC,EAAG,QAELG,QAAS,EACT/lB,UAAWlD,KAAKkD,UAChBkF,OAAQpI,KAAKoI,OACb8gB,MAAO,WACL,GAAIznB,EAAMwB,SAASzB,QAAQ+Q,cAAe,CACxC9Q,EAAMwB,SAASkmB,qBAEf,IAAIC,EAAsB3nB,EAAMoD,aAAa0F,cAAc,mBACxC,aAAf9I,EAAMiC,MAAuB0lB,GAAuB5hB,SAASmF,gBAAkByc,GACjFA,EAAoBC,OAEtB,YAAO5nB,EAAMwB,SAASzB,WAG1B8nB,KAAM,WAEJ,GADA7nB,EAAMwB,SAAS2Z,oBACVnb,EAAM2H,aAAc,CACvB,IAAI0C,EAAYrK,EAAMoG,KAAK0C,cAAc,MACrCuB,IACmB,aAAfrK,EAAMiC,OAAwBjC,EAAM8E,gBAAkB9E,EAAMuC,mBAAsD,KAAjCvC,EAAMgN,gBAAgB9J,SAC3GlD,EAAMsG,SAAW+D,EAAUiF,UAAYjF,EAAUiF,WAAU,GAAQjF,IAGvErK,EAAM2H,cAAe,EAEvB3H,EAAMwB,SAASsmB,mBACM,aAAf9nB,EAAMiC,OAAwBjC,EAAM8E,gBAAkB9E,EAAMuC,mBAAsD,KAAjCvC,EAAMgN,gBAAgB9J,QAAmBlD,EAAM6B,uBACpI7B,EAAM4H,eACF5H,EAAM6B,sBAAuC,aAAf7B,EAAMiC,MACtCjC,EAAMwI,kBAGVxI,EAAMgK,uBAAwB,EAC9BhK,EAAMiK,qBACDjK,EAAMoG,KAAK/E,UAAUoP,SAAS,IAAoBO,SAAWhR,EAAMqa,WAAW,IAA2C,IAArCra,EAAMqa,WAAW,GAAGhT,eAC3GrH,EAAM6U,eAAiB7U,EAAMqa,WAAW,GAAGhT,aAAeL,SAAShC,OAAOyT,iBAAiBzY,EAAMqa,WAAW,IAAIwD,aAAc,IAC1H7d,EAAMoG,KAAK2C,uBAAuB,yBAAyB,KAE7D/I,EAAMoG,KAAK2C,uBAAuB,yBAAyB,GAAG7E,MAAQlE,EAAMqJ,uBAG5ErJ,EAAM8E,gBACR9E,EAAM8J,OAAO,aAAc,CACzBC,OAAQ,oBACR1G,OAAuB,aAAfrD,EAAMiC,KACdkG,MAAO,UAGPnI,EAAM6B,uBACR7B,EAAM8J,OAAO,kBAAmB,CAC9BC,OAAQ,gBACRsL,UAAWrV,EAAMgU,gBACjB3Q,OAAQrD,EAAM6B,uBAEhBgF,YAAW,WACL7G,EAAMmI,MACRnI,EAAM6b,sBACG7b,EAAM6K,cAAgB7K,EAAM6K,aAAakd,QAAQC,MAC1DhoB,EAAMoG,KAAK8O,UAAYlV,EAAM6K,aAAakd,QAAQC,OAEnD,KAGPC,mBAAoB,WACb,IAAQpjB,UACX7E,EAAMkF,eAIZ3G,KAAK2pB,eAAe3pB,KAAK6E,cACzB7E,KAAK4pB,oBAAsB5pB,KAAKiD,SAASzB,QAAQ+I,cAAc,cAC7C,aAAdvK,KAAK0D,MAAuB,IAAQ4C,UAAYtG,KAAKuG,gBAAkBvG,KAAK6pB,oBAC9E7pB,KAAKuL,OAAO,kBAAmB,CAC7BC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,OAGb1D,KAAKiX,aACPjX,KAAKkX,YAEPlX,KAAKiD,SAASimB,QACdlpB,KAAK6E,aAAac,MAAM2iB,WAAa,KAI3CjnB,EAAYnB,UAAUypB,eAAiB,SAAUG,GAC3B,aAAd9pB,KAAK0D,MAAuB,IAAQ4C,UAAYtG,KAAKuG,gBAAkBvG,KAAK6pB,qBAChE,YAAUC,GACZnpB,OAAS,IACrBmpB,EAASnkB,MAAMokB,WAAathB,SAASyR,iBAAiB4P,GAAUC,UAAW,IAAM,MAEnF/pB,KAAKiD,SAAS2Z,qBAGlBvb,EAAYnB,UAAUqoB,kBAAoB,WAEpCvoB,KAAK2I,QACP3I,KAAK2I,OAAO3F,SAEdhD,KAAK2I,OAAS3I,KAAK2K,cAAc,OACjC,YAAS,CAAC3K,KAAK2I,QAj7FN,gBAk7FT,IAAIqhB,EAAchqB,KAAKqmB,cAAcrmB,KAAK0I,gBAOtC0D,GAN+B,mBAAxBpM,KAAK0I,gBAAiCshB,EAC9B,YAAQ,aAAOhqB,KAAK0I,eAAgBlB,UAAUyI,UAAUtL,QAExD,YAAQ3E,KAAK0I,iBAGF,GAAI1I,KAAM,iBAAkBA,KAAKiqB,iBAAkBjqB,KAAKinB,iBAAkB,KAAMjnB,KAAK2I,QAC/GyD,GAAYA,EAASzL,OAAS,GAChC,YAAOyL,EAAUpM,KAAK2I,QAEN,aAAd3I,KAAK0D,MAAuB1D,KAAKsJ,cACnC,aAAQ,CAACtJ,KAAK2I,QAAS3I,KAAK6E,cAE5B,YAAO,CAAC7E,KAAK2I,QAAS3I,KAAK6E,cAE7B,IAAa9B,IAAI/C,KAAK2I,OAAQ,YAAa3I,KAAKkqB,gBAAiBlqB,OAEnEqB,EAAYnB,UAAUsoB,kBAAoB,WAEpCxoB,KAAKiJ,QACPjJ,KAAKiJ,OAAOjG,SAEdhD,KAAKiJ,OAASjJ,KAAK2K,cAAc,OACjC,YAAS,CAAC3K,KAAKiJ,QA38FN,gBA48FT,IAAIkhB,EAAcnqB,KAAKqmB,cAAcrmB,KAAKgJ,gBAOtCoD,GAN+B,mBAAxBpM,KAAKgJ,gBAAiCmhB,EAC9B,YAAQ,aAAOnqB,KAAKgJ,eAAgBxB,UAAUyI,UAAUtL,QAExD,YAAQ3E,KAAKgJ,iBAGF,GAAIhJ,KAAM,iBAAkBA,KAAKoqB,iBAAkBpqB,KAAKinB,iBAAkB,KAAMjnB,KAAKiJ,QAC/GmD,GAAYA,EAASzL,OAAS,GAChC,YAAOyL,EAAUpM,KAAKiJ,QAExB,YAAO,CAACjJ,KAAKiJ,QAASjJ,KAAK6E,cAC3B,IAAa9B,IAAI/C,KAAKiJ,OAAQ,YAAajJ,KAAKkqB,gBAAiBlqB,OAEnEqB,EAAYnB,UAAUmhB,kBAAoB,WAExC,IAAIgJ,EAAcrqB,KAAKsqB,WACPtqB,KAAKohB,YAAYiJ,EAAarqB,KAAK0H,QA6BnD,GA5BA1H,KAAK6H,KAAK8O,UAAY,EACtB3W,KAAK6W,gBAAkB,CACrB0T,kBAAmB,KACnBC,UAAW,KACXC,aAAc,GACdjB,QAAS,GACTjd,WAAY,EACZ2C,SAAUlP,KAAKqK,WAEjBrK,KAAK4W,mBAAqB,EAC1B5W,KAAK0qB,iBAAmB1qB,KAAKqK,UACzBrK,KAAK8J,sBAAsB,IACzB9J,KAAK2qB,iBAAmB,EAC1B3qB,KAAKsK,eAAiBtK,KAAK4qB,UAAY5qB,KAAK2qB,gBAE5C3qB,KAAK+J,UAAU/J,KAAK8J,YAItB9J,KAAKsK,eAAiBtK,KAAK4qB,UAAY5qB,KAAK8J,YAAc9J,KAAK8J,WAAWnJ,OAASX,KAAK8J,WAAWnJ,OAAS,EAE5F,aAAdX,KAAK0D,OACP1D,KAAKsK,eAAiBtK,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAKsK,eAAiBtK,KAAK4J,MAAMjJ,OAASX,KAAKsK,gBAEzGtK,KAAK6qB,mBACL7qB,KAAKkQ,cAAwC,IAAxBlQ,KAAKsK,gBAAwBtK,KAAKsK,eAAkC,EAAjBtK,KAAKqK,cAAoBrK,KAAK8J,sBAAsB,MAAgB9J,KAAK8J,sBAAsB,KAAe9J,KAAKsK,gBAAkBtK,KAAKqK,WAAa,EAAIrK,KAAKkQ,cACxOlQ,KAAKiK,iBAEDjK,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAEpDxK,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAAG7E,MAAQ3F,KAAKyK,6BAC7D,IAAKzK,KAAK6H,KAAK0C,cAAc,mBAAqBvK,KAAKkQ,cAAgB,EAAG,CAC/E,IAAIxF,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,kBAEbF,EAAc/E,MAAMkF,QAAU7K,KAAKyK,wBACnCzK,KAAK6E,aAAa0F,cAAc,mBAAmBzE,YAAY4E,GAEjE1K,KAAKmO,SAAWkc,EAChBrqB,KAAKkK,cAAgBlK,KAAK6H,KAAKC,iBAAiB,gBAE5C9H,KAAK6H,KAAK2C,uBAAuB,yBAAyB,KAE5DxK,KAAK6H,KAAK2C,uBAAuB,yBAAyB,GAAG7E,MAAQ3F,KAAK8K,sBAExE9K,KAAKsD,sBACPtD,KAAKuL,OAAO,mBAAoB,CAC9BC,OAAQ,mBAIdnK,EAAYnB,UAAU4qB,SAAW,SAAUzkB,GACzC,GAAIrG,KAAK2Y,UAAY3Y,KAAK4Y,SAAU,CAClC,IAAI9F,OAAO,EAGX,GAFA9S,KAAKwR,aAAc,EACnBxR,KAAK+U,kBAAmB,EACpB/U,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,EAAG,CACnCX,KAAKuG,iBACPvG,KAAKmL,iBAAiB,MACJ,aAAdnL,KAAK0D,MAAuB1D,KAAK0O,qBACnC1O,KAAK0O,mBAAmB9E,MAAQ,KAGpC,IAAIqJ,EAAYjT,KAAK6H,MAAQ7H,KAAK6H,KAAKC,iBAAiB,kBACxD,GAAImL,GAAaA,EAAUtS,OAAS,EAClCX,KAAK+qB,gBAAe,EAAO1kB,QAG3B,IADArG,KAAK0jB,YAAc,EACd5Q,EAAO9S,KAAK4J,MAAM5J,KAAK0jB,aAAc1jB,KAAK0jB,YAAc1jB,KAAK4J,MAAMjJ,OAAQmS,EAAO9S,KAAK4J,MAAM5J,KAAK0jB,aACrG1jB,KAAK8N,YAAYgF,EAAMzM,EAAG,MAAM,GAGpCrG,KAAKgrB,kBAAoB,KACzBhrB,KAAKgF,aAAaO,gBAAgB,8BAElCvF,KAAKwkB,iBAAiBne,GAExBrG,KAAKirB,qBACL,IAAMnR,kBAAkB9Z,KAAK6C,eAAgB7C,KAAK2K,eAClD3K,KAAK+Z,iBACA,YAAkB/Z,KAAK6C,iBAAoB,YAAkB7C,KAAK6C,eAAe2H,uBAAuB,cAAc,IAAMxK,KAAK6C,eAAe2H,uBAAuB,wBAAwB,IAA8B,UAAxBxK,KAAKmZ,iBAC7MnZ,KAAK6C,eAAe2H,uBAAuB,wBAAwB,GAAG1H,UAAUC,IAAI,UAElF/C,KAAKsD,uBACPtD,KAAKqhB,oBACDrhB,KAAKuN,wBACPvN,KAAKuN,sBAAsB0C,UAAY,IAEpCjQ,KAAKkY,qBACRlY,KAAKuL,OAAO,mBAAoB,CAC9BC,OAAQ,mBAIVxL,KAAKsD,uBACPtD,KAAK6H,KAAK8O,UAAY,EACtB3W,KAAK6W,gBAAkB,KACvB7W,KAAK4W,mBAAqB,EAC1B5W,KAAK0qB,iBAAmB1qB,KAAKqK,WAE/BrK,KAAK+U,kBAAmB,EAE1B/U,KAAKkrB,gBAAiB,EACtB,IAAanoB,IAAIyE,SAAU,UAAWxH,KAAKmrB,iBAAkBnrB,OAE/DqB,EAAYnB,UAAUirB,iBAAmB,SAAU9kB,GAC7CrG,KAAKkrB,gBACP7kB,EAAE+kB,kBAEJprB,KAAKkrB,gBAAiB,EACtB,IAAaloB,OAAOwE,SAAU,UAAWxH,KAAKmrB,mBAEhD9pB,EAAYnB,UAAUskB,iBAAmB,SAAUne,EAAGwc,GACpD,IAAIpV,EAAazN,KAAK4J,MAAQ5J,KAAK4J,MAAM8D,QAAU,GACnD,GAAI1N,KAAK+H,UAAY/H,KAAKmO,WAAanO,KAAKuG,gBAAgC,aAAdvG,KAAK0D,MAAuB1D,KAAKgE,kBAAmB,CAChH,IAAI6D,EAAO7H,KAAK+H,SAASgJ,UAAY/Q,KAAK+H,SAASgJ,WAAU,GAAQ/Q,KAAK+H,SAC1E/H,KAAKyP,iBAAiB5H,EAAM7H,KAAK8Q,UAEnC9Q,KAAKuH,uBACLvH,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GACvB,QAAdrG,KAAK0D,MAAoB1D,KAAKiR,YAA4B,aAAdjR,KAAK0D,MACnD1D,KAAKyZ,kBAEyB,KAA5BzZ,KAAKgF,aAAa4E,QACpB5J,KAAKkO,mBACLlO,KAAKmU,OAAO,OAEdnU,KAAKqO,uBACDrO,KAAK8M,eACP9M,KAAKiI,eAEHjI,KAAKiX,aACPjX,KAAKkX,YAEFlX,KAAKiR,aACJjR,KAAK4R,cACP5R,KAAK6R,iBAAiBxL,EAAGrG,KAAK4J,MAAO6D,GAErB,aAAdzN,KAAK0D,MACP1D,KAAKgF,aAAa4B,SAGJ,aAAd5G,KAAK0D,OACP1D,KAAKmF,qBACLnF,KAAK6Z,oBACD7Z,KAAK4R,cAAgBiR,IAAe,YAAkB7iB,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,SAClFX,KAAK6R,iBAAiBxL,EAAGrG,KAAK4J,MAAO5J,KAAKyN,aAGzCzN,KAAK4R,eAAgBiR,IAAe,YAAkB7iB,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,QACnFX,KAAK6R,iBAAiBxL,EAAGrG,KAAK4J,MAAO5J,KAAKyN,YAE1B,aAAdzN,KAAK0D,MAAuB1D,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,UACzF3H,KAAK4H,gBAAgB5H,KAAK6H,KAAKC,iBAAiB,kBAAmB9H,KAAK+H,SAASD,iBAAiB,mBAEpGzB,EAAEwS,kBAEJxX,EAAYnB,UAAUmrB,aAAe,WACnCrrB,KAAKiI,eACCjI,KAAKiR,YAA4B,aAAdjR,KAAK0D,OAAwB1D,KAAKkc,cAAelc,KAAKkc,YAAY3J,eACzFvS,KAAKyZ,mBAGTpY,EAAYnB,UAAUorB,kBAAoB,SAAUjlB,GAClD,IAAK,YAAkBrG,KAAKgF,cAAe,CACzC,IAAIumB,EAAc,YAAQvrB,KAAKgF,aAAc,QAC7C,GAAIumB,GAAellB,EAAE/F,SAAWirB,EAAa,CAC3C,IAAIC,EAAUxrB,KAAKwB,QAAQiqB,UAAYzrB,KAAKwY,iBAAmB,KAAOxY,KAAKwB,QAAQgM,aAAa,sBAChGxN,KAAKyQ,KAAO+a,KAIlBnqB,EAAYnB,UAAUwrB,UAAY,WAChC,IAAa3oB,IAAI/C,KAAK6F,iBAAkB,YAAa7F,KAAKyY,aAAczY,MACxE,IAAa+C,IAAI0D,OAAQ,SAAUzG,KAAKqrB,aAAcrrB,MACtD,IAAa+C,IAAI/C,KAAKgF,aAAc,QAAShF,KAAKgc,eAAgBhc,MAClE,IAAa+C,IAAI/C,KAAKgF,aAAc,UAAWhF,KAAKge,UAAWhe,MAC/D,IAAa+C,IAAI/C,KAAKgF,aAAc,QAAShF,KAAK2T,MAAO3T,MACvC,aAAdA,KAAK0D,MACP,IAAaX,IAAI/C,KAAKgF,aAAc,QAAShF,KAAK2rB,QAAS3rB,MAE7D,IAAa+C,IAAI/C,KAAKgF,aAAc,OAAQhF,KAAK8Y,cAAe9Y,MAChE,IAAa+C,IAAI/C,KAAK6F,iBAAkB,YAAa7F,KAAKynB,QAASznB,MACnE,IAAIurB,EAAc,YAAQvrB,KAAKgF,aAAc,QACzCumB,GACF,IAAaxoB,IAAIwoB,EAAa,QAASvrB,KAAKsrB,kBAAmBtrB,MAEjE,IAAa+C,IAAI/C,KAAK6F,iBAAkB,WAAY7F,KAAK0nB,SAAU1nB,MACnE,IAAa+C,IAAI/C,KAAKyF,aAAc,YAAazF,KAAK8qB,SAAU9qB,MAChE,IAAa+C,IAAI/C,KAAKgF,aAAc,QAAShF,KAAK4rB,aAAc5rB,OAElEqB,EAAYnB,UAAUyrB,QAAU,SAAUtlB,GACpCrG,KAAK0C,cACP1C,KAAKoC,YAAa,EAElBpC,KAAKoC,YAAa,EAEpBpC,KAAK0C,eAAgB,EAEjB,IAAQ4D,UAAkC,YAAtB,IAAQulB,KAAKzkB,MACnCpH,KAAKmU,OAAO9N,IAGhBhF,EAAYnB,UAAU0rB,aAAe,SAAU3kB,GAC7C,IAAIxF,EAAQzB,KACZsI,YAAW,WACT7G,EAAMwS,gBACNxS,EAAM0S,OAAOlN,OAGjB5F,EAAYnB,UAAUiU,OAAS,SAAU9N,GACvC,IAAI5E,EAAQzB,KAUZ,GATAA,KAAKuC,uBAAwB,EAC7BvC,KAAKyX,UAAYzX,KAAK8J,YAAc9J,KAAK8J,WAAWnJ,OAAS,EAAIX,KAAK8J,WAAW,GAAK,KACjF,YAAkBzD,KACrBrG,KAAKmR,QAAU9K,EAAE8K,UAEdnR,KAAK8M,eAAiB9M,KAAKyT,aAC9BzT,KAAK0T,UAAUrN,GAEjBrG,KAAKwT,UAAUnN,IACXrG,KAAK6c,mBAAsB7c,KAAKuG,gBAAmB,YAAkBF,IAAoB,IAAdA,EAAE8K,QAE1E,CACL,IAAIV,EAAOzQ,KAAKyO,gBAChB,GAAIzO,KAAKuG,eAAgB,CACnBvG,KAAKgE,mBACPhE,KAAKuY,mBAAoB,GAE3BvY,KAAKirB,qBACLjrB,KAAK8rB,cAAe,EACpB,IAAIC,EAAc,CAChBC,sBAAsB,EACtBvb,KAAMzQ,KAAKyO,gBACXwd,WAAY,SAAUniB,EAAYJ,EAAOhC,GACnCqkB,EAAY7kB,SAGhBzF,EAAM4S,YAAa,EACnB5S,EAAMgT,kBAAoB/K,EAC1BjI,EAAM6S,oBAAqB,EAC3B7S,EAAMyqB,mBAAoB,EAC1BzqB,EAAM8S,YAAYzK,EAAYJ,EAAOhC,KAEvCT,MAAOZ,EACPa,QAAQ,GAEVlH,KAAKsH,QAAQ,YAAaykB,GAAa,SAAUhlB,GAC/CtF,EAAMQ,kBAAoB8E,EAAUG,OAC/BH,EAAUG,QACRzF,EAAM4S,YAAetN,EAAUilB,uBAClCvqB,EAAMkT,cAAe,EACrBlT,EAAMS,mBAAoB,EACtBT,EAAMqI,sBAAsB,KAAerI,EAAMuC,mBACnDvC,EAAM+O,kBAAmB,GAE3B/O,EAAM8S,YAAY9S,EAAMqI,WAAY,KAAMrI,EAAMiG,QAChDjG,EAAMS,mBAAoB,WAI3B,GAAIlC,KAAKgE,iBAAkB,CAChC,IAAI0F,EAAQ,IAAI,IAChBA,EAAQ1J,KAAKuG,gBAA2B,KAATkK,EAAc/G,EAAM0F,MAAMpP,KAAK0H,OAAO+I,KAAM,aAAcA,EAAMzQ,KAAK4M,WAAY5M,KAAK0Q,cAAgBhH,EACjI1J,KAAKsD,qBACPtD,KAAKuU,YAAYvU,KAAK8J,WAAYJ,EAAO1J,KAAK0H,QAE9C1H,KAAKuU,YAAYvU,KAAK8Q,SAAUpH,EAAO1J,KAAK0H,QAE9C1H,KAAKiK,qBACA,CACL,IAAIC,EAAgBlK,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,0BAC5EgiB,EAAOnsB,KAAK6U,WAAW7U,KAAKmO,UAAU2G,OACtCnI,EAAgB,YAAO3M,KAAKyO,gBAAiBvE,EAAe,aAAclK,KAAK4M,YACnF,GAAI5M,KAAKsD,sBAAwD,KAAhCtD,KAAKyO,gBAAgB9J,SAAkB3E,KAAKuG,eAAgB,CAC3F,IAAI6lB,GAA2B,EAY/B,KAXIpsB,KAAKsM,aAAa4C,UAAYlP,KAAKkW,qBAAuBlW,KAAKkW,qBAAuBlW,KAAKsK,gBAA+C,IAA7BtK,KAAKkW,uBACpHkW,GAA2B,EAC3BpsB,KAAKqsB,sBAAwB,EAC7BrsB,KAAKkW,oBAAsB,IAAMlW,KAAKsK,eAAiBtK,KAAKsK,eAAiB,IAC7EtK,KAAKssB,sBAAsBtsB,KAAKqsB,sBAAuBrsB,KAAKkW,qBAC5DkW,GAA2B,IAEQ,IAAjCpsB,KAAKsM,aAAaC,YAAoB6f,IACxCpsB,KAAKusB,sBAAsB,EAAGvsB,KAAKqK,WAErCsC,EAAgB,YAAO3M,KAAKyO,gBAAiBzO,KAAKwsB,yBAA0BxsB,KAAKgV,YAAY,EAAMhV,KAAKmO,SAAUnO,KAAK0H,OAAQykB,GACxH,YAAkBxf,IAAkB3M,KAAKkW,oBAAsBlW,KAAKsK,iBACzEtK,KAAKqsB,sBAAwBrsB,KAAKkW,oBAClClW,KAAKkW,oBAAsBlW,KAAKkW,oBAAsB,IAAMlW,KAAKsK,eAAiBtK,KAAKsK,eAAiBtK,KAAKkW,oBAAsB,IACnIlW,KAAKssB,sBAAsBtsB,KAAKqsB,sBAAuBrsB,KAAKkW,qBAC5DkW,GAA2B,GACU,IAAjCpsB,KAAKsM,aAAaC,YAAoB6f,IACxCpsB,KAAKusB,sBAAsB,EAAGvsB,KAAKqK,WAErCsC,EAAgB,YAAO3M,KAAKyO,gBAAiBzO,KAAKwsB,yBAA0BxsB,KAAKgV,YAAY,EAAMhV,KAAKmO,SAAUnO,KAAK0H,OAAQykB,GAC1H,YAAkBxf,KAGvB,GAAI,YAAkBA,IAAkB3M,KAAKkW,qBAAuBlW,KAAKsK,eAAgB,CACvFtK,KAAKqsB,sBAAwB,EAC7BrsB,KAAKkW,oBAAsB,IAAMlW,KAAKsK,eAAiBtK,KAAKsK,eAAiB,IAC7E,MAGJ,GAAIqC,EAAcI,SACV/M,KAAKsM,aAAaC,YAAcI,EAAcI,OAAYJ,EAAcI,OAAS/M,KAAKsM,aAAa4C,UAAW,CAClH,IACIA,GADA3C,EAAaI,EAAcI,OAAS/M,KAAKqK,UAAY,EAAI,GAAK,EAAIsC,EAAcI,OAAS/M,KAAKqK,UAAY,EAAI,GAAK,GAC3FrK,KAAKqK,UAAYrK,KAAKsK,eAAiBtK,KAAKsK,eAAiBiC,EAAavM,KAAKqK,UACvGkC,IAAevM,KAAKsM,aAAaC,YACnCvM,KAAKusB,sBAAsBhgB,EAAY2C,GAI7C,GAAK,YAAkBvC,EAAcE,MASnC7M,KAAKusB,sBAAsB,EAAGvsB,KAAKqK,WAEnCrK,KAAK6H,KAAK2C,uBAAuB,yBAAyB,GAAG7E,MAAQ3F,KAAK8K,qBAC1E9K,KAAK6H,KAAK8O,UAAY,MAZoB,CAE1C,GADa3W,KAAK2b,gBAAgBhP,EAAcE,KAAKW,aAAa,eAAiBxN,KAAKkQ,cAC3ElQ,KAAKqK,UAAY,EAAG,CAC/B,IAAIkC,EAAavM,KAAKsM,aAAaC,YAAcvM,KAAKqK,UAAY,EAAI,GAAKrK,KAAKsK,eAAiBtK,KAAKsM,aAAaC,YAAcvM,KAAKqK,UAAY,EAAI,GAAKrK,KAAKsK,eAC5J4E,EAAWlP,KAAKsM,aAAaC,WAAavM,KAAKqK,UAAYrK,KAAKsK,eAAiBtK,KAAKsK,eAAiBtK,KAAKsM,aAAaC,WAAavM,KAAKqK,UAC/IrK,KAAKusB,sBAAsBhgB,EAAY2C,GAEzCvC,EAAcE,KAAO7M,KAAKwd,kBAAkB7Q,EAAcE,KAAKW,aAAa,eAO1Eb,GAAiBA,EAAcE,OACjCF,EAAcE,KAAO7M,KAAKwd,kBAAkB7Q,EAAcE,KAAKW,aAAa,gBAG5Eb,GAAiBA,EAAcE,MACjC7M,KAAKwM,aAAaG,EAAcE,MAChC7M,KAAK6H,KAAK8O,UAAYhK,EAAcE,KAAK/D,aAAe6D,EAAcI,OACpC,KAAzB/M,KAAKyO,gBACdzO,KAAKsL,cAELtL,KAAKuH,6BApHTvH,KAAKuH,uBAwHHvH,KAAKsD,sBAAwBtD,KAAKuG,gBACpCvG,KAAKgX,6BAGT3V,EAAYnB,UAAUusB,UAAY,WACJ,OAAxBzsB,KAAKuG,iBACPvG,KAAKuG,eAA+B,aAAdvG,KAAK0D,MAE7B1D,KAAKuC,uBAAwB,EAC7BvC,KAAK0sB,iBACL1sB,KAAK2sB,oBAAoB3sB,KAAKqE,gBAC9B/C,EAAOpB,UAAUusB,UAAU/qB,KAAK1B,OAElCqB,EAAYnB,UAAU0sB,cAAgB,WACpC,MAAO,gBAETvrB,EAAYnB,UAAUwsB,eAAiB,WACrC1sB,KAAKgR,mBAAqB,GAC1BhR,KAAK8R,iBAAkB,EACvB9R,KAAK2U,cAAe,EACpB3U,KAAKsU,oBAAqB,EAC1BtU,KAAKoJ,cAAe,EACpBpJ,KAAKyc,WAAY,EACjBzc,KAAKqU,YAAa,EAClBrU,KAAK2Z,SAAU,EACf3Z,KAAK6sB,SAAU,EACf7sB,KAAKyW,aAAc,EACnBzW,KAAKwQ,kBAAmB,EACxBxQ,KAAKuY,mBAAoB,EACzBvY,KAAKqkB,mBAAoB,EACzBrkB,KAAKqP,sBAAuB,EAC5BrP,KAAKsM,aAAe,CAClBie,kBAAmB,KACnBC,UAAW,KACXC,aAAc,GACdjB,QAAS,GACTjd,WAAY,EACZ2C,SAAUlP,KAAKqK,YAGnBhJ,EAAYnB,UAAU+rB,WAAa,SAAUhe,EAAe5H,EAAGymB,GAC7D,IAGIha,EAHApG,EAAO,GACPqgB,EAAsB,cAAd/sB,KAAK0D,MAAsC,aAAd1D,KAAK0D,KAC1C+M,EAAO,GAEPmH,EAAW5X,KAAKmO,SAOpB,GANKnO,KAAKsD,uBACRtD,KAAKmO,SAAWnO,KAAK8Q,UAElB,YAAkB9Q,KAAKqF,gBAAmBrF,KAAKsD,uBAClDtD,KAAKqF,cAAc4K,UAAY,KAE5B,YAAkBjQ,KAAK4J,OAAQ,CA+DlC,IA9DA,IA6DEojB,EA7DEC,EAAcjtB,KAAK4J,MAAMjJ,OACzBusB,EAAuB,GACvBC,EAAU,SAAUpgB,GACtB,IAAIqgB,EAAYC,EAAO1hB,mBAAqB,YAAS0hB,EAAO3lB,OAAOkC,MAAQyjB,EAAO3lB,OAAOkC,MAAQ,GAAIyjB,EAAOzjB,MAAMmD,IAAUsgB,EAAOzjB,MAAMmD,GACrIugB,EAAYD,EAAOxhB,gBAAiB,YAAkBwhB,EAAOtlB,UAA8BslB,EAAOvhB,UAAzBuhB,EAAOtlB,SAA6B,KAAM,aAAcqlB,GAIrI,GAHIC,EAAO/pB,uBACTgqB,EAAYD,EAAOxhB,gBAAiB,YAAkBwhB,EAAOxlB,MAAsBwlB,EAAOvhB,UAArBuhB,EAAOxlB,KAAyB,KAAM,aAAculB,IAEvH,YAAkBE,KAAeD,EAAOrpB,mBAAqBqpB,EAAO/pB,sBAAwB+pB,EAAOlf,UAAYkf,EAAOlf,SAASxN,OAAS,EAC1I0sB,EAAOzjB,MAAMwG,OAAOrD,EAAO,GAC3BA,GAAS,EACTkgB,GAAe,MACV,CACL,GAAII,EAAOlf,SAAU,CACnB,GAAIkf,EAAO/pB,qBAAsB,CAC3BypB,IAAUM,EAAOE,6BACnB7gB,EAAO2gB,EAAOlR,kBAA0D,KAAtCkR,EAAOlR,iBAAiBlM,UAAmBvD,EAAO2gB,EAAOlR,iBAAiBlM,WAE9G,IAAIrG,EAAQyjB,EAAO1hB,mBAAqB,YAAS0hB,EAAO3lB,OAAOkC,MAAQyjB,EAAO3lB,OAAOkC,MAAQ,GAAIyjB,EAAOzjB,MAAMyjB,EAAOzjB,MAAMjJ,OAAS,IAAM0sB,EAAOzjB,MAAMyjB,EAAOzjB,MAAMjJ,OAAS,GAC7K,GAAI0sB,EAAO1J,kBACTjX,EAAO2gB,EAAO5c,KAAK/L,QAAQ,KAAMuJ,EAAgB,KAAOA,EAAgB,IACxEwC,EAAO4c,EAAO5c,KAAK7L,MAAMqJ,OACpB,CACL6E,EAAOga,GAAwBC,EAAQM,EAAO5c,KAAO4c,EAAOG,eAAe5jB,GAC3E,IAAIyb,EAAagI,EAAOE,4BAAuC,MAAT3jB,GAA2B,KAAVA,IAAiBkjB,EAAuBO,EAAOG,eAAe5jB,GAASkjB,EAAuBO,EAAO5c,KAAO4c,EAAO5c,MAAwB,KAAhB4c,EAAO5c,KAAc4c,EAAO5c,KAAO4c,EAAOpf,cAAgB6E,EAAOA,EACnQpG,GAAQoG,EAAO7E,EAAgB,IAC/BwC,EAAKlN,KAAK8hB,GACV6H,EAAuBG,EAAOhoB,cAAc4K,UAE9C,GAAI5J,GAAKA,EAAE+d,eAAiB/d,EAAE+d,cAActhB,UAAUoP,SAAS,kBAAoB7L,GAAe,cAAVA,EAAE9F,IAAqB,CAC7G,IAAIktB,EAASpnB,EAAE/F,OAAOiS,cAAc/E,aAAa,cACjD,GAAc,cAAVnH,EAAE9F,IAAqB,CACzB,IAAImtB,EAAYL,EAAOhoB,cAAcqoB,UACjCA,GACFL,EAAOhoB,cAAcgG,YAAYqiB,QAGnCL,EAAOhoB,cAAc8b,WAAWzJ,SAAQ,SAAUnW,GAC5CA,EAAOqI,QAAU6jB,GACnBlsB,EAAOmE,WAAW2F,YAAY9J,MAIpC2rB,EAAuBG,EAAOhoB,cAAc4K,eAE5Cid,GAAwB,2BAA8BtjB,EAAQ,KAAQmD,EAAQ,YAEhF,OAAOigB,EAAcjgB,EAAO,QAE5B+F,EAAOua,EAAOG,eAAeJ,QAG/Bta,EAAOsa,EAET1gB,GAAQoG,EAAO7E,EAAgB,IAC/BwC,EAAKlN,KAAKuP,GAEZoa,GAAwB,2BAA8BE,EAAY,KAAQrgB,EAAQ,YAClFigB,EAAcjgB,GAEZsgB,EAASrtB,KAEJ+M,EAAQ,EAAGA,EAAQkgB,EAAalgB,IAAS,CAChD,IAAI4gB,EAAUR,EAAQpgB,GAEtB,GADAA,EAAQigB,EACQ,UAAZW,EAAqB,MAEtB,YAAkB3tB,KAAKqF,iBACtBrF,KAAK2jB,mBACH3jB,KAAK6L,gBAAgB7L,KAAKqF,cAAe,SAAU,QAASrF,KAAK4jB,qBACnE5jB,KAAKqF,cAAcgG,YAAYrL,KAAK6L,gBAAgB7L,KAAKqF,cAAe,SAAU,QAASrF,KAAK4jB,qBAElG5jB,KAAK2jB,mBAAoB,GAEzB3jB,KAAKqF,cAAc4K,UAAYid,GAIrC,IAAIU,EAAevnB,GAAKA,EAAE/F,QAAU+F,EAAE/F,OAAOwC,UAAUoP,SAAS,mBAC3DlS,KAAKsD,sBAAwBtD,KAAKsD,sBAAsC,aAAdtD,KAAK0D,OAAwBkqB,IAC1F5tB,KAAKkF,cAAc,CACjBuL,KAAMA,EAAK1H,aACV,GAEDgkB,IACF/sB,KAAKolB,kBAAkBplB,KAAKmc,iBAAkBzP,GAC9C1M,KAAKmc,iBAAiBlX,aAAa,KAAM,YAAY,cACrDjF,KAAKgF,aAAaC,aAAa,mBAAoBjF,KAAKmc,iBAAiBjT,KAE3E,IAAIoa,EAAYjd,GAAKA,EAAE/F,OACnBuiB,KAAaS,IAAaA,EAAUxgB,UAAUoP,SAAS,oBAA2B,OACjFlS,KAAK4R,cAAgBvL,IAAMwc,GAAc7iB,KAAKqjB,eACjDrjB,KAAKqjB,aAAc,EACnBrjB,KAAK6R,iBAAiBxL,EAAGrG,KAAK4J,MAAO5J,KAAKyN,aAE5CzN,KAAKmO,SAAWyJ,EAChB5X,KAAK6tB,sBAEPxsB,EAAYnB,UAAUuR,kBAAoB,WACxC,GAAK,YAAkBzR,KAAKyQ,MAkB1BzQ,KAAKkF,cAAc,CACjB0E,MAAO,OACN,OApB8B,CAGjC,IAFA,IAAIkkB,EAAU9tB,KAAKyQ,KAAK7L,MAAM5E,KAAKiO,eAC/Bud,EAAU,GACLze,EAAQ,EAAG+gB,EAAQntB,OAASoM,EAAOA,IAAS,CACnD,IAAIiD,EAAMhQ,KAAKoX,eAAe0W,EAAQ/gB,IACjC,YAAkBiD,GAEZhQ,KAAKgE,kBACdwnB,EAAQjoB,KAAKuqB,EAAQ/gB,IAFrBye,EAAQjoB,KAAKyM,GAKjB,GAAIwb,GAAWA,EAAQ7qB,OAAQ,CAC7B,IAAIiJ,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAe4d,GAAWA,EACrExrB,KAAKkF,cAAc,CACjB0E,MAAOA,IACN,MAQTvI,EAAYnB,UAAU6tB,WAAa,SAAUC,IACtCA,GAAehuB,KAAKgE,kBAAoBhE,KAAK6H,OAAS7H,KAAK6H,KAAKmZ,cAAgBhhB,KAAKiuB,mBAAqBjuB,KAAK6H,KAAK0C,cAAc,UAAmE,IAAvDvK,KAAK6H,KAAK0C,cAAc,SAAS2jB,qBAClLF,GAAc,GAEhB1sB,EAAOpB,UAAU6b,OAAOra,KAAK1B,KAAM,KAAMguB,GAEzChuB,KAAKsK,eAAiBtK,KAAK8J,YAAc9J,KAAK8J,WAAWnJ,OAASX,KAAK8J,WAAWnJ,OAAS,EAC3FX,KAAKoR,mBACLpR,KAAKqR,kBAEPhQ,EAAYnB,UAAUwR,mBAAqB,SAAU3G,EAAW+hB,GAC9D,GAAI9sB,KAAK6H,KAAM,CACb,IAAI4I,OAAO,EACPjP,OAAU,EACVoI,OAAQ,EAKZ,GAJI5J,KAAKuN,wBACPvN,KAAKuN,sBAAsB0C,UAAY,IAEzCjQ,KAAKmuB,uBACA,YAAkBnuB,KAAK4J,OAC1B,IAAK,IAAImD,EAAQ,GAAI,YAAkB/M,KAAK4J,MAAMmD,IAASA,IAAS,CAClEnD,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAMmD,IAAU/M,KAAK4J,MAAMmD,GACvHvL,EAAUxB,KAAK6L,gBAAgB7L,KAAKiE,iBAAmBjE,KAAK8L,UAAY9L,KAAK6H,KAAM,KAAM,aAAc+B,GACvG,IAAIwkB,GAAe,EACnB,GAAIpuB,KAAKsD,qBAAsB,CAE7B,GADAmN,EAAO,KACU,MAAb1F,GAAqBA,EAAUpK,OAAS,EAC1C,IAAK,IAAIK,EAAI,EAAGA,EAAI+J,EAAUpK,OAAQK,IACpC,GAAIhB,KAAK+O,iBAAmBhE,EAAU/J,KAAO4I,IAAU5J,KAAK+O,iBAAmB,YAAS/O,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,QAASmB,EAAU/J,MAAQ4I,EAAO,CAChK6G,EAAOzQ,KAAK+O,gBAAkBhE,EAAU/J,GAAK,YAAShB,KAAK0H,OAAO+I,KAAM1F,EAAU/J,IAC9EhB,KAAKsD,uBACH,YAAkBtD,KAAKgK,kBACzBhK,KAAKgK,iBAAmB,CAACe,EAAU/J,IAE/BpB,MAAM6kB,QAAQzkB,KAAKgK,kBACrBhK,KAAKgK,iBAAiBzG,KAAKwH,EAAU/J,IAErChB,KAAKgK,iBAAmB,CAAChK,KAAKgK,iBAAkBe,EAAU/J,KAIhE,MAIF,YAAkByP,IAASzQ,KAAKgE,qBAAuBhE,KAAK8J,sBAAsB,MAAgB9J,KAAK8J,sBAAsB,KAAegjB,KAC9Irc,EAAOzQ,KAAKwtB,eAAe5jB,GAC3BwkB,GAAe,QAGjB3d,EAAOzQ,KAAKwtB,eAAe5jB,GAE7B,GAAIpI,GAAqD,SAA1CA,EAAQgM,aAAa,kBAA+BhM,GAAqD,SAA1CA,EAAQgM,aAAa,kBAA+BxN,KAAKiE,mBAAmC,QAAdjE,KAAK0D,MAAgC,YAAd1D,KAAK0D,OAAuB1D,KAAKsD,sBAAiC,MAATsG,GAAyB,MAAR6G,IAAiB2d,EAAc,CAC1R,IAAIvK,EAAc,GACdwB,EAAarlB,KAAKutB,4BAAsC,MAAR9c,GAAyB,KAATA,GAAyB,IAAV1D,GAAkC,MAAb/M,KAAKyQ,MAA8B,KAAdzQ,KAAKyQ,MAAgBzQ,KAAKyQ,KAAK4d,SAAS5d,GAApEA,EAA4EzQ,KAAKyQ,KAAOzQ,KAAKiO,cAAgBwC,EAC9MoT,EAAYtgB,KAAK8hB,GACjBrlB,KAAKkF,cAAc,CACjBuL,KAAMoT,EAAY9a,aACjB,GACH/I,KAAKulB,QAAQ9U,EAAM7G,GACnB5J,KAAKslB,iBAAiB9jB,QACjB,IAAKxB,KAAKsD,sBAAwBsG,GAAS5J,KAAKgE,kBAAoBhE,KAAKsD,sBAAwBsG,GAAS5J,KAAKgE,qBAAuBhE,KAAK8J,sBAAsB,MAAgB9J,KAAK8J,sBAAsB,KAAegjB,GAAuB,CACvP,IAAIwB,EAAYtuB,KAAKmO,SAASxN,OAC1Bia,EAAW,GACf,aAAS5a,KAAK0H,OAAO+I,KAAM7G,EAAOgR,GAClC,aAAS5a,KAAK0H,OAAOkC,MAAOA,EAAOgR,GACnC,IAAI2T,EAAYvuB,KAAK6E,aAAa0F,cAAc,IAAM,IAAoBkI,QACrEzS,KAAKsD,sBACRtD,KAAKwuB,QAAQ5T,EAAU0T,GAErBtuB,KAAKsD,uBACHtD,KAAKgY,yBAA2BhY,KAAKgY,wBAAwBrX,QAAU,EACzEX,KAAKgY,wBAAwBzU,KAAKqX,GAElC5a,KAAKgY,wBAA0B,CAAC4C,IAGpCpZ,EAAUA,GAAoBxB,KAAK6L,gBAAgB7L,KAAKiE,iBAAmBjE,KAAK8L,UAAY9L,KAAK6H,KAAM,KAAM,aAAc+B,GACvH5J,KAAK6E,aAAaqN,SAASqc,KAC7BvuB,KAAK6H,KAAK5C,aAAa,QAASspB,EAAU/gB,aAAa,UACvDxN,KAAK6E,aAAa4pB,aAAazuB,KAAK6H,KAAM0mB,GAC1CvuB,KAAKqR,kBAEHwS,EAAc,GACdwB,EAA0B,MAAbrlB,KAAKyQ,MAA8B,KAAdzQ,KAAKyQ,KAAczQ,KAAKyQ,KAAOzQ,KAAKiO,cAAgBwC,EAAOA,EACjGoT,EAAYtgB,KAAK8hB,GACjBrlB,KAAKkF,cAAc,CACjBuL,KAAMoT,EAAY9a,aACjB,GACH/I,KAAKulB,QAAQ9U,EAAM7G,GACnB5J,KAAKslB,iBAAiB9jB,IAIV,aAAdxB,KAAK0D,MACP1D,KAAKyZ,kBACDzZ,KAAK4R,cACP5R,KAAK6R,iBAAiB,KAAM7R,KAAK4J,MAAO5J,KAAKyN,YAE/CzN,KAAKgO,gBAAgBhO,KAAKiO,eAC1BjO,KAAK6Z,qBAEL7Z,KAAKgO,gBAAgBhO,KAAKiO,cAAe,KAAM6e,GAE/B,aAAd9sB,KAAK0D,OAAuB1D,KAAKsJ,gBAAkB,YAAkBtJ,KAAK4J,QAAW5J,KAAK4J,MAAMjJ,QAClGX,KAAKuL,OAAO,iBAAkB,CAC5BC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbkG,MAAO,YAGO,QAAd5J,KAAK0D,MAAgC,YAAd1D,KAAK0D,MAAsB1D,KAAKiR,WACzDjR,KAAKuN,sBAAsB5H,MAAMC,QAAU,GACpB,cAAd5F,KAAK0D,MAAsC,aAAd1D,KAAK0D,MAC3C1D,KAAKic,qBAKX5a,EAAYnB,UAAUwuB,yBAA2B,SAAUvkB,EAAI0C,GACzD7M,KAAK4J,SAAW5J,KAAK2L,oBAAsB3L,KAAK4J,MAAMxE,QAAQ+E,EAAGqD,aAAa,gBAAkB,GAAKxN,KAAK2L,oBAAsB3L,KAAKklB,gBAAgBllB,KAAK4N,eAAezD,EAAGqD,aAAa,eAAgBxN,KAAK4J,UAChN5J,KAAK+H,SAAW/H,KAAK8L,UACjB9L,KAAKiE,kBACP,YAAS,CAACkG,GAAKhJ,KAKrBE,EAAYnB,UAAUyuB,kBAAoB,SAAU9mB,EAAMwC,GACpDrK,KAAKiD,UAAYjD,KAAKiD,SAASzB,SAAWxB,KAAKiD,SAASzB,QAAQ+I,cAAc,IAAM,IAAoBkI,SAAW5K,GACrH7H,KAAK6H,KAAOA,EACZ7H,KAAK+H,SAAW/H,KAAK8L,UAAYjE,EAAK0C,cAAc,MACpD,aAAOvK,KAAK6E,aAAa0F,cAAc,eACvCvK,KAAKiD,SAAW,KAChBjD,KAAKwO,eACIxO,KAAKgE,mBACdhE,KAAK6H,KAAOA,EACZ7H,KAAK+H,SAAW/H,KAAK8L,UAAYjE,EAAK0C,cAAc,QAGxDlJ,EAAYnB,UAAUsZ,eAAiB,WACrC,GAAIxZ,KAAK+H,UAAY/H,KAAK8L,aAAe9L,KAAKqU,YAAcrU,KAAK2U,cAAgB3U,KAAKyO,gBAAgB9J,QAAS,CAC7G,IAAIiqB,EAA2B5uB,KAAK+H,SAASmmB,kBAAoBluB,KAAK8L,UAAUoiB,kBAC5EW,EAAwB7uB,KAAK8L,UAAUoiB,kBAAoB,GAAKluB,KAAK8L,UAAUgjB,SAAS,GAAGZ,kBAAoB,GAAKluB,KAAK+H,SAAS+mB,SAAS,IAAM9uB,KAAK+H,SAAS+mB,SAAS,GAAGZ,kBAAoBluB,KAAK8L,UAAUgjB,SAAS,GAAGZ,kBAC1Na,EAA0B/uB,KAAKgvB,cAAgBhvB,KAAK8L,UAAUoiB,kBAAoB,KAAOluB,KAAK8L,UAAUoiB,kBAAoBluB,KAAK+H,SAASmmB,qBAAuBluB,KAAK8L,UAAUgjB,SAAS,GAAGZ,kBAAoB,GAAKluB,KAAK0H,OAAOC,SAAW3H,KAAK8L,UAAUgjB,SAAS,IAAM9uB,KAAK8L,UAAUgjB,SAAS,GAAGZ,kBAAoB,IACzTU,GAA4BC,GAAyBE,KAEvD/uB,KAAK+H,SAAW/H,KAAK8L,aAI3BzK,EAAYnB,UAAU0gB,UAAY,SAAUzW,GAC1C,OAAOA,IAAOA,EAAGrH,UAAUoP,SAAS,IAAoB7F,YAAclC,EAAGrH,UAAUoP,SAAS,IAAoBC,QAAUhI,EAAGrH,UAAUoP,SAAS,IAAoB/H,KAEtK9I,EAAYnB,UAAUqZ,oBAAsB,SAAUpP,EAAI9D,EAAG1F,GAC3D,IAAI+hB,EAAYvY,EAAGqD,aAAa,cAC5B5D,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAe5N,KAAK6N,kBAAkB6U,IAAc1iB,KAAK6N,kBAAkB6U,GAClH1iB,KAAKgE,mBAAmC,UAAd0e,IAAmC,IAAV9Y,IAAoB,YAAkBA,IAA+B,QAArBA,EAAMb,cAC3Ga,EAAQ8Y,GAEV1iB,KAAKivB,eACAjvB,KAAK4J,QAAU5J,KAAK2L,qBAAqD,IAA/B3L,KAAK4J,MAAMxE,QAAQwE,IAAiB5J,KAAK2L,qBAAwE,IAAlD3L,KAAK+iB,qBAAqBnZ,EAAO5J,KAAK4J,OAClJ5J,KAAK0lB,eAAe9b,EAAOvD,EAAG8D,EAAyC,SAArCA,EAAGqD,aAAa,iBAA6B7M,GAE/EX,KAAK8N,YAAYlE,EAAOvD,EAAG1F,IAG/BU,EAAYnB,UAAU6lB,8BAAgC,SAAUnc,EAAOO,EAAI9D,EAAGwd,GAC5E,IAAIpiB,EAAQzB,KACZ4J,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAIA,GAASA,EAChG,IAAI6G,EAAOoT,GAA4B7jB,KAAKwtB,eAAe5jB,GAC3D,IAAK5J,KAAKgE,kBAAoBhE,KAAKuG,kBAAoBvG,KAAK6L,gBAAgB7L,KAAK+H,SAAU,KAAM,aAAc6B,MAAY5J,KAAKsD,sBAAwBtD,KAAKsD,sBAAwBtD,KAAK2X,mBAAoB,CAC5M,IAAIuX,EAAS/kB,EAAKA,EAAG4G,WAAU,GAAQ5G,EACnCglB,EAAanvB,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,QACrD5J,KAAKgE,kBAAoBhE,KAAK8Q,SAASnQ,QAA4D,iBAA3C,YAASwuB,EAAYnvB,KAAK8Q,SAAS,MAC7FlH,EAASyO,MAAMC,WAAW1O,EAAMb,aAA8Ca,EAA/B0O,WAAW1O,EAAMb,aAElE,IAAIqmB,EAASpvB,KAAK4N,eAAehE,GAC7B7C,EAAY,CACdsoB,QAASD,EACTloB,QAAQ,GAEVlH,KAAKsH,QAAQ,uBAAwBP,GAAW,SAAUA,GACnDA,EAAUG,SACTzF,EAAM6B,sBAAwB7B,EAAMkW,mBAClClW,EAAMuW,yBAA2BvW,EAAMuW,wBAAwBrX,QAAU,EAC3Ec,EAAMuW,wBAAwBzU,KAAK6rB,GAEnC3tB,EAAMuW,wBAA0B,CAACoX,GAEnC3tB,EAAMmP,mBAAoB,EAC1BnP,EAAMwjB,SAASrb,EAAO6G,EAAMpK,KAE5B,YAAO,CAAC6oB,GAASztB,EAAMsG,UACvBtG,EAAMqP,SAASvN,KAAK6rB,GACpB3tB,EAAMmP,mBAAoB,EAC1BnP,EAAMwjB,SAASrb,EAAO6G,EAAMpK,aAKlCrG,KAAK4Q,mBAAoB,EACzB5Q,KAAKilB,SAASrb,EAAO6G,EAAMpK,IAG/BhF,EAAYnB,UAAUiuB,oBAAsB,WAC1C,IAAIvjB,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,SACpEud,EAAgBtvB,KAAK6H,KAAKC,iBAAiB,IAAM8C,GACjDkI,EAAOwc,EAAc3uB,OACzB,GAAI2uB,GAAiBA,EAAc3uB,OAEjC,IADA,aAAY2uB,EAAe1kB,GACpBkI,EAAO,GACZwc,EAAcxc,EAAO,GAAG7N,aAAa,gBAAiB,SACtD6N,IAGJ,IAAK,YAAkB9S,KAAK+H,UAAW,CACrC,IAAIwnB,EAAcvvB,KAAK+H,SAASD,iBAAiB,IAAM8C,GACnDmI,EAAQwc,EAAY5uB,OACxB,GAAI4uB,GAAeA,EAAY5uB,OAE7B,IADA,aAAY4uB,EAAa3kB,GAClBmI,EAAQ,GACbwc,EAAYxc,EAAQ,GAAG9N,aAAa,gBAAiB,SACnC,aAAdjF,KAAK0D,OACH4rB,GAAiBA,EAAc3uB,OAASoS,EAAQ,GAClD,aAAY,CAACuc,EAAcvc,EAAQ,GAAG8N,kBAAkBC,kBAAmB,WAE7E,aAAY,CAACyO,EAAYxc,EAAQ,GAAG8N,kBAAkBC,kBAAmB,YAE3E/N,MAKR1R,EAAYnB,UAAU+uB,YAAc,WAClC,IAAIO,EAAcxvB,KAAK6H,KAAKC,iBAAiB,IAAM,IAAoB2nB,OACnED,GAAeA,EAAY7uB,QAC7B,aAAY6uB,EAAa,IAAoBC,QAGjDpuB,EAAYnB,UAAUoL,YAAc,WAClC,GAAItL,KAAK6H,MAAQ7H,KAAK+H,SAAU,CAC9B,IAAIynB,EAAcxvB,KAAK6H,KAAKC,iBAAiB,IAAM,IAAoBlB,OACnE8oB,EAAW1vB,KAAK+H,SAASD,iBAAiB,IAAM,IAAoBlB,OACpE4oB,GAAeA,EAAY7uB,SAC7B,aAAY6uB,EAAa,IAAoB5oB,OAC7C,aAAY8oB,EAAU,IAAoB9oB,UAIhDvF,EAAYnB,UAAUyvB,aAAe,SAAUxlB,IACzCnK,KAAK2Y,SAAW3Y,KAAK4gB,UAAUzW,IAItB,OAAPA,GAAeA,EAAGrH,UAAUoP,SAAS,sBAAwBlS,KAAK4D,qBAAqC,aAAd5D,KAAK0D,OAAwB,YAAkB1D,KAAK0H,OAAOC,YAHxJ3H,KAAKivB,cACL,YAAS,CAAC9kB,GAAK,IAAoBslB,SAQvCpuB,EAAYnB,UAAUsM,aAAe,SAAUhL,GACzCxB,KAAK2Y,UAAY3Y,KAAK4gB,UAAUpf,IAAYxB,KAAK0H,OAAO2E,UAAYrM,KAAKkiB,kBAAkB1gB,KAC7FxB,KAAKsL,cACL,YAAS,CAAC9J,GAAU,IAAoBoF,OACxC5G,KAAKmJ,8BAEDnJ,KAAK4D,qBAAqC,aAAd5D,KAAK0D,OAAwB,YAAkB1D,KAAK0H,OAAOC,WACzF,YAAS,CAACnG,GAAU,IAAoBoF,OACxC5G,KAAKmJ,+BAIX9H,EAAYnB,UAAUolB,iBAAmB,SAAU9jB,EAASshB,GAC1D,IAAIlY,EAAY5K,KAAKiE,iBAAmB9C,EAAY,IAAoB4Q,SACxE,GAAI/R,KAAK4gB,UAAUpf,KAAaA,EAAQsB,UAAUoP,SAAS,IAAoBud,OAAQ,CAIrF,GAHA,YAAS,CAACjuB,GAAUoJ,GACpB5K,KAAKmjB,gBAAe,EAAO3hB,EAAQgM,aAAa,cAAesV,GAC/DthB,EAAQyD,aAAa,gBAAiB,QACpB,aAAdjF,KAAK0D,MAAuBlC,EAAQsB,UAAUoP,SAAS,YAEvC,IADF1Q,EAAQgJ,uBAAuB,WAAW7J,QAExDX,KAAKuL,OAAO,aAAc,CACxBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbyG,GAAI3I,EACJ6E,EAAGrG,OAITA,KAAKuL,OAAO,aAAc,CACxBC,OAAQ,oBACR1G,OAAsB,aAAd9E,KAAK0D,KACbyG,GAAI3I,EACJ6E,EAAGrG,OAEDA,KAAKuN,uBACPvN,KAAK+N,sBAEP/N,KAAKgrB,kBAAoBxpB,EAAQ0H,KAGrC7H,EAAYnB,UAAU8N,gBAAkB,SAAU4hB,EAAWvpB,EAAGymB,GAC9D9sB,KAAKisB,WAAW2D,EAAWvpB,EAAGymB,IAEhCzrB,EAAYnB,UAAU2vB,aAAe,SAAUxpB,GAC7C,IAAI5E,EAAQzB,KACZ,IAAKA,KAAKkrB,eAAgB,CACxBlrB,KAAKmR,QAAU,KACfnR,KAAKyC,mBAAoB,EACzBzC,KAAK0Y,cAAgB,KACrB,IAAIpY,EAAS+F,EAAE/F,OACX6J,EAAK,YAAQ7J,EAAQ,IAAM,IAAoB6J,IACnD,GAAInK,KAAKsD,sBAAwB6G,GAAMA,EAAGrH,UAAUoP,SAAS,kBAC3D,OAGF,GADe,YAAQ5R,EAAQ,IAAM,IAAoB6R,QACzCnS,KAAK4D,qBAAqC,aAAd5D,KAAK0D,MAAuB1D,KAAK0H,OAAOC,SAClFrH,EAASA,EAAOwC,UAAUoP,SAAS,qBAAuB5R,EAAOugB,kBAAkBC,iBAAmBza,EAAE/F,QAC7FwC,UAAUoP,SAAS,YAC5BlS,KAAKihB,eAAc,EAAO5a,GAC1B/F,EAAOwC,UAAUE,OAAO,WACxB1C,EAAOwC,UAAUE,OAAO,UACxB,YAAQ1C,EAAQ,sBAA2BwC,UAAUE,OAAO,YAC5D1C,EAAO2E,aAAa,gBAAiB,WAErCjF,KAAKihB,eAAc,EAAM5a,GACzB/F,EAAOwC,UAAUE,OAAO,UACxB1C,EAAOwC,UAAUC,IAAI,WACrB,YAAQzC,EAAQ,sBAA2BwC,UAAUC,IAAI,YACzDzC,EAAO2E,aAAa,gBAAiB,SAEvCjF,KAAKoO,mBACLpO,KAAK0S,qBACA,CACL,GAAI1S,KAAK4gB,UAAUzW,GAAK,CACtB,IAAIwW,EAAQ3gB,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAK4J,MAAMjJ,OAAS,EAC9DwJ,EAAGrH,UAAUoP,SAAS,cACxByO,GAAgB,GAEdA,EAAQ3gB,KAAKsT,yBACftT,KAAKuZ,oBAAoBpP,EAAI9D,GAC7BrG,KAAKqO,uBACLrO,KAAKwM,aAAarC,IACbnK,KAAKgE,kBAAoBhE,KAAKuG,iBAAmBvG,KAAK+H,UAAY/H,KAAKmO,SACxD,aAAdnO,KAAK0D,OACP1D,KAAKyM,oBAAoBtC,EAAGqD,aAAa,eACzCxN,KAAKoO,oBAGPpO,KAAKkO,oBAGS,aAAdlO,KAAK0D,MACP1D,KAAKyZ,kBACDzZ,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,GACpC2H,YAAW,WACT7G,EAAMuM,gBAAgBvM,EAAMwM,cAAe5H,KAC1C,GAEHrG,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GAE3CrG,KAAK6Z,qBAEL7Z,KAAKgO,gBAAgBhO,KAAKiO,cAAe5H,GAE3CrG,KAAK0S,iBACL1S,KAAKiI,eACDjI,KAAKiX,aACPjX,KAAKkX,YAEHlX,KAAKiE,kBACPjE,KAAKuH,uBAEHvH,KAAKkE,mBACPlE,KAAK2G,UAAUN,GAEfA,EAAEwS,iBAEJ,IAAIkI,EAA+C,KAAhC/gB,KAAKyO,gBAAgB9J,OACxC3E,KAAKkO,mBACLlO,KAAKiL,eAAe3K,GACF,aAAdN,KAAK0D,MACP1D,KAAKmL,iBAAiB,YAAkBhB,GAAM,KAAOA,EAAG6W,YAAaD,QAGvE1a,EAAEwS,iBAEJ,GAAI7Y,KAAKsD,sBAAwBtD,KAAKiE,iBAAkB,CACtD,IAAI6rB,EAAsB9vB,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,+CACrD,GAAI2uB,EAAoBnvB,OAAQ,CAC9B,IAAIovB,EAAc/vB,KAAKgwB,kBAAoB,EAAI7Z,KAAK8Z,MAAMjwB,KAAKgwB,kBAAoBhwB,KAAKsW,gBAAkB,EAC1G,GAAIwZ,EAAoBnvB,OAASovB,EAAc,EAAG,CAChD,IAAIrmB,EAAQ1J,KAAK2J,YAAY3J,KAAK4J,OAAOC,QASzC,GARAH,EAAQA,EAAMqM,KAAK/V,KAAKgW,uBACxBhW,KAAK+J,UAAU/J,KAAK8J,WAAY9J,KAAK0H,OAAQgC,GAC7C1J,KAAKiK,iBACLjK,KAAKkK,cAAgBlK,KAAK6H,KAAKC,iBAAiB,IAAM,IAAoBqC,IAC1EnK,KAAKoK,iBAAmBpK,KAAKqK,UACX,aAAdrK,KAAK0D,OACP1D,KAAKsK,eAAiBtK,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAKsK,eAAiBtK,KAAK4J,MAAMjJ,OAASX,KAAKsK,gBAEpGtK,KAAK6H,KAAK0C,cAAc,kBAS3BvK,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GAAG7E,MAAQ3F,KAAKyK,4BATpB,CAC9C,IAAIC,EAAgB1K,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAAW,kBAEbF,EAAc/E,MAAMkF,QAAU7K,KAAKyK,wBACnCzK,KAAK6E,aAAa0F,cAAc,mBAAmBzE,YAAY4E,GAK7D1K,KAAK6H,KAAK0C,cAAc,4BAE1BvK,KAAK6H,KAAK2C,uBAAuB,yBAAyB,GAAG7E,MAAQ3F,KAAK8K,wBAKlF9K,KAAKmF,qBACLnF,KAAKkL,oBAIX7J,EAAYnB,UAAU+K,eAAiB,SAAU3K,GAC/C,GAAIN,KAAK4D,qBAAqC,aAAd5D,KAAK0D,OAAwB,YAAkB1D,KAAK0H,OAAOC,SAAU,CACnG,IAGIuoB,OAAc,EAClB,GAAIlwB,KAAKgvB,eAAiB1uB,EAAOkK,uBAAuB,WAAW7J,OACjE,MAAQL,EAAOkK,uBAAuB,WAAW7J,QAC/CL,EAASA,EAAOiS,cAQpB,IALIjS,EAAOwC,UAAUoP,SAAS,aAC5B5R,EAASA,EAAOiS,cAAcA,eAEhC2d,EAAclwB,KAAKmwB,qBAAqB7vB,EAXxB,EACE,EAFN,EAYmE,GAC/E4vB,EAAclwB,KAAKmwB,qBAAqB7vB,EAAQ4vB,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAI,IACxF5vB,EAAOwC,UAAUoP,SAAS,uBAC5B5R,EAAOwC,UAAUoP,SAAS,iBAC5B5R,EAASA,EAAOiS,eAGJ,OADdjS,EAASA,EAAO2R,2BAKlBjS,KAAKowB,eAAe9vB,EAAQ4vB,EAAY,GAAIA,EAAY,GAAIA,EAAY,MAG5E7uB,EAAYnB,UAAUiwB,qBAAuB,SAAUE,EAAaC,EAASC,EAAW3gB,EAAOgS,GAC7F,MAAQyO,EAAYvtB,UAAUoP,SAAS,uBAC/BlS,KAAK0H,OAAO2E,UAAYrM,KAAKkiB,kBAAkBmO,KAC/CA,EAAYvtB,UAAUoP,SAAS,iBACjCme,EAAcA,EAAY9d,eAExB8d,EAAY7lB,uBAAuB,WAAW,GAAG1H,UAAUoP,SAAS,YAAcme,EAAYvtB,UAAUoP,SAAS,eACnHoe,IACSD,EAAYvtB,UAAUoP,SAAS,gBACxCqe,IAEF3gB,KAGiB,OADnBygB,EAAczO,EAAWyO,EAAYje,mBAAqBie,EAAYpe,2BAKxE,MAAO,CAACqe,EAASC,EAAW3gB,IAE9BvO,EAAYnB,UAAUkwB,eAAiB,SAAUI,EAAaF,EAASC,EAAW3gB,GAChF,GAAoB,OAAhB4gB,IAAyB,YAAkBxwB,KAAK0H,OAAO2E,WAAuB,IAAVuD,GAAxE,CAGA,IAAI6gB,EAAkBD,EAAYhmB,uBAAuB,WAAW,GAChEoF,IAAU0gB,GACZG,EAAgB3tB,UAAUE,OAAO,UACjCytB,EAAgB3tB,UAAUC,IAAI,WAC9B,YAAQ0tB,EAAiB,sBAA2B3tB,UAAUC,IAAI,YAClEytB,EAAYvrB,aAAa,gBAAiB,SACjC2K,IAAU2gB,GACnBE,EAAgB3tB,UAAUE,OAAO,WACjCytB,EAAgB3tB,UAAUE,OAAO,UACjC,YAAQytB,EAAiB,sBAA2B3tB,UAAUE,OAAO,YACrEwtB,EAAYvrB,aAAa,gBAAiB,UACjCjF,KAAKsT,yBAA2Bgd,EAAU,GACnDG,EAAgB3tB,UAAUE,OAAO,UACjCwtB,EAAYvrB,aAAa,gBAAiB,QAC1C,YAAQwrB,EAAiB,sBAA2B3tB,UAAUC,IAAI,YAClE0tB,EAAgB3tB,UAAUC,IAAI,aAE9B0tB,EAAgB3tB,UAAUE,OAAO,WACjCytB,EAAgB3tB,UAAUC,IAAI,UAC9B,YAAQ0tB,EAAiB,sBAA2B3tB,UAAUC,IAAI,YAClEytB,EAAYvrB,aAAa,gBAAiB,YAG9C5D,EAAYnB,UAAU2Q,mBAAqB,WACzC,IAAI4K,EAAazb,KAAK6H,KAAKC,iBAAiB,wBAC5C,GAAI2T,EACF,IAAK,IAAI1O,EAAQ,EAAGA,EAAQ0O,EAAW9a,OAAQoM,IAAS,CAGtD,IAFA,IAAI2jB,GAAa,EACbpwB,EAASmb,EAAW1O,GAAOqF,oBACvB9R,EAAOwC,UAAUoP,SAAS,sBAAsB,CACtD,IAAKlS,KAAKkiB,kBAAkB5hB,GAAS,CACnCowB,GAAa,EACb,MAGF,GAAc,OADdpwB,EAASA,EAAO8R,oBAEd,MAGAse,GACF1wB,KAAK2wB,gBAAgBlV,EAAW1O,MAKxC1L,EAAYnB,UAAUgL,eAAiB,WACrC,IAAIyV,EAAQ3gB,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAK4J,MAAMjJ,OAAS,EAC9D8a,EAAazb,KAAK6H,KAAKC,iBAAiB,uCACxC6Y,EAAQ3gB,KAAKsT,wBACf,aAAYmI,EAAY,aAEtBkF,IAAU3gB,KAAKsT,wBACjB,YAASmI,EAAY,cAGzBpa,EAAYnB,UAAU0wB,YAAc,SAAUvqB,GAC5C,IAAIwqB,EAAY,YAAQxqB,EAAE/F,OAAQ,IAAM,IAAoB6J,IAC1C,OAAd0mB,GAAoC,aAAd7wB,KAAK0D,OAAwB,YAAkB1D,KAAK0H,OAAOC,UAAY3H,KAAK4D,sBACpGitB,EAAY,YAAQxqB,EAAE/F,OAAQ,IAAM,IAAoB6R,QAE1DnS,KAAK2vB,aAAakB,IAEpBxvB,EAAYnB,UAAU4wB,aAAe,WACnC9wB,KAAKivB,eAEP5tB,EAAYnB,UAAUgqB,gBAAkB,SAAU7jB,GAChDA,EAAEwS,iBACF7Y,KAAKyC,mBAAoB,GAE3BpB,EAAYnB,UAAU6wB,gBAAkB,SAAU1qB,GAChD,GAAkB,aAAdrG,KAAK0D,KAAqB,CAC5B,IAAIpD,EAAS+F,EAAE/F,QACR,YAAkBN,KAAKiD,WAAa,YAAQ3C,EAAQ,QAAUN,KAAKiD,SAASzB,QAAQ0H,GAAK,OAAWlJ,KAAK6C,eAAeqP,SAAS7L,EAAE/F,QAGxIN,KAAKyC,mBAAqB,IAAQ2W,MAA8B,SAAtB,IAAQyS,KAAKzkB,OAAoBI,SAASmF,gBAAkB3M,KAAKgF,aAF3GhF,KAAKyC,mBAAoB,IAM/BpB,EAAYnB,UAAUmR,eAAiB,WAChC,YAAkBrR,KAAK6H,QAC1B,IAAa9E,IAAIyE,SAAU,YAAaxH,KAAK+wB,gBAAiB/wB,MAC9D,IAAa+C,IAAI/C,KAAK6H,KAAM,YAAa7H,KAAKkqB,gBAAiBlqB,MAC/D,IAAa+C,IAAI/C,KAAK6H,KAAM,UAAW7H,KAAK6vB,aAAc7vB,MAC1D,IAAa+C,IAAI/C,KAAK6H,KAAM,YAAa7H,KAAK4wB,YAAa5wB,MAC3D,IAAa+C,IAAI/C,KAAK6H,KAAM,WAAY7H,KAAK8wB,aAAc9wB,QAG/DqB,EAAYnB,UAAUkR,iBAAmB,WACvC,IAAapO,OAAOwE,SAAU,YAAaxH,KAAK+wB,iBAC5C/wB,KAAK6H,OACP,IAAa7E,OAAOhD,KAAK6H,KAAM,YAAa7H,KAAKkqB,iBACjD,IAAalnB,OAAOhD,KAAK6H,KAAM,UAAW7H,KAAK6vB,cAC/C,IAAa7sB,OAAOhD,KAAK6H,KAAM,YAAa7H,KAAK4wB,aACjD,IAAa5tB,OAAOhD,KAAK6H,KAAM,WAAY7H,KAAK8wB,gBAGpDzvB,EAAYnB,UAAU+e,iBAAmB,WAClCjf,KAAK4J,OAAU5J,KAAK4J,MAAMjJ,QAAsC,KAA5BX,KAAKgF,aAAa4E,QACzD5J,KAAKyF,aAAaE,MAAMC,QAAU,SAGtCvE,EAAYnB,UAAUgU,iBAAmB,YAClClU,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QAAsC,KAA5BX,KAAKgF,aAAa4E,QAAiB5J,KAAKunB,kBAAqC,IAAlBvnB,KAAK4Y,SACtG5Y,KAAKyF,aAAaE,MAAMC,QAAU,GAElC5F,KAAKyF,aAAaE,MAAMC,QAAU,QAQtCvE,EAAYnB,UAAU8wB,QAAU,WAC1BxpB,SAASmF,gBAAkB3M,KAAKgF,cAAgBhF,KAAK2Y,SACvD3Y,KAAKgF,aAAa4B,SAQtBvF,EAAYnB,UAAU+wB,SAAW,WAC3BzpB,SAASmF,gBAAkB3M,KAAKgF,cAAgBhF,KAAK2Y,SACvD3Y,KAAKgF,aAAaqkB,QAQtBhoB,EAAYnB,UAAUgxB,YAAc,WAClC,GAAI,YAAkBlxB,KAAKmxB,gBAAiB,CAC1C,IAAIC,EAAcpxB,KAAKooB,cAAgBpoB,KAAKooB,aAAa7d,cAAc,yBAC/B,SAApCvK,KAAKyF,aAAaE,MAAMC,SAAsBwrB,EAChDpxB,KAAKmxB,eAAiBC,GAA4BpxB,KAAKyF,cAEvDzF,KAAKmxB,eAAiBnxB,KAAK2K,cAAc,OAAQ,CAC/CC,UAAWymB,mDAEbrxB,KAAK6F,iBAAiBC,YAAY9F,KAAKmxB,iBAEzC,YAAc,CACZ7wB,OAAQN,KAAKmxB,eACbzW,MAAO,IAAQpU,SAAW,OAAS,QAClCtG,KAAK2K,eACR,YAAS,CAAC3K,KAAKmxB,gBAplIF,sBAqlIb,YAAYnxB,KAAKmxB,kBAQrB9vB,EAAYnB,UAAUoxB,YAAc,WAC7B,YAAkBtxB,KAAKmxB,kBAC1B,YAAYnxB,KAAKmxB,gBACjB,aAAY,CAACnxB,KAAKmxB,gBAhmIL,sBAimITnxB,KAAKmxB,eAAeruB,UAAUoP,SAhmIpB,qBAimIZ,YAAOlS,KAAKmxB,gBAEZnxB,KAAKmxB,eAAelhB,UAAY,GAElCjQ,KAAKmxB,eAAiB,OAG1B9vB,EAAYnB,UAAUklB,kBAAoB,SAAUmM,EAAaC,GAC3DxxB,KAAK8mB,gBAAkB9mB,KAAKknB,oBAC9BqK,EAAYthB,UAAYjQ,KAAKymB,mBAAmB+K,GAEhDD,EAAYpK,UAAYqK,GAG5BnwB,EAAYnB,UAAUuZ,gBAAkB,WAYtC,GAXIzZ,KAAKmc,kBACPnc,KAAKoc,mBAEHpc,KAAKuN,wBACPvN,KAAKuN,sBAAsB5H,MAAMC,QAAU,QAExC,YAAkB5F,KAAKkc,eAC1Blc,KAAKkc,YAAYvW,MAAMC,QAAU,GACjC5F,KAAKkc,YAAYvW,MAAM+U,MAAQ,GAC/B1a,KAAKkc,YAAYpZ,UAAUE,OApnIP,kBAsnIlBhD,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAQ,CACnC,IAAI+L,EAAO,GACPoG,OAAO,EACP8E,OAAW,EACX6Z,EAAY,EACZC,OAAc,EACdC,OAAY,EACZvX,EAAgB,EAChBwX,OAAmB,EAClB5xB,KAAKsD,sBACRtD,KAAKolB,kBAAkBplB,KAAKkc,YAAaxP,GAE3C,IAAImlB,EAAa,CACf5D,kBAAmB,mBACnB6D,sBAAuB,iBACvBC,sBAAuB,mBACvBC,mBAAoB,qBAElBC,EAAO,IAAI,IAAKjyB,KAAK4sB,gBAAiBiF,EAAY7xB,KAAKkyB,QACT,KAA9CD,EAAKE,YAAY,2BACnBF,EAAO,IAAI,IAAK,YAAaJ,EAAY7xB,KAAKkyB,SAEF,KAA1CD,EAAKE,YAAY,uBACnBF,EAAO,IAAI,IAAK,YAAaJ,EAAY7xB,KAAKkyB,SAEhD,IAAIE,EAAgBH,EAAKE,YAAY,yBACjCE,EAAeJ,EAAKE,YAAY,sBAChCG,EAAetyB,KAAK2K,cAAc,OAAQ,CAC5CC,UAlqIa,aAoqIX2nB,EAAoBH,EAAc1tB,QAAQ,WAAY1E,KAAK4J,MAAMjJ,OAAOoI,YAC5EupB,EAAanL,UAAYoL,EACzBvyB,KAAKkc,YAAYpW,YAAYwsB,GAC7BtyB,KAAKkI,uBACL,IAAIsqB,EAAaF,EAAahY,YAM9B,GALA,aAAOgY,GACHtyB,KAAKgI,mBACPoS,EAAgBpa,KAAKqa,SAASC,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAKqa,UAAUE,YAAa,KAE3Gva,KAAKyyB,uBACA,YAAkBzyB,KAAK4J,SAAW5J,KAAKgE,kBAAoBhE,KAAKmO,UAAYnO,KAAKmO,SAASxN,OAAS,GACtG,IAAK,IAAIoM,EAAQ,GAAI,YAAkB/M,KAAK4J,MAAMmD,IAASA,IAAS,CAClE,IAAIuX,EAAQtkB,KAAKyQ,MAAQzQ,KAAKyQ,KAAK7L,MAAM5E,KAAKiO,eAgB9C,GAfKjO,KAAKsD,qBAMCghB,IACT5X,GAAkB,IAAVK,EAAc,GAAK/M,KAAKiO,cAAgB,IAEhDvB,GADAoG,EAAOwR,EAAMvX,GAEb+F,EAAO9S,KAAKkc,YAAYjM,UACxBjQ,KAAKolB,kBAAkBplB,KAAKkc,YAAaxP,KAVzCA,GAAkB,IAAVK,EAAc,GAAK/M,KAAKiO,cAAgB,IAEhDvB,GADAoG,EAAO9S,KAAKmlB,eAAepY,GAE3B+F,EAAO9S,KAAKkc,YAAYjM,UACxBjQ,KAAKolB,kBAAkBplB,KAAKkc,YAAaxP,IAQ3CglB,EAAc1xB,KAAKkc,YAAY5B,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAKkc,aAAa/B,aAAc,IAC9GyX,EAAmB5xB,KAAK6F,iBAAiByU,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAK6F,kBAAkB6sB,YAAa,IAAMjqB,SAAShC,OAAOyT,iBAAiBla,KAAK6F,kBAAkBsU,aAAc,IACpMuX,EAActX,EAAgBpa,KAAK2B,eAAiBiwB,EAAkB,CAQxE,SAPiB5lB,IAAb4L,GAAuC,KAAbA,IAC5B9E,EAAO8E,EACP7K,EAAQ0kB,EAAY,GAEtBzxB,KAAKolB,kBAAkBplB,KAAKkc,YAAapJ,GACzC6e,EAAY3xB,KAAK4J,MAAMjJ,OAASoM,EAChC2kB,EAAc1xB,KAAKkc,YAAY5B,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAKkc,aAAa/B,aAAc,IACvGuX,EAAcc,EAAapY,EAAgBpa,KAAK2B,eAAiBiwB,GAAoC,IAAhBF,GAAoD,KAA/B1xB,KAAKkc,YAAYjM,WAAkB,CAElJjQ,KAAKkc,YAAYjM,UADH,GACuB0iB,KAAK3yB,KAAKiO,eAC/C0jB,EAAY3xB,KAAK4J,MAAMjJ,OACvB+wB,EAAc1xB,KAAKkc,YAAY5B,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAKkc,aAAa/B,aAAc,IAEhH,MACSuX,EAAcc,EAAapY,EAAgBpa,KAAK2B,gBAAkBiwB,GAC3Eha,EAAWlL,EACX+kB,EAAY1kB,GACO,IAAVA,IACT6K,EAAW,GACX6Z,GAAa,GAInB,GAAIE,EAAY,EAAG,CACjB,IAAIiB,EAAahB,EAAmBxX,EAAgBpa,KAAK2B,eACzD3B,KAAKkc,YAAYpW,YAAY9F,KAAK6yB,qBAAqBP,EAActyB,KAAKkc,YAAayV,EAAWS,EAAeC,EAAcO,IAC/H5yB,KAAK8yB,kBAAkB9yB,KAAKkc,YAAa0W,GACzC5yB,KAAK+yB,oBAAoBT,EAAclY,EAAeuX,EAAWS,EAAeC,SAG7E,YAAkBryB,KAAKkc,eAC1Blc,KAAKkc,YAAYjM,UAAY,GAC7BjQ,KAAKkc,YAAYvW,MAAMC,QAAU,SAIvCvE,EAAYnB,UAAUuyB,oBAAsB,WACtCzyB,KAAKunB,kBACPvnB,KAAK2B,eAAiB3B,KAAKyF,aAAa6U,cAG5CjZ,EAAYnB,UAAU4yB,kBAAoB,SAAU5W,EAAa0W,GAC3D1W,EAAYpZ,UAAUoP,SA3tIJ,kBA2tIqC0gB,EAAa1W,EAAY5B,YAAc7R,SAAShC,OAAOyT,iBAAiBgC,GAAawW,YAAa,IAAMjqB,SAAShC,OAAOyT,iBAAiBgC,GAAawW,YAAa,MAC5NxW,EAAYvW,MAAM+U,MAAQkY,EAAa,OAG3CvxB,EAAYnB,UAAU2yB,qBAAuB,SAAUP,EAAcpW,EAAayV,EAAWS,EAAeC,EAAcO,GACpH1W,EAAY8W,YAAkD,IAApC9W,EAAY8W,WAAWC,UAAuD,KAArC/W,EAAY8W,WAAWE,WAC5FhX,EAAY7Q,YAAY6Q,EAAY8W,YAEtCV,EAAariB,UAAY,GACzB,IAAIkjB,EAAaf,EAAc1tB,QAAQ,WAAYitB,EAAU5oB,YACzDqqB,EAAYf,EAAa3tB,QAAQ,WAAYitB,EAAU5oB,YAQ3D,OAPAupB,EAAanL,UAAYjL,EAAY8W,YAAkD,IAApC9W,EAAY8W,WAAWC,SAAiBE,EAAaC,EACpGlX,EAAY8W,YAAkD,IAApC9W,EAAY8W,WAAWC,SACnD/W,EAAYpZ,UAAUE,OAxuIF,kBA0uIpBkZ,EAAYpZ,UAAUC,IA1uIF,iBA2uIpB/C,KAAK8yB,kBAAkB5W,EAAa0W,IAE/BN,GAETjxB,EAAYnB,UAAU6yB,oBAAsB,SAAUT,EAAclY,EAAeuX,EAAWS,EAAeC,GAC3G,IAAIT,EAAmB5xB,KAAK6F,iBAAiByU,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAK6F,kBAAkB6sB,YAAa,IAAMjqB,SAAShC,OAAOyT,iBAAiBla,KAAK6F,kBAAkBsU,aAAc,IACxMuX,EAAc1xB,KAAKkc,YAAY5B,YAAc7R,SAAShC,OAAOyT,iBAAiBla,KAAKkc,aAAa/B,aAAc,IAClH,GAAIuX,EAActX,GAAiBwX,GAAoC,IAAhBF,GAAqB1xB,KAAKkc,YAAY8W,YAAuD,IAAzChzB,KAAKkc,YAAY8W,WAAWC,SAAgB,CACrJ,KAAOvB,EAActX,EAAgBwX,GAAoC,IAAhBF,GAAqB1xB,KAAKkc,YAAY8W,YAAuD,IAAzChzB,KAAKkc,YAAY8W,WAAWC,UAAgB,CACvJ,IAAInF,EAAU9tB,KAAKkc,YAAY8W,WAAWE,UAAUtuB,MAAM5E,KAAKiO,eAC/D6f,EAAQuF,MACRrzB,KAAKkc,YAAY8W,WAAWE,UAAYpF,EAAQ6E,KAAK3yB,KAAKiO,eACZ,KAA1CjO,KAAKkc,YAAY8W,WAAWE,WAC9BlzB,KAAKkc,YAAY7Q,YAAYrL,KAAKkc,YAAY8W,YAEhDrB,IACAD,EAAc1xB,KAAKkc,YAAY5B,YAEjC,IAAIsY,EAAahB,EAAmBxX,EACpCpa,KAAK6yB,qBAAqBP,EAActyB,KAAKkc,YAAayV,EAAWS,EAAeC,EAAcO,KAGtGvxB,EAAYnB,UAAUilB,eAAiB,SAAUpY,GAC/C,IAAI+F,EACJ,GAAI9S,KAAK8Q,UAAY9Q,KAAK8Q,SAASnQ,OAAQ,CACzC,IAAIiJ,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAMmD,IAAU/M,KAAK4J,MAAMmD,GAC3H,GAAkB,aAAd/M,KAAK0D,KAAqB,CAC5B,IAAI4vB,EAAUtzB,KAAKmO,SACnBnO,KAAKmO,SAAWnO,KAAK8Q,SACrBgC,EAAO9S,KAAKwtB,eAAe5jB,GAC3B5J,KAAKmO,SAAWmlB,OAEhBxgB,EAAO9S,KAAKwtB,eAAe5jB,QAG7BkJ,EAAO9S,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAMmD,IAAU/M,KAAK4J,MAAMmD,GAExH,OAAO+F,GAETzR,EAAYnB,UAAUqzB,YAAc,WAKlC,GAJK,YAAkBvzB,KAAK6F,mBAC1B,IAAa7C,OAAOhD,KAAK6F,iBAAkB,YAAa7F,KAAKyY,cAE/D,IAAazV,OAAOyD,OAAQ,SAAUzG,KAAKqrB,eACtC,YAAkBrrB,KAAKgF,cAAe,CACzC,IAAahC,OAAOhD,KAAKgF,aAAc,QAAShF,KAAKgc,gBACrD,IAAahZ,OAAOhD,KAAKgF,aAAc,UAAWhF,KAAKge,WACrC,aAAdhe,KAAK0D,MACP,IAAaV,OAAOhD,KAAKgF,aAAc,QAAShF,KAAK2rB,SAEvD,IAAa3oB,OAAOhD,KAAKgF,aAAc,QAAShF,KAAK2T,OACrD,IAAI4X,EAAc,YAAQvrB,KAAKgF,aAAc,QACzCumB,GACF,IAAavoB,OAAOuoB,EAAa,QAASvrB,KAAKsrB,mBAEjD,IAAatoB,OAAOhD,KAAKgF,aAAc,OAAQhF,KAAK8Y,eAEjD,YAAkB9Y,KAAK6F,oBAC1B,IAAa7C,OAAOhD,KAAK6F,iBAAkB,YAAa7F,KAAKynB,SAC7D,IAAazkB,OAAOhD,KAAK6F,iBAAkB,WAAY7F,KAAK0nB,WAEzD,YAAkB1nB,KAAKyF,eAC1B,IAAazC,OAAOhD,KAAKyF,aAAc,YAAazF,KAAK8qB,UAEtD,YAAkB9qB,KAAKgF,eAC1B,IAAahC,OAAOhD,KAAKgF,aAAc,QAAShF,KAAK4rB,eAGzDvqB,EAAYnB,UAAUszB,kBAAoB,WAExC,IAAazwB,IAAIyE,SAAU,YAAaxH,KAAKyzB,YAAazzB,MAC1D,IAAa+C,IAAIyE,SAAU,UAAWxH,KAAK0zB,aAAc1zB,MAEzD,IAAa+C,IAAIyE,SAAU,YAAaxH,KAAKyzB,YAAazzB,MAC1D,IAAa+C,IAAIyE,SAAU,WAAYxH,KAAK0zB,aAAc1zB,OAE5DqB,EAAYnB,UAAUyzB,oBAAsB,WAE1C,IAAa3wB,OAAOwE,SAAU,YAAaxH,KAAKyzB,aAChD,IAAazwB,OAAOwE,SAAU,UAAWxH,KAAK0zB,cAE9C,IAAa1wB,OAAOwE,SAAU,YAAaxH,KAAKyzB,aAChD,IAAazwB,OAAOwE,SAAU,WAAYxH,KAAK0zB,eAEjDryB,EAAYnB,UAAU+gB,cAAgB,SAAUre,EAAOqE,EAAOY,GAC5D,IAAIsC,EAOJ,GANK,YAAkBnK,KAAK6H,QAC1BsC,EAAKnK,KAAK6H,KAAKC,iBAAiBlF,EAAQ,wGAA0G,oGAEhJ5C,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,QAAUsG,GAASA,EAAM3G,QAAU,YAAQ2G,EAAM3G,OAAQ,oBAAsBN,KAAKuG,iBAC/G4D,EAAKnK,KAAK+H,SAASD,iBAAiBlF,EAAQ,wGAA0G,oGAEpJ5C,KAAK4D,qBAAqC,aAAd5D,KAAK0D,OAAwB,YAAkB1D,KAAK0H,OAAOC,SAAU,CACnG,IAAIrH,EAAS2G,EAAQjH,KAAK4zB,cAAgB,YAAQ3sB,EAAM3G,OAAQ,sBAAwB2G,EAAM3G,OAAS,KAGvG,IADAA,GADAA,EAAS2G,GAA2B,KAAlBA,EAAMkK,QAAiBtJ,EAAOvH,IAC7BA,EAAOwC,UAAUoP,SAAS,WAAa5R,EAAOiS,cAAcA,cAAgBjS,IACjFA,EAAOwC,UAAUoP,SAAS,qBAAsB,CAC5D,IAAIme,EAAc/vB,EAAO8R,mBACzB,GAAI,YAAkBie,GACpB,OAEF,KAAOA,EAAYvtB,UAAUoP,SAAS,gBAAgB,CACpD,IAAMlS,KAAK0H,OAAO2E,WAAYrM,KAAKkiB,kBAAkBmO,GACnD,GAAIztB,GACF,IAAKytB,EAAYxP,kBAAkBC,iBAAiBhe,UAAUoP,SAAS,WAAY,CACjF,IAAI2hB,EAAiB7zB,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAK4J,MAAMjJ,OAAS,EACvE0vB,EAAYvtB,UAAUoP,SAAS,cACjC2hB,GAAkB,GAEhBA,EAAiB7zB,KAAKsT,wBACxBtT,KAAKuZ,oBAAoB8W,EAAappB,SAItCopB,EAAYxP,kBAAkBC,iBAAiBhe,UAAUoP,SAAS,YACpElS,KAAKuZ,oBAAoB8W,EAAappB,GAK5C,GAAmB,OADnBopB,EAAcA,EAAYje,oBAExB,MAGJ,GAAI9R,EAAOwC,UAAUoP,SAAS,qBAAsB,CAClD,IAAI4hB,EAAiB9zB,KAAK6H,KAAK2C,uBAAuB,gBAAgB,GAClEspB,GACFA,EAAehxB,UAAUE,OAAO,gBAE9BJ,EACFtC,EAAOwC,UAAUC,IAAI,YAErBzC,EAAOwC,UAAUE,OAAO,YAE1B1C,EAAOwC,UAAUC,IAAI,gBACrB/C,KAAKmJ,6BAEPnJ,KAAK+zB,qBACL/zB,KAAKqO,wBACArO,KAAK4R,cAAgB3K,GACxBjH,KAAK6R,iBAAiB5K,EAAOjH,KAAK4J,MAAO5J,KAAKyN,iBAGhDzN,KAAKg0B,YAAY/sB,EAAOkD,EAAIvH,QAG9B5C,KAAKg0B,YAAY/sB,EAAOkD,EAAIvH,GAE9B5C,KAAK6tB,sBAEPxsB,EAAYnB,UAAU+zB,oBAAsB,SAAUrxB,EAAOuH,EAAIlD,GAC/D,IAAIxF,EAAQzB,KACR+M,EAAQ,EACRpM,EAASwJ,EAAGxJ,OACZiP,EAAQ5P,KAAKsT,uBACjB,GAAI1Q,EAAO,CACT5C,KAAKuT,kBAAmB,EACxB5S,EAASX,KAAKk0B,sBAA6D,IAArCl0B,KAAKk0B,qBAAqBvzB,OAAeX,KAAKk0B,qBAAqBvzB,OAASA,EAClHX,KAAKmO,SAAWnO,KAAKk0B,qBACrB,IACIC,EADYn0B,KAAKo0B,gBAAgBp0B,KAAKk0B,qBAAqBxmB,MAAM,EAAG,IAAK1N,KAAK0H,QACvDI,iBAAiB,MACxCusB,EAAa7sB,SAAS8sB,yBAC1BH,EAAWzc,SAAQ,SAAU6c,GAC3BF,EAAWvuB,YAAYyuB,EAAKxjB,WAAU,OAExC5G,EAAGuN,SAAQ,SAAU6c,GACnBF,EAAWvuB,YAAYyuB,EAAKxjB,WAAU,OAExC,IAAIyjB,EAAuBH,EAAWlT,WACtC,GAAInhB,KAAKk0B,gCAAgCt0B,MAAO,CAC9C,KAAOmN,EAAQpM,GAAUoM,GAAS,IAAMA,EAAQ6C,GAAO,CAErD,GADA5P,KAAKqkB,kBAAoB1jB,IAAWoM,EAAQ,EACxCynB,EAAqBznB,GAAQ,CAC/B,IAAInD,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAe4mB,EAAqBznB,GAAOS,aAAa,eAAiBxN,KAAK6N,kBAAkB2mB,EAAqBznB,GAAOS,aAAa,eACpL,IAAKxN,KAAK2L,oBAAsB3L,KAAK4J,OAAS5J,KAAK4J,MAAMxE,QAAQwE,IAAU,GAAK5J,KAAK2L,oBAAsB3L,KAAK+iB,qBAAqBnZ,EAAO5J,KAAK4J,QAAU,EAAG,CAC5JmD,IACA,SAEF/M,KAAKuZ,oBAAoBib,EAAqBznB,GAAQ9F,EAAOtG,EAASoM,OACjE,CACDnD,EAAQ,YAAS5J,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAKk0B,qBAAqBnnB,IAE3F,GADAnD,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAehE,GAASA,GAC1D5J,KAAK2L,oBAAsB3L,KAAK4J,OAAS5J,KAAK4J,MAAMxE,QAAQwE,IAAU,GAAK5J,KAAK2L,oBAAsB3L,KAAK+iB,qBAAqBnZ,EAAO5J,KAAK4J,QAAU,EAAG,CAC5JmD,IACA,SAEE/M,KAAK4J,OAAkB,MAATA,GAAiBhK,MAAM6kB,QAAQzkB,KAAK4J,UAAY5J,KAAK2L,oBAAsB3L,KAAK4J,MAAMxE,QAAQwE,GAAS,GAAK5J,KAAK2L,qBAAuB3L,KAAKklB,gBAAgBtb,EAAO5J,KAAK4J,SACzL5J,KAAK0lB,eAAe9b,EAAO3C,EAAO,MAAM,EAAOtG,GAGnDoM,IAEEpM,EAAS,IACX2H,YAAW,WAiBT,GAhBI7G,EAAMyyB,sBAAwBzyB,EAAMyyB,qBAAqBvzB,OAAS,GACpEc,EAAMyyB,qBAAqBO,KAAI,SAAUC,GACvC,GAAIjzB,EAAMmI,OAAoC,MAA3B8qB,EAAIjzB,EAAMiG,OAAOkC,QAAkBhK,MAAM6kB,QAAQhjB,EAAMmI,UAAYnI,EAAMkK,oBAAsBlK,EAAMmI,MAAMxE,QAAQsvB,EAAIjzB,EAAMiG,OAAOkC,QAAU,GAAKnI,EAAMkK,qBAAuBlK,EAAMyjB,gBAAgBwP,EAAIjzB,EAAMiG,OAAOkC,OAAQnI,EAAMmI,QAAS,CAC/P,IAAIA,EAAQ8qB,EAAIjzB,EAAMiG,OAAOkC,OACzB6G,EAAOikB,EAAIjzB,EAAMiG,OAAO+I,MAAM1H,WAClCtH,EAAMikB,eAAe9b,EAAO3C,EAAO,MAAM,EAAOtG,EAAQ+zB,EAAKjkB,OAInEhP,EAAMkzB,qBAAqB1tB,GAC3BxF,EAAMe,iBAAkB,EACnBf,EAAMmQ,eACTnQ,EAAMoQ,iBAAiB5K,EAAOxF,EAAMmI,MAAOnI,EAAMgM,YACjDhM,EAAM4hB,YAAc5hB,EAAM4hB,aAAe5hB,EAAM4hB,YAAc5hB,EAAM4hB,aAErE5hB,EAAMmzB,qBAAoB,GACtBnzB,EAAMoD,cAAgBsF,EAAG4C,EAAQ,IAAM5C,EAAG4C,EAAQ,GAAGjK,UAAUoP,SAAS,gBAAiB,CAC3F,IAAI2M,EAAkBrX,SAASgD,uBAAuB,sBAAsB,GACxEqU,GAAmBA,EAAgB/b,UAAUoP,SAAS,iBACxD/H,EAAG4C,EAAQ,GAAGjK,UAAUE,OAAO,mBAGlC,SAIHhD,KAAKk0B,sBAAwBl0B,KAAKk0B,qBAAqBvzB,OAAS,GAClEX,KAAKk0B,qBAAqBO,KAAI,SAAUC,GACtCjzB,EAAM8R,kBAAmB,EACzB9R,EAAMqM,YAAYrM,EAAMmI,MAAMmD,GAAQ9F,EAAOxF,EAAMmI,MAAMjJ,OAASoM,MAGtE/M,KAAK20B,qBAAqB1tB,GACrBjH,KAAK4R,eACR5R,KAAK6R,iBAAiB5K,EAAOjH,KAAK4J,MAAO5J,KAAKyN,YAC9CzN,KAAKqjB,YAAcrjB,KAAKqjB,aAAerjB,KAAKqjB,YAAcrjB,KAAKqjB,aAEjErjB,KAAK40B,sBACL50B,KAAKkF,cAAc,CACjB0E,MAAO,KACN,GACH5J,KAAKuT,kBAAmB,EACnB,YAAkBvT,KAAKsM,aAAaC,aAAgB,YAAkBvM,KAAKsM,aAAa4C,WAC3FlP,KAAKuL,OAAO,0BAA2B,CACrCuL,UAAW9W,KAAKyV,gBAChBjK,OAAQ,kBAKd,IAAIqpB,EAAsB70B,KAAK6H,KAAK2C,uBAAuB,iBAAiB,GACxEqqB,IACFA,EAAoBlvB,MAAQ3F,KAAKyK,yBAEnCzK,KAAKiK,iBAEL,IAAI6qB,EAAwB90B,KAAK6H,KAAK2C,uBAAuB,yBAAyB,GAClFsqB,IACFA,EAAsBnvB,MAAQ3F,KAAK8K,uBAGvCzJ,EAAYnB,UAAU8zB,YAAc,SAAU/sB,EAAOkD,EAAIvH,GACvD,IAAInB,EAAQzB,KACRW,EAASwJ,EAAGxJ,OACZo0B,EAAmB,CACrB9tB,MAAOA,EACPqd,MAAO1hB,EAAQuH,EAAK,GACpBsZ,SAAU7gB,EAAQ5C,KAAKmO,SAAW,GAClC+M,eAAcjU,EACdsd,UAAW3hB,EACXoyB,oBAAoB,GAGtB,GADAh1B,KAAKsH,QAAQ,kBAAmBytB,GAC5B5qB,GAAMA,EAAGxJ,QAAUX,KAAKsD,uBAAyBV,EAAO,CAC1D,IAAIqyB,EAAU,EACVC,EAAU,EAMd,GAJEA,EADEl1B,KAAK4D,oBACGhB,EAAQ5C,KAAKsT,wBAA0BtT,KAAK4J,MAAQ5J,KAAK4J,MAAMjJ,OAAS,GAAKwJ,EAAGxJ,OAEhFiC,EAAQ5C,KAAKsT,wBAA0BtT,KAAK4J,MAAQ5J,KAAK4J,MAAMjJ,OAAS,GAAKX,KAAKsT,uBAEzFyhB,EAAiBC,mBA6Cf,CACL,IAAK,IAAIh0B,EAAI,EAAGA,EAAImJ,EAAGxJ,QAAUK,EAAIk0B,EAASl0B,IAAK,CACjDhB,KAAKivB,cACL,IAAIvM,EAAYvY,EAAGnJ,GAAGwM,aAAa,cAC/B5D,EAAQ5J,KAAK6N,kBAAkB6U,GACnC9Y,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAehE,GAASA,EAC/D,IAAIkZ,EAAc9iB,KAAK+H,SAAW/H,KAAK+H,SAASD,iBAAiBlF,EAAQ,kEAAoE,6DAA6D5B,GAAK,KAC3M4B,GACF5C,KAAK4J,MAAS5J,KAAK4J,MAAa5J,KAAK4J,MAAV,KACtB5J,KAAK2L,oBAAsB3L,KAAK4J,MAAMxE,QAAQwE,GAAS,GAAK5J,KAAK2L,qBAAuB3L,KAAKklB,gBAAgBtb,EAAO5J,KAAK4J,SAC5H5J,KAAKkF,cAAc,CACjB0E,MAAO,GAAGqO,OAAO,GAAIjY,KAAK4J,MAAO,CAACA,MACjC,GAEL5J,KAAKsL,cACLtL,KAAKslB,iBAAiBnb,EAAGnJ,GAAI8hB,GAC7B9iB,KAAKojB,mBACLpjB,KAAK2S,qBAEL3S,KAAK4iB,eAAehZ,EAAO3C,GAAO,EAAOkD,EAAGnJ,GAAI8hB,GAE9C9iB,KAAK4D,qBACP5D,KAAKiL,eAAed,EAAGnJ,IAG3B,IAAK4B,EAEH,IADY5C,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAASX,KAAK4J,MAAMjJ,OAAS,GACtDX,KAAKsT,uBAAwB,CACvC,IAAImI,EAAazb,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,mBAC7E,aAAYsR,EAAY,aAG5B,IAAIjY,EAAO,CACTyD,MAAOA,EACPqd,MAAO1hB,EAAQuH,EAAK,GACpBsZ,SAAU7gB,EAAQ5C,KAAKmO,SAAW,GAClC+M,eAAcjU,EACdsd,UAAW3hB,GAEb5C,KAAKsH,QAAQ,cAAe9D,QAnF5B,GAAIxD,KAAKsD,qBACPtD,KAAKm1B,sBAAwBvyB,EAC7B5C,KAAKuT,kBAAmB,EACxBvT,KAAKo1B,aAAenuB,EACfjH,KAAKk0B,sBACRl0B,KAAK+J,UAAU/J,KAAK8J,WAAY9J,KAAK0H,OAAQ,IAAI,KAE/C1H,KAAKk0B,sBACPl0B,KAAKi0B,oBAAoBrxB,EAAOuH,EAAIlD,OAEjC,CACL,KAAOguB,EAAUt0B,GAAUs0B,GAAW,IAAMA,EAAUC,GACpDl1B,KAAKqkB,kBAAoB1jB,IAAWs0B,EAAU,EAC9Cj1B,KAAKuZ,oBAAoBpP,EAAG8qB,GAAUhuB,EAAOtG,EAASs0B,GAClDj1B,KAAK4D,qBACP5D,KAAKiL,eAAed,EAAG8qB,IAEzBA,IAEEt0B,EAAS,IACX2H,YAAW,WACT,KAAO2sB,EAAUt0B,GAAUs0B,EAAUC,GACnCzzB,EAAM4iB,kBAAoB1jB,IAAWs0B,EAAU,EAC/CxzB,EAAM8X,oBAAoBpP,EAAG8qB,GAAUhuB,EAAOtG,EAASs0B,GACnDxzB,EAAMmC,qBACRnC,EAAMwJ,eAAed,EAAG8qB,IAE1BA,IAQF,GANAxzB,EAAMkzB,qBAAqB1tB,GACtBxF,EAAMmQ,eACTnQ,EAAMoQ,iBAAiB5K,EAAOxF,EAAMmI,MAAOnI,EAAMgM,YACjDhM,EAAM4hB,YAAc5hB,EAAM4hB,aAAe5hB,EAAM4hB,YAAc5hB,EAAM4hB,aAErE5hB,EAAMmzB,sBACFnzB,EAAMoD,cAAgBsF,EAAG8qB,EAAU,GAAGnyB,UAAUoP,SAAS,gBAAiB,CAC5E,IAAI2M,EAAkBrX,SAASgD,uBAAuB,sBAAsB,GACxEqU,GAAmBA,EAAgB/b,UAAUoP,SAAS,iBACxD/H,EAAG8qB,EAAU,GAAGnyB,UAAUE,OAAO,mBAGpC,IA6CXhD,KAAK20B,qBAAqB1tB,GAC1BjH,KAAKqO,uBACD1N,GAAU,KAAOo0B,EAAiBC,qBAC/Bh1B,KAAK4R,eACR5R,KAAK6R,iBAAiB5K,EAAOjH,KAAK4J,MAAO5J,KAAKyN,YAC9CzN,KAAKqjB,YAAcrjB,KAAKqjB,aAAerjB,KAAKqjB,YAAcrjB,KAAKqjB,cAE7DrjB,KAAKsD,sBAAwBtD,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAS,IAAMX,KAAKsD,uBAC5EtD,KAAK40B,wBAIXvzB,EAAYnB,UAAU00B,oBAAsB,SAAUS,GACpD,IAAI5zB,EAAQzB,KACRs1B,EAAc,GACdC,EAAc,GACd7oB,EAAO,GACP+D,EAAO,GACO,aAAdzQ,KAAK0D,OACP1D,KAAK4J,MAAM6qB,KAAI,SAAU7qB,EAAOmD,GAC9BuoB,GAAe,4BAA8B1rB,EAAQ,KAAOmD,EAAQ,YAC/DsoB,IAED3oB,EADEjL,EAAM0M,SACD1M,EAAM+rB,eAAe5jB,GAErBA,EAET2rB,GAAe7oB,EAAOjL,EAAMwM,cAAgB,IAC5CwC,EAAKlN,KAAKmJ,OAGd1M,KAAKqF,cAAc4K,UAAYqlB,EAC1BD,IACHr1B,KAAKolB,kBAAkBplB,KAAKmc,iBAAkBoZ,GAC9Cv1B,KAAKkF,cAAc,CACjBuL,KAAMA,EAAK1H,aACV,IAEL/I,KAAKmc,iBAAiBlX,aAAa,KAAM,YAAY,cACrDjF,KAAKgF,aAAaC,aAAa,mBAAoBjF,KAAKmc,iBAAiBjT,IACzElJ,KAAK6Z,oBACL7Z,KAAKmF,uBAGT9D,EAAYnB,UAAUy0B,qBAAuB,SAAU1tB,GACrDjH,KAAKkL,iBACLlL,KAAK+zB,mBAAmB9sB,IAE1B5F,EAAYnB,UAAU6zB,mBAAqB,SAAU9sB,GACnD,IAAIuuB,EAAcvuB,GAASA,EAAM3G,SAAW,YAAQ2G,EAAM3G,OAAQ,wBAA0B,YAAQ2G,EAAM3G,OAAQ,oBAChG,QAAdN,KAAK0D,MAAmB1D,KAAK8M,eAAiC,aAAd9M,KAAK0D,OAAwB1D,KAAKqjB,aAAemS,GAGnGx1B,KAAKya,cAAc3X,UAAUE,OA3pJnB,eAypJVhD,KAAKyZ,kBAIW,aAAdzZ,KAAK0D,MACP1D,KAAKyZ,oBACC+b,IAAex1B,KAAKqjB,aAAgBrjB,KAAKqkB,mBAAqBrkB,KAAKqjB,aAAerjB,KAAKqkB,oBAC3FrkB,KAAKgO,gBAAgBhO,KAAKiO,cAAehH,GAE3CjH,KAAK6Z,qBAEL7Z,KAAKgO,gBAAgBhO,KAAKiO,cAAehH,GAE3CjH,KAAKmF,sBAEP9D,EAAYnB,UAAUu1B,UAAY,WAC5Bz1B,KAAKiD,UACPjD,KAAKiD,SAASiC,cAAc,CAC1B,OAAUlF,KAAKoI,UAKrB/G,EAAYnB,UAAUw1B,iBAAmB,SAAUC,GAC7C,YAAkB31B,KAAK6H,MACzB7H,KAAKwO,cAELxO,KAAK+J,UAAU/J,KAAK8J,YAElB9J,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SAC3BX,KAAKkF,cAAc,CACjB,MAASlF,KAAK4J,QAEhB5J,KAAKoO,qBAGT/M,EAAYnB,UAAU01B,aAAe,WACnC51B,KAAKwR,aAAc,EACnBxR,KAAKwO,eAEPnN,EAAYnB,UAAU6qB,eAAiB,SAAUnoB,EAAOqE,GACtD,IAAIxF,EAAQzB,KACZ,GAAI,YAAkBA,KAAK6H,MACzB7H,KAAKuR,gBAAkB,WACrB,GAAmB,aAAf9P,EAAMiC,MAAuBjC,EAAM6H,cAAe,CACpD,IAAI9F,EAAO,CACTgI,OAAQ,oBACR1G,OAAuB,aAAfrD,EAAMiC,KACdkG,MAAOhH,EAAQ,QAAU,WAE3BnB,EAAM8J,OAAO,iBAAkB/H,GAEjC/B,EAAMwf,cAAcre,EAAOqE,GAC3BxF,EAAM8P,gBAAkB,MAE1BjQ,EAAOpB,UAAU6b,OAAOra,KAAK1B,UACxB,CAEL,GADAA,KAAKuR,gBAAkB,KACL,aAAdvR,KAAK0D,MAAuB1D,KAAKsJ,cAAe,CAClD,IAAI9F,EAAO,CACToG,MAAOhH,EAAQ,QAAU,UACzBkC,OAAsB,aAAd9E,KAAK0D,KACb8H,OAAQ,qBAEVxL,KAAKuL,OAAO,iBAAkB/H,GAEhCxD,KAAKihB,cAAcre,EAAOqE,GAEtBjH,KAAK8J,sBAAsB,OAAgB9J,KAAK8J,sBAAsB,KAAe9J,KAAKk0B,wBAC9Fl0B,KAAKuT,kBAAmB,IAQ5BlS,EAAYnB,UAAU21B,eAAiB,WACrC,OAAO71B,KAAK81B,aAAa,CAAC,WAU5Bz0B,EAAYnB,UAAU61B,kBAAoB,SAAUC,EAASC,IACvDD,EAAQlsB,aAAe,YAAkBrK,OAAO2E,KAAK4xB,EAAQlsB,cAAgBksB,EAAQtsB,QAAU,YAAkBjK,OAAO2E,KAAK4xB,EAAQtsB,WACvI1J,KAAK+H,SAAW,KAChB/H,KAAK8Q,SAAW,KAChB9Q,KAAKoJ,cAAe,EACpBpJ,KAAKk2B,qBAAsB,GAEA,gBAAzBl2B,KAAKyV,kBACPzV,KAAK2U,cAAe,EACpB3U,KAAKm2B,iBAAiB,CAAC,SAAU,QAAS,cAAeH,IAE3D,IAAK,IAAI1xB,EAAK,EAAGC,EAAK9E,OAAO2E,KAAK4xB,GAAU1xB,EAAKC,EAAG5D,OAAQ2D,IAAM,CAChE,IAAIqxB,EAAOpxB,EAAGD,GACd,OAAQqxB,GACN,IAAK,QACL,IAAK,aACe,aAAd31B,KAAK0D,MAAuB1D,KAAKsJ,gBAC9B,YAAkBtJ,KAAKiD,YAC1BjD,KAAKiD,SAASmzB,UACdp2B,KAAKiD,SAAW,MAElBjD,KAAKwO,eAEP,MACF,IAAK,iBACHxO,KAAKmE,sBACL,MACF,IAAK,kBACHnE,KAAKwF,kBAAkBwwB,EAAQzO,iBAC/B,MACF,IAAK,OACCvnB,KAAK0H,OAAO2E,WACdrM,KAAKyQ,KAAOzQ,KAAKyQ,OAASzQ,KAAKq2B,sBAAsBr2B,KAAK2b,gBAAgB3b,KAAKoX,eAAepX,KAAKyQ,QAAUzQ,KAAKyQ,KAAO,MAE3HzQ,KAAKs2B,UAAUt2B,KAAK4J,MAAO5J,KAAK4J,MAAO,QACvC,MACF,IAAK,QASH,GARI5J,KAAK0H,OAAO2E,UACdrM,KAAKu2B,yBAAyBv2B,KAAK4J,OAErC5J,KAAKs2B,UAAUt2B,KAAK4J,MAAOqsB,EAAQrsB,MAAO,SAC1C5J,KAAK6tB,sBACA7tB,KAAKkE,oBAAsBlE,KAAK8M,eACnC9M,KAAKiI,eAEHjI,KAAK8M,eAA+B,aAAd9M,KAAK0D,MAAuB1D,KAAK6H,MAAQ7H,KAAK6H,KAAK0C,cAAc,uBAAwB,CACjH,IAAIib,EAAcxlB,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAA5B,uBAC7C,aAAYqb,EAAa,aAE3BxlB,KAAKmb,cAAgBnb,KAAKiZ,WAAajZ,KAAKmb,eAAiBnb,KAAKmb,cAAgBnb,KAAKmb,cACvF,MACF,IAAK,QACHnb,KAAK4kB,SAASoR,EAAQtb,OACtB1a,KAAKiD,SAASiC,cAAc,CAC1BwV,MAAO1a,KAAK0c,mBAEd,MACF,IAAK,cACH1c,KAAKmF,qBACL,MACF,IAAK,uBACCnF,KAAKuG,gBACPvG,KAAKuL,OAAO,uBAAwB,CAClCirB,qBAAsBR,EAAQQ,uBAGlC,MACF,IAAK,gBACe,QAAdx2B,KAAK0D,MACP1D,KAAKyZ,kBAEPzZ,KAAKisB,WAAW+J,EAAQ/nB,eACxB,MACF,IAAK,WACHjO,KAAKkG,sBAAsB+vB,EAAQjwB,UACnChG,KAAK+F,iBACL/F,KAAK+Z,iBACL,MACF,IAAK,YACH/Z,KAAK2C,UAAUqzB,EAAQ9yB,WACvB5B,EAAOpB,UAAU61B,kBAAkBr0B,KAAK1B,KAAMg2B,EAASC,GACvD,MACF,IAAK,cAEH,GADAj2B,KAAKiX,YAAc+e,EAAQ/e,aACtBjX,KAAKiX,aAAejX,KAAKiD,SAAU,CACtC,IAAIolB,EAAgB5f,SAASzI,KAAKuI,YAAa,IACtB,SAArBvI,KAAKuI,aACPvI,KAAK6H,KAAKlC,MAAMkD,UAAY,YAAWwf,GACvCroB,KAAK6E,aAAac,MAAM8wB,OAAS,YAAWz2B,KAAKuI,aACjDvI,KAAK6E,aAAac,MAAMkD,UAAY,YAAW7I,KAAKuI,cAEpDvI,KAAK6H,KAAKlC,MAAMkD,UAAY,YAAW7I,KAAKuI,aAGhD,MACF,IAAK,WACHvI,KAAKsF,eAAe0wB,EAAQpd,UAC5B5Y,KAAK2G,YACL,MACF,IAAK,UACH3G,KAAK2G,YACL3G,KAAK8E,OAAOkxB,EAAQrd,SACpB,MACF,IAAK,gBACC3Y,KAAKiD,WACPjD,KAAKiD,SAASmzB,UACdp2B,KAAKiD,SAAW,MAElBjD,KAAKwO,cACL,MACF,IAAK,mBACHxO,KAAK02B,eACL,MACF,IAAK,iBACH12B,KAAK2iB,oBACL3iB,KAAK6tB,qBACL,IAAM/T,kBAAkB9Z,KAAK6C,eAAgB7C,KAAK2K,eAClD3K,KAAK+Z,iBACA,YAAkB/Z,KAAK6C,iBAAoB,YAAkB7C,KAAK6C,eAAe2H,uBAAuB,cAAc,IAAMxK,KAAK6C,eAAe2H,uBAAuB,wBAAwB,IAA8B,UAAxBxK,KAAKmZ,iBAC7MnZ,KAAK6C,eAAe2H,uBAAuB,wBAAwB,GAAG1H,UAAUC,IAAI,UAEtF,MACF,IAAK,uBACH,MACF,IAAK,gBACH/C,KAAKuL,OAAO,iBAAiB,GAC7B,MACF,IAAK,cACH,GAAIvL,KAAKiD,SAAU,CACbolB,EAAgB5f,SAASzI,KAAKuI,YAAa,IACtB,SAArBvI,KAAKuI,aACPvI,KAAK6H,KAAKlC,MAAMkD,UAAY,YAAWwf,GACvCroB,KAAK6E,aAAac,MAAMkD,UAAY,YAAW7I,KAAKuI,cAEpDvI,KAAK6H,KAAKlC,MAAMkD,UAAY,YAAW7I,KAAKuI,aAGhD,MACF,IAAK,iBACL,IAAK,iBACHvI,KAAK22B,mBACL,MACF,IAAK,iBACe,aAAd32B,KAAK0D,MAAuB1D,KAAKiD,UACnCjD,KAAK22B,mBAEP32B,KAAKmQ,wBAAwBnQ,KAAKuG,gBAClC,MACF,IAAK,SACC,YAAkBvG,KAAK0H,OAAOC,UAChC3H,KAAK42B,oBAEP,MACF,QAEI,IAAIC,EAAU72B,KAAK82B,cAAcnB,EAAMK,EAASC,GAChD30B,EAAOpB,UAAU61B,kBAAkBr0B,KAAK1B,KAAM62B,EAAQE,YAAaF,EAAQG,gBAMrF31B,EAAYnB,UAAUy2B,iBAAmB,WACnC32B,KAAKiD,WACPjD,KAAKiD,SAASmzB,UACdp2B,KAAKiD,SAAW,MAElBjD,KAAKwO,eAEPnN,EAAYnB,UAAUwkB,gBAAkB,WACtC,IAAIuS,EAWJ,GAVIj3B,KAAK8J,sBAAsB,IACzB9J,KAAK2qB,iBAAmB,EAC1BsM,EAAkBj3B,KAAKsK,eAAiBtK,KAAK4qB,UAAY5qB,KAAK2qB,gBAE9D3qB,KAAK+J,UAAU/J,KAAK8J,YAItBmtB,EAAkBj3B,KAAK8J,YAAc9J,KAAK8J,WAAWnJ,OAASX,KAAK8J,WAAWnJ,OAAS,EAEvE,aAAdX,KAAK0D,KACP1D,KAAKsK,eAAqC,IAApB2sB,EAAwBA,EAAkBj3B,KAAKsK,oBAErE,GAAItK,KAAKiE,kBAEP,GADAjE,KAAKsK,eAAqC,IAApB2sB,GAAyBj3B,KAAK4J,MAAQqtB,EAAkBj3B,KAAK4J,MAAMjJ,OAASX,KAAKsK,eACnGtK,KAAKgE,kBAAoBhE,KAAKgY,yBAA2BhY,KAAKgY,wBAAwBrX,OAAS,EACjG,IAAK,IAAIK,EAAI,EAAGA,EAAIhB,KAAKgY,wBAAwBrX,OAAQK,IACvD,IAAK,IAAI6R,EAAI,EAAGA,EAAI7S,KAAK4J,MAAMjJ,OAAQkS,IAAK,EAC9B7S,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAMiJ,IAAM7S,KAAK4J,MAAMiJ,MACrG,YAAS7S,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAKgY,wBAAwBhX,MAElGhB,KAAKsK,gBAAkB,SAM/BtK,KAAKsK,eAAqC,IAApB2sB,EAAwBA,EAAkBj3B,KAAKsK,eACjEtK,KAAKgE,kBAAoBhE,KAAKgY,yBAA2BhY,KAAKgY,wBAAwBrX,OAAS,IACjGX,KAAKsK,gBAAkBtK,KAAKgY,wBAAwBrX,SAK5DU,EAAYnB,UAAUmQ,iBAAmB,SAAUvE,GAEjD,IADA,IAAI6C,EAAa,GACR3N,EAAI,EAAGA,EAAIhB,KAAK4J,MAAMjJ,OAAQK,IAAK,CAC1C,IAAI4I,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAM5I,IAAMhB,KAAK4J,MAAM5I,GAEvH,IADehB,KAAK6L,gBAAgB7L,KAAKuG,iBAAmB,YAAkBvG,KAAK+H,UAAY/H,KAAK+H,SAAW+D,EAAW,KAAM,aAAclC,GAC/H,CACb,IAAIstB,EAAal3B,KAAK2L,mBAAqB3L,KAAK4N,eAAe5N,KAAK4J,MAAM5I,IAAMhB,KAAK4J,MAAM5I,GAC3F2N,EAAWpL,KAAK2zB,IAGpB,OAAOvoB,GAETtN,EAAYnB,UAAUoQ,mBAAqB,SAAU3B,EAAY7C,EAAWjE,EAAMZ,GAChF,IAAIxF,EAAQzB,KACZA,KAAK8J,WAAWqtB,aAAan3B,KAAK2J,YAAYgF,IAAayoB,MAAK,SAAU/wB,GACpEA,EAAEgxB,OAAO12B,OAAS,GACpBc,EAAM+sB,QAAQnoB,EAAEgxB,OAAQxvB,EAAKlH,QAE/Bc,EAAM8O,iBAAiBzE,EAAWjE,EAAMZ,OAG5C5F,EAAYnB,UAAUo2B,UAAY,SAAUN,EAASC,EAASN,GAC5D,GAAK31B,KAAK6H,KAEH,KAAI7H,KAAK8J,sBAAsB,MAAiB9J,KAAKmO,UAAcnO,KAAK+H,UAAY/H,KAAK8Q,SAEzF,CACL,IAAInC,EAAa,GAIjB,GAHK,YAAkB3O,KAAK4J,QAAW5J,KAAKgE,mBAC1C2K,EAAa3O,KAAKqQ,iBAAiBrQ,KAAK8L,YAE7B,UAAT6pB,GAAoBhnB,EAAWhO,OAAS,GAAKX,KAAK8J,sBAAsB,MAAgB,YAAkB9J,KAAK4J,QAA2B,MAAjB5J,KAAKmO,SAChInO,KAAK8Q,SAAW,KAChB9Q,KAAKwR,aAAc,EACnBxR,KAAKqP,sBAAuB,EAC5BrP,KAAKsQ,mBAAmB3B,EAAY3O,KAAK8L,UAAW9L,KAAKmO,UACzDnO,KAAKqP,sBAAuB,MACvB,CASL,GARa,SAATsmB,IACF31B,KAAKyR,oBACLukB,EAAUh2B,KAAK4J,QAEb,YAAkB5J,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,UAC9CX,KAAKyN,WAAawoB,GAGhBj2B,KAAKgE,mBAAmC,YAAdhE,KAAK0D,MAAoC,QAAd1D,KAAK0D,OAAmB1D,KAAKqI,SAAWrI,KAAKiR,YAAcjR,KAAK8M,eAAiB9M,KAAK8Q,WAAa9Q,KAAKmO,SAAU,CACzK,IAAItG,EAAO7H,KAAK+H,SAASgJ,UAAY/Q,KAAK+H,SAASgJ,WAAU,GAAQ/Q,KAAK+H,SAC1E/H,KAAKyP,iBAAiB5H,EAAM7H,KAAK8Q,UAE9B9Q,KAAKsD,sBAECtD,KAAKsD,sBAA0BtD,KAAK8J,sBAAsB,IAEzD9J,KAAKs3B,0BACft3B,KAAKutB,4BAA6B,EAClCvtB,KAAK0R,mBAAmB1R,KAAKmO,UAAU,GACvCnO,KAAKutB,4BAA6B,EAClCvtB,KAAK2R,iBALL3R,KAAK0R,mBAAmB1R,KAAK8J,YAAY,GAFzC9J,KAAK0R,qBASW,QAAd1R,KAAK0D,MAAmB1D,KAAKiR,YAC/BjR,KAAKyZ,kBAEFzZ,KAAKiR,YACRjR,KAAK6Z,oBAEP7Z,KAAKmF,qBACa,aAAdnF,KAAK0D,MAAuB1D,KAAK4R,cACnC5R,KAAK6R,iBAAiB,KAAMmkB,EAASC,GAEvCj2B,KAAKqO,6BA7CPrO,KAAK41B,oBAFL51B,KAAK41B,eAkDF51B,KAAK4R,cACR5R,KAAK6R,iBAAiB,KAAMmkB,EAASC,IAWzC50B,EAAYnB,UAAUsuB,QAAU,SAAUlK,EAAOiT,GAC/Cj2B,EAAOpB,UAAUsuB,QAAQ9sB,KAAK1B,KAAMskB,EAAOiT,IAQ7Cl2B,EAAYnB,UAAUyG,UAAY,SAAUN,GAC1C,IAAI5E,EAAQzB,KAEZ,GAAIA,KAAK8M,cAAe,CACtB,IAAI0qB,EAAY,CACdpwB,KAAM,UACNC,SAAU,IACVowB,MALQ,KAOVz3B,KAAKyU,kBAAoB,KACzB,IAAI1N,EAAY,CACdC,MAAOhH,KAAKiD,SACZiE,QAAQ,EACRC,UAAWqwB,EACXvwB,MAAOZ,GAAK,MAEdrG,KAAKsH,QAAQ,QAASP,GAAW,SAAUA,GACzC,IAAKA,EAAUG,OAAQ,CACjBzF,EAAMiG,OAAOC,SAA0B,aAAflG,EAAMiC,MAAuBjC,EAAMwe,qBAC7D,aAAOxe,EAAMwe,oBACbxe,EAAMwe,mBAAqB,MAE7Bxe,EAAMqQ,iBAAkB,EACxBrQ,EAAMoB,eAAeC,UAAUE,OAniKrB,eAoiKV,IAAI00B,EAA4B,aAAfj2B,EAAMiC,KAAsBjC,EAAMgN,gBAAkB,KAoBrE,GAnBAhN,EAAMwB,SAAS00B,KAAK,IAAI,IAAU5wB,EAAUI,YAC5C,YAAW1F,EAAMuD,aAAc,CAC7B,gBAAiB,UAEnBvD,EAAMuD,aAAaO,gBAAgB,aACnC9D,EAAMuD,aAAaO,gBAAgB,yBAC/B9D,EAAM8E,gBACR9E,EAAM8J,OAAO,aAAc,CACzBC,OAAQ,oBACR1G,OAAuB,aAAfrD,EAAMiC,KACdkG,MAAO,UAGXnI,EAAMwB,SAAS00B,OACf,aAAY,CAACnwB,SAASC,KAAMhG,EAAMwB,SAASzB,SAAU,qBACrD,IAAawB,OAAOvB,EAAMoG,KAAM,UAAWpG,EAAMuc,WAC9B,aAAfvc,EAAMiC,MAAuBjC,EAAM6H,eACrC,IAAatG,OAAOvB,EAAMwB,SAASzB,QAAS,QAASC,EAAM8H,cAEzD9H,EAAMoG,MAAQpG,EAAMoG,KAAK0K,eAAiB9Q,EAAMwV,YAAa,CAC3DxV,EAAMm2B,SAAWn2B,EAAMoG,KAAK0K,cAAcL,SAASzQ,EAAMm2B,UAC3Dn2B,EAAMoG,KAAK0K,cAAclH,YAAY5J,EAAMm2B,SAEzCn2B,EAAMoG,KAAK0K,cAAczP,UAAUoP,SAAS,aAC9CzQ,EAAMoG,KAAK0K,cAAczP,UAAUE,OAAO,YAE5CvB,EAAMoG,KAAK0K,cAAc5M,MAAMkyB,UAAY,GAC3Cp2B,EAAMoG,KAAK0K,cAAc5M,MAAMmyB,cAAgB,GAC/C,IAAIzP,EAAgB5f,SAAShH,EAAM8G,YAAa,IAChD9G,EAAMoG,KAAKlC,MAAMkD,UAAY,YAAWwf,GACxC5mB,EAAMoG,KAAK0K,cAAc5M,MAAM8wB,OAAS,YAAWh1B,EAAM8G,aACzD9G,EAAMoG,KAAK0K,cAAc5M,MAAMkD,UAAY,YAAWpH,EAAM8G,aAE1D9G,EAAMm2B,UACR,IAAa50B,OAAOvB,EAAMm2B,QAAS,YAAan2B,EAAMs2B,eACtDt2B,EAAMm2B,QAAQ50B,UAEZvB,EAAM6B,sBAAuC,aAAf7B,EAAMiC,MAAuBjC,EAAMmI,OAASnI,EAAMmI,MAAMjJ,OAAS,GAAKc,EAAMsC,uBAC5GtC,EAAM6K,aAAaC,WAAa9K,EAAMuU,sBAAwB,EAC9DvU,EAAM6K,aAAa4C,SAAWzN,EAAM2W,oBAAsB3W,EAAM6K,aAAaC,WAAa,EAAI9K,EAAM6K,aAAa4C,SAAWzN,EAAM4I,UAClI5I,EAAMoV,gBAAkBpV,EAAM6K,aAC9B7K,EAAMmV,mBAAqB,EAC3BnV,EAAMipB,iBAAmBjpB,EAAM4I,WAEjC,IAAI4sB,OAAkB,EAClBx1B,EAAMqI,sBAAsB,IAC1BrI,EAAMkpB,iBAAmB,EAC3BlpB,EAAM6I,eAAiB7I,EAAMmpB,UAAYnpB,EAAMkpB,gBAE/ClpB,EAAMsI,UAAUtI,EAAMqI,YAIxBmtB,EAAkBx1B,EAAMqI,YAAcrI,EAAMqI,WAAWnJ,OAASc,EAAMqI,WAAWnJ,OAAS,EAExFc,EAAM6B,uBAAyB7B,EAAM8E,gBAAkB9E,EAAMuC,oBAAsBvC,EAAMgN,iBAAmBipB,IAAej2B,EAAM6I,iBAAmB2sB,IACtJx1B,EAAMwpB,qBACNxpB,EAAM4f,qBAEJ5f,EAAMkW,mBAAqBlW,EAAM6K,cAAkD,IAAlC7K,EAAM6K,aAAaC,YAAoB9K,EAAM6K,aAAa4C,WAAazN,EAAM4I,WAEhI5I,EAAM2f,YAAY3f,EAAMqP,SAAUrP,EAAMiG,QAE1CjG,EAAMkW,kBAAoB,KAC1BlW,EAAM6f,sBAAuB,QAWrCjgB,EAAYnB,UAAUwT,UAAY,SAAUrN,GAC1C,IAAI5E,EAAQzB,KACZ,GAAKA,KAAK2Y,QAAV,CAGA3Y,KAAKyX,UAAYzX,KAAK8J,YAAc9J,KAAK8J,WAAWnJ,OAAS,EAAIX,KAAK8J,WAAW,GAAK,KAItF9J,KAAKsH,QAAQ,aAHF,CACTJ,QAAQ,IAEuB,SAAU1D,GACzC,IAAKA,EAAK0D,OAAQ,CAChB,IAAKzF,EAAMqK,UAST,OARArK,EAAMqQ,iBAAkB,EACL,aAAfrQ,EAAMiC,MAAuB,IAAQ4C,UAAY7E,EAAM8E,gBAAkB9E,EAAMooB,oBACjFpoB,EAAM8J,OAAO,kBAAmB,CAC9BC,OAAQ,oBACR1G,OAAuB,aAAfrD,EAAMiC,YAGlBpC,EAAOpB,UAAU6b,OAAOra,KAAKD,EAAO4E,GAGnB,aAAf5E,EAAMiC,MAAuB,IAAQ4C,UAAY7E,EAAM8E,gBAAkB9E,EAAMooB,oBACjFpoB,EAAM8J,OAAO,kBAAmB,CAC9BC,OAAQ,oBACR1G,OAAuB,aAAfrD,EAAMiC,OAGlB,IAAIs0B,EAAev2B,EAAMqK,UAAUhE,iBAAiB,kBAAuBnH,OACvEs3B,EAAWx2B,EAAMqK,UAAUhE,iBAAiB,MAAQ,IAAoBqC,GAAK,IAAMhJ,GAAWR,OAClG,GAAIq3B,EAAe,GAAKA,IAAiBC,GAAYA,IAAax2B,EAAMqP,SAASnQ,SAAsC,KAA1Bc,EAAMgN,kBAA0BhN,EAAMuC,kBAEjI,YADAvC,EAAMqQ,iBAAkB,GA0B1B,GAvBArQ,EAAM2E,aAAaC,GACf5E,EAAM6B,sBAAwB7B,EAAM0M,UAAY1M,EAAM0M,SAASxN,SAC5D,YAAkBc,EAAMmI,QAAqC,iBAA1BnI,EAAMgU,iBAAgE,aAA1BhU,EAAMgU,iBACxFhU,EAAMwtB,cAEHxtB,EAAMqQ,kBACLrQ,EAAMwC,kBAAoBxC,EAAMmI,OAAShK,MAAM6kB,QAAQhjB,EAAMmI,QAAUnI,EAAMmI,MAAMjJ,OAAS,GAC9Fc,EAAMijB,kBAEHjjB,EAAMc,uBAA0B,YAAkBd,EAAM6K,aAAaC,aAAgB,YAAkB9K,EAAM6K,aAAa4C,WAC7HzN,EAAM8J,OAAO,0BAA2B,CACtCuL,UAAWrV,EAAMgU,gBACjBjK,OAAQ,oBAKZ/J,EAAM6B,uBAAyB7B,EAAM8E,gBAA6C,MAA3B9E,EAAM4Z,mBAA6B5Z,EAAM4Z,kBAAkB9O,WAAa,GAAoB,MAAf9K,EAAMmI,OAC5InI,EAAM8J,OAAO,mBAAoB,CAC/BC,OAAQ,gBACRW,QAAQ,IAGR1K,EAAM6B,qBACR7B,EAAMy2B,gCAEN,GAAIz2B,EAAMmI,OAASnI,EAAMmI,MAAMjJ,OAI7B,IAFA,IAAIa,OAAU,EAEL8C,GADO7C,EAAMqa,WACR,GAAGvX,EAAK9C,EAAMmI,MAAOtF,EAAKC,EAAG5D,OAAQ2D,IAAM,CACvD,IAAIsF,EAAQrF,EAAGD,GACX6zB,EAAa12B,EAAMkK,mBAAqB,YAASlK,EAAMiG,OAAOkC,MAAQnI,EAAMiG,OAAOkC,MAAQ,GAAIA,GAASA,GAC5GpI,EAAUC,EAAM+b,kBAAkB2a,KAEhC12B,EAAM6jB,iBAAiB9jB,GAK3BC,EAAMwV,aACRxV,EAAMyV,YAERzV,EAAMc,uBAAwB,QAapClB,EAAYnB,UAAUk4B,UAAY,SAAUx1B,GAC1C5C,KAAKqjB,aAAc,EACnBrjB,KAAK+qB,eAAenoB,IAQtBvB,EAAYnB,UAAUuV,cAAgB,WACpC,MAAO,eAOTpU,EAAYnB,UAAUm4B,MAAQ,WAC5B,IAAI52B,EAAQzB,KACZA,KAAKo4B,WAAU,GACXp4B,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAC3B2H,YAAW,WACT7G,EAAMyD,cAAc,CAClB0E,MAAO,OACN,KACF,GAEH5J,KAAKkF,cAAc,CACjB0E,MAAO,OACN,IASPvI,EAAYnB,UAAU6b,OAAS,YACxB,YAAkB/b,KAAK4J,QAAU5J,KAAK4J,MAAMjJ,OAAS,IAExDX,KAAK4J,MAAQ5J,KAAK4J,MAAM8D,SAE1B1N,KAAKwR,YAAcxR,KAAKib,YAAa,EACrCjb,KAAKqjB,aAAc,EACnBrjB,KAAKsC,kBAAoB,GACzBtC,KAAKya,cAAgBza,KAAK2K,cAAc,OAAQ,CAC9CC,UAAW0tB,eAAyC,QAAdt4B,KAAK0D,KAxvK/B,oBAwvK8D,MAE5E1D,KAAKkc,YAAclc,KAAK2K,cAAc,OAAQ,CAC5CC,UAAW2tB,gCAEbv4B,KAAKkc,YAAYvW,MAAMC,QAAU,OACjC5F,KAAKyF,aAAezF,KAAK2K,cAAc,OAAQ,CAC7CC,UA/wKgB,iCAixKlB5K,KAAKyF,aAAaE,MAAMC,QAAU,OAClC5F,KAAK6F,iBAAmB7F,KAAK2K,cAAc,MAAO,CAChDC,UAhyKgB,2BAkyKlB5K,KAAK6C,eAAiB7C,KAAK2K,cAAc,MAAO,CAC9CC,UApyKiB,kDAsyKD,aAAd5K,KAAK0D,MACP,YAAS,CAAC1D,KAAK6C,gBAAiB,cAE9B,IAAQyD,UACVtG,KAAK6F,iBAAiB/C,UAAUC,IAxyKT,iBA0yKzB/C,KAAK4kB,SAAS5kB,KAAK0a,OACnB1a,KAAK6C,eAAeiD,YAAY9F,KAAK6F,kBACrC7F,KAAK6E,aAAe7E,KAAK2K,cAAc,MAAO,CAC5CzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,SACtB0B,UAhyKc,8CAkyKhB5K,KAAK6E,aAAaI,aAAa,aAAcjF,KAAKwB,QAAQ0H,IAC1DlJ,KAAK6E,aAAaI,aAAa,OAAQ,UACrB,cAAdjF,KAAK0D,MAAsC,aAAd1D,KAAK0D,MACpC1D,KAAKmc,iBAAmBnc,KAAK2K,cAAc,OAAQ,CACjDC,UAvyKgB,mBAyyKlB5K,KAAKmc,iBAAiBxW,MAAMC,QAAU,OACtC5F,KAAK6F,iBAAiBC,YAAY9F,KAAKmc,oBAEvCnc,KAAKuN,sBAAwBvN,KAAK2K,cAAc,OAAQ,CACtDC,UAvzKW,uBAyzKb5K,KAAKuN,sBAAsB5H,MAAMC,QAAU,OACzB,YAAd5F,KAAK0D,KACP1D,KAAKuN,sBAAsBtI,aAAa,KAAM,YAAY,iBACnC,QAAdjF,KAAK0D,MACd1D,KAAKuN,sBAAsBtI,aAAa,KAAM,YAAY,aAE5DjF,KAAK6F,iBAAiBC,YAAY9F,KAAKuN,wBAEvB,QAAdvN,KAAK0D,MACP1D,KAAK6F,iBAAiBC,YAAY9F,KAAKkc,aAEzClc,KAAK6F,iBAAiBC,YAAY9F,KAAKya,eACnCza,KAAKunB,kBAAoB,IAAQjhB,SACnCtG,KAAK6F,iBAAiBC,YAAY9F,KAAKyF,cAEvCzF,KAAK6F,iBAAiB/C,UAAUC,IA1zKhB,qBA4zKlB/C,KAAK02B,eACL12B,KAAKgF,aAAehF,KAAK2K,cAAc,QAAS,CAC9CC,UAh0Kc,iBAi0Kdgc,MAAO,CACL4R,WAAY,QACZrM,KAAM,OACNsM,aAAc,MACdC,SAAU,IACVC,KAAM,cAGQ,YAAd34B,KAAK0D,MAAoC,QAAd1D,KAAK0D,MAClC1D,KAAKgF,aAAaC,aAAa,mBAAoBjF,KAAKuN,sBAAsBrE,IAE3E,YAAkBlJ,KAAKgF,gBAC1B,YAAWhF,KAAKgF,aAAc,CAC5B,gBAAiB,UAEdhF,KAAKgF,aAAa4zB,aAAa,eAClC54B,KAAKgF,aAAaC,aAAa,aAAcjF,KAAKyV,kBAGlDzV,KAAKwB,QAAQiqB,UAAYzrB,KAAKwY,mBAChCxY,KAAKwB,QAAQmE,MAAMC,QAAU,QAE3B5F,KAAKwB,QAAQiqB,UAAYzrB,KAAKwY,kBAChCxY,KAAKwB,QAAQsE,YAAY9F,KAAK6C,gBAC9B7C,KAAKya,cAAc3U,YAAY9F,KAAKgF,gBAEpChF,KAAKwB,QAAQ+Q,cAAcsmB,aAAa74B,KAAK6C,eAAgB7C,KAAKwB,SAClExB,KAAKya,cAAc3U,YAAY9F,KAAKgF,cACpChF,KAAKya,cAAc3U,YAAY9F,KAAKwB,SACpCxB,KAAKwB,QAAQ+D,gBAAgB,aAEH,UAAxBvF,KAAKmZ,eACP,YAAiBnZ,KAAK6C,eAAgB7C,KAAKya,cAAeza,KAAKwB,QAASxB,KAAKgF,aAAchF,KAAK4J,MAAO5J,KAAKmZ,eAAgBnZ,KAAK+E,aAChG,UAAxB/E,KAAKmZ,gBACdnZ,KAAKmF,qBAEPnF,KAAK6tB,qBACL7tB,KAAKwB,QAAQmE,MAAMmzB,QAAU,GAC7B,IAAI5vB,EAAKlJ,KAAKwB,QAAQgM,aAAa,MAAQxN,KAAKwB,QAAQgM,aAAa,MAAQ,YAAY,oBACzFxN,KAAKwB,QAAQ0H,GAAKA,EAClBlJ,KAAKqF,cAAgBrF,KAAK2K,cAAc,SAAU,CAChDic,MAAO,CACL,cAAe,OACf,MAp2Ka,iBAq2Kb,SAAY,KACZ,SAAY,MAGhB5mB,KAAK6F,iBAAiBC,YAAY9F,KAAKqF,eACvCrF,KAAK+4B,oBAAoB/4B,KAAKwB,QAASxB,KAAKqF,eAC1B,aAAdrF,KAAK0D,MACP1D,KAAKif,oBAEF,YAAkB,YAAQjf,KAAKwB,QAAS,cAAgB,YAAQxB,KAAKwB,QAAS,YAAY6K,WAC7FrM,KAAK2Y,SAAU,GAEjB3Y,KAAK0rB,YACL1rB,KAAK8E,OAAO9E,KAAK2Y,SACjB3Y,KAAK2C,UAAU3C,KAAKkD,WAChBlD,KAAKsD,sBACPtD,KAAKg5B,+BAA+Bh5B,KAAKqK,UAAWrK,KAAKuG,eAA8B,aAAdvG,KAAK0D,MAEhF1D,KAAKsW,eAAiBtW,KAAKi5B,gBAC3Bj5B,KAAK6qB,mBACL7qB,KAAKsM,aAAaC,WAAavM,KAAKgW,sBAAwB,EAC5DhW,KAAKsM,aAAa4C,SAAWlP,KAAKoY,oBAAsBpY,KAAKsM,aAAaC,WAAa,EAAIvM,KAAKsM,aAAa4C,SAAWlP,KAAKqK,UAC7HrK,KAAKk5B,oBACDl5B,KAAKwB,QAAQo3B,aAAa,aAC5B54B,KAAKwB,QAAQyD,aAAa,WAAY,SAExC,IAAM6U,kBAAkB9Z,KAAK6C,eAAgB7C,KAAK2K,eAClD3K,KAAK+Z,iBACA,YAAkB/Z,KAAK6C,iBAAoB,YAAkB7C,KAAK6C,eAAe2H,uBAAuB,cAAc,IAAMxK,KAAK6C,eAAe2H,uBAAuB,wBAAwB,IAA8B,UAAxBxK,KAAKmZ,iBAC7MnZ,KAAK6C,eAAe2H,uBAAuB,wBAAwB,GAAG1H,UAAUC,IAAI,UAEtF/C,KAAKm5B,kBAEP93B,EAAYnB,UAAUgX,UAAY,WAWhC,GATIlX,KAAK6H,MAAQ7H,KAAK6H,KAAK0K,eAAiB,YAAkBvS,KAAK6H,KAAK0K,cAAchI,cAAc,+BAClGvK,KAAK43B,QAAU53B,KAAK2K,cAAc,MAAO,CACvCzB,GAAIlJ,KAAKwB,QAAQ0H,GAAK,gBACtB0B,UAl4KU,6BAq4KI,aAAd5K,KAAK0D,MAAuB1D,KAAKsJ,eAAiBtJ,KAAKyoB,iBAA4C,IAAzBzoB,KAAKyoB,kBACjFzoB,KAAK6B,sBAAwB7B,KAAKyoB,iBAEhCzoB,KAAK6H,MAAQ7H,KAAK6H,KAAK0K,cAAe,CACxCvS,KAAK6H,KAAK0K,cAAczP,UAAUC,IAAI,YACY,SAA9C/C,KAAKuI,YAAYQ,WAAWqwB,gBAC9Bp5B,KAAK6H,KAAK0K,cAAc5M,MAAM8wB,OAAS,QAEzCz2B,KAAK6H,KAAK0K,cAAc5M,MAAMkyB,UAAY,aAC1C,IAAIC,EAA8B,aAAd93B,KAAK0D,MAAuB1D,KAAK2oB,gBAAkB3oB,KAAK2oB,gBAhBpD,IAgB6F3oB,KAAKsJ,cAAgBtJ,KAAK6B,sBAAwB,GAhB/I,GAiBxB7B,KAAK6H,KAAK0K,cAAc5M,MAAMmyB,cAAgBA,EAAgB,KAC9D93B,KAAK6H,KAAK0K,cAAczM,YAAY9F,KAAK43B,SACzC53B,KAAK6H,KAAK0K,cAAc5M,MAAM+U,MAAQ1a,KAAKq5B,YAAc,KACzDr5B,KAAK6H,KAAK0K,cAAc5M,MAAM8wB,OAASz2B,KAAKs5B,aAAe,KAC3Dt5B,KAAK6H,KAAK0K,cAAc5M,MAAMkD,UAAY7I,KAAKs5B,aAAe,KAC9Dt5B,KAAK6H,KAAKlC,MAAMkD,UAAY7I,KAAKs5B,aAAe,KAE9Ct5B,KAAK43B,UACP,IAAa70B,IAAI/C,KAAK43B,QAAS,YAAa53B,KAAK+3B,cAAe/3B,MAChE,IAAa+C,IAAI/C,KAAK43B,QAAS,aAAc53B,KAAK+3B,cAAe/3B,QAGrEqB,EAAYnB,UAAU63B,cAAgB,SAAU9wB,GAC9CjH,KAAKu5B,YAAa,EAClBv5B,KAAKsH,QAAQ,cAAeL,GAE5B,IAAIuyB,EAAUvyB,aAAiBwyB,WAAaxyB,EAAMuyB,QAAUvyB,EAAMyyB,QAAQ,GAAGF,QACzEG,EAAU1yB,aAAiBwyB,WAAaxyB,EAAM0yB,QAAU1yB,EAAMyyB,QAAQ,GAAGC,QACzE35B,KAAK6H,MAAQ7H,KAAK6H,KAAK0K,gBACzBvS,KAAK45B,cAAgB55B,KAAK6H,KAAK0K,cAAc+H,YAC7Cta,KAAK65B,eAAiB75B,KAAK6H,KAAK0K,cAAczJ,aAC9C9I,KAAK85B,eAAiBN,EACtBx5B,KAAK+5B,eAAiBJ,GAExB35B,KAAKwzB,oBAEDvsB,GACFA,EAAM4R,kBAGVxX,EAAYnB,UAAUuzB,YAAc,SAAUxsB,GAC5C,GAAKjH,KAAKu5B,WAAV,CAGAv5B,KAAKsH,QAAQ,WAAYL,GAEzB,IAAIuyB,EAAUvyB,aAAiBwyB,WAAaxyB,EAAMuyB,QAAUvyB,EAAMyyB,QAAQ,GAAGF,QACzEG,EAAU1yB,aAAiBwyB,WAAaxyB,EAAM0yB,QAAU1yB,EAAMyyB,QAAQ,GAAGC,QAEzEK,EAAKR,EAAUx5B,KAAK85B,eACpBG,EAAKN,EAAU35B,KAAK+5B,eAOxB,GAFA/5B,KAAKq5B,YAAcljB,KAAK+jB,IAAIl6B,KAAK45B,cAAgBI,EAHlC,KAIfh6B,KAAKs5B,aAAenjB,KAAK+jB,IAAIl6B,KAAK65B,eAAiBI,EAHnC,KAIZj6B,KAAK6H,MAAQ7H,KAAK6H,KAAK0K,cAAe,CAExC,IAAI4nB,EAAa1xB,SAAShC,OAAOyT,iBAAiBla,KAAK6H,KAAK0K,eAAe6nB,SAAU,IACjFC,EAAc5xB,SAAShC,OAAOyT,iBAAiBla,KAAK6H,KAAK0K,eAAe+nB,UAAW,IACvFH,EAAaA,GAAc,IAC3BE,EAAcA,GAAe,IAE7Br6B,KAAKq5B,YAAcljB,KAAK+jB,IAAIl6B,KAAK45B,cAAgBI,EAAIG,GACrDn6B,KAAKs5B,aAAenjB,KAAK+jB,IAAIl6B,KAAK65B,eAAiBI,EAAII,GACvDr6B,KAAK6H,KAAK0K,cAAc5M,MAAM+U,MAAQ1a,KAAKq5B,YAAc,KACzDr5B,KAAK6H,KAAK0K,cAAc5M,MAAM8wB,OAASz2B,KAAKs5B,aAAe,KAC3Dt5B,KAAK6H,KAAK0K,cAAc5M,MAAMkD,UAAY7I,KAAKs5B,aAAe,KAC9Dt5B,KAAK6H,KAAKlC,MAAMkD,UAAY7I,KAAKs5B,aAAe,KAC5Ct5B,KAAKigB,oBAAsBjgB,KAAK8L,YAClC9L,KAAKigB,mBAAmBta,MAAM+U,MAAQ1a,KAAK8L,UAAUwO,YAAc,MAGnErT,GACFA,EAAM4R,mBAGVxX,EAAYnB,UAAUwzB,aAAe,SAAUzsB,GACzCjH,KAAKu5B,aACPv5B,KAAKu5B,YAAa,EAClBv5B,KAAKsH,QAAQ,aAAcL,GAC3BjH,KAAK2zB,uBAEH1sB,GACFA,EAAM4R,kBAGVxX,EAAYnB,UAAU+4B,cAAgB,WACpC,IAAIsB,EAAav6B,KAAK2K,cAAc,MAAO,CACzCC,UAAW,mBAETiC,EAAO7M,KAAK2K,cAAc,KAAM,CAClCC,UAAW,gBAET4vB,EAAmB,YAAWx6B,KAAKuI,aACvCgyB,EAAW50B,MAAM8wB,OAAShuB,SAAS+xB,EAAkB,IAAIzxB,WAAa,KACtEwxB,EAAWz0B,YAAY+G,GACvBrF,SAASC,KAAK3B,YAAYy0B,GAC1Bv6B,KAAKgwB,kBAAoBuK,EAAWE,wBAAwBhE,OAC5D,IAAIngB,EAAiBH,KAAKukB,KAAK7tB,EAAK4tB,wBAAwBhE,QAAUhuB,SAAShC,OAAOyT,iBAAiBrN,GAAMyS,aAAc,IAE3H,OADAib,EAAWv3B,SACJsT,GAQTjV,EAAYnB,UAAUq2B,yBAA2B,SAAU3sB,GACzD,GAAIA,EAAO,CAGT,IAFA,IAAI8C,EAAO,GACPiuB,EAAY,EACP5tB,EAAQ,EAAGA,EAAQnD,EAAMjJ,OAAQoM,IAAS,CACjD,IAAI6tB,EAAahxB,EAAMmD,GACG,iBAAf6tB,IACTA,EAAa/iB,KAAKC,MAAMD,KAAKE,UAAU6iB,IAAa56B,KAAK0H,OAAOkC,QAEhD,MAAdgxB,GAAuB56B,KAAKq2B,sBAAsBr2B,KAAK2b,gBAAgBif,MACzEluB,EAAKiuB,KAAe/wB,EAAMmD,IAG9B/M,KAAK4J,MAAQ8C,EAAK/L,OAAS,EAAI+L,EAAO,OAG1CrL,EAAYnB,UAAUg5B,kBAAoB,WACxC,IAAIz3B,EAAQzB,KACRA,KAAK0H,OAAO2E,UACdrM,KAAKu2B,yBAAyBv2B,KAAK4J,OAErC,IAAIixB,EAAS76B,KAAK8J,sBAAsBlK,MAAQI,KAAK8J,WAAWnJ,OAAS,GAAK,YAAkBX,KAAK8J,YACrG,KAAM9J,KAAK4J,QAAS5J,KAAK4J,MAAMjJ,SAAW,YAAkBX,KAAKyQ,QAAUoqB,GAAmC,WAAzB76B,KAAKwB,QAAQiqB,SAAwBzrB,KAAKwB,QAAQs5B,QAAQn6B,OAAS,EAAG,CAIzJ,IAHA,IAAIo6B,EAAiB/6B,KAAKwB,QAAQs5B,QAC9BE,EAAW,GACXC,EAAU,GACLluB,EAAQ,EAAGmuB,EAAaH,EAAep6B,OAAQoM,EAAQmuB,EAAYnuB,IAAS,CACnF,IAAIouB,EAAMJ,EAAehuB,GACzB,IAAK,YAAkBouB,EAAI3tB,aAAa,aACtC,GAAI2tB,EAAI3tB,aAAa,SAAU,CAC7B,IAAI5D,EAAQ5J,KAAK2L,mBAAqB3L,KAAK4N,eAAeutB,EAAI3tB,aAAa,UAAY2tB,EAAI3tB,aAAa,SACxGwtB,EAASz3B,KAAKqG,QAEdqxB,GAAWE,EAAI1qB,KAAOzQ,KAAKiO,cAI7B+sB,EAASr6B,OAAS,EACpBX,KAAKkF,cAAc,CACjB0E,MAAOoxB,IACN,GACkB,KAAZC,GACTj7B,KAAKkF,cAAc,CACjBuL,KAAMwqB,IACL,IAEDD,EAASr6B,OAAS,GAAiB,KAAZs6B,KACzBj7B,KAAK6Z,oBACL7Z,KAAKmF,sBAcT,IAXInF,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,SAAW,YAAkBX,KAAKyQ,SACxDzQ,KAAK6H,MACRvG,EAAOpB,UAAU6b,OAAOra,KAAK1B,OAG7BA,KAAK0H,OAAO2E,WACdrM,KAAKyQ,KAAOzQ,KAAKyQ,OAASzQ,KAAKq2B,sBAAsBr2B,KAAK2b,gBAAgB3b,KAAKoX,eAAepX,KAAKyQ,QAAUzQ,KAAKyQ,KAAO,MAEtH,YAAkBzQ,KAAKyQ,QAAU,YAAkBzQ,KAAK4J,QAAgC,IAAtB5J,KAAK4J,MAAMjJ,QAChFX,KAAKyR,oBAEHzR,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAQ,CAEnC,IAAIy6B,EACJ,GAAIp7B,KAAKsD,qBAAsB,CAG7B,IAFA,IAAIoE,EAAU1H,KAAK+O,gBAAsC,GAApB/O,KAAK0H,OAAOkC,MAC7CiF,OAAY,EACP7N,EAAI,EAAGA,EAAIhB,KAAK4J,MAAMjJ,OAAQK,IAAK,CACtC4I,EAAQ5J,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAI5J,KAAK4J,MAAM5I,IAAMhB,KAAK4J,MAAM5I,GAErH6N,EADQ,IAAN7N,EACU,IAAI,IAAU0G,EAAQ,QAASkC,GAE/BiF,EAAUM,GAAGzH,EAAQ,QAASkC,GAG1C5J,KAAK8J,sBAAsB,IAC7B9J,KAAK8J,WAAWqtB,cAAa,IAAI,KAAQ/nB,MAAMP,IAAYuoB,MAAK,SAAU/wB,GACpEA,EAAEgxB,OAAO12B,OAAS,IACpBy6B,EAAc/0B,EAAEgxB,OAChB51B,EAAMwZ,YAAa,EACnBxZ,EAAM61B,yBAA0B,EAChChvB,YAAW,WACT7G,EAAMiQ,mBAAmB0pB,GAAa,GACtC35B,EAAMkQ,gBACNlQ,EAAM61B,yBAA0B,IAC/B,KACH71B,EAAMwZ,YAAa,MAIvBmgB,EAAc,IAAI,IAAYp7B,KAAK8J,YAAYuxB,cAAa,IAAI,KAAQjsB,MAAMP,IAG5E7O,KAAK8J,sBAAsB,IAI/B9J,KAAKsR,gBAAkB,WACrB7P,EAAMwZ,YAAa,EACdxZ,EAAM6B,wBAAwB7B,EAAM6B,sBAA0B7B,EAAMqI,sBAAsB,MAC7FrI,EAAMiQ,mBAAmB0pB,GAE3B35B,EAAMkQ,gBACNlQ,EAAM6P,gBAAkB,KACxB7P,EAAMwZ,YAAa,IAVrBjb,KAAK0R,mBAAmB0pB,GAAa,GACrCp7B,KAAK2R,iBAYP3R,KAAKob,uBAELpb,KAAK2R,gBAEP3R,KAAKib,YAAa,EAClBjb,KAAKs7B,iBACA,YAAkBt7B,KAAKyQ,OAC1BzQ,KAAKwB,QAAQyD,aAAa,qBAAsBjF,KAAKyQ,OAGzDpP,EAAYnB,UAAUo7B,eAAiB,WACjCt7B,KAAKwB,QAAQo3B,aAAa,cAC5B54B,KAAKgF,aAAa4B,SAGtBvF,EAAYnB,UAAUg4B,yBAA2B,WAC/C,GAAIl4B,KAAK4J,OAAS5J,KAAK4J,MAAMjJ,OAAQ,CAGnC,IADA,IAAIa,OAAU,EACL8C,EAAK,EAAGC,EAAKvE,KAAK4J,MAAOtF,EAAKC,EAAG5D,OAAQ2D,IAAM,CACtD,IAAIsF,EAAQrF,EAAGD,GACX6zB,EAAan4B,KAAK2L,mBAAqB,YAAS3L,KAAK0H,OAAOkC,MAAQ5J,KAAK0H,OAAOkC,MAAQ,GAAIA,GAASA,GACzGpI,EAAUxB,KAAKwd,kBAAkB2a,KAE/Bn4B,KAAKslB,iBAAiB9jB,GAG1B,GAAIxB,KAAKsD,sBAAwBtD,KAAKiE,iBAAkB,CACtD,IAAI6rB,EAAsB9vB,KAAK6H,KAAKC,iBAAiB,MAAQ,IAAoBqC,GAAK,SAAWhJ,EAA5C,+CACrD,GAAI2uB,EAAoBnvB,OAAQ,CAC9B,IAAIovB,EAAc/vB,KAAKgwB,kBAAoB,EAAI7Z,KAAK8Z,MAAMjwB,KAAKgwB,kBAAoBhwB,KAAKsW,gBAAkB,EAC1G,GAAIwZ,EAAoBnvB,OAASovB,EAAc,EAAG,CAChD,IAAIrmB,EAAQ1J,KAAK2J,YAAY3J,KAAK4J,OAAOC,QACzCH,EAAQA,EAAMqM,KAAK/V,KAAKsM,aAAaC,YACrCvM,KAAK+J,UAAU/J,KAAK8J,WAAY9J,KAAK0H,OAAQgC,QAMvDrI,EAAYnB,UAAUyiB,kBAAoB,WACxC,YAAe3iB,KAAK6C,eAAgB7C,KAAK6F,iBAAkB7F,KAAKya,cAAeza,KAAKgF,aAAchF,KAAK4J,MAAO5J,KAAKmZ,eAAgBnZ,KAAK+E,aAC5G,UAAxB/E,KAAKmZ,gBACP,YAAiBnZ,KAAK6C,eAAgB7C,KAAKya,cAAeza,KAAKwB,QAASxB,KAAKgF,aAAchF,KAAK4J,MAAO5J,KAAKmZ,eAAgBnZ,KAAK+E,cAGrI1D,EAAYnB,UAAU2tB,mBAAqB,WACpC,YAAkB7tB,KAAK6C,mBACrB,YAAkB7C,KAAK4J,QAAU5J,KAAK4J,MAAMjJ,QAAkC,WAAxBX,KAAKmZ,eAC9D,YAAS,CAACnZ,KAAK6C,gBAAiB,iBAEhC,aAAY,CAAC7C,KAAK6C,gBAAiB,mBAIzCxB,EAAYnB,UAAUw2B,aAAe,WAC/B12B,KAAKgI,kBACPhI,KAAKqa,SAAWra,KAAK2K,cAAc,OAAQ,CACzCC,UAhqLW,kCAkqLb5K,KAAK6F,iBAAiBC,YAAY9F,KAAKqa,UACvC,YAAS,CAACra,KAAK6F,kBAAmB,CAAC,iBAE9B,YAAkB7F,KAAKqa,YAC1Bra,KAAKqa,SAAS9H,cAAclH,YAAYrL,KAAKqa,UAC7C,aAAY,CAACra,KAAK6F,kBAAmB,CAAC,kBAI5CxE,EAAYnB,UAAUyR,cAAgB,WAClB,QAAd3R,KAAK0D,MAAoB1D,KAAKwR,aAA6B,YAAdxR,KAAK0D,MAAsB1D,KAAKiR,YAC/EjR,KAAKyZ,kBAEPzZ,KAAKsM,aAAaC,WAAavM,KAAKgW,sBAAwB,EAC5DhW,KAAKsM,aAAa4C,SAAWlP,KAAKoY,oBAAsBpY,KAAKqK,UAC7DrK,KAAK+F,iBACL/F,KAAKmE,sBACLnE,KAAKsF,eAAetF,KAAK4Y,UACzB5Y,KAAK6Z,oBACL7Z,KAAKqO,wBASPhN,EAAYnB,UAAUq7B,YAAc,SAAU1uB,GAC5C,GAAI7M,KAAK0H,OAAO2E,SAAU,CACnBrM,KAAK6H,MACR7H,KAAK+tB,aAEP,IAAIwJ,GAAa,EACjB,GAAIv3B,KAAKkK,eAAiBlK,KAAKkK,cAAcvJ,OAAS,GAAKX,KAAKmO,UAAYnO,KAAK0H,OAAO2E,SAAU,CAChG,GAAoB,iBAATQ,EACT0qB,EAAYv3B,KAAK2b,gBAAgB9O,QAC5B,GAAoB,iBAATA,EAChB,GAAIA,aAAgB2uB,eAClB,IAAK,IAAIzuB,EAAQ,EAAGA,EAAQ/M,KAAKkK,cAAcvJ,OAAQoM,IACrD,GAAI/M,KAAKkK,cAAc6C,KAAWF,EAAM,CACtC0qB,EAAYv3B,KAAK2b,gBAAgB9O,EAAKW,aAAa,eACnD,WAIJ,KAAI5D,EAAQiO,KAAKC,MAAMD,KAAKE,UAAUlL,IAAO7M,KAAK0H,OAAOkC,OACzD,IAASmD,EAAQ,EAAGA,EAAQ/M,KAAKmO,SAASxN,OAAQoM,IAChD,GAAI8K,KAAKC,MAAMD,KAAKE,UAAU/X,KAAKmO,SAASpB,KAAS/M,KAAK0H,OAAOkC,SAAWA,EAAO,CACjF2tB,EAAYv3B,KAAK2b,gBAAgB/R,GACjC,YAKN2tB,EAAY1qB,EAGd,GADmB0qB,EAAYv3B,KAAKkK,cAAcvJ,QAAU42B,GAAa,IACpD1f,KAAKC,MAAMD,KAAKE,UAAU/X,KAAKmO,SAASopB,KAAav3B,KAAK0H,OAAO2E,UAAW,CAC/F,IAAIlC,EAAKnK,KAAKkK,cAAcqtB,GAC5B,GAAIptB,EAAI,CACNnK,KAAK2wB,gBAAgBxmB,GACrB,IAAIsxB,EAAa5jB,KAAKC,MAAMD,KAAKE,UAAU/X,KAAKmO,SAASopB,KAMzD,GALAkE,EAAWz7B,KAAK0H,OAAO2E,WAAY,EACnCrM,KAAKmO,SAASopB,GAAakE,EACvBtxB,EAAGrH,UAAUoP,SAAS,IAAoBtL,QAC5C5G,KAAKsL,cAEHnB,EAAGrH,UAAUoP,SAAS/Q,IAAcgJ,EAAGrH,UAAUoP,SAAS,IAAoBH,UAAW,CAC3F,IAAI8I,EAAW7a,KAAK4J,MACpB5J,KAAKu2B,yBAAyBv2B,KAAK4J,OACnC5J,KAAKs2B,UAAUt2B,KAAK4J,MAAOiR,EAAU,SAErB,aAAd7a,KAAK0D,MAAuB1D,KAAK4D,sBAAwB,YAAkB5D,KAAK0H,OAAOC,UACzF3H,KAAK6Q,0BAajBxP,EAAYnB,UAAUk2B,QAAU,WAE1Bp2B,KAAKqI,SACPrI,KAAK07B,gBAEF,YAAkB17B,KAAKiD,YAC1BjD,KAAKiD,SAAS00B,OACd33B,KAAKiD,SAASmzB,WAEhBp2B,KAAKuL,OAnwLK,UAmwLW,IACrBvL,KAAKoR,mBACLpR,KAAKuzB,cACL,IAAIzgB,EAAO,CAAC,WAAY,gBAAiB,cAAe,aAAc,iBAClEnS,EAASmS,EAAKnS,OAClB,IAAK,YAAkBX,KAAKgF,cAC1B,KAAOrE,EAAS,GACdX,KAAKgF,aAAaO,gBAAgBuN,EAAKnS,EAAS,IAChDA,IAkBJ,IAfK,YAAkBX,KAAKwB,WAC1BxB,KAAKwB,QAAQ+D,gBAAgB,sBAC7BvF,KAAKwB,QAAQmE,MAAMC,QAAU,SAE3B5F,KAAK6C,gBAAkB7C,KAAK6C,eAAe0P,gBACzCvS,KAAK6C,eAAe0P,cAAckZ,UAAYzrB,KAAKwY,kBAGrDxY,KAAK6C,eAAe0P,cAAcsmB,aAAa74B,KAAKwB,QAASxB,KAAK6C,gBAFlE,aAAO7C,KAAK6C,iBAMZ7C,KAAK6E,cAAgB7E,KAAK6E,aAAa0N,eACzCvS,KAAK6E,aAAa0N,cAAcvP,SAE3BhD,KAAKya,eAAiBza,KAAKya,cAAcuY,YAC9ChzB,KAAKya,cAAcpP,YAAYrL,KAAKya,cAAcuY,YAEhDhzB,KAAKya,eAAiBza,KAAKya,cAAclI,eAC3CvS,KAAKya,cAAclI,cAAcvP,SAE/BhD,KAAKkc,aAAelc,KAAKkc,YAAY3J,eACvCvS,KAAKkc,YAAY3J,cAAcvP,SAE7BhD,KAAKyF,cAAgBzF,KAAKyF,aAAa8M,eACzCvS,KAAKyF,aAAa8M,cAAcvP,SAE9BhD,KAAKmc,kBAAoBnc,KAAKmc,iBAAiB5J,eACjDvS,KAAKmc,iBAAiB5J,cAAcvP,SAGtC,IAAI24B,EAAgB37B,KAAK6C,eAAe0H,cAAc,yBAItD,IAHIoxB,GAAiBA,EAAcppB,eACjCopB,EAAcppB,cAAcvP,SAEvBhD,KAAK6F,kBAAoB7F,KAAK6F,iBAAiBmtB,YACpDhzB,KAAK6F,iBAAiBwF,YAAYrL,KAAK6F,iBAAiBmtB,YAM1D,IAJIhzB,KAAK6F,kBAAoB7F,KAAK6F,iBAAiB0M,gBACjDvS,KAAK6F,iBAAiBN,gBAAgB,SACtCvF,KAAK6F,iBAAiB0M,cAAcvP,UAE/BhD,KAAK6E,cAAgB7E,KAAK6E,aAAamuB,YAC5ChzB,KAAK6E,aAAawG,YAAYrL,KAAK6E,aAAamuB,YAElD,GAAIhzB,KAAKgF,aAEP,IADA,IAAI42B,EAAY,CAAC,WAAY,gBAAiB,cAAe,kBAAmB,gBAAiB,eAAgB,gBAAiB,iBAAkB,aAAc,oBAAqB,YAAa,aAAc,cAAe,WAAY,gBAAiB,mBAAoB,OAAQ,OAAQ,OAAQ,SACjS56B,EAAI,EAAGA,EAAI46B,EAAUj7B,OAAQK,IACpChB,KAAKgF,aAAaO,gBAAgBq2B,EAAU56B,IAG5ChB,KAAKgF,cACPhF,KAAKgF,aAAahC,SAEpBhD,KAAK6H,KAAO,KACZ7H,KAAKiD,SAAW,KAChBjD,KAAK8Q,SAAW,KAChB9Q,KAAKooB,aAAe,KACpBpoB,KAAK8L,UAAY,KACjB9L,KAAK6F,iBAAmB,KACxB7F,KAAKyF,aAAe,KACpBzF,KAAK6C,eAAiB,KACtB7C,KAAKqF,cAAgB,KACrBrF,KAAKya,cAAgB,KACrBza,KAAKkc,YAAc,KACnBlc,KAAKuN,sBAAwB,KAC7BvN,KAAK0O,mBAAqB,KAC1B1O,KAAK6E,aAAe,KACpB7E,KAAKgF,aAAe,KACpBhF,KAAKmc,iBAAmB,KACxBnc,KAAKkK,cAAgB,KACrBlK,KAAK4pB,oBAAsB,KAC3B5pB,KAAK2I,OAAS,KACd3I,KAAK+H,SAAW,KAChB/H,KAAKgR,mBAAqB,KAC1BhR,KAAKiJ,OAAS,KACdjJ,KAAKsC,kBAAoB,KACzBhB,EAAOpB,UAAUk2B,QAAQ10B,KAAK1B,OAEhCI,EAAW,CAAC,YAAQ,CAClBqQ,KAAM,KACN7G,MAAO,KACPge,QAAS,KACTjgB,QAAS,KACT0E,SAAU,MACT,MAAiBhL,EAAYnB,UAAW,cAAU,GACrDE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,yBAAqB,GAC1EE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,qBAAiB,GACrEE,EAAW,CAAC,YAAS,qBAAsBiB,EAAYnB,UAAW,yBAAqB,GACvFE,EAAW,CAAC,YAAS,mBAAoBiB,EAAYnB,UAAW,6BAAyB,GACzFE,EAAW,CAAC,YAAS,SAAUiB,EAAYnB,UAAW,iBAAa,GACnEE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,eAAW,GAC/DE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,2BAAuB,GAC3EE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,4BAAwB,GAC7EE,EAAW,CAAC,YAAS,KAAMiB,EAAYnB,UAAW,kBAAc,GAChEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,aAAS,GAC7DE,EAAW,CAAC,YAAS,eAAgBiB,EAAYnB,UAAW,kBAAc,GAC1EE,EAAW,CAAC,YAAS,MAAQiB,EAAYnB,UAAW,cAAU,GAC9DE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,oBAAgB,GACrEE,EAAW,CAAC,eAAaiB,EAAYnB,UAAW,cAAU,GAC1DE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,2BAAuB,GAC5EE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,gBAAY,GAChEE,EAAW,CAAC,YAAS,SAAUiB,EAAYnB,UAAW,aAAS,GAC/DE,EAAW,CAAC,YAAS,UAAWiB,EAAYnB,UAAW,mBAAe,GACtEE,EAAW,CAAC,YAAS,SAAUiB,EAAYnB,UAAW,kBAAc,GACpEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,mBAAe,GACnEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,4BAAwB,GAC5EE,EAAW,CAAC,YAAS,KAAMiB,EAAYnB,UAAW,sBAAkB,GACpEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,qBAAiB,GACrEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,sBAAkB,GACtEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,sBAAkB,GACtEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,oBAAgB,GACpEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,sBAAkB,GACtEE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,0BAAsB,GAC1EE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,oBAAgB,GACpEE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,wBAAoB,GACzEE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,uBAAmB,GACvEE,EAAW,CAAC,YAAS,MAAQiB,EAAYnB,UAAW,8BAA0B,GAC9EE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,gBAAY,GACjEE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,mBAAe,GACpEE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,YAAQ,GAC5DE,EAAW,CAAC,YAAS,OAAQiB,EAAYnB,UAAW,aAAS,GAC7DE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,0BAAsB,GAC3EE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,wBAAoB,GACxEE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,0BAAsB,GAC1EE,EAAW,CAAC,YAAS,YAAaiB,EAAYnB,UAAW,YAAQ,GACjEE,EAAW,CAAC,YAAS,MAAOiB,EAAYnB,UAAW,qBAAiB,GACpEE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,kBAAc,GAClEE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,wBAAoB,GACzEE,EAAW,CAAC,YAAS,UAAWiB,EAAYnB,UAAW,sBAAkB,GACzEE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,qBAAiB,GACtEE,EAAW,CAAC,YAAS,eAAgBiB,EAAYnB,UAAW,qBAAiB,GAC7EE,EAAW,CAAC,YAAS,iBAAkBiB,EAAYnB,UAAW,uBAAmB,GACjFE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,4BAAwB,GAC5EE,EAAW,CAAC,aAAS,IAAQiB,EAAYnB,UAAW,mBAAe,GACnEE,EAAW,CAAC,aAAS,IAASiB,EAAYnB,UAAW,oBAAgB,GACrEE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,cAAU,GACvDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,gBAAY,GACzDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,eAAW,GACxDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,uBAAmB,GAChEE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,mBAAe,GAC5DE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,kBAAc,GAC3DE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,YAAQ,GACrDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,aAAS,GACtDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,YAAQ,GACrDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,aAAS,GACtDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,qBAAiB,GAC9DE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,kBAAc,GAC3DE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,gBAAY,GACzDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,mBAAe,GAC5DE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,iBAAa,GAC1DE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,eAAW,GACxDE,EAAW,CAAC,eAAUiB,EAAYnB,UAAW,4BAAwB,GACrEmB,EAAcjB,EAAW,CAAC,KAAwBiB,GA54LrB,CA84L7B","file":"c0591ee5-react.js","sourcesContent":["var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-base/drop-down-base-model.d.ts'/>\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\nimport { isCollide, Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { attributes, setValue, getValue } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';\nimport { EventHandler, Property, Event, compile, L10n } from '@syncfusion/ej2-base';\nimport { Animation, Browser, prepend, Complex } from '@syncfusion/ej2-base';\nimport { Search } from '../common/incremental-search';\nimport { append, addClass, removeClass, closest, detach, remove, select, selectAll } from '@syncfusion/ej2-base';\nimport { getUniqueID, formatUnit, isNullOrUndefined, isUndefined } from '@syncfusion/ej2-base';\nimport { DataManager, Query, Predicate, JsonAdaptor } from '@syncfusion/ej2-data';\nimport { createFloatLabel, removeFloating, floatLabelFocus, floatLabelBlur, encodePlaceholder } from './float-label';\nvar FOCUS = 'e-input-focus';\nvar DISABLED = 'e-disabled';\nvar OVER_ALL_WRAPPER = 'e-multiselect e-input-group e-control-wrapper';\nvar ELEMENT_WRAPPER = 'e-multi-select-wrapper';\nvar ELEMENT_MOBILE_WRAPPER = 'e-mob-wrapper';\nvar HIDE_LIST = 'e-hide-listitem';\nvar DELIMITER_VIEW = 'e-delim-view';\nvar CHIP_WRAPPER = 'e-chips-collection';\nvar CHIP = 'e-chips';\nvar CHIP_CONTENT = 'e-chipcontent';\nvar CHIP_CLOSE = 'e-chips-close';\nvar CHIP_SELECTED = 'e-chip-selected';\nvar SEARCHBOX_WRAPPER = 'e-searcher';\nvar DELIMITER_VIEW_WRAPPER = 'e-delimiter';\nvar ZERO_SIZE = 'e-zero-size';\nvar REMAIN_WRAPPER = 'e-remain';\nvar CLOSEICON_CLASS = 'e-chips-close e-close-hooker';\nvar DELIMITER_WRAPPER = 'e-delim-values';\nvar POPUP_WRAPPER = 'e-ddl e-popup e-multi-select-list-wrapper';\nvar INPUT_ELEMENT = 'e-dropdownbase';\nvar RTL_CLASS = 'e-rtl';\nvar CLOSE_ICON_HIDE = 'e-close-icon-hide';\nvar MOBILE_CHIP = 'e-mob-chip';\nvar FOOTER = 'e-ddl-footer';\nvar HEADER = 'e-ddl-header';\nvar DISABLE_ICON = 'e-ddl-disable-icon';\nvar SPINNER_CLASS = 'e-ms-spinner-icon';\nvar HIDDEN_ELEMENT = 'e-multi-hidden';\nvar destroy = 'destroy';\nvar dropdownIcon = 'e-input-group-icon e-ddl-icon';\nvar iconAnimation = 'e-icon-anim';\nvar TOTAL_COUNT_WRAPPER = 'e-delim-total';\nvar BOX_ELEMENT = 'e-multiselect-box';\nvar FILTERPARENT = 'e-filter-parent';\nvar CUSTOM_WIDTH = 'e-search-custom-width';\nvar FILTERINPUT = 'e-input-filter';\nvar RESIZE_ICON = 'e-resizer-right e-icons';\n/**\n * The Multiselect allows the user to pick a more than one value from list of predefined values.\n * ```html\n * <select id=\"list\">\n * <option value='1'>Badminton</option>\n * <option value='2'>Basketball</option>\n * <option value='3'>Cricket</option>\n * <option value='4'>Football</option>\n * <option value='5'>Tennis</option>\n * </select>\n * ```\n * ```typescript\n * <script>\n * var multiselectObj = new Multiselect();\n * multiselectObj.appendTo(\"#list\");\n * </script>\n * ```\n */\nvar MultiSelect = /** @class */function (_super) {\n __extends(MultiSelect, _super);\n /**\n * Constructor for creating the DropDownList widget.\n *\n * @param {MultiSelectModel} option - Specifies the MultiSelect model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiSelect(option, element) {\n var _this = _super.call(this, option, element) || this;\n _this.clearIconWidth = 0;\n _this.previousFilterText = '';\n _this.storedSelectAllHeight = 0;\n _this.isUpdateHeaderHeight = false;\n _this.isUpdateFooterHeight = false;\n _this.isBlurDispatching = false;\n _this.isFilterPrevented = false;\n _this.isFilteringAction = false;\n _this.isVirtualReorder = false;\n _this.isValidKey = false;\n _this.selectAllEventData = [];\n _this.selectAllEventEle = [];\n _this.preventSetCurrentData = false;\n _this.isSelectAllLoop = false;\n _this.scrollFocusStatus = false;\n _this.keyDownStatus = false;\n return _this;\n }\n MultiSelect.prototype.enableRTL = function (state) {\n if (state) {\n this.overAllWrapper.classList.add(RTL_CLASS);\n } else {\n this.overAllWrapper.classList.remove(RTL_CLASS);\n }\n if (this.popupObj) {\n this.popupObj.enableRtl = state;\n this.popupObj.dataBind();\n }\n };\n MultiSelect.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableVirtualization) {\n modules.push({\n args: [this],\n member: 'VirtualScroll'\n });\n }\n if (this.mode === 'CheckBox') {\n this.isGroupChecking = this.enableGroupCheckBox;\n if (this.enableGroupCheckBox) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.enableSelectionOrder = false;\n this.isProtectedOnChange = prevOnChange;\n }\n this.allowCustomValue = false;\n this.hideSelectedItem = false;\n this.closePopupOnSelect = false;\n modules.push({\n member: 'CheckBoxSelection',\n args: [this]\n });\n }\n return modules;\n };\n MultiSelect.prototype.updateHTMLAttribute = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n {\n var updatedClassValue = this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ').trim();\n if (updatedClassValue !== '') {\n addClass([this.overAllWrapper], updatedClassValue.split(' '));\n addClass([this.popupWrapper], updatedClassValue.split(' '));\n }\n break;\n }\n case 'disabled':\n this.enable(false);\n break;\n case 'placeholder':\n if (!this.placeholder) {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n this.setProperties({\n placeholder: this.inputElement.placeholder\n }, true);\n this.refreshPlaceHolder();\n }\n break;\n default:\n {\n var defaultAttr = ['id'];\n var validateAttr = ['name', 'required', 'aria-required', 'form'];\n var containerAttr = ['title', 'role', 'style', 'class'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n this.element.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (containerAttr.indexOf(htmlAttr) > -1) {\n this.overAllWrapper.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (htmlAttr !== 'size' && !isNullOrUndefined(this.inputElement)) {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n MultiSelect.prototype.updateReadonly = function (state) {\n if (!isNullOrUndefined(this.inputElement)) {\n if (state || this.mode === 'CheckBox') {\n this.inputElement.setAttribute('readonly', 'true');\n } else {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n MultiSelect.prototype.updateClearButton = function (state) {\n if (state) {\n if (this.overAllClear.parentNode) {\n this.overAllClear.style.display = '';\n } else {\n this.componentWrapper.appendChild(this.overAllClear);\n }\n this.componentWrapper.classList.remove(CLOSE_ICON_HIDE);\n } else {\n this.overAllClear.style.display = 'none';\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\n }\n };\n MultiSelect.prototype.updateCssClass = function () {\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n var updatedCssClassValues = this.cssClass;\n updatedCssClassValues = this.cssClass.replace(/\\s+/g, ' ').trim();\n if (updatedCssClassValues !== '') {\n addClass([this.overAllWrapper], updatedCssClassValues.split(' '));\n addClass([this.popupWrapper], updatedCssClassValues.split(' '));\n }\n }\n };\n MultiSelect.prototype.updateOldPropCssClass = function (oldClass) {\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\n oldClass = oldClass.replace(/\\s+/g, ' ').trim();\n if (oldClass !== '') {\n removeClass([this.overAllWrapper], oldClass.split(' '));\n removeClass([this.popupWrapper], oldClass.split(' '));\n }\n }\n };\n MultiSelect.prototype.onPopupShown = function (e) {\n var _this = this;\n if (Browser.isDevice && this.mode === 'CheckBox' && this.allowFiltering) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n window.onpopstate = function () {\n proxy_1.hidePopup();\n proxy_1.inputElement.focus();\n };\n history.pushState({}, '');\n }\n var animModel = {\n name: 'FadeIn',\n duration: 100\n };\n var eventArgs = {\n popup: this.popupObj,\n event: e,\n cancel: false,\n animation: animModel\n };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.focusAtFirstListItem(true);\n if (_this.popupObj) {\n document.body.appendChild(_this.popupObj.element);\n }\n if (_this.mode === 'CheckBox' && _this.enableGroupCheckBox && !isNullOrUndefined(_this.fields.groupBy)) {\n _this.updateListItems(_this.list.querySelectorAll('li.e-list-item'), _this.mainList.querySelectorAll('li.e-list-item'));\n }\n if (_this.mode === 'CheckBox' || _this.showDropDownIcon) {\n addClass([_this.overAllWrapper], [iconAnimation]);\n }\n _this.refreshPopup();\n _this.renderReactTemplates();\n if (_this.popupObj) {\n _this.popupObj.show(eventArgs.animation, _this.zIndex === 1000 ? _this.element : null);\n }\n if (_this.isReact) {\n setTimeout(function () {\n if (_this.popupHeight && _this.list && _this.popupHeight !== 'auto') {\n var popupHeightValue = typeof _this.popupHeight === 'string' ? parseInt(_this.popupHeight, 10) : _this.popupHeight;\n if (!_this.isUpdateHeaderHeight && _this.headerTemplate && _this.header) {\n var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);\n _this.list.style.maxHeight = (listHeight - _this.header.offsetHeight).toString() + 'px';\n _this.isUpdateHeaderHeight = true;\n }\n if (!_this.isUpdateFooterHeight && _this.footerTemplate && _this.footer) {\n var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);\n _this.list.style.maxHeight = (listHeight - _this.footer.offsetHeight).toString() + 'px';\n _this.isUpdateFooterHeight = true;\n }\n }\n }, 15);\n }\n attributes(_this.inputElement, {\n 'aria-expanded': 'true',\n 'aria-owns': _this.element.id + '_popup',\n 'aria-controls': _this.element.id\n });\n _this.updateAriaActiveDescendant();\n if (_this.isFirstClick) {\n if (!_this.enableVirtualization) {\n _this.loadTemplate();\n }\n }\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n EventHandler.add(_this.popupObj.element, 'click', _this.clickHandler, _this);\n }\n }\n });\n };\n MultiSelect.prototype.updateVirtualReOrderList = function (isCheckBoxUpdate) {\n var query = this.getForQuery(this.value, true).clone();\n this.isVirtualReorder = true;\n if (this.enableVirtualization && this.dataSource instanceof DataManager) {\n this.resetList(this.selectedListData, this.fields, query);\n } else {\n this.resetList(this.dataSource, this.fields, query);\n }\n this.isVirtualReorder = false;\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.virtualItemCount = this.itemCount;\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n }\n if (this.list.querySelector('.e-virtual-ddl-content')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n if (isCheckBoxUpdate) {\n this.loadTemplate();\n }\n };\n MultiSelect.prototype.updateListItems = function (listItems, mainListItems) {\n for (var i = 0; i < listItems.length; i++) {\n this.findGroupStart(listItems[i]);\n this.findGroupStart(mainListItems[i]);\n }\n this.deselectHeader();\n };\n MultiSelect.prototype.loadTemplate = function () {\n this.refreshListItems(null);\n if (this.enableVirtualization && this.list && this.mode === 'CheckBox') {\n var reOrderList = this.list.querySelectorAll('.e-reorder')[0];\n if (this.list.querySelector('.e-virtual-ddl-content') && reOrderList) {\n this.list.querySelector('.e-virtual-ddl-content').removeChild(reOrderList);\n }\n }\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n }\n this.notify('reOrder', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n e: this\n });\n this.isPreventScrollAction = true;\n };\n MultiSelect.prototype.setScrollPosition = function () {\n if ((!this.hideSelectedItem && this.mode !== 'CheckBox' || this.mode === 'CheckBox' && !this.enableSelectionOrder) && !isNullOrUndefined(this.value) && this.value.length > 0) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n var valueEle = this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n if (!isNullOrUndefined(valueEle)) {\n this.scrollBottom(valueEle, undefined, false, null, true);\n }\n }\n if (this.enableVirtualization) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n this.isKeyBoardAction = false;\n this.scrollBottom(focusedItem, undefined, false, null, true);\n }\n };\n MultiSelect.prototype.focusAtFirstListItem = function (isOpen) {\n if (this.ulElement && this.ulElement.querySelector('li.' + dropDownBaseClasses.li)) {\n var element = void 0;\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n return;\n } else {\n if (this.enableVirtualization) {\n if (this.fields.disabled) {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)' + ':not(.' + DISABLED + ')');\n if (isOpen && this.viewPortInfo && this.viewPortInfo.startIndex !== 0) {\n var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');\n element = elements && elements.length > 0 ? elements[2] : element;\n }\n } else {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');\n if (isOpen && this.viewPortInfo && this.viewPortInfo.startIndex !== 0) {\n var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');\n element = elements && elements.length > 0 ? elements[2] : element;\n }\n }\n } else {\n if (this.fields.disabled) {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.' + DISABLED + ')');\n } else {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\n }\n }\n }\n if (element !== null) {\n this.removeFocus();\n this.addListFocus(element);\n }\n }\n };\n MultiSelect.prototype.focusAtLastListItem = function (data) {\n var activeElement;\n if (data) {\n activeElement = Search(data, this.liCollections, 'StartsWith', this.ignoreCase);\n } else {\n if (this.value && this.value.length) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n Search(value, this.liCollections, 'StartsWith', this.ignoreCase);\n } else {\n activeElement = null;\n }\n }\n if (activeElement && activeElement.item !== null) {\n this.addListFocus(activeElement.item);\n if ((this.allowCustomValue || this.allowFiltering) && this.isPopupOpen() && this.closePopupOnSelect && !this.enableVirtualization || this.closePopupOnSelect && !this.enableVirtualization) {\n this.scrollBottom(activeElement.item, activeElement.index);\n }\n }\n };\n MultiSelect.prototype.getAriaAttributes = function () {\n var ariaAttributes = {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false'\n };\n return ariaAttributes;\n };\n MultiSelect.prototype.updateListARIA = function () {\n if (!isNullOrUndefined(this.ulElement)) {\n attributes(this.ulElement, {\n 'id': this.element.id + '_options',\n 'role': 'listbox',\n 'aria-hidden': 'false',\n 'aria-label': 'list'\n });\n }\n var disableStatus = !isNullOrUndefined(this.inputElement) && this.inputElement.disabled ? true : false;\n if (!this.isPopupOpen() && !isNullOrUndefined(this.inputElement)) {\n attributes(this.inputElement, this.getAriaAttributes());\n }\n if (disableStatus) {\n attributes(this.inputElement, {\n 'aria-disabled': 'true'\n });\n }\n this.ensureAriaDisabled(disableStatus ? 'true' : 'false');\n };\n MultiSelect.prototype.ensureAriaDisabled = function (status) {\n if (this.htmlAttributes && this.htmlAttributes['aria-disabled']) {\n var attr = this.htmlAttributes;\n extend(attr, {\n 'aria-disabled': status\n }, attr);\n this.setProperties({\n htmlAttributes: attr\n }, true);\n }\n };\n MultiSelect.prototype.removelastSelection = function (e) {\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n if (selectedElem !== null) {\n this.removeSelectedChip(e);\n return;\n }\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\n var value = elements[elements.length - 1].getAttribute('data-value');\n if (!isNullOrUndefined(this.value)) {\n this.tempValues = this.allowObjectBinding ? this.value.slice() : this.value.slice();\n }\n var customValue = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(value)) : this.getFormattedValue(value);\n if (this.allowCustomValue && (value !== 'false' && customValue === false || !isNullOrUndefined(customValue) && customValue.toString() === 'NaN')) {\n customValue = value;\n }\n this.removeValue(customValue, e);\n this.removeChipSelection();\n this.updateDelimeter(this.delimiterChar, e);\n this.makeTextBoxEmpty();\n if (this.mainList && this.listData) {\n this.refreshSelection();\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n this.renderPopup();\n this.onPopupShown();\n };\n MultiSelect.prototype.targetElement = function () {\n this.targetInputElement = this.inputElement;\n if (this.mode === 'CheckBox' && this.allowFiltering) {\n this.notify('targetElement', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n }\n return this.targetInputElement.value;\n };\n MultiSelect.prototype.getForQuery = function (valuecheck, isCheckbox) {\n var predicate;\n var field = this.isPrimitiveData ? '' : this.fields.value;\n if (this.enableVirtualization && valuecheck) {\n if (isCheckbox) {\n var startindex = this.viewPortInfo.startIndex;\n var endindex = startindex + this.viewPortInfo.endIndex <= valuecheck.length && valuecheck[startindex + this.viewPortInfo.endIndex] ? startindex + this.viewPortInfo.endIndex : valuecheck.length;\n for (var i = startindex; i < endindex; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', valuecheck[i]) : valuecheck[i];\n if (i === startindex) {\n predicate = new Predicate(field, 'equal', value);\n } else {\n predicate = predicate.or(field, 'equal', value);\n }\n }\n return new Query().where(predicate);\n } else {\n for (var i = 0; i < valuecheck.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', valuecheck[i]) : valuecheck[i];\n if (this.isaddNonPresentItems) {\n predicate = i === 0 ? new Predicate(field, 'equal', valuecheck[i]) : predicate.or(field, 'equal', valuecheck[i]);\n } else {\n predicate = i === 0 ? predicate = new Predicate(field, 'notequal', value) : predicate.and(field, 'notequal', value);\n }\n }\n return new Query().where(predicate);\n }\n } else {\n for (var i = 0; i < valuecheck.length; i++) {\n if (i === 0) {\n predicate = new Predicate(field, 'equal', valuecheck[i]);\n } else {\n predicate = predicate.or(field, 'equal', valuecheck[i]);\n }\n }\n }\n if (this.dataSource instanceof DataManager && this.dataSource.adaptor instanceof JsonAdaptor) {\n return new Query().where(predicate);\n } else {\n return this.getQuery(this.query).clone().where(predicate);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n MultiSelect.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n if (this.dataSource instanceof DataManager && !isNullOrUndefined(e) && !this.virtualGroupDataSource) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = e.count;\n }\n if (this.value && list && list.length > 0 && this.allowFiltering && this.mode !== 'CheckBox' && !this.enableVirtualization && !this.isFilterPrevented && !this.allowCustomValue && this.isFilteringAction) {\n var allItemsInValue = list.every(function (item) {\n var itemValue = getValue(_this.fields.value ? _this.fields.value : '', item);\n return _this.value.some(function (val) {\n var value = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', val) : val;\n return itemValue === value;\n });\n });\n if (allItemsInValue) {\n ulElement.innerHTML = '';\n list = [];\n }\n }\n /* eslint-enable @typescript-eslint/no-unused-vars */\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n this.skeletonCount = this.totalItemCount !== 0 && this.totalItemCount < this.itemCount * 2 && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && this.totalItemCount <= this.itemCount) ? 0 : this.skeletonCount;\n this.updateSelectElementData(this.allowFiltering);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue && !this.enableVirtualization && this.listData && this.listData.length > 0) {\n for (var i = 0; i < this.value.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', proxy.value[i]) : proxy.value[i];\n var checkEle = this.findListElement(this.allowFiltering && !isNullOrUndefined(this.mainList) ? this.mainList : ulElement, 'li', 'data-value', value);\n if (!checkEle && !(this.dataSource instanceof DataManager)) {\n this.value.splice(i, 1);\n i -= 1;\n }\n }\n }\n var valuecheck = [];\n if (!isNullOrUndefined(this.value)) {\n valuecheck = this.presentItemValue(this.ulElement);\n }\n if (valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value) && this.listData != null) {\n this.isaddNonPresentItems = true;\n this.addNonPresentItems(valuecheck, this.ulElement, this.listData);\n this.isaddNonPresentItems = false;\n } else {\n this.updateActionList(ulElement, list, e);\n }\n if (this.dataSource instanceof DataManager && this.allowCustomValue && !this.isCustomRendered && this.inputElement.value && this.inputElement.value !== '') {\n var query = new Query();\n query = this.allowFiltering ? query.where(this.fields.text, 'startswith', this.inputElement.value, this.ignoreCase, this.ignoreAccent) : query;\n this.checkForCustomValue(query, this.fields);\n this.isCustomRendered = true;\n this.remoteCustomValue = this.enableVirtualization ? false : this.remoteCustomValue;\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy) && !isNullOrUndefined(this.fields.disabled)) {\n this.disableGroupHeader();\n }\n if (this.dataSource instanceof DataManager && this.mode === 'CheckBox' && this.allowFiltering) {\n this.removeFocus();\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n MultiSelect.prototype.updateActionList = function (ulElement, list, e, isUpdated) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n }\n if (!this.mainList && !this.mainData) {\n this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.mainData = list;\n this.mainListCollection = this.liCollections;\n } else if (isNullOrUndefined(this.mainData) || this.mainData.length === 0) {\n this.mainData = list;\n }\n if ((this.remoteCustomValue || list.length <= 0) && this.allowCustomValue && this.inputFocus && this.allowFiltering && this.inputElement.value && this.inputElement.value !== '') {\n this.checkForCustomValue(this.tempQuery, this.fields);\n if (this.isCustomRendered) {\n return;\n }\n }\n if (this.value && this.value.length && (this.mode !== 'CheckBox' && !isNullOrUndefined(this.inputElement) && this.inputElement.value.trim() !== '' || this.mode === 'CheckBox' || (this.keyCode === 8 || this.keyCode === 46) && this.allowFiltering && this.allowCustomValue && this.dataSource instanceof DataManager && this.inputElement.value === '')) {\n this.refreshSelection();\n }\n this.updateListARIA();\n this.unwireListEvents();\n this.wireListEvents();\n if (!isNullOrUndefined(this.setInitialValue)) {\n this.setInitialValue();\n }\n if (!isNullOrUndefined(this.selectAllAction)) {\n this.selectAllAction();\n }\n if (this.setDynValue) {\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.initialTextUpdate();\n }\n if (!this.enableVirtualization || this.enableVirtualization && !(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate();\n } else {\n this.initialValueUpdate(this.listData, true);\n }\n this.initialUpdate();\n this.refreshPlaceHolder();\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\n this.updateValueState(null, this.value, null);\n }\n }\n this.renderPopup();\n if (this.beforePopupOpen) {\n this.beforePopupOpen = false;\n this.onPopupShown(e);\n }\n };\n MultiSelect.prototype.refreshSelection = function () {\n var value;\n var element;\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n element = this.findListElement(this.list, 'li', 'data-value', value);\n if (element) {\n addClass([element], className);\n if (this.hideSelectedItem && element.previousSibling && element.previousElementSibling.classList.contains(dropDownBaseClasses.group) && (!element.nextElementSibling || element.nextElementSibling.classList.contains(dropDownBaseClasses.group))) {\n addClass([element.previousElementSibling], className);\n }\n if (this.hideSelectedItem && this.fields.groupBy && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\n this.hideGroupItem(value);\n }\n if (this.hideSelectedItem && element.classList.contains(dropDownBaseClasses.focus)) {\n removeClass([element], dropDownBaseClasses.focus);\n var listEle = element.parentElement.querySelectorAll('.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.' + DISABLED + ')');\n if (listEle.length > 0) {\n addClass([listEle[0]], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n } else {\n //EJ2-57588 - for this task, we prevent the ul element cloning ( this.ulElement = this.ulElement.cloneNode ? <HTMLElement>this.ulElement.cloneNode(true) : this.ulElement;)\n if (!(this.list && this.list.querySelectorAll('.' + dropDownBaseClasses.li).length > 0)) {\n this.l10nUpdate();\n addClass([this.list], dropDownBaseClasses.noData);\n }\n }\n }\n element.setAttribute('aria-selected', 'true');\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\n var ariaValue = element.getElementsByClassName('e-check').length;\n if (ariaValue === 0) {\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: null\n };\n this.notify('updatelist', args);\n }\n }\n }\n }\n }\n this.checkSelectAll();\n this.checkMaxSelection();\n };\n MultiSelect.prototype.hideGroupItem = function (value) {\n var element;\n var element1;\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n element1 = element = this.findListElement(this.ulElement, 'li', 'data-value', value);\n var i = 0;\n var j = 0;\n var temp = true;\n var temp1 = true;\n do {\n if (element && element.previousElementSibling && !element.previousElementSibling.classList.contains(HIDE_LIST) && element.previousElementSibling.classList.contains(dropDownBaseClasses.li)) {\n temp = false;\n }\n if (!temp || !element || element.previousElementSibling && element.previousElementSibling.classList.contains(dropDownBaseClasses.group)) {\n i = 10;\n } else {\n element = element.previousElementSibling;\n }\n if (element1 && element1.nextElementSibling && !element1.nextElementSibling.classList.contains(HIDE_LIST) && element1.nextElementSibling.classList.contains(dropDownBaseClasses.li)) {\n temp1 = false;\n }\n if (!temp1 || !element1 || element1.nextElementSibling && element1.nextElementSibling.classList.contains(dropDownBaseClasses.group)) {\n j = 10;\n } else {\n element1 = element1.nextElementSibling;\n }\n } while (i < 10 || j < 10);\n if (temp && temp1 && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\n addClass([element.previousElementSibling], className);\n } else if (temp && temp1 && element.previousElementSibling.classList.contains(HIDE_LIST)) {\n removeClass([element.previousElementSibling], className);\n }\n };\n MultiSelect.prototype.getValidLi = function () {\n var liElement = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\n return !isNullOrUndefined(liElement) ? liElement : this.liCollections[0];\n };\n MultiSelect.prototype.checkSelectAll = function () {\n var groupItemLength = !isNullOrUndefined(this.fields.disabled) ? this.list.querySelectorAll('li.e-list-group-item.e-active:not(.e-disabled)').length : this.list.querySelectorAll('li.e-list-group-item.e-active').length;\n var listItem = this.list.querySelectorAll('li.e-list-item');\n var searchCount = this.enableVirtualization ? this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)').length : !isNullOrUndefined(this.fields.disabled) ? this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-disabled)').length : this.list.querySelectorAll('li.' + dropDownBaseClasses.li).length;\n var searchActiveCount = this.list.querySelectorAll('li.' + dropDownBaseClasses.selected).length;\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n searchActiveCount = searchActiveCount - groupItemLength;\n }\n if (!this.enableVirtualization && (searchCount === searchActiveCount || searchActiveCount === this.maximumSelectionLength) && this.mode === 'CheckBox' && this.showSelectAll || this.enableVirtualization && this.mode === 'CheckBox' && this.showSelectAll && this.virtualSelectAll && this.value && this.value.length === this.totalItemCount) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'check'\n });\n } else if (searchCount !== searchActiveCount && this.mode === 'CheckBox' && this.showSelectAll && (!this.enableVirtualization || this.enableVirtualization && !this.virtualSelectAll)) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {\n for (var i = 0; i < listItem.length; i++) {\n this.findGroupStart(listItem[i]);\n }\n this.deselectHeader();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.openClick = function (e) {\n if (!this.openOnClick && this.mode !== 'CheckBox' && !this.isPopupOpen()) {\n if (this.targetElement() !== '') {\n this.showPopup();\n } else {\n this.hidePopup(e);\n }\n } else if (!this.openOnClick && this.mode === 'CheckBox' && !this.isPopupOpen()) {\n this.showPopup();\n }\n };\n MultiSelect.prototype.keyUp = function (e) {\n if (this.mode === 'CheckBox' && !this.openOnClick) {\n var char = String.fromCharCode(e.keyCode);\n var isWordCharacter = char.match(/\\w/);\n if (!isNullOrUndefined(isWordCharacter)) {\n this.isValidKey = true;\n }\n }\n this.isValidKey = this.isPopupOpen() && e.keyCode === 8 || this.isValidKey;\n this.isValidKey = e.ctrlKey && e.keyCode === 86 ? false : this.isValidKey;\n if (this.isValidKey && this.inputElement) {\n this.isValidKey = false;\n this.expandTextbox();\n this.showOverAllClear();\n switch (e.keyCode) {\n default:\n // For filtering works in mobile firefox\n this.search(e);\n }\n }\n };\n /**\n * To filter the multiselect data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n */\n MultiSelect.prototype.filter = function (dataSource, query, fields) {\n this.isFiltered = true;\n this.remoteFilterAction = true;\n this.dataUpdater(dataSource, query, fields);\n };\n MultiSelect.prototype.getQuery = function (query) {\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n if (this.isFiltered) {\n if (this.enableVirtualization && !isNullOrUndefined(this.customFilterQuery)) {\n filterQuery = this.customFilterQuery.clone();\n return this.virtualFilterQuery(filterQuery);\n } else if (!this.enableVirtualization) {\n return filterQuery;\n }\n }\n if (this.filterAction) {\n if (this.targetElement() !== null && !this.enableVirtualization || this.enableVirtualization && this.targetElement() !== null && this.targetElement().trim() !== '') {\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\n } else if (this.enableVirtualization && this.targetElement() !== '' && !this.isClearAllAction || !this.enableVirtualization) {\n var fields = this.fields;\n filterQuery.where(!isNullOrUndefined(fields.text) ? fields.text : '', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\n }\n }\n if (this.enableVirtualization && this.viewPortInfo.endIndex !== 0 && !this.virtualSelectAll) {\n return this.virtualFilterQuery(filterQuery);\n }\n if (this.virtualSelectAll) {\n return query ? query.take(this.maximumSelectionLength).requiresCount() : this.query ? this.query.take(this.maximumSelectionLength).requiresCount() : new Query().take(this.maximumSelectionLength).requiresCount();\n }\n return filterQuery;\n } else {\n if (this.enableVirtualization && this.viewPortInfo.endIndex !== 0 && !this.virtualSelectAll) {\n return this.virtualFilterQuery(filterQuery);\n }\n if (this.virtualSelectAll) {\n return query ? query.take(this.maximumSelectionLength).requiresCount() : this.query ? this.query.take(this.maximumSelectionLength).requiresCount() : new Query().take(this.maximumSelectionLength).requiresCount();\n }\n return query ? query : this.query ? this.query : new Query();\n }\n };\n MultiSelect.prototype.virtualFilterQuery = function (filterQuery) {\n var takeValue = this.getTakeValue();\n var isReOrder = true;\n var isSkip = true;\n var isTake = true;\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (this.getModuleName() === 'multiselect' && (filterQuery.queries[queryElements].e && filterQuery.queries[queryElements].e.condition === 'or' || filterQuery.queries[queryElements].e && filterQuery.queries[queryElements].e.operator === 'equal')) {\n isReOrder = false;\n }\n if (filterQuery.queries[queryElements].fn === 'onSkip') {\n isSkip = false;\n }\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n isTake = false;\n }\n }\n var queryTakeValue = 0;\n if (filterQuery && filterQuery.queries.length > 0) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n queryTakeValue = takeValue <= filterQuery.queries[queryElements].e.nos ? filterQuery.queries[queryElements].e.nos : takeValue;\n }\n }\n }\n if (queryTakeValue <= 0 && this.query && this.query.queries.length > 0) {\n for (var queryElements = 0; queryElements < this.query.queries.length; queryElements++) {\n if (this.query.queries[queryElements].fn === 'onTake') {\n queryTakeValue = takeValue <= this.query.queries[queryElements].e.nos ? this.query.queries[queryElements].e.nos : takeValue;\n }\n }\n }\n if (filterQuery && filterQuery.queries.length > 0) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n queryTakeValue = filterQuery.queries[queryElements].e.nos <= queryTakeValue ? queryTakeValue : filterQuery.queries[queryElements].e.nos;\n filterQuery.queries.splice(queryElements, 1);\n --queryElements;\n }\n }\n }\n if (this.allowFiltering && isSkip || !isReOrder || !this.allowFiltering && isSkip && !this.isVirtualReorder) {\n if (!isReOrder) {\n filterQuery.skip(this.viewPortInfo.startIndex);\n } else {\n filterQuery.skip(this.virtualItemStartIndex);\n }\n }\n if (this.isIncrementalRequest) {\n filterQuery.take(this.incrementalEndIndex);\n } else if (queryTakeValue > 0) {\n filterQuery.take(queryTakeValue);\n } else {\n filterQuery.take(takeValue);\n }\n filterQuery.requiresCount();\n this.customFilterQuery = null;\n return filterQuery;\n };\n MultiSelect.prototype.getTakeValue = function () {\n return this.allowFiltering && Browser.isDevice ? Math.round(window.outerHeight / this.listItemHeight) : this.itemCount;\n };\n MultiSelect.prototype.dataUpdater = function (dataSource, query, fields) {\n this.isDataFetched = false;\n var isNoData = this.list.classList.contains(dropDownBaseClasses.noData);\n if (this.targetElement().trim() === '') {\n var list = this.enableVirtualization ? this.list.cloneNode(true) : this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n if (this.backCommand || this.enableVirtualization && this.mode === 'CheckBox' && this.value && this.value.length > 0) {\n this.remoteCustomValue = false;\n var isReordered = false;\n if (this.allowCustomValue && list.querySelectorAll('li').length === 0 && this.mainData.length > 0) {\n this.mainData = [];\n }\n if (this.enableVirtualization) {\n if (this.allowFiltering) {\n this.isPreventScrollAction = true;\n this.list.scrollTop = 0;\n this.previousStartIndex = 0;\n this.virtualListInfo = null;\n }\n if (this.value && this.value.length > 0 && this.mode === 'CheckBox') {\n this.notify('setCurrentViewDataAsync', {\n component: this.getModuleName(),\n module: 'VirtualScroll'\n });\n isReordered = true;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n this.resetList(dataSource, fields, query);\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n this.UpdateSkeleton();\n if ((isNoData || this.allowCustomValue) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (!this.list.querySelector('.e-virtual-ddl-content')) {\n var contentElement = this.createElement('div', {\n className: 'e-virtual-ddl-content'\n });\n contentElement.style.cssText = this.getTransformValues();\n this.list.appendChild(contentElement).appendChild(this.list.querySelector('.e-list-parent'));\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n document.getElementsByClassName('e-multi-select-list-wrapper')[0].querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n }\n }\n }\n this.onActionComplete(list, this.mainData);\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n if (this.keyCode !== 8) {\n this.focusAtFirstListItem();\n }\n if (!isReordered) {\n this.notify('reOrder', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n e: this\n });\n }\n }\n } else {\n if (this.enableVirtualization && this.allowFiltering) {\n this.isPreventScrollAction = true;\n this.list.scrollTop = 0;\n this.previousStartIndex = 0;\n this.virtualListInfo = null;\n if (this.list.querySelector('.e-list-parent' + '.e-reorder')) {\n this.list.querySelector('.e-list-parent' + '.e-reorder').remove();\n }\n }\n this.resetList(dataSource, fields, query);\n if (this.enableVirtualization && (isNoData || this.allowCustomValue) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (!this.list.querySelector('.e-virtual-ddl-content')) {\n var contentElement = this.createElement('div', {\n className: 'e-virtual-ddl-content'\n });\n contentElement.style.cssText = this.getTransformValues();\n this.list.appendChild(contentElement).appendChild(this.list.querySelector('.e-list-parent'));\n }\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n document.getElementsByClassName('e-multi-select-list-wrapper')[0].querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n }\n if (this.allowCustomValue) {\n if (!(dataSource instanceof DataManager)) {\n this.checkForCustomValue(query, fields);\n } else {\n this.remoteCustomValue = true;\n this.tempQuery = query;\n }\n }\n }\n if (this.enableVirtualization && this.allowFiltering) {\n this.getFilteringSkeletonCount();\n }\n this.refreshPopup();\n if (this.allowResize) {\n this.setResize();\n }\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n }\n };\n MultiSelect.prototype.checkForCustomValue = function (query, fields) {\n var dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase);\n var field = fields ? fields : this.fields;\n if (this.allowCustomValue && dataChecks) {\n var value = this.inputElement.value;\n var customData = !isNullOrUndefined(this.mainData) && this.mainData.length > 0 ? this.mainData[0] : this.mainData;\n if (customData && typeof customData !== 'string' && typeof customData !== 'number' && typeof customData !== 'boolean') {\n var dataItem_1 = {};\n setValue(field.text, value, dataItem_1);\n if (typeof getValue(this.fields.value ? this.fields.value : 'value', customData) === 'number' && this.fields.value !== this.fields.text) {\n setValue(field.value, Math.random(), dataItem_1);\n } else {\n setValue(field.value, value, dataItem_1);\n }\n var emptyObject_1 = {};\n if (this.allowObjectBinding) {\n var keys = this.listData && this.listData.length > 0 ? Object.keys(this.listData[0]) : this.firstItem ? Object.keys(this.firstItem) : Object.keys(dataItem_1);\n // Create an empty object with predefined keys\n keys.forEach(function (key) {\n emptyObject_1[key] = key === fields.value || key === fields.text ? getValue(fields.value, dataItem_1) : null;\n });\n }\n dataItem_1 = this.allowObjectBinding ? emptyObject_1 : dataItem_1;\n if (this.enableVirtualization) {\n this.virtualCustomData = dataItem_1;\n var tempData = this.dataSource instanceof DataManager ? JSON.parse(JSON.stringify(this.listData)) : JSON.parse(JSON.stringify(this.dataSource));\n var totalData = [];\n if (this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {\n totalData = tempData.concat(this.virtualCustomSelectData);\n }\n tempData.splice(0, 0, dataItem_1);\n this.isCustomDataUpdated = true;\n var tempCount = this.totalItemCount;\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.itemCount;\n this.resetList(tempData, field, query);\n this.isCustomDataUpdated = false;\n this.totalItemCount = this.enableVirtualization && this.dataSource instanceof DataManager ? tempCount : this.totalItemCount;\n } else {\n if (this.dataSource instanceof DataManager && this.allowCustomValue && this.allowFiltering) {\n this.remoteCustomValue = false;\n }\n var tempData = JSON.parse(JSON.stringify(this.listData));\n tempData.splice(0, 0, dataItem_1);\n this.resetList(tempData, field, query);\n }\n } else if (this.listData) {\n var tempData = JSON.parse(JSON.stringify(this.listData));\n tempData.splice(0, 0, this.inputElement.value);\n tempData[0] = typeof customData === 'number' && !isNaN(parseFloat(tempData[0])) ? parseFloat(tempData[0]) : tempData[0];\n tempData[0] = typeof customData === 'boolean' ? tempData[0] === 'true' ? true : tempData[0] === 'false' ? false : tempData[0] : tempData[0];\n this.resetList(tempData, field);\n }\n } else if (this.listData && this.mainData && !dataChecks && this.allowCustomValue) {\n if (this.allowFiltering && this.isRemoteSelection && this.remoteCustomValue) {\n this.isRemoteSelection = false;\n if (!this.enableVirtualization) {\n this.resetList(this.listData, field, query);\n }\n } else if (!this.allowFiltering && this.list) {\n var liCollections = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-hide-listitem)');\n var activeElement = Search(this.targetElement(), liCollections, 'StartsWith', this.ignoreCase);\n if (activeElement && activeElement.item !== null) {\n this.addListFocus(activeElement.item);\n }\n }\n }\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.getNgDirective = function () {\n return 'EJS-MULTISELECT';\n };\n MultiSelect.prototype.wrapperClick = function (e) {\n this.setDynValue = false;\n this.keyboardEvent = null;\n this.isKeyBoardAction = false;\n if (!this.enabled) {\n return;\n }\n if (e.target === this.overAllClear) {\n e.preventDefault();\n return;\n }\n if (!this.inputFocus) {\n this.inputElement.focus();\n }\n if (!this.readonly) {\n if (e.target && e.target.classList.toString().indexOf(CHIP_CLOSE) !== -1) {\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n return;\n }\n if (!this.isPopupOpen() && (this.openOnClick || this.showDropDownIcon && e.target && e.target.className === dropdownIcon)) {\n this.showPopup(e);\n } else {\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.showOverAllClear();\n this.inputFocus = true;\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\n this.overAllWrapper.classList.add(FOCUS);\n }\n }\n }\n }\n if (!(this.targetElement() && this.targetElement() !== '')) {\n e.preventDefault();\n }\n };\n MultiSelect.prototype.enable = function (state) {\n if (state) {\n this.overAllWrapper.classList.remove(DISABLED);\n this.inputElement.removeAttribute('disabled');\n attributes(this.inputElement, {\n 'aria-disabled': 'false'\n });\n this.ensureAriaDisabled('false');\n } else {\n this.overAllWrapper.classList.add(DISABLED);\n this.inputElement.setAttribute('disabled', 'true');\n attributes(this.inputElement, {\n 'aria-disabled': 'true'\n });\n this.ensureAriaDisabled('true');\n }\n if (this.enabled !== state) {\n this.enabled = state;\n }\n this.hidePopup();\n };\n MultiSelect.prototype.onBlurHandler = function (eve, isDocClickFromCheck) {\n var target;\n if (this.isBlurDispatching && this.isAngular) {\n this.isBlurDispatching = false;\n return;\n }\n if (!isNullOrUndefined(eve)) {\n target = eve.relatedTarget;\n }\n if (this.popupObj && document.body.contains(this.popupObj.element) && this.popupObj.element.contains(target)) {\n if (this.mode !== 'CheckBox') {\n this.inputElement.focus();\n } else if (this.floatLabelType === 'Auto' && (this.overAllWrapper.classList.contains('e-outline') || this.overAllWrapper.classList.contains('e-filled'))) {\n addClass([this.overAllWrapper], 'e-valid-input');\n }\n return;\n }\n if (this.floatLabelType === 'Auto' && this.overAllWrapper.classList.contains('e-outline') && this.mode === 'CheckBox' && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n removeClass([this.overAllWrapper], 'e-valid-input');\n }\n if (this.mode === 'CheckBox' && Browser.isIE && !isNullOrUndefined(eve) && !isDocClickFromCheck) {\n this.inputFocus = false;\n this.overAllWrapper.classList.remove(FOCUS);\n return;\n }\n if (this.scrollFocusStatus) {\n if (!isNullOrUndefined(eve)) {\n eve.preventDefault();\n }\n this.inputElement.focus();\n this.scrollFocusStatus = false;\n return;\n }\n this.inputFocus = false;\n this.overAllWrapper.classList.remove(FOCUS);\n if (this.addTagOnBlur) {\n var dataChecks = this.getValueByText(this.inputElement.value, this.ignoreCase, this.ignoreAccent);\n var listLiElement = this.findListElement(this.list, 'li', 'data-value', dataChecks);\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n var allowChipAddition = listLiElement && !listLiElement.classList.contains(className) ? true : false;\n if (allowChipAddition) {\n this.updateListSelection(listLiElement, eve);\n if (this.mode === 'Delimiter') {\n this.updateDelimeter(this.delimiterChar);\n }\n }\n }\n this.updateDataList();\n this.refreshListItems(null);\n if (this.mode !== 'Box' && this.mode !== 'CheckBox') {\n this.updateDelimView();\n }\n if (this.changeOnBlur) {\n this.updateValueState(eve, this.value, this.tempValues);\n this.dispatchEvent(this.hiddenElement, 'change');\n }\n this.overAllClear.style.display = 'none';\n if (this.isPopupOpen()) {\n this.hidePopup(eve);\n }\n this.makeTextBoxEmpty();\n this.trigger('blur');\n this.focused = true;\n if (Browser.isDevice && this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.removeChipFocus();\n }\n this.removeChipSelection();\n this.refreshInputHight();\n floatLabelBlur(this.overAllWrapper, this.componentWrapper, this.value, this.floatLabelType, this.placeholder);\n this.refreshPlaceHolder();\n if ((this.allowFiltering || this.enableSelectionOrder === true && this.mode === 'CheckBox') && !isNullOrUndefined(this.mainList)) {\n this.ulElement = this.mainList;\n }\n this.checkPlaceholderSize();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.isBlurDispatching = true;\n if (this.isAngular) {\n this.dispatchEvent(this.inputElement, 'blur');\n }\n };\n MultiSelect.prototype.calculateWidth = function () {\n var elementWidth;\n if (this.overAllWrapper) {\n if (!this.showDropDownIcon || this.overAllWrapper.querySelector('.' + 'e-label-top')) {\n elementWidth = this.overAllWrapper.clientWidth - 2 * parseInt(getComputedStyle(this.inputElement).paddingRight, 10);\n } else {\n var downIconWidth = this.dropIcon.offsetWidth + parseInt(getComputedStyle(this.dropIcon).marginRight, 10);\n elementWidth = this.overAllWrapper.clientWidth - (downIconWidth + 2 * parseInt(getComputedStyle(this.inputElement).paddingRight, 10));\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(elementWidth, this.overAllWrapper, this.getModuleName());\n }\n }\n };\n MultiSelect.prototype.checkPlaceholderSize = function () {\n if (this.showDropDownIcon) {\n var downIconWidth = this.dropIcon.offsetWidth + parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\n this.setPlaceholderSize(downIconWidth);\n } else {\n if (!isNullOrUndefined(this.dropIcon)) {\n this.setPlaceholderSize(this.showDropDownIcon ? this.dropIcon.offsetWidth : 0);\n }\n }\n };\n MultiSelect.prototype.setPlaceholderSize = function (downIconWidth) {\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\n if (this.dropIcon.offsetWidth !== 0) {\n this.searchWrapper.style.width = 'calc(100% - ' + (downIconWidth + 10) + 'px';\n } else {\n addClass([this.searchWrapper], CUSTOM_WIDTH);\n }\n } else if (!isNullOrUndefined(this.value)) {\n this.searchWrapper.removeAttribute('style');\n removeClass([this.searchWrapper], CUSTOM_WIDTH);\n }\n };\n MultiSelect.prototype.refreshInputHight = function () {\n if (!isNullOrUndefined(this.searchWrapper)) {\n if ((!this.value || !this.value.length) && (isNullOrUndefined(this.text) || this.text === '')) {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n } else {\n this.searchWrapper.classList.add(ZERO_SIZE);\n }\n }\n };\n MultiSelect.prototype.validateValues = function (newValue, oldValue) {\n return JSON.stringify(newValue.slice().sort()) !== JSON.stringify(oldValue.slice().sort());\n };\n MultiSelect.prototype.updateValueState = function (event, newVal, oldVal) {\n var newValue = newVal ? newVal : [];\n var oldValue = oldVal ? oldVal : [];\n if (this.initStatus && this.validateValues(newValue, oldValue)) {\n var eventArgs = {\n e: event,\n oldValue: this.allowObjectBinding ? oldVal : oldVal,\n value: this.allowObjectBinding ? newVal : newVal,\n isInteracted: event ? true : false,\n element: this.element,\n event: event\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n } else {\n this.trigger('change', eventArgs);\n }\n this.updateTempValue();\n if (!this.changeOnBlur) {\n this.dispatchEvent(this.hiddenElement, 'change');\n }\n }\n this.selectedValueInfo = this.viewPortInfo;\n };\n MultiSelect.prototype.updateTempValue = function () {\n if (!this.value) {\n this.tempValues = this.value;\n } else {\n this.tempValues = this.allowObjectBinding ? this.value.slice() : this.value.slice();\n }\n };\n MultiSelect.prototype.updateAriaActiveDescendant = function () {\n if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.inputElement, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n }\n };\n MultiSelect.prototype.pageUpSelection = function (steps, isVirtualKeyAction) {\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n var previousItem = steps >= 0 ? collection[steps + 1] : collection[0];\n if (this.fields.disabled && previousItem && !this.enableVirtualization) {\n while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) || previousItem.classList.contains('.e-reorder-hide') || previousItem.classList.contains('e-list-group-item'))) {\n previousItem = previousItem.previousElementSibling;\n }\n if (!previousItem) {\n return;\n }\n }\n if (this.enableVirtualization && isVirtualKeyAction) {\n previousItem = this.liCollections.length >= steps && steps >= 0 ? this.liCollections[steps] : this.liCollections[this.skeletonCount];\n }\n if (!isNullOrUndefined(previousItem) && previousItem.classList.contains('e-virtual-list')) {\n previousItem = this.liCollections[this.skeletonCount];\n }\n if (this.enableVirtualization) {\n if (!isNullOrUndefined(previousItem) && !previousItem.classList.contains('e-item-focus')) {\n this.isKeyBoardAction = true;\n this.addListFocus(previousItem);\n this.scrollTop(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), this.keyboardEvent.keyCode);\n } else if (this.viewPortInfo.startIndex === 0) {\n this.isKeyBoardAction = true;\n this.scrollTop(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), this.keyboardEvent.keyCode);\n }\n this.previousFocusItem = previousItem;\n } else {\n this.isKeyBoardAction = true;\n this.addListFocus(previousItem);\n this.scrollTop(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), this.keyboardEvent.keyCode);\n }\n };\n MultiSelect.prototype.pageDownSelection = function (steps, isVirtualKeyAction) {\n var list = this.getItems();\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n var previousItem = steps <= collection.length ? collection[steps - 1] : collection[collection.length - 1];\n if (this.fields.disabled && previousItem && !this.enableVirtualization) {\n while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) || previousItem.classList.contains('.e-reorder-hide') || previousItem.classList.contains('e-list-group-item'))) {\n previousItem = previousItem.nextElementSibling;\n }\n if (!previousItem) {\n return;\n }\n }\n if (this.enableVirtualization && this.skeletonCount > 0) {\n previousItem = steps < list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];\n }\n if (this.enableVirtualization && isVirtualKeyAction) {\n previousItem = steps <= list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];\n }\n this.isKeyBoardAction = true;\n this.addListFocus(previousItem);\n this.previousFocusItem = previousItem;\n this.scrollBottom(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), false, this.keyboardEvent.keyCode);\n };\n MultiSelect.prototype.getItems = function () {\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n return this.ulElement && this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li).length > 0 ? this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')') : [];\n };\n MultiSelect.prototype.focusInHandler = function (e) {\n var _this = this;\n if (this.enabled) {\n this.showOverAllClear();\n this.inputFocus = true;\n if (this.value && this.value.length) {\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.chipCollectionWrapper.style.display = '';\n } else {\n this.showDelimWrapper();\n }\n if (this.mode !== 'CheckBox') {\n this.viewWrapper.style.display = 'none';\n }\n }\n if (this.mode !== 'CheckBox') {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n this.checkPlaceholderSize();\n if (this.focused) {\n var args = {\n isInteracted: e ? true : false,\n event: e\n };\n this.trigger('focus', args);\n this.focused = false;\n }\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\n this.overAllWrapper.classList.add(FOCUS);\n }\n floatLabelFocus(this.overAllWrapper, this.componentWrapper);\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (this.allowResize) {\n this.setResize();\n }\n setTimeout(function () {\n _this.calculateWidth();\n }, 150);\n return true;\n } else {\n return false;\n }\n };\n MultiSelect.prototype.showDelimWrapper = function () {\n if (this.mode === 'CheckBox') {\n this.viewWrapper.style.display = '';\n } else {\n this.delimiterWrapper.style.display = '';\n }\n this.componentWrapper.classList.add(DELIMITER_VIEW_WRAPPER);\n };\n MultiSelect.prototype.hideDelimWrapper = function () {\n this.delimiterWrapper.style.display = 'none';\n this.componentWrapper.classList.remove(DELIMITER_VIEW_WRAPPER);\n };\n MultiSelect.prototype.expandTextbox = function () {\n var size = 5;\n if (this.placeholder) {\n var codePoint = this.placeholder.charCodeAt(0);\n var sizeMultiplier = 0xAC00 <= codePoint && codePoint <= 0xD7AF ? 1.5 : 0x4E00 <= codePoint && codePoint <= 0x9FFF ? 2 : 1;\n size = size > this.inputElement.placeholder.length ? size : this.inputElement.placeholder.length * sizeMultiplier;\n }\n if (this.inputElement.value.length > size) {\n this.inputElement.size = this.inputElement.value.length;\n } else {\n this.inputElement.size = size;\n }\n };\n MultiSelect.prototype.isPopupOpen = function () {\n return this.popupWrapper !== null && this.popupWrapper.parentElement !== null;\n };\n MultiSelect.prototype.refreshPopup = function () {\n if (this.popupObj && this.mobFilter) {\n this.popupObj.setProperties({\n width: this.calcPopupWidth()\n });\n this.popupObj.refreshPosition(this.overAllWrapper);\n this.popupObj.resolveCollision();\n }\n };\n MultiSelect.prototype.checkTextLength = function () {\n return this.targetElement().length < 1;\n };\n MultiSelect.prototype.popupKeyActions = function (e) {\n switch (e.keyCode) {\n case 38:\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.inputElement.focus();\n }\n e.preventDefault();\n break;\n case 40:\n if (!this.isPopupOpen()) {\n this.showPopup(e);\n e.preventDefault();\n }\n break;\n }\n };\n MultiSelect.prototype.updatePopupPosition = function () {\n this.refreshPopup();\n };\n MultiSelect.prototype.updateAriaAttribute = function () {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(focusedItem)) {\n this.inputElement.setAttribute('aria-activedescendant', focusedItem.id);\n if (this.allowFiltering) {\n var filterInput = this.popupWrapper.querySelector('.' + FILTERINPUT);\n if (filterInput) {\n filterInput.setAttribute('aria-activedescendant', focusedItem.id);\n }\n } else if (this.mode === 'CheckBox') {\n this.overAllWrapper.setAttribute('aria-activedescendant', focusedItem.id);\n }\n }\n };\n MultiSelect.prototype.homeNavigation = function (isHome, isVirtualKeyAction) {\n this.removeFocus();\n if (this.enableVirtualization) {\n if (isHome) {\n if (this.enableVirtualization && this.viewPortInfo.startIndex !== 0) {\n this.viewPortInfo.startIndex = 0;\n this.viewPortInfo.endIndex = this.itemCount;\n this.updateVirtualItemIndex();\n this.resetList(this.dataSource, this.fields, this.query);\n }\n } else {\n if (this.enableVirtualization && (!this.value && this.viewPortInfo.endIndex !== this.totalItemCount || this.value && this.value.length > 0 && this.viewPortInfo.endIndex !== this.totalItemCount + this.value.length)) {\n this.viewPortInfo.startIndex = this.totalItemCount - this.itemCount;\n this.viewPortInfo.endIndex = this.totalItemCount;\n this.updateVirtualItemIndex();\n var query = new Query().clone();\n if (this.value && this.value.length > 0) {\n query = this.getForQuery(this.value).clone();\n query = query.skip(this.totalItemCount - this.itemCount);\n }\n this.resetList(this.dataSource, this.fields, query);\n }\n }\n }\n this.UpdateSkeleton();\n var scrollEle = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (scrollEle.length > 0) {\n var element = scrollEle[isHome ? 0 : scrollEle.length - 1];\n if (this.enableVirtualization && isHome) {\n element = scrollEle[this.skeletonCount];\n }\n this.removeFocus();\n element.classList.add(dropDownBaseClasses.focus);\n if (this.enableVirtualization && isHome) {\n this.scrollTop(element, undefined, this.keyboardEvent.keyCode);\n } else if (!isVirtualKeyAction) {\n this.scrollBottom(element, undefined, false, this.keyboardEvent.keyCode);\n }\n this.updateAriaActiveDescendant();\n }\n };\n MultiSelect.prototype.updateSelectionList = function () {\n if (!isNullOrUndefined(this.value) && this.value.length) {\n for (var index = 0; index < this.value.length; index++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n var selectedItem = this.getElementByValue(value);\n if (selectedItem && !selectedItem.classList.contains(dropDownBaseClasses.selected)) {\n selectedItem.classList.add('e-active');\n }\n }\n }\n };\n MultiSelect.prototype.handleVirtualKeyboardActions = function (e, pageCount) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n var activeIndex;\n this.isKeyBoardAction = true;\n switch (e.keyCode) {\n case 40:\n this.arrowDown(e, true);\n break;\n case 38:\n this.arrowUp(e, true);\n break;\n case 33:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(this.previousFocusItem.getAttribute('data-value')) - 1;\n this.pageUpSelection(activeIndex, true);\n this.updateAriaAttribute();\n }\n break;\n case 34:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(this.previousFocusItem.getAttribute('data-value'));\n this.pageDownSelection(activeIndex, true);\n this.updateAriaAttribute();\n }\n break;\n case 35:\n case 36:\n this.isMouseScrollAction = true;\n this.homeNavigation(e.keyCode === 36 ? true : false, true);\n this.isPreventScrollAction = true;\n break;\n }\n this.keyboardEvent = null;\n this.isScrollChanged = true;\n this.isKeyBoardAction = false;\n };\n MultiSelect.prototype.onKeyDown = function (e) {\n if (this.readonly || !this.enabled && this.mode !== 'CheckBox') {\n return;\n }\n this.preventSetCurrentData = false;\n this.keyboardEvent = e;\n if (this.isPreventKeyAction && this.enableVirtualization) {\n e.preventDefault();\n }\n this.keyCode = e.keyCode;\n this.keyDownStatus = true;\n if (e.keyCode > 111 && e.keyCode < 124) {\n return;\n }\n if (e.altKey) {\n this.popupKeyActions(e);\n return;\n } else if (this.isPopupOpen()) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n var activeIndex = void 0;\n switch (e.keyCode) {\n case 36:\n case 35:\n this.isMouseScrollAction = true;\n this.isKeyBoardAction = true;\n this.homeNavigation(e.keyCode === 36 ? true : false);\n break;\n case 33:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(focusedItem.getAttribute('data-value'));\n this.pageUpSelection(activeIndex - this.getPageCount() - 1);\n this.updateAriaAttribute();\n }\n return;\n case 34:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(focusedItem.getAttribute('data-value'));\n this.pageDownSelection(activeIndex + this.getPageCount());\n this.updateAriaAttribute();\n }\n return;\n case 38:\n this.isKeyBoardAction = true;\n this.arrowUp(e);\n break;\n case 40:\n this.isKeyBoardAction = true;\n this.arrowDown(e);\n break;\n case 27:\n e.preventDefault();\n this.isKeyBoardAction = true;\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.inputElement.focus();\n }\n this.isKeyBoardAction = false;\n return;\n case 13:\n e.preventDefault();\n this.isKeyBoardAction = true;\n if (this.mode !== 'CheckBox') {\n this.selectByKey(e);\n }\n this.checkPlaceholderSize();\n this.isKeyBoardAction = false;\n return;\n case 32:\n this.isKeyBoardAction = true;\n this.spaceKeySelection(e);\n this.isKeyBoardAction = false;\n return;\n case 9:\n e.preventDefault();\n this.isKeyBoardAction = true;\n this.hidePopup(e);\n this.inputElement.focus();\n this.overAllWrapper.classList.add(FOCUS);\n }\n } else {\n switch (e.keyCode) {\n case 13:\n case 9:\n case 16:\n case 17:\n case 20:\n return;\n case 40:\n if (this.openOnClick) {\n this.showPopup();\n }\n break;\n case 27:\n e.preventDefault();\n this.escapeAction();\n return;\n }\n }\n if (this.checkTextLength()) {\n this.keyNavigation(e);\n }\n if (this.mode === 'CheckBox' && this.enableSelectionOrder) {\n if (this.allowFiltering) {\n this.previousFilterText = this.targetElement();\n }\n this.checkBackCommand(e);\n }\n this.expandTextbox();\n if (!(this.mode === 'CheckBox' && this.showSelectAll)) {\n this.refreshPopup();\n }\n if (this.allowResize) {\n this.setResize();\n }\n this.isKeyBoardAction = false;\n };\n MultiSelect.prototype.arrowDown = function (e, isVirtualKeyAction) {\n e.preventDefault();\n this.moveByList(1, isVirtualKeyAction);\n this.keyAction = true;\n if (document.activeElement.classList.contains(FILTERINPUT) || this.mode === 'CheckBox' && !this.allowFiltering && document.activeElement !== this.list) {\n EventHandler.add(this.list, 'keydown', this.onKeyDown, this);\n }\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.arrowUp = function (e, isVirtualKeyAction) {\n e.preventDefault();\n this.keyAction = true;\n var list = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n list = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n }\n var focuseElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n this.focusFirstListItem = !isNullOrUndefined(this.liCollections[0]) ? this.liCollections[0].classList.contains('e-item-focus') : false;\n var index = Array.prototype.slice.call(list).indexOf(focuseElem);\n if (index <= 0 && this.mode === 'CheckBox' && this.allowFiltering) {\n this.keyAction = false;\n this.notify('inputFocus', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'focus'\n });\n }\n this.moveByList(-1, isVirtualKeyAction);\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.spaceKeySelection = function (e) {\n if (this.mode === 'CheckBox') {\n var li = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (!isNullOrUndefined(li) || selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n e.preventDefault();\n this.keyAction = true;\n }\n this.selectByKey(e);\n if (this.keyAction) {\n var li_1 = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(li_1) && selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n li_1.classList.remove('e-item-focus');\n }\n }\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.checkBackCommand = function (e) {\n if (e.keyCode === 8 && this.allowFiltering ? this.targetElement() !== this.previousFilterText : this.targetElement() === '') {\n this.backCommand = false;\n } else {\n this.backCommand = true;\n }\n };\n MultiSelect.prototype.keyNavigation = function (e) {\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox' && this.value && this.value.length) {\n switch (e.keyCode) {\n case 37:\n //left arrow\n e.preventDefault();\n this.moveBy(-1, e);\n break;\n case 39:\n //right arrow\n e.preventDefault();\n this.moveBy(1, e);\n break;\n case 8:\n this.removelastSelection(e);\n break;\n case 46:\n //del\n this.removeSelectedChip(e);\n break;\n }\n } else if (e.keyCode === 8 && this.mode === 'Delimiter') {\n if (this.value && this.value.length) {\n e.preventDefault();\n var temp = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n this.removeValue(this.value[this.value.length - 1], e);\n this.updateDelimeter(this.delimiterChar, e);\n this.focusAtLastListItem(temp);\n }\n }\n };\n MultiSelect.prototype.selectByKey = function (e) {\n this.removeChipSelection();\n this.selectListByKey(e);\n if (this.hideSelectedItem) {\n this.focusAtFirstListItem();\n }\n };\n MultiSelect.prototype.escapeAction = function () {\n var temp = this.tempValues ? this.tempValues.slice() : [];\n if (this.allowObjectBinding) {\n temp = this.tempValues ? this.tempValues.slice() : [];\n }\n if (this.value && this.validateValues(this.value, temp)) {\n if (this.mode !== 'CheckBox') {\n this.value = temp;\n this.initialValueUpdate();\n }\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.chipCollectionWrapper.style.display = '';\n } else {\n this.showDelimWrapper();\n }\n this.refreshPlaceHolder();\n if (this.value.length) {\n this.showOverAllClear();\n } else {\n this.hideOverAllClear();\n }\n }\n this.makeTextBoxEmpty();\n };\n MultiSelect.prototype.scrollBottom = function (selectedLI, activeIndex, isInitialSelection, keyCode, isInitial) {\n if (isInitialSelection === void 0) {\n isInitialSelection = false;\n }\n if (keyCode === void 0) {\n keyCode = null;\n }\n if (isInitial === void 0) {\n isInitial = false;\n }\n if (!isNullOrUndefined(selectedLI) && selectedLI.classList.contains('e-virtual-list') || this.enableVirtualization && isNullOrUndefined(selectedLI)) {\n selectedLI = this.liCollections[this.skeletonCount];\n }\n var selectedListMargin = selectedLI && !isNaN(parseInt(window.getComputedStyle(selectedLI).marginBottom, 10)) ? parseInt(window.getComputedStyle(selectedLI).marginBottom, 10) : 0;\n this.isUpwardScrolling = false;\n var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;\n var lastElementValue = this.list.querySelector('li:last-of-type') ? this.list.querySelector('li:last-of-type').getAttribute('data-value') : null;\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? selectedLI.offsetTop + this.virtualListInfo.startIndex * (selectedLI.offsetHeight + selectedListMargin) : selectedLI.offsetTop;\n var currentOffset = this.list.offsetHeight;\n var nextBottom = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) + (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n var isScrollerCHanged = false;\n var isScrollTopChanged = false;\n var boxRange = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) + (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ? boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (activeIndex === 0 && !this.enableVirtualization) {\n this.list.scrollTop = 0;\n } else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n var currentElementValue = selectedLI ? selectedLI.getAttribute('data-value') : null;\n var liCount = keyCode === 34 ? this.getPageCount() - 1 : 1;\n if (!this.enableVirtualization || this.isKeyBoardAction || isInitialSelection) {\n if (this.isKeyBoardAction && this.enableVirtualization && lastElementValue && currentElementValue === lastElementValue && keyCode !== 35 && !this.isVirtualScrolling) {\n this.isPreventKeyAction = true;\n this.list.scrollTop += (selectedLI.offsetHeight + selectedListMargin) * liCount;\n this.isPreventKeyAction = this.isScrollerAtEnd() ? false : this.isPreventKeyAction;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n } else if (this.enableVirtualization && keyCode === 35) {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n this.list.scrollTop = this.list.scrollHeight;\n } else {\n if (keyCode === 34 && this.enableVirtualization && !this.isVirtualScrolling) {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n }\n this.list.scrollTop = nextOffset;\n }\n } else {\n this.list.scrollTop = this.virtualListInfo && this.virtualListInfo.startIndex ? isInitial && this.virtualListInfo.startIndex ? this.virtualListInfo.startIndex * this.listItemHeight + this.listItemHeight * 2 : this.virtualListInfo.startIndex * this.listItemHeight : 0;\n }\n isScrollerCHanged = this.isKeyBoardAction;\n isScrollTopChanged = true;\n }\n this.isKeyBoardAction = isScrollerCHanged;\n };\n MultiSelect.prototype.scrollTop = function (selectedLI, activeIndex, keyCode) {\n if (keyCode === void 0) {\n keyCode = null;\n }\n var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;\n var selectedListMargin = selectedLI && !isNaN(parseInt(window.getComputedStyle(selectedLI).marginBottom, 10)) ? parseInt(window.getComputedStyle(selectedLI).marginBottom, 10) : 0;\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? selectedLI.offsetTop + this.virtualListInfo.startIndex * (selectedLI.offsetHeight + selectedListMargin) : selectedLI.offsetTop;\n var nextOffset = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var firstElementValue = this.list.querySelector('li.e-list-item:not(.e-virtual-list)') ? this.list.querySelector('li.e-list-item:not(.e-virtual-list)').getAttribute('data-value') : null;\n nextOffset = this.fields.groupBy && !isUndefined(this.fixedHeaderElement) ? nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) + (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var isPageUpKeyAction = this.enableVirtualization && this.getModuleName() === 'autocomplete' && nextOffset <= 0;\n if (activeIndex === 0 && !this.enableVirtualization) {\n this.list.scrollTop = 0;\n } else if (nextOffset < 0 || isPageUpKeyAction) {\n var currentElementValue = selectedLI ? selectedLI.getAttribute('data-value') : null;\n var liCount = keyCode === 33 ? this.getPageCount() - 2 : 1;\n if (this.enableVirtualization && this.isKeyBoardAction && firstElementValue && currentElementValue === firstElementValue && keyCode !== 36 && !this.isVirtualScrolling) {\n this.isUpwardScrolling = true;\n this.isPreventKeyAction = true;\n this.isKeyBoardAction = false;\n this.list.scrollTop -= (selectedLI.offsetHeight + selectedListMargin) * liCount;\n this.isPreventKeyAction = this.list.scrollTop !== 0 ? this.isPreventKeyAction : false;\n this.isPreventScrollAction = false;\n } else if (this.enableVirtualization && keyCode === 36) {\n this.isPreventScrollAction = false;\n this.isPreventKeyAction = true;\n this.isKeyBoardAction = false;\n this.list.scrollTo(0, 0);\n } else {\n if (keyCode === 33 && this.enableVirtualization && !this.isVirtualScrolling) {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n }\n this.list.scrollTop = this.list.scrollTop + nextOffset;\n }\n } else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement.offsetHeight : 0);\n }\n };\n MultiSelect.prototype.isScrollerAtEnd = function () {\n return this.list && this.list.scrollTop + this.list.clientHeight >= this.list.scrollHeight;\n };\n MultiSelect.prototype.selectListByKey = function (e) {\n var li = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var limit = this.value && this.value.length ? this.value.length : 0;\n var target;\n if (li !== null) {\n e.preventDefault();\n if (li.classList.contains('e-active')) {\n limit = limit - 1;\n }\n if (this.isValidLI(li) && limit < this.maximumSelectionLength) {\n this.updateListSelection(li, e);\n this.addListFocus(li);\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n this.updateDelimeter(this.delimiterChar, e);\n this.refreshInputHight();\n this.checkPlaceholderSize();\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n target = li.firstElementChild.lastElementChild;\n this.findGroupStart(target);\n this.deselectHeader();\n }\n } else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n var isFilterData = this.targetElement().trim() !== '' ? true : false;\n this.makeTextBoxEmpty();\n if (this.mode !== 'CheckBox') {\n this.refreshListItems(li.textContent, isFilterData);\n }\n if (!this.changeOnBlur) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n this.refreshPopup();\n } else {\n if (!this.isValidLI(li) && limit < this.maximumSelectionLength) {\n target = li.firstElementChild.lastElementChild;\n if (target.classList.contains('e-check')) {\n this.selectAllItem(false, e, li);\n } else {\n this.selectAllItem(true, e, li);\n }\n }\n }\n this.refreshSelection();\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n }\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n var selectAllCheckBox = selectAllParent.childNodes[0];\n if (!selectAllCheckBox.classList.contains('e-check')) {\n selectAllCheckBox.classList.add('e-check');\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'check',\n name: 'checkSelectAll'\n };\n this.notify('checkSelectAll', args);\n this.selectAllItem(true, e, li);\n } else {\n selectAllCheckBox.classList.remove('e-check');\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'check',\n name: 'checkSelectAll'\n };\n this.notify('checkSelectAll', args);\n this.selectAllItem(false, e, li);\n }\n }\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.refreshListItems = function (data, isFilterData) {\n if ((this.allowFiltering || this.mode === 'CheckBox' && this.enableSelectionOrder === true || this.allowCustomValue) && this.mainList && this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n if (this.enableVirtualization) {\n if (this.allowCustomValue && this.virtualCustomData && data == null && this.virtualCustomData && this.viewPortInfo && this.viewPortInfo.startIndex === 0 && this.viewPortInfo.endIndex === this.itemCount) {\n this.virtualCustomData = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.renderItems(this.mainData, this.fields);\n } else {\n if (this.allowFiltering && isFilterData) {\n this.updateInitialData();\n this.onActionComplete(list, this.mainData);\n this.isVirtualTrackHeight = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.list.getElementsByClassName('e-virtual-ddl')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n } else if (!this.list.querySelector('.e-virtual-ddl') && this.skeletonCount > 0) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n } else {\n this.onActionComplete(this.list, this.listData);\n }\n }\n } else {\n this.onActionComplete(list, this.mainData);\n }\n this.focusAtLastListItem(data);\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n } else if (!isNullOrUndefined(this.fields.groupBy) && this.value && this.value.length) {\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.removeSelectedChip = function (e) {\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n var temp;\n if (selectedElem !== null) {\n if (!isNullOrUndefined(this.value)) {\n this.tempValues = this.allowObjectBinding ? this.value.slice() : this.value.slice();\n }\n temp = selectedElem.nextElementSibling;\n if (temp !== null) {\n this.removeChipSelection();\n this.addChipSelection(temp, e);\n }\n var currentChip = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(selectedElem.getAttribute('data-value'))) : selectedElem.getAttribute('data-value');\n this.removeValue(currentChip, e);\n this.updateDelimeter(this.delimiterChar, e);\n this.makeTextBoxEmpty();\n }\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.moveByTop = function (state) {\n var elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\n var index;\n if (elements.length > 1) {\n this.removeFocus();\n index = state ? 0 : elements.length - 1;\n this.addListFocus(elements[index]);\n this.scrollBottom(elements[index], index);\n }\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.clickHandler = function (e) {\n var targetElement = e.target;\n var filterInputClassName = targetElement.className;\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if ((filterInputClassName === 'e-input-filter e-input' || filterInputClassName === 'e-input-group e-control-wrapper e-input-focus') && selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.remove('e-item-focus');\n }\n };\n MultiSelect.prototype.moveByList = function (position, isVirtualKeyAction) {\n if (this.list) {\n var elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n }\n var selectedElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n if (this.enableVirtualization && isVirtualKeyAction && !isNullOrUndefined(this.currentFocuedListElement)) {\n selectedElem = this.getElementByValue(this.getFormattedValue(this.currentFocuedListElement.getAttribute('data-value')));\n }\n var temp = -1;\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (this.mode === 'CheckBox' && this.showSelectAll && position === 1 && !isNullOrUndefined(selectAllParent) && !selectAllParent.classList.contains('e-item-focus') && this.list.getElementsByClassName('e-item-focus').length === 0 && this.liCollections.length > 1) {\n if (!this.focusFirstListItem && selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.remove('e-item-focus');\n } else if (!selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.add('e-item-focus');\n }\n } else if (elements.length) {\n if (this.mode === 'CheckBox' && this.showSelectAll && !isNullOrUndefined(selectAllParent && position === -1)) {\n if (!this.focusFirstListItem && selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.remove('e-item-focus');\n } else if (this.focusFirstListItem && !selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.add('e-item-focus');\n }\n }\n for (var index = 0; index < elements.length; index++) {\n if (elements[index] === selectedElem) {\n temp = index;\n break;\n }\n }\n if (position > 0) {\n if (temp < elements.length - 1) {\n this.removeFocus();\n if (this.enableVirtualization && isVirtualKeyAction) {\n this.addListFocus(elements[temp]);\n } else {\n if (this.enableVirtualization && elements[temp + 1].classList.contains('e-virtual-list')) {\n this.addListFocus(elements[this.skeletonCount]);\n } else {\n this.addListFocus(elements[++temp]);\n }\n }\n if (temp > -1) {\n this.updateCheck(elements[temp]);\n this.scrollBottom(elements[temp], temp);\n this.currentFocuedListElement = elements[temp];\n }\n }\n } else {\n if (temp > 0) {\n if (this.enableVirtualization) {\n var isVirtualElement = elements[temp - 1].classList.contains('e-virtual-list');\n var elementIndex = isVirtualKeyAction ? temp : temp - 1;\n if (isVirtualKeyAction || !isVirtualElement) {\n this.removeFocus();\n }\n if (isVirtualKeyAction || !isVirtualElement) {\n this.addListFocus(elements[elementIndex]);\n this.updateCheck(elements[elementIndex]);\n this.scrollTop(elements[elementIndex], temp);\n this.currentFocuedListElement = elements[elementIndex];\n }\n } else {\n this.removeFocus();\n this.addListFocus(elements[--temp]);\n this.updateCheck(elements[temp]);\n this.scrollTop(elements[temp], temp);\n }\n }\n }\n }\n }\n var focusedLi = this.list ? this.list.querySelector('.e-item-focus') : null;\n if (this.isDisabledElement(focusedLi)) {\n if (this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem):not(.e-disabled)').length === 0 || this.keyCode === 38 && this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy) && focusedLi === this.list.querySelector('li.e-list-group-item')) {\n this.removeFocus();\n return;\n }\n var index = this.getIndexByValue(focusedLi.getAttribute('data-value'));\n if (index === 0) {\n position = 1;\n }\n if (index === this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem)').length - 1) {\n position = -1;\n }\n this.moveByList(position);\n }\n };\n MultiSelect.prototype.getElementByValue = function (value) {\n var item;\n var listItems = this.getItems();\n for (var _i = 0, listItems_1 = listItems; _i < listItems_1.length; _i++) {\n var liItem = listItems_1[_i];\n if (this.getFormattedValue(liItem.getAttribute('data-value')) === value) {\n item = liItem;\n break;\n }\n }\n return item;\n };\n MultiSelect.prototype.updateCheck = function (element) {\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n var checkElement = element.firstElementChild.lastElementChild;\n if (checkElement.classList.contains('e-check')) {\n element.classList.add('e-active');\n } else {\n element.classList.remove('e-active');\n }\n }\n };\n MultiSelect.prototype.moveBy = function (position, e) {\n var temp;\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n if (selectedElem === null) {\n if (position < 0) {\n this.addChipSelection(elements[elements.length - 1], e);\n }\n } else {\n if (position < 0) {\n temp = selectedElem.previousElementSibling;\n if (temp !== null) {\n this.removeChipSelection();\n this.addChipSelection(temp, e);\n }\n } else {\n temp = selectedElem.nextElementSibling;\n this.removeChipSelection();\n if (temp !== null) {\n this.addChipSelection(temp, e);\n }\n }\n }\n };\n MultiSelect.prototype.chipClick = function (e) {\n if (this.enabled) {\n var elem = closest(e.target, '.' + CHIP);\n this.removeChipSelection();\n this.addChipSelection(elem, e);\n }\n };\n MultiSelect.prototype.removeChipSelection = function () {\n if (this.chipCollectionWrapper) {\n this.removeChipFocus();\n }\n };\n MultiSelect.prototype.addChipSelection = function (element, e) {\n addClass([element], CHIP_SELECTED);\n this.trigger('chipSelection', e);\n };\n MultiSelect.prototype.onChipRemove = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n if (this.enabled && !this.readonly) {\n var element = e.target.parentElement;\n var customVal = element.getAttribute('data-value');\n var value = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(customVal)) : this.getFormattedValue(customVal);\n if (this.allowCustomValue && (customVal !== 'false' && value === false || !isNullOrUndefined(value) && value.toString() === 'NaN')) {\n value = customVal;\n }\n if (this.isPopupOpen() && this.mode !== 'CheckBox') {\n this.hidePopup(e);\n }\n if (!this.inputFocus) {\n this.inputElement.focus();\n }\n this.removeValue(value, e);\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n if (isNullOrUndefined(this.findListElement(this.list, 'li', 'data-value', value)) && this.mainList && this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.updateDelimeter(this.delimiterChar, e);\n if (this.placeholder && this.floatLabelType === 'Never') {\n this.makeTextBoxEmpty();\n this.checkPlaceholderSize();\n } else {\n this.inputElement.value = '';\n }\n e.preventDefault();\n }\n };\n MultiSelect.prototype.makeTextBoxEmpty = function () {\n this.inputElement.value = '';\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.refreshPlaceHolder = function () {\n if (this.placeholder && this.floatLabelType === 'Never') {\n if (this.value && this.value.length || !isNullOrUndefined(this.text) && this.text !== '') {\n this.inputElement.placeholder = '';\n } else {\n this.inputElement.placeholder = encodePlaceholder(this.placeholder);\n }\n } else {\n this.setFloatLabelType();\n }\n this.expandTextbox();\n };\n MultiSelect.prototype.removeAllItems = function (value, eve, isClearAll, element, mainElement) {\n var index = this.allowObjectBinding ? this.indexOfObjectInArray(value, this.value) : this.value.indexOf(value);\n var removeVal = this.value.slice(0);\n removeVal.splice(index, 1);\n this.setProperties({\n value: [].concat([], removeVal)\n }, true);\n element.setAttribute('aria-selected', 'false');\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n removeClass([element], className);\n this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: this,\n index: index\n });\n this.invokeCheckboxSelection(element, eve, isClearAll);\n var currentValue = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n this.updateMainList(true, currentValue, mainElement);\n this.updateChipStatus();\n };\n MultiSelect.prototype.invokeCheckboxSelection = function (element, eve, isClearAll) {\n this.notify('updatelist', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: eve\n });\n this.updateAriaActiveDescendant();\n if (this.value && this.value.length !== this.mainData.length && this.mode === 'CheckBox' && this.showSelectAll && !(this.isSelectAll || isClearAll)) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n };\n MultiSelect.prototype.removeValue = function (value, eve, length, isClearAll) {\n var _this = this;\n var index = this.allowObjectBinding ? this.indexOfObjectInArray(value, this.value) : this.value.indexOf(this.getFormattedValue(value));\n if (index === -1 && this.allowCustomValue && !isNullOrUndefined(value)) {\n index = this.allowObjectBinding ? this.indexOfObjectInArray(value, this.value) : this.value.indexOf(value.toString());\n }\n var targetEle = eve && eve.target;\n isClearAll = isClearAll || targetEle && targetEle.classList.contains('e-close-hooker') ? true : null;\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n if (index !== -1) {\n var currentValue = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n var element_1 = this.virtualSelectAll ? null : this.findListElement(this.list, 'li', 'data-value', currentValue);\n var val_1 = this.allowObjectBinding ? value : this.getDataByValue(value);\n var eventArgs = {\n e: eve,\n item: element_1,\n itemData: val_1,\n isInteracted: eve ? true : false,\n cancel: false\n };\n this.trigger('removing', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n _this.removeIndex++;\n } else {\n _this.isRemoveSelection = _this.enableVirtualization ? true : _this.isRemoveSelection;\n _this.currentRemoveValue = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n _this.virtualSelectAll = false;\n var removeVal = _this.value.slice(0);\n removeVal.splice(index, 1);\n if (_this.enableVirtualization && _this.mode === 'CheckBox') {\n _this.selectedListData.splice(index, 1);\n }\n _this.setProperties({\n value: [].concat([], removeVal)\n }, true);\n if (_this.enableVirtualization) {\n var currentText = index === 0 && _this.text.split(_this.delimiterChar) && _this.text.split(_this.delimiterChar).length === 1 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index], '') : index === 0 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index] + _this.delimiterChar, '') : _this.text.replace(_this.delimiterChar + _this.text.split(_this.delimiterChar)[index], '');\n _this.setProperties({\n text: currentText.toString()\n }, true);\n }\n if (element_1 !== null) {\n var currentValue_1 = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n var hideElement = _this.findListElement(_this.mainList, 'li', 'data-value', currentValue_1);\n element_1.setAttribute('aria-selected', 'false');\n removeClass([element_1], className);\n if (hideElement) {\n hideElement.setAttribute('aria-selected', 'false');\n removeClass([element_1, hideElement], className);\n }\n _this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n li: element_1,\n e: _this,\n index: index\n });\n _this.invokeCheckboxSelection(element_1, eve, isClearAll);\n }\n var currentValue_2 = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n if (_this.hideSelectedItem && _this.fields.groupBy && element_1) {\n _this.hideGroupItem(currentValue_2);\n }\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox' && _this.isPopupOpen()) {\n _super.prototype.scrollStop.call(_this);\n }\n _this.updateMainList(true, currentValue_2);\n _this.removeChip(currentValue_2, isClearAll);\n _this.updateChipStatus();\n var limit = _this.value && _this.value.length ? _this.value.length : 0;\n if (limit < _this.maximumSelectionLength) {\n var collection = _this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-active)');\n removeClass(collection, 'e-disable');\n }\n _this.trigger('removed', eventArgs);\n var targetEle_1 = eve && eve.currentTarget;\n var isSelectAll = targetEle_1 && targetEle_1.classList.contains('e-selectall-parent') ? true : null;\n if (!_this.changeOnBlur && !isClearAll && eve && length && !isSelectAll && _this.isSelectAllTarget) {\n _this.updateValueState(eve, _this.value, _this.tempValues);\n }\n if (length) {\n _this.selectAllEventData.push(val_1);\n _this.selectAllEventEle.push(element_1);\n }\n if (length === 1) {\n if (!_this.changeOnBlur) {\n _this.updateValueState(eve, _this.value, _this.tempValues);\n }\n var args = {\n event: eve,\n items: _this.selectAllEventEle,\n itemData: _this.selectAllEventData,\n isInteracted: eve ? true : false,\n isChecked: false\n };\n _this.trigger('selectedAll', args);\n _this.selectAllEventData = [];\n _this.selectAllEventEle = [];\n }\n if (isClearAll && (length === 1 || length === null)) {\n _this.clearAllCallback(eve, isClearAll);\n }\n if (_this.isPopupOpen() && element_1 && element_1.parentElement.classList.contains('e-reorder')) {\n if (_this.hideSelectedItem && _this.value && Array.isArray(_this.value) && _this.value.length > 0) {\n _this.totalItemsCount();\n }\n _this.notify('setCurrentViewDataAsync', {\n module: 'VirtualScroll'\n });\n }\n }\n });\n }\n };\n MultiSelect.prototype.updateMainList = function (state, value, mainElement) {\n if (this.allowFiltering || this.mode === 'CheckBox') {\n var element2 = mainElement ? mainElement : this.findListElement(this.mainList, 'li', 'data-value', value);\n if (element2) {\n if (state) {\n element2.setAttribute('aria-selected', 'false');\n removeClass([element2], this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected);\n if (this.mode === 'CheckBox') {\n removeClass([element2.firstElementChild.lastElementChild], 'e-check');\n }\n } else {\n element2.setAttribute('aria-selected', 'true');\n addClass([element2], this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected);\n if (this.mode === 'CheckBox') {\n addClass([element2.firstElementChild.lastElementChild], 'e-check');\n }\n }\n }\n }\n };\n MultiSelect.prototype.removeChip = function (value, isClearAll) {\n if (this.chipCollectionWrapper) {\n if (!(this.enableVirtualization && isClearAll)) {\n var element = this.findListElement(this.chipCollectionWrapper, 'span', 'data-value', value);\n if (element) {\n remove(element);\n }\n }\n }\n };\n MultiSelect.prototype.setWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.overAllWrapper.style.width = formatUnit(width);\n } else if (typeof width === 'string') {\n this.overAllWrapper.style.width = width.match(/px|%|em/) ? width : formatUnit(width);\n }\n }\n };\n MultiSelect.prototype.updateChipStatus = function () {\n if (this.value && this.value.length) {\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\n this.chipCollectionWrapper.style.display = '';\n }\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.showDelimWrapper();\n }\n this.showOverAllClear();\n } else {\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\n this.chipCollectionWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(this.delimiterWrapper)) {\n this.delimiterWrapper.style.display = 'none';\n }\n this.hideOverAllClear();\n }\n };\n MultiSelect.prototype.indexOfObjectInArray = function (objectToFind, array) {\n var _loop_1 = function (i) {\n var item = array[i];\n // eslint-disable-next-line no-prototype-builtins\n if (Object.keys(objectToFind).every(function (key) {\n return item.hasOwnProperty(key) && item[key] === objectToFind[key];\n })) {\n return {\n value: i\n };\n }\n };\n for (var i = 0; i < array.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\") return state_1.value;\n }\n return -1; // Return -1 if the object is not found\n };\n MultiSelect.prototype.addValue = function (value, text, eve) {\n if (!this.value) {\n this.value = [];\n }\n var currentValue = this.allowObjectBinding ? this.getDataByValue(value) : value;\n if (this.allowObjectBinding && !this.isObjectInArray(this.getDataByValue(value), this.value) || !this.allowObjectBinding && this.value.indexOf(currentValue) < 0) {\n this.setProperties({\n value: [].concat([], this.value, [currentValue])\n }, true);\n if (this.enableVirtualization && !this.isSelectAllLoop) {\n var data = this.viewWrapper.innerHTML;\n var temp = void 0;\n data += this.value.length === 1 ? '' : this.delimiterChar + ' ';\n temp = this.getOverflowVal(this.value.length - 1);\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n }\n if (this.enableVirtualization && this.mode === 'CheckBox') {\n var currentText = [];\n var value_1 = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n var temp = text;\n var textValues = this.text != null && this.text !== '' ? this.text + this.delimiterChar + temp : temp;\n currentText.push(textValues);\n this.setProperties({\n text: currentText.toString()\n }, true);\n }\n }\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.removeFocus();\n if (element) {\n this.addListFocus(element);\n this.addListSelection(element);\n }\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.addChip(text, value, eve);\n }\n if (this.hideSelectedItem && this.fields.groupBy) {\n this.hideGroupItem(value);\n }\n this.updateChipStatus();\n this.checkMaxSelection();\n };\n MultiSelect.prototype.checkMaxSelection = function () {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (limit === this.maximumSelectionLength) {\n var activeItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + '.e-active');\n removeClass(activeItems, 'e-disable');\n var inactiveItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-active)');\n addClass(inactiveItems, 'e-disable');\n }\n if (limit < this.maximumSelectionLength) {\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\n removeClass(collection, 'e-disable');\n }\n };\n MultiSelect.prototype.dispatchSelect = function (value, eve, element, isNotTrigger, length, dataValue, text) {\n var _this = this;\n var list = this.listData;\n if (this.initStatus && !isNotTrigger) {\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n var val_2 = dataValue ? dataValue : this.getDataByValue(value);\n var eventArgs = {\n e: eve,\n item: element,\n itemData: val_2,\n isInteracted: eve ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (length) {\n _this.selectAllEventData.push(val_2);\n _this.selectAllEventEle.push(element);\n }\n if (length === 1) {\n var args = {\n event: eve,\n items: _this.selectAllEventEle,\n itemData: _this.selectAllEventData,\n isInteracted: eve ? true : false,\n isChecked: true\n };\n _this.trigger('selectedAll', args);\n _this.selectAllEventData = [];\n }\n if (_this.allowCustomValue && _this.isServerRendered && _this.listData !== list) {\n _this.listData = list;\n }\n value = _this.allowObjectBinding ? _this.getDataByValue(value) : value;\n if (_this.enableVirtualization) {\n if (isNullOrUndefined(_this.selectedListData)) {\n _this.selectedListData = [_this.getDataByValue(value)];\n } else {\n if (dataValue) {\n if (Array.isArray(_this.selectedListData)) {\n _this.selectedListData.push(dataValue);\n } else {\n _this.selectedListData = [_this.selectedListData, dataValue];\n }\n } else {\n if (Array.isArray(_this.selectedListData)) {\n _this.selectedListData.push(_this.getDataByValue(value));\n } else {\n _this.selectedListData = [_this.selectedListData, _this.getDataByValue(value)];\n }\n }\n }\n }\n if (_this.enableVirtualization && value || !_this.enableVirtualization) {\n _this.updateListSelectEventCallback(value, element, eve, text);\n }\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox') {\n _super.prototype.scrollStop.call(_this);\n }\n }\n });\n }\n };\n MultiSelect.prototype.addChip = function (text, value, e) {\n if (this.chipCollectionWrapper) {\n this.getChip(text, value, e);\n }\n };\n MultiSelect.prototype.removeChipFocus = function () {\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP + '.' + CHIP_SELECTED);\n removeClass(elements, CHIP_SELECTED);\n if (Browser.isDevice) {\n var closeElements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP_CLOSE.split(' ')[0]);\n for (var index = 0; index < closeElements.length; index++) {\n closeElements[index].style.display = 'none';\n }\n }\n };\n MultiSelect.prototype.onMobileChipInteraction = function (e) {\n var chipElem = closest(e.target, '.' + CHIP);\n var chipClose = chipElem.querySelector('span.' + CHIP_CLOSE.split(' ')[0]);\n if (this.enabled && !this.readonly) {\n if (!chipElem.classList.contains(CHIP_SELECTED)) {\n this.removeChipFocus();\n chipClose.style.display = '';\n chipElem.classList.add(CHIP_SELECTED);\n }\n this.refreshPopup();\n e.preventDefault();\n }\n };\n MultiSelect.prototype.multiCompiler = function (multiselectTemplate) {\n var checkTemplate = false;\n if (typeof multiselectTemplate !== 'function' && multiselectTemplate) {\n try {\n checkTemplate = selectAll(multiselectTemplate, document).length ? true : false;\n } catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n MultiSelect.prototype.encodeHtmlEntities = function (input) {\n return input.replace(/[\\u00A0-\\u9999<>&]/g, function (match) {\n return \"&#\" + match.charCodeAt(0) + \";\";\n });\n };\n MultiSelect.prototype.getChip = function (data, value, e) {\n var _this = this;\n var itemData = {\n text: value,\n value: value\n };\n var chip = this.createElement('span', {\n className: CHIP,\n attrs: {\n 'data-value': value,\n 'title': data\n }\n });\n var compiledString;\n var chipContent = this.createElement('span', {\n className: CHIP_CONTENT\n });\n var chipClose = this.createElement('span', {\n className: CHIP_CLOSE\n });\n if (this.mainData) {\n itemData = this.getDataByValue(value);\n }\n if (this.valueTemplate && !isNullOrUndefined(itemData)) {\n var valuecheck = this.multiCompiler(this.valueTemplate);\n if (typeof this.valueTemplate !== 'function' && valuecheck) {\n compiledString = compile(select(this.valueTemplate, document).innerHTML.trim());\n } else {\n compiledString = compile(this.valueTemplate);\n }\n var valueCompTemp = compiledString(itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, chipContent);\n if (valueCompTemp && valueCompTemp.length > 0) {\n append(valueCompTemp, chipContent);\n }\n this.renderReactTemplates();\n } else if (this.enableHtmlSanitizer) {\n chipContent.innerText = data;\n } else {\n chipContent.innerHTML = this.encodeHtmlEntities(data.toString());\n }\n chip.appendChild(chipContent);\n var eventArgs = {\n isInteracted: e ? true : false,\n itemData: itemData,\n e: e,\n setClass: function (classes) {\n addClass([chip], classes);\n },\n cancel: false\n };\n this.isPreventChange = this.isAngular && this.preventChange;\n this.trigger('tagging', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (Browser.isDevice) {\n chip.classList.add(MOBILE_CHIP);\n append([chipClose], chip);\n chipClose.style.display = 'none';\n EventHandler.add(chip, 'click', _this.onMobileChipInteraction, _this);\n } else {\n EventHandler.add(chip, 'mousedown', _this.chipClick, _this);\n if (_this.showClearButton) {\n chip.appendChild(chipClose);\n }\n }\n EventHandler.add(chipClose, 'mousedown', _this.onChipRemove, _this);\n _this.chipCollectionWrapper.appendChild(chip);\n if (!_this.changeOnBlur && e) {\n _this.updateValueState(e, _this.value, _this.tempValues);\n }\n }\n });\n };\n MultiSelect.prototype.calcPopupWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.componentWrapper.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n MultiSelect.prototype.mouseIn = function () {\n if (this.enabled && !this.readonly) {\n this.showOverAllClear();\n }\n };\n MultiSelect.prototype.mouseOut = function () {\n if (!this.inputFocus) {\n this.overAllClear.style.display = 'none';\n }\n };\n MultiSelect.prototype.listOption = function (dataSource, fields) {\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\n var fieldProperty = isNullOrUndefined(fields.properties) ? fields : fields.properties;\n this.listCurrentOptions = fields.text !== null || fields.value !== null ? {\n fields: fieldProperty,\n showIcon: iconCss,\n ariaAttributes: {\n groupItemRole: 'presentation'\n }\n } : {\n fields: {\n value: 'text'\n }\n };\n extend(this.listCurrentOptions, this.listCurrentOptions, fields, true);\n if (this.mode === 'CheckBox') {\n this.notify('listoption', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n dataSource: dataSource,\n fieldProperty: fieldProperty\n });\n }\n return this.listCurrentOptions;\n };\n MultiSelect.prototype.renderPopup = function () {\n var _this = this;\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n if (this.popupObj && document.body.contains(this.popupObj.element) && this.allowFiltering) {\n this.refreshPopup();\n return;\n }\n if (!this.popupObj) {\n if (!isNullOrUndefined(this.popupWrapper)) {\n document.body.appendChild(this.popupWrapper);\n var checkboxFilter = this.popupWrapper.querySelector('.' + FILTERPARENT);\n if (this.mode === 'CheckBox' && !this.allowFiltering && checkboxFilter && this.filterParent) {\n checkboxFilter.remove();\n this.filterParent = null;\n }\n var overAllHeight = parseInt(this.popupHeight, 10);\n this.popupWrapper.style.visibility = 'hidden';\n if (this.headerTemplate) {\n this.setHeaderTemplate();\n overAllHeight -= this.header.offsetHeight;\n this.isUpdateHeaderHeight = this.header.offsetHeight !== 0;\n }\n append([this.list], this.popupWrapper);\n if (!this.list.classList.contains(dropDownBaseClasses.noData) && this.getItems()[1]) {\n this.listItemHeight = this.getItems()[1].offsetHeight + parseInt(window.getComputedStyle(this.getItems()[1]).marginBottom, 10);\n }\n if (this.enableVirtualization && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (!this.list.querySelector('.e-virtual-ddl-content') && this.list.querySelector('.e-list-parent')) {\n var contentElement = this.createElement('div', {\n className: 'e-virtual-ddl-content'\n });\n contentElement.style.cssText = this.getTransformValues();\n this.list.appendChild(contentElement).appendChild(this.list.querySelector('.e-list-parent'));\n } else if (this.list.querySelector('.e-virtual-ddl-content')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.virtualItemCount = this.itemCount;\n if (this.mode !== 'CheckBox') {\n this.totalItemsCount();\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n }\n }\n if (this.footerTemplate) {\n this.setFooterTemplate();\n overAllHeight -= this.footer.offsetHeight;\n this.isUpdateFooterHeight = this.footer.offsetHeight !== 0;\n }\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n overAllHeight -= this.selectAllHeight;\n } else if (this.mode === 'CheckBox' && !this.showSelectAll && !this.headerTemplate && !this.footerTemplate) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n overAllHeight = parseInt(this.popupHeight, 10);\n } else if (this.mode === 'CheckBox' && !this.showSelectAll) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n overAllHeight = parseInt(this.popupHeight, 10);\n if (this.headerTemplate && this.header) {\n overAllHeight -= this.header.offsetHeight;\n }\n if (this.footerTemplate && this.footer) {\n overAllHeight -= this.footer.offsetHeight;\n }\n }\n if (this.mode === 'CheckBox') {\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n popupElement: this.popupWrapper\n };\n if (this.allowFiltering) {\n this.notify('searchBox', args);\n overAllHeight -= this.searchBoxHeight;\n }\n addClass([this.popupWrapper], 'e-checkbox');\n }\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n } else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n this.popupObj = new Popup(this.popupWrapper, {\n width: this.calcPopupWidth(),\n targetType: 'relative',\n position: this.enableRtl ? {\n X: 'right',\n Y: 'bottom'\n } : {\n X: 'left',\n Y: 'bottom'\n },\n relateTo: this.overAllWrapper,\n collision: this.enableRtl ? {\n X: 'fit',\n Y: 'flip'\n } : {\n X: 'flip',\n Y: 'flip'\n },\n offsetY: 1,\n enableRtl: this.enableRtl,\n zIndex: this.zIndex,\n close: function () {\n if (_this.popupObj.element.parentElement) {\n _this.popupObj.unwireScrollEvents();\n // For restrict the page scrolling in safari browser\n var checkboxFilterInput = _this.popupWrapper.querySelector('.' + FILTERINPUT);\n if (_this.mode === 'CheckBox' && checkboxFilterInput && document.activeElement === checkboxFilterInput) {\n checkboxFilterInput.blur();\n }\n detach(_this.popupObj.element);\n }\n },\n open: function () {\n _this.popupObj.resolveCollision();\n if (!_this.isFirstClick) {\n var ulElement = _this.list.querySelector('ul');\n if (ulElement) {\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) && _this.targetElement().trim() !== '')) {\n _this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n }\n }\n _this.isFirstClick = true;\n }\n _this.popupObj.wireScrollEvents();\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) && _this.targetElement().trim() !== '') && !_this.enableVirtualization) {\n _this.loadTemplate();\n if (_this.enableVirtualization && _this.mode === 'CheckBox') {\n _this.UpdateSkeleton();\n }\n }\n _this.isPreventScrollAction = true;\n _this.setScrollPosition();\n if (!_this.list.classList.contains(dropDownBaseClasses.noData) && _this.getItems()[1] && _this.getItems()[1].offsetHeight !== 0) {\n _this.listItemHeight = _this.getItems()[1].offsetHeight + parseInt(window.getComputedStyle(_this.getItems()[1]).marginBottom, 10);\n if (_this.list.getElementsByClassName('e-virtual-ddl-content')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = _this.getTransformValues();\n }\n }\n if (_this.allowFiltering) {\n _this.notify('inputFocus', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: 'focus'\n });\n }\n if (_this.enableVirtualization) {\n _this.notify('bindScrollEvent', {\n module: 'VirtualScroll',\n component: _this.getModuleName(),\n enable: _this.enableVirtualization\n });\n setTimeout(function () {\n if (_this.value) {\n _this.updateSelectionList();\n } else if (_this.viewPortInfo && _this.viewPortInfo.offsets.top) {\n _this.list.scrollTop = _this.viewPortInfo.offsets.top;\n }\n }, 5);\n }\n },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n this.checkCollision(this.popupWrapper);\n this.popupContentElement = this.popupObj.element.querySelector('.e-content');\n if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering && this.isDeviceFullScreen) {\n this.notify('deviceSearchBox', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n }\n if (this.allowResize) {\n this.setResize();\n }\n this.popupObj.close();\n this.popupWrapper.style.visibility = '';\n }\n }\n };\n MultiSelect.prototype.checkCollision = function (popupEle) {\n if (!(this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering && this.isDeviceFullScreen)) {\n var collision = isCollide(popupEle);\n if (collision.length > 0) {\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\n }\n this.popupObj.resolveCollision();\n }\n };\n MultiSelect.prototype.setHeaderTemplate = function () {\n var compiledString;\n if (this.header) {\n this.header.remove();\n }\n this.header = this.createElement('div');\n addClass([this.header], HEADER);\n var headercheck = this.multiCompiler(this.headerTemplate);\n if (typeof this.headerTemplate !== 'function' && headercheck) {\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\n } else {\n compiledString = compile(this.headerTemplate);\n }\n // eslint-disable-next-line\n var elements = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (elements && elements.length > 0) {\n append(elements, this.header);\n }\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n prepend([this.header], this.popupWrapper);\n } else {\n append([this.header], this.popupWrapper);\n }\n EventHandler.add(this.header, 'mousedown', this.onListMouseDown, this);\n };\n MultiSelect.prototype.setFooterTemplate = function () {\n var compiledString;\n if (this.footer) {\n this.footer.remove();\n }\n this.footer = this.createElement('div');\n addClass([this.footer], FOOTER);\n var footercheck = this.multiCompiler(this.footerTemplate);\n if (typeof this.footerTemplate !== 'function' && footercheck) {\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\n } else {\n compiledString = compile(this.footerTemplate);\n }\n // eslint-disable-next-line\n var elements = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (elements && elements.length > 0) {\n append(elements, this.footer);\n }\n append([this.footer], this.popupWrapper);\n EventHandler.add(this.footer, 'mousedown', this.onListMouseDown, this);\n };\n MultiSelect.prototype.updateInitialData = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var currentData = this.selectData;\n var ulElement = this.renderItems(currentData, this.fields);\n this.list.scrollTop = 0;\n this.virtualListInfo = {\n currentPageNumber: null,\n direction: null,\n sentinelInfo: {},\n offsets: {},\n startIndex: 0,\n endIndex: this.itemCount\n };\n this.previousStartIndex = 0;\n this.previousEndIndex = this.itemCount;\n if (this.dataSource instanceof DataManager) {\n if (this.remoteDataCount >= 0) {\n this.totalItemCount = this.dataCount = this.remoteDataCount;\n } else {\n this.resetList(this.dataSource);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n }\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n this.getSkeletonCount();\n this.skeletonCount = this.totalItemCount !== 0 && this.totalItemCount < this.itemCount * 2 && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && this.totalItemCount <= this.itemCount) ? 0 : this.skeletonCount;\n this.UpdateSkeleton();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.list.getElementsByClassName('e-virtual-ddl')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n } else if (!this.list.querySelector('.e-virtual-ddl') && this.skeletonCount > 0) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n this.listData = currentData;\n this.liCollections = this.list.querySelectorAll('.e-list-item');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.list.getElementsByClassName('e-virtual-ddl-content')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n if (this.enableVirtualization) {\n this.notify('setGeneratedData', {\n module: 'VirtualScroll'\n });\n }\n };\n MultiSelect.prototype.clearAll = function (e) {\n if (this.enabled && !this.readonly) {\n var temp = void 0;\n this.setDynValue = false;\n this.isClearAllAction = true;\n if (this.value && this.value.length > 0) {\n if (this.allowFiltering) {\n this.refreshListItems(null);\n if (this.mode === 'CheckBox' && this.targetInputElement) {\n this.targetInputElement.value = '';\n }\n }\n var liElement = this.list && this.list.querySelectorAll('li.e-list-item');\n if (liElement && liElement.length > 0) {\n this.selectAllItems(false, e);\n } else {\n this.removeIndex = 0;\n for (temp = this.value[this.removeIndex]; this.removeIndex < this.value.length; temp = this.value[this.removeIndex]) {\n this.removeValue(temp, e, null, true);\n }\n }\n this.selectedElementID = null;\n this.inputElement.removeAttribute('aria-activedescendant');\n } else {\n this.clearAllCallback(e);\n }\n this.checkAndResetCache();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n if (this.enableVirtualization) {\n this.updateInitialData();\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.innerHTML = '';\n }\n if (!this.isCustomDataUpdated) {\n this.notify('setGeneratedData', {\n module: 'VirtualScroll'\n });\n }\n }\n if (this.enableVirtualization) {\n this.list.scrollTop = 0;\n this.virtualListInfo = null;\n this.previousStartIndex = 0;\n this.previousEndIndex = this.itemCount;\n }\n this.isClearAllAction = false;\n }\n this.isClearAllItem = true;\n EventHandler.add(document, 'mouseup', this.preventSelection, this);\n };\n MultiSelect.prototype.preventSelection = function (e) {\n if (this.isClearAllItem) {\n e.stopPropagation();\n }\n this.isClearAllItem = false;\n EventHandler.remove(document, 'mouseup', this.preventSelection);\n };\n MultiSelect.prototype.clearAllCallback = function (e, isClearAll) {\n var tempValues = this.value ? this.value.slice() : [];\n if (this.mainList && this.listData && (this.allowFiltering && this.mode !== 'CheckBox' || this.allowCustomValue)) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.focusAtFirstListItem();\n this.updateDelimeter(this.delimiterChar, e);\n if (this.mode !== 'Box' && (!this.inputFocus || this.mode === 'CheckBox')) {\n this.updateDelimView();\n }\n if (this.inputElement.value !== '') {\n this.makeTextBoxEmpty();\n this.search(null);\n }\n this.checkPlaceholderSize();\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (this.allowResize) {\n this.setResize();\n }\n if (!this.inputFocus) {\n if (this.changeOnBlur) {\n this.updateValueState(e, this.value, tempValues);\n }\n if (this.mode !== 'CheckBox') {\n this.inputElement.focus();\n }\n }\n if (this.mode === 'CheckBox') {\n this.refreshPlaceHolder();\n this.refreshInputHight();\n if (this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n }\n if (!this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n this.updateListItems(this.list.querySelectorAll('li.e-list-item'), this.mainList.querySelectorAll('li.e-list-item'));\n }\n e.preventDefault();\n };\n MultiSelect.prototype.windowResize = function () {\n this.refreshPopup();\n if ((!this.inputFocus || this.mode === 'CheckBox') && this.viewWrapper && this.viewWrapper.parentElement) {\n this.updateDelimView();\n }\n };\n MultiSelect.prototype.resetValueHandler = function (e) {\n if (!isNullOrUndefined(this.inputElement)) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var textVal = this.element.tagName === this.getNgDirective() ? null : this.element.getAttribute('data-initial-value');\n this.text = textVal;\n }\n }\n };\n MultiSelect.prototype.wireEvent = function () {\n EventHandler.add(this.componentWrapper, 'mousedown', this.wrapperClick, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(this.inputElement, 'focus', this.focusInHandler, this);\n EventHandler.add(this.inputElement, 'keydown', this.onKeyDown, this);\n EventHandler.add(this.inputElement, 'keyup', this.keyUp, this);\n if (this.mode !== 'CheckBox') {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n }\n EventHandler.add(this.inputElement, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.componentWrapper, 'mouseover', this.mouseIn, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n EventHandler.add(this.componentWrapper, 'mouseout', this.mouseOut, this);\n EventHandler.add(this.overAllClear, 'mousedown', this.clearAll, this);\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\n };\n MultiSelect.prototype.onInput = function (e) {\n if (this.keyDownStatus) {\n this.isValidKey = true;\n } else {\n this.isValidKey = false;\n }\n this.keyDownStatus = false;\n // For Filtering works in mobile firefox\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.search(e);\n }\n };\n MultiSelect.prototype.pasteHandler = function (event) {\n var _this = this;\n setTimeout(function () {\n _this.expandTextbox();\n _this.search(event);\n });\n };\n MultiSelect.prototype.search = function (e) {\n var _this = this;\n this.preventSetCurrentData = false;\n this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;\n if (!isNullOrUndefined(e)) {\n this.keyCode = e.keyCode;\n }\n if (!this.isPopupOpen() && this.openOnClick) {\n this.showPopup(e);\n }\n this.openClick(e);\n if (this.checkTextLength() && !this.allowFiltering && !isNullOrUndefined(e) && e.keyCode !== 8) {\n this.focusAtFirstListItem();\n } else {\n var text = this.targetElement();\n if (this.allowFiltering) {\n if (this.allowCustomValue) {\n this.isRemoteSelection = true;\n }\n this.checkAndResetCache();\n this.isRequesting = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.targetElement(),\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isFiltered = true;\n _this.customFilterQuery = query;\n _this.remoteFilterAction = true;\n _this.isCustomFiltering = true;\n _this.dataUpdater(dataSource, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n _this.isFilterPrevented = eventArgs.cancel;\n if (!eventArgs.cancel) {\n if (!_this.isFiltered && !eventArgs.preventDefaultAction) {\n _this.filterAction = true;\n _this.isFilteringAction = true;\n if (_this.dataSource instanceof DataManager && _this.allowCustomValue) {\n _this.isCustomRendered = false;\n }\n _this.dataUpdater(_this.dataSource, null, _this.fields);\n _this.isFilteringAction = false;\n }\n }\n });\n } else if (this.allowCustomValue) {\n var query = new Query();\n query = this.allowFiltering && text !== '' ? query.where(this.fields.text, 'startswith', text, this.ignoreCase, this.ignoreAccent) : query;\n if (this.enableVirtualization) {\n this.dataUpdater(this.dataSource, query, this.fields);\n } else {\n this.dataUpdater(this.mainData, query, this.fields);\n }\n this.UpdateSkeleton();\n } else {\n var liCollections = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-hide-listitem)');\n var type = this.typeOfData(this.listData).typeof;\n var activeElement = Search(this.targetElement(), liCollections, 'StartsWith', this.ignoreCase);\n if (this.enableVirtualization && this.targetElement().trim() !== '' && !this.allowFiltering) {\n var updatingincrementalindex = false;\n if (this.viewPortInfo.endIndex >= this.incrementalEndIndex && this.incrementalEndIndex <= this.totalItemCount || this.incrementalEndIndex === 0) {\n updatingincrementalindex = true;\n this.incrementalStartIndex = 0;\n this.incrementalEndIndex = 100 > this.totalItemCount ? this.totalItemCount : 100;\n this.updateIncrementalInfo(this.incrementalStartIndex, this.incrementalEndIndex);\n updatingincrementalindex = false;\n }\n if (this.viewPortInfo.startIndex !== 0 || updatingincrementalindex) {\n this.updateIncrementalView(0, this.itemCount);\n }\n activeElement = Search(this.targetElement(), this.incrementalLiCollections, this.filterType, true, this.listData, this.fields, type);\n while (isNullOrUndefined(activeElement) && this.incrementalEndIndex < this.totalItemCount) {\n this.incrementalStartIndex = this.incrementalEndIndex;\n this.incrementalEndIndex = this.incrementalEndIndex + 100 > this.totalItemCount ? this.totalItemCount : this.incrementalEndIndex + 100;\n this.updateIncrementalInfo(this.incrementalStartIndex, this.incrementalEndIndex);\n updatingincrementalindex = true;\n if (this.viewPortInfo.startIndex !== 0 || updatingincrementalindex) {\n this.updateIncrementalView(0, this.itemCount);\n }\n activeElement = Search(this.targetElement(), this.incrementalLiCollections, this.filterType, true, this.listData, this.fields, type);\n if (!isNullOrUndefined(activeElement)) {\n break;\n }\n if (isNullOrUndefined(activeElement) && this.incrementalEndIndex >= this.totalItemCount) {\n this.incrementalStartIndex = 0;\n this.incrementalEndIndex = 100 > this.totalItemCount ? this.totalItemCount : 100;\n break;\n }\n }\n if (activeElement.index) {\n if (!(this.viewPortInfo.startIndex >= activeElement.index) || !(activeElement.index >= this.viewPortInfo.endIndex)) {\n var startIndex = activeElement.index - (this.itemCount / 2 - 2) > 0 ? activeElement.index - (this.itemCount / 2 - 2) : 0;\n var endIndex = startIndex + this.itemCount > this.totalItemCount ? this.totalItemCount : startIndex + this.itemCount;\n if (startIndex !== this.viewPortInfo.startIndex) {\n this.updateIncrementalView(startIndex, endIndex);\n }\n }\n }\n if (!isNullOrUndefined(activeElement.item)) {\n var index1 = this.getIndexByValue(activeElement.item.getAttribute('data-value')) - this.skeletonCount;\n if (index1 > this.itemCount / 2) {\n var startIndex = this.viewPortInfo.startIndex + (this.itemCount / 2 - 2) < this.totalItemCount ? this.viewPortInfo.startIndex + (this.itemCount / 2 - 2) : this.totalItemCount;\n var endIndex = this.viewPortInfo.startIndex + this.itemCount > this.totalItemCount ? this.totalItemCount : this.viewPortInfo.startIndex + this.itemCount;\n this.updateIncrementalView(startIndex, endIndex);\n }\n activeElement.item = this.getElementByValue(activeElement.item.getAttribute('data-value'));\n } else {\n this.updateIncrementalView(0, this.itemCount);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n this.list.scrollTop = 0;\n }\n if (activeElement && activeElement.item) {\n activeElement.item = this.getElementByValue(activeElement.item.getAttribute('data-value'));\n }\n }\n if (activeElement && activeElement.item) {\n this.addListFocus(activeElement.item);\n this.list.scrollTop = activeElement.item.offsetHeight * activeElement.index;\n } else if (this.targetElement() !== '') {\n this.removeFocus();\n } else {\n this.focusAtFirstListItem();\n }\n }\n }\n if (this.enableVirtualization && this.allowFiltering) {\n this.getFilteringSkeletonCount();\n }\n };\n MultiSelect.prototype.preRender = function () {\n if (this.allowFiltering === null) {\n this.allowFiltering = this.mode === 'CheckBox' ? true : false;\n }\n this.preventSetCurrentData = false;\n this.initializeData();\n this.updateDataAttribute(this.htmlAttributes);\n _super.prototype.preRender.call(this);\n };\n MultiSelect.prototype.getLocaleName = function () {\n return 'multi-select';\n };\n MultiSelect.prototype.initializeData = function () {\n this.mainListCollection = [];\n this.beforePopupOpen = false;\n this.filterAction = false;\n this.remoteFilterAction = false;\n this.isFirstClick = false;\n this.mobFilter = true;\n this.isFiltered = false;\n this.focused = true;\n this.initial = true;\n this.backCommand = true;\n this.isCustomRendered = false;\n this.isRemoteSelection = false;\n this.isSelectAllTarget = true;\n this.isaddNonPresentItems = false;\n this.viewPortInfo = {\n currentPageNumber: null,\n direction: null,\n sentinelInfo: {},\n offsets: {},\n startIndex: 0,\n endIndex: this.itemCount\n };\n };\n MultiSelect.prototype.updateData = function (delimiterChar, e, isInitialVirtualData) {\n var data = '';\n var delim = this.mode === 'Delimiter' || this.mode === 'CheckBox';\n var text = [];\n var temp;\n var tempData = this.listData;\n if (!this.enableVirtualization) {\n this.listData = this.mainData;\n }\n if (!isNullOrUndefined(this.hiddenElement) && !this.enableVirtualization) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.value)) {\n var valueLength = this.value.length;\n var hiddenElementContent = '';\n var _loop_2 = function (index) {\n var valueItem = this_1.allowObjectBinding ? getValue(this_1.fields.value ? this_1.fields.value : '', this_1.value[index]) : this_1.value[index];\n var listValue = this_1.findListElement(!isNullOrUndefined(this_1.mainList) ? this_1.mainList : this_1.ulElement, 'li', 'data-value', valueItem);\n if (this_1.enableVirtualization) {\n listValue = this_1.findListElement(!isNullOrUndefined(this_1.list) ? this_1.list : this_1.ulElement, 'li', 'data-value', valueItem);\n }\n if (isNullOrUndefined(listValue) && !this_1.allowCustomValue && !this_1.enableVirtualization && this_1.listData && this_1.listData.length > 0) {\n this_1.value.splice(index, 1);\n index -= 1;\n valueLength -= 1;\n } else {\n if (this_1.listData) {\n if (this_1.enableVirtualization) {\n if (delim && !this_1.isDynamicRemoteVirtualData) {\n data = this_1.delimiterWrapper && this_1.delimiterWrapper.innerHTML === '' ? data : this_1.delimiterWrapper.innerHTML;\n }\n var value = this_1.allowObjectBinding ? getValue(this_1.fields.value ? this_1.fields.value : '', this_1.value[this_1.value.length - 1]) : this_1.value[this_1.value.length - 1];\n if (this_1.isRemoveSelection) {\n data = this_1.text.replace(/,/g, delimiterChar + ' ') + delimiterChar + ' ';\n text = this_1.text.split(delimiterChar);\n } else {\n temp = isInitialVirtualData && delim ? this_1.text : this_1.getTextByValue(value);\n var textValues = this_1.isDynamicRemoteVirtualData && value != null && value !== '' && !isInitialVirtualData ? this_1.getTextByValue(value) : isInitialVirtualData ? this_1.text : this_1.text && this_1.text !== '' ? this_1.text + this_1.delimiterChar + temp : temp;\n data += temp + delimiterChar + ' ';\n text.push(textValues);\n hiddenElementContent = this_1.hiddenElement.innerHTML;\n }\n if (e && e.currentTarget && e.currentTarget.classList.contains('e-chips-close') || e && e.key === 'Backspace') {\n var item_1 = e.target.parentElement.getAttribute('data-value');\n if (e.key === 'Backspace') {\n var lastChild = this_1.hiddenElement.lastChild;\n if (lastChild) {\n this_1.hiddenElement.removeChild(lastChild);\n }\n } else {\n this_1.hiddenElement.childNodes.forEach(function (option) {\n if (option.value === item_1) {\n option.parentNode.removeChild(option);\n }\n });\n }\n hiddenElementContent = this_1.hiddenElement.innerHTML;\n } else {\n hiddenElementContent += '<option selected value=\\'' + value + '\\'>' + index + '</option>';\n }\n return out_index_1 = index, \"break\";\n } else {\n temp = this_1.getTextByValue(valueItem);\n }\n } else {\n temp = valueItem;\n }\n data += temp + delimiterChar + ' ';\n text.push(temp);\n }\n hiddenElementContent += \"<option selected value=\\\"\" + valueItem + \"\\\">\" + index + \"</option>\";\n out_index_1 = index;\n };\n var this_1 = this,\n out_index_1;\n for (var index = 0; index < valueLength; index++) {\n var state_2 = _loop_2(index);\n index = out_index_1;\n if (state_2 === \"break\") break;\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n if (this.isRemoveSelection) {\n if (this.findListElement(this.hiddenElement, 'option', 'value', this.currentRemoveValue)) {\n this.hiddenElement.removeChild(this.findListElement(this.hiddenElement, 'option', 'value', this.currentRemoveValue));\n }\n this.isRemoveSelection = false;\n } else {\n this.hiddenElement.innerHTML = hiddenElementContent;\n }\n }\n }\n var isChipRemove = e && e.target && e.target.classList.contains('e-chips-close');\n if (!this.enableVirtualization || this.enableVirtualization && this.mode !== 'CheckBox' && !isChipRemove) {\n this.setProperties({\n text: text.toString()\n }, true);\n }\n if (delim) {\n this.updateWrapperText(this.delimiterWrapper, data);\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\n }\n var targetEle = e && e.target;\n var isClearAll = targetEle && targetEle.classList.contains('e-close-hooker') ? true : null;\n if (!this.changeOnBlur && e && !isClearAll || this.isSelectAll) {\n this.isSelectAll = false;\n this.updateValueState(e, this.value, this.tempValues);\n }\n this.listData = tempData;\n this.addValidInputClass();\n };\n MultiSelect.prototype.initialTextUpdate = function () {\n if (!isNullOrUndefined(this.text)) {\n var textArr = this.text.split(this.delimiterChar);\n var textVal = [];\n for (var index = 0; textArr.length > index; index++) {\n var val = this.getValueByText(textArr[index]);\n if (!isNullOrUndefined(val)) {\n textVal.push(val);\n } else if (this.allowCustomValue) {\n textVal.push(textArr[index]);\n }\n }\n if (textVal && textVal.length) {\n var value = this.allowObjectBinding ? this.getDataByValue(textVal) : textVal;\n this.setProperties({\n value: value\n }, true);\n }\n } else {\n this.setProperties({\n value: null\n }, true);\n }\n };\n MultiSelect.prototype.renderList = function (isEmptyData) {\n if (!isEmptyData && this.allowCustomValue && this.list && (this.list.textContent === this.noRecordsTemplate || this.list.querySelector('.e-ul') && this.list.querySelector('.e-ul').childElementCount === 0)) {\n isEmptyData = true;\n }\n _super.prototype.render.call(this, null, isEmptyData);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n this.unwireListEvents();\n this.wireListEvents();\n };\n MultiSelect.prototype.initialValueUpdate = function (listItems, isInitialVirtualData) {\n if (this.list) {\n var text = void 0;\n var element = void 0;\n var value = void 0;\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.innerHTML = '';\n }\n this.removeListSelection();\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n element = this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n var isCustomData = false;\n if (this.enableVirtualization) {\n text = null;\n if (listItems != null && listItems.length > 0) {\n for (var i = 0; i < listItems.length; i++) {\n if (this.isPrimitiveData && listItems[i] === value || !this.isPrimitiveData && getValue(this.fields.value ? this.fields.value : 'value', listItems[i]) === value) {\n text = this.isPrimitiveData ? listItems[i] : getValue(this.fields.text, listItems[i]);\n if (this.enableVirtualization) {\n if (isNullOrUndefined(this.selectedListData)) {\n this.selectedListData = [listItems[i]];\n } else {\n if (Array.isArray(this.selectedListData)) {\n this.selectedListData.push(listItems[i]);\n } else {\n this.selectedListData = [this.selectedListData, listItems[i]];\n }\n }\n }\n break;\n }\n }\n }\n if (isNullOrUndefined(text) && this.allowCustomValue && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && isInitialVirtualData)) {\n text = this.getTextByValue(value);\n isCustomData = true;\n }\n } else {\n text = this.getTextByValue(value);\n }\n if (element && element.getAttribute('aria-selected') !== 'true' || element && element.getAttribute('aria-selected') === 'true' && this.hideSelectedItem && (this.mode === 'Box' || this.mode === 'Default') || this.enableVirtualization && value != null && text != null && !isCustomData) {\n var currentText = [];\n var textValues = this.isDynamicRemoteVirtualData && text != null && text !== '' && index === 0 ? text : this.text != null && this.text !== '' && !this.text.includes(text) ? this.text + this.delimiterChar + text : text;\n currentText.push(textValues);\n this.setProperties({\n text: currentText.toString()\n }, true);\n this.addChip(text, value);\n this.addListSelection(element);\n } else if (!this.enableVirtualization && value && this.allowCustomValue || this.enableVirtualization && value && this.allowCustomValue && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && isInitialVirtualData)) {\n var indexItem = this.listData.length;\n var newValue = {};\n setValue(this.fields.text, value, newValue);\n setValue(this.fields.value, value, newValue);\n var noDataEle = this.popupWrapper.querySelector('.' + dropDownBaseClasses.noData);\n if (!this.enableVirtualization) {\n this.addItem(newValue, indexItem);\n }\n if (this.enableVirtualization) {\n if (this.virtualCustomSelectData && this.virtualCustomSelectData.length >= 0) {\n this.virtualCustomSelectData.push(newValue);\n } else {\n this.virtualCustomSelectData = [newValue];\n }\n }\n element = element ? element : this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n if (this.popupWrapper.contains(noDataEle)) {\n this.list.setAttribute('style', noDataEle.getAttribute('style'));\n this.popupWrapper.replaceChild(this.list, noDataEle);\n this.wireListEvents();\n }\n var currentText = [];\n var textValues = this.text != null && this.text !== '' ? this.text + this.delimiterChar + text : text;\n currentText.push(textValues);\n this.setProperties({\n text: currentText.toString()\n }, true);\n this.addChip(text, value);\n this.addListSelection(element);\n }\n }\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (this.changeOnBlur) {\n this.updateValueState(null, this.value, this.tempValues);\n }\n this.updateDelimeter(this.delimiterChar);\n this.refreshInputHight();\n } else {\n this.updateDelimeter(this.delimiterChar, null, isInitialVirtualData);\n }\n if (this.mode === 'CheckBox' && this.showSelectAll && (isNullOrUndefined(this.value) || !this.value.length)) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n if (this.mode === 'Box' || this.mode === 'Default' && this.inputFocus) {\n this.chipCollectionWrapper.style.display = '';\n } else if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.showDelimWrapper();\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateActionCompleteData = function (li, item) {\n if (this.value && (!this.allowObjectBinding && this.value.indexOf(li.getAttribute('data-value')) > -1 || this.allowObjectBinding && this.isObjectInArray(this.getDataByValue(li.getAttribute('data-value')), this.value))) {\n this.mainList = this.ulElement;\n if (this.hideSelectedItem) {\n addClass([li], HIDE_LIST);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateAddItemList = function (list, itemCount) {\n if (this.popupObj && this.popupObj.element && this.popupObj.element.querySelector('.' + dropDownBaseClasses.noData) && list) {\n this.list = list;\n this.mainList = this.ulElement = list.querySelector('ul');\n remove(this.popupWrapper.querySelector('.e-content'));\n this.popupObj = null;\n this.renderPopup();\n } else if (this.allowCustomValue) {\n this.list = list;\n this.mainList = this.ulElement = list.querySelector('ul');\n }\n };\n MultiSelect.prototype.updateDataList = function () {\n if (this.mainList && this.ulElement && !(this.isFiltered || this.filterAction || this.targetElement().trim())) {\n var isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;\n var isReactTemplateUpdate = this.ulElement.childElementCount > 0 && this.ulElement.children[0].childElementCount > 0 && this.mainList.children[0] && this.mainList.children[0].childElementCount < this.ulElement.children[0].childElementCount;\n var isAngularTemplateUpdate = this.itemTemplate && this.ulElement.childElementCount > 0 && !(this.ulElement.childElementCount < this.mainList.childElementCount) && (this.ulElement.children[0].childElementCount > 0 || this.fields.groupBy && this.ulElement.children[1] && this.ulElement.children[1].childElementCount > 0);\n if (isDynamicGroupItemUpdate || isReactTemplateUpdate || isAngularTemplateUpdate) {\n //EJ2-57748 - for this task, we prevent the ul element cloning ( this.mainList = this.ulElement.cloneNode ? <HTMLElement>this.ulElement.cloneNode(true) : this.ulElement;)\n this.mainList = this.ulElement;\n }\n }\n };\n MultiSelect.prototype.isValidLI = function (li) {\n return li && !li.classList.contains(dropDownBaseClasses.disabled) && !li.classList.contains(dropDownBaseClasses.group) && li.classList.contains(dropDownBaseClasses.li);\n };\n MultiSelect.prototype.updateListSelection = function (li, e, length) {\n var customVal = li.getAttribute('data-value');\n var value = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(customVal)) : this.getFormattedValue(customVal);\n if (this.allowCustomValue && (customVal !== 'false' && value === false || !isNullOrUndefined(value) && value.toString() === 'NaN')) {\n value = customVal;\n }\n this.removeHover();\n if (!this.value || !this.allowObjectBinding && this.value.indexOf(value) === -1 || this.allowObjectBinding && this.indexOfObjectInArray(value, this.value) === -1) {\n this.dispatchSelect(value, e, li, li.getAttribute('aria-selected') === 'true', length);\n } else {\n this.removeValue(value, e, length);\n }\n };\n MultiSelect.prototype.updateListSelectEventCallback = function (value, li, e, currentText) {\n var _this = this;\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n var text = currentText ? currentText : this.getTextByValue(value);\n if ((this.allowCustomValue || this.allowFiltering) && !this.findListElement(this.mainList, 'li', 'data-value', value) && (!this.enableVirtualization || this.enableVirtualization && this.virtualCustomData)) {\n var temp_1 = li ? li.cloneNode(true) : li;\n var fieldValue = this.fields.value ? this.fields.value : 'value';\n if (this.allowCustomValue && this.mainData.length && typeof getValue(fieldValue, this.mainData[0]) === 'number') {\n value = !isNaN(parseFloat(value.toString())) ? parseFloat(value.toString()) : value;\n }\n var data_1 = this.getDataByValue(value);\n var eventArgs = {\n newData: data_1,\n cancel: false\n };\n this.trigger('customValueSelection', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (_this.enableVirtualization && _this.virtualCustomData) {\n if (_this.virtualCustomSelectData && _this.virtualCustomSelectData.length >= 0) {\n _this.virtualCustomSelectData.push(data_1);\n } else {\n _this.virtualCustomSelectData = [data_1];\n }\n _this.remoteCustomValue = false;\n _this.addValue(value, text, e);\n } else {\n append([temp_1], _this.mainList);\n _this.mainData.push(data_1);\n _this.remoteCustomValue = false;\n _this.addValue(value, text, e);\n }\n }\n });\n } else {\n this.remoteCustomValue = false;\n this.addValue(value, text, e);\n }\n };\n MultiSelect.prototype.removeListSelection = function () {\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n var selectedItems = this.list.querySelectorAll('.' + className);\n var temp = selectedItems.length;\n if (selectedItems && selectedItems.length) {\n removeClass(selectedItems, className);\n while (temp > 0) {\n selectedItems[temp - 1].setAttribute('aria-selected', 'false');\n temp--;\n }\n }\n if (!isNullOrUndefined(this.mainList)) {\n var selectItems = this.mainList.querySelectorAll('.' + className);\n var temp1 = selectItems.length;\n if (selectItems && selectItems.length) {\n removeClass(selectItems, className);\n while (temp1 > 0) {\n selectItems[temp1 - 1].setAttribute('aria-selected', 'false');\n if (this.mode === 'CheckBox') {\n if (selectedItems && selectedItems.length > temp1 - 1) {\n removeClass([selectedItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\n }\n removeClass([selectItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\n }\n temp1--;\n }\n }\n }\n };\n MultiSelect.prototype.removeHover = function () {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n };\n MultiSelect.prototype.removeFocus = function () {\n if (this.list && this.mainList) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.focus);\n var mainlist = this.mainList.querySelectorAll('.' + dropDownBaseClasses.focus);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.focus);\n removeClass(mainlist, dropDownBaseClasses.focus);\n }\n }\n };\n MultiSelect.prototype.addListHover = function (li) {\n if (this.enabled && this.isValidLI(li)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n } else {\n if (li !== null && li.classList.contains('e-list-group-item') && this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n }\n };\n MultiSelect.prototype.addListFocus = function (element) {\n if (this.enabled && (this.isValidLI(element) || this.fields.disabled && this.isDisabledElement(element))) {\n this.removeFocus();\n addClass([element], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n } else {\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n addClass([element], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n }\n }\n };\n MultiSelect.prototype.addListSelection = function (element, mainElement) {\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n if (this.isValidLI(element) && !element.classList.contains(dropDownBaseClasses.hover)) {\n addClass([element], className);\n this.updateMainList(false, element.getAttribute('data-value'), mainElement);\n element.setAttribute('aria-selected', 'true');\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\n var ariaCheck = element.getElementsByClassName('e-check').length;\n if (ariaCheck === 0) {\n this.notify('updatelist', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: this\n });\n }\n }\n this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: this\n });\n if (this.chipCollectionWrapper) {\n this.removeChipSelection();\n }\n this.selectedElementID = element.id;\n }\n };\n MultiSelect.prototype.updateDelimeter = function (delimChar, e, isInitialVirtualData) {\n this.updateData(delimChar, e, isInitialVirtualData);\n };\n MultiSelect.prototype.onMouseClick = function (e) {\n var _this = this;\n if (!this.isClearAllItem) {\n this.keyCode = null;\n this.scrollFocusStatus = false;\n this.keyboardEvent = null;\n var target = e.target;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n if (this.enableVirtualization && li && li.classList.contains('e-virtual-list')) {\n return;\n }\n var headerLi = closest(target, '.' + dropDownBaseClasses.group);\n if (headerLi && this.enableGroupCheckBox && this.mode === 'CheckBox' && this.fields.groupBy) {\n target = target.classList.contains('e-list-group-item') ? target.firstElementChild.lastElementChild : e.target;\n if (target.classList.contains('e-check')) {\n this.selectAllItem(false, e);\n target.classList.remove('e-check');\n target.classList.remove('e-stop');\n closest(target, '.' + 'e-list-group-item').classList.remove('e-active');\n target.setAttribute('aria-selected', 'false');\n } else {\n this.selectAllItem(true, e);\n target.classList.remove('e-stop');\n target.classList.add('e-check');\n closest(target, '.' + 'e-list-group-item').classList.add('e-active');\n target.setAttribute('aria-selected', 'true');\n }\n this.refreshSelection();\n this.checkSelectAll();\n } else {\n if (this.isValidLI(li)) {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (li.classList.contains('e-active')) {\n limit = limit - 1;\n }\n if (limit < this.maximumSelectionLength) {\n this.updateListSelection(li, e);\n this.checkPlaceholderSize();\n this.addListFocus(li);\n if ((this.allowCustomValue || this.allowFiltering) && this.mainList && this.listData) {\n if (this.mode !== 'CheckBox') {\n this.focusAtLastListItem(li.getAttribute('data-value'));\n this.refreshSelection();\n }\n } else {\n this.makeTextBoxEmpty();\n }\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (this.value && this.value.length > 50) {\n setTimeout(function () {\n _this.updateDelimeter(_this.delimiterChar, e);\n }, 0);\n } else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.refreshInputHight();\n } else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.checkSelectAll();\n this.refreshPopup();\n if (this.allowResize) {\n this.setResize();\n }\n if (this.hideSelectedItem) {\n this.focusAtFirstListItem();\n }\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n } else {\n e.preventDefault();\n }\n var isFilterData = this.targetElement().trim() !== '' ? true : false;\n this.makeTextBoxEmpty();\n this.findGroupStart(target);\n if (this.mode !== 'CheckBox') {\n this.refreshListItems(isNullOrUndefined(li) ? null : li.textContent, isFilterData);\n }\n } else {\n e.preventDefault();\n }\n if (this.enableVirtualization && this.hideSelectedItem) {\n var visibleListElements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list)');\n if (visibleListElements.length) {\n var actualCount = this.virtualListHeight > 0 ? Math.floor(this.virtualListHeight / this.listItemHeight) : 0;\n if (visibleListElements.length < actualCount + 2) {\n var query = this.getForQuery(this.value).clone();\n query = query.skip(this.virtualItemStartIndex);\n this.resetList(this.dataSource, this.fields, query);\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.virtualItemCount = this.itemCount;\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl'\n });\n virualElement.style.cssText = this.GetVirtualTrackHeight();\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n }\n if (this.list.querySelector('.e-virtual-ddl-content')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n }\n }\n }\n this.refreshPlaceHolder();\n this.deselectHeader();\n }\n }\n };\n MultiSelect.prototype.findGroupStart = function (target) {\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n var count = 0;\n var liChecked = 0;\n var liUnchecked = 0;\n var groupValues = void 0;\n if (this.itemTemplate && !target.getElementsByClassName('e-frame').length) {\n while (!target.getElementsByClassName('e-frame').length) {\n target = target.parentElement;\n }\n }\n if (target.classList.contains('e-frame')) {\n target = target.parentElement.parentElement;\n }\n groupValues = this.findGroupAttrtibutes(target, liChecked, liUnchecked, count, 0);\n groupValues = this.findGroupAttrtibutes(target, groupValues[0], groupValues[1], groupValues[2], 1);\n while (!target.classList.contains('e-list-group-item')) {\n if (target.classList.contains('e-list-icon')) {\n target = target.parentElement;\n }\n target = target.previousElementSibling;\n if (target == null) {\n break;\n }\n }\n this.updateCheckBox(target, groupValues[0], groupValues[1], groupValues[2]);\n }\n };\n MultiSelect.prototype.findGroupAttrtibutes = function (listElement, checked, unChecked, count, position) {\n while (!listElement.classList.contains('e-list-group-item')) {\n if (!(this.fields.disabled && this.isDisabledElement(listElement))) {\n if (listElement.classList.contains('e-list-icon')) {\n listElement = listElement.parentElement;\n }\n if (listElement.getElementsByClassName('e-frame')[0].classList.contains('e-check') && listElement.classList.contains('e-list-item')) {\n checked++;\n } else if (listElement.classList.contains('e-list-item')) {\n unChecked++;\n }\n count++;\n }\n listElement = position ? listElement.nextElementSibling : listElement.previousElementSibling;\n if (listElement == null) {\n break;\n }\n }\n return [checked, unChecked, count];\n };\n MultiSelect.prototype.updateCheckBox = function (groupHeader, checked, unChecked, count) {\n if (groupHeader === null || !isNullOrUndefined(this.fields.disabled) && count === 0) {\n return;\n }\n var checkBoxElement = groupHeader.getElementsByClassName('e-frame')[0];\n if (count === checked) {\n checkBoxElement.classList.remove('e-stop');\n checkBoxElement.classList.add('e-check');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n groupHeader.setAttribute('aria-selected', 'true');\n } else if (count === unChecked) {\n checkBoxElement.classList.remove('e-check');\n checkBoxElement.classList.remove('e-stop');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.remove('e-active');\n groupHeader.setAttribute('aria-selected', 'false');\n } else if (this.maximumSelectionLength === checked - 1) {\n checkBoxElement.classList.remove('e-stop');\n groupHeader.setAttribute('aria-selected', 'true');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n checkBoxElement.classList.add('e-check');\n } else {\n checkBoxElement.classList.remove('e-check');\n checkBoxElement.classList.add('e-stop');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n groupHeader.setAttribute('aria-selected', 'false');\n }\n };\n MultiSelect.prototype.disableGroupHeader = function () {\n var collection = this.list.querySelectorAll('li.e-list-group-item');\n if (collection) {\n for (var index = 0; index < collection.length; index++) {\n var isDisabled = true;\n var target = collection[index].nextElementSibling;\n while (!target.classList.contains('e-list-group-item')) {\n if (!this.isDisabledElement(target)) {\n isDisabled = false;\n break;\n }\n target = target.nextElementSibling;\n if (target == null) {\n break;\n }\n }\n if (isDisabled) {\n this.disableListItem(collection[index]);\n }\n }\n }\n };\n MultiSelect.prototype.deselectHeader = function () {\n var limit = this.value && this.value.length ? this.value.length : 0;\n var collection = this.list.querySelectorAll('li.e-list-group-item:not(.e-active)');\n if (limit < this.maximumSelectionLength) {\n removeClass(collection, 'e-disable');\n }\n if (limit === this.maximumSelectionLength) {\n addClass(collection, 'e-disable');\n }\n };\n MultiSelect.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n if (currentLi === null && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy) && this.enableGroupCheckBox) {\n currentLi = closest(e.target, '.' + dropDownBaseClasses.group);\n }\n this.addListHover(currentLi);\n };\n MultiSelect.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n MultiSelect.prototype.onListMouseDown = function (e) {\n e.preventDefault();\n this.scrollFocusStatus = true;\n };\n MultiSelect.prototype.onDocumentClick = function (e) {\n if (this.mode !== 'CheckBox') {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) && !this.overAllWrapper.contains(e.target)) {\n this.scrollFocusStatus = false;\n } else {\n this.scrollFocusStatus = (Browser.isIE || Browser.info.name === 'edge') && document.activeElement === this.inputElement;\n }\n }\n };\n MultiSelect.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.list, 'mousedown', this.onListMouseDown, this);\n EventHandler.add(this.list, 'mouseup', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n MultiSelect.prototype.unwireListEvents = function () {\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n if (this.list) {\n EventHandler.remove(this.list, 'mousedown', this.onListMouseDown);\n EventHandler.remove(this.list, 'mouseup', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n MultiSelect.prototype.hideOverAllClear = function () {\n if (!this.value || !this.value.length || this.inputElement.value === '') {\n this.overAllClear.style.display = 'none';\n }\n };\n MultiSelect.prototype.showOverAllClear = function () {\n if ((this.value && this.value.length || this.inputElement.value !== '') && this.showClearButton && this.readonly !== true) {\n this.overAllClear.style.display = '';\n } else {\n this.overAllClear.style.display = 'none';\n }\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n MultiSelect.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n MultiSelect.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement && this.enabled) {\n this.inputElement.blur();\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n MultiSelect.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n var filterClear = this.filterParent && this.filterParent.querySelector('.e-clear-icon.e-icons');\n if (this.overAllClear.style.display !== 'none' || filterClear) {\n this.spinnerElement = filterClear ? filterClear : this.overAllClear;\n } else {\n this.spinnerElement = this.createElement('span', {\n className: CLOSEICON_CLASS + ' ' + SPINNER_CLASS\n });\n this.componentWrapper.appendChild(this.spinnerElement);\n }\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n addClass([this.spinnerElement], DISABLE_ICON);\n showSpinner(this.spinnerElement);\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n MultiSelect.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], DISABLE_ICON);\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\n detach(this.spinnerElement);\n } else {\n this.spinnerElement.innerHTML = '';\n }\n this.spinnerElement = null;\n }\n };\n MultiSelect.prototype.updateWrapperText = function (wrapperType, wrapperData) {\n if (this.valueTemplate || !this.enableHtmlSanitizer) {\n wrapperType.innerHTML = this.encodeHtmlEntities(wrapperData);\n } else {\n wrapperType.innerText = wrapperData;\n }\n };\n MultiSelect.prototype.updateDelimView = function () {\n if (this.delimiterWrapper) {\n this.hideDelimWrapper();\n }\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(this.viewWrapper)) {\n this.viewWrapper.style.display = '';\n this.viewWrapper.style.width = '';\n this.viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\n }\n if (this.value && this.value.length) {\n var data = '';\n var temp = void 0;\n var tempData = void 0;\n var tempIndex = 1;\n var wrapperleng = void 0;\n var remaining = void 0;\n var downIconWidth = 0;\n var overAllContainer = void 0;\n if (!this.enableVirtualization) {\n this.updateWrapperText(this.viewWrapper, data);\n }\n var l10nLocale = {\n noRecordsTemplate: 'No records found',\n actionFailureTemplate: 'Request failed',\n overflowCountTemplate: '+${count} more..',\n totalCountTemplate: '${count} selected'\n };\n var l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);\n if (l10n.getConstant('actionFailureTemplate') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\n }\n if (l10n.getConstant('noRecordsTemplate') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\n }\n var remainContent = l10n.getConstant('overflowCountTemplate');\n var totalContent = l10n.getConstant('totalCountTemplate');\n var raminElement = this.createElement('span', {\n className: REMAIN_WRAPPER\n });\n var remainCompildTemp = remainContent.replace('${count}', this.value.length.toString());\n raminElement.innerText = remainCompildTemp;\n this.viewWrapper.appendChild(raminElement);\n this.renderReactTemplates();\n var remainSize = raminElement.offsetWidth;\n remove(raminElement);\n if (this.showDropDownIcon) {\n downIconWidth = this.dropIcon.offsetWidth + parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\n }\n this.checkClearIconWidth();\n if (!isNullOrUndefined(this.value) && (this.allowCustomValue || this.listData && this.listData.length > 0)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n var items = this.text && this.text.split(this.delimiterChar);\n if (!this.enableVirtualization) {\n data += index === 0 ? '' : this.delimiterChar + ' ';\n temp = this.getOverflowVal(index);\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n } else if (items) {\n data += index === 0 ? '' : this.delimiterChar + ' ';\n temp = items[index];\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n }\n wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n overAllContainer = this.componentWrapper.offsetWidth - parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) - parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\n if (wrapperleng + downIconWidth + this.clearIconWidth > overAllContainer) {\n if (tempData !== undefined && tempData !== '') {\n temp = tempData;\n index = tempIndex + 1;\n }\n this.updateWrapperText(this.viewWrapper, temp);\n remaining = this.value.length - index;\n wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n while (wrapperleng + remainSize + downIconWidth + this.clearIconWidth > overAllContainer && wrapperleng !== 0 && this.viewWrapper.innerHTML !== '') {\n var textArr = [];\n this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);\n remaining = this.value.length;\n wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n }\n break;\n } else if (wrapperleng + remainSize + downIconWidth + this.clearIconWidth <= overAllContainer) {\n tempData = data;\n tempIndex = index;\n } else if (index === 0) {\n tempData = '';\n tempIndex = -1;\n }\n }\n }\n if (remaining > 0) {\n var totalWidth = overAllContainer - downIconWidth - this.clearIconWidth;\n this.viewWrapper.appendChild(this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth));\n this.updateRemainWidth(this.viewWrapper, totalWidth);\n this.updateRemainingText(raminElement, downIconWidth, remaining, remainContent, totalContent);\n }\n } else {\n if (!isNullOrUndefined(this.viewWrapper)) {\n this.viewWrapper.innerHTML = '';\n this.viewWrapper.style.display = 'none';\n }\n }\n };\n MultiSelect.prototype.checkClearIconWidth = function () {\n if (this.showClearButton) {\n this.clearIconWidth = this.overAllClear.offsetWidth;\n }\n };\n MultiSelect.prototype.updateRemainWidth = function (viewWrapper, totalWidth) {\n if (viewWrapper.classList.contains(TOTAL_COUNT_WRAPPER) && totalWidth < viewWrapper.offsetWidth + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10) + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10)) {\n viewWrapper.style.width = totalWidth + 'px';\n }\n };\n MultiSelect.prototype.updateRemainTemplate = function (raminElement, viewWrapper, remaining, remainContent, totalContent, totalWidth) {\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3 && viewWrapper.firstChild.nodeValue === '') {\n viewWrapper.removeChild(viewWrapper.firstChild);\n }\n raminElement.innerHTML = '';\n var remainTemp = remainContent.replace('${count}', remaining.toString());\n var totalTemp = totalContent.replace('${count}', remaining.toString());\n raminElement.innerText = viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3 ? remainTemp : totalTemp;\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3) {\n viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\n } else {\n viewWrapper.classList.add(TOTAL_COUNT_WRAPPER);\n this.updateRemainWidth(viewWrapper, totalWidth);\n }\n return raminElement;\n };\n MultiSelect.prototype.updateRemainingText = function (raminElement, downIconWidth, remaining, remainContent, totalContent) {\n var overAllContainer = this.componentWrapper.offsetWidth - parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) - parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\n var wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n if (wrapperleng + downIconWidth >= overAllContainer && wrapperleng !== 0 && this.viewWrapper.firstChild && this.viewWrapper.firstChild.nodeType === 3) {\n while (wrapperleng + downIconWidth > overAllContainer && wrapperleng !== 0 && this.viewWrapper.firstChild && this.viewWrapper.firstChild.nodeType === 3) {\n var textArr = this.viewWrapper.firstChild.nodeValue.split(this.delimiterChar);\n textArr.pop();\n this.viewWrapper.firstChild.nodeValue = textArr.join(this.delimiterChar);\n if (this.viewWrapper.firstChild.nodeValue === '') {\n this.viewWrapper.removeChild(this.viewWrapper.firstChild);\n }\n remaining++;\n wrapperleng = this.viewWrapper.offsetWidth;\n }\n var totalWidth = overAllContainer - downIconWidth;\n this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth);\n }\n };\n MultiSelect.prototype.getOverflowVal = function (index) {\n var temp;\n if (this.mainData && this.mainData.length) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n if (this.mode === 'CheckBox') {\n var newTemp = this.listData;\n this.listData = this.mainData;\n temp = this.getTextByValue(value);\n this.listData = newTemp;\n } else {\n temp = this.getTextByValue(value);\n }\n } else {\n temp = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n }\n return temp;\n };\n MultiSelect.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.componentWrapper)) {\n EventHandler.remove(this.componentWrapper, 'mousedown', this.wrapperClick);\n }\n EventHandler.remove(window, 'resize', this.windowResize);\n if (!isNullOrUndefined(this.inputElement)) {\n EventHandler.remove(this.inputElement, 'focus', this.focusInHandler);\n EventHandler.remove(this.inputElement, 'keydown', this.onKeyDown);\n if (this.mode !== 'CheckBox') {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n }\n EventHandler.remove(this.inputElement, 'keyup', this.keyUp);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n EventHandler.remove(this.inputElement, 'blur', this.onBlurHandler);\n }\n if (!isNullOrUndefined(this.componentWrapper)) {\n EventHandler.remove(this.componentWrapper, 'mouseover', this.mouseIn);\n EventHandler.remove(this.componentWrapper, 'mouseout', this.mouseOut);\n }\n if (!isNullOrUndefined(this.overAllClear)) {\n EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);\n }\n if (!isNullOrUndefined(this.inputElement)) {\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\n }\n };\n MultiSelect.prototype.resizingWireEvent = function () {\n // Mouse events\n EventHandler.add(document, 'mousemove', this.resizePopup, this);\n EventHandler.add(document, 'mouseup', this.stopResizing, this);\n // Touch events\n EventHandler.add(document, 'touchmove', this.resizePopup, this);\n EventHandler.add(document, 'touchend', this.stopResizing, this);\n };\n MultiSelect.prototype.resizingUnWireEvent = function () {\n // Mouse events\n EventHandler.remove(document, 'mousemove', this.resizePopup);\n EventHandler.remove(document, 'mouseup', this.stopResizing);\n // Touch events\n EventHandler.remove(document, 'touchmove', this.resizePopup);\n EventHandler.remove(document, 'touchend', this.stopResizing);\n };\n MultiSelect.prototype.selectAllItem = function (state, event, list) {\n var li;\n if (!isNullOrUndefined(this.list)) {\n li = this.list.querySelectorAll(state ? 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)' : 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)');\n }\n if (this.value && this.value.length && event && event.target && closest(event.target, '.e-close-hooker') && this.allowFiltering) {\n li = this.mainList.querySelectorAll(state ? 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)' : 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)');\n }\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n var target = event ? this.groupTemplate ? closest(event.target, '.e-list-group-item') : event.target : null;\n target = event && event.keyCode === 32 ? list : target;\n target = target && target.classList.contains('e-frame') ? target.parentElement.parentElement : target;\n if (target && target.classList.contains('e-list-group-item')) {\n var listElement = target.nextElementSibling;\n if (isNullOrUndefined(listElement)) {\n return;\n }\n while (listElement.classList.contains('e-list-item')) {\n if (!(this.fields.disabled && this.isDisabledElement(listElement))) {\n if (state) {\n if (!listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\n var selectionLimit = this.value && this.value.length ? this.value.length : 0;\n if (listElement.classList.contains('e-active')) {\n selectionLimit -= 1;\n }\n if (selectionLimit < this.maximumSelectionLength) {\n this.updateListSelection(listElement, event);\n }\n }\n } else {\n if (listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\n this.updateListSelection(listElement, event);\n }\n }\n }\n listElement = listElement.nextElementSibling;\n if (listElement == null) {\n break;\n }\n }\n if (target.classList.contains('e-list-group-item')) {\n var focusedElement = this.list.getElementsByClassName('e-item-focus')[0];\n if (focusedElement) {\n focusedElement.classList.remove('e-item-focus');\n }\n if (state) {\n target.classList.add('e-active');\n } else {\n target.classList.remove('e-active');\n }\n target.classList.add('e-item-focus');\n this.updateAriaActiveDescendant();\n }\n this.textboxValueUpdate();\n this.checkPlaceholderSize();\n if (!this.changeOnBlur && event) {\n this.updateValueState(event, this.value, this.tempValues);\n }\n } else {\n this.updateValue(event, li, state);\n }\n } else {\n this.updateValue(event, li, state);\n }\n this.addValidInputClass();\n };\n MultiSelect.prototype.virtualSelectionAll = function (state, li, event) {\n var _this = this;\n var index = 0;\n var length = li.length;\n var count = this.maximumSelectionLength;\n if (state) {\n this.virtualSelectAll = true;\n length = this.virtualSelectAllData && this.virtualSelectAllData.length !== 0 ? this.virtualSelectAllData.length : length;\n this.listData = this.virtualSelectAllData;\n var ulElement = this.createListItems(this.virtualSelectAllData.slice(0, 30), this.fields);\n var firstItems = ulElement.querySelectorAll('li');\n var fragment_1 = document.createDocumentFragment();\n firstItems.forEach(function (node) {\n fragment_1.appendChild(node.cloneNode(true));\n });\n li.forEach(function (node) {\n fragment_1.appendChild(node.cloneNode(true));\n });\n var concatenatedNodeList = fragment_1.childNodes;\n if (this.virtualSelectAllData instanceof Array) {\n while (index < length && index <= 50 && index < count) {\n this.isSelectAllTarget = length === index + 1;\n if (concatenatedNodeList[index]) {\n var value = this.allowObjectBinding ? this.getDataByValue(concatenatedNodeList[index].getAttribute('data-value')) : this.getFormattedValue(concatenatedNodeList[index].getAttribute('data-value'));\n if (!this.allowObjectBinding && this.value && this.value.indexOf(value) >= 0 || this.allowObjectBinding && this.indexOfObjectInArray(value, this.value) >= 0) {\n index++;\n continue;\n }\n this.updateListSelection(concatenatedNodeList[index], event, length - index);\n } else {\n var value = getValue(this.fields.value ? this.fields.value : '', this.virtualSelectAllData[index]);\n value = this.allowObjectBinding ? this.getDataByValue(value) : value;\n if (!this.allowObjectBinding && this.value && this.value.indexOf(value) >= 0 || this.allowObjectBinding && this.indexOfObjectInArray(value, this.value) >= 0) {\n index++;\n continue;\n }\n if (this.value && value != null && Array.isArray(this.value) && (!this.allowObjectBinding && this.value.indexOf(value) < 0 || this.allowObjectBinding && !this.isObjectInArray(value, this.value))) {\n this.dispatchSelect(value, event, null, false, length);\n }\n }\n index++;\n }\n if (length > 50) {\n setTimeout(function () {\n if (_this.virtualSelectAllData && _this.virtualSelectAllData.length > 0) {\n _this.virtualSelectAllData.map(function (obj) {\n if (_this.value && obj[_this.fields.value] != null && Array.isArray(_this.value) && (!_this.allowObjectBinding && _this.value.indexOf(obj[_this.fields.value]) < 0 || _this.allowObjectBinding && !_this.isObjectInArray(obj[_this.fields.value], _this.value))) {\n var value = obj[_this.fields.value];\n var text = obj[_this.fields.text].toString();\n _this.dispatchSelect(value, event, null, false, length, obj, text);\n }\n });\n }\n _this.updatedataValueItems(event);\n _this.isSelectAllLoop = false;\n if (!_this.changeOnBlur) {\n _this.updateValueState(event, _this.value, _this.tempValues);\n _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;\n }\n _this.updateHiddenElement(true);\n if (_this.popupWrapper && li[index - 1] && li[index - 1].classList.contains('e-item-focus')) {\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n li[index - 1].classList.remove('e-item-focus');\n }\n }\n }, 0);\n }\n }\n } else {\n if (this.virtualSelectAllData && this.virtualSelectAllData.length > 0) {\n this.virtualSelectAllData.map(function (obj) {\n _this.virtualSelectAll = true;\n _this.removeValue(_this.value[index], event, _this.value.length - index);\n });\n }\n this.updatedataValueItems(event);\n if (!this.changeOnBlur) {\n this.updateValueState(event, this.value, this.tempValues);\n this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;\n }\n this.updateHiddenElement();\n this.setProperties({\n value: []\n }, true);\n this.virtualSelectAll = false;\n if (!isNullOrUndefined(this.viewPortInfo.startIndex) && !isNullOrUndefined(this.viewPortInfo.endIndex)) {\n this.notify('setCurrentViewDataAsync', {\n component: this.getModuleName(),\n module: 'VirtualScroll'\n });\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var virtualTrackElement = this.list.getElementsByClassName('e-virtual-ddl')[0];\n if (virtualTrackElement) {\n virtualTrackElement.style = this.GetVirtualTrackHeight();\n }\n this.UpdateSkeleton();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var virtualContentElement = this.list.getElementsByClassName('e-virtual-ddl-content')[0];\n if (virtualContentElement) {\n virtualContentElement.style = this.getTransformValues();\n }\n };\n MultiSelect.prototype.updateValue = function (event, li, state) {\n var _this = this;\n var length = li.length;\n var beforeSelectArgs = {\n event: event,\n items: state ? li : [],\n itemData: state ? this.listData : [],\n isInteracted: event ? true : false,\n isChecked: state,\n preventSelectEvent: false\n };\n this.trigger('beforeSelectAll', beforeSelectArgs);\n if (li && li.length || this.enableVirtualization && !state) {\n var index_1 = 0;\n var count_1 = 0;\n if (this.enableGroupCheckBox) {\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : li.length;\n } else {\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : this.maximumSelectionLength;\n }\n if (!beforeSelectArgs.preventSelectEvent) {\n if (this.enableVirtualization) {\n this.virtualSelectAllState = state;\n this.virtualSelectAll = true;\n this.CurrentEvent = event;\n if (!this.virtualSelectAllData) {\n this.resetList(this.dataSource, this.fields, new Query());\n }\n if (this.virtualSelectAllData) {\n this.virtualSelectionAll(state, li, event);\n }\n } else {\n while (index_1 < length && index_1 <= 50 && index_1 < count_1) {\n this.isSelectAllTarget = length === index_1 + 1;\n this.updateListSelection(li[index_1], event, length - index_1);\n if (this.enableGroupCheckBox) {\n this.findGroupStart(li[index_1]);\n }\n index_1++;\n }\n if (length > 50) {\n setTimeout(function () {\n while (index_1 < length && index_1 < count_1) {\n _this.isSelectAllTarget = length === index_1 + 1;\n _this.updateListSelection(li[index_1], event, length - index_1);\n if (_this.enableGroupCheckBox) {\n _this.findGroupStart(li[index_1]);\n }\n index_1++;\n }\n _this.updatedataValueItems(event);\n if (!_this.changeOnBlur) {\n _this.updateValueState(event, _this.value, _this.tempValues);\n _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;\n }\n _this.updateHiddenElement();\n if (_this.popupWrapper && li[index_1 - 1].classList.contains('e-item-focus')) {\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n li[index_1 - 1].classList.remove('e-item-focus');\n }\n }\n }, 0);\n }\n }\n } else {\n for (var i = 0; i < li.length && i < count_1; i++) {\n this.removeHover();\n var customVal = li[i].getAttribute('data-value');\n var value = this.getFormattedValue(customVal);\n value = this.allowObjectBinding ? this.getDataByValue(value) : value;\n var mainElement = this.mainList ? this.mainList.querySelectorAll(state ? 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' : 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)')[i] : null;\n if (state) {\n this.value = !this.value ? [] : this.value;\n if (!this.allowObjectBinding && this.value.indexOf(value) < 0 || this.allowObjectBinding && !this.isObjectInArray(value, this.value)) {\n this.setProperties({\n value: [].concat([], this.value, [value])\n }, true);\n }\n this.removeFocus();\n this.addListSelection(li[i], mainElement);\n this.updateChipStatus();\n this.checkMaxSelection();\n } else {\n this.removeAllItems(value, event, false, li[i], mainElement);\n }\n if (this.enableGroupCheckBox) {\n this.findGroupStart(li[i]);\n }\n }\n if (!state) {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (limit < this.maximumSelectionLength) {\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-active)');\n removeClass(collection, 'e-disable');\n }\n }\n var args = {\n event: event,\n items: state ? li : [],\n itemData: state ? this.listData : [],\n isInteracted: event ? true : false,\n isChecked: state\n };\n this.trigger('selectedAll', args);\n }\n }\n this.updatedataValueItems(event);\n this.checkPlaceholderSize();\n if (length <= 50 && !beforeSelectArgs.preventSelectEvent) {\n if (!this.changeOnBlur) {\n this.updateValueState(event, this.value, this.tempValues);\n this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;\n }\n if (this.enableVirtualization && this.value && this.value.length > 0 || !this.enableVirtualization) {\n this.updateHiddenElement();\n }\n }\n };\n MultiSelect.prototype.updateHiddenElement = function (isVirtualSelectAll) {\n var _this = this;\n var hiddenValue = '';\n var wrapperText = '';\n var data = '';\n var text = [];\n if (this.mode === 'CheckBox') {\n this.value.map(function (value, index) {\n hiddenValue += '<option selected value =\"' + value + '\">' + index + '</option>';\n if (!isVirtualSelectAll) {\n if (_this.listData) {\n data = _this.getTextByValue(value);\n } else {\n data = value;\n }\n wrapperText += data + _this.delimiterChar + ' ';\n text.push(data);\n }\n });\n this.hiddenElement.innerHTML = hiddenValue;\n if (!isVirtualSelectAll) {\n this.updateWrapperText(this.delimiterWrapper, wrapperText);\n this.setProperties({\n text: text.toString()\n }, true);\n }\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\n this.refreshInputHight();\n this.refreshPlaceHolder();\n }\n };\n MultiSelect.prototype.updatedataValueItems = function (event) {\n this.deselectHeader();\n this.textboxValueUpdate(event);\n };\n MultiSelect.prototype.textboxValueUpdate = function (event) {\n var isRemoveAll = event && event.target && (closest(event.target, '.e-selectall-parent') || closest(event.target, '.e-close-hooker'));\n if (this.mode !== 'Box' && !this.isPopupOpen() && !(this.mode === 'CheckBox' && (this.isSelectAll || isRemoveAll))) {\n this.updateDelimView();\n } else {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (!(isRemoveAll || this.isSelectAll) && this.isSelectAllTarget || this.isSelectAll && this.isSelectAllTarget) {\n this.updateDelimeter(this.delimiterChar, event);\n }\n this.refreshInputHight();\n } else {\n this.updateDelimeter(this.delimiterChar, event);\n }\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({\n 'zIndex': this.zIndex\n });\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateDataSource = function (prop) {\n if (isNullOrUndefined(this.list)) {\n this.renderPopup();\n } else {\n this.resetList(this.dataSource);\n }\n if (this.value && this.value.length) {\n this.setProperties({\n 'value': this.value\n });\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.onLoadSelect = function () {\n this.setDynValue = true;\n this.renderPopup();\n };\n MultiSelect.prototype.selectAllItems = function (state, event) {\n var _this = this;\n if (isNullOrUndefined(this.list)) {\n this.selectAllAction = function () {\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n var args = {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: state ? 'check' : 'uncheck'\n };\n _this.notify('checkSelectAll', args);\n }\n _this.selectAllItem(state, event);\n _this.selectAllAction = null;\n };\n _super.prototype.render.call(this);\n } else {\n this.selectAllAction = null;\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n var args = {\n value: state ? 'check' : 'uncheck',\n enable: this.mode === 'CheckBox',\n module: 'CheckBoxSelection'\n };\n this.notify('checkSelectAll', args);\n }\n this.selectAllItem(state, event);\n }\n if (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && this.virtualSelectAllData) {\n this.virtualSelectAll = false;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n MultiSelect.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {MultiSelectModel} newProp - Returns the dynamic property value of the component.\n * @param {MultiSelectModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n MultiSelect.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) || newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n this.mainList = null;\n this.mainData = null;\n this.isFirstClick = false;\n this.isDynamicDataChange = true;\n }\n if (this.getModuleName() === 'multiselect') {\n this.filterAction = false;\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'query':\n case 'dataSource':\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n if (!isNullOrUndefined(this.popupObj)) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n }\n break;\n case 'htmlAttributes':\n this.updateHTMLAttribute();\n break;\n case 'showClearButton':\n this.updateClearButton(newProp.showClearButton);\n break;\n case 'text':\n if (this.fields.disabled) {\n this.text = this.text && !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;\n }\n this.updateVal(this.value, this.value, 'text');\n break;\n case 'value':\n if (this.fields.disabled) {\n this.removeDisabledItemsValue(this.value);\n }\n this.updateVal(this.value, oldProp.value, 'value');\n this.addValidInputClass();\n if (!this.closePopupOnSelect && this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (this.isPopupOpen() && this.mode === 'CheckBox' && this.list && this.list.querySelector('.e-active.e-disable')) {\n var activeItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + '.e-active' + '.e-disable');\n removeClass(activeItems, 'e-disable');\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n break;\n case 'width':\n this.setWidth(newProp.width);\n this.popupObj.setProperties({\n width: this.calcPopupWidth()\n });\n break;\n case 'placeholder':\n this.refreshPlaceHolder();\n break;\n case 'filterBarPlaceholder':\n if (this.allowFiltering) {\n this.notify('filterBarPlaceholder', {\n filterBarPlaceholder: newProp.filterBarPlaceholder\n });\n }\n break;\n case 'delimiterChar':\n if (this.mode !== 'Box') {\n this.updateDelimView();\n }\n this.updateData(newProp.delimiterChar);\n break;\n case 'cssClass':\n this.updateOldPropCssClass(oldProp.cssClass);\n this.updateCssClass();\n this.calculateWidth();\n break;\n case 'enableRtl':\n this.enableRTL(newProp.enableRtl);\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n break;\n case 'allowResize':\n this.allowResize = newProp.allowResize;\n if (!this.allowResize && this.popupObj) {\n var overAllHeight = parseInt(this.popupHeight, 10);\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.height = formatUnit(this.popupHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n } else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n }\n break;\n case 'readonly':\n this.updateReadonly(newProp.readonly);\n this.hidePopup();\n break;\n case 'enabled':\n this.hidePopup();\n this.enable(newProp.enabled);\n break;\n case 'showSelectAll':\n if (this.popupObj) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n break;\n case 'showDropDownIcon':\n this.dropDownIcon();\n break;\n case 'floatLabelType':\n this.setFloatLabelType();\n this.addValidInputClass();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n break;\n case 'enableSelectionOrder':\n break;\n case 'selectAllText':\n this.notify('selectAllText', false);\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var overAllHeight = parseInt(this.popupHeight, 10);\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n } else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n }\n break;\n case 'headerTemplate':\n case 'footerTemplate':\n this.reInitializePoup();\n break;\n case 'allowFiltering':\n if (this.mode === 'CheckBox' && this.popupObj) {\n this.reInitializePoup();\n }\n this.updateSelectElementData(this.allowFiltering);\n break;\n case 'fields':\n if (isNullOrUndefined(this.fields.groupBy)) {\n this.removeScrollEvent();\n }\n break;\n default:\n {\n var msProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, msProps.newProperty, msProps.oldProperty);\n }\n break;\n }\n }\n };\n MultiSelect.prototype.reInitializePoup = function () {\n if (this.popupObj) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n };\n MultiSelect.prototype.totalItemsCount = function () {\n var dataSourceCount;\n if (this.dataSource instanceof DataManager) {\n if (this.remoteDataCount >= 0) {\n dataSourceCount = this.totalItemCount = this.dataCount = this.remoteDataCount;\n } else {\n this.resetList(this.dataSource);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSourceCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n }\n if (this.mode === 'CheckBox') {\n this.totalItemCount = dataSourceCount !== 0 ? dataSourceCount : this.totalItemCount;\n } else {\n if (this.hideSelectedItem) {\n this.totalItemCount = dataSourceCount !== 0 && this.value ? dataSourceCount - this.value.length : this.totalItemCount;\n if (this.allowCustomValue && this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {\n for (var i = 0; i < this.virtualCustomSelectData.length; i++) {\n for (var j = 0; j < this.value.length; j++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[j]) : this.value[j];\n var customValue = getValue(this.fields.value ? this.fields.value : '', this.virtualCustomSelectData[i]);\n if (value === customValue) {\n this.totalItemCount += 1;\n }\n }\n }\n }\n } else {\n this.totalItemCount = dataSourceCount !== 0 ? dataSourceCount : this.totalItemCount;\n if (this.allowCustomValue && this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {\n this.totalItemCount += this.virtualCustomSelectData.length;\n }\n }\n }\n };\n MultiSelect.prototype.presentItemValue = function (ulElement) {\n var valuecheck = [];\n for (var i = 0; i < this.value.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[i]) : this.value[i];\n var checkEle = this.findListElement(this.allowFiltering && !isNullOrUndefined(this.mainList) ? this.mainList : ulElement, 'li', 'data-value', value);\n if (!checkEle) {\n var checkvalue = this.allowObjectBinding ? this.getDataByValue(this.value[i]) : this.value[i];\n valuecheck.push(checkvalue);\n }\n }\n return valuecheck;\n };\n MultiSelect.prototype.addNonPresentItems = function (valuecheck, ulElement, list, event) {\n var _this = this;\n this.dataSource.executeQuery(this.getForQuery(valuecheck)).then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n }\n _this.updateActionList(ulElement, list, event);\n });\n };\n MultiSelect.prototype.updateVal = function (newProp, oldProp, prop) {\n if (!this.list) {\n this.onLoadSelect();\n } else if (this.dataSource instanceof DataManager && (!this.listData || !(this.mainList && this.mainData))) {\n this.onLoadSelect();\n } else {\n var valuecheck = [];\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {\n valuecheck = this.presentItemValue(this.ulElement);\n }\n if (prop === 'value' && valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value) && this.listData != null) {\n this.mainData = null;\n this.setDynValue = true;\n this.isaddNonPresentItems = true;\n this.addNonPresentItems(valuecheck, this.ulElement, this.listData);\n this.isaddNonPresentItems = false;\n } else {\n if (prop === 'text') {\n this.initialTextUpdate();\n newProp = this.value;\n }\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\n this.tempValues = oldProp;\n }\n // eslint-disable-next-line\n if (this.allowCustomValue && (this.mode === 'Default' || this.mode === 'Box') && this.isReact && this.inputFocus && this.isPopupOpen() && this.mainData !== this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n if (!this.enableVirtualization) {\n this.initialValueUpdate();\n } else if (this.enableVirtualization && !(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate(this.dataSource, true);\n } else if (!this.isInitRemoteVirtualData) {\n this.isDynamicRemoteVirtualData = true;\n this.initialValueUpdate(this.listData, true);\n this.isDynamicRemoteVirtualData = false;\n this.initialUpdate();\n }\n if (this.mode !== 'Box' && !this.inputFocus) {\n this.updateDelimView();\n }\n if (!this.inputFocus) {\n this.refreshInputHight();\n }\n this.refreshPlaceHolder();\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\n this.updateValueState(null, newProp, oldProp);\n }\n this.checkPlaceholderSize();\n }\n }\n if (!this.changeOnBlur) {\n this.updateValueState(null, newProp, oldProp);\n }\n };\n /**\n * Adds a new item to the multiselect popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiSelect.prototype.addItem = function (items, itemIndex) {\n _super.prototype.addItem.call(this, items, itemIndex);\n };\n /**\n * Hides the popup, if the popup in a open state.\n *\n * @param {MouseEvent | KeyboardEventArgs} e - Specifies the mouse event or keyboard event.\n * @returns {void}\n */\n MultiSelect.prototype.hidePopup = function (e) {\n var _this = this;\n var delay = 100;\n if (this.isPopupOpen()) {\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n this.customFilterQuery = null;\n var eventArgs = {\n popup: this.popupObj,\n cancel: false,\n animation: animModel,\n event: e || null\n };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (_this.fields.groupBy && _this.mode !== 'CheckBox' && _this.fixedHeaderElement) {\n remove(_this.fixedHeaderElement);\n _this.fixedHeaderElement = null;\n }\n _this.beforePopupOpen = false;\n _this.overAllWrapper.classList.remove(iconAnimation);\n var typedValue = _this.mode === 'CheckBox' ? _this.targetElement() : null;\n _this.popupObj.hide(new Animation(eventArgs.animation));\n attributes(_this.inputElement, {\n 'aria-expanded': 'false'\n });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n if (_this.allowFiltering) {\n _this.notify('inputFocus', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: 'clear'\n });\n }\n _this.popupObj.hide();\n removeClass([document.body, _this.popupObj.element], 'e-popup-full-page');\n EventHandler.remove(_this.list, 'keydown', _this.onKeyDown);\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n EventHandler.remove(_this.popupObj.element, 'click', _this.clickHandler);\n }\n if (_this.list && _this.list.parentElement && _this.allowResize) {\n if (_this.resizer && _this.list.parentElement.contains(_this.resizer)) {\n _this.list.parentElement.removeChild(_this.resizer);\n }\n if (_this.list.parentElement.classList.contains('e-resize')) {\n _this.list.parentElement.classList.remove('e-resize');\n }\n _this.list.parentElement.style.boxSizing = '';\n _this.list.parentElement.style.paddingBottom = '';\n var overAllHeight = parseInt(_this.popupHeight, 10);\n _this.list.style.maxHeight = formatUnit(overAllHeight);\n _this.list.parentElement.style.height = formatUnit(_this.popupHeight);\n _this.list.parentElement.style.maxHeight = formatUnit(_this.popupHeight);\n }\n if (_this.resizer) {\n EventHandler.remove(_this.resizer, 'mousedown', _this.startResizing);\n _this.resizer.remove();\n }\n if (_this.enableVirtualization && _this.mode === 'CheckBox' && _this.value && _this.value.length > 0 && _this.enableSelectionOrder) {\n _this.viewPortInfo.startIndex = _this.virtualItemStartIndex = 0;\n _this.viewPortInfo.endIndex = _this.virtualItemEndIndex = _this.viewPortInfo.startIndex > 0 ? _this.viewPortInfo.endIndex : _this.itemCount;\n _this.virtualListInfo = _this.viewPortInfo;\n _this.previousStartIndex = 0;\n _this.previousEndIndex = _this.itemCount;\n }\n var dataSourceCount = void 0;\n if (_this.dataSource instanceof DataManager) {\n if (_this.remoteDataCount >= 0) {\n _this.totalItemCount = _this.dataCount = _this.remoteDataCount;\n } else {\n _this.resetList(_this.dataSource);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSourceCount = _this.dataSource && _this.dataSource.length ? _this.dataSource.length : 0;\n }\n if (_this.enableVirtualization && (_this.allowFiltering || _this.allowCustomValue) && (_this.targetElement() || typedValue) && _this.totalItemCount !== dataSourceCount) {\n _this.checkAndResetCache();\n _this.updateInitialData();\n }\n if (_this.virtualCustomData && _this.viewPortInfo && _this.viewPortInfo.startIndex === 0 && _this.viewPortInfo.endIndex === _this.itemCount) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.renderItems(_this.mainData, _this.fields);\n }\n _this.virtualCustomData = null;\n _this.isVirtualTrackHeight = false;\n }\n });\n }\n };\n /**\n * Shows the popup, if the popup in a closed state.\n *\n * @param {MouseEvent | KeyboardEventArgs} e - Specifies the mouse event or keyboard event.\n * @returns {void}\n */\n MultiSelect.prototype.showPopup = function (e) {\n var _this = this;\n if (!this.enabled) {\n return;\n }\n this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;\n var args = {\n cancel: false\n };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n if (!_this.ulElement) {\n _this.beforePopupOpen = true;\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering && _this.isDeviceFullScreen) {\n _this.notify('popupFullScreen', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox'\n });\n }\n _super.prototype.render.call(_this, e);\n return;\n }\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering && _this.isDeviceFullScreen) {\n _this.notify('popupFullScreen', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox'\n });\n }\n var mainLiLength = _this.ulElement.querySelectorAll('li.' + 'e-list-item').length;\n var liLength = _this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + '.' + HIDE_LIST).length;\n if (mainLiLength > 0 && mainLiLength === liLength && liLength === _this.mainData.length && !(_this.targetElement() !== '' && _this.allowCustomValue)) {\n _this.beforePopupOpen = false;\n return;\n }\n _this.onPopupShown(e);\n if (_this.enableVirtualization && _this.listData && _this.listData.length) {\n if (!isNullOrUndefined(_this.value) && (_this.getModuleName() === 'dropdownlist' || _this.getModuleName() === 'combobox')) {\n _this.removeHover();\n }\n if (!_this.beforePopupOpen) {\n if (_this.hideSelectedItem && _this.value && Array.isArray(_this.value) && _this.value.length > 0) {\n _this.totalItemsCount();\n }\n if (!_this.preventSetCurrentData && !isNullOrUndefined(_this.viewPortInfo.startIndex) && !isNullOrUndefined(_this.viewPortInfo.endIndex)) {\n _this.notify('setCurrentViewDataAsync', {\n component: _this.getModuleName(),\n module: 'VirtualScroll'\n });\n }\n }\n }\n if (_this.enableVirtualization && !_this.allowFiltering && _this.selectedValueInfo != null && _this.selectedValueInfo.startIndex > 0 && _this.value != null) {\n _this.notify('dataProcessAsync', {\n module: 'VirtualScroll',\n isOpen: true\n });\n }\n if (_this.enableVirtualization) {\n _this.updatevirtualizationList();\n } else {\n if (_this.value && _this.value.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var element = void 0;\n var listItems = _this.getItems();\n for (var _i = 0, _a = _this.value; _i < _a.length; _i++) {\n var value = _a[_i];\n var checkValue = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n element = _this.getElementByValue(checkValue);\n if (element) {\n _this.addListSelection(element);\n }\n }\n }\n }\n if (_this.allowResize) {\n _this.setResize();\n }\n _this.preventSetCurrentData = true;\n }\n });\n };\n /**\n * Based on the state parameter, entire list item will be selected/deselected.\n * parameter\n * `true` - Selects entire list items.\n * `false` - Un Selects entire list items.\n *\n * @param {boolean} state - if it’s true then Selects the entire list items. If it’s false the Unselects entire list items.\n * @returns {void}\n */\n MultiSelect.prototype.selectAll = function (state) {\n this.isSelectAll = true;\n this.selectAllItems(state);\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n MultiSelect.prototype.getModuleName = function () {\n return 'multiselect';\n };\n /**\n * Allows you to clear the selected values from the Multiselect component.\n *\n * @returns {void}\n */\n MultiSelect.prototype.clear = function () {\n var _this = this;\n this.selectAll(false);\n if (this.value && this.value.length) {\n setTimeout(function () {\n _this.setProperties({\n value: null\n }, true);\n }, 0);\n } else {\n this.setProperties({\n value: null\n }, true);\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n MultiSelect.prototype.render = function () {\n if (!isNullOrUndefined(this.value) && this.value.length > 0) {\n // eslint-disable-next-line\n this.value = this.value.slice();\n }\n this.setDynValue = this.initStatus = false;\n this.isSelectAll = false;\n this.selectAllEventEle = [];\n this.searchWrapper = this.createElement('span', {\n className: SEARCHBOX_WRAPPER + ' ' + (this.mode === 'Box' ? BOX_ELEMENT : '')\n });\n this.viewWrapper = this.createElement('span', {\n className: DELIMITER_VIEW + ' ' + DELIMITER_WRAPPER\n });\n this.viewWrapper.style.display = 'none';\n this.overAllClear = this.createElement('span', {\n className: CLOSEICON_CLASS\n });\n this.overAllClear.style.display = 'none';\n this.componentWrapper = this.createElement('div', {\n className: ELEMENT_WRAPPER\n });\n this.overAllWrapper = this.createElement('div', {\n className: OVER_ALL_WRAPPER\n });\n if (this.mode === 'CheckBox') {\n addClass([this.overAllWrapper], 'e-checkbox');\n }\n if (Browser.isDevice) {\n this.componentWrapper.classList.add(ELEMENT_MOBILE_WRAPPER);\n }\n this.setWidth(this.width);\n this.overAllWrapper.appendChild(this.componentWrapper);\n this.popupWrapper = this.createElement('div', {\n id: this.element.id + '_popup',\n className: POPUP_WRAPPER\n });\n this.popupWrapper.setAttribute('aria-label', this.element.id);\n this.popupWrapper.setAttribute('role', 'dialog');\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.delimiterWrapper = this.createElement('span', {\n className: DELIMITER_WRAPPER\n });\n this.delimiterWrapper.style.display = 'none';\n this.componentWrapper.appendChild(this.delimiterWrapper);\n } else {\n this.chipCollectionWrapper = this.createElement('span', {\n className: CHIP_WRAPPER\n });\n this.chipCollectionWrapper.style.display = 'none';\n if (this.mode === 'Default') {\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_default'));\n } else if (this.mode === 'Box') {\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_box'));\n }\n this.componentWrapper.appendChild(this.chipCollectionWrapper);\n }\n if (this.mode !== 'Box') {\n this.componentWrapper.appendChild(this.viewWrapper);\n }\n this.componentWrapper.appendChild(this.searchWrapper);\n if (this.showClearButton && !Browser.isDevice) {\n this.componentWrapper.appendChild(this.overAllClear);\n } else {\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\n }\n this.dropDownIcon();\n this.inputElement = this.createElement('input', {\n className: INPUT_ELEMENT,\n attrs: {\n spellcheck: 'false',\n type: 'text',\n autocomplete: 'off',\n tabindex: '0',\n role: 'combobox'\n }\n });\n if (this.mode === 'Default' || this.mode === 'Box') {\n this.inputElement.setAttribute('aria-describedby', this.chipCollectionWrapper.id);\n }\n if (!isNullOrUndefined(this.inputElement)) {\n attributes(this.inputElement, {\n 'aria-expanded': 'false'\n });\n if (!this.inputElement.hasAttribute('aria-label')) {\n this.inputElement.setAttribute('aria-label', this.getModuleName());\n }\n }\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.overAllWrapper);\n this.searchWrapper.appendChild(this.inputElement);\n } else {\n this.element.parentElement.insertBefore(this.overAllWrapper, this.element);\n this.searchWrapper.appendChild(this.inputElement);\n this.searchWrapper.appendChild(this.element);\n this.element.removeAttribute('tabindex');\n }\n if (this.floatLabelType !== 'Never') {\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n } else if (this.floatLabelType === 'Never') {\n this.refreshPlaceHolder();\n }\n this.addValidInputClass();\n this.element.style.opacity = '';\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'class': HIDDEN_ELEMENT,\n 'tabindex': '-1',\n 'multiple': ''\n }\n });\n this.componentWrapper.appendChild(this.hiddenElement);\n this.validationAttribute(this.element, this.hiddenElement);\n if (this.mode !== 'CheckBox') {\n this.hideOverAllClear();\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.wireEvent();\n this.enable(this.enabled);\n this.enableRTL(this.enableRtl);\n if (this.enableVirtualization) {\n this.updateVirtualizationProperties(this.itemCount, this.allowFiltering, this.mode === 'CheckBox');\n }\n this.listItemHeight = this.getListHeight();\n this.getSkeletonCount();\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.viewPortInfo.startIndex > 0 ? this.viewPortInfo.endIndex : this.itemCount;\n this.checkInitialValue();\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.renderComplete();\n };\n MultiSelect.prototype.setResize = function () {\n var resizePaddingBottom = 16;\n if (this.list && this.list.parentElement && isNullOrUndefined(this.list.parentElement.querySelector('.e-resizer-right.e-icons'))) {\n this.resizer = this.createElement('div', {\n id: this.element.id + '_resize-popup',\n className: RESIZE_ICON\n });\n }\n if (this.mode === 'CheckBox' && this.showSelectAll && this.selectAllHeight && this.selectAllHeight !== 0) {\n this.storedSelectAllHeight = this.selectAllHeight;\n }\n if (this.list && this.list.parentElement) {\n this.list.parentElement.classList.add('e-resize');\n if (this.popupHeight.toString().toLowerCase() !== 'auto') {\n this.list.parentElement.style.height = '100%';\n }\n this.list.parentElement.style.boxSizing = 'border-box'; // Ensures padding doesn't affect element size\n var paddingBottom = this.mode === 'CheckBox' && this.searchBoxHeight ? this.searchBoxHeight + resizePaddingBottom + (this.showSelectAll ? this.storedSelectAllHeight : 0) : resizePaddingBottom;\n this.list.parentElement.style.paddingBottom = paddingBottom + \"px\";\n this.list.parentElement.appendChild(this.resizer);\n this.list.parentElement.style.width = this.resizeWidth + 'px';\n this.list.parentElement.style.height = this.resizeHeight + 'px';\n this.list.parentElement.style.maxHeight = this.resizeHeight + 'px';\n this.list.style.maxHeight = this.resizeHeight + \"px\";\n }\n if (this.resizer) {\n EventHandler.add(this.resizer, 'mousedown', this.startResizing, this);\n EventHandler.add(this.resizer, 'touchstart', this.startResizing, this);\n }\n };\n MultiSelect.prototype.startResizing = function (event) {\n this.isResizing = true;\n this.trigger('resizeStart', event);\n // Get initial touch or mouse coordinates\n var clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;\n var clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;\n if (this.list && this.list.parentElement) {\n this.originalWidth = this.list.parentElement.offsetWidth;\n this.originalHeight = this.list.parentElement.offsetHeight;\n this.originalMouseX = clientX;\n this.originalMouseY = clientY;\n }\n this.resizingWireEvent();\n // Prevent default behavior like text selection\n if (event) {\n event.preventDefault();\n }\n };\n MultiSelect.prototype.resizePopup = function (event) {\n if (!this.isResizing) {\n return;\n }\n this.trigger('resizing', event);\n // Get the current touch or mouse position\n var clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;\n var clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;\n // Calculate the new width and height based on drag\n var dx = clientX - this.originalMouseX;\n var dy = clientY - this.originalMouseY;\n // Set minimum width and height (100px)\n var minWidth = 100;\n var minHeight = 130;\n // Ensure the new width and height are not smaller than the minimum\n this.resizeWidth = Math.max(this.originalWidth + dx, minWidth);\n this.resizeHeight = Math.max(this.originalHeight + dy, minHeight);\n if (this.list && this.list.parentElement) {\n // Set minimum width and height (100px)\n var minWidth_1 = parseInt(window.getComputedStyle(this.list.parentElement).minWidth, 10);\n var minHeight_1 = parseInt(window.getComputedStyle(this.list.parentElement).minHeight, 10);\n minWidth_1 = minWidth_1 || 100;\n minHeight_1 = minHeight_1 || 120;\n // Ensure the new width and height are not smaller than the minimum\n this.resizeWidth = Math.max(this.originalWidth + dx, minWidth_1);\n this.resizeHeight = Math.max(this.originalHeight + dy, minHeight_1);\n this.list.parentElement.style.width = this.resizeWidth + \"px\";\n this.list.parentElement.style.height = this.resizeHeight + \"px\";\n this.list.parentElement.style.maxHeight = this.resizeHeight + \"px\";\n this.list.style.maxHeight = this.resizeHeight + \"px\";\n if (this.fixedHeaderElement && this.ulElement) {\n this.fixedHeaderElement.style.width = this.ulElement.offsetWidth + \"px\";\n }\n }\n if (event) {\n event.preventDefault();\n }\n };\n MultiSelect.prototype.stopResizing = function (event) {\n if (this.isResizing) {\n this.isResizing = false;\n this.trigger('resizeStop', event);\n this.resizingUnWireEvent();\n }\n if (event) {\n event.preventDefault();\n }\n };\n MultiSelect.prototype.getListHeight = function () {\n var listParent = this.createElement('div', {\n className: 'e-dropdownbase'\n });\n var item = this.createElement('li', {\n className: 'e-list-item'\n });\n var listParentHeight = formatUnit(this.popupHeight);\n listParent.style.height = parseInt(listParentHeight, 10).toString() + 'px';\n listParent.appendChild(item);\n document.body.appendChild(listParent);\n this.virtualListHeight = listParent.getBoundingClientRect().height;\n var listItemHeight = Math.ceil(item.getBoundingClientRect().height) + parseInt(window.getComputedStyle(item).marginBottom, 10);\n listParent.remove();\n return listItemHeight;\n };\n /**\n * Removes disabled values from the given array.\n *\n * @param { number[] | string[] | boolean[] | object[] } value - The array to check.\n * @returns {void}\n */\n MultiSelect.prototype.removeDisabledItemsValue = function (value) {\n if (value) {\n var data = [];\n var dataIndex = 0;\n for (var index = 0; index < value.length; index++) {\n var indexValue = value[index];\n if (typeof indexValue === 'object') {\n indexValue = JSON.parse(JSON.stringify(indexValue))[this.fields.value];\n }\n if (indexValue != null && !this.isDisabledItemByIndex(this.getIndexByValue(indexValue))) {\n data[dataIndex++] = value[index];\n }\n }\n this.value = data.length > 0 ? data : null;\n }\n };\n MultiSelect.prototype.checkInitialValue = function () {\n var _this = this;\n if (this.fields.disabled) {\n this.removeDisabledItemsValue(this.value);\n }\n var isData = this.dataSource instanceof Array ? this.dataSource.length > 0 : !isNullOrUndefined(this.dataSource);\n if (!(this.value && this.value.length) && isNullOrUndefined(this.text) && !isData && this.element.tagName === 'SELECT' && this.element.options.length > 0) {\n var optionsElement = this.element.options;\n var valueCol = [];\n var textCol = '';\n for (var index = 0, optionsLen = optionsElement.length; index < optionsLen; index++) {\n var opt = optionsElement[index];\n if (!isNullOrUndefined(opt.getAttribute('selected'))) {\n if (opt.getAttribute('value')) {\n var value = this.allowObjectBinding ? this.getDataByValue(opt.getAttribute('value')) : opt.getAttribute('value');\n valueCol.push(value);\n } else {\n textCol += opt.text + this.delimiterChar;\n }\n }\n }\n if (valueCol.length > 0) {\n this.setProperties({\n value: valueCol\n }, true);\n } else if (textCol !== '') {\n this.setProperties({\n text: textCol\n }, true);\n }\n if (valueCol.length > 0 || textCol !== '') {\n this.refreshInputHight();\n this.refreshPlaceHolder();\n }\n }\n if (this.value && this.value.length || !isNullOrUndefined(this.text)) {\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n }\n if (this.fields.disabled) {\n this.text = this.text && !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;\n }\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.initialTextUpdate();\n }\n if (this.value && this.value.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var listItems_2;\n if (this.enableVirtualization) {\n var fields = !this.isPrimitiveData ? this.fields.value : '';\n var predicate = void 0;\n for (var i = 0; i < this.value.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[i]) : this.value[i];\n if (i === 0) {\n predicate = new Predicate(fields, 'equal', value);\n } else {\n predicate = predicate.or(fields, 'equal', value);\n }\n }\n if (this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query().where(predicate)).then(function (e) {\n if (e.result.length > 0) {\n listItems_2 = e.result;\n _this.initStatus = false;\n _this.isInitRemoteVirtualData = true;\n setTimeout(function () {\n _this.initialValueUpdate(listItems_2, true);\n _this.initialUpdate();\n _this.isInitRemoteVirtualData = false;\n }, 100);\n _this.initStatus = true;\n }\n });\n } else {\n listItems_2 = new DataManager(this.dataSource).executeLocal(new Query().where(predicate));\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate(listItems_2, true);\n this.initialUpdate();\n } else {\n this.setInitialValue = function () {\n _this.initStatus = false;\n if (!_this.enableVirtualization || _this.enableVirtualization && !(_this.dataSource instanceof DataManager)) {\n _this.initialValueUpdate(listItems_2);\n }\n _this.initialUpdate();\n _this.setInitialValue = null;\n _this.initStatus = true;\n };\n }\n this.updateTempValue();\n } else {\n this.initialUpdate();\n }\n this.initStatus = true;\n this.checkAutoFocus();\n if (!isNullOrUndefined(this.text)) {\n this.element.setAttribute('data-initial-value', this.text);\n }\n };\n MultiSelect.prototype.checkAutoFocus = function () {\n if (this.element.hasAttribute('autofocus')) {\n this.inputElement.focus();\n }\n };\n MultiSelect.prototype.updatevirtualizationList = function () {\n if (this.value && this.value.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var element = void 0;\n for (var _i = 0, _a = this.value; _i < _a.length; _i++) {\n var value = _a[_i];\n var checkValue = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n element = this.getElementByValue(checkValue);\n if (element) {\n this.addListSelection(element);\n }\n }\n if (this.enableVirtualization && this.hideSelectedItem) {\n var visibleListElements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list)');\n if (visibleListElements.length) {\n var actualCount = this.virtualListHeight > 0 ? Math.floor(this.virtualListHeight / this.listItemHeight) : 0;\n if (visibleListElements.length < actualCount + 2) {\n var query = this.getForQuery(this.value).clone();\n query = query.skip(this.viewPortInfo.startIndex);\n this.resetList(this.dataSource, this.fields, query);\n }\n }\n }\n }\n };\n MultiSelect.prototype.setFloatLabelType = function () {\n removeFloating(this.overAllWrapper, this.componentWrapper, this.searchWrapper, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n if (this.floatLabelType !== 'Never') {\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n }\n };\n MultiSelect.prototype.addValidInputClass = function () {\n if (!isNullOrUndefined(this.overAllWrapper)) {\n if (!isNullOrUndefined(this.value) && this.value.length || this.floatLabelType === 'Always') {\n addClass([this.overAllWrapper], 'e-valid-input');\n } else {\n removeClass([this.overAllWrapper], 'e-valid-input');\n }\n }\n };\n MultiSelect.prototype.dropDownIcon = function () {\n if (this.showDropDownIcon) {\n this.dropIcon = this.createElement('span', {\n className: dropdownIcon\n });\n this.componentWrapper.appendChild(this.dropIcon);\n addClass([this.componentWrapper], ['e-down-icon']);\n } else {\n if (!isNullOrUndefined(this.dropIcon)) {\n this.dropIcon.parentElement.removeChild(this.dropIcon);\n removeClass([this.componentWrapper], ['e-down-icon']);\n }\n }\n };\n MultiSelect.prototype.initialUpdate = function () {\n if (this.mode !== 'Box' && !(this.setDynValue && this.mode === 'Default' && this.inputFocus)) {\n this.updateDelimView();\n }\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.itemCount;\n this.updateCssClass();\n this.updateHTMLAttribute();\n this.updateReadonly(this.readonly);\n this.refreshInputHight();\n this.checkPlaceholderSize();\n };\n /**\n * Method to disable specific item in the popup.\n *\n * @param {string | number | object | HTMLLIElement} item - Specifies the item to be disabled.\n * @returns {void}\n * @deprecated\n */\n MultiSelect.prototype.disableItem = function (item) {\n if (this.fields.disabled) {\n if (!this.list) {\n this.renderList();\n }\n var itemIndex = -1;\n if (this.liCollections && this.liCollections.length > 0 && this.listData && this.fields.disabled) {\n if (typeof item === 'string') {\n itemIndex = this.getIndexByValue(item);\n } else if (typeof item === 'object') {\n if (item instanceof HTMLLIElement) {\n for (var index = 0; index < this.liCollections.length; index++) {\n if (this.liCollections[index] === item) {\n itemIndex = this.getIndexByValue(item.getAttribute('data-value'));\n break;\n }\n }\n } else {\n var value = JSON.parse(JSON.stringify(item))[this.fields.value];\n for (var index = 0; index < this.listData.length; index++) {\n if (JSON.parse(JSON.stringify(this.listData[index]))[this.fields.value] === value) {\n itemIndex = this.getIndexByValue(value);\n break;\n }\n }\n }\n } else {\n itemIndex = item;\n }\n var isValidIndex = itemIndex < this.liCollections.length && itemIndex > -1;\n if (isValidIndex && !JSON.parse(JSON.stringify(this.listData[itemIndex]))[this.fields.disabled]) {\n var li = this.liCollections[itemIndex];\n if (li) {\n this.disableListItem(li);\n var parsedData = JSON.parse(JSON.stringify(this.listData[itemIndex]));\n parsedData[this.fields.disabled] = true;\n this.listData[itemIndex] = parsedData;\n if (li.classList.contains(dropDownBaseClasses.focus)) {\n this.removeFocus();\n }\n if (li.classList.contains(HIDE_LIST) || li.classList.contains(dropDownBaseClasses.selected)) {\n var oldValue = this.value;\n this.removeDisabledItemsValue(this.value);\n this.updateVal(this.value, oldValue, 'value');\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n this.disableGroupHeader();\n }\n }\n }\n }\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n MultiSelect.prototype.destroy = function () {\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n if (!isNullOrUndefined(this.popupObj)) {\n this.popupObj.hide();\n this.popupObj.destroy();\n }\n this.notify(destroy, {});\n this.unwireListEvents();\n this.unWireEvent();\n var temp = ['readonly', 'aria-disabled', 'placeholder', 'aria-label', 'aria-expanded'];\n var length = temp.length;\n if (!isNullOrUndefined(this.inputElement)) {\n while (length > 0) {\n this.inputElement.removeAttribute(temp[length - 1]);\n length--;\n }\n }\n if (!isNullOrUndefined(this.element)) {\n this.element.removeAttribute('data-initial-value');\n this.element.style.display = 'block';\n }\n if (this.overAllWrapper && this.overAllWrapper.parentElement) {\n if (this.overAllWrapper.parentElement.tagName === this.getNgDirective()) {\n remove(this.overAllWrapper);\n } else {\n this.overAllWrapper.parentElement.insertBefore(this.element, this.overAllWrapper);\n remove(this.overAllWrapper);\n }\n }\n if (this.popupWrapper && this.popupWrapper.parentElement) {\n this.popupWrapper.parentElement.remove();\n }\n while (this.searchWrapper && this.searchWrapper.firstChild) {\n this.searchWrapper.removeChild(this.searchWrapper.firstChild);\n }\n if (this.searchWrapper && this.searchWrapper.parentElement) {\n this.searchWrapper.parentElement.remove();\n }\n if (this.viewWrapper && this.viewWrapper.parentElement) {\n this.viewWrapper.parentElement.remove();\n }\n if (this.overAllClear && this.overAllClear.parentElement) {\n this.overAllClear.parentElement.remove();\n }\n if (this.delimiterWrapper && this.delimiterWrapper.parentElement) {\n this.delimiterWrapper.parentElement.remove();\n }\n // Remove the select element if it exists\n var selectElement = this.overAllWrapper.querySelector('select.e-multi-hidden');\n if (selectElement && selectElement.parentElement) {\n selectElement.parentElement.remove();\n }\n while (this.componentWrapper && this.componentWrapper.firstChild) {\n this.componentWrapper.removeChild(this.componentWrapper.firstChild);\n }\n if (this.componentWrapper && this.componentWrapper.parentElement) {\n this.componentWrapper.removeAttribute('class');\n this.componentWrapper.parentElement.remove();\n }\n while (this.popupWrapper && this.popupWrapper.firstChild) {\n this.popupWrapper.removeChild(this.popupWrapper.firstChild);\n }\n if (this.inputElement) {\n var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby', 'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-label', 'aria-hidden', 'tabindex', 'aria-controls', 'aria-describedby', 'size', 'role', 'type', 'class'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputElement.removeAttribute(attrArray[i]);\n }\n }\n if (this.inputElement) {\n this.inputElement.remove();\n }\n this.list = null;\n this.popupObj = null;\n this.mainData = null;\n this.filterParent = null;\n this.ulElement = null;\n this.componentWrapper = null;\n this.overAllClear = null;\n this.overAllWrapper = null;\n this.hiddenElement = null;\n this.searchWrapper = null;\n this.viewWrapper = null;\n this.chipCollectionWrapper = null;\n this.targetInputElement = null;\n this.popupWrapper = null;\n this.inputElement = null;\n this.delimiterWrapper = null;\n this.liCollections = null;\n this.popupContentElement = null;\n this.header = null;\n this.mainList = null;\n this.mainListCollection = null;\n this.footer = null;\n this.selectAllEventEle = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([Complex({\n text: null,\n value: null,\n iconCss: null,\n groupBy: null,\n disabled: null\n }, FieldSettings)], MultiSelect.prototype, \"fields\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"enablePersistence\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"groupTemplate\", void 0);\n __decorate([Property('No records found')], MultiSelect.prototype, \"noRecordsTemplate\", void 0);\n __decorate([Property('Request failed')], MultiSelect.prototype, \"actionFailureTemplate\", void 0);\n __decorate([Property('None')], MultiSelect.prototype, \"sortOrder\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"enabled\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"enableVirtualization\", void 0);\n __decorate([Property([])], MultiSelect.prototype, \"dataSource\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"query\", void 0);\n __decorate([Property('StartsWith')], MultiSelect.prototype, \"filterType\", void 0);\n __decorate([Property(1000)], MultiSelect.prototype, \"zIndex\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"ignoreAccent\", void 0);\n __decorate([Property()], MultiSelect.prototype, \"locale\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"enableGroupCheckBox\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"cssClass\", void 0);\n __decorate([Property('100%')], MultiSelect.prototype, \"width\", void 0);\n __decorate([Property('300px')], MultiSelect.prototype, \"popupHeight\", void 0);\n __decorate([Property('100%')], MultiSelect.prototype, \"popupWidth\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"placeholder\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([Property({})], MultiSelect.prototype, \"htmlAttributes\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"valueTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"headerTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"footerTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"itemTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"allowFiltering\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"isDeviceFullScreen\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"changeOnBlur\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"allowCustomValue\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"showClearButton\", void 0);\n __decorate([Property(1000)], MultiSelect.prototype, \"maximumSelectionLength\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"readonly\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"allowResize\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"text\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"value\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"allowObjectBinding\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"hideSelectedItem\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"closePopupOnSelect\", void 0);\n __decorate([Property('Default')], MultiSelect.prototype, \"mode\", void 0);\n __decorate([Property(',')], MultiSelect.prototype, \"delimiterChar\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"ignoreCase\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"showDropDownIcon\", void 0);\n __decorate([Property('Never')], MultiSelect.prototype, \"floatLabelType\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"showSelectAll\", void 0);\n __decorate([Property('Select All')], MultiSelect.prototype, \"selectAllText\", void 0);\n __decorate([Property('Unselect All')], MultiSelect.prototype, \"unSelectAllText\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"enableSelectionOrder\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"openOnClick\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"addTagOnBlur\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"change\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"removing\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"removed\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"beforeSelectAll\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"selectedAll\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"beforeOpen\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"open\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"close\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"blur\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"focus\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"chipSelection\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"resizeStop\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"resizing\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"resizeStart\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"filtering\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"tagging\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"customValueSelection\", void 0);\n MultiSelect = __decorate([NotifyPropertyChanges], MultiSelect);\n return MultiSelect;\n}(DropDownBase);\nexport { MultiSelect };"],"sourceRoot":""}