{"version":3,"sources":["webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","webpack:///./node_modules/devextreme-vue/core/extension-component.js","webpack:///./node_modules/devextreme-vue/core/children-processing.js","webpack:///./node_modules/devextreme/esm/core/utils/icon.js","webpack:///./node_modules/devextreme-vue/core/index.js","webpack:///./node_modules/devextreme-vue/core/config.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-manager.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue3/index.js","webpack:///./node_modules/devextreme-vue/core/helpers.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/errors.js","webpack:///./node_modules/devextreme/esm/ui/collection/data_controller.js","webpack:///./node_modules/devextreme/esm/data_helper.js","webpack:///./node_modules/devextreme/esm/events/index.js","webpack:///./node_modules/devextreme/esm/events/contextmenu.js","webpack:///./node_modules/devextreme/esm/events/hold.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/config.js","webpack:///./node_modules/devextreme/esm/core/templates/bindable_template.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-discovering.js","webpack:///./node_modules/devextreme-vue/core/configuration.js","webpack:///./node_modules/devextreme-vue/core/version.js","webpack:///./node_modules/devextreme-vue/core/templates-manager.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/children-processing.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/helpers.js","webpack:///./node_modules/devextreme-vue/core/constants.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","webpack:///./node_modules/devextreme/esm/core/utils/selection_filter.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/component.js","webpack:///./node_modules/devextreme-vue/core/templates-discovering.js","webpack:///./node_modules/devextreme/esm/ui/collection/item.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/extension-component.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/index.js","webpack:///./node_modules/devextreme-vue/core/component.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration-component.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/constants.js","webpack:///./node_modules/devextreme-vue/core/vue-helper.js","webpack:///./node_modules/devextreme-vue/core/configuration-component.js","webpack:///./node_modules/devextreme/esm/core/utils/array_compare.js"],"names":["__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","exports","value","setEmitOptionChangedFunc","bindOptionWatchers","helpers_1","Configuration","updateFunc","name","initialValues","expectedChildren","isCollectionItem","collectionItemIndex","ownerConfig","_updateFunc","_name","_initialValues","_nestedConfigurations","_isCollectionItem","_collectionItemIndex","_expectedChildren","_ownerConfig","_componentChanges","updateValue","bind","get","enumerable","configurable","concat","cleanComponentsCountChanged","fullPath","fullName","_options","_prevNestedConfigOptions","init","options","set","handler","_emitOptionChanged","setPrevNestedOptions","onOptionChanged","args","isEqual","previousValue","_onOptionChanged","split","cleanNested","createNested","expected","actualName","actualIsCollectionItem","optionName","filter","c","configuration","push","nestedName","join","getNestedOptionValues","values","forEach","o","nestedValue","arr","Array","isArray","getOptionsToWatch","blackList","optionRelPath","optionInfo","getOptionInfo","isCollection","nestedConfig","_getNestedConfig","slice","_tryEmitOptionChanged","component","option","_i","_a","config","vueInstance","innerChanges","targets","$watch","emitOptionChanged","$props","$emit","default","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","ANONYMOUS_TEMPLATE_NAME","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","inherit","_activeStateUnit","_supportedKeys","move","location","e","preventDefault","stopPropagation","_moveFocus","extend","callBase","space","_enterKeyHandler","enter","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","home","end","$itemElement","itemData","_getItemData","onClick","_itemEventHandlerByHandler","event","_itemClickHandler","target","currentTarget","_getDefaultOptions","selectOnFocus","loopItemFocus","items","itemTemplate","onItemRendered","onItemClick","onItemHold","itemHoldTimeout","onItemContextMenu","onFocusedItemChanged","noDataText","message","format","encodeNoDataText","dataSource","_dataController","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","data","disabled","visibleExpr","visible","_init","_compileDisplayGetter","_initDataController","_cleanRenderedItems","_refreshDataSource","_displayGetter","_initTemplates","_initItemsFromMarkup","_initDefaultItemTemplate","_getAnonymousTemplateName","fieldsMap","_getFieldsMap","_templateManager","addDefaultTemplates","item","$container","_prepareDefaultItemTemplate","text","String","_getBindableFields","html","rawItems","$element","map","_ref","element","isTemplateRequired","test","innerHTML","template","_prepareItemTemplate","remove","templateId","$template","detach","clone","removeAttr","addClass","_saveTemplate","_dataSourceOptions","paginate","_renderedItemsCount","_focusTarget","_focusInHandler","_isFocusTarget","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_focusOutHandler","$target","_updateFocusedItemState","find","last","index","activeElements","_getActiveElement","lastIndex","eq","$newTarget","$items","_getAvailableItems","_prevItem","_nextItem","first","_getVisibleItems","$itemElements","_itemElements","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","isFocused","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_toggleFocusClass","_updateParentActiveDescendant","setAria","getFocusedItemId","_isDisabled","attr","isTargetDisabled","_findItemElementByItem","result","that","itemElements","each","_itemDataKey","_getIndexByItem","indexOf","_itemOptionChanged","property","oldValue","constructor","ItemClass","getInstance","setDataField","_refreshItem","isDisabling","_resetItemFocus","is","_itemIndexKey","_renderItem","_optionChanged","matches","match","itemPath","replace","_invalidate","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_createActionByOption","_loadNextPage","_expectNextPageLoading","loadNextPage","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","newItems","_initialized","_shouldAppendItems","_isLastPage","_refreshContent","_prepareContent","_renderContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_clean","_cleanFocusState","_cleanItemContainer","_inkRipple","_resetActiveState","_itemContainer","empty","_dispose","clearTimeout","_itemFocusTimeout","_refresh","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_initMarkup","_renderContentImpl","_fireContentReadyAction","_render","_attachClickEvent","_getPointerEvent","pointer","down","itemSelector","pointerEvent","clickEventNamespace","click","NAME","pointerEventNamespace","pointerAction","_itemPointerDownHandler","off","on","execute","_itemDXEventHandler","_itemFocusHandler","isDefaultPrevented","$closestItem","closest","$closestFocusable","_closestFocusable","setTimeout","_forcePointerDownFocus","parent","isDocument","isDocumentFragment","_updateFocusState","$itemContainer","eventName","hold","timeout","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","hasActionSubscription","cancel","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","$itemToReplace","_index$item","itemIndex","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","container","contentClass","defaultTemplateName","done","_postprocessRenderItem","itemElement","itemContent","_executeItemRenderAction","removeClass","itemTemplateName","_getItemTemplateName","_getTemplate","_addItemContentClasses","$templateResult","_createItemByTemplate","hasClass","_renderItemContentByNode","$node","replaceWith","classes","_appendItemToContainer","appendTo","_itemOptions","displayValue","watchMethod","owner","fieldGetter","field","expr","getter","_getItemRenderAction","_itemRenderAction","excludeValidators","category","templateProperty","renderArgs","render","model","onRendered","_onItemTemplateRendered","_emptyMessageContainer","hideNoData","isLoading","_$noData","toggleClass","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","action","validatingTargetName","_itemEventHandlerImpl","_createAction","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","includeMargin","_","_focusedItemId","itemsContainer","include","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","_setOptionsByReference","_optionsByReference","selectedItem","selectionMode","selectionRequired","selectByClick","selectedItems","selectedItemKeys","maxFilterLengthInRequest","keyExpr","selectedIndex","onSelectionChanged","onItemReordered","onItemDeleting","onItemDeleted","ctor","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_keyGetter","_getKeysByItems","_editStrategy","getKeysByItems","_getItemsByKeys","getItemsByKeys","_getKeyByIndex","getKeyByIndex","_getIndexByKey","key","getIndexByKey","_getIndexByItemData","getIndexByItemData","_isKeySpecified","_getCombinedFilter","keyOf","store","_nullValueSelectionSupported","itemsGetter","_selection","allowNullValue","mode","equalByReference","addedItemKeys","removedItemKeys","_updateSelectedItems","totalCount","_getItemsCount","load","_dataController$loadO","dataController","customQueryParams","loadOptions","userData","loadFromStore","loadResult","_disposed","applyMapFunction","resolve","plainItems","dataFields","select","reduce","itemsCount","Strategy","_getSelectedItemIndices","keys","indices","getSelectedItemKeys","beginCache","endCache","_rendering","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","getItemDataByIndex","_setOptionWithoutOptionChange","selectedItemIndex","setSelection","promise","isOptionDefined","optionValue","_compareKeys","oldKeys","newKeys","newSelection","currentSelection","getSelectedItems","normalizedSelection","itemSelectPromise","_this$_itemSelectHand","_itemSelectHandler","always","_itemSelectPromise","isItemSelected","unselectItem","_selectedItemElement","normalizedItemIndex","getNormalizedIndex","_isItemSelected","_processSelectableItem","isSelected","_setAriaSelectionAttribute","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_updateSelection","_fireSelectionChangeEvent","addedItems","removedItems","getItemElement","triggerHandler","checkPending","_clearSelectedItems","_waitDeletingPrepare","deferred","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","state","argumentsSpecified","shouldDelete","reject","fail","_deleteItemFromDS","disabledState","dataStore","Error","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","deselect","_updateIndicesAfterIndex","_simulateOptionChange","_optionChangedAction","_deleteItemElementByIndex","deleteItemAtIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","getDataSource","beforeExecute","deleteItem","itemResponseWaitClass","resolveWith","rejectWith","reorderItem","toItemElement","strategy","$movingItem","$destinationItem","movingIndex","destinationIndex","canMoveItems","itemPlacementFunc","moveItemAtIndexToIndex","fromIndex","getIndex","toIndex","initDxExtensionComponent","vue_1","component_1","vue_helper_1","defineComponent","extends","initBaseComponent","mounted","$el","setAttribute","nodeOptions","getNodeOptions","$_isExtension","$_attachTo","attachTo","$_hasOwner","methods","$_createWidget","pullAllChildren","pullConfigComponents","isFragment","directChildren","allChildren","node","patchFlag","children","nodes","componentInfo","getComponentInfo","$_optionName","componentChildren","configurationChildren","$_predefinedProps","getNormalizedProps","props","$_isCollectionItem","$_expectedChildren","$_config","$_innerChanges","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","source","getImageContainer","append","__createBinding","create","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","__setModuleDefault","v","__importStar","mod","createExtensionComponent","createConfigurationComponent","createComponent","vue2Stategy","vue3Stategy","version_1","isVue3","getOption","deepWatch","setOptions","__importDefault","TemplatesManager","config_1","templates_discovering_1","dom_adapter_1","events_1","constants_1","_slots","_templates","_isDirty","_component","discover","slots","allKeysAreEqual","_prepareTemplates","resetDirtyFlag","name_1","createDxTemplate","_this","scopeData","placeholder","document","createElement","appendChild","mountedTemplate","mountTemplate","setClass","DX_TEMPLATE_WRAPPER_CLASS","nodeType","Node","TEXT_NODE","removalListener","nodeName","style","display","one","DX_REMOVE_EVENT","$destroy","PRIVATE_KEY_FIELD","repaintChangesOnly","_this$_dataController","_customizeStoreLoadOptions","isLoaded","_correctionIndex","storeLoadOptions","skip","reload","_refreshItemsCache","_findItemElementByKey","_isItemEquals","changes","_modifyByChanges","item1","item2","JSON","stringify","_isItemStrictEquals","_shouldAddNewGroup","change","type","_partialRefresh","_itemsCache","itemCache","_updateByChange","keyInfo","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","_getItemContainer","_afterItemElementInserted","changeData","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","removedItem","oldItem","$removedItemElement","group","nextSiblingElement","insertElement","isItemsUpdated","abstract","EditStrategy","collectionWidget","_collectionWidget","resultIndex","_denormalizeItemIndex","_equalKeys","key1","key2","_cache","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","_getItemByNormalizedIndex","el","isNode","_itemsFromSameParent","Math","round","PlainEditStrategy","_getPlainItems","splice","cache","movedItemData","configuration_component_1","extension_component_1","initDxComponent","setCompatOptions","setVModel","initDxConfiguration","getTemplatePropName","templateName","propName","uppercaseFirst","toUpperCase","substr","lowercaseFirst","toLowerCase","camelize","toComparable","Date","getTime","value1","value2","forEachChildNode","callback","childNodes","obj1","obj2","obj1Keys","obj1Keys_1","getOptionValue","optionPath","parts","Number","TEMPLATE_MULTIPLE_ROOTS_ERROR","DataControllerMock","loadSingle","cancelAll","addSearchFilter","pageSize","pageIndex","resetDataSourcePageIndex","isLastPage","searchValue","searchOperation","searchExpr","DataController","_dataSource","propValue","_userData","operationId","_addSearchFilter","_pageSize","operation","_applyMapFunction","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","postCtor","_disposeDataSource","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","fromUrlLoadMode","_addDataSourceHandlers","_this$option","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","_isDataSourceLoading","dispose","trigger","Event","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","setup","_contextMenuHandler","isSimulator","_holdHandler","_fireContextMenu","originalEvent","teardown","abs","HOLD_EVENT_NAME","HOLD_TIMEOUT","TOUCH_BOUNDARY","HoldEmitter","start","_startEventData","_startTimer","holdTimeout","_holdTimer","_requestAccept","_fireEvent","_forgetAccept","_touchWasMoved","_cancel","delta","x","y","_stopTimer","emitter","bubble","events","useLegacyTemplateEngine","watchChanges","rawData","fields","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","BindableTemplate","super","_fields","_fieldsMap","_watchMethod","contents","VueType","errors_1","TEMPLATE_PROP","Vue","asConfigurable","$vnode","componentOptions","hasTemplate","scopedSlots","templates","slotName","$scopedSlots","$slots","slot","$children","childComponent","defaultSlot","getSlot","inject","created","eventBus","$on","$forceUpdate","content","destroyed","$off","rawValue","toRaw","deep","hasProp","$options","hasVModelValue","vnode","VMODEL_NAME","$","getVueVersion","currentVersion","version","rendered","counter","removeChild","firstChild","appContext","app","unmount","configComponent","Ctor","propsData","_setOption","_clearItemKeys","preserve","isDeselect","isSelectAll","validate","remoteFilter","f","_removeTemplateProperty","localFilter","filterLength","encodeURI","needLoadAllData","filteredItems","toArray","keyHash","keyHashIndices","keyIndices","dataFilter","ignoreDisabledItems","selectedItemsLength","disabledItemsLength","getSelectableItems","_isAnyItemSelected","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","_loadFilteredData","selectionFilter","d","needResetSelectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","keyField","_getKeyExpr","_normalizeKey","skipFilter","_getFilterByKey","filterString","subFilter","_findSubFilter","filterOperator","filters","every","filterItem","_selectionFilter","currentFilter","currentOperation","needAddFilter","_denormalizeFilter","removedIndex","_removeSameFilter","filterIndex","shouldCleanFilter","_isOnlyNegativeFiltersLeft","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_addFilterOperator","_normalizeFilter","_isSimpleKeyFilter","inverted","_removeFilterByIndex","_filterIndex","_isLastSubFilter","componentFilter","SelectionFilterCreator","selectedItemKeyHashesMap","getLocalFilter","keyGetter","equalKeys","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","currentKeyValue","getCombinedFilter","dataSourceFilter","forceCombinedFilter","combinedFilter","normalizeKeys","selectedKeyHashesMap","normalizedKeys","keyValue","_initSelectedItemKeyHash","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","updateSelectedItemKeyHash","selectionFilterCreator","deselectedItems","internalKeys","setSelectedItems","log","_this$_lastLoadDeferr","_lastLoadDeferred","oldRequestItems","updatedKeys","added","removed","isDeselectAll","multiSelectEnabled","_isMultiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_concatRequestsItems","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","_requestInProgress","_collectLastRequestData","_updateKeysByLastRequestData","_loadSelectedItemsCore","_loadSelectedItems","_preserveSelectionUpdate","_replaceSelectionUpdate","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","ignoreIndicesMap","_getSelectedIndexByKey","_getSelectedIndexByHash","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","isDisabled","shift","_shiftSelectedKeyIndices","oldSelectedKeys","oldSelectedItems","shouldCheckPending","_this$_lastRequestDat3","includes","_updateAddedItemKeys","_updateRemovedItemKeys","_isItemSelectionInProgress","visibleOnly","_getVisibleSelectAllState","_getFullSelectAllState","selectedKeys","_selectionStrategy","_focusedItemIndex","filterIsChanged","_keys","setFocusOnly","_this$options$allowLo","_this$options","isSelectedItemsChanged","indexOffset","allowLoadByRange","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","it","loadIndex","_shiftFocusedItemIndex","isSelectable","isDataItem","itemKey","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","control","_resetItemSelectionWhenShiftKeyPressed","isItemDataSelected","clearSelectedItems","_removeSelectedItem","_addSelectedItem","isKeysEqual","_setSelectedItems","arg","getLoadOptions","itemIndexStep","startIndex","endIndex","indexOffsetDefined","focusedItem","focusedData","focusedKey","isFocusedItemSelected","isOnePage","_resetFocusedItemIndex","_onePageSelectAll","getSelectAllState","loadSelectedItemsWithFilter","BaseComponent","DxComponent","children_processing_1","configuration_1","templates_manager_1","inheritAttrs","provide","$_processChildren","attrs","id","$attrs","beforeUpdate","updated","_b","child","initOptionChangedFunc","getConfig","getInnerChanges","$_templatesManager","$_instance","beginUpdate","$_applyConfigurationChanges","isDirty","_c","_d","_e","$_pendingOptions","name_2","endUpdate","beforeDestroy","instance","componentsCountChanged","resetOption","thisComponent","$_getIntegrationOptions","$_WidgetClass","$_createEmitters","integrationOptions","$_getWatchMethod","$_getExtraIntegrationOptions","name_3","valueGetter","valueChangeCallback","skipImmediate","newValue","_children","$listeners","listenerName","cleanWidgetNode","removedNodes","childNode","parentNode","isExtension","hasAttribute","restoreNodes","onInitializing","childExtension","componentInstance","configurationTemplate","namedTeplates","declaredTemplates","getChildren","componentChildren_1","configurationDefaultTemplate","clearConfiguration","newContent","getConfigurationOptions","mount","add","$_updatedHandler","unmounted","h","INVISIBLE_STATE_CLASS","DISABLED_STATE_CLASS","forcibleWatcher","fn","filteredCallback","force","CollectionItem","_$element","_rawData","$placeholder","_watchers","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","exprGetter","watcher","_dirty","_updateOwnerFocus","ownerComponent","DxExtensionComponent","DxConfiguration","callbacks_1","includeAttrs","getAttrs","attributes","attrValue","defaultSlots","proxy","fire","beforeUnmount","getComponentProps","getVModelValue","templatesRenderAsynchronously","$_hasAsyncTemplate","childExtenton","parentPath","beforeMount","$parent","getNodeTypeOfComponent","usedConfigurationProps","hasChildren","subTree","findConfigurationComponents","hasInlineTemplate","createApp","setAppContext","compatConfig","MODE","prop","modelValue","emits","setCustomPluginsData","parentAppContext","_context","components","setPrototypeOf","provides","getPrototypeOf","directives","mixins","childType","isConfiguration","isComment","Comment","toString","getKeyWrapper","getKey","getSameNewByOld","newIndexByKey","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","max","newItem","oldNextIndex","nextOldItem","isRemoved","oldIndex"],"mappings":";;;;;;;;;;;;GAcA,IAAIA,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAEhCN,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQE,yBAA2BF,EAAQG,wBAAqB,EAChE,IAAIC,EAAY,EAAQ,QACpBC,EAA+B,WAC/B,SAASA,EAAcC,EAAYC,EAAMC,EAAeC,EAAkBC,EAAkBC,EAAqBC,GAC7G3B,KAAK4B,YAAcP,EACnBrB,KAAK6B,MAAQP,EACbtB,KAAK8B,eAAiBP,GAAgC,GACtDvB,KAAK+B,sBAAwB,GAC7B/B,KAAKgC,oBAAsBP,EAC3BzB,KAAKiC,qBAAuBP,EAC5B1B,KAAKkC,kBAAoBV,GAAoB,GAC7CxB,KAAKmC,aAAeR,EACpB3B,KAAKoC,kBAAoB,GACzBpC,KAAKqC,YAAcrC,KAAKqC,YAAYC,KAAKtC,MA4M7C,OA1MAC,OAAOa,eAAeM,EAAcV,UAAW,OAAQ,CACnD6B,IAAK,WACD,OAAOvC,KAAK6B,OAEhBW,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,WAAY,CACvD6B,IAAK,WACD,OAAOvC,KAAK6B,OAAS7B,KAAKgC,kBACpB,GAAGU,OAAO1C,KAAK6B,MAAO,KAAKa,OAAO1C,KAAKiC,qBAAsB,KAC7DjC,KAAK6B,OAEfW,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,yBAA0B,CACrE6B,IAAK,WACD,OAAOvC,KAAKoC,mBAEhBI,YAAY,EACZC,cAAc,IAElBrB,EAAcV,UAAUiC,4BAA8B,WAClD3C,KAAKoC,kBAAoB,IAE7BnC,OAAOa,eAAeM,EAAcV,UAAW,WAAY,CACvD6B,IAAK,WACD,OAAOvC,KAAKmC,cAAgBnC,KAAKmC,aAAaS,SACxC,GAAGF,OAAO1C,KAAKmC,aAAaS,SAAU,KAAKF,OAAO1C,KAAK6C,UACvD7C,KAAK6C,UAEfL,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,cAAe,CAC1D6B,IAAK,WACD,OAAOvC,KAAKmC,cAEhBK,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,UAAW,CACtD6B,IAAK,WACD,OAAOvC,KAAK8C,UAEhBN,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,gBAAiB,CAC5D6B,IAAK,WACD,OAAOvC,KAAK8B,gBAEhBU,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,mBAAoB,CAC/D6B,IAAK,WACD,OAAOvC,KAAKkC,mBAEhBM,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,SAAU,CACrD6B,IAAK,WACD,OAAOvC,KAAK+B,uBAEhBS,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,oBAAqB,CAChE6B,IAAK,WACD,OAAOvC,KAAK+C,0BAEhBP,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,sBAAuB,CAClE6B,IAAK,WACD,OAAOvC,KAAKiC,sBAEhBO,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,mBAAoB,CAC/D6B,IAAK,WACD,OAAOvC,KAAKgC,mBAEhBQ,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,aAAc,CACzD6B,IAAK,WACD,OAAOvC,KAAK4B,aAEhBY,YAAY,EACZC,cAAc,IAElBrB,EAAcV,UAAUsC,KAAO,SAAUC,GACrCjD,KAAK8C,SAAWG,GAAoB,IAExChD,OAAOa,eAAeM,EAAcV,UAAW,oBAAqB,CAChEwC,IAAK,SAAUC,GACXnD,KAAKoD,mBAAqBD,GAE9BX,YAAY,EACZC,cAAc,IAElBrB,EAAcV,UAAU2C,qBAAuB,SAAUrC,GACrDhB,KAAK+C,yBAA2B/B,GAEpCI,EAAcV,UAAU4C,gBAAkB,SAAUC,IAC5C,EAAIpC,EAAUqC,SAASD,EAAKvC,MAAOuC,EAAKE,gBAG5CzD,KAAK0D,iBAAiBH,EAAKV,SAASc,MAAM,KAAMJ,IAEpDnC,EAAcV,UAAUkD,YAAc,WAClC5D,KAAK+B,sBAAwB,IAEjCX,EAAcV,UAAUmD,aAAe,SAAUvC,EAAMC,EAAeE,EAAkBD,GACpF,IAAIsC,EAAW9D,KAAKkC,kBAAkBZ,GAClCyC,EAAazC,EACb0C,EAAyBvC,EACzBqC,IACAE,EAAyBF,EAASrC,iBAC9BqC,EAASG,aACTF,EAAaD,EAASG,aAG9B,IAAIvC,GAAuB,EACvBsC,GAA0BD,IAC1BrC,EAAsB1B,KAAK+B,sBAAsBmC,QAAO,SAAUC,GAAK,OAAOA,EAAEtC,OAASsC,EAAEtC,QAAUkC,KAAevD,QAExH,IAAI4D,EAAgB,IAAIhD,EAAcpB,KAAK4B,YAAamC,EAAYxC,EAAeC,EAAkBwC,EAAwBtC,EAAqB1B,MAElJ,OADAA,KAAK+B,sBAAsBsC,KAAKD,GACzBA,GAEXhD,EAAcV,UAAU2B,YAAc,SAAUiC,EAAYtD,GACxD,IAAI6B,EAAW,CAAC7C,KAAK4C,SAAU0B,GAAYJ,QAAO,SAAU5D,GAAK,OAAOA,KAAMiE,KAAK,KACnFvE,KAAK4B,YAAYiB,EAAU7B,IAE/BI,EAAcV,UAAU8D,sBAAwB,WAC5C,IAAIC,EAAS,GAqBb,OApBAzE,KAAK+B,sBAAsB2C,SAAQ,SAAUC,GACzC,GAAKA,EAAE9C,MAAP,CAGA,IAAI+C,EAAc7E,EAASA,EAAS,GAAI4E,EAAEpD,eAAgBoD,EAAEH,yBAC5D,GAAKI,EAGL,GAAKD,EAAE3C,kBAGF,CACD,IAAI6C,EAAMJ,EAAOE,EAAE9C,OACdgD,GAAQC,MAAMC,QAAQF,KACvBA,EAAM,GACNJ,EAAOE,EAAE9C,OAASgD,GAEtBA,EAAIR,KAAKO,QARTH,EAAOE,EAAE9C,OAAS+C,MAWnBH,GAEXrD,EAAcV,UAAUsE,kBAAoB,WACxC,IAAIC,EAAY,GAEhB,OADAjF,KAAK+B,sBAAsB2C,SAAQ,SAAUP,GAAK,OAAOA,EAAEtC,QAAUoD,EAAUd,EAAEtC,QAAS,MACnF7B,KAAK8C,SAASoB,QAAO,SAAUS,GAAK,OAAQM,EAAUN,OAEjEvD,EAAcV,UAAUgD,iBAAmB,SAAUwB,EAAe3B,GAChE,GAA6B,IAAzB2B,EAAc1E,OAAlB,CAGA,IAAI2E,GAAa,EAAIhE,EAAUiE,eAAeF,EAAc,IAC5D,GAAIC,EAAWE,cAAgBH,EAAc1E,OAAS,EAAG,CACrD,IAAI8E,EAAetF,KAAKuF,iBAAiBJ,EAAWtC,UACpD,GAAIyC,EAEA,YADAA,EAAa5B,iBAAiBwB,EAAcM,MAAM,GAAIjC,GAG1DvD,KAAKyF,sBAAsBN,EAAW7D,KAAMiC,EAAKmC,UAAUC,OAAO3F,KAAK4C,SAAW,GAAGF,OAAO1C,KAAK4C,SAAU,KAAKF,OAAOyC,EAAW7D,MAAQ6D,EAAW7D,YAGrJtB,KAAKyF,sBAAsBN,EAAW7D,KAAMiC,EAAKvC,SAGzDI,EAAcV,UAAU6E,iBAAmB,SAAU1C,GACjD,IAAK,IAAI+C,EAAK,EAAGC,EAAK7F,KAAK+B,sBAAuB6D,EAAKC,EAAGrF,OAAQoF,IAAM,CACpE,IAAIN,EAAeO,EAAGD,GACtB,GAAIN,EAAazC,WAAaA,EAC1B,OAAOyC,IAKnBlE,EAAcV,UAAU+E,sBAAwB,SAAUnE,EAAMN,GACxDhB,KAAKoD,oBACLpD,KAAKoD,mBAAmB9B,EAAMN,IAG/BI,EAvNuB,GAyNlC,SAASF,EAAmB4E,EAAQC,EAAaC,GAC7C,IAAIC,EAAUH,GAAUA,EAAOd,oBAC3BiB,GACAA,EAAQvB,SAAQ,SAAUT,GACtB8B,EAAYG,OAAOjC,GAAY,SAAUjD,GAChCgF,EAAarF,eAAesD,IAC7B+B,EAAa/B,KAAgBjD,GAC7B8E,EAAOzD,YAAY4B,EAAYjD,UAE5BgF,EAAa/B,SAMpC,SAAShD,EAAyB6E,EAAQC,EAAaC,GACnDF,EAAOK,kBAAoB,SAAU7E,EAAMN,IAClC,EAAIG,EAAUqC,SAASxC,EAAO+E,EAAYK,OAAO9E,MAClD0E,EAAa1E,GAAQN,EACrB+E,EAAYM,MAAM,UAAY/E,EAAMN,KALhDD,EAAQG,mBAAqBA,EAS7BH,EAAQE,yBAA2BA,EACnCF,EAAQuF,QAAUlF,G,oVC3MdmF,EAAmB,gBACnBC,EAAa,UACbC,EAAwB,WACxBC,EAAiC,8BACjCC,EAAgB,aAChBC,EAAiB,cACjBC,EAA0B,QAC1BC,EAAqB,SACrBC,EAAsB,mBACtBC,EAA2B,wBAC3BC,EAAmB,sBACnBC,EAAyB,sBACzBC,EAAkB,8BAClBC,EAA0B,OAC1BC,EAAW,KACXC,EAAa,OACbC,EAAa,OACbC,EAAc,QACdC,EAAgB,SAChBC,EAAkB,WAClBC,EAAa,OACbC,EAAc,QACdC,EAAmB,OAAOC,QAAQ,CAClCC,iBAAkB,IAAMvB,EACxBwB,eAAgB,WACZ,IAAIC,EAAO,SAASC,EAAUC,GACrB,eAAoBA,KACrBA,EAAEC,iBACFD,EAAEE,kBACFrI,KAAKsI,WAAWJ,EAAUC,KAGlC,OAAO,OAAAI,EAAA,MAAOvI,KAAKwI,WAAY,CAC3BC,MAAO,SAASN,GACZA,EAAEC,iBACFpI,KAAK0I,iBAAiBP,IAE1BQ,MAAO3I,KAAK0I,iBACZE,UAAWX,EAAK3F,KAAKtC,KAAMuH,GAC3BsB,WAAYZ,EAAK3F,KAAKtC,KAAMwH,GAC5BsB,QAASb,EAAK3F,KAAKtC,KAAMqH,GACzB0B,UAAWd,EAAK3F,KAAKtC,KAAMsH,GAC3B0B,OAAQf,EAAK3F,KAAKtC,KAAMqH,GACxB4B,SAAUhB,EAAK3F,KAAKtC,KAAMsH,GAC1B4B,KAAMjB,EAAK3F,KAAKtC,KAAM4H,GACtBuB,IAAKlB,EAAK3F,KAAKtC,KAAM2H,MAG7Be,iBAAkB,SAASP,GACvB,IAAIiB,EAAe,eAAEpJ,KAAK2F,OAAO,mBACjC,GAAKyD,EAAa5I,OAAlB,CAGA,IAAI6I,EAAWrJ,KAAKsJ,aAAaF,GAC7B,OAASC,QAAY,IAAWA,GAAYA,EAASE,SACrDvJ,KAAKwJ,2BAA2BJ,EAAcC,EAASE,QAAS,CAC5DE,MAAOtB,IAGfnI,KAAK0J,kBAAkB,OAAAnB,EAAA,MAAO,GAAIJ,EAAG,CACjCwB,OAAQP,EAAa7G,IAAI,GACzBqH,cAAeR,EAAa7G,IAAI,QAGxCsH,mBAAoB,WAChB,OAAO,OAAAtB,EAAA,MAAOvI,KAAKwI,WAAY,CAC3BsB,eAAe,EACfC,eAAe,EACfC,MAAO,GACPC,aAAc,OACdC,eAAgB,KAChBC,YAAa,KACbC,WAAY,KACZC,gBAAiB,IACjBC,kBAAmB,KACnBC,qBAAsB,KACtBC,WAAYC,EAAA,KAAoBC,OAAO,iCACvCC,kBAAkB,EAClBC,WAAY,KACZC,gBAAiB,KACjBC,gBAAiB,GACjBC,qBAAsB,WACtBC,qBAAqB,EACrBC,eAAgB,KAChBC,iBAAa,EACbC,aAAc,SAASC,GACnB,OAAOA,EAAOA,EAAKC,cAAW,GAElCC,YAAa,SAASF,GAClB,OAAOA,EAAOA,EAAKG,aAAU,MAIzCC,MAAO,WACHxL,KAAKyL,wBACLzL,KAAK0L,sBACL1L,KAAKwI,WACLxI,KAAK2L,sBACL3L,KAAK4L,sBAETH,sBAAuB,WACnB,IAAIP,EAAclL,KAAK2F,OAAO,eAC9B3F,KAAK6L,eAAiBX,EAAc,eAAclL,KAAK2F,OAAO,qBAAkB,GAEpFmG,eAAgB,WACZ9L,KAAK+L,uBACL/L,KAAKgM,2BACLhM,KAAKwI,YAETyD,0BAA2B,WACvB,OAAO7E,GAEX4E,yBAA0B,WACtB,IAAIE,EAAYlM,KAAKmM,gBACrBnM,KAAKoM,iBAAiBC,oBAAoB,CACtCC,KAAM,IAAI,OAAiB,SAASC,EAAYnB,GACxC,eAAcA,GACdpL,KAAKwM,4BAA4BpB,EAAMmB,IAEnCL,GAAa,eAAWA,EAAUO,QAClCrB,EAAOc,EAAUO,KAAKrB,IAE1BmB,EAAWE,KAAKC,OAAO,eAActB,EAAM,QAEjD9I,KAAKtC,MAAOA,KAAK2M,qBAAsB3M,KAAK2F,OAAO,kCAAmCuG,MAGhGS,mBAAoB,WAChB,MAAO,CAAC,OAAQ,SAEpBR,cAAe,WACX,GAAInM,KAAK6L,eACL,MAAO,CACHY,KAAMzM,KAAK6L,iBAIvBW,4BAA6B,SAASpB,EAAMmB,GACpC,eAAUnB,EAAKqB,OACfF,EAAWE,KAAKrB,EAAKqB,MAErB,eAAUrB,EAAKwB,OACfL,EAAWK,KAAKxB,EAAKwB,OAG7Bb,qBAAsB,WAClB,IAAIc,EAAW,eAAc7M,KAAK8M,WAAYhG,GAC9C,GAAK+F,EAASrM,SAAUR,KAAK2F,OAAO,SAASnF,OAA7C,CAGA,IAAIwJ,EAAQ6C,EAASE,IAAIC,IACrB,IACIC,QAASA,EACThK,QAASA,GACT+J,EACAE,EAAqB,KAAKC,KAAKF,EAAQG,aAAenK,EAAQoK,SAMlE,OALIH,EACAjK,EAAQoK,SAAWrN,KAAKsN,qBAAqBL,GAE7C,eAAEA,GAASM,SAERtK,IAEXjD,KAAK2F,OAAO,QAASqE,KAEzBsD,qBAAsB,SAAShB,GAC3B,IAAIkB,EAAa3G,EAA0B,IAAI,OAC3C4G,EAAY,eAAEnB,GAAMoB,SAASC,QAAQC,WAAW,gBAAgBC,SAAS3G,GAE7E,OADAlH,KAAK8N,cAAcN,EAAYC,GACxBD,GAEXO,mBAAoB,WAChB,MAAO,CACHC,UAAU,IAGlBrC,oBAAqB,WACjB3L,KAAKiO,oBAAsB,GAE/BC,aAAc,WACV,OAAOlO,KAAK8M,YAEhBqB,gBAAiB,SAAShG,GAEtB,GADAnI,KAAKwI,SAAS3H,MAAMb,KAAMO,WACrBP,KAAKoO,eAAejG,EAAEwB,QAA3B,CAGA,IAAI0E,EAAkB,eAAErO,KAAK2F,OAAO,mBACpC,GAAI0I,EAAgB7N,OAChBR,KAAKsO,gBAAgBD,OAClB,CACH,IAAIE,EAAcvO,KAAKwO,iBACnBD,EAAY/N,QACZR,KAAK2F,OAAO,iBAAkB,eAAiB4I,OAI3DE,iBAAkB,WACdzO,KAAKwI,SAAS3H,MAAMb,KAAMO,WAC1B,IAAImO,EAAU,eAAE1O,KAAK2F,OAAO,mBAC5B3F,KAAK2O,wBAAwBD,GAAS,IAE1C,kBAAkB5B,GACd,OAAOA,EAAS8B,KAAK5O,KAAK+H,mBAE9ByG,eAAgB,SAASK,GACrB,IAAIR,EAAkB,eAAErO,KAAK2F,OAAO,mBACpC,GAAI0I,EAAgB7N,OAChB,OAAO6N,EAEX,IAAIS,EAAQ9O,KAAK2F,OAAO,uBAAyB3F,KAAK2F,OAAO,iBAAmB,EAC5EoJ,EAAiB/O,KAAKgP,oBACtBC,EAAYF,EAAevO,OAAS,EAIxC,OAHIsO,EAAQ,IACRA,EAAQD,EAAOI,EAAY,GAExBF,EAAeG,GAAGJ,IAE7BxG,WAAY,SAASJ,GACjB,IACIiH,EADAC,EAASpP,KAAKqP,qBAElB,OAAQnH,GACJ,KAAKT,EACL,KAAKJ,EACD8H,EAAanP,KAAKsP,UAAUF,GAC5B,MACJ,KAAK1H,EACL,KAAKJ,EACD6H,EAAanP,KAAKuP,UAAUH,GAC5B,MACJ,KAAK5H,EACD2H,EAAanP,KAAK2F,OAAO,cAAgB3F,KAAKsP,UAAUF,GAAUpP,KAAKuP,UAAUH,GACjF,MACJ,KAAK7H,EACD4H,EAAanP,KAAK2F,OAAO,cAAgB3F,KAAKuP,UAAUH,GAAUpP,KAAKsP,UAAUF,GACjF,MACJ,KAAKxH,EACDuH,EAAaC,EAAOI,QACpB,MACJ,KAAK7H,EACDwH,EAAaC,EAAOP,OACpB,MACJ,QACI,OAAO,EAEX,IAAMM,EAAW3O,QACjBR,KAAK2F,OAAO,iBAAkB,eAAiBwJ,KAGvDM,iBAAkB,SAASC,GAEvB,OADAA,EAAgBA,GAAiB1P,KAAK2P,gBAC/BD,EAAcxL,OAAO,aAEhCmL,mBAAoB,SAASK,GACzB,OAAO1P,KAAKyP,iBAAiBC,IAEjCJ,UAAW,SAASF,GAChB,IAAIV,EAAU1O,KAAKwO,iBACfoB,EAAcR,EAAON,MAAMJ,GAC3BmB,EAAQT,EAAOP,OACfiB,EAAQ,eAAEV,EAAOQ,EAAc,IAC/BG,EAAO/P,KAAK2F,OAAO,iBAIvB,OAHI,IAAMmK,EAAMtP,QAAUuP,IACtBD,EAAQD,GAELC,GAEXP,UAAW,SAASH,GAChB,IAAIV,EAAU1O,KAAKwO,gBAAe,GAC9BoB,EAAcR,EAAON,MAAMJ,GAC3BsB,EAASZ,EAAOI,QAChBM,EAAQ,eAAEV,EAAOQ,EAAc,IAC/BG,EAAO/P,KAAK2F,OAAO,iBAIvB,OAHI,IAAMmK,EAAMtP,QAAUuP,IACtBD,EAAQE,GAELF,GAEXG,mBAAoB,SAASvB,GACzB1O,KAAKkQ,WAAWxB,IAEpBC,wBAAyB,SAAShF,EAAQwG,EAAWC,GACjD,IAAI1B,EAAU,eAAE/E,GACZ+E,EAAQlO,SACRR,KAAKqQ,2BACLrQ,KAAKsQ,eAAe5B,EAAS0B,GAC7BpQ,KAAKuQ,kBAAkBJ,EAAWzB,IAEtC1O,KAAKwQ,iCAETH,yBAA0B,SAAS3B,GAC/B1O,KAAKyQ,QAAQ,mBAAoB,eAAUzQ,KAAK2F,OAAO,mBAAqB3F,KAAK0Q,mBAAqB,KAAMhC,IAEhH4B,eAAgB,SAAS5B,EAAS0B,IACzBA,GAAmBpQ,KAAK2F,OAAO,kBAChC3F,KAAKyQ,QAAQ,KAAMzQ,KAAK0Q,mBAAoBhC,GAE5C1O,KAAKyQ,QAAQ,KAAM,KAAM/B,IAGjCiC,YAAa7D,GAAYA,GAAY,SAAW,eAAEA,GAAU8D,KAAK,iBACjEtC,gBAAiB,SAASI,GACtB,GAAKA,GAAYA,EAAQlO,OAAzB,CAGAR,KAAK2O,wBAAwBD,GAAS,GACtC1O,KAAKuK,qBAAqBvK,KAAK0Q,oBAC/B,IACI5G,cAAeA,GACf9J,KAAK2F,SACLkL,EAAmB7Q,KAAK2Q,YAAYjC,GACpC5E,IAAkB+G,GAClB7Q,KAAKiQ,mBAAmBvB,KAGhCoC,uBAAwB,SAASxE,GAC7B,IAAIyE,EAAS,iBACTC,EAAOhR,KAQX,OAPAA,KAAKiR,eAAeC,MAAK,WACrB,IAAIpB,EAAQ,eAAE9P,MACd,GAAI8P,EAAM1E,KAAK4F,EAAKG,kBAAoB7E,EAEpC,OADAyE,EAASjB,GACF,KAGRiB,GAEXK,gBAAiB,SAAS9E,GACtB,OAAOtM,KAAK2F,OAAO,SAAS0L,QAAQ/E,IAExCgF,mBAAoB,SAAShF,EAAMiF,EAAUvQ,EAAOwQ,GAChD,IAAI1B,EAAQ9P,KAAK8Q,uBAAuBxE,GACxC,GAAKwD,EAAMtP,OAAX,CAGKR,KAAKyR,YAAYC,UAAUC,YAAY7B,GAAO8B,aAAaL,EAAUvQ,IACtEhB,KAAK6R,aAAa/B,EAAOxD,GAE7B,IAAIwF,EAAc,aAAeP,GAAYvQ,EACzC8Q,GACA9R,KAAK+R,gBAAgBjC,KAG7B,gBAAgBA,GACRA,EAAMkC,GAAGhS,KAAK2F,OAAO,oBACrB3F,KAAK2F,OAAO,iBAAkB,OAGtCkM,aAAc,SAAS/B,GACnB,IAAIzG,EAAWrJ,KAAKsJ,aAAawG,GAC7BhB,EAAQgB,EAAM1E,KAAKpL,KAAKiS,iBAC5BjS,KAAKkS,YAAYlS,KAAKiO,oBAAsBa,EAAOzF,EAAU,KAAMyG,IAEvEU,8BAA+B,OAC/B2B,eAAgB,SAAS5O,GACrB,GAAI,UAAYA,EAAKjC,KAAM,CACvB,IAAI8Q,EAAU7O,EAAKV,SAASwP,MAAMlL,GAClC,GAAIiL,GAAWA,EAAQ5R,OAAQ,CAC3B,IAAI+Q,EAAWa,EAAQA,EAAQ5R,OAAS,GACpC8R,EAAW/O,EAAKV,SAAS0P,QAAQ,IAAMhB,EAAU,IACjDjF,EAAOtM,KAAK2F,OAAO2M,GAEvB,YADAtS,KAAKsR,mBAAmBhF,EAAMiF,EAAUhO,EAAKvC,MAAOuC,EAAKE,gBAIjE,OAAQF,EAAKjC,MACT,IAAK,QACL,IAAK,kBACL,IAAK,uBACL,IAAK,qBACDtB,KAAK2L,sBACL3L,KAAKwS,cACL,MACJ,IAAK,aACDxS,KAAK4L,qBACL5L,KAAKyS,sBACL,MACJ,IAAK,aACL,IAAK,mBACDzS,KAAKyS,sBACL,MACJ,IAAK,eACDzS,KAAKwS,cACL,MACJ,IAAK,iBACDxS,KAAK0S,0BACL,MACJ,IAAK,cACD,MACJ,IAAK,aACL,IAAK,kBACD1S,KAAK2S,mBACL,MACJ,IAAK,oBACD3S,KAAK4S,0BACL,MACJ,IAAK,uBACD5S,KAAKuK,qBAAuBvK,KAAK6S,sBAAsB,wBACvD,MACJ,IAAK,gBACL,IAAK,gBACL,IAAK,sBACD,MACJ,IAAK,iBACD7S,KAAK2O,wBAAwBpL,EAAKE,eAAe,GAAO,GACxDzD,KAAKsO,gBAAgB,eAAE/K,EAAKvC,QAC5B,MACJ,IAAK,cACDhB,KAAKyL,wBACLzL,KAAKgM,2BACLhM,KAAKwS,cACL,MACJ,IAAK,cACL,IAAK,eACDxS,KAAKwS,cACL,MACJ,QACIxS,KAAKwI,SAASjF,KAG1BiP,YAAa,WAET,OADAxS,KAAK2F,OAAO,iBAAkB,MACvB3F,KAAKwI,SAAS3H,MAAMb,KAAMO,YAErCuS,cAAe,WAEX,OADA9S,KAAK+S,yBACE/S,KAAK6K,gBAAgBmI,gBAEhCD,uBAAwB,WACpB/S,KAAKiT,4BAA8B,GAEvCC,uBAAwB,WACpBlT,KAAKiT,6BAA+B,GAExCE,uBAAwB,WACpBnT,KAAKiT,4BAA8B,MAEvCG,0BAA2B,SAASC,GAChC,IAAIrJ,EAAQhK,KAAK2F,OAAO,SACpB3F,KAAKsT,cAAgBtJ,GAAShK,KAAKuT,sBACnCvT,KAAKiO,oBAAsBjE,EAAMxJ,OAC5BR,KAAKwT,gBAAkB,IAAMxT,KAAKiT,8BACnCjT,KAAK2F,SAASqE,MAAQA,EAAMtH,OAAO2Q,EAAS7N,MAAMxF,KAAKiT,+BAE3DjT,KAAKmT,yBACLnT,KAAKyT,mBAELzT,KAAK2F,OAAO,QAAS0N,EAAS7N,UAGtCiO,gBAAiB,WACbzT,KAAK0T,kBACL1T,KAAK2T,kBAETC,4BAA6B,WACzB5T,KAAKmT,yBACLnT,KAAK2F,OAAO,QAAS3F,KAAK2F,OAAO,WAErC4N,mBAAoB,WAChB,OAAO,MAAQvT,KAAKiT,6BAA+BjT,KAAK6T,4BAE5DA,yBAA0B,WACtB,OAAO,GAEXC,OAAQ,WACJ9T,KAAK+T,mBACL/T,KAAKgU,sBACLhU,KAAKiU,mBAAqBjU,KAAKiU,WAC/BjU,KAAKkU,qBAETF,oBAAqB,WACjB,eAAEhU,KAAKmU,kBAAkBC,SAE7BC,SAAU,WACNrU,KAAKwI,WACL8L,aAAatU,KAAKuU,oBAEtBC,SAAU,WACNxU,KAAK2L,sBACL3L,KAAKwI,SAAS3H,MAAMb,KAAMO,YAE9B4T,eAAgB,WACZ,OAAOnU,KAAK8M,YAEhB2H,WAAY,WACR,OAAOjO,GAEXkO,kBAAmB,WACf,OAAO1U,KAAKyU,aAAehO,GAE/BkO,mBAAoB,WAChB,OAAO5N,GAEX6N,uBAAwB,WACpB,OAAO5N,GAEX6N,cAAe,WACX,MAAO,IAAM7U,KAAKyU,cAEtBtD,aAAc,WACV,OAAOxK,GAEXsL,cAAe,WACX,OAAOrL,GAEX+I,cAAe,WACX,OAAO3P,KAAKmU,iBAAiBvF,KAAK5O,KAAK6U,kBAE3CC,YAAa,WACT9U,KAAKwI,WACLxI,KAAKuK,qBAAuBvK,KAAK6S,sBAAsB,wBACvD7S,KAAK8M,WAAWe,SAAStH,GACzBvG,KAAK0T,mBAETA,gBAAiB,gBAAc,WAC3B1T,KAAK+U,wBAETpB,eAAgB,WACZ3T,KAAKgV,2BAETC,QAAS,WACLjV,KAAKwI,WACLxI,KAAKkV,oBACLlV,KAAK2S,mBACL3S,KAAK4S,2BAETuC,iBAAkB,IAAMC,EAAA,KAAcC,KACtC,oBACI,IAAIC,EAAetV,KAAK6U,gBACpBU,EAAevV,KAAKmV,mBACpBK,EAAsB,eAAaC,EAAA,KAAgBzV,KAAK0V,MACxDC,EAAwB,eAAaJ,EAAcvV,KAAK0V,MACxDE,EAAgB,IAAI,OAAOrS,IAC3B,IACIkG,MAAOA,GACPlG,EACJvD,KAAK6V,wBAAwBpM,KAEjC,OAAaqM,IAAI9V,KAAKmU,iBAAkBqB,EAAqBF,GAC7D,OAAaQ,IAAI9V,KAAKmU,iBAAkBwB,EAAuBL,GAC/D,OAAaS,GAAG/V,KAAKmU,iBAAkBqB,EAAqBF,EAAcnN,GAAKnI,KAAK0J,kBAAkBvB,IACtG,OAAa4N,GAAG/V,KAAKmU,iBAAkBwB,EAAuBL,EAAcnN,IACxEyN,EAAcI,QAAQ,CAClB/I,QAAS,eAAE9E,EAAEwB,QACbF,MAAOtB,OAInBuB,kBAAmB,SAASvB,EAAG5E,EAAMuC,GACjC9F,KAAKiW,oBAAoB9N,EAAG,cAAe5E,EAAMuC,IAErD+P,wBAAyB,SAAS1N,GACzBnI,KAAK2F,OAAO,uBAGjB3F,KAAKkW,kBAAoB,WAGrB,GAFA5B,aAAatU,KAAKuU,mBAClBvU,KAAKkW,kBAAoB,MACrB/N,EAAEgO,qBAAN,CAGA,IAAIzH,EAAU,eAAEvG,EAAEwB,QACdyM,EAAe1H,EAAQ2H,QAAQrW,KAAK2P,iBACpC2G,EAAoBtW,KAAKuW,kBAAkB7H,GAC3C0H,EAAa5V,QAAUR,KAAKoO,eAAe,OAASkI,QAAqB,IAAWA,OAAoB,EAASA,EAAkB/T,IAAI,KACvIvC,KAAK2F,OAAO,iBAAkB,eAAiByQ,MAErD9T,KAAKtC,MACPA,KAAKuU,kBAAoBiC,WAAWxW,KAAKyW,uBAAuBnU,KAAKtC,SAEzEuW,kBAAmB,SAAS7H,GACxB,GAAIA,EAAQsD,GAAG,QACX,OAAOtD,EAEPA,EAAUA,EAAQgI,SAClB,MAAOhI,EAAQlO,SAAW,aAAWmW,WAAWjI,EAAQnM,IAAI,MAAQ,aAAWqU,mBAAmBlI,EAAQnM,IAAI,IAAK,CAC/G,GAAImM,EAAQsD,GAAG,QACX,OAAOtD,EAEXA,EAAUA,EAAQgI,WAI9BD,uBAAwB,WACpBzW,KAAKkW,mBAAqBlW,KAAKkW,qBAEnCW,kBAAmB,WACf7W,KAAKwI,SAAS3H,MAAMb,KAAMO,WAC1BP,KAAKyW,0BAET9D,iBAAkB,WACd,IAAImE,EAAiB9W,KAAKmU,iBACtBmB,EAAetV,KAAK6U,gBACpBkC,EAAY,eAAaC,EAAA,KAAU1V,KAAMtB,KAAK0V,MAClD,OAAaI,IAAIgB,EAAgBC,EAAWzB,GAC5C,OAAaS,GAAGe,EAAgBC,EAAWzB,EAAc,CACrD2B,QAASjX,KAAKkX,mBACflX,KAAKmX,iBAAiB7U,KAAKtC,QAElCkX,gBAAiB,WACb,OAAOlX,KAAK2F,OAAO,oBAEvByR,qBAAsB,WAClB,OAAOpX,KAAKqX,sBAAsB,eAEtCF,iBAAkB,SAAShP,GACnBnI,KAAKoX,uBACLpX,KAAKiW,oBAAoB9N,EAAG,cAE5BA,EAAEmP,QAAS,GAGnB1E,wBAAyB,WACrB,IAAIkE,EAAiB9W,KAAKmU,iBACtBmB,EAAetV,KAAK6U,gBACpBkC,EAAY,eAAa,OAAsB/W,KAAK0V,MACxD,OAAaI,IAAIgB,EAAgBC,EAAWzB,GAC5C,OAAaS,GAAGe,EAAgBC,EAAWzB,EAActV,KAAKuX,wBAAwBjV,KAAKtC,QAE/FwX,4BAA6B,WACzB,OAAOxX,KAAKqX,sBAAsB,sBAEtCE,wBAAyB,SAASpP,GAC1BnI,KAAKwX,8BACLxX,KAAKiW,oBAAoB9N,EAAG,qBAE5BA,EAAEmP,QAAS,GAGnBvC,mBAAoB,WAChB,IAAI/K,EAAQhK,KAAK2F,OAAO,UAAY,GAChC3F,KAAKiO,oBACLjO,KAAKyX,aAAazN,EAAMxE,MAAMxF,KAAKiO,sBAEnCjO,KAAKyX,aAAazN,IAG1ByN,aAAc,SAASzN,GACfA,EAAMxJ,QACN,eAAKwJ,EAAO,SAAS8E,EAAOzF,GACxBrJ,KAAKkS,YAAYlS,KAAKiO,oBAAsBa,EAAOzF,IACrD/G,KAAKtC,OAEXA,KAAKyS,uBAETP,YAAa,SAASpD,EAAOzF,EAAUkD,EAAYmL,GAC/C,IAAIC,EACAC,EAAY,QAAUD,EAAc,OAAS7I,QAAS,IAAWA,OAAQ,EAASA,EAAMxC,YAAS,IAAWqL,EAAcA,EAAc7I,EAC5IvC,EAAaA,GAAcvM,KAAKmU,iBAChC,IAAI0D,EAAa7X,KAAK8X,iBAAiBF,EAAWvO,EAAUkD,EAAYmL,GACxE1X,KAAK+X,gBAAgBF,EAAYxO,EAAUuO,GAC3CC,EAAWjH,KAAK5Q,KAAK2F,OAAO,oBAC5B3F,KAAKgY,sBAAsB3O,EAAUwO,GACrC,IAAII,EAAejY,KAAKkY,gBAAgBL,GACpCM,EAAuBnY,KAAKoY,mBAAmB,CAC/CtJ,MAAO8I,EACPvO,SAAUA,EACVgP,UAAW,eAAiBJ,GAC5BK,aAActY,KAAK0U,oBACnB6D,oBAAqBvY,KAAK2F,OAAO,kBAEjCqL,EAAOhR,KAUX,OATA,eAAKmY,GAAsBK,MAAK,SAAUP,GACtCjH,EAAKyH,uBAAuB,CACxBC,YAAab,EACbc,YAAaV,EACb5O,SAAUA,EACVuO,UAAWA,IAEf5G,EAAK4H,yBAAyB9J,EAAOzF,EAAU,eAAiBwO,OAE7DA,GAEXK,gBAAiB,SAASL,GACtB,IAAII,EAAeJ,EAAWjJ,KAAK,IAAMlI,GAEzC,OADAuR,EAAaY,YAAYnS,GAClBuR,GAEXD,sBAAuB,SAAS3O,EAAUD,GACjCC,GAAaA,EAASE,SAG3B,OAAawM,GAAG3M,EAAcqM,EAAA,KAAgB,SAAStN,GACnDnI,KAAKwJ,2BAA2BJ,EAAcC,EAASE,QAAS,CAC5DE,MAAOtB,KAEb7F,KAAKtC,QAEXoY,mBAAoB,SAAS7U,GACzB,IAAIuV,EAAmB9Y,KAAK+Y,qBAAqBxV,GAC7C0G,EAAejK,KAAKgZ,aAAaF,GACrC9Y,KAAKiZ,uBAAuB1V,GAC5B,IAAI2V,EAAkB,eAAElZ,KAAKmZ,sBAAsBlP,EAAc1G,IACjE,OAAK2V,EAAgBE,SAASlS,GAGvBlH,KAAKqZ,yBAAyB9V,EAAM2V,GAFhC3V,EAAK8U,WAIpBgB,yBAA0B,SAAS9V,EAAM+V,GAIrC,OAHA,eAAE/V,EAAK8U,WAAWkB,YAAYD,GAC9B/V,EAAK8U,UAAY,eAAiBiB,GAClCtZ,KAAKiZ,uBAAuB1V,GACrB+V,GAEXL,uBAAwB,SAAS1V,GAC7B,IAAIiW,EAAU,CAAChT,EAAaC,EAAuBlD,EAAK+U,cACxD,eAAE/U,EAAK8U,WAAWxK,SAAS2L,EAAQjV,KAAK,OAE5CkV,uBAAwB,SAASlN,EAAYsL,EAAY/I,GACrD+I,EAAW6B,SAASnN,IAExBuL,iBAAkB,SAAShJ,EAAOzF,EAAUkD,EAAYmL,GACpD,IAAIG,EAAa,eAAE,SAOnB,GANA,IAAI7X,KAAKyR,YAAYC,UAAUmG,EAAY7X,KAAK2Z,eAAgBtQ,GAAY,IACxEqO,GAAkBA,EAAelX,OACjCkX,EAAe6B,YAAY1B,GAE3B7X,KAAKyZ,uBAAuB7Y,KAAKZ,KAAMuM,EAAYsL,EAAY/I,GAE/D9O,KAAK2F,OAAO,sBAAuB,CACnC,IAAIiU,EAAe5Z,KAAK6L,eAAiB7L,KAAK6L,eAAexC,GAAYA,EACzEwO,EAAWjH,KAAK,QAASgJ,GAE7B,OAAO/B,GAEX8B,aAAc,WACV,IAAI3I,EAAOhR,KACX,MAAO,CACH6Z,YAAa,WACT,OAAO7I,EAAKrL,OAAO,mCAEvBmU,MAAO9I,EACP+I,YAAa,SAASC,GAClB,IAAIC,EAAOjJ,EAAKrL,OAAOqU,EAAQ,QAC3BE,EAAS,eAAcD,GAC3B,OAAOC,KAInBzB,uBAAwB,OACxBG,yBAA0B,SAAS9J,EAAOzF,EAAUqP,GAChD1Y,KAAKma,sBAALna,CAA4B,CACxB0Y,YAAaA,EACbd,UAAW9I,EACXzF,SAAUA,KAGlB0O,gBAAiB,SAAS9K,EAAS7B,EAAM0D,GACrC7B,EAAQY,SAAS,CAACrH,EAAYxG,KAAKyU,cAAclQ,KAAK,MAAM6G,KAAKpL,KAAKmR,eAAgB/F,GAAMA,KAAKpL,KAAKiS,gBAAiBnD,IAE3H4D,wBAAyB,WACrB,OAAO1S,KAAKoa,kBAAoBpa,KAAK6S,sBAAsB,iBAAkB,CACzE5F,QAASjN,KAAKiN,UACdoN,kBAAmB,CAAC,WAAY,YAChCC,SAAU,eAGlBH,qBAAsB,WAClB,OAAOna,KAAKoa,mBAAqBpa,KAAK0S,2BAE1CqG,qBAAsB,SAASxV,GAC3B,IAAI6H,EAAO7H,EAAK8F,SACZkR,EAAmBhX,EAAKgX,kBAAoBva,KAAK2F,OAAO,wBACxD0H,EAAWjC,GAAQA,EAAKmP,GAC5B,OAAOlN,GAAY9J,EAAKgV,qBAE5BY,sBAAuB,SAASlP,EAAcuQ,GAC1C,OAAOvQ,EAAawQ,OAAO,CACvBC,MAAOF,EAAWnR,SAClBgP,UAAWmC,EAAWnC,UACtBvJ,MAAO0L,EAAW1L,MAClB6L,WAAY3a,KAAK4a,wBAAwB3Q,EAAcuQ,MAG/DI,wBAAyB,WACrB,OAAO,QAEXC,uBAAwB,WACpB,OAAO7a,KAAKmU,kBAEhB1B,oBAAqB,SAASzI,GAC1BA,EAAQA,GAAShK,KAAK2F,OAAO,SAC7B,IAAI6E,EAAaxK,KAAK2F,OAAO,cACzBmV,GAActQ,GAAcR,GAASA,EAAMxJ,QAAUR,KAAK6K,gBAAgBkQ,YAC1ED,GAAc9a,KAAKgb,WACnBhb,KAAKgb,SAASzN,SACdvN,KAAKgb,SAAW,KAChBhb,KAAKyQ,QAAQ,aAAS,IAErBqK,IACD9a,KAAKgb,SAAWhb,KAAKgb,UAAY,eAAE,SAASnN,SAAS,oBACrD7N,KAAKgb,SAAStB,SAAS1Z,KAAK6a,0BACxB7a,KAAK2F,OAAO,oBACZ3F,KAAKgb,SAASvO,KAAKjC,GAEnBxK,KAAKgb,SAASpO,KAAKpC,IAG3BxK,KAAK8M,WAAWmO,YAAYhU,GAAmB6T,IAEnD7E,oBAAqB,SAASiF,EAASC,EAAmBC,EAAYC,GAClErb,KAAKsb,kBAAkBJ,EAAQvR,OAAQwR,EAAmB,OAAA5S,EAAA,MAAO6S,EAAY,CACzE3R,MAAOyR,IACPG,IAERC,kBAAmB,SAASC,EAAWJ,EAAmBC,EAAYC,GAClE,IAAIG,EAASxb,KAAK6S,sBAAsBsI,EAAmB,OAAA5S,EAAA,MAAO,CAC9DkT,qBAAsB,eACvBJ,IACH,OAAOrb,KAAK0b,sBAAsBH,EAAWC,EAAQJ,IAEzD5R,2BAA4B,SAAS+R,EAAWpY,EAASiY,EAAYC,GACjE,IAAIG,EAASxb,KAAK2b,cAAcxY,EAAS,OAAAoF,EAAA,MAAO,CAC5CkT,qBAAsB,eACvBJ,IACH,OAAOrb,KAAK0b,sBAAsBH,EAAWC,EAAQJ,IAEzDM,sBAAuB,SAASH,EAAWC,EAAQJ,GAC/C,IAAIhS,EAAepJ,KAAK4b,oBAAoB,eAAEL,IAC1ChY,EAAO,OAAAgF,EAAA,MAAO,GAAI6S,GACtB,OAAOI,EAAO,OAAAjT,EAAA,MAAO6S,EAAYpb,KAAK6b,kBAAkBzS,GAAe7F,KAE3EsY,kBAAmB,SAASzS,GACxB,MAAO,CACHsP,YAAa,eAAiBtP,GAC9BwO,UAAW5X,KAAK2P,gBAAgBb,MAAM1F,GACtCC,SAAUrJ,KAAKsJ,aAAaF,KAGpCwS,oBAAqB,SAAS9O,GAC1B,OAAO,eAAEA,GAAUuJ,QAAQrW,KAAK6U,kBAEpCvL,aAAc,SAASoP,GACnB,OAAO,eAAEA,GAAatN,KAAKpL,KAAKmR,iBAEpC2K,sBAAuB,SAAS9R,EAAO+R,GACnC,IAAIhL,EAAS,EAMb,OALI/G,GACA,eAAKA,GAAO,SAAUgS,EAAG1P,GACrByE,GAAU,eAAczE,EAAMyP,IAAiB,MAGhDhL,GAEXL,iBAAkB,WAId,OAHK1Q,KAAKic,iBACNjc,KAAKic,eAAiB,MAAQ,IAAI,QAE/Bjc,KAAKic,gBAEhBhL,aAAc,WACV,OAAOjR,KAAK2P,iBAEhBuM,eAAgB,WACZ,OAAOlc,KAAKmU,oBAEjBgI,QAAQ,QACXtU,EAAiB6J,UAAY,OACd,Q,+DCp3BX0K,GAAyB,iBACzBC,IAAsB,EACtBC,GAAc,SAASxN,GACvB,OAAOA,IAAUuN,IAEjB,GAAmB,EAAqBvU,QAAQ,CAChDyU,uBAAwB,WACpBvc,KAAKwI,WACL,OAAAD,EAAA,MAAOvI,KAAKwc,oBAAqB,CAC7BC,cAAc,KAGtB5S,mBAAoB,WAChB,OAAO,OAAAtB,EAAA,MAAOvI,KAAKwI,WAAY,CAC3BkU,cAAe,OACfC,mBAAmB,EACnBC,eAAe,EACfC,cAAe,GACfC,iBAAkB,GAClBC,yBAA0B,KAC1BC,QAAS,KACTC,cAAeZ,GACfI,aAAc,KACdS,mBAAoB,KACpBC,gBAAiB,KACjBC,eAAgB,KAChBC,cAAe,QAGvBC,KAAM,SAASrQ,EAAShK,GACpBjD,KAAKud,aAAeta,GAAW,GAC/BjD,KAAKwI,SAASyE,EAAShK,IAE3BuI,MAAO,WACHxL,KAAKwd,oBACLxd,KAAKwI,WACLxI,KAAKyd,iBACLzd,KAAK0d,wBAETD,eAAgB,WACZzd,KAAK2d,WAAa,eAAc3d,KAAK2F,OAAO,aAEhDiY,gBAAiB,SAASf,GACtB,OAAO7c,KAAK6d,cAAcC,eAAejB,IAE7CkB,gBAAiB,SAASjB,EAAkBD,GACxC,OAAO7c,KAAK6d,cAAcG,eAAelB,EAAkBD,IAE/DoB,eAAgB,SAASnP,GACrB,OAAO9O,KAAK6d,cAAcK,cAAcpP,IAE5CqP,eAAgB,SAASC,GACrB,OAAOpe,KAAK6d,cAAcQ,cAAcD,IAE5CE,oBAAqB,SAASjV,GAC1B,OAAOrJ,KAAK6d,cAAcU,mBAAmBlV,IAEjDmV,gBAAiB,WACb,QAASxe,KAAK6K,gBAAgBuT,OAElCK,mBAAoB,WAChB,OAAOze,KAAK6K,gBAAgB3G,UAEhCka,IAAK,WACD,OAAIpe,KAAK2F,OAAO,WACL3F,KAAK2F,OAAO,WAEhB3F,KAAK6K,gBAAgBuT,OAEhCM,MAAO,SAASpS,GACZ,IAAI8R,EAAM9R,EAMV,OALItM,KAAK2F,OAAO,WACZyY,EAAMpe,KAAK2d,WAAWrR,GACftM,KAAK6K,gBAAgB8T,UAC5BP,EAAMpe,KAAK6K,gBAAgB6T,MAAMpS,IAE9B8R,GAEXQ,6BAA8B,WAC1B,OAAO,GAEXlB,qBAAsB,WAClB,IAAI1M,EAAOhR,KACP6e,EAAc7N,EAAK6M,cAAcgB,YACrC7e,KAAK8e,WAAa,IAAI,QAAU,CAC5BC,eAAgB/e,KAAK4e,+BACrBI,KAAMhf,KAAK2F,OAAO,iBAClBoX,yBAA0B/c,KAAK2F,OAAO,4BACtCsZ,kBAAmBjf,KAAKwe,kBACxBtB,mBAAoB,SAAS3Z,IACrBA,EAAK2b,cAAc1e,QAAU+C,EAAK4b,gBAAgB3e,UAClDwQ,EAAKrL,OAAO,gBAAiBqL,EAAK+M,gBAAgBxa,EAAKuZ,iBAAkBvZ,EAAKsZ,gBAC9E7L,EAAKoO,qBAAqB7b,KAGlCW,OAAQ8M,EAAKyN,mBAAmBnc,KAAK0O,GACrCqO,WAAY,WACR,IAAIrV,EAAQgH,EAAKrL,OAAO,SACpB0Z,EAAarO,EAAKnG,gBAAgBwU,aACtC,OAAOA,GAAc,EAAIA,EAAarO,EAAKsO,eAAetV,IAE9DoU,IAAKpN,EAAKoN,IAAI9b,KAAK0O,GACnB0N,MAAO1N,EAAK0N,MAAMpc,KAAK0O,GACvBuO,KAAM,SAAStc,GACX,IAAIuc,EACAC,EAAiBzO,EAAKnG,gBAG1B,OAFA5H,EAAQyc,kBAAoB,QAAUF,EAAwBC,EAAeE,qBAAkB,IAAWH,OAAwB,EAASA,EAAsBE,kBACjKzc,EAAQ2c,SAAWH,EAAeG,WAC9BH,EAAed,QACRc,EAAeI,cAAc5c,GAASuV,MAAK,SAAUsH,GACxD,IAAI9O,EAAK+O,UAAT,CAGA,IAAI/V,EAAQ,gBAAoB8V,GAAY1U,KAC5CqU,EAAeO,iBAAiBhW,QAG7B,IAAK,QAAUiW,QAAQjgB,KAAKkgB,eAG3CC,WAAY,WACR,OAAOnP,EAAKnG,gBAAgBuV,UAEhCF,WAAYrB,EAAYvc,KAAK0O,EAAK6M,kBAG1CyB,eAAgB,SAAStV,GACrB,OAAOA,EAAMqW,OAAO,CAACC,EAAYhU,IAASgU,GAAchU,EAAKtC,MAAQhK,KAAKsf,eAAehT,EAAKtC,OAAS,GAAI,IAE/GwT,kBAAmB,WACf,IAAI+C,EAAW,OACfvgB,KAAK6d,cAAgB,IAAI0C,EAASvgB,OAEtCwgB,wBAAyB,SAASC,GAC9B,IAAIzP,EAAOhR,KACP0gB,EAAU,GAUd,OATAD,EAAOA,GAAQzgB,KAAK8e,WAAW6B,sBAC/B3P,EAAK6M,cAAc+C,aACnB,eAAKH,GAAM,SAAUzE,EAAGoC,GACpB,IAAInB,EAAgBjM,EAAKmN,eAAeC,GACpC9B,GAAYW,IACZyD,EAAQrc,KAAK4Y,MAGrBjM,EAAK6M,cAAcgD,WACZH,GAEX5L,YAAa,WACT9U,KAAK8gB,YAAa,EACb9gB,KAAK6K,gBAAgBkQ,aACtB/a,KAAK+gB,wBAAwBvI,KAAK,IAAMxY,KAAKghB,2BAEjDhhB,KAAKwI,YAETyM,QAAS,WACLjV,KAAKwI,WACLxI,KAAK8gB,YAAa,GAEtB9L,wBAAyB,WACrBhV,KAAK8gB,YAAa,EAClB9gB,KAAKihB,WAAY,EACjBjhB,KAAKwI,SAAS3H,MAAMb,KAAMO,YAE9BwgB,sBAAuB,SAASG,GAE5B,IAAIzE,EACAQ,EACAH,EACAD,EACJ,OALAqE,EAAWA,GAAYlhB,KAAKmhB,sBAKpBD,GACJ,IAAK,gBACDzE,EAAezc,KAAK6d,cAAcuD,mBAAmBphB,KAAK2F,OAAO,kBAC7D,eAAU8W,IACVzc,KAAKqhB,8BAA8B,gBAAiB,CAAC5E,IACrDzc,KAAKqhB,8BAA8B,eAAgB5E,GACnDzc,KAAKqhB,8BAA8B,mBAAoBrhB,KAAK6d,cAAcC,eAAe,CAACrB,OAE1Fzc,KAAKqhB,8BAA8B,gBAAiB,IACpDrhB,KAAKqhB,8BAA8B,mBAAoB,IACvDrhB,KAAKqhB,8BAA8B,eAAgB,OAEvD,MACJ,IAAK,gBAGD,GAFAxE,EAAgB7c,KAAK2F,OAAO,kBAAoB,GAChDsX,EAAgBJ,EAAcrc,OAASR,KAAK6d,cAAcU,mBAAmB1B,EAAc,IAAMR,GAC7Frc,KAAK2F,OAAO,uBAAyB2W,GAAYW,GACjD,OAAOjd,KAAK+gB,sBAAsB,iBAEtC/gB,KAAKqhB,8BAA8B,eAAgBxE,EAAc,IACjE7c,KAAKqhB,8BAA8B,gBAAiBpE,GACpDjd,KAAKqhB,8BAA8B,mBAAoBrhB,KAAK6d,cAAcC,eAAejB,IACzF,MACJ,IAAK,eAGD,GAFAJ,EAAezc,KAAK2F,OAAO,gBAC3BsX,EAAgBjd,KAAK6d,cAAcU,mBAAmB9B,GAClDzc,KAAK2F,OAAO,uBAAyB2W,GAAYW,GACjD,OAAOjd,KAAK+gB,sBAAsB,iBAElC,eAAUtE,IACVzc,KAAKqhB,8BAA8B,gBAAiB,CAAC5E,IACrDzc,KAAKqhB,8BAA8B,gBAAiBpE,GACpDjd,KAAKqhB,8BAA8B,mBAAoBrhB,KAAK6d,cAAcC,eAAe,CAACrB,OAE1Fzc,KAAKqhB,8BAA8B,gBAAiB,IACpDrhB,KAAKqhB,8BAA8B,mBAAoB,IACvDrhB,KAAKqhB,8BAA8B,gBAAiBhF,KAExD,MACJ,IAAK,mBAED,GADAS,EAAmB9c,KAAK2F,OAAO,oBAC3B3F,KAAK2F,OAAO,qBAAsB,CAClC,IAAI2b,EAAoBthB,KAAKme,eAAerB,EAAiB,IAC7D,IAAKR,GAAYgF,GACb,OAAOthB,KAAK+gB,sBAAsB,iBAG1C,OAAO/gB,KAAK8e,WAAWyC,aAAazE,GAE5C,OAAO,IAAK,QAAUmD,UAAUuB,WAEpCL,oBAAqB,WACjB,IAAIld,EAAa,gBACbwd,EAAkB,SAASxd,GAC3B,IAAIyd,EAAc1hB,KAAK2F,OAAO1B,GAC1BzD,EAAS,eAAUkhB,IAAgBA,EAAYlhB,OACnD,OAAOA,GAAUyD,KAAcjE,KAAKud,cACtCjb,KAAKtC,MAQP,OAPIyhB,EAAgB,iBAChBxd,EAAa,gBACNwd,EAAgB,gBACvBxd,EAAa,eACNwd,EAAgB,sBACvBxd,EAAa,oBAEVA,GAEX0d,aAAc,SAASC,EAASC,GAC5B,GAAID,EAAQphB,SAAWqhB,EAAQrhB,OAC3B,OAAO,EAEX,IAAK,IAAIH,EAAI,EAAGA,EAAIwhB,EAAQrhB,OAAQH,IAChC,GAAIuhB,EAAQvhB,KAAOwhB,EAAQxhB,GACvB,OAAO,EAGf,OAAO,GAEX2gB,wBAAyB,WACrB,GAAI,SAAWhhB,KAAK2F,OAAO,iBACvB3F,KAAKqhB,8BAA8B,gBAAiB,IACpDrhB,KAAK+gB,sBAAsB,sBACxB,GAAI,WAAa/gB,KAAK2F,OAAO,iBAAkB,CAClD,IAAImc,EAAe9hB,KAAK2F,OAAO,iBAC/B,GAAImc,EAAathB,OAAS,IAAMshB,EAAathB,QAAUR,KAAK2F,OAAO,sBAAwB3F,KAAK2F,OAAO,UAAY3F,KAAK2F,OAAO,SAASnF,OAAQ,CAC5I,IAAIuhB,EAAmB/hB,KAAK8e,WAAWkD,mBACnCC,OAAsB,IAAWH,EAAa,GAAKC,EAAiB,GAAKD,EAAa,GAS1F,YARI,IAAWG,IACXA,EAAsBjiB,KAAK6d,cAAcgB,cAAc,IAEvD7e,KAAK2F,OAAO,YAAcsc,GAAuBA,EAAoBjY,QACrEiY,EAAoBjY,MAAQ,CAACiY,EAAoBjY,MAAM,KAE3DhK,KAAK8e,WAAWyC,aAAavhB,KAAK4d,gBAAgB,CAACqE,KACnDjiB,KAAKqhB,8BAA8B,gBAAiB,CAACY,IAC9CjiB,KAAK+gB,sBAAsB,iBAElC/gB,KAAK8e,WAAWyC,aAAavhB,KAAK4d,gBAAgBkE,QAEnD,CACH,IAAID,EAAU7hB,KAAK4d,gBAAgB5d,KAAK2F,OAAO,kBAC3Cic,EAAU5hB,KAAK8e,WAAW6B,sBACzB3gB,KAAK2hB,aAAaC,EAASC,IAC5B7hB,KAAK8e,WAAWyC,aAAaM,GAGrC,OAAO,IAAK,QAAU5B,UAAUuB,WAEpC9X,kBAAmB,SAASvB,GACxB,IAAI+Z,GAAoB,IAAK,QAAUjC,UACnCzX,EAAWxI,KAAKwI,SACpBxI,KAAK2b,cAAc,SAASxT,GACxB,IAAIga,EACJD,EAAoB,QAAUC,EAAwBniB,KAAKoiB,mBAAmBja,EAAEsB,cAAW,IAAW0Y,EAAwBA,EAAwBD,GACxJ5f,KAAKtC,MAAO,CACVyb,qBAAsB,eAJ1Bzb,CAKG,CACC0Y,YAAa,eAAEvQ,EAAEyB,eACjBH,MAAOtB,IAEX+Z,EAAkBG,OAAO,KACrB7Z,EAAS3H,MAAMb,KAAMO,cAG7B6hB,mBAAoB,SAASja,GACzB,IAAIma,EACAJ,EACJ,GAAKliB,KAAK2F,OAAO,iBAAjB,CAGA,IAAIyD,EAAejB,EAAEyB,cAMrB,OALI5J,KAAKuiB,eAAenZ,GACpBpJ,KAAKwiB,aAAara,EAAEyB,eAEpBsY,EAAoBliB,KAAKkQ,WAAW/H,EAAEyB,eAEnC,QAAU0Y,EAAqBJ,SAAsB,IAAWI,OAAqB,EAASA,EAAmBd,YAE5HiB,qBAAsB,SAAS3T,GAC3B,OAAO9O,KAAK2P,gBAAgBT,GAAGJ,IAEnC2J,uBAAwB,SAASlV,GAC7B,GAAI,SAAWvD,KAAK2F,OAAO,iBAAkB,CACzC,IAAIyD,EAAe,eAAE7F,EAAKmV,aACtBgK,EAAsB1iB,KAAK6d,cAAc8E,mBAAmBvZ,GAC5DmZ,EAAiBviB,KAAK4iB,gBAAgBF,GAC1C1iB,KAAK6iB,uBAAuBzZ,EAAcmZ,KAGlDM,uBAAwB,SAASzZ,EAAc0Z,GAC3C1Z,EAAa6R,YAAYjb,KAAK2U,qBAAsBmO,GACpD9iB,KAAK+iB,2BAA2B3Z,EAAcsD,OAAOoW,KAEzD1D,qBAAsB,SAAS7b,GAC3B,IAAIyN,EAAOhR,KACPkf,EAAgB3b,EAAK2b,cACrBC,EAAkB5b,EAAK4b,gBAC3B,GAAInO,EAAKiQ,YAAc/B,EAAc1e,QAAU2e,EAAgB3e,QAAS,CACpE,IAAIwiB,EAAyBhS,EAAKiS,wBAClC,IAAKjS,EAAK8P,WAAY,CAClB,IACIoC,EADAC,EAAiB,GAEjBC,EAAmB,GACvBpS,EAAK6M,cAAc+C,aACnB,IAAK,IAAIvgB,EAAI,EAAGA,EAAI6e,EAAc1e,OAAQH,IACtC6iB,EAAkBlS,EAAKmN,eAAee,EAAc7e,IACpD8iB,EAAe9e,KAAK6e,GACpBlS,EAAKqS,cAAcH,GAEvB,IAAK,IAAItd,EAAK,EAAGA,EAAKuZ,EAAgB3e,OAAQoF,IAC1Csd,EAAkBlS,EAAKmN,eAAegB,EAAgBvZ,IACtDwd,EAAiB/e,KAAK6e,GACtBlS,EAAKsS,iBAAiBJ,GAE1BlS,EAAK6M,cAAcgD,WACnB7P,EAAKuS,iBAAiBJ,EAAgBC,GAE1C,eAAKJ,GAAwBxK,MAAK,WAC9BxH,EAAKwS,0BAA0BjgB,EAAKkgB,WAAYlgB,EAAKmgB,mBAIjEF,0BAA2B,SAASC,EAAYC,GAC5C1jB,KAAK6S,sBAAsB,qBAAsB,CAC7CwH,kBAAmB,CAAC,WAAY,aADpCra,CAEG,CACCyjB,WAAYA,EACZC,aAAcA,KAGtBH,iBAAkB,OAClBR,2BAA4B,SAASrU,EAAS1N,GAC1ChB,KAAKyQ,QAAQ,WAAYzP,EAAO0N,IAEpC4U,iBAAkB,SAASJ,GACvB,IAAI9Z,EAAepJ,KAAK6d,cAAc8F,eAAeT,GACjD5G,GAAY4G,KACZljB,KAAK6iB,uBAAuBzZ,GAAc,GAC1C,OAAawa,eAAexa,EAAc,gBAAgB,KAGlEia,cAAe,SAASH,GACpB,IAAI9Z,EAAepJ,KAAK6d,cAAc8F,eAAeT,GACjD5G,GAAY4G,KACZljB,KAAK6iB,uBAAuBzZ,GAAc,GAC1C,OAAawa,eAAexa,EAAc,gBAAgB,KAGlEwZ,gBAAiB,SAAS9T,GACtB,IAAIsP,EAAMpe,KAAKie,eAAenP,GAC9B,OAAO9O,KAAK8e,WAAWyD,eAAenE,EAAK,CACvCyF,cAAc,KAGtB1R,eAAgB,SAAS5O,GACrB,OAAQA,EAAKjC,MACT,IAAK,gBACDtB,KAAKwS,cACL,MACJ,IAAK,eACIjP,EAAKvC,OAAS8D,MAAMC,QAAQxB,EAAKvC,SAAWuC,EAAKvC,MAAMR,SACxDR,KAAK2F,OAAO,mBAAoB,IAEpC3F,KAAKwI,SAASjF,GACd,MACJ,IAAK,gBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACDvD,KAAK+gB,sBAAsBxd,EAAKjC,MAAMkX,KAAK,IAAMxY,KAAKghB,2BACtD,MACJ,IAAK,UACDhhB,KAAKyd,iBACL,MACJ,IAAK,oBACDzd,KAAKghB,0BACL,MACJ,IAAK,gBACL,IAAK,qBACL,IAAK,iBACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACD,MACJ,QACIhhB,KAAKwI,SAASjF,KAG1BugB,oBAAqB,WACjB9jB,KAAKqhB,8BAA8B,gBAAiB,IACpDrhB,KAAK+gB,sBAAsB,kBAE/BgD,qBAAsB,SAAS3a,GAC3B,GAAIA,EAAagC,KAAKgR,IAClB,OAAO,IAAK,QAAU6D,UAAUuB,UAEpCpY,EAAagC,KAAKgR,IAAwB,GAC1C,IAAI4H,EAAW,IAAI,OACfC,EAAqB,CACrB3M,QAAQ,GAER4M,EAAgBlkB,KAAKsb,kBAAkBlS,EAAc,iBAAkB6a,EAAoB,CAC3F5J,kBAAmB,CAAC,WAAY,cAapC,OAXA,eAAK6J,GAAe7B,OAAO,SAASrhB,GAChC,IAAImjB,GAAuBD,EACvBE,GAAyBD,GAAuB,aAAeD,EAAcG,QAC7EC,IAAuB/jB,UAAUC,OACjC+jB,EAAeJ,GAAuBC,IAA0BE,GAAsBF,GAAyBpjB,EACnH,eAAK,eAAYijB,EAAmB3M,SAAS+K,QAAO,WAChDjZ,EAAagC,KAAKgR,IAAwB,MAC1C5D,MAAK,SAAUlB,GACfiN,IAAiBjN,EAAS0M,EAAS/D,UAAY+D,EAASQ,YACxDC,KAAKT,EAASQ,SACpBliB,KAAKtC,OACAgkB,EAASxC,WAEpBkD,kBAAmB,SAAS5U,GACxB,IAAI2P,EAAiBzf,KAAK6K,gBACtBmZ,EAAW,IAAI,OACfW,EAAgB3kB,KAAK2F,OAAO,YAC5Bif,EAAYnF,EAAed,QAC/B,IAAKiG,EACD,OAAO,IAAK,QAAU3E,UAAUuB,UAEpC,IAAKoD,EAAUrX,OACX,MAAM,OAAOsX,MAAM,SAevB,OAbA7kB,KAAK2F,OAAO,YAAY,GACxBif,EAAUrX,OAAOkS,EAAef,MAAM1e,KAAKsJ,aAAawG,KAAS0I,MAAK,SAAU4F,QACxE,IAAWA,EACX4F,EAAS/D,UAET+D,EAASQ,YAEbC,MAAK,WACLT,EAASQ,YAEbR,EAAS3B,OAAO,WACZriB,KAAK2F,OAAO,WAAYgf,IAC1BriB,KAAKtC,OACAgkB,GAEXc,oBAAqB,WACjB,IAAId,EAAW,IAAI,OAQnB,OAPIhkB,KAAKwT,eAAiBxT,KAAK2F,OAAO,WAClCqe,EAAS/D,UAETjgB,KAAK+kB,mBAAmBvM,MAAK,WACzBwL,EAAS/D,aAGV+D,EAASxC,WAEpBuD,iBAAkB,WAEd,OADA/kB,KAAKkT,yBACElT,KAAK6K,gBAAgB0U,QAEhCyF,4BAA6B,SAASlW,GAClC,IAAIsP,EAAMpe,KAAKie,eAAenP,GAC9B9O,KAAK8e,WAAWmG,SAAS,CAAC7G,KAE9B8G,yBAA0B,SAASpW,GAE/B,IADA,IAAImC,EAAejR,KAAK2P,gBACftP,EAAIyO,EAAQ,EAAGzO,EAAI4Q,EAAazQ,OAAQH,IAC7C,eAAE4Q,EAAa5Q,IAAI+K,KAAKpL,KAAKiS,gBAAiB5R,EAAI,IAG1D8kB,sBAAuB,SAASlhB,GAC5B,IAAIyd,EAAc1hB,KAAK2F,OAAO1B,GAC1Byd,aAAuB,SAG3B1hB,KAAKolB,qBAAqB,CACtB9jB,KAAM2C,EACNpB,SAAUoB,EACVjD,MAAO0gB,KAGfa,eAAgB,SAAS7J,GACrB,OAAO1Y,KAAK4iB,gBAAgB5iB,KAAK6d,cAAc8E,mBAAmBjK,KAEtExI,WAAY,SAASwI,GACjB,GAAI,SAAW1Y,KAAK2F,OAAO,iBAA3B,CAGA,IAAIiS,EAAY5X,KAAK6d,cAAc8E,mBAAmBjK,GACtD,GAAK4D,GAAY1E,GAAjB,CAGA,IAAIwG,EAAMpe,KAAKie,eAAerG,GAC9B,IAAI5X,KAAK8e,WAAWyD,eAAenE,GAAnC,CAGA,GAAI,WAAape,KAAK2F,OAAO,iBACzB,OAAO3F,KAAK8e,WAAWyC,aAAa,CAACnD,IAErC,IAAItB,EAAmB9c,KAAK2F,OAAO,qBAAuB,GAC1D,OAAO3F,KAAK8e,WAAWyC,aAAa,IAAIzE,EAAkBsB,GAAM,CAACA,QAGzEoE,aAAc,SAAS9J,GACnB,IAAId,EAAY5X,KAAK6d,cAAc8E,mBAAmBjK,GACtD,GAAK4D,GAAY1E,GAAjB,CAGA,IAAIkF,EAAmB9c,KAAK8e,WAAW6B,sBACvC,KAAI3gB,KAAK2F,OAAO,sBAAwBmX,EAAiBtc,QAAU,GAAnE,CAGA,IAAI4d,EAAMpe,KAAKie,eAAerG,GACzB5X,KAAK8e,WAAWyD,eAAenE,EAAK,CACjCyF,cAAc,KAItB7jB,KAAK8e,WAAWmG,SAAS,CAAC7G,OAE9BiH,0BAA2B,SAASvW,GAChC9O,KAAKglB,4BAA4BlW,GACjC9O,KAAKklB,yBAAyBpW,GAC9B9O,KAAK6d,cAAcyH,kBAAkBxW,IAEzCyW,yBAA0B,SAASzV,EAAO0V,GACtC,IAAIC,EAAiBzlB,KAAK6K,gBAAgB6a,gBAAkB,aAAe,QAC3E1lB,KAAKmlB,sBAAsBM,GAC3BzlB,KAAKsb,kBAAkBxL,EAAO,gBAAiB0V,EAAmB,CAC9DG,cAAe,WACX7V,EAAMvC,UAEV8M,kBAAmB,CAAC,WAAY,cAEpCra,KAAKyS,uBAETmT,WAAY,SAASlN,GACjB,IAAI1H,EAAOhR,KACPgkB,EAAW,IAAI,OACflU,EAAQ9P,KAAK6d,cAAc8F,eAAejL,GAC1C5J,EAAQ9O,KAAK6d,cAAc8E,mBAAmBjK,GAC9CmN,EAAwB7lB,KAAK4U,yBAqBjC,OApBI0H,GAAYxN,GACZ9O,KAAK+jB,qBAAqBjU,GAAO0I,MAAK,WAClC1I,EAAMjC,SAASgY,GACf,IAAIL,EAAoBxU,EAAK6K,kBAAkB/L,GAC/CkB,EAAK0T,kBAAkB5U,GAAO0I,MAAK,WAC/BxH,EAAKqU,0BAA0BvW,GAC/BkC,EAAKuU,yBAAyBzV,EAAO0V,GACrCxU,EAAK8T,sBAAsBtM,MAAK,WAC5BwL,EAAS8B,YAAY9U,SAEzByT,MAAK,WACL3U,EAAM+I,YAAYgN,GAClB7B,EAAS+B,WAAW/U,SAExByT,MAAK,WACLT,EAAS+B,WAAW/U,MAGxBgT,EAAS+B,WAAW/U,GAEjBgT,EAASxC,WAEpBwE,YAAa,SAAStN,EAAauN,GAC/B,IAAIjC,EAAW,IAAI,OACfhT,EAAOhR,KACPkmB,EAAWlmB,KAAK6d,cAChBsI,EAAcD,EAASvC,eAAejL,GACtC0N,EAAmBF,EAASvC,eAAesC,GAC3CI,EAAcH,EAASvD,mBAAmBjK,GAC1C4N,EAAmBJ,EAASvD,mBAAmBsD,GAC/CR,EAAiBzlB,KAAK6K,gBAAgB6a,gBAAkB,aAAe,QACvEa,EAAejK,GAAY+J,IAAgB/J,GAAYgK,IAAqBD,IAAgBC,EAMhG,OALIC,EACAvC,EAAS8B,YAAY9lB,MAErBgkB,EAAS+B,WAAW/lB,MAEjBgkB,EAASxC,UAAUhJ,MAAK,WAC3B4N,EAAiBF,EAASM,kBAAkBH,EAAaC,IAAmBH,GAC5ED,EAASO,uBAAuBJ,EAAaC,GAC7CtmB,KAAKklB,yBAAyBmB,GAC9BrV,EAAKrL,OAAO,gBAAiBqL,EAAK+M,gBAAgB/M,EAAK8N,WAAW6B,sBAAuB3P,EAAK8N,WAAWkD,qBACrG,UAAYyD,GACZzU,EAAKmU,sBAAsBM,GAE/BzU,EAAKsK,kBAAkB6K,EAAa,kBAAmB,CACnDO,UAAWR,EAASS,SAASN,GAC7BO,QAASV,EAASS,SAASL,IAC5B,CACCjM,kBAAmB,CAAC,WAAY,oBAKjC,W;;;;;;;;;;;;GCzoBfpa,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8lB,8BAA2B,EACnC,IAAIC,EAAQ,EAAQ,QAChBC,EAAc,EAAQ,QACtBC,EAAe,EAAQ,QAC3B,SAASH,IACL,OAAO,EAAIC,EAAMG,iBAAiB,CAC9BC,SAAS,EAAIH,EAAYI,qBACzBC,QAAS,WACLpnB,KAAKqnB,IAAIC,aAAa,cAAe,QACrC,IAAIC,GAAc,EAAIP,EAAaQ,gBAAgBxnB,MACnDunB,EAAYE,eAAgB,EAC5BF,EAAYG,WAAa1nB,KAAK2nB,SAASrlB,KAAKtC,MACxCunB,GAAeA,EAAYK,YAG/B5nB,KAAK2nB,SAAS3nB,KAAKqnB,MAEvBQ,QAAS,CACLF,SAAU,SAAU1a,GAChBjN,KAAK8nB,eAAe7a,OAKpClM,EAAQ8lB,yBAA2BA,G;;;;;;;;;;;;GCzBnC,IAAI9mB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAEhCN,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgnB,gBAAkBhnB,EAAQinB,qBAAuBjnB,EAAQknB,gBAAa,EAC9E,IAAIjB,EAAe,EAAQ,QAC3B,SAASe,EAAgBG,EAAgBC,EAAariB,GAC7CoiB,GAA4C,IAA1BA,EAAe1nB,QAGtCwnB,EAAqBE,EAAgBC,EAAariB,GAGtD,SAASmiB,EAAWG,GAChB,IAAIC,EAAYD,EAAKC,UACrB,OAAqB,MAAdA,GACc,MAAdA,GACc,KAAdA,IACe,IAAfA,EAGX,SAASL,EAAqBM,EAAUC,EAAO5mB,GAC3C2mB,EAAS5jB,SAAQ,SAAU0jB,GAOvB,GANIH,EAAWG,IAAStjB,MAAMC,QAAQqjB,EAAKE,WACvCN,EAAqBI,EAAKE,SAAUC,EAAO5mB,GAE1CsmB,EAAWG,IACZG,EAAMlkB,KAAK+jB,GAEVA,EAAL,CAGA,IAAII,GAAgB,EAAIxB,EAAayB,kBAAkBL,GACvD,GAAKI,GAAkBA,EAAcE,aAArC,CAGA,IAAIC,GAAoB,EAAI3B,EAAa4B,uBAAuBR,GAC5D7mB,EAAgBxB,EAASA,EAAS,GAAIyoB,EAAcK,oBAAoB,EAAI7B,EAAa8B,oBAAoBV,EAAKW,OAAS,KAC3HjjB,EAASnE,EAAYkC,aAAa2kB,EAAcE,aAAcnnB,EAAeinB,EAAcQ,mBAAoBR,EAAcS,oBACjIb,EAAKc,SAAWpjB,EAChBsiB,EAAKe,eAAiB,GAClBR,GACAX,EAAqBW,EAAmBJ,EAAOziB,QA9B3D/E,EAAQgnB,gBAAkBA,EAQ1BhnB,EAAQknB,WAAaA,EA0BrBlnB,EAAQinB,qBAAuBA,G,oCCpE/B,oFASIoB,EAAa,UACbC,EAAiB,cACVC,EAAqBC,MACvBA,GAAU,kBAAoBA,KAG/B,wCAAwCpc,KAAKoc,GACtC,MAEP,iCAAiCpc,KAAKoc,GAC/B,QAEP,YAAYpc,KAAKoc,GACV,WAEP,oBAAoBpc,KAAKoc,IAClB,YAIJC,EAAoBD,IAC3B,OAAQD,EAAmBC,IACvB,IAAK,QACD,OAAO,eAAE,SAAS3Y,KAAK,MAAO2Y,GAAQ1b,SAASub,GACnD,IAAK,WACD,OAAO,eAAE,OAAOvb,SAAS,GAAGnL,OAAO0mB,EAAY,KAAK1mB,OAAO6mB,IAC/D,IAAK,SACD,OAAO,eAAE,OAAO1b,SAAS,GAAGnL,OAAO0mB,EAAY,KAAK1mB,OAAO0mB,EAAY,KAAK1mB,OAAO6mB,IACvF,IAAK,MACD,OAAO,eAAE,OAAO1b,SAAS,GAAGnL,OAAO0mB,EAAY,KAAK1mB,OAAO2mB,IAAiBI,OAAOF,GACvF,QACI,OAAO,Q;;;;;;;;;;;;GC1BnB,IAAIG,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEX9Q,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQypB,yBAA2BzpB,EAAQ0pB,6BAA+B1pB,EAAQ2pB,qBAAkB,EACpG,IAAIC,EAAcL,EAAa,EAAQ,SACnCM,EAAcN,EAAa,EAAQ,SACnCO,EAAY,EAAQ,QACpB3E,GAAW,EAAI2E,EAAUC,UAAYF,EAAcD,EACvD5pB,EAAQ2pB,gBAAkBxE,EAASwE,gBACnC3pB,EAAQ0pB,6BAA+BvE,EAASuE,6BAChD1pB,EAAQypB,yBAA2BtE,EAASsE,0B;;;;;;;;;;;;GC/B5C,IAAIzqB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAEhCN,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgqB,eAAY,EACpB,IAAIjlB,EAAS,CACTklB,WAAW,GAEf,SAASC,EAAWhoB,GAChB6C,EAAS/F,EAASA,EAAS,GAAI+F,GAAS7C,GAE5C,SAAS8nB,EAAU9mB,GACf,OAAO6B,EAAO7B,GAElBlD,EAAQgqB,UAAYA,EACpBhqB,EAAQuF,QAAU2kB,G;;;;;;;;;;;;GCvBlB,IAAIlrB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAE5B2qB,EAAmBlrB,MAAQA,KAAKkrB,iBAAoB,SAAUX,GAC9D,OAAQA,GAAOA,EAAIL,WAAcK,EAAM,CAAE,QAAWA,IAExDtqB,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQoqB,sBAAmB,EAC3B,IAAIC,EAAW,EAAQ,QACnBC,EAA0B,EAAQ,QAClCC,EAAgBJ,EAAgB,EAAQ,SACxCK,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QACtBrqB,EAAY,EAAQ,QACpBgqB,EAAkC,WAClC,SAASA,EAAiBzlB,GACtB1F,KAAKyrB,OAAS,GACdzrB,KAAK0rB,WAAa,GAClB1rB,KAAK2rB,UAAW,EAChB3rB,KAAK4rB,WAAalmB,EAClB1F,KAAK6rB,WA4DT,OA1DAV,EAAiBzqB,UAAUmrB,SAAW,WAClC,IAAIC,GAAQ,EAAIT,EAAwBQ,UAAU7rB,KAAK4rB,YACvD5rB,KAAKyrB,OAAS1rB,EAASA,EAAS,GAAIC,KAAKyrB,QAASK,IAC7C,EAAI3qB,EAAU4qB,iBAAiB/rB,KAAK0rB,WAAYI,IACjD9rB,KAAKgsB,qBAGb/rB,OAAOa,eAAeqqB,EAAiBzqB,UAAW,YAAa,CAC3D6B,IAAK,WACD,OAAOvC,KAAK0rB,YAEhBlpB,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeqqB,EAAiBzqB,UAAW,UAAW,CACzD6B,IAAK,WACD,OAAOvC,KAAK2rB,UAEhBnpB,YAAY,EACZC,cAAc,IAElB0oB,EAAiBzqB,UAAUurB,eAAiB,WACxCjsB,KAAK2rB,UAAW,GAEpBR,EAAiBzqB,UAAUsrB,kBAAoB,WAC3ChsB,KAAK0rB,WAAa,GAClB,IAAK,IAAI9lB,EAAK,EAAGC,EAAK5F,OAAOwgB,KAAKzgB,KAAKyrB,QAAS7lB,EAAKC,EAAGrF,OAAQoF,IAAM,CAClE,IAAIsmB,EAASrmB,EAAGD,GAChB5F,KAAK0rB,WAAWQ,GAAUlsB,KAAKmsB,iBAAiBD,GAEpDlsB,KAAK2rB,UAAW,GAEpBR,EAAiBzqB,UAAUyrB,iBAAmB,SAAU7qB,GACpD,IAAI8qB,EAAQpsB,KACZ,MAAO,CACHya,OAAQ,SAAUrP,GACd,IAAIihB,GAAY,EAAIjB,EAASL,WAAW,2BAClC3f,EAAKsP,MACL,CAAEtP,KAAMA,EAAKsP,MAAO5L,MAAO1D,EAAK0D,OAClCuJ,EAAYjN,EAAKiN,UAAU9V,IAAM6I,EAAKiN,UAAU9V,IAAI,GAAK6I,EAAKiN,UAC9DiU,EAAcC,SAASC,cAAc,OACzCnU,EAAUoU,YAAYH,GACtB,IAAII,GAAkB,EAAIrB,EAAwBsB,gBAAe,WAAc,OAAOP,EAAMX,OAAOnqB,KAAU8qB,EAAMR,WAAYS,EAAW/qB,EAAMgrB,GAC5Irf,EAAUyf,EAAgBrF,IAE9B,GADAiE,EAAchlB,QAAQsmB,SAAS3f,EAASue,EAAYqB,2BAA2B,GAC3E5f,EAAQ6f,WAAaC,KAAKC,UAAW,CACrC,IAAIC,EAAkBV,SAASC,cAAqC,UAAvBnU,EAAU6U,SAAuB,QAAU,QACxFD,EAAgBE,MAAMC,QAAU,OAChC/U,EAAUoU,YAAYQ,IACtB,EAAI1B,EAAS8B,KAAKJ,EAAiBzB,EAAY8B,gBAAiBZ,EAAgBa,SAASjrB,KAAKoqB,SAG9F,EAAInB,EAAS8B,KAAKpgB,EAASue,EAAY8B,gBAAiBZ,EAAgBa,SAASjrB,KAAKoqB,IAE1F,OAAOzf,KAIZke,EAlE0B,GAoErCpqB,EAAQoqB,iBAAmBA,G,oCCxG3B,4HAkCIqC,EAAoB,aACT,cAAiB1lB,QAAQ,CACpC+B,mBAAoB,WAChB,OAAO,eAAO7J,KAAKwI,WAAY,CAC3BilB,oBAAoB,KAG5BnQ,KAAM,WACF,IAAIoQ,EACJ1tB,KAAKwI,SAAS3H,MAAMb,KAAMO,WAC1BP,KAAK2tB,2BAA6BxlB,IAC9B,IAAIsX,EAAiBzf,KAAK6K,gBACtB4U,EAAeiG,kBAAoB1lB,KAAK6K,gBAAgB+iB,aACxD5tB,KAAK6tB,iBAAmB,GAExB7tB,KAAK6tB,kBAAoB1lB,EAAE2lB,mBAC3B3lB,EAAE2lB,iBAAiBC,MAAQ/tB,KAAK6tB,mBAErC,QAAUH,EAAwB1tB,KAAK6K,uBAAoB,IAAW6iB,GAAiCA,EAAsB3X,GAAG,4BAA6B/V,KAAK2tB,6BAEzKK,OAAQ,WACJhuB,KAAK6tB,iBAAmB,GAE5BriB,MAAO,WACHxL,KAAKwI,WACLxI,KAAKiuB,qBACLjuB,KAAK6tB,iBAAmB,GAE5BK,sBAAuB,SAAS9P,GAC5B,IAAIrN,EAAS,iBACTiM,EAAUhd,KAAKoe,MASnB,OARApe,KAAKiR,eAAeC,KAAK,CAAC8K,EAAG1P,KACzB,IAAIwD,EAAQ,eAAExD,GACVjD,EAAWrJ,KAAKsJ,aAAawG,GACjC,GAAIkN,EAAU,eAAUA,EAAShd,KAAK0e,MAAMrV,GAAW+U,GAAOpe,KAAKmuB,cAAc9kB,EAAU+U,GAEvF,OADArN,EAASjB,GACF,IAGRiB,GAEXqC,0BAA2B,SAASC,EAAUlL,GACtC,OAASA,QAAK,IAAWA,GAAKA,EAAEimB,QAChCpuB,KAAKquB,iBAAiBlmB,EAAEimB,UAExBpuB,KAAKwI,SAAS6K,EAAUlL,GACxBnI,KAAKiuB,uBAGbE,cAAe,SAASG,EAAOC,GACvBD,GAASA,EAAMd,KACfc,EAAQA,EAAMljB,MAElB,IACI,OAAOojB,KAAKC,UAAUH,KAAWE,KAAKC,UAAUF,GAClD,MAAOpmB,GACL,OAAOmmB,IAAUC,IAGzBG,oBAAqB,SAASJ,EAAOC,GACjC,OAAOvuB,KAAKmuB,cAAcG,EAAOC,IAErCI,mBAAoB,SAASP,EAASpkB,GAClC,IAAI+G,GAAS,EAiBb,OAhBI/Q,KAAK2F,OAAO,aACPyoB,EAAQ5tB,SACTuQ,GAAS,GAEb,eAAKqd,EAAS,CAAC/tB,EAAGuuB,KACV,WAAaA,EAAOC,OACpB9d,GAAS,EACT,eAAK/G,EAAO,CAACgS,EAAG1P,KACZ,QAAI,IAAWsiB,EAAOxjB,KAAKgT,KAAOwQ,EAAOxjB,KAAKgT,MAAQ9R,EAAK8R,IAEvD,OADArN,GAAS,GACF,QAMpBA,GAEX+d,gBAAiB,WACb,GAAI9uB,KAAK2F,OAAO,sBAAuB,CACnC,IAAIoL,EAAS,eAAY/Q,KAAK+uB,YAAa/uB,KAAK6d,cAAcgB,cAAezT,GACrEA,QAAQ,IAAWA,EAAKoiB,GACjBpiB,EAAKoiB,GAETxtB,KAAK0e,MAAMtT,GACnBpL,KAAK0uB,oBAAoBpsB,KAAKtC,OACjC,GAAI+Q,GAAU/Q,KAAK+uB,YAAYvuB,SAAWR,KAAK2uB,mBAAmB5d,EAAQ/Q,KAAK+uB,aAG3E,OAFA/uB,KAAKquB,iBAAiBtd,GAAQ,GAC9B/Q,KAAKyS,uBACE,EAEPzS,KAAKiuB,qBAGb,OAAO,GAEXA,mBAAoB,WAChB,GAAIjuB,KAAK2F,OAAO,sBAAuB,CACnC,IAAIqE,EAAQhK,KAAK6d,cAAcgB,cAC/B,IACI7e,KAAK+uB,YAAc,gBAAO,EAAM,GAAI/kB,GAC/BhK,KAAKoe,QACNpe,KAAK+uB,YAAc/uB,KAAK+uB,YAAYhiB,IAAI,CAACiiB,EAAWlgB,KAAU,CAC1D,CAAC0e,GAAoBxjB,EAAM8E,GAC3B1D,KAAM4jB,MAGhB,MAAO7mB,GACLnI,KAAK+uB,YAAc,eAAO,GAAI/kB,MAI1CqK,SAAU,WACNrU,KAAK6K,gBAAgBiL,IAAI,4BAA6B9V,KAAK2tB,4BAC3D3tB,KAAKwI,YAETymB,gBAAiB,SAASC,EAASllB,EAAO4kB,EAAQO,GAC9C,GAAIA,EACAnvB,KAAKkS,YAAY0c,EAAO9f,MAAO8f,EAAOxjB,KAAM,KAAMpL,KAAKkuB,sBAAsBU,EAAOxQ,UACjF,CACH,IAAIgR,EAAcplB,EAAM,eAAWklB,EAASllB,EAAO4kB,EAAOxQ,MACtDgR,GACA,eAAOF,EAASllB,EAAO4kB,EAAOxQ,IAAKwQ,EAAOxjB,MAAMoN,KAAK,KACjDxY,KAAKkS,YAAYlI,EAAMqH,QAAQ+d,GAAcA,EAAa,KAAMpvB,KAAKkuB,sBAAsBU,EAAOxQ,UAKlHiR,gBAAiB,SAASH,EAASllB,EAAO4kB,EAAQO,GAC9C,eAAKA,GAAoB,eAAOD,EAASllB,EAAO4kB,EAAOxjB,KAAMwjB,EAAO9f,QAAQ0J,KAAK,KAC7E,IAAI8W,EACJtvB,KAAKuvB,2BAA2BX,GAChC,IAAI9X,EAAiB9W,KAAKwvB,kBAAkBZ,EAAOxjB,MACnDpL,KAAKkS,YAAY,QAAUod,EAAgBV,EAAO9f,aAAU,IAAWwgB,EAAgBA,EAAgBtlB,EAAMxJ,OAAQouB,EAAOxjB,KAAM0L,GAClI9W,KAAKyvB,4BACLzvB,KAAK6tB,sBAGb2B,kBAAmB,SAASE,GACxB,OAAO1vB,KAAKmU,kBAEhBwb,oCAAqC,SAASC,GAC1C,IAAI3S,EAAgBjd,KAAK2F,OAAO,iBAC5BsX,EAAgB2S,EAChB5vB,KAAK2F,OAAO,gBAAiBsX,EAAgB,GACtCA,IAAkB2S,GAAe,IAAM5vB,KAAK2F,OAAO,iBAAiBnF,OAC3ER,KAAK2F,OAAO,gBAAiB,IAE7B3F,KAAKghB,2BAGbuO,2BAA4B,SAASX,GACjC,IAAI3R,EAAgBjd,KAAK2F,OAAO,iBAC5BipB,EAAO9f,OAASmO,GAChBjd,KAAK2F,OAAO,gBAAiBsX,EAAgB,IAGrDwS,0BAA2B,OAC3BI,gBAAiB,SAASX,EAASllB,EAAO4kB,EAAQO,GAC9C,IAAIrgB,EAAQqgB,EAAmBP,EAAO9f,MAAQ,eAAWogB,EAASllB,EAAO4kB,EAAOxQ,KAC5E0R,EAAcX,EAAmBP,EAAOmB,QAAU/lB,EAAM8E,GAC5D,GAAIghB,EAAa,CACb,IAAIE,EAAsBhwB,KAAKkuB,sBAAsBU,EAAOxQ,KACxDoH,EAAoBxlB,KAAK6b,kBAAkBmU,GAC/ChwB,KAAK+jB,qBAAqBiM,GAAqBxX,KAAK,KAC5C2W,GACAnvB,KAAKklB,yBAAyBpW,EAAQ,GACtC9O,KAAKulB,yBAAyByK,EAAqBxK,GACnDxlB,KAAK2vB,oCAAoC7gB,KAEzC9O,KAAKqlB,0BAA0BvW,GAC/B9O,KAAKulB,yBAAyByK,EAAqBxK,MAG3DxlB,KAAK6tB,qBAGbQ,iBAAkB,SAASD,EAASe,GAChC,IAAInlB,EAAQhK,KAAK6d,cAAcgB,cAC3BqQ,EAAU,CACV9Q,IAAKpe,KAAKoe,IAAI9b,KAAKtC,MACnB0e,MAAO1e,KAAK0e,MAAMpc,KAAKtC,OAEvByf,EAAiBzf,KAAK6K,gBACtBmD,EAAWyR,EAAezR,WAC1BiiB,EAAQxQ,EAAewQ,SACvBjiB,GAAYiiB,KACZ7B,EAAUA,EAAQlqB,OAAOoI,GAAQ,WAAaA,EAAKuiB,WAAQ,IAAWviB,EAAKwC,QAE/Esf,EAAQ1pB,QAAQkqB,GAAU5uB,KAAK,IAAI0C,OAAOksB,EAAOC,KAAM,aAAaK,EAASllB,EAAO4kB,EAAQO,IAC5FnvB,KAAKiO,oBAAsBjE,EAAMxJ,OACjCR,KAAKiuB,qBACLjuB,KAAKgV,2BAETyE,uBAAwB,SAASlN,EAAYsL,EAAY/I,GACrD,IAAIohB,EAAqB3jB,EAAW+b,SAAStoB,KAAK6U,iBAAiBtS,IAAIuM,GACvE,aAAWqhB,cAAc5jB,EAAWhK,IAAI,GAAIsV,EAAWtV,IAAI,GAAI2tB,IAEnE/d,eAAgB,SAAS5O,GACrB,OAAQA,EAAKjC,MACT,IAAK,QACD,IAAI8uB,EAAiBpwB,KAAK8uB,gBAAgBvrB,EAAKvC,OAC1CovB,GACDpwB,KAAKwI,SAASjF,GAElB,MACJ,IAAK,aACIvD,KAAK2F,OAAO,uBAA0BpC,EAAKvC,OAC5ChB,KAAK2F,OAAO,QAAS,IAEzB3F,KAAKwI,SAASjF,GACd,MACJ,IAAK,qBACD,MACJ,QACIvD,KAAKwI,SAASjF,Q,kGC5O1B,EAAW,OAAM8sB,SACjBC,EAAe,OAAMxoB,QAAQ,CAC7BwV,KAAM,SAASiT,GACXvwB,KAAKwwB,kBAAoBD,GAE7BhS,mBAAoB,EACpB6C,mBAAoB,EACpBtD,eAAgB,EAChBE,eAAgB,EAChBa,YAAa,EACbX,cAAe,SAASpP,GACpB,IAAI2hB,EAAczwB,KAAK0wB,sBAAsB5hB,GAC7C,OAAO9O,KAAK8d,eAAe,CAAC9d,KAAKohB,mBAAmBqP,KAAe,IAEvEE,WAAY,SAASC,EAAMC,GACvB,OAAI7wB,KAAKwwB,kBAAkBhS,kBAChB,eAAaoS,EAAMC,GAEnBD,IAASC,GAGxBjQ,WAAY,WACR5gB,KAAK8wB,OAAS,IAElBjQ,SAAU,WACN7gB,KAAK8wB,OAAS,MAElBzS,cAAe,EACfsE,mBAAoB,SAAS3hB,GACzB,OAAIhB,KAAK+wB,uBAAuB/vB,GACrBA,EAEPhB,KAAKgxB,aAAahwB,GACXhB,KAAKixB,oBAAoBjwB,GAEhChB,KAAKkxB,QAAQlwB,GACNhB,KAAKmxB,wBAAwBnwB,GAEjChB,KAAKixB,oBAAoBjxB,KAAKue,mBAAmBvd,KAE5D2lB,SAAU,SAAS3lB,GACf,OAAIhB,KAAK+wB,uBAAuB/vB,GACrBhB,KAAK0wB,sBAAsB1vB,GAElChB,KAAKgxB,aAAahwB,GACXA,EAEPhB,KAAKkxB,QAAQlwB,GACNhB,KAAK0wB,sBAAsB1wB,KAAKmxB,wBAAwBnwB,IAE5DhB,KAAKue,mBAAmBvd,IAEnC2iB,eAAgB,SAAS3iB,GACrB,GAAIhB,KAAK+wB,uBAAuB/vB,GAC5B,OAAOhB,KAAKoxB,0BAA0BpwB,GAE1C,GAAIhB,KAAKgxB,aAAahwB,GAClB,OAAOhB,KAAKoxB,0BAA0BpxB,KAAKixB,oBAAoBjwB,IAEnE,GAAIhB,KAAKkxB,QAAQlwB,GACb,OAAO,eAAEA,GAEb,IAAI0hB,EAAsB1iB,KAAKixB,oBAAoBjxB,KAAKue,mBAAmBvd,IAC3E,OAAOhB,KAAKoxB,0BAA0B1O,IAE1CwO,QAASG,GAAM,aAAWC,OAAOD,GAAM,eAAWA,GAAMA,EAAG9uB,IAAI,GAAK8uB,GACpE/L,kBAAmB,EACnBkB,kBAAmB,SAASH,EAAaC,GACrC,OAAOtmB,KAAKuxB,qBAAqBlL,EAAaC,IAAqBD,EAAcC,EAAmB,QAAU,UAElHG,uBAAwB,EACxBsK,uBAAwB,SAASjiB,GAC7B,MAAO,kBAAoBA,GAAS0iB,KAAKC,MAAM3iB,KAAWA,GAE9DkiB,aAAc,EACdG,wBAAyB,EACzBF,oBAAqB,EACrBP,sBAAuB,EACvBU,0BAA2B,EAC3BG,qBAAsB,IAEX,ICzFXG,EAAoB,EAAa5pB,QAAQ,CACzC6pB,eAAgB,WACZ,OAAO3xB,KAAKwwB,kBAAkB7qB,OAAO,UAAY,IAErD4Y,mBAAoB,SAASlV,GACzB,IAAIqV,EAAQ1e,KAAKwwB,kBAAkB9R,MAAMpc,KAAKtC,KAAKwwB,mBACnD,OAAI9R,EACO1e,KAAKqe,cAAcK,EAAMrV,IAEzBrJ,KAAK2xB,iBAAiBtgB,QAAQhI,IAG7C+X,mBAAoB,SAAStS,GACzB,OAAO9O,KAAK2xB,iBAAiB7iB,IAEjCwW,kBAAmB,SAASxW,GACxB9O,KAAK2xB,iBAAiBC,OAAO9iB,EAAO,IAExC+P,YAAa,WACT,OAAO7e,KAAK2xB,kBAEhB7T,eAAgB,SAAS9T,GACrB,IAAI0U,EAAQ1e,KAAKwwB,kBAAkB9R,MAAMpc,KAAKtC,KAAKwwB,mBAC/Czf,EAAS/G,EACb,GAAI0U,EAAO,CACP3N,EAAS,GACT,IAAK,IAAI1Q,EAAI,EAAGA,EAAI2J,EAAMxJ,OAAQH,IAC9B0Q,EAAO1M,KAAKqa,EAAM1U,EAAM3J,KAGhC,OAAO0Q,GAEXsN,cAAe,SAASD,GACpB,IAAIyT,EAAQ7xB,KAAK8wB,OACbrQ,EAAOoR,GAASA,EAAMpR,MAAQzgB,KAAK8d,eAAe9d,KAAK2xB,kBAI3D,GAHIE,IAAUA,EAAMpR,OAChBoR,EAAMpR,KAAOA,GAEb,kBAAoBrC,EAOpB,OAAOqC,EAAKpP,QAAQ+M,GANpB,IAAK,IAAI/d,EAAI,EAAGG,EAASigB,EAAKjgB,OAAQH,EAAIG,EAAQH,IAC9C,GAAIL,KAAK2wB,WAAWvS,EAAKqC,EAAKpgB,IAC1B,OAAOA,EAMnB,OAAQ,GAEZ2d,eAAgB,SAASyC,EAAMzW,GAC3B,OAAQA,GAASyW,GAAMjb,SAE3BihB,uBAAwB,SAASJ,EAAaC,GAC1C,IAAItc,EAAQhK,KAAK2xB,iBACbG,EAAgB9nB,EAAMqc,GAC1Brc,EAAM4nB,OAAOvL,EAAa,GAC1Brc,EAAM4nB,OAAOtL,EAAkB,EAAGwL,IAEtCd,aAAc,SAASliB,GACnB,MAAO,kBAAoBA,GAAS0iB,KAAKC,MAAM3iB,KAAWA,GAE9DqiB,wBAAyB,SAASzY,GAC9B,OAAO1Y,KAAKwwB,kBAAkB7gB,gBAAgBb,MAAM4J,IAExDuY,oBAAqB,SAASniB,GAC1B,OAAOA,GAEX4hB,sBAAuB,SAAS5hB,GAC5B,OAAOA,GAEXsiB,0BAA2B,SAAStiB,GAChC,OAAOA,GAAS,EAAI9O,KAAKwwB,kBAAkB7gB,gBAAgBT,GAAGJ,GAAS,MAE3EyiB,qBAAsB,WAClB,OAAO,KAGA,U;;;;;;;;;;;;GCxEftxB,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQypB,yBAA2BzpB,EAAQ0pB,6BAA+B1pB,EAAQ2pB,qBAAkB,EACpG,IAAI5D,EAAQ,EAAQ,QAChBC,EAAc,EAAQ,QACtBgL,EAA4B,EAAQ,QACpCC,EAAwB,EAAQ,QAChChL,EAAe,EAAQ,QAC3B,SAAS0D,EAAgB5kB,GAMrB,OALAA,EAAOohB,SAAU,EAAIH,EAAYkL,oBACjC,EAAIjL,EAAakL,kBAAkBpsB,GAC/BA,EAAO4U,QACP,EAAIsM,EAAamL,WAAWrsB,IAEzB,EAAIghB,EAAMG,iBAAiBnhB,GAGtC,SAAS2kB,EAA6B3kB,GAGlC,OAFAA,EAAOohB,SAAU,EAAI6K,EAA0BK,wBAC/C,EAAIpL,EAAakL,kBAAkBpsB,IAC5B,EAAIghB,EAAMG,iBAAiBnhB,GAGtC,SAAS0kB,EAAyB1kB,GAG9B,OAFAA,EAAOohB,SAAU,EAAI8K,EAAsBnL,6BAC3C,EAAIG,EAAakL,kBAAkBpsB,IAC5B,EAAIghB,EAAMG,iBAAiBnhB,GAVtC/E,EAAQ2pB,gBAAkBA,EAM1B3pB,EAAQ0pB,6BAA+BA,EAMvC1pB,EAAQypB,yBAA2BA,G;;;;;;;;;;;;GCzBnC,SAAS6H,EAAoBtJ,EAAOuJ,GAChC,IAAK,IAAIC,KAAYxJ,EACjB,GAAIA,EAAMwJ,KAAcD,EACpB,OAAOC,EAGf,OAAOD,EAGX,SAASE,EAAexxB,GACpB,OAAOA,EAAM,GAAGyxB,cAAgBzxB,EAAM0xB,OAAO,GAGjD,SAASC,EAAe3xB,GACpB,OAAOA,EAAM,GAAG4xB,cAAgB5xB,EAAM0xB,OAAO,GAGjD,SAASG,EAAS7xB,GACd,OAAO2xB,EAAe3xB,EAAM2C,MAAM,KAAKoJ,KAAI,SAAUsd,GAAK,OAAOmI,EAAenI,MAAO9lB,KAAK,KAGhG,SAASuuB,EAAa9xB,GAClB,OAAOA,aAAiB+xB,KAAO/xB,EAAMgyB,UAAYhyB,EAGrD,SAASwC,EAAQyvB,EAAQC,GACrB,OAAIJ,EAAaG,KAAYH,EAAaI,OAGtCpuB,MAAMC,QAAQkuB,KAAWnuB,MAAMC,QAAQmuB,MACd,IAAlBD,EAAOzyB,QAAkC,IAAlB0yB,EAAO1yB,QAK7C,SAAS2yB,EAAiB9B,EAAI+B,GAC1BtuB,MAAMpE,UAAU8E,MAAM5E,KAAKywB,EAAGgC,YAAY3uB,QAAQ0uB,GAGtD,SAASrH,EAAgBuH,EAAMC,GAC3B,IAAIC,EAAWvzB,OAAOwgB,KAAK6S,GAC3B,GAAIE,EAAShzB,SAAWP,OAAOwgB,KAAK8S,GAAM/yB,OACtC,OAAO,EAEX,IAAK,IAAIoF,EAAK,EAAG6tB,EAAaD,EAAU5tB,EAAK6tB,EAAWjzB,OAAQoF,IAAM,CAClE,IAAIwY,EAAMqV,EAAW7tB,GACrB,IAAK2tB,EAAK5yB,eAAeyd,GACrB,OAAO,EAGf,OAAO,EAGX,SAASsV,EAAezwB,EAAS0wB,GAC7B,IAAI3yB,EAAQiC,EASZ,OARA0wB,EAAWhwB,MAAM,KAAKe,SAAQ,SAAUjE,GACpC,IAAI0E,EAAaC,EAAc3E,GAC3BO,IACAA,EAAQmE,EAAWE,aACfrE,EAAMmE,EAAW7D,OAASN,EAAMmE,EAAW7D,MAAM6D,EAAW2J,OAC5D9N,EAAMmE,EAAW7D,UAGtBN,EAGX,SAASoE,EAAc9D,GACnB,IAAIsyB,EAAQtyB,EAAKqC,MAAM,KACvB,OAAqB,IAAjBiwB,EAAMpzB,OACC,CACH6E,cAAc,EACd/D,KAAMA,EACNuB,SAAUvB,GAGX,CACH+D,cAAc,EACd/D,KAAMsyB,EAAM,GACZ/wB,SAAUvB,EACVwN,MAAO+kB,OAAOD,EAAM,GAAGpuB,MAAM,GAAI,KAjFzCvF,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQqE,cAAgBrE,EAAQ2yB,eAAiB3yB,EAAQgrB,gBAAkBhrB,EAAQoyB,iBAAmBpyB,EAAQyC,QAAUzC,EAAQ+xB,aAAe/xB,EAAQ8xB,SAAW9xB,EAAQ4xB,eAAiB5xB,EAAQyxB,eAAiBzxB,EAAQsxB,yBAAsB,EASlPtxB,EAAQsxB,oBAAsBA,EAI9BtxB,EAAQyxB,eAAiBA,EAIzBzxB,EAAQ4xB,eAAiBA,EAIzB5xB,EAAQ8xB,SAAWA,EAInB9xB,EAAQ+xB,aAAeA,EAUvB/xB,EAAQyC,QAAUA,EAIlBzC,EAAQoyB,iBAAmBA,EAc3BpyB,EAAQgrB,gBAAkBA,EAa1BhrB,EAAQ2yB,eAAiBA,EAiBzB3yB,EAAQqE,cAAgBA,G;;;;;;;;;;;;GCpFxBnF,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ+yB,mCAAgC,EACxC/yB,EAAQ+yB,8BAAgC,0C,oGCFpCC,EAAqB,CACrBxU,KAAM,IAAM,iBAAWiF,SACvBwP,WAAY,IAAM,iBAAWxP,SAC7B3E,cAAe,IAAM,iBAAW2E,SAChCxR,aAAc,IAAM,iBAAWwR,SAC/B7E,YAAa,OACbC,SAAU,OACVtI,OAAQ,OACR2c,UAAW,OACX/vB,OAAQ,OACRgwB,gBAAiB,OACjBjE,MAAO,OACPjiB,SAAU,OACVmmB,SAAU,OACVC,UAAW,OACXC,yBAA0B,OAC1BhV,WAAY,OACZiV,WAAY,OACZvZ,UAAW,OACX6S,SAAU,OACV2G,YAAa,OACbC,gBAAiB,OACjBC,WAAY,OACZrU,OAAQ,OACRhC,IAAK,OACLM,MAAO,OACPC,MAAO,OACP3U,MAAO,OACPgW,iBAAkB,OAClB0F,cAAe,OACfsI,OAAQ,OACRjY,GAAI,OACJD,IAAK,QAET,MAAM4e,EACF,YAAY9pB,GACR,IAAKA,EACD,OAAOmpB,EAEX/zB,KAAK20B,YAAc/pB,EAEvB,OACI,OAAO5K,KAAK20B,YAAYpV,OAE5B,WAAWgT,EAAUqC,GAKjB,OAJIr0B,UAAUC,OAAS,IACnBo0B,EAAYrC,EACZA,EAAWvyB,KAAKoe,OAEbpe,KAAK20B,YAAYX,WAAWzB,EAAUqC,GAEjD,cAAcjV,GACV,OAAO3f,KAAK2e,QAAQY,KAAKI,GAE7B,eAEI,OADA3f,KAAKo0B,UAAU,EAAIp0B,KAAKo0B,aACjBp0B,KAAKuf,OAEhB,cACI,OAAOvf,KAAK20B,YAAYhV,cAE5B,WACI,OAAO3f,KAAK20B,YAAYE,UAE5B,OAAOC,GACH90B,KAAK20B,YAAYrd,OAAOwd,GAE5B,YACI90B,KAAK20B,YAAYV,YAErB,OAAO/vB,GACH,OAAOlE,KAAK20B,YAAYzwB,OAAOA,GAEnC,gBAAgB4pB,GACZ9tB,KAAK20B,YAAYI,iBAAiBjH,GAEtC,MAAMmC,GACF,OAAOjwB,KAAK20B,YAAY1E,MAAMA,GAElC,WACI,OAAOjwB,KAAK20B,YAAY3mB,WAE5B,WACI,OAAOhO,KAAK20B,YAAYK,UAE5B,UAAUZ,GACN,OAAOp0B,KAAK20B,YAAYP,UAAUA,GAEtC,2BACQp0B,KAAKo0B,cACLp0B,KAAKo0B,UAAU,GACfp0B,KAAKuf,QAGb,aACI,OAAOvf,KAAK20B,YAAYtV,aAE5B,aACI,OAAOrf,KAAK20B,YAAYL,eAAiBt0B,KAAK20B,YAAYK,UAE9D,YACI,OAAOh1B,KAAK20B,YAAY5Z,YAE5B,WACI,OAAO/a,KAAK20B,YAAY/G,WAE5B,YAAY5sB,GACR,OAAKT,UAAUC,OAGRR,KAAK20B,YAAYJ,YAAYvzB,GAFzBhB,KAAK20B,YAAYJ,cAIhC,gBAAgBU,GACZ,OAAOj1B,KAAK20B,YAAYH,gBAAgBS,GAE5C,WAAWhb,GACP,OAAK1Z,UAAUC,OAGRR,KAAK20B,YAAYF,WAAWxa,GAFxBja,KAAK20B,YAAYF,aAIhC,SACI,OAAOz0B,KAAK20B,YAAYvU,UAAU7f,WAEtC,MACI,OAAOP,KAAK20B,YAAYvW,MAE5B,MAAM9R,GACF,OAAOtM,KAAK2e,QAAQD,MAAMpS,GAE9B,QACI,OAAOtM,KAAK20B,YAAYhW,QAE5B,QACI,OAAO3e,KAAK20B,YAAY3qB,QAE5B,iBAAiBoB,GACb,OAAOpL,KAAK20B,YAAYO,kBAAkB9pB,GAE9C,gBACI,OAAOpL,KAAK20B,aAAe,KAE/B,SACI,OAAO30B,KAAK20B,YAAY3G,SAE5B,GAAGvkB,EAAOtG,GACNnD,KAAK20B,YAAY5e,GAAGtM,EAAOtG,GAE/B,IAAIsG,EAAOtG,GACPnD,KAAK20B,YAAY7e,IAAIrM,EAAOtG,IAGrB,QCpJXgyB,EAA6B,qBAC7BC,EAA6B,4BAC7BC,EAAgC,8BAChCC,EAAqC,mCACrCC,EAAwC,6BACxCC,EAA8B,+BAC9BC,EAAwB,uBACxBC,EAAkB,CAClBC,SAAU,WACN31B,KAAK+V,GAAG,YAAa,WACjB/V,KAAK41B,sBACPtzB,KAAKtC,QAEX4L,mBAAoB,WAChB5L,KAAK61B,kBACL71B,KAAK81B,mBAETD,gBAAiB,WACb,IACIE,EACAC,EAFAC,EAAoBT,KAA+Bx1B,KAAOA,KAAKw1B,KAAiCx1B,KAAK2F,OAAO,cAGhH3F,KAAK41B,qBACDK,IACIA,aAA6B,QAC7Bj2B,KAAKk2B,qBAAsB,EAC3Bl2B,KAAK20B,YAAcsB,IAEnBF,EAA0BZ,KAA8Bn1B,KAAOA,KAAKm1B,KAAgC,GACpGa,EAAiBh2B,KAAKm2B,gBAAkBn2B,KAAKm2B,kBAAoB,OACjEF,EAAoB,eAA2BA,EAAmB,CAC9DG,gBAAiBb,KAAyCv1B,MAAQA,KAAKu1B,OAE3Ev1B,KAAK20B,YAAc,IAAIqB,EAAe,OAAAztB,EAAA,OAAO,EAAM,GAAIwtB,EAAyBE,KAEhFR,KAAyBz1B,OACzBA,KAAK20B,YAAc30B,KAAKy1B,GAAuBz1B,KAAK20B,cAExD30B,KAAKq2B,yBACLr2B,KAAK0L,wBAGbA,oBAAqB,WACjB,IAAI4qB,EACA7W,EAAiB,QAAU6W,EAAet2B,KAAK2F,cAAW,IAAW2wB,OAAe,EAASA,EAAa11B,KAAKZ,KAAM,mBACrH4K,EAAa5K,KAAK20B,YAElB30B,KAAK6K,gBADL4U,GAGuB,IAAI,EAAe7U,IAGlDyrB,uBAAwB,WAChBjB,KAA8Bp1B,MAC9BA,KAAKu2B,8BAELlB,KAAiCr1B,MACjCA,KAAKw2B,iCAELlB,KAAsCt1B,MACtCA,KAAKy2B,sCAETz2B,KAAK02B,oBAETA,iBAAkB,WACd12B,KAAK20B,YAAY5e,GAAG,iBAAkB,SAASgF,GAC3C/a,KAAK22B,QAAU32B,KAAK22B,QAAQ5b,IAC9BzY,KAAKtC,QAEXu2B,4BAA6B,WACzB,IAAI3rB,EAAa5K,KAAK20B,YACtB30B,KAAK42B,iCAAmC,SAASzuB,GAC7CnI,KAAKo1B,GAA4BxqB,EAAWZ,QAAS7B,IACvD7F,KAAKtC,MACP4K,EAAWmL,GAAG,UAAW/V,KAAK42B,mCAElCJ,+BAAgC,WAC5Bx2B,KAAK62B,mCAAqC72B,KAAKq1B,GAA+B/yB,KAAKtC,MACnFA,KAAK20B,YAAY5e,GAAG,YAAa/V,KAAK62B,qCAE1CJ,oCAAqC,WACjCz2B,KAAK82B,wCAA0C92B,KAAKs1B,GAAoChzB,KAAKtC,MAC7FA,KAAK20B,YAAY5e,GAAG,iBAAkB/V,KAAK82B,0CAE/ChB,gBAAiB,WACb,IAAIlrB,EAAa5K,KAAK20B,YAClB/pB,IACIA,EAAWgjB,WACX5tB,KAAK42B,kCAAoC52B,KAAK42B,mCAE9ChsB,EAAW2U,SAIvBwX,YAAa,SAAS3Y,EAAKpd,GAEvB,OADAod,EAAM,SAAWA,EAAMpe,KAAK20B,YAAYvW,OAAS,OAASA,EACnDpe,KAAK20B,YAAYX,WAAW5V,EAAKpd,IAE5CwS,YAAa,WACT,OAAQxT,KAAK20B,aAAe30B,KAAK20B,YAAYL,eAAiBt0B,KAAK20B,YAAYK,WAEnFgC,qBAAsB,WAClB,OAAOh3B,KAAK20B,aAAe30B,KAAK20B,YAAY5Z,aAEhD6a,mBAAoB,WACZ51B,KAAK20B,cACD30B,KAAKk2B,4BACEl2B,KAAKk2B,oBACZl2B,KAAK42B,kCAAoC52B,KAAK20B,YAAY7e,IAAI,UAAW9V,KAAK42B,kCAC9E52B,KAAK62B,oCAAsC72B,KAAK20B,YAAY7e,IAAI,YAAa9V,KAAK62B,oCAClF72B,KAAK82B,yCAA2C92B,KAAK20B,YAAY7e,IAAI,iBAAkB9V,KAAK82B,0CAE5F92B,KAAK20B,YAAYsC,iBAEdj3B,KAAK20B,mBACL30B,KAAK42B,wCACL52B,KAAK62B,0CACL72B,KAAK82B,0CAGpBpR,cAAe,WACX,OAAO1lB,KAAK20B,aAAe,OAGpB,U,oCC7If,+PASW5e,EAAK,OAAaA,GAClBsX,EAAM,OAAaA,IACnBvX,EAAM,OAAaA,IACnBohB,EAAU,OAAaA,QACvBtT,EAAiB,OAAaA,eAC9BuT,EAAQ,OAAaA,O,kCCdhC,sIAsBIC,EAAwB,eACxBC,EAAoC,eAAa,cAAeD,GAChEE,EAA6B,eAAa,OAAUh2B,KAAM81B,GAC1DG,EAAyB,gBACzBC,EAAc,OAAM1vB,QAAQ,CAC5B2vB,MAAO,SAASxqB,GACZ,IAAIH,EAAW,eAAEG,GACjB,OAAa8I,GAAGjJ,EAAUuqB,EAAmCr3B,KAAK03B,oBAAoBp1B,KAAKtC,QACvF,YAAS,OAAQ23B,gBACjB,OAAa5hB,GAAGjJ,EAAUwqB,EAA4Bt3B,KAAK43B,aAAat1B,KAAKtC,QAGrF43B,aAAc,SAASzvB,GACf,eAAaA,KAAO,OAAQwvB,eAGhC33B,KAAK63B,iBAAiB1vB,IAE1BuvB,oBAAqB,SAASvvB,GAC1BnI,KAAK63B,iBAAiB1vB,IAE1B0vB,iBAAkB,SAAS1vB,GACvB,OAAO,eAAU,CACb0mB,KAAM0I,EACNO,cAAe3vB,KAGvB4vB,SAAU,SAAS9qB,GACf,OAAa6I,IAAI7I,EAAS,IAAMmqB,MAGxC,eAAcG,EAAwB,IAAIC,GACnC,IAAIl2B,EAAOi2B,G,kCCtDlB,wCAcIS,EAAMxG,KAAKwG,IACXC,EAAkB,SAClBC,EAAe,IACfC,EAAiB,EACjBC,EAAc,OAAQtwB,QAAQ,CAC9BuwB,MAAO,SAASlwB,GACZnI,KAAKs4B,gBAAkB,eAAUnwB,GACjCnI,KAAKu4B,YAAYpwB,IAErBowB,YAAa,SAASpwB,GAClB,IAAIqwB,EAAc,YAAax4B,KAAOA,KAAKiX,QAAUihB,EACrDl4B,KAAKy4B,WAAajiB,WAAW,WACzBxW,KAAK04B,eAAevwB,GACpBnI,KAAK24B,WAAWV,EAAiB9vB,EAAG,CAChCwB,OAAQxB,EAAEwB,SAEd3J,KAAK44B,iBACPt2B,KAAKtC,MAAOw4B,IAElBvwB,KAAM,SAASE,GACPnI,KAAK64B,eAAe1wB,IACpBnI,KAAK84B,QAAQ3wB,IAGrB0wB,eAAgB,SAAS1wB,GACrB,IAAI4wB,EAAQ,eAAW/4B,KAAKs4B,gBAAiB,eAAUnwB,IACvD,OAAO6vB,EAAIe,EAAMC,GAAKb,GAAkBH,EAAIe,EAAME,GAAKd,GAE3DhvB,IAAK,WACDnJ,KAAKk5B,cAETA,WAAY,WACR5kB,aAAatU,KAAKy4B,aAEtBnhB,OAAQ,WACJtX,KAAKk5B,cAETjC,QAAS,WACLj3B,KAAKk5B,gBAGb,eAAgB,CACZC,QAASf,EACTgB,QAAQ,EACRC,OAAQ,CAACpB,KAEE,QACX32B,KAAM22B,I;;;;;;;;;;;;GC/CV,IAAIl4B,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAEhCN,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgqB,eAAY,EACpB,IAAIjlB,EAAS,CACTwzB,yBAAyB,GAE7B,SAASrO,EAAWhoB,GAChB6C,EAAS/F,EAASA,EAAS,GAAI+F,GAAS7C,GAE5C,SAAS8nB,EAAU9mB,GACf,OAAO6B,EAAO7B,GAElBlD,EAAQgqB,UAAYA,EACpBhqB,EAAQuF,QAAU2kB,G,kCCrClB,kGAmBIsO,EAAe,SAASC,EAAS3f,EAAa4f,EAAQvtB,EAAWknB,GACjE,IAAIsG,EACAC,EAAgB,EAAEvuB,EAAMyO,EAAauZ,IAAavZ,EAAY,IAAMzO,EAAMgoB,GAA1D,CAAqEoG,EAAS3f,GAAa,SAAU+f,GACrHF,GAAiBA,IACb,eAAYE,GACZxG,EAASwG,GAGbF,EAAgB,SAAStuB,EAAMyO,EAAa4f,EAAQvtB,EAAWknB,GAC3D,IAAIyG,EAAe,GACfC,EAAeL,EAAOj0B,QACtBu0B,EAAgBN,EAAO1sB,KAAI,SAAUzL,GACrC,IAAIyY,EAAc7N,EAAU5K,GAC5B,OAAOuY,EAAYE,EAAc,IAAMA,EAAY3O,GAAQ,IAAMA,EAAK9J,IAAO,SAAUN,GAEnF,GADA64B,EAAav4B,GAAQN,EACjB84B,EAAat5B,OAAQ,CACrB,IAAIsO,EAAQgrB,EAAazoB,QAAQ/P,GAC7BwN,GAAS,GACTgrB,EAAalI,OAAO9iB,EAAO,GAG9BgrB,EAAat5B,QACd4yB,EAASyG,SAIrB,OAAO,WACHE,EAAcr1B,QAAQuyB,GAAWA,MAnBzB,CAqBd2C,EAAmB/f,EAAa4f,EAAQvtB,EAAWknB,MAEzD,OAAO,WACHsG,GAAiBA,IACjBC,GAAiBA,MAGlB,MAAMK,UAAyB,OAClC,YAAYvf,EAAQgf,EAAQ5f,EAAa3N,GACrC+tB,QACAj6B,KAAKiV,QAAUwF,EACfza,KAAKk6B,QAAUT,EACfz5B,KAAKm6B,WAAajuB,GAAa,GAC/BlM,KAAKo6B,aAAevgB,EAExB,YAAY5W,GACR,IAAIsJ,EAAa,eAAEtJ,EAAQoV,WACvB4e,EAAUsC,EAAat2B,EAAQyX,MAAO1a,KAAKo6B,aAAcp6B,KAAKk6B,QAASl6B,KAAKm6B,WAAY/uB,IACxFmB,EAAW6H,QACXpU,KAAKiV,QAAQ1I,EAAYnB,EAAMnI,EAAQyX,SAG3C,OADA,OAAa3E,GAAGxJ,EAAY,OAAa0qB,GAClC1qB,EAAW8tB,c;;;;;;;;;;;;GCxD1B,IAAI3Q,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEX9Q,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8qB,SAAW9qB,EAAQ4rB,mBAAgB,EAC3C,IAAI2N,EAAUhQ,EAAa,EAAQ,SAC/BiQ,EAAW,EAAQ,QACnBC,EAAgB,WAChBC,EAAMH,EAAQh0B,SAAWg0B,EAC7B,SAASI,EAAeh1B,GACpB,GAAKA,EAAUi1B,OAAf,CAGA,IAAIl4B,EAAeiD,EAAUi1B,OAAOC,iBACpC,GAAKn4B,EAAaymB,UAAazmB,EAAaymB,SAAS5nB,KAGrD,OAAOmB,GAEX,SAASo4B,EAAYn1B,GACjB,OAAO80B,KAAiB90B,EAAUU,QAAWV,EAAUi1B,OAAOvvB,MAAQ1F,EAAUi1B,OAAOvvB,KAAK0vB,YAEhG,SAASjP,EAASnmB,GACd,IAAIq1B,EAAY,GAChB,IAAK,IAAIC,KAAYt1B,EAAUu1B,aAC3B,GAAiB,YAAbD,IAA0Bt1B,EAAUw1B,OAAO50B,QAA/C,CAGA,IAAI60B,EAAOz1B,EAAUu1B,aAAaD,GAC7BG,IAGLJ,EAAUC,GAAYG,GAE1B,IAAK,IAAIv1B,EAAK,EAAGC,EAAKH,EAAU01B,UAAWx1B,EAAKC,EAAGrF,OAAQoF,IAAM,CAC7D,IAAIy1B,EAAiBx1B,EAAGD,GACpBnD,EAAei4B,EAAeW,GAClC,GAAK54B,EAAL,CAGA,IAAI64B,EAAcD,EAAeJ,aAAa30B,QAC9C,GAAKg1B,GAAgBT,EAAYQ,GAAjC,CAGA,IAAI/I,EAAe,GAAG5vB,OAAOD,EAAaymB,SAAStmB,SAAU,KAAKF,OAAO83B,GACzEO,EAAUzI,GAAgBgJ,IAE9B,OAAOP,EAGX,SAASpO,EAAc4O,EAAS7kB,EAAQtL,EAAM9J,EAAMgrB,GAChD,OAAO,IAAImO,EAAI,CACXpJ,GAAI/E,EACJhrB,KAAMA,EACNk6B,OAAQ,CAAC,YACT9kB,OAAQA,EACR+kB,QAAS,WACL,IAAIrP,EAAQpsB,KACZA,KAAK07B,SAASC,IAAI,WAAW,WACzBvP,EAAMwP,mBAGdnhB,OAAQ,SAAU+R,GACd,IAAIqP,EAAUN,IAAUnwB,GACxB,IAAKywB,EACD,OAAOrP,EAAc,OAEzB,GAAIqP,EAAQr7B,OAAS,EACjB,MAAM,IAAIqkB,MAAM0V,EAASzG,+BAE7B,OAAO+H,EAAQ,IAEnBC,UAAW,WAEP97B,KAAK07B,SAASK,KAAK,cAzB/Bh7B,EAAQ8qB,SAAWA,EA6BnB9qB,EAAQ4rB,cAAgBA,G;;;;;;;;;;;;GClGxB,IAAI5sB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAEhCN,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQE,yBAA2BF,EAAQG,wBAAqB,EAChE,IAAI4lB,EAAQ,EAAQ,QAChBsE,EAAW,EAAQ,QACnBjqB,EAAY,EAAQ,QACpB6lB,EAAe,EAAQ,QACvB5lB,EAA+B,WAC/B,SAASA,EAAcC,EAAYC,EAAMC,EAAeC,EAAkBC,EAAkBC,EAAqBC,GAC7G3B,KAAK4B,YAAcP,EACnBrB,KAAK6B,MAAQP,EACbtB,KAAK8B,eAAiBP,GAAgC,GACtDvB,KAAK+B,sBAAwB,GAC7B/B,KAAKgC,oBAAsBP,EAC3BzB,KAAKiC,qBAAuBP,EAC5B1B,KAAKkC,kBAAoBV,GAAoB,GAC7CxB,KAAKmC,aAAeR,EACpB3B,KAAKoC,kBAAoB,GACzBpC,KAAKqC,YAAcrC,KAAKqC,YAAYC,KAAKtC,MA4M7C,OA1MAC,OAAOa,eAAeM,EAAcV,UAAW,OAAQ,CACnD6B,IAAK,WACD,OAAOvC,KAAK6B,OAEhBW,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,WAAY,CACvD6B,IAAK,WACD,OAAOvC,KAAK6B,OAAS7B,KAAKgC,kBACpB,GAAGU,OAAO1C,KAAK6B,MAAO,KAAKa,OAAO1C,KAAKiC,qBAAsB,KAC7DjC,KAAK6B,OAEfW,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,yBAA0B,CACrE6B,IAAK,WACD,OAAOvC,KAAKoC,mBAEhBI,YAAY,EACZC,cAAc,IAElBrB,EAAcV,UAAUiC,4BAA8B,WAClD3C,KAAKoC,kBAAoB,IAE7BnC,OAAOa,eAAeM,EAAcV,UAAW,WAAY,CACvD6B,IAAK,WACD,OAAOvC,KAAKmC,cAAgBnC,KAAKmC,aAAaS,SACxC,GAAGF,OAAO1C,KAAKmC,aAAaS,SAAU,KAAKF,OAAO1C,KAAK6C,UACvD7C,KAAK6C,UAEfL,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,cAAe,CAC1D6B,IAAK,WACD,OAAOvC,KAAKmC,cAEhBK,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,UAAW,CACtD6B,IAAK,WACD,OAAOvC,KAAK8C,UAEhBN,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,gBAAiB,CAC5D6B,IAAK,WACD,OAAOvC,KAAK8B,gBAEhBU,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,mBAAoB,CAC/D6B,IAAK,WACD,OAAOvC,KAAKkC,mBAEhBM,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,SAAU,CACrD6B,IAAK,WACD,OAAOvC,KAAK+B,uBAEhBS,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,oBAAqB,CAChE6B,IAAK,WACD,OAAOvC,KAAK+C,0BAEhBP,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,sBAAuB,CAClE6B,IAAK,WACD,OAAOvC,KAAKiC,sBAEhBO,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,mBAAoB,CAC/D6B,IAAK,WACD,OAAOvC,KAAKgC,mBAEhBQ,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeM,EAAcV,UAAW,aAAc,CACzD6B,IAAK,WACD,OAAOvC,KAAK4B,aAEhBY,YAAY,EACZC,cAAc,IAElBrB,EAAcV,UAAUsC,KAAO,SAAUC,GACrCjD,KAAK8C,SAAWG,GAAoB,IAExChD,OAAOa,eAAeM,EAAcV,UAAW,oBAAqB,CAChEwC,IAAK,SAAUC,GACXnD,KAAKoD,mBAAqBD,GAE9BX,YAAY,EACZC,cAAc,IAElBrB,EAAcV,UAAU2C,qBAAuB,SAAUrC,GACrDhB,KAAK+C,yBAA2B/B,GAEpCI,EAAcV,UAAU4C,gBAAkB,SAAUC,IAC5C,EAAIpC,EAAUqC,SAASD,EAAKvC,MAAOuC,EAAKE,gBAG5CzD,KAAK0D,iBAAiBH,EAAKV,SAASc,MAAM,KAAMJ,IAEpDnC,EAAcV,UAAUkD,YAAc,WAClC5D,KAAK+B,sBAAwB,IAEjCX,EAAcV,UAAUmD,aAAe,SAAUvC,EAAMC,EAAeE,EAAkBD,GACpF,IAAIsC,EAAW9D,KAAKkC,kBAAkBZ,GAClCyC,EAAazC,EACb0C,EAAyBvC,EACzBqC,IACAE,EAAyBF,EAASrC,iBAC9BqC,EAASG,aACTF,EAAaD,EAASG,aAG9B,IAAIvC,GAAuB,EACvBsC,GAA0BD,IAC1BrC,EAAsB1B,KAAK+B,sBAAsBmC,QAAO,SAAUC,GAAK,OAAOA,EAAEtC,OAASsC,EAAEtC,QAAUkC,KAAevD,QAExH,IAAI4D,EAAgB,IAAIhD,EAAcpB,KAAK4B,YAAamC,EAAYxC,EAAeC,EAAkBwC,EAAwBtC,EAAqB1B,MAElJ,OADAA,KAAK+B,sBAAsBsC,KAAKD,GACzBA,GAEXhD,EAAcV,UAAU2B,YAAc,SAAUiC,EAAYtD,GACxD,IAAI6B,EAAW,CAAC7C,KAAK4C,SAAU0B,GAAYJ,QAAO,SAAU5D,GAAK,OAAOA,KAAMiE,KAAK,KACnFvE,KAAK4B,YAAYiB,EAAU7B,IAE/BI,EAAcV,UAAU8D,sBAAwB,WAC5C,IAAIC,EAAS,GAqBb,OApBAzE,KAAK+B,sBAAsB2C,SAAQ,SAAUC,GACzC,GAAKA,EAAE9C,MAAP,CAGA,IAAI+C,EAAc7E,EAASA,EAAS,GAAI4E,EAAEpD,eAAgBoD,EAAEH,yBAC5D,GAAKI,EAGL,GAAKD,EAAE3C,kBAGF,CACD,IAAI6C,EAAMJ,EAAOE,EAAE9C,OACdgD,GAAQC,MAAMC,QAAQF,KACvBA,EAAM,GACNJ,EAAOE,EAAE9C,OAASgD,GAEtBA,EAAIR,KAAKO,QARTH,EAAOE,EAAE9C,OAAS+C,MAWnBH,GAEXrD,EAAcV,UAAUsE,kBAAoB,WACxC,IAAIC,EAAY,GAEhB,OADAjF,KAAK+B,sBAAsB2C,SAAQ,SAAUP,GAAK,OAAOA,EAAEtC,QAAUoD,EAAUd,EAAEtC,QAAS,MACnF7B,KAAK8C,SAASoB,QAAO,SAAUS,GAAK,OAAQM,EAAUN,OAEjEvD,EAAcV,UAAUgD,iBAAmB,SAAUwB,EAAe3B,GAChE,GAA6B,IAAzB2B,EAAc1E,OAAlB,CAGA,IAAI2E,GAAa,EAAIhE,EAAUiE,eAAeF,EAAc,IAC5D,GAAIC,EAAWE,cAAgBH,EAAc1E,OAAS,EAAG,CACrD,IAAI8E,EAAetF,KAAKuF,iBAAiBJ,EAAWtC,UACpD,GAAIyC,EAEA,YADAA,EAAa5B,iBAAiBwB,EAAcM,MAAM,GAAIjC,GAG1DvD,KAAKyF,sBAAsBN,EAAW7D,KAAMiC,EAAKmC,UAAUC,OAAO3F,KAAK4C,SAAW,GAAGF,OAAO1C,KAAK4C,SAAU,KAAKF,OAAOyC,EAAW7D,MAAQ6D,EAAW7D,YAGrJtB,KAAKyF,sBAAsBN,EAAW7D,KAAMiC,EAAKvC,SAGzDI,EAAcV,UAAU6E,iBAAmB,SAAU1C,GACjD,IAAK,IAAI+C,EAAK,EAAGC,EAAK7F,KAAK+B,sBAAuB6D,EAAKC,EAAGrF,OAAQoF,IAAM,CACpE,IAAIN,EAAeO,EAAGD,GACtB,GAAIN,EAAazC,WAAaA,EAC1B,OAAOyC,IAKnBlE,EAAcV,UAAU+E,sBAAwB,SAAUnE,EAAMN,GACxDhB,KAAKoD,oBACLpD,KAAKoD,mBAAmB9B,EAAMN,IAG/BI,EAvNuB,GAyNlC,SAASF,EAAmB4E,EAAQC,EAAaC,GAC7C,IAAIC,EAAUH,GAAUA,EAAOd,oBAC3BiB,GACAA,EAAQvB,SAAQ,SAAUT,GACtB8B,EAAYG,OAAOjC,GAAY,SAAUjD,GACrC,IAAIg7B,GAAW,EAAIlV,EAAMmV,OAAOj7B,GAC3BgF,EAAarF,eAAesD,IAC7B+B,EAAa/B,KAAgB+3B,GAC7Bl2B,EAAOzD,YAAY4B,EAAYjD,UAE5BgF,EAAa/B,KACrB,CAAEi4B,MAAM,EAAI9Q,EAASL,WAAW,kBAK/C,SAASoR,EAAQp2B,EAAawsB,GAC1B,IAAIxJ,EAAQhjB,EAAYq2B,SAASrT,MACjC,OAAOA,GAASA,EAAMpoB,eAAe4xB,GAEzC,SAAS8J,EAAep5B,EAAS8lB,EAAOuT,GACpC,IAAIz2B,EACJ,OAAO5C,EAAQyX,OACRqO,EAAMpoB,eAAeqmB,EAAauV,eACoC,QAApE12B,EAAe,OAAVy2B,QAA4B,IAAVA,OAAmB,EAASA,EAAMvT,aAA0B,IAAPljB,OAAgB,EAASA,EAAGlF,eAAeqmB,EAAauV,cAEjJ,SAASt7B,EAAyB6E,EAAQC,EAAaC,GACnDF,EAAOK,kBAAoB,SAAU7E,EAAMN,GACvC,IAAI6E,EACAkjB,EAAQhjB,EAAYK,OACpBk2B,EAA2F,QAAlFz2B,EAAqB,OAAhBE,QAAwC,IAAhBA,OAAyB,EAASA,EAAYy2B,SAAsB,IAAP32B,OAAgB,EAASA,EAAGy2B,MACnI,GAAIH,EAAQp2B,EAAazE,MAAU,EAAIH,EAAUqC,SAASxC,EAAO+nB,EAAMznB,KAAUyE,EAAYM,MAAO,CAChGL,EAAa1E,IAAQ,EAAIwlB,EAAMmV,OAAOj7B,GACtC,IAAI+V,EAAqB,UAATzV,GAAoB+6B,EAAet2B,EAAYq2B,SAAUrT,EAAOuT,GAC5E,UAAU55B,OAAOskB,EAAauV,aAC9B,UAAU75B,OAAOpB,GACrByE,EAAYM,MAAM0Q,EAAW/V,KArBzCD,EAAQG,mBAAqBA,EAyB7BH,EAAQE,yBAA2BA,EACnCF,EAAQuF,QAAUlF,G;;;;;;;;;;;;GCnRlB,IAAIsoB,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEX9Q,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ+pB,OAAS/pB,EAAQ07B,mBAAgB,EACzC,IAAInC,EAAUhQ,EAAa,EAAQ,SAC/BmQ,EAAMH,EAAQh0B,SAAWg0B,EAC7B,SAASmC,IACL,IAAIC,EAAiBjC,EAAIkC,QACzB,OAAO9I,OAAO6I,EAAe/4B,MAAM,KAAK,IAG5C,SAASmnB,IACL,OAA2B,IAApB2R,IAFX17B,EAAQ07B,cAAgBA,EAIxB17B,EAAQ+pB,OAASA,G;;;;;;;;;;;;GCnCjB,IAAI/qB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAE5B2qB,EAAmBlrB,MAAQA,KAAKkrB,iBAAoB,SAAUX,GAC9D,OAAQA,GAAOA,EAAIL,WAAcK,EAAM,CAAE,QAAWA,IAExDtqB,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQoqB,sBAAmB,EAC3B,IAAIE,EAA0B,EAAQ,QAClCC,EAAgBJ,EAAgB,EAAQ,SACxCK,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QACtBrqB,EAAY,EAAQ,QACpBgqB,EAAkC,WAClC,SAASA,EAAiBzlB,GACtB1F,KAAKyrB,OAAS,GACdzrB,KAAK0rB,WAAa,GAClB1rB,KAAK2rB,UAAW,EAChB3rB,KAAK4rB,WAAalmB,EAClB1F,KAAK6rB,WAuET,OArEAV,EAAiBzqB,UAAUmrB,SAAW,WAClC7rB,KAAKyrB,OAAS1rB,EAAS,IAAI,EAAIsrB,EAAwBQ,UAAU7rB,KAAK4rB,cACjE,EAAIzqB,EAAU4qB,iBAAiB/rB,KAAK0rB,WAAY1rB,KAAKyrB,SACtDzrB,KAAKgsB,qBAGb/rB,OAAOa,eAAeqqB,EAAiBzqB,UAAW,YAAa,CAC3D6B,IAAK,WACD,OAAOvC,KAAK0rB,YAEhBlpB,YAAY,EACZC,cAAc,IAElBxC,OAAOa,eAAeqqB,EAAiBzqB,UAAW,UAAW,CACzD6B,IAAK,WACD,OAAOvC,KAAK2rB,UAEhBnpB,YAAY,EACZC,cAAc,IAElB0oB,EAAiBzqB,UAAUurB,eAAiB,WACxCjsB,KAAK2rB,UAAW,GAEpBR,EAAiBzqB,UAAUsrB,kBAAoB,WAC3ChsB,KAAK0rB,WAAa,GAClB,IAAK,IAAI9lB,EAAK,EAAGC,EAAK5F,OAAOwgB,KAAKzgB,KAAKyrB,QAAS7lB,EAAKC,EAAGrF,OAAQoF,IAAM,CAClE,IAAIsmB,EAASrmB,EAAGD,GAChB5F,KAAK0rB,WAAWQ,GAAUlsB,KAAKmsB,iBAAiBD,GAEpDlsB,KAAK2rB,UAAW,GAEpBR,EAAiBzqB,UAAUyrB,iBAAmB,SAAU7qB,GACpD,IAAI8qB,EAAQpsB,KACZ,MAAO,CACHya,OAAQ,SAAUrP,GACd,IAAIwxB,EAAW,SAAWjiB,EAAYkiB,GAElC,YADgB,IAAZA,IAAsBA,EAAU,GAC7B,WACa,IAAZA,GAAiBliB,GACjBA,IAEJkiB,KANO,CAQZzxB,EAAKuP,YACJ0R,EAAY,CAAEjhB,KAAMA,EAAKsP,MAAO5L,MAAO1D,EAAK0D,MAAO6L,WAAYiiB,GAC/DtQ,EAAcC,SAASC,cAAc,OACrCnU,EAAYjN,EAAKiN,UAAU9V,IAAM6I,EAAKiN,UAAU9V,IAAI,GAAK6I,EAAKiN,UAClEA,EAAUoU,YAAYH,GACtB,IAAII,GAAkB,EAAIrB,EAAwBsB,gBAAe,WAAc,OAAOP,EAAMX,OAAOnqB,KAAU8qB,EAAMR,WAAYS,EAAW/qB,EAAMgrB,GAC5Irf,EAAUyf,EAAgBrF,IAC9BhP,EAAUykB,YAAYxQ,GACtB,MAAOA,EAAYyQ,WACf1kB,EAAUoU,YAAYH,EAAYyQ,YAGtC,GADAzR,EAAchlB,QAAQsmB,SAAS3f,EAASue,EAAYqB,2BAA2B,GAC3E5f,EAAQ6f,WAAaC,KAAKC,UAAW,CACrC,IAAIC,EAAkBV,SAASC,cAAqC,UAAvBnU,EAAU6U,SAAuB,QAAU,QACxFD,EAAgBE,MAAMC,QAAU,OAChC/U,EAAUoU,YAAYQ,IACtB,EAAI1B,EAAS8B,KAAKJ,EAAiBzB,EAAY8B,gBAAiBZ,EAAgB8P,EAAEQ,WAAWC,IAAIC,QAAQ56B,KAAKoqB,SAG9G,EAAInB,EAAS8B,KAAKpgB,EAASue,EAAY8B,gBAAiBZ,EAAgB8P,EAAEQ,WAAWC,IAAIC,QAAQ56B,KAAKoqB,IAG1G,OADAkQ,IACO3vB,KAIZke,EA7E0B,GA+ErCpqB,EAAQoqB,iBAAmBA,G;;;;;;;;;;;;GCpG3B,IAAIprB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAIhC,SAASwnB,EAAgBG,EAAgBC,EAAariB,GAC7CoiB,GAA4C,IAA1BA,EAAe1nB,QAGtCwnB,EAAqBE,EAAgBC,EAAariB,GAGtD,SAASkiB,EAAqBM,EAAUC,EAAO5mB,GAC3C2mB,EAAS5jB,SAAQ,SAAU0jB,GAEvB,GADAG,EAAMlkB,KAAK+jB,GACNA,EAAKwS,iBAAV,CAGA,IAAIuC,EAAkB/U,EAAKwS,iBAAiBwC,KAC5C,GAAKD,EAAgBzU,aAArB,CAGA,IAAInnB,EAAgBxB,EAASA,EAAS,GAAIo9B,EAAgBtU,mBAAoBT,EAAKwS,iBAAiByC,WAChGv3B,EAASnE,EAAYkC,aAAas5B,EAAgBzU,aAAcnnB,EAAe47B,EAAgBnU,mBAAoBmU,EAAgBlU,oBACvIb,EAAKwS,iBAAiB1R,SAAWpjB,EACjCsiB,EAAKwS,iBAAiBzR,eAAiB,GACnCf,EAAKwS,iBAAiBtS,UACtBN,EAAqBI,EAAKwS,iBAAiBtS,SAAUC,EAAOziB,QAxBxE7F,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgnB,qBAAkB,EAO1BhnB,EAAQgnB,gBAAkBA,G;;;;;;;;;;;;GCjB1B,SAASsK,EAAoBtJ,EAAOuJ,GAChC,IAAK,IAAIC,KAAYxJ,EACjB,GAAIA,EAAMwJ,KAAcD,EACpB,OAAOC,EAGf,OAAOD,EAGX,SAASE,EAAexxB,GACpB,OAAOA,EAAM,GAAGyxB,cAAgBzxB,EAAM0xB,OAAO,GAGjD,SAASC,EAAe3xB,GACpB,OAAOA,EAAM,GAAG4xB,cAAgB5xB,EAAM0xB,OAAO,GAGjD,SAASG,EAAS7xB,GACd,OAAO2xB,EAAe3xB,EAAM2C,MAAM,KAAKoJ,KAAI,SAAUsd,GAAK,OAAOmI,EAAenI,MAAO9lB,KAAK,KAGhG,SAASuuB,EAAa9xB,GAClB,OAAOA,aAAiB+xB,KAAO/xB,EAAMgyB,UAAYhyB,EAGrD,SAASwC,EAAQyvB,EAAQC,GACrB,OAAIJ,EAAaG,KAAYH,EAAaI,OAGtCpuB,MAAMC,QAAQkuB,KAAWnuB,MAAMC,QAAQmuB,MACd,IAAlBD,EAAOzyB,QAAkC,IAAlB0yB,EAAO1yB,QAK7C,SAAS2yB,EAAiB9B,EAAI+B,GAC1BtuB,MAAMpE,UAAU8E,MAAM5E,KAAKywB,EAAGgC,YAAY3uB,QAAQ0uB,GAGtD,SAASrH,EAAgBuH,EAAMC,GAC3B,IAAIC,EAAWvzB,OAAOwgB,KAAK6S,GAC3B,GAAIE,EAAShzB,SAAWP,OAAOwgB,KAAK8S,GAAM/yB,OACtC,OAAO,EAEX,IAAK,IAAIoF,EAAK,EAAG6tB,EAAaD,EAAU5tB,EAAK6tB,EAAWjzB,OAAQoF,IAAM,CAClE,IAAIwY,EAAMqV,EAAW7tB,GACrB,IAAK2tB,EAAK5yB,eAAeyd,GACrB,OAAO,EAGf,OAAO,EAGX,SAASsV,EAAezwB,EAAS0wB,GAC7B,IAAI3yB,EAAQiC,EASZ,OARA0wB,EAAWhwB,MAAM,KAAKe,SAAQ,SAAUjE,GACpC,IAAI0E,EAAaC,EAAc3E,GAC3BO,IACAA,EAAQmE,EAAWE,aACfrE,EAAMmE,EAAW7D,OAASN,EAAMmE,EAAW7D,MAAM6D,EAAW2J,OAC5D9N,EAAMmE,EAAW7D,UAGtBN,EAGX,SAASoE,EAAc9D,GACnB,IAAIsyB,EAAQtyB,EAAKqC,MAAM,KACvB,OAAqB,IAAjBiwB,EAAMpzB,OACC,CACH6E,cAAc,EACd/D,KAAMA,EACNuB,SAAUvB,GAGX,CACH+D,cAAc,EACd/D,KAAMsyB,EAAM,GACZ/wB,SAAUvB,EACVwN,MAAO+kB,OAAOD,EAAM,GAAGpuB,MAAM,GAAI,KAjFzCvF,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQqE,cAAgBrE,EAAQ2yB,eAAiB3yB,EAAQgrB,gBAAkBhrB,EAAQoyB,iBAAmBpyB,EAAQyC,QAAUzC,EAAQ+xB,aAAe/xB,EAAQ8xB,SAAW9xB,EAAQ4xB,eAAiB5xB,EAAQyxB,eAAiBzxB,EAAQsxB,yBAAsB,EASlPtxB,EAAQsxB,oBAAsBA,EAI9BtxB,EAAQyxB,eAAiBA,EAIzBzxB,EAAQ4xB,eAAiBA,EAIzB5xB,EAAQ8xB,SAAWA,EAInB9xB,EAAQ+xB,aAAeA,EAUvB/xB,EAAQyC,QAAUA,EAIlBzC,EAAQoyB,iBAAmBA,EAc3BpyB,EAAQgrB,gBAAkBA,EAa1BhrB,EAAQ2yB,eAAiBA,EAiBzB3yB,EAAQqE,cAAgBA,G;;;;;;;;;;;;GCpFxBnF,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQusB,gBAAkBvsB,EAAQ8rB,+BAA4B,EAC9D,IAAIA,EAA4B,sBAChC9rB,EAAQ8rB,0BAA4BA,EACpC,IAAIS,EAAkB,WACtBvsB,EAAQusB,gBAAkBA,G,wHCEX,MAAM,EACjB,YAAYrqB,GACRjD,KAAKiD,QAAUA,EACfjD,KAAKs9B,WAAW,mBAAoB,IACpCt9B,KAAKu9B,iBAET,iBACIv9B,KAAKs9B,WAAW,gBAAiB,IACjCt9B,KAAKs9B,WAAW,kBAAmB,IACnCt9B,KAAKs9B,WAAW,eAAgB,IAChCt9B,KAAKs9B,WAAW,aAAc,IAElC,YACA,WAAWh8B,EAAMN,GACbhB,KAAKiD,QAAQ3B,GAAQN,EAEzB,qBACI,IAAIke,EAAgBlf,KAAKiD,QAAQic,cAC7BC,EAAkBnf,KAAKiD,QAAQkc,gBAC/BsE,EAAazjB,KAAKiD,QAAQwgB,WAC1BC,EAAe1jB,KAAKiD,QAAQygB,aAC5B7G,EAAgB7c,KAAKiD,QAAQ4Z,cAC7BC,EAAmB9c,KAAKiD,QAAQ6Z,iBAChCI,EAAqBld,KAAKiD,QAAQia,oBAAsB,OAC5Dld,KAAKu9B,iBACLrgB,EAAmB,CACfL,cAAeA,EACfC,iBAAkBA,EAClBoC,cAAeA,EACfC,gBAAiBA,EACjBsE,WAAYA,EACZC,aAAcA,IAGtB,UAAUkN,EAAMC,GACZ,OAAI7wB,KAAKiD,QAAQgc,kBACT,eAAS2R,IAAS,eAASC,GACpBD,IAASC,EAGjB,eAAaD,EAAMC,GAE9B,mBAAmB7mB,GACf,OAAOA,EAAM9F,QAAO,SAAUoI,GAC1B,QAAS,OAASA,QAAQ,IAAWA,GAAQA,EAAKjB,aAG1D,gBAAgBoV,EAAM+c,EAAUC,EAAYC,GAIxC,OAHAjd,EAAOA,GAAQ,GACfA,EAAO3b,MAAMC,QAAQ0b,GAAQA,EAAO,CAACA,GACrCzgB,KAAK29B,WACE39B,KAAK8c,iBAAiB2D,EAAM+c,EAAUC,EAAYC,GAE7D,wBAAwBE,GACpB,OAAI94B,MAAMC,QAAQ64B,GACPA,EAAa7wB,IAAI8wB,GAAK79B,KAAK89B,wBAAwBD,KAE1D,eAASD,WACFA,EAAavwB,SAEjBuwB,GAEX,kBAAkBA,EAAcG,EAAa3d,EAAQsd,GACjD,IAAIM,EAAeC,UAAUzP,KAAKC,UAAUzuB,KAAK89B,wBAAwBF,KAAgBp9B,OACrF09B,EAAkBl+B,KAAKiD,QAAQ8Z,0BAA4BihB,EAAeh+B,KAAKiD,QAAQ8Z,yBACvFiH,EAAW,IAAI,OACfrE,EAAc,CACdzb,OAAQg6B,OAAkB,EAASN,EACnCxd,OAAQ8d,EAAkBl+B,KAAKiD,QAAQkd,aAAeC,GAAUpgB,KAAKiD,QAAQkd,cAejF,OAbIyd,GAAgB,IAAMA,EAAap9B,OACnCwjB,EAAS/D,QAAQ,IAEjBjgB,KAAKiD,QAAQsc,KAAKI,GAAanH,MAAK,SAAUxO,GAC1C,IAAIm0B,EAAgB,eAAcn0B,GAASA,EAAMoB,KAAOpB,EACpD+zB,IAAgBL,EAChBS,EAAgBA,EAAcj6B,OAAO65B,GAC9BG,IACPC,EAAgB,eAAUA,GAAej6B,OAAO05B,GAAcQ,WAElEpa,EAAS/D,QAAQke,MACjB1Z,KAAKT,EAASQ,OAAOliB,KAAK0hB,IAE3BA,EAEX,0BAA0BvD,GACtB,IAAK,IAAIpgB,EAAI,EAAGA,EAAIogB,EAAKjgB,OAAQH,IAAK,CAClC,IAAIg+B,EAAU,eAAW5d,EAAKpgB,IAC9B,IAAK,eAASg+B,GAAU,CACpBr+B,KAAKiD,QAAQq7B,eAAeD,GAAWr+B,KAAKiD,QAAQq7B,eAAeD,IAAY,GAC/E,IAAIE,EAAav+B,KAAKiD,QAAQq7B,eAAeD,GAC7CE,EAAWl6B,KAAKhE,KAI5B,mBAAmB2J,GACf,IAAK,IAAI3J,EAAI,EAAGA,EAAI2J,EAAMxJ,OAAQH,IAC9B,GAAIL,KAAKiD,QAAQsf,eAAevY,EAAM3J,IAClC,OAGR,OAAO,EAEX,yBACI,IAAI2J,EAAQhK,KAAKiD,QAAQid,aACrBse,EAAax+B,KAAKiD,QAAQiB,SAC1B2Y,EAAgB7c,KAAKiD,QAAQw7B,oBAAsBz+B,KAAKiD,QAAQ4Z,cAAgB7c,KAAKiD,QAAQ4Z,cAAc3Y,OAAOoI,KAAU,OAASA,QAAQ,IAAWA,GAAQA,EAAKjB,WACrKmzB,IACA3hB,EAAgB,eAAUA,GAAe3Y,OAAOs6B,GAAYJ,WAEhE,IAAIM,EAAsB7hB,EAAcrc,OACpCm+B,EAAsB30B,EAAMxJ,OAASR,KAAK4+B,mBAAmB50B,GAAOxJ,OACxE,OAAKk+B,EAGDA,GAAuB1+B,KAAKiD,QAAQoc,aAAesf,QAAvD,EAFW3+B,KAAK6+B,mBAAmB70B,GAOvC,4BAII,IAHA,IAAIA,EAAQhK,KAAK4+B,mBAAmB5+B,KAAKiD,QAAQid,cAC7C4e,GAAmB,EACnBC,GAAqB,EAChB1+B,EAAI,EAAGA,EAAI2J,EAAMxJ,OAAQH,IAAK,CACnC,IAAIiM,EAAOtC,EAAM3J,GACbgJ,EAAWrJ,KAAKiD,QAAQ+7B,YAAY1yB,GACpC8R,EAAMpe,KAAKiD,QAAQyb,MAAMrV,GACzBrJ,KAAKiD,QAAQg8B,iBAAiB3yB,KAC1BtM,KAAKk/B,kBAAkB9gB,GACvB0gB,GAAmB,EAEnBC,GAAqB,GAIjC,QAAID,KACQC,QAA4B,I,gBC7IjC,MAAM,UAAyB,EAC1C,mBACI,OAAO/+B,KAAKm/B,kBAAkBn/B,KAAKiD,QAAQm8B,iBAE/C,sBACI,IAAIC,EAAI,IAAI,OACRruB,EAAOhR,KACPoe,EAAMpe,KAAKiD,QAAQmb,MACnBgC,EAAS,eAAShC,GAAO,CAACA,GAAOA,EAOrC,OANApe,KAAKm/B,kBAAkBn/B,KAAKiD,QAAQm8B,gBAAiB,KAAMhf,GAAQ5H,MAAK,SAAUxO,GAC9E,IAAIyW,EAAOzW,EAAM+C,KAAI,SAAUT,GAC3B,OAAO0E,EAAK/N,QAAQyb,MAAMpS,MAE9B+yB,EAAEpf,QAAQQ,MACVgE,KAAK4a,EAAE7a,QACJ6a,EAAE7d,UAEb,iBAAiBf,EAAM+c,EAAUC,EAAYC,GACzC,GAAIA,EAAa,CACb,IAAIx5B,EAASlE,KAAKiD,QAAQiB,SACtBo7B,GAA4Bp7B,GAAUsqB,KAAKC,UAAUvqB,KAAYsqB,KAAKC,UAAUzuB,KAAKiD,QAAQm8B,kBAAoB3B,EACjH6B,EACAt/B,KAAKs9B,WAAW,kBAAmBG,EAAa,GAAK,MAErDz9B,KAAKu/B,oBAAoB9B,EAAYv5B,EAAQw5B,OAE9C,CACEF,GACDx9B,KAAKs9B,WAAW,kBAAmB,IAEvC,IAAK,IAAIj9B,EAAI,EAAGA,EAAIogB,EAAKjgB,OAAQH,IACzBo9B,EACAz9B,KAAKw/B,mBAAmB/e,EAAKpgB,IAE7BL,KAAKy/B,gBAAgBhf,EAAKpgB,GAAIq9B,GAAcF,GAKxD,OADAx9B,KAAKkd,sBACE,IAAK,QAAU+C,UAE1B,iBAAiBQ,GACbzgB,KAAKs9B,WAAW,kBAAmB,MACnC,IAAK,IAAIj9B,EAAI,EAAGA,EAAIogB,EAAKjgB,OAAQH,IAC7BL,KAAKy/B,gBAAgBhf,EAAKpgB,IAGlC,mBAAmBgJ,GACf,OAAOrJ,KAAKk/B,kBAAkB71B,GAElC,kBAAkBA,GACd,IAAI+1B,EAAkBp/B,KAAKiD,QAAQm8B,gBACnC,OAAKA,KAGI,eAAU,CAAC/1B,IAAWnF,OAAOk7B,GAAiBhB,UAAU59B,OAErE,cACI,IAAIk/B,EAAW1/B,KAAKiD,QAAQmb,MAC5B,OAAItZ,MAAMC,QAAQ26B,IAAa,IAAMA,EAASl/B,OACnCk/B,EAAS,GAEbA,EAEX,cAActhB,GACV,IAAIpB,EAAUhd,KAAKiD,QAAQmb,MAC3B,OAAItZ,MAAMC,QAAQiY,IAAY,IAAMA,EAAQxc,OACjC4d,EAAIpB,EAAQ,IAEhBoB,EAEX,gBAAgBA,GACZ,IAAIshB,EAAW1/B,KAAK2/B,cAChBz7B,EAAS,CAACw7B,EAAU,IAAK1/B,KAAK4/B,cAAcxhB,IAChD,GAAItZ,MAAMC,QAAQ26B,GAAW,CACzBx7B,EAAS,GACT,IAAK,IAAI7D,EAAI,EAAGA,EAAIq/B,EAASl/B,OAAQH,IACjC6D,EAAOG,KAAK,CAACq7B,EAASr/B,GAAI,IAAK+d,EAAIshB,EAASr/B,MACxCA,IAAMq/B,EAASl/B,OAAS,GACxB0D,EAAOG,KAAK,OAIxB,OAAOH,EAEX,gBAAgBka,EAAKsf,EAAamC,GAC9B,IAAI37B,EAASlE,KAAK8/B,gBAAgB1hB,GAClCpe,KAAKu/B,qBAAoB,EAAOr7B,EAAQw5B,EAAamC,GAEzD,mBAAmBzhB,GACf,IAAIla,EAASlE,KAAK8/B,gBAAgB1hB,GAClCpe,KAAKu/B,qBAAoB,EAAMr7B,GAEnC,WACI,IAAIka,EAAMpe,KAAKiD,QAAQmb,IACvB,GAAIA,QAAO,IAAWA,IAClB,MAAM,OAAOyG,MAAM,QAAS,sBAGpC,eAAeua,EAAiBl7B,GAC5B,IAAKk7B,EACD,OAAQ,EAGZ,IADA,IAAIW,EAAevR,KAAKC,UAAUvqB,GACzB4K,EAAQ,EAAGA,EAAQswB,EAAgB5+B,OAAQsO,IAAS,CACzD,IAAIkxB,EAAYZ,EAAgBtwB,GAChC,GAAIkxB,GAAaxR,KAAKC,UAAUuR,KAAeD,EAC3C,OAAOjxB,EAGf,OAAQ,EAEZ,iBAAiBswB,EAAiBl7B,GAC9B,SAAIk7B,IAAmBl7B,KACZlE,KAAKigC,eAAeb,EAAiBl7B,KAAYk7B,EAAgB5+B,OAAS,GAAK,IAAMR,KAAKigC,eAAe,CAACb,GAAkBl7B,IAI3I,mBAAmBk7B,EAAiBc,GAOhC,OANId,EAAgB5+B,OAAS,GAAK,eAAS4+B,EAAgB,KAAOA,EAAgB,KAAOc,IACrFd,EAAkB,CAACA,IAEnBA,EAAgB5+B,QAChB4+B,EAAgB/6B,KAAK67B,GAElBd,EAEX,mBAAmBl7B,GAIf,OAHIA,GAAU,eAASA,EAAO,MAC1BA,EAAS,CAACA,IAEPA,EAEX,2BAA2Bi8B,GACvB,OAAOA,EAAQC,MAAM,CAACC,EAAYhgC,IAC1BA,EAAI,IAAM,EACHyE,MAAMC,QAAQs7B,IAAe,MAAQA,EAAW,GAEhD,QAAUA,GAI7B,oBAAoB5C,EAAYv5B,EAAQw5B,EAAamC,GACjD,IAAIS,EACAC,EAAgB9C,EAAa,CAAC,IAAKv5B,GAAUA,EAC7Cs8B,EAAmB/C,EAAa,MAAQ,KACxCgD,GAAgB,EAChBrB,EAAkBp/B,KAAKiD,QAAQm8B,iBAAmB,GAEtD,GADAA,EAAkBp/B,KAAK0gC,mBAAmBtB,GACtC,QAAUkB,EAAmBlB,SAAoB,IAAWkB,GAAoBA,EAAiB9/B,SAAWq/B,EAAY,CACxH,IAAIc,EAAe3gC,KAAK4gC,kBAAkBxB,EAAiBl7B,EAAQu5B,EAAYC,GAC3EmD,EAAc7gC,KAAK4gC,kBAAkBxB,EAAiBl7B,GAASu5B,GAC/DqD,EAAoBrD,KAAgB,IAAMkD,IAAiB,IAAME,IAAgB7gC,KAAK+gC,2BAA2B3B,GACjH0B,IACA1B,EAAkB,IAEtB,IAAI4B,EAA6BhhC,KAAKihC,aAAa/8B,IAAWlE,KAAKkhC,oCAAoC9B,EAAiByB,GACxHJ,EAAgBv8B,EAAO1D,SAAWwgC,EAElCP,IACArB,EAAkBp/B,KAAKmhC,mBAAmB/B,EAAiBoB,GAC3DpB,EAAgB/6B,KAAKk8B,IAEzBnB,EAAkBp/B,KAAKohC,iBAAiBhC,GACxCp/B,KAAKs9B,WAAW,kBAAoBG,GAAe2B,EAAgB5+B,OAAgB4+B,EAAP,MAEhF,iBAAiBl7B,GAIb,OAHIA,GAAU,IAAMA,EAAO1D,SACvB0D,EAASA,EAAO,IAEbA,EAEX,qBAAqBA,EAAQ28B,EAAanD,GACtC,IAAIzI,EAAY/wB,EAAO,GACnB28B,EAAc,EACd38B,EAAO0tB,OAAOiP,EAAc,EAAG,GAE/B38B,EAAO0tB,OAAOiP,EAAa,GAE3BnD,GAAe,QAAUzI,GACzB/wB,EAAO0tB,OAAO,EAAG1tB,EAAO1D,QAGhC,mBAAmB0D,EAAQka,GACvB,OAAO,IAAMla,EAAO1D,QAAU0D,EAAO,KAAOka,GAAO,MAAQla,EAAO,GAEtE,aAAaA,GACT,GAAI,IAAMA,EAAO1D,QAAU,MAAQ0D,EAAO,GACtC,OAAOlE,KAAKihC,aAAa/8B,EAAO,IAEpC,IAAIw7B,EAAW1/B,KAAK2/B,cACpB,GAAI76B,MAAMC,QAAQ26B,GAAW,CACzB,GAAIx7B,EAAO1D,SAAW,EAAIk/B,EAASl/B,OAAS,EACxC,OAAO,EAEX,IAAK,IAAIH,EAAI,EAAGA,EAAIq/B,EAASl/B,OAAQH,IAAK,CACtC,GAAIA,EAAI,GAAK,QAAU6D,EAAO,EAAI7D,EAAI,GAClC,OAAO,EAEX,IAAKL,KAAKqhC,mBAAmBn9B,EAAO,EAAI7D,GAAIq/B,EAASr/B,IACjD,OAAO,EAGf,OAAO,EAEX,OAAOL,KAAKqhC,mBAAmBn9B,EAAQw7B,GAE3C,oCAAoCN,EAAiByB,GACjD,GAAIA,GAAe,EAAG,CAClB,IAAK,IAAIxgC,EAAIwgC,EAAaxgC,EAAI++B,EAAgB5+B,OAAQH,IAClD,GAAI,kBAAoB++B,EAAgB/+B,KAAOL,KAAKihC,aAAa7B,EAAgB/+B,IAC7E,OAAO,EAGf,OAAO,EAEX,OAAO,EAEX,kBAAkB++B,EAAiBl7B,EAAQo9B,EAAU5D,GAEjD,GADAx5B,EAASo9B,EAAW,CAAC,IAAKp9B,GAAUA,EAChCsqB,KAAKC,UAAUvqB,KAAYsqB,KAAKC,UAAU2Q,GAE1C,OADAA,EAAgBxN,OAAO,EAAGwN,EAAgB5+B,QACnC,EAEX,IAAIqgC,EAAc7gC,KAAKigC,eAAeb,EAAiBl7B,GACvD,GAAI28B,GAAe,EAEf,OADA7gC,KAAKuhC,qBAAqBnC,EAAiByB,EAAanD,GACjDmD,EAEP,IAAK,IAAIxgC,EAAI,EAAGA,EAAI++B,EAAgB5+B,OAAQH,IACxC,GAAIyE,MAAMC,QAAQq6B,EAAgB/+B,KAAO++B,EAAgB/+B,GAAGG,OAAS,EAAG,CACpE,IAAIghC,EAAexhC,KAAK4gC,kBAAkBxB,EAAgB/+B,GAAI6D,GAAQ,EAAOw5B,GAC7E,GAAI8D,GAAgB,EAMhB,OALKpC,EAAgB/+B,GAAGG,OAEb,IAAM4+B,EAAgB/+B,GAAGG,SAChC4+B,EAAgB/+B,GAAK++B,EAAgB/+B,GAAG,IAFxCL,KAAKuhC,qBAAqBnC,EAAiB/+B,EAAGq9B,GAI3C8D,EAInB,OAAQ,EAGhB,oBACI,IAAIt9B,EAASlE,KAAKiD,QAAQiB,SACtBk7B,EAAkBp/B,KAAKiD,QAAQm8B,gBACnC,OAAKA,KAGAA,EAAgB5+B,SAGhB0D,GAAWA,EAAO1D,QAGvB4+B,EAAkBp/B,KAAK0gC,mBAAmBtB,KACtCp/B,KAAKyhC,iBAAiBrC,EAAiBl7B,KAGvClE,KAAKyhC,iBAAiBrC,EAAiB,CAAC,IAAKl7B,UAAjD,QAPA,GAYJ,8BACI,IAAIw9B,EAAkB1hC,KAAKiD,QAAQiB,SAC/Bk7B,EAAkBp/B,KAAKiD,QAAQm8B,gBAC/Bl7B,EAASw9B,EAAkB,CAACA,EAAiB,MAAOtC,GAAmBA,EAC3E,OAAOp/B,KAAKm/B,kBAAkBj7B,I,4BC/Q3By9B,EAAyB,SAAS7kB,EAAkB4gB,GA0D3D,IAAIkE,EAzDJ5hC,KAAK6hC,eAAiB,SAASC,EAAWC,EAAW9iB,EAAkBjC,GAEnE,OADA+kB,OAAY,IAAWA,EAAY,OAAeA,EAC3CC,EAAe1/B,KAAKtC,KAAM+hC,EAAWD,EAAW7iB,EAAkBjC,IAE7Ehd,KAAKiiC,QAAU,SAASjlB,GAIpB,IAAIklB,EAHJ,GAAKllB,EAmCL,OA/BAF,EAAiBpY,SAAQ,SAAU0Z,EAAKtP,GAEpC,IAAIqzB,EADJD,EAAaA,GAAc,GAEvBpzB,EAAQ,GACRozB,EAAW79B,KAAKq5B,EAAc,MAAQ,MAGtCyE,EADA,eAASnlB,GACQolB,EAAqBplB,EAASoB,GAE9B,SAASpB,EAASqlB,GAE/B,IADA,IAAIH,EAAa,GACR7hC,EAAI,EAAGG,EAASwc,EAAQxc,OAAQH,EAAIG,EAAQH,IAAK,CACtD,IAAIiiC,EAAiBtlB,EAAQ3c,GACzBkiC,EAAkBF,GAAgBA,EAAaC,GAC/CH,EAAiBC,EAAqBE,EAAgBC,GAC1D,IAAKJ,EACD,MAEA9hC,EAAI,GACJ6hC,EAAW79B,KAAKq5B,EAAc,KAAO,OAEzCwE,EAAW79B,KAAK89B,GAEpB,OAAOD,EAdM,CAefllB,EAASoB,GAEf8jB,EAAW79B,KAAK89B,MAEhBD,GAAc,IAAMA,EAAW1hC,SAC/B0hC,EAAaA,EAAW,IAErBA,GAEXliC,KAAKwiC,kBAAoB,SAASxlB,EAASylB,GACvC,IAAIC,EAAsBniC,UAAUC,OAAS,QAAK,IAAWD,UAAU,IAAKA,UAAU,GAClF2hC,EAAaliC,KAAKiiC,QAAQjlB,GAC1B2lB,EAAiBT,EAUrB,OATKQ,GAAuBhF,IAAgB+E,IACpCP,GACAS,EAAiB,GACjBA,EAAet+B,KAAK69B,GACpBS,EAAet+B,KAAKo+B,IAEpBE,EAAiBF,GAGlBE,GAGX,IAAIC,EAAgB,SAASniB,EAAM/B,EAAO1B,GACtC,OAAOlY,MAAMC,QAAQiY,GAAWyD,EAAK1T,IAAIqR,GAAOM,EAAMN,IAAQqC,GAGlE,SAASuhB,EAAeD,EAAWrjB,EAAOO,EAAkBjC,EAAS1Q,GACjE,IACI+xB,EACAh+B,EAFA+d,EAAMM,EAAMpS,GAGhB,IAAK2S,IACDof,EAAU,eAAWjgB,IAChB,eAASigB,IAAU,CACpB,IAAIwE,EAAuB,SAASnkB,EAAO1B,GACvC,IAAK4kB,EAA0B,CAC3BA,EAA2B,GAE3B,IADA,IAAIkB,EAAiBF,EAAc9lB,EAAkB4B,EAAO1B,GACnD3c,EAAI,EAAGA,EAAIyiC,EAAetiC,OAAQH,IACvCuhC,EAAyB,eAAWkB,EAAeziC,MAAO,EAGlE,OAAOuhC,EARgB,CASzBljB,EAAO1B,GACT,OAAI6lB,EAAqBxE,IACbX,IAEHA,EAGjB,IAAKr9B,EAAI,EAAGA,EAAIyc,EAAiBtc,OAAQH,IACrC,GAAI0hC,EAAUjlB,EAAiBzc,GAAI+d,GAC/B,OAAQsf,EAGhB,QAASA,EAGb,SAAS0E,EAAqBplB,EAAS+lB,GACnC,QAAI,IAAWA,EAGf,MAAO,CAAC/lB,EAAS0gB,EAAc,KAAO,IAAKqF,KClFpC,MAAM,UAAyB,EAC1C,YAAY9/B,GACRg3B,MAAMh3B,GACNjD,KAAKgjC,2BAET,2BACIhjC,KAAKs9B,WAAW,iBAAkBt9B,KAAKiD,QAAQgc,iBAAmB,KAAO,IAE7E,sBACI,OAAOjf,KAAKiD,QAAQ6Z,iBAAiBtX,MAAM,GAE/C,mBACI,OAAOxF,KAAKiD,QAAQ4Z,cAAcrX,MAAM,GAE5C,yBAAyBwE,EAAOyzB,GAC5B,IACIwF,EACAC,EACA7iC,EAHAqe,EAAQ1e,KAAKiD,QAAQyb,MAIzB,GAAKA,EAAL,CAGA,IAAIykB,EAAkB1F,GAAczzB,EAAMxJ,OAAS,IAAMR,KAAKiD,QAAQgc,iBAItE,IAHIkkB,IACAF,EAAwB,IAEvB5iC,EAAI,EAAGA,EAAI2J,EAAMxJ,OAAQH,IAAK,CAC/B,IAAIiM,EAAOtC,EAAM3J,GACb+d,EAAMM,EAAMpS,GACZmxB,GACAyF,EAAWljC,KAAKw/B,mBAAmBphB,EAAK6kB,EAAuB,OAAS32B,QAAQ,IAAWA,OAAO,EAASA,EAAKjB,UAC5G43B,GAAyBC,GAAY,IACrCD,EAAsBC,IAAY,IAGtCljC,KAAKy/B,gBAAgBrhB,EAAK9R,GAG9B62B,GACAnjC,KAAKojC,0BAA0BH,IAGvC,0BAA0BA,GACtB,IAAInmB,EAAmB9c,KAAKiD,QAAQ6Z,iBAAiBtX,MAAM,GACvDqX,EAAgB7c,KAAKiD,QAAQ4Z,cAAcrX,MAAM,GACrDxF,KAAKiD,QAAQ6Z,iBAAiBtc,OAAS,EACvCR,KAAKiD,QAAQ4Z,cAAcrc,OAAS,EACpC,IAAK,IAAIH,EAAI,EAAGA,EAAIyc,EAAiBtc,OAAQH,IACpC4iC,EAAsB5iC,KACvBL,KAAKiD,QAAQ6Z,iBAAiBzY,KAAKyY,EAAiBzc,IACpDL,KAAKiD,QAAQ4Z,cAAcxY,KAAKwY,EAAcxc,KAGtDL,KAAKgjC,2BACLhjC,KAAKqjC,0BAA0BrjC,KAAKiD,QAAQ6Z,kBAEhD,uBAAuB2D,EAAMgd,EAAYC,EAAax5B,GAClD,IAAIw+B,EAAsBniC,UAAUC,OAAS,QAAK,IAAWD,UAAU,IAAKA,UAAU,GAClFyjB,EAAW,IAAI,OACf5F,EAAMpe,KAAKiD,QAAQmb,MACvB,IAAKqC,EAAKjgB,SAAWk9B,EAEjB,OADA1Z,EAAS/D,QAAQ,IACV+D,EAEX,GAAI0Z,GAAeD,IAAev5B,EAE9B,OADA8f,EAAS/D,QAAQjgB,KAAKgiB,oBACfgC,EAEX,IAAIsf,EAAyB,IAAI3B,EAAuBlhB,EAAMid,GAC1DiF,EAAiBW,EAAuBd,kBAAkBpkB,EAAKla,EAAQw+B,GACvEa,EAAkB,GACtB,GAAI9F,EAAY,CACZ,IAAI5gB,EAAgB7c,KAAKiD,QAAQ4Z,cACjC0mB,EAAkBZ,GAAkBliB,EAAKjgB,SAAWqc,EAAcrc,OAAS,eAAUqc,GAAe3Y,OAAOy+B,GAAgBvE,UAAYvhB,EAAcrX,MAAM,GAE/J,IAAI24B,EAAgBoF,EAAgB/iC,OAAS+iC,EAAkBvjC,KAAKiD,QAAQid,YAAW,GAAMhc,OAAOlE,KAAKiD,QAAQg8B,kBAAkBlyB,IAAI/M,KAAKiD,QAAQ+7B,aAChJjB,EAAcuF,EAAuBzB,eAAe7hC,KAAKiD,QAAQyb,MAAO1e,KAAK+hC,UAAUz/B,KAAKtC,MAAOA,KAAKiD,QAAQgc,iBAAkBb,GAOtI,OANA+f,EAAgBA,EAAcj6B,OAAO65B,GACjCwF,EAAgB/iC,SAAWk9B,GAAeS,EAAc39B,SAAWigB,EAAKjgB,OACxEwjB,EAAS/D,QAAQke,GAEjBna,EAAWhkB,KAAKm/B,kBAAkBwD,EAAgB5E,EAAa,KAAML,GAElE1Z,EAEX,wBAAwBha,GACpB,IAAIw5B,EAAe,GACf9kB,EAAQ1e,KAAKiD,QAAQyb,MACzB,GAAKA,EAAL,CAGA,IAAK,IAAIre,EAAI,EAAGA,EAAI2J,EAAMxJ,OAAQH,IAAK,CACnC,IAAIiM,EAAOtC,EAAM3J,GACb+d,EAAMM,EAAMpS,GAChBk3B,EAAan/B,KAAK+Z,GAEtBpe,KAAKyjC,iBAAiBD,EAAcx5B,IAExC,qBAAqByW,GAEjB,IADA,IAAI1B,EAAiB/e,KAAKiD,QAAQ8b,eACzB1e,EAAI,EAAGA,EAAIogB,EAAKjgB,OAAQH,IAAK,CAClC,IAAI+d,EAAMqC,EAAKpgB,GACT0e,GAAkB,OAASX,GAASpe,KAAKk/B,kBAAkB9gB,IAC7D,OAAOslB,IAAI,QAAStlB,IAIhC,wBACI,IAAIY,EAAOhf,KAAKiD,QAAQ+b,KACxB,MAAO,QAAUA,GAAQ,aAAeA,EAE5C,qBACI,IAAI2kB,EACJ,MAAO,aAAe,QAAUA,EAAwB3jC,KAAK4jC,yBAAsB,IAAWD,OAAwB,EAASA,EAAsBtf,SAEzJ,qBAAqB5D,EAAMgd,EAAYoG,EAAiBC,GACpD,IAAIjnB,EACA0mB,EAAkB9F,EAAahd,EAAO,GAM1C,OAJI5D,EADAinB,GAGgB,eAAiBrjB,EAAMzgB,KAAKiD,QAAQ6Z,kBAEjD,CACH2G,WAAYogB,EAAgBE,MAAMrhC,OAAOma,GACzC6G,aAAcmgB,EAAgBG,QAAQthC,OAAO6gC,GAC7C9iB,KAAMA,GAGd,wBAAwBA,EAAMgd,EAAYC,EAAaoG,GACnD,IAAIG,EAAgBxG,GAAcC,EAC9BmG,EAAkB,CAClBE,MAAO,GACPC,QAAS,IAETE,EAAqBlkC,KAAKmkC,wBAC1BC,EAAkBF,EAAqBlkC,KAAKqkC,iBAAmB,GAgBnE,OAfIH,IACIlkC,KAAKskC,8BACDL,GACAjkC,KAAK4jC,kBAAkBpf,SACvB4f,EAAkB,IACV,eAAY3jB,EAAMzgB,KAAKiD,QAAQ6Z,oBACvC+mB,EAAgBE,MAAQK,EAAgB3gB,WACxCogB,EAAgBG,QAAUI,EAAgB1gB,aACrC+Z,GACDz9B,KAAK4jC,kBAAkBpf,WAInC4f,EAAkBpkC,KAAKukC,qBAAqB9jB,EAAMgd,EAAYoG,EAAiB7jC,KAAKskC,iCAA8B,EAASR,IAExHM,EAEX,6BAA6B3jB,EAAMgd,EAAYC,GAC3C,IAEQ8G,EAAuBC,EAF3BC,EAAcjkB,EACdzgB,KAAKmkC,yBAA2BnkC,KAAKskC,8BAAgC7G,IAAeC,IAEpFgH,EAAc,eAAiBjkB,EAAK/d,OAAO,QAAU8hC,EAAwBxkC,KAAKqkC,wBAAqB,IAAWG,OAAwB,EAASA,EAAsB/gB,YAAa,QAAUghB,EAAyBzkC,KAAKqkC,wBAAqB,IAAWI,OAAyB,EAASA,EAAuB/gB,cACvTghB,EAAc,eAAgBA,IAElC,OAAOA,EAEX,mBAAmBjkB,EAAMgd,EAAYC,EAAaoG,GAC9C,IAAIpB,EAAsBniC,UAAUC,OAAS,QAAK,IAAWD,UAAU,IAAKA,UAAU,GAClFyQ,EAAOhR,KACPgkB,EAAW,IAAI,OACf9f,EAAS8M,EAAK/N,QAAQiB,SAS1B,OARAlE,KAAKskC,4BAA8BtkC,KAAK2kC,qBACxC3kC,KAAKqkC,iBAAmBrkC,KAAK4kC,wBAAwBnkB,EAAMgd,EAAYC,EAAaoG,GACpF,eAAK9yB,EAAK4yB,mBAAmBvhB,QAAO,WAChC,IAAIqiB,EAAc1zB,EAAK6zB,6BAA6BpkB,EAAMgd,EAAYC,GACtE1sB,EAAKszB,6BAA8B,EACnCtzB,EAAK8zB,uBAAuBJ,EAAajH,EAAYC,EAAax5B,EAAQw+B,GAAqBlqB,KAAKwL,EAAS/D,SAASwE,KAAKT,EAASQ,WAExIxT,EAAK4yB,kBAAoB5f,EAClBA,EAEX,iBAAiBvD,EAAM+c,EAAUC,EAAYC,EAAaoG,GACtD,IAAIpB,EAAsBniC,UAAUC,OAAS,QAAK,IAAWD,UAAU,IAAKA,UAAU,GAClFyQ,EAAOhR,KACPgkB,EAAWhT,EAAK+zB,mBAAmBtkB,EAAMgd,EAAYC,EAAaoG,EAAapB,GASnF,OARA1e,EAASxL,MAAK,SAAUxO,GAChBwzB,EACAxsB,EAAKg0B,yBAAyBh7B,EAAOyzB,GAErCzsB,EAAKi0B,wBAAwBj7B,GAEjCgH,EAAKkM,wBAEF8G,EAEX,gBAAgB5F,EAAK/U,GACjB,GAAI,eAAUA,KAAcrJ,KAAKiD,QAAQw7B,qBAAuBp1B,EAASgC,UAChE,IAAMrL,KAAKiD,QAAQiiC,iBAAiB7zB,QAAQ+M,IAC7Cpe,KAAKiD,QAAQiiC,iBAAiB7gC,KAAK+Z,OAF3C,CAMA,IAAIigB,EAAUr+B,KAAKmlC,YAAY/mB,IAC1B,IAAMpe,KAAKolC,wBAAwB/G,MAC/B,eAASA,IAAYr+B,KAAKiD,QAAQq7B,iBACnCt+B,KAAKiD,QAAQq7B,eAAeD,GAAW,CAACr+B,KAAKiD,QAAQ6Z,iBAAiBtc,SAE1ER,KAAKiD,QAAQ6Z,iBAAiBzY,KAAK+Z,GACnCpe,KAAKiD,QAAQic,cAAc7a,KAAK+Z,GAChCpe,KAAKiD,QAAQwgB,WAAWpf,KAAKgF,GAC7BrJ,KAAKiD,QAAQ4Z,cAAcxY,KAAKgF,KAGxC,uBAAuB+U,EAAKinB,GAExB,IADA,IAAIvoB,EAAmB9c,KAAKiD,QAAQ6Z,iBAC3BhO,EAAQ,EAAGA,EAAQgO,EAAiBtc,OAAQsO,IACjD,KAAMu2B,IAAqBA,EAAiBv2B,KAAW9O,KAAK+hC,UAAUjlB,EAAiBhO,GAAQsP,GAC3F,OAAOtP,EAGf,OAAQ,EAEZ,wBAAwBsP,EAAKinB,GACzB,IAAI3kB,EAAU1gB,KAAKiD,QAAQq7B,eAAelgB,GAM1C,OALIsC,GAAWA,EAAQlgB,OAAS,GAAK6kC,IACjC3kB,EAAUA,EAAQxc,QAAO,SAAU4K,GAC/B,OAAQu2B,EAAiBv2B,OAG1B4R,GAAWA,EAAQ,IAAM,EAAIA,EAAQ,IAAM,EAEtD,wBAAwBtC,EAAKinB,GACzB,IAAIpoB,EAQJ,OANIA,EADAjd,KAAKiD,QAAQgc,iBACGjf,KAAKiD,QAAQ6Z,iBAAiBzL,QAAQ+M,GAC/C,eAASA,GACApe,KAAKslC,uBAAuBlnB,EAAKinB,GAEjCrlC,KAAKulC,wBAAwBnnB,EAAKinB,GAE/CpoB,EAEX,yBAAyBimB,GACrB,IAAK,IAAIsC,EAAkBtC,EAAUsC,EAAkBxlC,KAAKiD,QAAQ6Z,iBAAiBtc,OAAQglC,IAAmB,CAC5G,IAAIC,EAAazlC,KAAKiD,QAAQ6Z,iBAAiB0oB,GAC3CE,EAAiB,eAAWD,GAC5BE,EAAoB3lC,KAAKiD,QAAQq7B,eAAeoH,GACpD,GAAKC,EAGL,IAAK,IAAItlC,EAAI,EAAGA,EAAIslC,EAAkBnlC,OAAQH,IACtCslC,EAAkBtlC,GAAK6iC,GACvByC,EAAkBtlC,MAKlC,mBAAmB+d,EAAK6kB,EAAuB2C,GAC3C,GAAK5lC,KAAKiD,QAAQw7B,sBAAuBmH,EAAzC,CAGA,IAAIvH,EAAUr+B,KAAKmlC,YAAY/mB,GAC3B+kB,IAAoBF,EACpBC,EAAWljC,KAAKolC,wBAAwB/G,EAAS4E,GACrD,GAAIC,EAAW,EACX,OAAOA,EAIX,GAFAljC,KAAKiD,QAAQkc,gBAAgB9a,KAAK+Z,GAClCpe,KAAKiD,QAAQygB,aAAarf,KAAKrE,KAAKiD,QAAQ4Z,cAAcqmB,IACtDC,EACA,OAAOD,EAIX,GAFAljC,KAAKiD,QAAQ6Z,iBAAiB8U,OAAOsR,EAAU,GAC/CljC,KAAKiD,QAAQ4Z,cAAc+U,OAAOsR,EAAU,GACxC,eAAS7E,KAAar+B,KAAKiD,QAAQq7B,eACnC,OAAO4E,EAEX,IAAI3E,EAAav+B,KAAKiD,QAAQq7B,eAAeD,GAC7C,OAAKE,GAGLA,EAAWsH,QACNtH,EAAW/9B,eACLR,KAAKiD,QAAQq7B,eAAeD,GAEvCr+B,KAAK8lC,yBAAyB5C,GACvBA,GAPIA,GASf,qBAAqBziB,EAAMzW,GACvB,IAAK,IAAI3J,EAAI,EAAGA,EAAIogB,EAAKjgB,OAAQH,IACxBL,KAAKk/B,kBAAkBze,EAAKpgB,MAC7BL,KAAKiD,QAAQic,cAAc7a,KAAKoc,EAAKpgB,IACrCL,KAAKiD,QAAQwgB,WAAWpf,KAAK2F,EAAM3J,KAI/C,uBAAuBogB,EAAMslB,EAAiBC,GAC1C,IAAK,IAAI3lC,EAAI,EAAGA,EAAI0lC,EAAgBvlC,OAAQH,IACnCL,KAAKk/B,kBAAkB6G,EAAgB1lC,MACxCL,KAAKiD,QAAQkc,gBAAgB9a,KAAK0hC,EAAgB1lC,IAClDL,KAAKiD,QAAQygB,aAAarf,KAAK2hC,EAAiB3lC,KAI5D,2BAA2B+d,EAAKyF,GAC5B,IAAIoiB,EAAqBpiB,GAAgB7jB,KAAKqkC,kBAAoBrkC,KAAK2kC,qBACvE,GAAIsB,EAAoB,CACpB,IAAIC,EACAziB,EAAa,QAAUyiB,EAAyBlmC,KAAKqkC,iBAAiB5gB,kBAAe,IAAWyiB,EAAyBA,EAAyB,GACtJ,OAAOziB,EAAW0iB,SAAS/nB,GAE3B,OAAO,EAGf,YAAYA,GACR,OAAOpe,KAAKiD,QAAQgc,iBAAmBb,EAAM,eAAWA,GAE5D,iBAAiBqC,EAAMzW,GACnBhK,KAAKomC,qBAAqB3lB,EAAMzW,GAChC,IAAI+7B,EAAkB/lC,KAAKiD,QAAQ6Z,iBAC/BkpB,EAAmBhmC,KAAKiD,QAAQ4Z,cAC/B7c,KAAKiD,QAAQgc,mBACdjf,KAAKgjC,2BACLhjC,KAAKqjC,0BAA0B5iB,IAEnCzgB,KAAKs9B,WAAW,mBAAoB7c,GACpCzgB,KAAKs9B,WAAW,gBAAiBtzB,GACjChK,KAAKqmC,uBAAuB5lB,EAAMslB,EAAiBC,GAEvD,mBAAmB38B,GACf,IAAIpG,EAAU1C,UAAUC,OAAS,QAAK,IAAWD,UAAU,GAAKA,UAAU,GAAK,GAC3E6d,EAAMpe,KAAKiD,QAAQyb,MAAMrV,GAC7B,OAAOrJ,KAAKk/B,kBAAkB9gB,EAAKnb,GAEvC,kBAAkBmb,GACd,IAAInb,EAAU1C,UAAUC,OAAS,QAAK,IAAWD,UAAU,GAAKA,UAAU,GAAK,GAC3EwQ,EAAS/Q,KAAKsmC,2BAA2BloB,EAAKnb,EAAQ4gB,cAC1D,IAAK9S,EAAQ,CACT,IAAIstB,EAAUr+B,KAAKmlC,YAAY/mB,GAC3BtP,EAAQ9O,KAAKolC,wBAAwB/G,GACzCttB,GAAU,IAAMjC,EAEpB,OAAOiC,EAEX,kBAAkBw1B,GACd,OAAIA,EACOvmC,KAAKwmC,4BAELxmC,KAAKymC,yBAGpB,8BACI,IAAIzpB,EAAUhd,KAAKiD,QAAQmb,MACvBqC,EAAOzgB,KAAK2gB,sBACZzc,EAASlE,KAAKiD,QAAQiB,SAC1B,IAAKuc,EAAKjgB,OACN,OAAO,iBAAWyf,QAAQ,IAE9B,IAAIqjB,EAAyB,IAAI3B,EAAuBlhB,GACpDkiB,EAAiBW,EAAuBd,kBAAkBxlB,EAAS9Y,GAAQ,GAC/E,OAAOlE,KAAKm/B,kBAAkBwD,I,gBC9WvB,MAAM,EACjB,YAAY1/B,GACRjD,KAAKiD,QAAU,OAAAsF,EAAA,MAAOvI,KAAK6J,qBAAsB5G,EAAS,CACtD6Z,iBAAkB7Z,EAAQyjC,cAAgB,KAE9C1mC,KAAK2mC,mBAAqB3mC,KAAKiD,QAAQ+gB,SAAW,IAAI,EAAiBhkB,KAAKiD,SAAW,IAAI,EAAiBjD,KAAKiD,SACjHjD,KAAK4mC,mBAAqB,EACrB5mC,KAAKiD,QAAQgc,kBACdjf,KAAK2mC,mBAAmBtD,0BAA0BrjC,KAAKiD,QAAQ6Z,kBAGvE,qBACI,MAAO,CACHiC,gBAAgB,EAChBiF,UAAU,EACV/E,kBAAkB,EAClBD,KAAM,WACNnC,cAAe,GACfuiB,gBAAiB,GACjBriB,yBAA0B,EAC1BG,mBAAoB,OACpBkB,IAAK,OACLM,MAAO,SAASpS,GACZ,OAAOA,GAEXiT,KAAM,WACF,OAAO,IAAK,QAAUU,QAAQ,KAElCZ,WAAY,WACR,OAAQ,GAEZ4f,iBAAkB,WACd,OAAO,GAEX1c,eAAgB,WACZ,OAAO,GAEXyc,YAAa,SAAS1yB,GAClB,OAAOA,GAEX6T,WAAY,OACZjc,OAAQ,QAGhB,WACIlE,KAAK2mC,mBAAmBhJ,WAE5B,sBACI,OAAO39B,KAAK2mC,mBAAmBhmB,sBAEnC,mBACI,OAAO3gB,KAAK2mC,mBAAmB3kB,mBAEnC,gBAAgBhhB,GACZ,QAAI,IAAWA,EACX,OAAOhB,KAAKiD,QAAQm8B,gBAExB,IAAIyH,EAAkB7mC,KAAKiD,QAAQm8B,kBAAoBp+B,GAASwtB,KAAKC,UAAUzuB,KAAKiD,QAAQm8B,mBAAqB5Q,KAAKC,UAAUztB,GAChIhB,KAAKiD,QAAQm8B,gBAAkBp+B,EAC/B6lC,GAAmB7mC,KAAKkd,qBAE5B,aAAauD,EAAMqjB,GACf,OAAO9jC,KAAK8c,iBAAiB2D,GAAM,GAAO,GAAO,EAAOqjB,GAE5D,OAAOrjB,GACH,OAAOzgB,KAAK8c,iBAAiB2D,GAAM,GAEvC,SAASA,GACL,OAAOzgB,KAAK8c,iBAAiB2D,GAAM,GAAM,GAE7C,iBAAiBA,EAAM+c,EAAUC,EAAYC,EAAaoG,GACtD,IAAIgD,EAIJ,OAHArmB,EAAO,QAAUqmB,EAAQrmB,SAAS,IAAWqmB,EAAQA,EAAQ,GAC7DrmB,EAAO3b,MAAMC,QAAQ0b,GAAQA,EAAO,CAACA,GACrCzgB,KAAK29B,WACE39B,KAAK2mC,mBAAmB7pB,iBAAiB2D,EAAM+c,EAAUC,EAAYC,EAAaoG,GAE7F,iBACI,OAAO9jC,KAAK8c,iBAAiB,IAEjC,iBAAiBzT,EAAU+U,GACvBpe,KAAK2mC,mBAAmBlH,gBAAgBrhB,EAAK/U,GAEjD,oBAAoB+U,GAChBpe,KAAK2mC,mBAAmBnH,mBAAmBphB,GAE/C,kBAAkBqC,EAAMzW,GACpBhK,KAAK2mC,mBAAmBlD,iBAAiBhjB,EAAMzW,GAEnD,qBACIhK,KAAK2mC,mBAAmBzpB,qBAE5B,oBAAoBtF,EAAW6I,EAAMsmB,GACjC,IAAIC,EAAuBC,EACvBC,EAGAljB,EAEAmjB,EAJAn9B,EAAQhK,KAAKiD,QAAQid,aACrB5T,EAAOtC,EAAM4N,GAEbwvB,EAAmB,QAAUJ,GAAyBC,EAAgBjnC,KAAKiD,SAASmkC,wBAAqB,IAAWJ,OAAwB,EAASA,EAAsBpmC,KAAKqmC,GAEhLI,GAA8B,EAC9BC,GAAmC,EACnCC,EAAyBz4B,GAASA,GAAS,IAAM9E,EAAM9F,OAAOsjC,GAAMA,EAAGC,YAAc34B,GAAOtO,OAShG,GARI4mC,GAAoB,eAAU96B,KAC9B66B,EAAc76B,EAAKm7B,UAAY7vB,EAC/BA,EAAYtL,EAAKm7B,UACjBJ,EAA8BE,EAAuBvnC,KAAK4mC,mBACtD,eAAU5mC,KAAK0nC,0BACfJ,EAAmCC,EAAuBvnC,KAAK0nC,2BAGlE1nC,KAAK2nC,iBAAmB3nC,KAAK4nC,WAAWt7B,GACzC,OAAO,EAEX,IAAIjD,EAAWrJ,KAAKiD,QAAQ+7B,YAAY1yB,GACpCu7B,EAAU7nC,KAAKiD,QAAQyb,MAAMrV,GAEjC,GADAoX,EAAOA,GAAQ,GACXA,EAAKolB,OAAS,aAAe7lC,KAAKiD,QAAQ+b,MAAQhf,KAAK4mC,mBAAqB,EACxES,GAA+BC,GAC/BJ,EAAyBtvB,IAAc5X,KAAK0nC,wBAA0B1nC,KAAK4mC,oBAAsB5mC,KAAK0nC,uBAClGR,IACAljB,EAAWhkB,KAAK8nC,+CAA+ClwB,KAGnEsvB,EAAyBlnC,KAAK+nC,uCAAuCnwB,EAAW5N,EAAOm9B,QAExF,GAAI1mB,EAAKunB,QAAS,CAErB,GADAhoC,KAAKioC,0CACAlB,EAAc,CACf,IAAIjkB,EAAa9iB,KAAK2mC,mBAAmBuB,mBAAmB7+B,GACxD,WAAarJ,KAAKiD,QAAQ+b,MAC1Bhf,KAAKmoC,qBAELrlB,EACA9iB,KAAKooC,oBAAoBP,GAEzB7nC,KAAKqoC,iBAAiBh/B,EAAUw+B,GAGxCX,GAAyB,MACtB,CACHlnC,KAAKioC,yCACL,IAAIK,EAActoC,KAAK2mC,mBAAmB5E,UAAU/hC,KAAKiD,QAAQ6Z,iBAAiB,GAAI+qB,GAClF,IAAM7nC,KAAKiD,QAAQ6Z,iBAAiBtc,QAAW8nC,IAC/CtoC,KAAKuoC,kBAAkB,CAACV,GAAU,CAACx+B,IACnC69B,GAAyB,GAGjC,OAAIA,GACA,eAAKljB,GAAUxL,KAAK,KAChBxY,KAAK4mC,kBAAoBhvB,GACxBmvB,GAAgB/mC,KAAKkd,wBAEnB,QALX,EAQJ,WAAW5Q,GACP,OAAOtM,KAAKiD,QAAQg8B,iBAAiB3yB,GAEzC,eACI,MAAO,WAAatM,KAAKiD,QAAQ+b,MAAQ,aAAehf,KAAKiD,QAAQ+b,KAEzE,mBAAmB5T,GACf,OAAOpL,KAAK2mC,mBAAmBuB,mBAAmB98B,EAAM,CACpDyY,cAAc,IAGtB,eAAe2kB,EAAKvlC,GAChB,OAAOjD,KAAK2mC,mBAAmBzH,kBAAkBsJ,EAAKvlC,GAE1D,gDACWjD,KAAK0nC,uBAEhB,yBACI1nC,KAAK4mC,mBAAqB,EAE9B,+CAA+Ca,GAC3C,IAAI9nB,EAAc3f,KAAKiD,QAAQwlC,eAAehB,EAAWznC,KAAK4mC,kBAAmB5mC,KAAK0nC,wBAClF1jB,EAAW,IAAI,OACfmjB,EAAcxnB,EAAYoO,KAK9B,OAJA/tB,KAAKiD,QAAQsc,KAAKI,GAAanH,KAAKxO,IAChChK,KAAK+nC,uCAAuCN,EAAWz9B,EAAOm9B,GAC9DnjB,EAAS/D,YAEN+D,EAASxC,UAEpB,uCAAuC5J,EAAW5N,EAAOm9B,GACrD,IACIuB,EAWAt9B,EACAy8B,EACAc,EACAC,EAfA1B,GAAyB,EAEzB2B,EAAqB,eAAU1B,GAC/Br4B,EAAQ+5B,EAAqB7oC,KAAK4mC,kBAAoBO,EAAcnnC,KAAK4mC,kBACzEloB,EAAQ1e,KAAKiD,QAAQyb,MACrBoqB,EAAc9+B,EAAM8E,GACpBi6B,EAAc/oC,KAAKiD,QAAQ+7B,YAAY8J,GACvCE,EAAatqB,EAAMqqB,GACnBE,EAAwBH,GAAe9oC,KAAKkoC,mBAAmBa,GAQnE,GAPK,eAAU/oC,KAAK0nC,0BAChB1nC,KAAK0nC,uBAAyB1nC,KAAK4mC,mBAMnC5mC,KAAK0nC,yBAA2B1nC,KAAK4mC,kBAIrC,IAHA8B,EAAgB1oC,KAAK4mC,kBAAoB5mC,KAAK0nC,uBAAyB,GAAK,EAC5EiB,EAAaE,EAAqB7oC,KAAK4mC,kBAAoBO,EAAcnnC,KAAK4mC,kBAC9EgC,EAAWC,EAAqB7oC,KAAK0nC,uBAAyBP,EAAcnnC,KAAK0nC,uBAC5E54B,EAAQ65B,EAAY75B,IAAU85B,EAAU95B,GAAS45B,GAC9CG,GAAsB7oC,KAAK4nC,WAAW59B,EAAM8E,OAC5C+4B,EAAUnpB,EAAM1e,KAAKiD,QAAQ+7B,YAAYh1B,EAAM8E,KAC/C9O,KAAKooC,oBAAoBP,GACzBX,GAAyB,GAIrC,GAAItvB,IAAc5X,KAAK0nC,uBAInB,IAHAgB,EAAgB9wB,EAAY5X,KAAK0nC,uBAAyB,GAAK,EAC/DiB,EAAaE,EAAqBjxB,EAAYuvB,EAAcvvB,EAC5DgxB,EAAWC,EAAqB7oC,KAAK0nC,uBAAyBP,EAAcnnC,KAAK0nC,uBAC5E54B,EAAQ65B,EAAY75B,IAAU85B,EAAU95B,GAAS45B,GAC9CG,GAAsB7oC,KAAK4nC,WAAW59B,EAAM8E,OAC5C1D,EAAOpL,KAAKiD,QAAQ+7B,YAAYh1B,EAAM8E,IACtC+4B,EAAUnpB,EAAMtT,GAChBpL,KAAKqoC,iBAAiBj9B,EAAMy8B,GAC5BX,GAAyB,GAQrC,OAJK2B,IAAsB7oC,KAAK4nC,WAAWkB,IAAkBG,IACzDjpC,KAAKqoC,iBAAiBU,EAAaC,GACnC9B,GAAyB,GAEtBA,EAEX,qBACIlnC,KAAKuoC,kBAAkB,GAAI,IAE/B,UAAUW,GAEN,OADAlpC,KAAKmpC,yBACDD,EACOlpC,KAAKopC,mBAAkB,GAEvBppC,KAAK8c,iBAAiB,IAAI,GAAM,GAAO,GAGtD,YAAYosB,GAER,OADAlpC,KAAKmpC,yBACDD,EACOlpC,KAAKopC,mBAAkB,GAEvBppC,KAAK8c,iBAAiB,IAAI,GAAM,GAAM,GAGrD,kBAAkB2gB,GAEd,IADA,IAAIzzB,EAAQhK,KAAK2mC,mBAAmB/H,mBAAmB5+B,KAAKiD,QAAQid,cAC3D7f,EAAI,EAAGA,EAAI2J,EAAMxJ,OAAQH,IAAK,CACnC,IAAIiM,EAAOtC,EAAM3J,GACjB,GAAIL,KAAK4nC,WAAWt7B,GAAO,CACvB,IAAIjD,EAAWrJ,KAAKiD,QAAQ+7B,YAAY1yB,GACpCu7B,EAAU7nC,KAAKiD,QAAQyb,MAAMrV,GAC7ByZ,EAAa9iB,KAAKuiB,eAAeslB,GAChC/kB,GAAe2a,GAChBz9B,KAAKqoC,iBAAiBh/B,EAAUw+B,GAEhC/kB,GAAc2a,GACdz9B,KAAKooC,oBAAoBP,IAKrC,OADA7nC,KAAKkd,sBACE,IAAK,QAAU+C,UAE1B,kBAAkBsmB,GACd,OAAOvmC,KAAK2mC,mBAAmB0C,kBAAkB9C,GAErD,8BACI,OAAOvmC,KAAK2mC,mBAAmB2C,iC;;;;;;;;;;;;GC7RvC,IAAIvpC,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAE5BmpB,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEX9Q,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQwoC,cAAgBxoC,EAAQyoC,iBAAc,EAC9C,IAAIlP,EAAUhQ,EAAa,EAAQ,SAC/BiB,EAAW,EAAQ,QACnBke,EAAwB,EAAQ,QAChCC,EAAkBpf,EAAa,EAAQ,SACvCyH,EAA4B,EAAQ,QACpCvG,EAAc,EAAQ,QACtBrqB,EAAY,EAAQ,QACpBwoC,EAAsB,EAAQ,QAC9BlP,EAAMH,EAAQh0B,SAAWg0B,EACzBiP,EAAgB,WAAc,OAAO9O,EAAIlyB,OAAO,CAChDqhC,cAAc,EACdx+B,KAAM,WACF,MAAO,CACHswB,SAAU,IAAIjB,IAGtBoP,QAAS,WACL,MAAO,CACHnO,SAAU17B,KAAK07B,WAGvBjhB,OAAQ,SAAU+R,GACd,IAAIlE,EAAW,GAMf,OALItoB,KAAKkpB,SAAStlB,aACd5D,KAAKkpB,SAAStlB,eAElB,EAAI6lC,EAAsB1hB,iBAAiB/nB,KAAKk7B,OAAO50B,QAASgiB,EAAUtoB,KAAKkpB,UAC/ElpB,KAAK8pC,kBAAkBxhB,GAChBkE,EAAc,MAAO,CACxBud,MAAO,CAAEC,GAAIhqC,KAAKiqC,OAAOD,KAC1B1hB,IAEP4hB,aAAc,WACVlqC,KAAKkpB,SAAS7lB,qBAAqBrD,KAAKkpB,SAAS1kB,0BAErD2lC,QAAS,WACL,IAAItkC,EAAIukC,EAKR,GAJApqC,KAAKo7B,UAAU12B,SAAQ,SAAU2lC,GAAS,OAAO,EAAItY,EAA0BuY,wBAAuB,EAAIvY,EAA0BwY,WAAWF,GAAQA,GAAO,EAAItY,EAA0ByY,iBAAiBH,OAC7MrqC,KAAKyqC,mBAAmB5e,WACxB7rB,KAAK0qC,WAAWC,cAChB3qC,KAAK4qC,8BACD5qC,KAAKyqC,mBAAmBI,QAAS,CACjC7qC,KAAK0qC,WAAW/kC,OAAO,+BAAgC3F,KAAKyqC,mBAAmB1P,WAE/E,IADA,IAAIhS,EAA+F,QAAtFqhB,EAA4B,QAAtBvkC,EAAK7F,KAAK26B,cAA2B,IAAP90B,OAAgB,EAASA,EAAG+0B,wBAAqC,IAAPwP,OAAgB,EAASA,EAAG/M,UAC9Hz3B,EAAK,EAAGklC,EAAK7qC,OAAOwgB,KAAKzgB,KAAKyqC,mBAAmB1P,WAAYn1B,EAAKklC,EAAGtqC,OAAQoF,IAAM,CACxF,IAAIsmB,EAAS4e,EAAGllC,GAChB5F,KAAK0qC,WAAW/kC,QAAO,EAAIxE,EAAUkxB,qBAAqBtJ,EAAOmD,GAASA,GAE9ElsB,KAAKyqC,mBAAmBxe,iBAE5B,IAAK,IAAI8e,EAAK,EAAGC,EAAK/qC,OAAOwgB,KAAKzgB,KAAKirC,kBAAmBF,EAAKC,EAAGxqC,OAAQuqC,IAAM,CAC5E,IAAIG,EAASF,EAAGD,GAChB/qC,KAAK0qC,WAAW/kC,OAAOulC,EAAQlrC,KAAKirC,iBAAiBC,IAEzDlrC,KAAKirC,iBAAmB,GACxBjrC,KAAK0qC,WAAWS,YAChBnrC,KAAK07B,SAASr1B,MAAM,YAExB+kC,cAAe,WACX,IAAIC,EAAWrrC,KAAK0qC,WAChBW,KACA,EAAI9f,EAAS3H,gBAAgB5jB,KAAKqnB,IAAKmE,EAAY8B,iBACnD+d,EAASpU,YAGjBwE,QAAS,WACL,IAAIrP,EAAQpsB,KACZA,KAAKkpB,SAAW,IAAIwgB,EAAgBpjC,SAAQ,SAAUhG,EAAG+pB,GAAK,OAAO+B,EAAM6e,iBAAiB3qC,GAAK+pB,IAAM,KAAMrqB,KAAKo8B,SAASiB,WAAat9B,EAAS,GAAIC,KAAKo8B,SAASiB,WAAYr9B,KAAKipB,oBACpLjpB,KAAKmpB,eAAiB,GACtBnpB,KAAKkpB,SAASlmB,KAAKhD,KAAKoG,QAAUnG,OAAOwgB,KAAKzgB,KAAKoG,UAEvDyhB,QAAS,CACL+iB,4BAA6B,WACzB,IAAIxe,EAAQpsB,KACZA,KAAKkpB,SAASoiB,uBAAuB5mC,SAAQ,SAAUmB,GACnD,IAAI8tB,EAAa9tB,EAAG8tB,WAAYtuB,EAAeQ,EAAGR,aAAc2+B,EAAUn+B,EAAGm+B,QACzE/gC,EAAUmpB,EAAMlD,SAAS1kB,yBACxBa,GAAgB2+B,EACjB5X,EAAMse,WAAWa,YAAY5X,GAG7BvH,EAAMse,WAAW/kC,OAAOguB,GAAY,EAAIxyB,EAAUuyB,gBAAgBzwB,EAAS0wB,OAGnF3zB,KAAKkpB,SAASvmB,+BAElBmlB,eAAgB,SAAU7a,GACtB,IAAIu+B,EAAgBxrC,KACpBwrC,EAAcP,iBAAmB,GACjCO,EAAcf,mBAAqB,IAAId,EAAoBxe,iBAAiBnrB,MAC5E,IAAI8F,EAAS9F,KAAKkpB,SACdjmB,EAAUlD,EAASA,EAASA,EAASA,EAAS,GAAIC,KAAKo8B,SAASiB,WAAYv3B,EAAOvE,eAAgBuE,EAAOtB,yBAA0BxE,KAAKyrC,2BACzIJ,EAAW,IAAIrrC,KAAK0rC,cAAcz+B,EAAShK,GAC/CuoC,EAAcd,WAAaW,EAC3BA,EAASt1B,GAAG,iBAAiB,SAAUxS,GAAQ,OAAOuC,EAAOxC,gBAAgBC,OAC7E,EAAImmC,EAAgBzoC,0BAA0B6E,EAAQ9F,KAAMA,KAAKmpB,iBACjE,EAAIugB,EAAgBxoC,oBAAoB4E,EAAQ9F,KAAMA,KAAKmpB,gBAC3DnpB,KAAK2rC,iBAAiBN,IAE1BI,wBAAyB,WACrB,IAAI5lC,EAAIukC,EACJr5B,EAAShR,EAAS,CAAE6rC,mBAAoB,CACpC/xB,YAAa7Z,KAAK6rC,qBACjB7rC,KAAK8rC,gCACd,GAAI9rC,KAAKyqC,mBAAmBI,QAAS,CACjC,IAAI9P,EAAY/6B,KAAKyqC,mBAAmB1P,UACxChqB,EAAO66B,mBAAmB7Q,UAAYA,EAEtC,IADA,IAAIhS,EAA+F,QAAtFqhB,EAA4B,QAAtBvkC,EAAK7F,KAAK26B,cAA2B,IAAP90B,OAAgB,EAASA,EAAG+0B,wBAAqC,IAAPwP,OAAgB,EAASA,EAAG/M,UAC9Hz3B,EAAK,EAAGklC,EAAK7qC,OAAOwgB,KAAKsa,GAAYn1B,EAAKklC,EAAGtqC,OAAQoF,IAAM,CAChE,IAAImmC,EAASjB,EAAGllC,GAChBmL,GAAO,EAAI5P,EAAUkxB,qBAAqBtJ,EAAOgjB,IAAWA,EAEhE/rC,KAAKyqC,mBAAmBxe,iBAE5B,OAAOlb,GAEX86B,iBAAkB,WACd,IAAIzf,EAAQpsB,KACZ,OAAO,SAAUgsC,EAAaC,EAAqBhpC,GAK/C,OAJAA,EAAUA,GAAW,GAChBA,EAAQipC,eACTD,EAAoBD,KAEjB5f,EAAMlmB,QAAO,WAChB,OAAO8lC,OACR,SAAUG,EAAU36B,KACf,EAAIrQ,EAAU2xB,cAActhB,MAAc,EAAIrQ,EAAU2xB,cAAcqZ,IAAalpC,EAAQi5B,OAC3F+P,EAAoBE,KAEzB,CACCjQ,KAAMj5B,EAAQi5B,SAI1B4P,6BAA8B,WAC1B,MAAO,IAEXhC,kBAAmB,SAAUsC,KAG7BT,iBAAkB,SAAUN,GACxB,IAAIjf,EAAQpsB,KACZC,OAAOwgB,KAAKzgB,KAAKqsC,YAAY3nC,SAAQ,SAAU4nC,GAC3C,IAAIv1B,GAAY,EAAI5V,EAAU0xB,UAAUyZ,GACxCjB,EAASt1B,GAAGgB,GAAW,SAAU5O,GAC7BikB,EAAM/lB,MAAMimC,EAAcnkC,cAO9C,SAASokC,EAAgBnkB,GACrB,IAAIokB,EAAe,GASnB,OARA,EAAIrrC,EAAUgyB,kBAAkB/K,GAAM,SAAUqkB,GAC5C,IAAI/1B,EAAS+1B,EAAUC,WACnBC,EAAcF,EAAUG,cAAgBH,EAAUG,aAAa,gBACvC,aAAvBH,EAAUvf,UAA2Byf,IAAgBj2B,IACtD81B,EAAanoC,KAAKooC,GAClB/1B,EAAOomB,YAAY2P,OAGpBD,EAEX,SAASK,EAAaxb,EAAI9I,GACtBA,EAAM7jB,SAAQ,SAAU0jB,GACpBiJ,EAAG5E,YAAYrE,MAfvBrnB,EAAQwoC,cAAgBA,EAkBxB,IAAIC,EAAc,WAAc,OAAOD,IAAgBhhC,OAAO,CAC1Dsf,QAAS,CACLikB,6BAA8B,WAC1B,MAAO,CACHgB,eAAgB,WACZ9sC,KAAK2qC,iBAIjBb,kBAAmB,SAAUxhB,GACzBA,EAAS5jB,SAAQ,SAAU+nC,GAClBA,EAAU7R,mBAGf6R,EAAU7R,iBAAiBhT,YAAa,QAIpDR,QAAS,WACL,IAAIgF,EAAQpsB,KACRuoB,EAAQgkB,EAAgBvsC,KAAKqnB,KACjCrnB,KAAK8nB,eAAe9nB,KAAKqnB,KACzBrnB,KAAK0qC,WAAWS,YAChB0B,EAAa7sC,KAAKqnB,IAAKkB,GACnBvoB,KAAKk7B,QAAUl7B,KAAKk7B,OAAO50B,SAC3BtG,KAAKk7B,OAAO50B,QAAQ5B,SAAQ,SAAU2lC,GAClC,IAAI0C,EAAiB1C,EAAM2C,kBACvBD,GAAkBA,EAAetlB,eACjCslB,EAAeplB,SAASyE,EAAM/E,YAMlDtmB,EAAQyoC,YAAcA,G;;;;;;;;;;;;GC/OtBvpC,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8qB,SAAW9qB,EAAQ4rB,mBAAgB,EAC3C,IAAI3F,EAAe,EAAQ,QACvBF,EAAQ,EAAQ,QAChB0T,EAAgB,WACpB,SAASE,EAAeh1B,GACpB,IAAIk1B,EAAmBl1B,EACvB,GAAKk1B,GAGAA,EAAiB1R,UAAa0R,EAAiB1R,SAAS5nB,KAG7D,OAAOs5B,EAEX,SAASC,EAAYn1B,GACjB,OAAO80B,KAAiB90B,EAAUmpB,KAAK9F,QAAS,EAAI/B,EAAaimB,uBAAuBvnC,GAE5F,SAASmmB,EAASnmB,GACd,IAAIq1B,EAAY,GACZmS,GAAgB,EAAIlmB,EAAammB,mBAAmBznC,GACxD,IAAK,IAAIs1B,KAAYkS,EACjB,GAAiB,YAAblS,IAA0Bt1B,EAAUw1B,OAAO50B,QAA/C,CAGA,IAAI60B,EAAO+R,EAAclS,GACpBG,IAGLJ,EAAUC,GAAYG,GAG1B,IADA,IAAIxS,GAAoB,EAAI3B,EAAaomB,aAAa1nC,GAC7CE,EAAK,EAAGynC,EAAsB1kB,EAAmB/iB,EAAKynC,EAAoB7sC,OAAQoF,IAAM,CAC7F,IAAIy1B,EAAiBgS,EAAoBznC,GACrCnD,EAAei4B,EAAeW,GAClC,GAAK54B,EAAL,CAGA,IAAI64B,GAAc,EAAItU,EAAasmB,8BAA8BjS,GACjE,GAAKC,GAAgBT,EAAYQ,GAAjC,CAGA,IAAI/I,EAAe,GAAG5vB,OAAOD,EAAaymB,SAAStmB,SAAU,KAAKF,OAAO83B,GACzEO,EAAUzI,GAAgBgJ,IAE9B,OAAOP,EAGX,SAASwS,EAAmB1R,GACxB,IAAI2R,EAAa,GAOjB,OANA3R,EAAQn3B,SAAQ,SAAU4H,GACtB,IAAI7J,GAAe,EAAIukB,EAAaymB,yBAAyBnhC,GACxD7J,GAAiBA,EAAaimB,cAC/B8kB,EAAWnpC,KAAKiI,MAGjBkhC,EAEX,SAAS7gB,EAAc4O,EAAS7kB,EAAQtL,EAAM9J,EAAMgrB,GAChD,OAAO,EAAItF,EAAa0mB,OAAO,CAC3BpsC,KAAMA,EACNk6B,OAAQ,CAAC,YACTC,QAAS,WACLz7B,KAAK07B,SAASiS,IAAI3tC,KAAK4tC,mBAE3BxmB,QAAS,WACLhc,EAAKuP,cAETkzB,UAAW,WACP7tC,KAAK07B,SAASnuB,OAAOvN,KAAK4tC,mBAE9B/lB,QAAS,CACL+lB,iBAAkB,WACd5tC,KAAK47B,iBAGbnhB,OAAQ,WACJ,IAAIohB,EAAU0R,EAAmBhS,IAAUnwB,IAC3C,OAAKywB,EAGEA,EAAQr7B,OAAS,EAAIq7B,EAAUA,EAAQ,IAFnC,EAAI/U,EAAMgnB,GAAG,SAI7Bp3B,EAAQ4V,GApCfvrB,EAAQ8qB,SAAWA,EAsCnB9qB,EAAQ4rB,cAAgBA,G,kCCnGxB,oDAiBIohB,EAAwB,qBACxBC,EAAuB,oBACvBtnC,EAAiC,8BACjCunC,EAAkB,SAASp0B,EAAaq0B,EAAI9a,GAC5C,IAMI5hB,EANA28B,EAAmB,SAASntC,GACxBwQ,IAAaxQ,IACboyB,EAASpyB,EAAOwQ,GAChBA,EAAWxQ,IAInB,MAAO,CACHi2B,QAASpd,EAAYq0B,EAAIC,GACzBC,MAAO,WACHD,EAAiBD,QAIzBG,EAAiB,OAAMvmC,QAAQ,CAC/BwV,KAAM,SAASxQ,EAAU7J,EAASu2B,GAC9Bx5B,KAAKsuC,UAAYxhC,EACjB9M,KAAK8C,SAAWG,EAChBjD,KAAKuuC,SAAW/U,EAChB,eAAwB1sB,EAAU9M,KAAMA,KAAKqU,UAC7CrU,KAAKiV,WAETA,QAAS,WACL,IAAIu5B,EAAe,eAAE,SAAS3gC,SAASnH,GACvC1G,KAAKsuC,UAAU7kB,OAAO+kB,GACtBxuC,KAAKyuC,UAAY,GACjBzuC,KAAK0uC,mBAETA,gBAAiB,WACb1uC,KAAK2uC,cAAc,WAAY3uC,KAAK4uC,gBAAgBtsC,KAAKtC,OACzDA,KAAK2uC,cAAc,UAAW3uC,KAAK6uC,eAAevsC,KAAKtC,QAE3D2uC,cAAe,SAAS30B,EAAOS,GAC3B,IAAI+e,EAAUx5B,KAAKuuC,SACfO,EAAa9uC,KAAK8C,SAASiX,YAAYC,GACvC+0B,EAAUd,EAAgBjuC,KAAK8C,SAAS+W,eAAe,WACvD,OAAOi1B,EAAWtV,KAClB,SAASx4B,EAAOwQ,GAChBxR,KAAKgvC,QAAS,EACdv0B,EAAOzZ,EAAOwQ,IAChBlP,KAAKtC,OACPA,KAAKyuC,UAAUpqC,KAAK0qC,IAExBn9B,aAAc,WAKV,GAJA5R,KAAKgvC,QAAS,EACd,eAAKhvC,KAAKyuC,WAAW,SAAUzyB,EAAG+yB,GAC9BA,EAAQX,WAERpuC,KAAKgvC,OACL,OAAO,GAGfJ,gBAAiB,SAAS5tC,EAAOwQ,GAC7BxR,KAAKsuC,UAAUrzB,YAAY+yB,IAAwBhtC,GACnDhB,KAAKsuC,UAAU19B,KAAK,kBAAmB5P,GACvChB,KAAKivC,kBAAkBjuC,IAE3BiuC,kBAAmB,SAASrJ,GACxB,IAAIsJ,EAAiBlvC,KAAK8C,SAASgX,MAC/Bo1B,GAAkBtJ,GAClBsJ,EAAen9B,gBAAgB/R,KAAKsuC,YAG5CO,eAAgB,SAAS7tC,EAAOwQ,GAC5BxR,KAAKsuC,UAAUrzB,YAAY8yB,OAAuB,IAAW/sC,IAAUA,IAE3EqT,SAAU,WACN,eAAKrU,KAAKyuC,WAAW,SAAUzyB,EAAG+yB,GAC9BA,EAAQ9X,gBAIpBoX,EAAe18B,YAAc,SAAS7E,GAClC,OAAO,eAAqBA,EAAU9M,OAE3B,U;;;;;;;;;;;;GClFfC,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQouC,0BAAuB,EAC/B,IAAIpoB,EAAc,EAAQ,QACtBooB,EAAuB,WAAc,OAAO,EAAIpoB,EAAYwiB,iBAAiBhhC,OAAO,CACpFkzB,QAAS,WACLz7B,KAAKynB,eAAgB,GAEzBL,QAAS,WACLpnB,KAAKqnB,IAAIC,aAAa,cAAe,QACjCtnB,KAAK26B,QAAU36B,KAAK26B,OAAOC,iBAAiBhT,YAGhD5nB,KAAK2nB,SAAS3nB,KAAKqnB,MAEvBQ,QAAS,CACLF,SAAU,SAAU1a,GAChBjN,KAAK8nB,eAAe7a,QAIhClM,EAAQouC,qBAAuBA,G;;;;;;;;;;;;GCpB/B,IAAIzlB,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEX9Q,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQypB,yBAA2BzpB,EAAQ0pB,6BAA+B1pB,EAAQ2pB,qBAAkB,EACpG,IAAI4P,EAAUhQ,EAAa,EAAQ,SAC/BmQ,EAAMH,EAAQh0B,SAAWg0B,EACzBvT,EAAc,EAAQ,QACtBgL,EAA4B,EAAQ,QACpCC,EAAwB,EAAQ,QACpC,SAAStH,EAAgB5kB,GAErB,OADAA,EAAOohB,SAAU,EAAIH,EAAYyiB,eAC1B/O,EAAIlyB,OAAOzC,GAGtB,SAAS2kB,EAA6B3kB,GAElC,OADAA,EAAOohB,SAAU,EAAI6K,EAA0Bqd,mBACxC3U,EAAIlyB,OAAOzC,GAGtB,SAAS0kB,EAAyB1kB,GAE9B,OADAA,EAAOohB,SAAU,EAAI8K,EAAsBmd,wBACpC1U,EAAIlyB,OAAOzC,GARtB/E,EAAQ2pB,gBAAkBA,EAK1B3pB,EAAQ0pB,6BAA+BA,EAKvC1pB,EAAQypB,yBAA2BA,G;;;;;;;;;;;;GC5CnC,IAAIzqB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAE5BmpB,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEPma,EAAmBlrB,MAAQA,KAAKkrB,iBAAoB,SAAUX,GAC9D,OAAQA,GAAOA,EAAIL,WAAcK,EAAM,CAAE,QAAWA,IAExDtqB,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQomB,kBAAoBpmB,EAAQkxB,qBAAkB,EACtD,IAAInL,EAAQ,EAAQ,QAChBuoB,EAAcnkB,EAAgB,EAAQ,SACtCK,EAAW,EAAQ,QACnBvE,EAAe,EAAQ,QACvByiB,EAAwB,EAAQ,QAChCC,EAAkBpf,EAAa,EAAQ,SACvCyH,EAA4B,EAAQ,QACpCvG,EAAc,EAAQ,QACtBrqB,EAAY,EAAQ,QACpBwoC,EAAsB,EAAQ,QAC9B2F,EAAe,CAAC,KAAM,QAAS,SACnC,SAASC,EAASxF,GACd,IAAIyF,EAAa,GAOjB,OANAF,EAAa5qC,SAAQ,SAAUkM,GAC3B,IAAI6+B,EAAY1F,EAAMn5B,GAClB6+B,IACAD,EAAW5+B,GAAQ6+B,MAGpBD,EAEX,SAASroB,IACL,OAAO,EAAIL,EAAMG,iBAAiB,CAC9B2iB,cAAc,EACdx+B,KAAM,WACF,MAAO,CACHswB,UAAU,EAAI2T,EAAY/oC,aAGlCujC,QAAS,WACL,MAAO,CACHnO,SAAU17B,KAAK07B,WAGvBjhB,OAAQ,WACJ,IAAI+wB,EAAgBxrC,KAChBsoB,EAAW,GAMf,OALIkjB,EAActiB,SAAStlB,aACvB4nC,EAActiB,SAAStlB,eAE3B,EAAI6lC,EAAsB1hB,kBAAiB,EAAIf,EAAa0oB,cAAc1vC,MAAOsoB,EAAUkjB,EAActiB,UACzGlpB,KAAK8pC,kBAAkBxhB,IAChB,EAAIxB,EAAMgnB,GAAG,MAAO/tC,EAAS,GAAIwvC,EAASvvC,KAAKiqC,SAAU3hB,IAEpE4hB,aAAc,WACV,IAAIsB,EAAgBxrC,KACpBwrC,EAActiB,SAAS7lB,qBAAqBmoC,EAActiB,SAAS1kB,0BAEvE2lC,QAAS,WACL,IAAIqB,EAAgBxrC,KAChBuoB,EAAQgkB,EAAgBvsC,KAAKqnB,KAQjC,IAPA,EAAIL,EAAaomB,aAAa5B,GAAe9mC,SAAQ,SAAU2lC,GAC3D,IAAIxkC,GACJ,EAAIksB,EAA0BuY,uBAAuBD,EAAMnhB,SAAUmhB,EAAMxb,KAAK9F,OAAS,GAA6E,QAAxEljB,EAAe,OAAVwkC,QAA4B,IAAVA,OAAmB,EAASA,EAAM3kC,iBAA8B,IAAPG,OAAgB,EAASA,EAAG8pC,MAAOtF,EAAMlhB,mBAE3NqiB,EAAcf,mBAAmB5e,WACjC2f,EAAcd,WAAWC,cACzB3qC,KAAK4qC,8BACDY,EAAcf,mBAAmBI,QAAS,CAC1CW,EAAcd,WAAW/kC,OAAO,+BAAgC6lC,EAAcf,mBAAmB1P,WAEjG,IADA,IAAIhS,EAAQyiB,EAAchP,EAAEF,MAAMvT,MACzBnjB,EAAK,EAAGC,EAAK5F,OAAOwgB,KAAK+qB,EAAcf,mBAAmB1P,WAAYn1B,EAAKC,EAAGrF,OAAQoF,IAAM,CACjG,IAAIsmB,EAASrmB,EAAGD,GAChB4lC,EAAcd,WAAW/kC,QAAO,EAAIxE,EAAUkxB,qBAAqBtJ,EAAOmD,GAASA,GAEvFsf,EAAcf,mBAAmBxe,iBAErC,IAAK,IAAIme,EAAK,EAAGU,EAAK7qC,OAAOwgB,KAAK+qB,EAAcP,kBAAmBb,EAAKU,EAAGtqC,OAAQ4pC,IAAM,CACrF,IAAIc,EAASJ,EAAGV,GAChBoB,EAAcd,WAAW/kC,OAAOulC,EAAQM,EAAcP,iBAAiBC,IAE3EM,EAAcP,iBAAmB,GACjCO,EAAcd,WAAWS,YACzB0B,EAAa7sC,KAAKqnB,IAAKkB,GACvBvoB,KAAK07B,SAASkU,QAElBC,cAAe,WACX,IAAIrE,EAAgBxrC,KAChBqrC,EAAWG,EAAcd,WACzBW,KACA,EAAI9f,EAAS3H,gBAAgB5jB,KAAKqnB,IAAKmE,EAAY8B,iBACnD+d,EAASpU,YAGjBwE,QAAS,WACL,IAAI+P,EAAgBxrC,KAChB+oB,GAAQ,EAAI/B,EAAa8oB,mBAAmB9vC,MAChDwrC,EAActiB,SAAW,IAAIwgB,EAAgBpjC,SAAQ,SAAUhG,EAAG+pB,GAC1DvlB,MAAMC,QAAQslB,GACdmhB,EAAcd,WAAW/kC,OAAOrF,EAAG+pB,GAGnCmhB,EAAcP,iBAAiB3qC,IAAM0mB,EAAauV,YAAc,QAAUj8B,GAAK+pB,IAEpF,KAAMtB,GAAShpB,EAAS,GAAIgpB,GAAQyiB,EAAcviB,oBACrDuiB,EAAcriB,eAAiB,GAC/BqiB,EAActiB,SAASlmB,KAAKhD,KAAKoG,QAAUnG,OAAOwgB,KAAKzgB,KAAKoG,UAEhEyhB,QAAS,CACL+iB,4BAA6B,WACzB,IAAIY,EAAgBxrC,KACpBwrC,EAActiB,SAASoiB,uBAAuB5mC,SAAQ,SAAUmB,GAC5D,IAAI8tB,EAAa9tB,EAAG8tB,WAAYtuB,EAAeQ,EAAGR,aAAc2+B,EAAUn+B,EAAGm+B,QACzE/gC,EAAUuoC,EAActiB,SAAS1kB,yBAChCa,GAAgB2+B,EACjBwH,EAAcd,WAAWa,YAAY5X,GAGrC6X,EAAcd,WAAW/kC,OAAOguB,GAAY,EAAIxyB,EAAUuyB,gBAAgBzwB,EAAS0wB,OAG3F6X,EAActiB,SAASvmB,+BAE3BmlB,eAAgB,SAAU7a,GACtB,IAAIu+B,EAAgBxrC,KACpBwrC,EAAcP,iBAAmB,GACjCO,EAAcf,mBAAqB,IAAId,EAAoBxe,iBAAiBnrB,MAC5E,IAAI8F,EAAS0lC,EAActiB,SACvBpjB,EAAOvE,cAAcZ,eAAeqmB,EAAauV,eACjDz2B,EAAOvE,cAAcP,OAAQ,EAAIgmB,EAAa+oB,gBAAgBjqC,EAAOvE,gBAEzE,IAAI0B,EAAUlD,EAASA,EAASA,EAASA,EAAS,CAAEiwC,8BAA+BxE,EAAcyE,qBAAsB,EAAIjpB,EAAa8oB,mBAAmBtE,IAAiB1lC,EAAOvE,eAAgBuE,EAAOtB,yBAA0BxE,KAAKyrC,2BACrOJ,EAAW,IAAIG,EAAcE,cAAcz+B,EAAShK,GACxDuoC,EAAcd,WAAaW,EAC3BA,EAASt1B,GAAG,iBAAiB,SAAUxS,GAAQ,OAAOuC,EAAOxC,gBAAgBC,OAC7E,EAAImmC,EAAgBzoC,0BAA0B6E,EAAQ0lC,EAAeA,EAAcriB,iBACnF,EAAIugB,EAAgBxoC,oBAAoB4E,EAAQ0lC,EAAeA,EAAcriB,gBAC7EnpB,KAAK2rC,iBAAiBN,IAE1BI,wBAAyB,WACrB,IAAID,EAAgBxrC,KAChB+Q,EAAShR,EAAS,CAAE6rC,mBAAoB,CACpC/xB,YAAa7Z,KAAK6rC,qBACjB7rC,KAAK8rC,gCACd,GAAIN,EAAcf,mBAAmBI,QAAS,CAC1C,IAAI9P,EAAYyQ,EAAcf,mBAAmB1P,UACjDhqB,EAAO66B,mBAAmB7Q,UAAYA,EAEtC,IADA,IAAIhS,EAAQyiB,EAAchP,EAAEF,MAAMvT,MACzBnjB,EAAK,EAAGC,EAAK5F,OAAOwgB,KAAKsa,GAAYn1B,EAAKC,EAAGrF,OAAQoF,IAAM,CAChE,IAAImmC,EAASlmC,EAAGD,GAChBmL,GAAO,EAAI5P,EAAUkxB,qBAAqBtJ,EAAOgjB,IAAWA,EAEhEP,EAAcf,mBAAmBxe,iBAErC,OAAOlb,GAEX86B,iBAAkB,WACd,IAAIzf,EAAQpsB,KACZ,OAAO,SAAUgsC,EAAaC,EAAqBhpC,GAK/C,OAJAA,EAAUA,GAAW,GAChBA,EAAQipC,eACTD,EAAoBD,KAEjB5f,EAAMlmB,QAAO,WAChB,OAAO8lC,OACR,SAAUG,EAAU36B,KACf,EAAIrQ,EAAU2xB,cAActhB,MAAc,EAAIrQ,EAAU2xB,cAAcqZ,IAAalpC,EAAQi5B,OAC3F+P,EAAoBE,KAEzB,CACCjQ,KAAMj5B,EAAQi5B,SAI1B4P,6BAA8B,WAC1B,MAAO,IAEXhC,kBAAmB,SAAUsC,KAG7BT,iBAAkB,SAAUN,GACxB,IAAIjf,EAAQpsB,KACRA,KAAKiqC,QACLhqC,OAAOwgB,KAAKzgB,KAAKiqC,QAAQvlC,SAAQ,SAAU4nC,GACvC,IAAIv1B,GAAY,EAAI5V,EAAU0xB,UAAUyZ,GACxCjB,EAASt1B,GAAGgB,GAAW,SAAU5O,GAC7BikB,EAAM/lB,MAAMimC,EAAcnkC,aAStD,SAASokC,EAAgBnkB,GACrB,IAAIokB,EAAe,GASnB,OARA,EAAIrrC,EAAUgyB,kBAAkB/K,GAAM,SAAUqkB,GAC5C,IAAI/1B,EAAS+1B,EAAUC,WACnBC,EAAcF,EAAUG,cAAgBH,EAAUG,aAAa,gBACvC,aAAvBH,EAAUvf,UAA2Byf,IAAgBj2B,IACtD81B,EAAanoC,KAAKooC,GAClB/1B,EAAOomB,YAAY2P,OAGpBD,EAEX,SAASK,EAAaxb,EAAI9I,GACtBA,EAAM7jB,SAAQ,SAAU0jB,GACpBiJ,EAAG5E,YAAYrE,MAGvB,SAAS6J,IACL,OAAO,EAAInL,EAAMG,iBAAiB,CAC9BC,QAASC,IACTU,QAAS,CACLikB,6BAA8B,WAC1B,MAAO,CACHgB,eAAgB,WACZ9sC,KAAK2qC,iBAIjBb,kBAAmB,SAAUxhB,GACzBA,EAAS5jB,SAAQ,SAAU+nC,GAClBA,GAAkC,kBAAdA,IAGzBA,EAAU7kB,YAAa,QAInCR,QAAS,WACL,IAAIgF,EAAQpsB,KACRuoB,EAAQgkB,EAAgBvsC,KAAKqnB,KAC7BmkB,EAAgBxrC,KACpBA,KAAK8nB,eAAe9nB,KAAKqnB,KACzBmkB,EAAcd,WAAWS,YACzB0B,EAAa7sC,KAAKqnB,IAAKkB,GACnBvoB,KAAKk7B,QAAUl7B,KAAKk7B,OAAO50B,UAC3B,EAAI0gB,EAAaomB,aAAa5B,GAAe9mC,SAAQ,SAAU2lC,GAC3D,IAAI6F,EAAgB7F,EAChB6F,GAAiBA,EAAczoB,eAC/ByoB,EAAcxoB,WAAW0E,EAAM/E,WAjDvDtmB,EAAQomB,kBAAoBA,EAwD5BpmB,EAAQkxB,gBAAkBA,G;;;;;;;;;;;;GCvR1B,IAAIvI,EAAmB1pB,MAAQA,KAAK0pB,kBAAqBzpB,OAAO0pB,OAAS,SAAUhlB,EAAGilB,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAO/pB,OAAOgqB,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKvnB,gBAClEunB,EAAO,CAAExnB,YAAY,EAAMD,IAAK,WAAa,OAAOqnB,EAAEC,MAExD5pB,OAAOa,eAAe6D,EAAGmlB,EAAIE,IAC5B,SAAUrlB,EAAGilB,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BllB,EAAEmlB,GAAMF,EAAEC,KAEVO,EAAsBpqB,MAAQA,KAAKoqB,qBAAwBnqB,OAAO0pB,OAAS,SAAUhlB,EAAG0lB,GACxFpqB,OAAOa,eAAe6D,EAAG,UAAW,CAAEnC,YAAY,EAAMxB,MAAOqpB,KAC9D,SAAS1lB,EAAG0lB,GACb1lB,EAAE,WAAa0lB,IAEfC,EAAgBtqB,MAAQA,KAAKsqB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIL,WAAY,OAAOK,EAClC,IAAIxZ,EAAS,GACb,GAAW,MAAPwZ,EAAa,IAAK,IAAIV,KAAKU,EAAe,YAANV,GAAmB5pB,OAAOS,UAAUC,eAAeC,KAAK2pB,EAAKV,IAAIH,EAAgB3Y,EAAQwZ,EAAKV,GAEtI,OADAO,EAAmBrZ,EAAQwZ,GACpBxZ,GAEX9Q,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQypC,gBAAkBzpC,EAAQwpC,UAAYxpC,EAAQupC,sBAAwBvpC,EAAQquC,qBAAkB,EACxG,IAAI9U,EAAUhQ,EAAa,EAAQ,SAC/BmQ,EAAMH,EAAQh0B,SAAWg0B,EACzBoP,EAAkB,EAAQ,QAC9B,SAASa,EAAUxkC,GACf,GAAKA,EAAY40B,OAAjB,CAGA,IAAIC,EAAmB70B,EAAY40B,OAAOC,iBAC1C,OAAOA,GAAoBA,EAAiB1R,UAGhD,SAASshB,EAAgBzkC,GACrB,GAAKA,EAAY40B,OAAjB,CAGA,IAAIC,EAAmB70B,EAAY40B,OAAOC,iBAC1C,OAAOA,GAAoBA,EAAiBzR,gBAGhD,SAASmhB,EAAsBxkC,EAAQC,EAAaC,GAC3CF,IAGLA,EAAO9C,KAAK/C,OAAOwgB,KAAK1a,EAAYK,UACpC,EAAIsjC,EAAgBzoC,0BAA0B6E,EAAQC,EAAaC,IAGvE,SAASyiB,EAAiB5iB,EAAIm+B,GAC1B,IAAI1iC,EAAOuE,EAAGvE,KAAMG,EAAmBoE,EAAGpE,iBAAkBE,EAAckE,EAAGlE,YACzEwuC,EAAaxuC,GAAeA,EAAYiB,SACxC+wB,EAAaryB,GAAQ6uC,EAAa,GAAGztC,OAAOytC,EAAY,KAAKztC,OAAOpB,GAAQA,GAAQ,GACxF,MAAO,CACHqyB,WAAYA,EACZtuB,aAAc5D,EACduiC,QAASA,GAxBjBjjC,EAAQwpC,UAAYA,EAQpBxpC,EAAQypC,gBAAkBA,EAQ1BzpC,EAAQupC,sBAAwBA,EAWhC,IAAI8E,EAAkB,WAAc,OAAO3U,EAAIlyB,OAAO,CAClD6nC,YAAa,WACT,IAAItqC,EAASykC,EAAUvqC,MACnBgG,EAAewkC,EAAgBxqC,MACnCsqC,EAAsBxkC,EAAQ9F,KAAMgG,IACpC,EAAI0jC,EAAgBxoC,oBAAoB4E,EAAQ9F,KAAMgG,IAE1DohB,QAAS,WACDpnB,KAAKqwC,QAAQ3F,YACb1qC,KAAKqwC,QAAQnnB,SAASoiB,uBACjBjnC,KAAKokB,EAAiB8hB,EAAUvqC,SAG7CorC,cAAe,WACXprC,KAAKqwC,QAAQnnB,SAASoiB,uBACjBjnC,KAAKokB,EAAiB8hB,EAAUvqC,OAAO,KAEhDya,OAAQ,SAAU+R,GACd,OAAOA,QAGfzrB,EAAQquC,gBAAkBA,G;;;;;;;;;;;;GCnF1BnvC,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQusB,gBAAkBvsB,EAAQ8rB,+BAA4B,EAC9D,IAAIA,EAA4B,sBAChC9rB,EAAQ8rB,0BAA4BA,EACpC,IAAIS,EAAkB,WACtBvsB,EAAQusB,gBAAkBA,G;;;;;;;;;;;;GCL1B,IAAIvtB,EAAYC,MAAQA,KAAKD,UAAa,WAStC,OARAA,EAAWE,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACAD,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJJ,EAASc,MAAMb,KAAMO,YAEhCN,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0sC,wBAA0B1sC,EAAQoxB,UAAYpxB,EAAQmxB,iBAAmBnxB,EAAQgvC,eAAiBhvC,EAAQuvC,uBAAyBvvC,EAAQymB,eAAiBzmB,EAAQwvC,uBAAyBxvC,EAAQ+uC,kBAAoB/uC,EAAQ2sC,MAAQ3sC,EAAQ2uC,aAAe3uC,EAAQosC,kBAAoBpsC,EAAQksC,sBAAwBlsC,EAAQusC,6BAA+BvsC,EAAQ6nB,sBAAwB7nB,EAAQ+nB,mBAAqB/nB,EAAQ0nB,iBAAmB1nB,EAAQqsC,YAAcrsC,EAAQw7B,iBAAc,EAC/e,IAAIzV,EAAQ,EAAQ,QAChB3lB,EAAY,EAAQ,QACpBsoC,EAAwB,EAAQ,QAEpC,SAAS2D,EAAY1nC,GACjB,IAAK8qC,EAAY9qC,KAAeA,EAAUwjB,SACtC,MAAO,GAEX,IAAIZ,EAAW5iB,EAAU82B,EAAEiU,SAAW/qC,EAAU82B,EAAEiU,QAAQnoB,SAC1D,OAAKxjB,MAAMC,QAAQujB,GAGZA,EAASpkB,QAAO,SAAUmmC,GAC7B,KAAK,EAAIZ,EAAsBxhB,YAAYoiB,GACvC,OAAOA,KAJJ,GAUf,SAAS5hB,EAAiB/iB,GACtB,OAAO+nC,EAAwB/nC,GAGnC,SAASojB,EAAmBC,GACxB,IAAIhY,EAAS,GACb,IAAK,IAAIwhB,KAAYxJ,EACbA,EAAMpoB,eAAe4xB,KACrBxhB,GAAO,EAAI5P,EAAU0xB,UAAUN,IAAaxJ,EAAMwJ,IAG1D,OAAOxhB,EAGX,SAAS6X,EAAsBljB,GAC3B,OAAKA,EAAU4iB,UAAa5iB,EAAU4iB,SAAShiB,QAGxCoqC,EAA4BhrC,EAAU4iB,SAAShiB,WAF3C,GAKf,SAASgnC,EAA6BllB,GAClC,GAAKA,EAAKE,UAA8B,WAAlBF,EAAKE,UAA0BF,EAAKE,SAAShiB,QAGnE,OAAOqqC,EAAkBvoB,EAAKE,SAAShiB,WAAa8hB,EAAKE,SAAShiB,aAAUyjB,EAGhF,SAASkjB,EAAsB7kB,GAC3B,OAAOklB,EAA6BllB,GAGxC,SAAS+kB,EAAkBznC,GACvB,OAAOA,EAAUw1B,OAGrB,SAASwU,EAAahqC,GAClB,IAAIq1B,EAAYoS,EAAkBznC,GAClC,OAAKq1B,EAAUz0B,QAGRy0B,EAAUz0B,UAFN,GAKf,SAASonC,EAAMzqC,EAASyT,EAAQ2a,GAC5B,IAAIhkB,GAAW,EAAIyZ,EAAM8pB,WAAW3tC,GAGpC,OAFAoK,EAASw8B,QAAQ,WAAYnzB,EAAOglB,UACpCmV,EAAcxjC,EAAUqJ,GACjBrJ,EAASqgC,MAAMrc,GAG1B,SAASye,EAAkBpqC,GACvB,IAAIqjB,EAAQrjB,EAAU82B,EAAEF,MAAMvT,OAAS,GACvC,OAAOD,EAAmBC,GAG9B,SAASwnB,EAAuBnoB,GAC5B,OAAOA,EAAKW,MAGhB,SAASvB,EAAe9hB,GACpB,OAAIA,EAAU82B,EACH92B,EAAU82B,EAAEF,MAEhB52B,EAGX,SAAS4qC,EAAuB5qC,GAC5B,OAAOA,EAAU82B,EAAEF,MAAMzN,KAG7B,SAASkhB,EAAe9sC,GACpB,OAAOA,EAAQlC,EAAQw7B,aAG3B,SAASrK,EAAiBxsB,GACtBA,EAAUorC,aAAe,CACrBC,KAAM,GAId,SAAS5e,EAAUrsB,GACf,IAAID,EACAkR,EAAY,UAAUrU,OAAO3B,EAAQw7B,aACzCz2B,EAAO4U,MAAMs2B,KAAOjwC,EAAQw7B,YAC5Bz2B,EAAO4U,MAAMjR,MAAQsN,EACrBjR,EAAOijB,MAAMkoB,WAAa,GAC1BnrC,EAAOorC,MAAQnxC,EAASA,EAAS,GAAI+F,EAAOorC,QAASrrC,EAAK,GAAIA,EAAG,GAAGnD,OAAOqU,IAAc,KAAMlR,IAGnG,SAASsrC,EAAqBnU,EAAYoU,GACtC,IAAK,IAAIJ,KAAQI,GACRpU,EAAWr8B,eAAeqwC,IAASI,EAAiBzwC,eAAeqwC,KACpEhU,EAAWgU,GAAQI,EAAiBJ,IAIhD,SAASH,EAAcxjC,EAAUqJ,GAC7BrJ,EAASgkC,SAASC,WAAarxC,OAAOC,OAAOwW,EAAO8lB,EAAEQ,WAAWsU,WAAYjkC,EAASgkC,SAASC,YAC/FrxC,OAAOsxC,eAAelkC,EAASgkC,SAASG,SAAUvxC,OAAOwxC,eAAe/6B,EAAO8lB,EAAEgV,WACjFvxC,OAAOC,OAAOmN,EAASgkC,SAASG,SAAU96B,EAAO8lB,EAAEQ,WAAWwU,UAC9DnkC,EAASgkC,SAASvrC,OAAS4Q,EAAO8lB,EAAEQ,WAAWl3B,OAC/CuH,EAASgkC,SAASK,WAAah7B,EAAO8lB,EAAEQ,WAAW0U,WACnDrkC,EAASgkC,SAASM,OAASj7B,EAAO8lB,EAAEQ,WAAW2U,OAC/CR,EAAqB9jC,EAASgkC,SAASpU,IAAKvmB,EAAO8lB,EAAEQ,WAAWC,KAEpE,SAASyT,EAA4BpoB,GACjC,OAAOA,EAASpkB,QAAO,SAAUmmC,GAC7B,IAAI,EAAIZ,EAAsBxhB,YAAYoiB,GACtC,OAAOqG,EAA4BrG,EAAM/hB,UAAY,IAEzD,IAAIspB,EAAYvH,EAAMxb,KACtB,OAAI+iB,GAAkC,kBAAdA,GAA0BA,EAAUlpB,qBACjD2hB,EAAMnhB,gBACNmhB,EAAMlhB,eACNkhB,QAHX,KAQR,SAASsG,EAAkBroB,GACvB,IAAIuS,GAAc,EAMlB,OALAvS,EAAS5jB,SAAQ,SAAU2lC,GAClBwH,EAAgBxH,KAAW,EAAIZ,EAAsBxhB,YAAYoiB,IAAWyH,EAAUzH,KACvFxP,GAAc,MAGfA,EAEX,SAASiX,EAAU1pB,GACf,OAAOA,EAAKyG,OAAS/H,EAAMirB,SAAqC,aAAzB3pB,EAAKyG,KAAKmjB,aAA8B5pB,EAAKE,SAExF,SAASupB,EAAgBxH,GACrB,OAAOA,EAAMxb,MAA8B,kBAAfwb,EAAMxb,MAAqBwb,EAAMxb,KAAKnG,aAEtE,SAAS+kB,EAAwBrlB,GAC7B,OAAOA,EAAKyG,KAGhB,SAAS2hB,EAAY9qC,GACjB,OAAOA,EAAU82B,EAAEF,OAAS52B,EAAU82B,EAAEF,MAAMhU,UAAY5iB,EAAU82B,EAAEF,MAAMhU,SAAShiB,QA7JzFvF,EAAQw7B,YAAc,aAgBtBx7B,EAAQqsC,YAAcA,EAItBrsC,EAAQ0nB,iBAAmBA,EAU3B1nB,EAAQ+nB,mBAAqBA,EAO7B/nB,EAAQ6nB,sBAAwBA,EAOhC7nB,EAAQusC,6BAA+BA,EAIvCvsC,EAAQksC,sBAAwBA,EAIhClsC,EAAQosC,kBAAoBA,EAQ5BpsC,EAAQ2uC,aAAeA,EAOvB3uC,EAAQ2sC,MAAQA,EAKhB3sC,EAAQ+uC,kBAAoBA,EAI5B/uC,EAAQwvC,uBAAyBA,EAOjCxvC,EAAQymB,eAAiBA,EAIzBzmB,EAAQuvC,uBAAyBA,EAIjCvvC,EAAQgvC,eAAiBA,EAMzBhvC,EAAQmxB,iBAAmBA,EAS3BnxB,EAAQoxB,UAAYA,EAiDpBpxB,EAAQ0sC,wBAA0BA,G;;;;;;;;;;;;GC3KlCxtC,OAAOa,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQypC,gBAAkBzpC,EAAQwpC,UAAYxpC,EAAQupC,sBAAwBvpC,EAAQqxB,yBAAsB,EAC5G,IAAItL,EAAQ,EAAQ,QAChBE,EAAe,EAAQ,QACvB0iB,EAAkB,EAAQ,QAC9B,SAASa,EAAUxkC,GACf,IAAI60B,GAAmB,EAAI5T,EAAaQ,gBAAgBzhB,GACxD,GAAK60B,EAGL,OAAOA,EAAiB1R,UAAYnjB,EAAYmjB,SAGpD,SAASshB,EAAgBzkC,GACrB,IAAI60B,GAAmB,EAAI5T,EAAaQ,gBAAgBzhB,GACxD,GAAK60B,EAGL,OAAOA,EAAiBzR,gBAAkBpjB,EAAYojB,eAG1D,SAASmhB,EAAsBxkC,EAAQijB,EAAOhjB,EAAaC,GAClDF,IAGLA,EAAO9C,KAAK/C,OAAOwgB,KAAKsI,IACpBhjB,IACA,EAAI2jC,EAAgBzoC,0BAA0B6E,EAAQC,EAAaC,IAI3E,SAASyiB,EAAiB5iB,EAAIm+B,GAC1B,IAAI1iC,EAAOuE,EAAGvE,KAAMG,EAAmBoE,EAAGpE,iBAAkBE,EAAckE,EAAGlE,YACzEwuC,EAAaxuC,GAAeA,EAAYiB,SACxC+wB,EAAaryB,GAAQ6uC,EAAa,GAAGztC,OAAOytC,EAAY,KAAKztC,OAAOpB,GAAQA,GAAQ,GACxF,MAAO,CACHqyB,WAAYA,EACZtuB,aAAc5D,EACduiC,QAASA,GAGjB,SAAS5R,IACL,OAAO,EAAItL,EAAMG,iBAAiB,CAC9BmpB,YAAa,WACT,IAAI5E,EAAgBxrC,KAChB8F,EAASykC,EAAUiB,GACnBxlC,EAAewkC,EAAgBgB,GACnClB,EAAsBxkC,GAAQ,EAAIkhB,EAAaspB,wBAAwB9E,GAAeziB,MAAOyiB,EAAexlC,IAC5G,EAAI0jC,EAAgBxoC,oBAAoB4E,EAAQ9F,KAAMgG,IAE1DohB,QAAS,WACDpnB,KAAKqwC,QAAQ3F,YACb1qC,KAAKqwC,QAAQnnB,SAASoiB,uBACjBjnC,KAAKokB,EAAiB8hB,EAAUvqC,SAG7C6vC,cAAe,WACX,IAAI/pC,EAASykC,EAAUvqC,MACnB8F,GACA9F,KAAKqwC,QAAQnnB,SAASoiB,uBACjBjnC,KAAKokB,EAAiB3iB,GAAQ,KAG3C2U,OAAQ,WACJ,OAAO,QApDnB1Z,EAAQwpC,UAAYA,EAQpBxpC,EAAQypC,gBAAkBA,EAU1BzpC,EAAQupC,sBAAwBA,EAsChCvpC,EAAQqxB,oBAAsBA,G,kCClF9B,oFAWI6f,EAAgB,SAAS3lC,EAAM4lC,GAC/B,IAAI9zB,EAAM8zB,EAAO5lC,GACjB,GAAI,eAAS8R,GACT,IACI,OAAOoQ,KAAKC,UAAUrQ,GACxB,MAAOjW,GACL,OAAOiW,EAGf,OAAOA,GAEP+zB,EAAkB,SAASpiB,EAAS1c,EAAU++B,EAAeF,GAC7D,IAAI9zB,EAAM6zB,EAAcliB,EAASmiB,GACjC,OAAO7+B,EAAS++B,EAAch0B,KAEvBkqB,EAAc,SAAS1mB,EAASC,GACvC,GAAID,EAAQphB,SAAWqhB,EAAQrhB,OAC3B,OAAO,EAEX,IAAK,IAAIH,EAAI,EAAGA,EAAIwhB,EAAQrhB,OAAQH,IAChC,GAAIuhB,EAAQvhB,KAAOwhB,EAAQxhB,GACvB,OAAO,EAGf,OAAO,GAEAgyC,EAAc,SAASC,EAAUj/B,EAAU6+B,EAAQK,GAC1D,IAAIC,EAAgB,GAChBJ,EAAgB,GAChBK,EAAa,EACbC,EAAc,EACd3hC,EAAS,GACbuhC,EAAS5tC,SAAQ,SAAU4H,EAAMwC,GAC7B,IAAIsP,EAAM6zB,EAAc3lC,EAAM4lC,GAC9BM,EAAcp0B,GAAOtP,KAEzBuE,EAAS3O,SAAQ,SAAU4H,EAAMwC,GAC7B,IAAIsP,EAAM6zB,EAAc3lC,EAAM4lC,GAC9BE,EAAch0B,GAAOtP,KAGzB,IADA,IAAI6jC,EAAYnhB,KAAKohB,IAAIN,EAAS9xC,OAAQ6S,EAAS7S,QAC1CsO,EAAQ,EAAGA,EAAQ6jC,EAAYF,EAAY3jC,IAAS,CACzD,IAAI+jC,EAAUx/B,EAASvE,GACnBgkC,EAAehkC,EAAQ2jC,EAAaC,EACpCK,EAAcT,EAASQ,GACvBE,GAAaH,GAAWE,IAAgBZ,EAAgBY,EAAa1/B,EAAU++B,EAAeF,GAClG,GAAIc,EACID,IACAhiC,EAAO1M,KAAK,CACRwqB,KAAM,SACNzQ,IAAK8zB,EAAOa,GACZjkC,MAAOA,EACPihB,QAASgjB,IAEbL,IACA5jC,SAED,CACH,IAAIsP,EAAM6zB,EAAcY,EAASX,GAC7Be,EAAWT,EAAcp0B,GACzB2R,EAAUuiB,EAASW,GACvB,GAAKljB,EAOE,IAAIkjB,IAAaH,EAWpB,OAVKP,EAAaxiB,EAAS8iB,IACvB9hC,EAAO1M,KAAK,CACRwqB,KAAM,SACNzjB,KAAMynC,EACNz0B,IAAK8zB,EAAOW,GACZ/jC,MAAOA,EACPihB,QAASA,SAbjB0iB,IACA1hC,EAAO1M,KAAK,CACRwqB,KAAM,SACNzjB,KAAMynC,EACN/jC,MAAOA,KAiBvB,OAAOiC","file":"js/chunk-bb5f5bd6.cde3dd7b.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar helpers_1 = require(\"./helpers\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? \"\".concat(this._name, \"[\").concat(this._collectionItemIndex, \"]\")\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? \"\".concat(this._ownerConfig.fullPath, \".\").concat(this.fullName)\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if ((0, helpers_1.isEqual)(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = (0, helpers_1.getOptionInfo)(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? \"\".concat(this.fullPath, \".\").concat(optionInfo.name) : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== value) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n if (!(0, helpers_1.isEqual)(value, vueInstance.$props[name])) {\n innerChanges[name] = value;\n vueInstance.$emit(\"update:\" + name, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._enterKeyHandler(e)\r\n },\r\n enter: this._enterKeyHandler,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _enterKeyHandler: function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n var itemData = this._getItemData($itemElement);\r\n if (null !== itemData && void 0 !== itemData && itemData.onClick) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n dataSource: null,\r\n _dataController: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this._initDataController();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup: function() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate: function(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._isFocusTarget(e.target)) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit)\r\n },\r\n _getActiveItem: function(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus: function(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements)\r\n },\r\n _prevItem: function($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem: function($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _isDisabled: $element => $element && \"true\" === $($element).attr(\"aria-disabled\"),\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n var {\r\n selectOnFocus: selectOnFocus\r\n } = this.option();\r\n var isTargetDisabled = this._isDisabled($target);\r\n if (selectOnFocus && !isTargetDisabled) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem: function($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged: function(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\" + property, \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n this._expectNextPageLoading();\r\n return this._dataController.loadNextPage()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer();\r\n this._inkRipple && delete this._inkRipple;\r\n this._resetActiveState()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _getPointerEvent: () => pointerEvents.down,\r\n _attachClickEvent() {\r\n var itemSelector = this._itemSelector();\r\n var pointerEvent = this._getPointerEvent();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerEventNamespace = addNamespace(pointerEvent, this.NAME);\r\n var pointerAction = new Action(args => {\r\n var {\r\n event: event\r\n } = args;\r\n this._itemPointerDownHandler(event)\r\n });\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, e => this._itemClickHandler(e));\r\n eventsEngine.on(this._itemContainer(), pointerEventNamespace, itemSelector, e => {\r\n pointerAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n })\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && this._isFocusTarget(null === $closestFocusable || void 0 === $closestFocusable ? void 0 : $closestFocusable.get(0))) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0)) && !domAdapter.isDocumentFragment($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n }\r\n },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n var _index$item;\r\n var itemIndex = null !== (_index$item = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _index$item ? _index$item : index;\r\n $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n $itemFrame.attr(this.option(\"_itemAttributes\"));\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done((function($itemContent) {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n }));\r\n return $itemFrame\r\n },\r\n _getItemContent: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"
\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(field + \"Expr\");\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData: function(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction: function() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: this._onItemTemplateRendered(itemTemplate, renderArgs)\r\n })\r\n },\r\n _onItemTemplateRendered: function() {\r\n return noop\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._dataController.isLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"
\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer());\r\n if (this.option(\"encodeNoDataText\")) {\r\n this._$noData.text(noDataText)\r\n } else {\r\n this._$noData.html(noDataText)\r\n }\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler: function(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler: function(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsWidth: function(items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!this._dataController.key()\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataController.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataController.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (this._dataController.store()) {\r\n key = this._dataController.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged: function(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount: function() {\r\n var items = that.option(\"items\");\r\n var totalCount = that._dataController.totalCount();\r\n return totalCount >= 0 ? totalCount : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n var _dataController$loadO;\r\n var dataController = that._dataController;\r\n options.customQueryParams = null === (_dataController$loadO = dataController.loadOptions()) || void 0 === _dataController$loadO ? void 0 : _dataController$loadO.customQueryParams;\r\n options.userData = dataController.userData();\r\n if (dataController.store()) {\r\n return dataController.loadFromStore(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n dataController.applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataController.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount: function(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (function(_, key) {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n }));\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup: function() {\r\n this._rendering = true;\r\n if (!this._dataController.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys: function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems: function() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n var itemSelectPromise = (new Deferred).resolve();\r\n var callBase = this.callBase;\r\n this._createAction(function(e) {\r\n var _this$_itemSelectHand;\r\n itemSelectPromise = null !== (_this$_itemSelectHand = this._itemSelectHandler(e.event)) && void 0 !== _this$_itemSelectHand ? _this$_itemSelectHand : itemSelectPromise\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler: function(e) {\r\n var _itemSelectPromise;\r\n var itemSelectPromise;\r\n if (!this.option(\"selectByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === (_itemSelectPromise = itemSelectPromise) || void 0 === _itemSelectPromise ? void 0 : _itemSelectPromise.promise()\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelectionAttribute($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelectionAttribute: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new Deferred;\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always(function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = dataController.store();\r\n if (!dataStore) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n this.option(\"disabled\", true);\r\n dataStore.remove(dataController.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataController.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange: function(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\r\n deferred.rejectWith(that)\r\n }))\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initDxExtensionComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"./component\");\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction initDxExtensionComponent() {\n return (0, vue_1.defineComponent)({\n extends: (0, component_1.initBaseComponent)(),\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n var nodeOptions = (0, vue_helper_1.getNodeOptions)(this);\n nodeOptions.$_isExtension = true;\n nodeOptions.$_attachTo = this.attachTo.bind(this);\n if (nodeOptions && nodeOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n });\n}\nexports.initDxExtensionComponent = initDxExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = exports.pullConfigComponents = exports.isFragment = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction isFragment(node) {\n var patchFlag = node.patchFlag;\n return patchFlag === 128 /* PatchFlags.KEYED_FRAGMENT */\n || patchFlag === 256 /* PatchFlags.UNKEYED_FRAGMENT */\n || patchFlag === 64 /* PatchFlags.STABLE_FRAGMENT */\n || patchFlag === -2 /* PatchFlags.BAIL */;\n}\nexports.isFragment = isFragment;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n if (isFragment(node) && Array.isArray(node.children)) {\n pullConfigComponents(node.children, nodes, ownerConfig);\n }\n if (!isFragment(node)) {\n nodes.push(node);\n }\n if (!node) {\n return;\n }\n var componentInfo = (0, vue_helper_1.getComponentInfo)(node);\n if (!componentInfo || !componentInfo.$_optionName) {\n return;\n }\n var componentChildren = (0, vue_helper_1.configurationChildren)(node);\n var initialValues = __assign(__assign({}, componentInfo.$_predefinedProps), (0, vue_helper_1.getNormalizedProps)(node.props || {}));\n var config = ownerConfig.createNested(componentInfo.$_optionName, initialValues, componentInfo.$_isCollectionItem, componentInfo.$_expectedChildren);\n node.$_config = config;\n node.$_innerChanges = {};\n if (componentChildren) {\n pullConfigComponents(componentChildren, nodes, config);\n }\n });\n}\nexports.pullConfigComponents = pullConfigComponents;\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue2Stategy = __importStar(require(\"./strategy/vue2/index\"));\nvar vue3Stategy = __importStar(require(\"./strategy/vue3/index\"));\nvar version_1 = require(\"./version\");\nvar strategy = (0, version_1.isVue3)() ? vue3Stategy : vue2Stategy;\nexports.createComponent = strategy.createComponent;\nexports.createConfigurationComponent = strategy.createConfigurationComponent;\nexports.createExtensionComponent = strategy.createExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n deepWatch: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar config_1 = require(\"./config\");\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n var slots = (0, templates_discovering_1.discover)(this._component);\n this._slots = __assign(__assign({}, this._slots), slots);\n if (!(0, helpers_1.allKeysAreEqual)(this._templates, slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var scopeData = (0, config_1.getOption)(\"useLegacyTemplateEngine\")\n ? data.model\n : { data: data.model, index: data.index };\n var container = data.container.get ? data.container.get(0) : data.container;\n var placeholder = document.createElement(\"div\");\n container.appendChild(placeholder);\n var mountedTemplate = (0, templates_discovering_1.mountTemplate)(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n (0, events_1.one)(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n else {\n (0, events_1.one)(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidget from \"./ui.collection_widget.edit\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n var _this$_dataController;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !this._dataController.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n }, null === (_this$_dataController = this._dataController) || void 0 === _this$_dataController ? void 0 : _this$_dataController.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataController.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n var $itemContainer = this._getItemContainer(change.data);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data, $itemContainer);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _getItemContainer: function(changeData) {\r\n return this._itemContainer()\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataController = this._dataController;\r\n var paginate = dataController.paginate();\r\n var group = dataController.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return this._getPlainItems().indexOf(itemData)\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = keys.length; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"../../component\");\nvar configuration_component_1 = require(\"../../configuration-component\");\nvar extension_component_1 = require(\"../../extension-component\");\nvar vue_helper_1 = require(\"../../vue-helper\");\nfunction createComponent(config) {\n config.extends = (0, component_1.initDxComponent)();\n (0, vue_helper_1.setCompatOptions)(config);\n if (config.model) {\n (0, vue_helper_1.setVModel)(config);\n }\n return (0, vue_1.defineComponent)(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = (0, configuration_component_1.initDxConfiguration)();\n (0, vue_helper_1.setCompatOptions)(config);\n return (0, vue_1.defineComponent)(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = (0, extension_component_1.initDxExtensionComponent)();\n (0, vue_helper_1.setCompatOptions)(config);\n return (0, vue_1.defineComponent)(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = exports.getTemplatePropName = void 0;\nfunction getTemplatePropName(props, templateName) {\n for (var propName in props) {\n if (props[propName] === templateName) {\n return propName;\n }\n }\n return templateName;\n}\nexports.getTemplatePropName = getTemplatePropName;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n if (value) {\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n }\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = void 0;\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = \"Template must have a single root node.\";\n","/**\r\n * DevExtreme (esm/ui/collection/data_controller.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataControllerMock = {\r\n load: () => Deferred().reject(),\r\n loadSingle: () => Deferred().reject(),\r\n loadFromStore: () => Deferred().reject(),\r\n loadNextPage: () => Deferred().reject(),\r\n loadOptions: noop,\r\n userData: noop,\r\n cancel: noop,\r\n cancelAll: noop,\r\n filter: noop,\r\n addSearchFilter: noop,\r\n group: noop,\r\n paginate: noop,\r\n pageSize: noop,\r\n pageIndex: noop,\r\n resetDataSourcePageIndex: noop,\r\n totalCount: noop,\r\n isLastPage: noop,\r\n isLoading: noop,\r\n isLoaded: noop,\r\n searchValue: noop,\r\n searchOperation: noop,\r\n searchExpr: noop,\r\n select: noop,\r\n key: noop,\r\n keyOf: noop,\r\n store: noop,\r\n items: noop,\r\n applyMapFunction: noop,\r\n getDataSource: noop,\r\n reload: noop,\r\n on: noop,\r\n off: noop\r\n};\r\nclass DataController {\r\n constructor(dataSource) {\r\n if (!dataSource) {\r\n return DataControllerMock\r\n }\r\n this._dataSource = dataSource\r\n }\r\n load() {\r\n return this._dataSource.load()\r\n }\r\n loadSingle(propName, propValue) {\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = this.key()\r\n }\r\n return this._dataSource.loadSingle(propName, propValue)\r\n }\r\n loadFromStore(loadOptions) {\r\n return this.store().load(loadOptions)\r\n }\r\n loadNextPage() {\r\n this.pageIndex(1 + this.pageIndex());\r\n return this.load()\r\n }\r\n loadOptions() {\r\n return this._dataSource.loadOptions()\r\n }\r\n userData() {\r\n return this._dataSource._userData\r\n }\r\n cancel(operationId) {\r\n this._dataSource.cancel(operationId)\r\n }\r\n cancelAll() {\r\n this._dataSource.cancelAll()\r\n }\r\n filter(filter) {\r\n return this._dataSource.filter(filter)\r\n }\r\n addSearchFilter(storeLoadOptions) {\r\n this._dataSource._addSearchFilter(storeLoadOptions)\r\n }\r\n group(group) {\r\n return this._dataSource.group(group)\r\n }\r\n paginate() {\r\n return this._dataSource.paginate()\r\n }\r\n pageSize() {\r\n return this._dataSource._pageSize\r\n }\r\n pageIndex(pageIndex) {\r\n return this._dataSource.pageIndex(pageIndex)\r\n }\r\n resetDataSourcePageIndex() {\r\n if (this.pageIndex()) {\r\n this.pageIndex(0);\r\n this.load()\r\n }\r\n }\r\n totalCount() {\r\n return this._dataSource.totalCount()\r\n }\r\n isLastPage() {\r\n return this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n }\r\n isLoading() {\r\n return this._dataSource.isLoading()\r\n }\r\n isLoaded() {\r\n return this._dataSource.isLoaded()\r\n }\r\n searchValue(value) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchValue()\r\n }\r\n return this._dataSource.searchValue(value)\r\n }\r\n searchOperation(operation) {\r\n return this._dataSource.searchOperation(operation)\r\n }\r\n searchExpr(expr) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchExpr()\r\n }\r\n return this._dataSource.searchExpr(expr)\r\n }\r\n select() {\r\n return this._dataSource.select(...arguments)\r\n }\r\n key() {\r\n return this._dataSource.key()\r\n }\r\n keyOf(item) {\r\n return this.store().keyOf(item)\r\n }\r\n store() {\r\n return this._dataSource.store()\r\n }\r\n items() {\r\n return this._dataSource.items()\r\n }\r\n applyMapFunction(data) {\r\n return this._dataSource._applyMapFunction(data)\r\n }\r\n getDataSource() {\r\n return this._dataSource || null\r\n }\r\n reload() {\r\n return this._dataSource.reload()\r\n }\r\n on(event, handler) {\r\n this._dataSource.on(event, handler)\r\n }\r\n off(event, handler) {\r\n this._dataSource.off(event, handler)\r\n }\r\n}\r\nexport default DataController;\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nimport DataController from \"./ui/collection/data_controller\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers();\r\n this._initDataController()\r\n }\r\n },\r\n _initDataController: function() {\r\n var _this$option;\r\n var dataController = null === (_this$option = this.option) || void 0 === _this$option ? void 0 : _this$option.call(this, \"_dataController\");\r\n var dataSource = this._dataSource;\r\n if (dataController) {\r\n this._dataController = dataController\r\n } else {\r\n this._dataController = new DataController(dataSource)\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n useLegacyTemplateEngine: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discover = exports.mountTemplate = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar errors_1 = require(\"./errors\");\nvar TEMPLATE_PROP = \"template\";\nvar Vue = VueType.default || VueType;\nfunction asConfigurable(component) {\n if (!component.$vnode) {\n return undefined;\n }\n var configurable = component.$vnode.componentOptions;\n if (!configurable.$_config || !configurable.$_config.name) {\n return undefined;\n }\n return configurable;\n}\nfunction hasTemplate(component) {\n return TEMPLATE_PROP in component.$props && (component.$vnode.data && component.$vnode.data.scopedSlots);\n}\nfunction discover(component) {\n var templates = {};\n for (var slotName in component.$scopedSlots) {\n if (slotName === \"default\" && component.$slots.default) {\n continue;\n }\n var slot = component.$scopedSlots[slotName];\n if (!slot) {\n continue;\n }\n templates[slotName] = slot;\n }\n for (var _i = 0, _a = component.$children; _i < _a.length; _i++) {\n var childComponent = _a[_i];\n var configurable = asConfigurable(childComponent);\n if (!configurable) {\n continue;\n }\n var defaultSlot = childComponent.$scopedSlots.default;\n if (!defaultSlot || !hasTemplate(childComponent)) {\n continue;\n }\n var templateName = \"\".concat(configurable.$_config.fullPath, \".\").concat(TEMPLATE_PROP);\n templates[templateName] = defaultSlot;\n }\n return templates;\n}\nexports.discover = discover;\nfunction mountTemplate(getSlot, parent, data, name, placeholder) {\n return new Vue({\n el: placeholder,\n name: name,\n inject: [\"eventBus\"],\n parent: parent,\n created: function () {\n var _this = this;\n this.eventBus.$on(\"updated\", function () {\n _this.$forceUpdate();\n });\n },\n render: function (createElement) {\n var content = getSlot()(data);\n if (!content) {\n return createElement(\"div\");\n }\n if (content.length > 1) {\n throw new Error(errors_1.TEMPLATE_MULTIPLE_ROOTS_ERROR);\n }\n return content[0];\n },\n destroyed: function () {\n // T857821\n this.eventBus.$off(\"updated\");\n }\n });\n}\nexports.mountTemplate = mountTemplate;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar vue_1 = require(\"vue\");\nvar config_1 = require(\"./config\");\nvar helpers_1 = require(\"./helpers\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? \"\".concat(this._name, \"[\").concat(this._collectionItemIndex, \"]\")\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? \"\".concat(this._ownerConfig.fullPath, \".\").concat(this.fullName)\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if ((0, helpers_1.isEqual)(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = (0, helpers_1.getOptionInfo)(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? \"\".concat(this.fullPath, \".\").concat(optionInfo.name) : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n var rawValue = (0, vue_1.toRaw)(value);\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== rawValue) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n }, { deep: (0, config_1.getOption)(\"deepWatch\") });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction hasProp(vueInstance, propName) {\n var props = vueInstance.$options.props;\n return props && props.hasOwnProperty(propName);\n}\nfunction hasVModelValue(options, props, vnode) {\n var _a;\n return options.model\n && props.hasOwnProperty(vue_helper_1.VMODEL_NAME)\n && ((_a = vnode === null || vnode === void 0 ? void 0 : vnode.props) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(vue_helper_1.VMODEL_NAME));\n}\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n var _a;\n var props = vueInstance.$props;\n var vnode = (_a = vueInstance === null || vueInstance === void 0 ? void 0 : vueInstance.$) === null || _a === void 0 ? void 0 : _a.vnode;\n if (hasProp(vueInstance, name) && !(0, helpers_1.isEqual)(value, props[name]) && vueInstance.$emit) {\n innerChanges[name] = (0, vue_1.toRaw)(value);\n var eventName = name === \"value\" && hasVModelValue(vueInstance.$options, props, vnode) ?\n \"update:\".concat(vue_helper_1.VMODEL_NAME) :\n \"update:\".concat(name);\n vueInstance.$emit(eventName, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isVue3 = exports.getVueVersion = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nfunction getVueVersion() {\n var currentVersion = Vue.version;\n return Number(currentVersion.split(\".\")[0]);\n}\nexports.getVueVersion = getVueVersion;\nfunction isVue3() {\n return getVueVersion() === 3;\n}\nexports.isVue3 = isVue3;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n this._slots = __assign({}, (0, templates_discovering_1.discover)(this._component));\n if (!(0, helpers_1.allKeysAreEqual)(this._templates, this._slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var rendered = (function (onRendered, counter) {\n if (counter === void 0) { counter = 0; }\n return function () {\n if (counter === 1 && onRendered) {\n onRendered();\n }\n counter++;\n };\n })(data.onRendered);\n var scopeData = { data: data.model, index: data.index, onRendered: rendered };\n var placeholder = document.createElement(\"div\");\n var container = data.container.get ? data.container.get(0) : data.container;\n container.appendChild(placeholder);\n var mountedTemplate = (0, templates_discovering_1.mountTemplate)(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n container.removeChild(placeholder);\n while (placeholder.firstChild) {\n container.appendChild(placeholder.firstChild);\n }\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n (0, events_1.one)(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$.appContext.app.unmount.bind(mountedTemplate));\n }\n else {\n (0, events_1.one)(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$.appContext.app.unmount.bind(mountedTemplate));\n }\n rendered();\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = void 0;\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n nodes.push(node);\n if (!node.componentOptions) {\n return;\n }\n var configComponent = node.componentOptions.Ctor;\n if (!configComponent.$_optionName) {\n return;\n }\n var initialValues = __assign(__assign({}, configComponent.$_predefinedProps), node.componentOptions.propsData);\n var config = ownerConfig.createNested(configComponent.$_optionName, initialValues, configComponent.$_isCollectionItem, configComponent.$_expectedChildren);\n node.componentOptions.$_config = config;\n node.componentOptions.$_innerChanges = {};\n if (node.componentOptions.children) {\n pullConfigComponents(node.componentOptions.children, nodes, config);\n }\n });\n}\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = exports.getTemplatePropName = void 0;\nfunction getTemplatePropName(props, templateName) {\n for (var propName in props) {\n if (props[propName] === templateName) {\n return propName;\n }\n }\n return templateName;\n}\nexports.getTemplatePropName = getTemplatePropName;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n if (value) {\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n }\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.DX_TEMPLATE_WRAPPER_CLASS = void 0;\nvar DX_TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\nexports.DX_TEMPLATE_WRAPPER_CLASS = DX_TEMPLATE_WRAPPER_CLASS;\nvar DX_REMOVE_EVENT = \"dxremove\";\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n getKeyHash,\r\n noop,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default class SelectionStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n }\r\n _clearItemKeys() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n }\r\n validate() {}\r\n _setOption(name, value) {\r\n this.options[name] = value\r\n }\r\n onSelectionChanged() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n }\r\n equalKeys(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n }\r\n getSelectableItems(items) {\r\n return items.filter((function(item) {\r\n return !(null !== item && void 0 !== item && item.disabled)\r\n }))\r\n }\r\n _clearSelection(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n }\r\n _removeTemplateProperty(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n }\r\n _loadFilteredData(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = new Deferred;\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done((function(items) {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n })).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n }\r\n updateSelectedItemKeyHash(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n }\r\n _isAnyItemSelected(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n }\r\n _getFullSelectAllState() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null !== item && void 0 !== item && item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n }\r\n _getVisibleSelectAllState() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n } else {\r\n return false\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.deferred.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default class DeferredStrategy extends SelectionStrategy {\r\n getSelectedItems() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n }\r\n getSelectedItemKeys() {\r\n var d = new Deferred;\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done((function(items) {\r\n var keys = items.map((function(item) {\r\n return that.options.keyOf(item)\r\n }));\r\n d.resolve(keys)\r\n })).fail(d.reject);\r\n return d.promise()\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i], isSelectAll, !preserve)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n }\r\n setSelectedItems(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n isItemDataSelected(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n }\r\n isItemKeySelected(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n }\r\n _getKeyExpr() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n }\r\n _normalizeKey(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n }\r\n _getFilterByKey(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n }\r\n addSelectedItem(key, isSelectAll, skipFilter) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter, isSelectAll, skipFilter)\r\n }\r\n removeSelectedItem(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n }\r\n validate() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n }\r\n _findSubFilter(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _isLastSubFilter(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n }\r\n _addFilterOperator(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n }\r\n _denormalizeFilter(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n }\r\n _isOnlyNegativeFiltersLeft(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n } else {\r\n return \"and\" === filterItem\r\n }\r\n })\r\n }\r\n _addSelectionFilter(isDeselect, filter, isSelectAll, skipFilter) {\r\n var _selectionFilter;\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (null !== (_selectionFilter = selectionFilter) && void 0 !== _selectionFilter && _selectionFilter.length && !skipFilter) {\r\n var removedIndex = this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var shouldCleanFilter = isDeselect && (-1 !== removedIndex || -1 !== filterIndex) && this._isOnlyNegativeFiltersLeft(selectionFilter);\r\n if (shouldCleanFilter) {\r\n selectionFilter = []\r\n }\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved\r\n }\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation);\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n }\r\n _normalizeFilter(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n }\r\n _removeFilterByIndex(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n }\r\n _isSimpleKeyFilter(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n }\r\n _isKeyFilter(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n }\r\n _hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n _removeSameFilter(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n } else {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n }\r\n getSelectAllState() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var componentFilter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n var filter = componentFilter ? [componentFilter, \"and\", selectionFilter] : selectionFilter;\r\n return this._loadFilteredData(filter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var forceCombinedFilter = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if ((forceCombinedFilter || isSelectAll) && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.standard.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n removeDuplicates,\r\n getUniqueValues\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../core/utils/array_compare\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n SelectionFilterCreator\r\n} from \"../../core/utils/selection_filter\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nexport default class StandardStrategy extends SelectionStrategy {\r\n constructor(options) {\r\n super(options);\r\n this._initSelectedItemKeyHash()\r\n }\r\n _initSelectedItemKeyHash() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n }\r\n getSelectedItemKeys() {\r\n return this.options.selectedItemKeys.slice(0)\r\n }\r\n getSelectedItems() {\r\n return this.options.selectedItems.slice(0)\r\n }\r\n _preserveSelectionUpdate(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n }\r\n _batchRemoveSelectedItems(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n _loadSelectedItemsCore(keys, isDeselect, isSelectAll, filter) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var deferred = new Deferred;\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter, forceCombinedFilter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n }\r\n _replaceSelectionUpdate(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n }\r\n _warnOnIncorrectKeys(keys) {\r\n var allowNullValue = this.options.allowNullValue;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n }\r\n _isMultiSelectEnabled() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n }\r\n _requestInProgress() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n }\r\n _concatRequestsItems(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n }\r\n _collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n }\r\n _updateKeysByLastRequestData(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = removeDuplicates(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n }\r\n _loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var that = this;\r\n var deferred = new Deferred;\r\n var filter = that.options.filter();\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always((function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter, forceCombinedFilter).done(deferred.resolve).fail(deferred.reject)\r\n }));\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : false;\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys, forceCombinedFilter);\r\n deferred.done((function(items) {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n }));\r\n return deferred\r\n }\r\n addSelectedItem(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n }\r\n _getSelectedIndexByKey(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _getSelectedIndexByHash(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter((function(index) {\r\n return !ignoreIndicesMap[index]\r\n }))\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n }\r\n _indexOfSelectedItemKey(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n }\r\n _shiftSelectedKeyIndices(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n }\r\n removeSelectedItem(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n }\r\n _updateAddedItemKeys(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n }\r\n _updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n }\r\n _isItemSelectionInProgress(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.includes(key)\r\n } else {\r\n return false\r\n }\r\n }\r\n _getKeyHash(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n }\r\n setSelectedItems(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n }\r\n isItemDataSelected(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n }\r\n isItemKeySelected(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n }\r\n getSelectAllState(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var keyExpr = this.options.key();\r\n var keys = this.getSelectedItemKeys();\r\n var filter = this.options.filter();\r\n if (!keys.length) {\r\n return Deferred().resolve([])\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(keyExpr, filter, true);\r\n return this._loadFilteredData(combinedFilter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport deferredStrategy from \"./selection.strategy.deferred\";\r\nimport standardStrategy from \"./selection.strategy.standard\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport default class Selection {\r\n constructor(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n }\r\n validate() {\r\n this._selectionStrategy.validate()\r\n }\r\n getSelectedItemKeys() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n }\r\n getSelectedItems() {\r\n return this._selectionStrategy.getSelectedItems()\r\n }\r\n selectionFilter(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n }\r\n setSelection(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n }\r\n select(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n }\r\n deselect(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n keys = null !== (_keys = keys) && void 0 !== _keys ? _keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n _addSelectedItem(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n }\r\n _removeSelectedItem(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n }\r\n _setSelectedItems(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n }\r\n onSelectionChanged() {\r\n this._selectionStrategy.onSelectionChanged()\r\n }\r\n changeItemSelection(itemIndex, keys, setFocusOnly) {\r\n var _this$options$allowLo, _this$options;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var allowLoadByRange = null === (_this$options$allowLo = (_this$options = this.options).allowLoadByRange) || void 0 === _this$options$allowLo ? void 0 : _this$options$allowLo.call(_this$options);\r\n var indexOffset;\r\n var focusedItemNotInLoadedRange = false;\r\n var shiftFocusedItemNotInLoadedRange = false;\r\n var itemIsNotInLoadedRange = index => index >= 0 && !items.filter(it => it.loadIndex === index).length;\r\n if (allowLoadByRange && isDefined(item)) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex;\r\n focusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._focusedItemIndex);\r\n if (isDefined(this._shiftFocusedItemIndex)) {\r\n shiftFocusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._shiftFocusedItemIndex)\r\n }\r\n }\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (focusedItemNotInLoadedRange || shiftFocusedItemNotInLoadedRange) {\r\n isSelectedItemsChanged = itemIndex !== this._shiftFocusedItemIndex || this._focusedItemIndex !== this._shiftFocusedItemIndex;\r\n if (isSelectedItemsChanged) {\r\n deferred = this.changeItemSelectionWhenShiftKeyInVirtualPaging(itemIndex)\r\n }\r\n } else {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset)\r\n }\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n if (!setFocusOnly) {\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n when(deferred).done(() => {\r\n this._focusedItemIndex = itemIndex;\r\n !setFocusOnly && this.onSelectionChanged()\r\n });\r\n return true\r\n }\r\n }\r\n isDataItem(item) {\r\n return this.options.isSelectableItem(item)\r\n }\r\n isSelectable() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n }\r\n isItemDataSelected(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n }\r\n isItemSelected(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n }\r\n _resetItemSelectionWhenShiftKeyPressed() {\r\n delete this._shiftFocusedItemIndex\r\n }\r\n _resetFocusedItemIndex() {\r\n this._focusedItemIndex = -1\r\n }\r\n changeItemSelectionWhenShiftKeyInVirtualPaging(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = new Deferred;\r\n var indexOffset = loadOptions.skip;\r\n this.options.load(loadOptions).done(items => {\r\n this.changeItemSelectionWhenShiftKeyPressed(loadIndex, items, indexOffset);\r\n deferred.resolve()\r\n });\r\n return deferred.promise()\r\n }\r\n changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var indexOffsetDefined = isDefined(indexOffset);\r\n var index = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[index];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n var startIndex;\r\n var endIndex;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? itemIndex - indexOffset : itemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if ((indexOffsetDefined || this.isDataItem(focusedItem)) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n }\r\n clearSelectedItems() {\r\n this._setSelectedItems([], [])\r\n }\r\n selectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n }\r\n deselectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n }\r\n _onePageSelectAll(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n }\r\n getSelectAllState(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selectionStrategy.loadSelectedItemsWithFilter()\r\n }\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseComponent = exports.DxComponent = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar events_1 = require(\"devextreme/events\");\nvar children_processing_1 = require(\"./children-processing\");\nvar configuration_1 = __importStar(require(\"./configuration\"));\nvar configuration_component_1 = require(\"./configuration-component\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar Vue = VueType.default || VueType;\nvar BaseComponent = function () { return Vue.extend({\n inheritAttrs: false,\n data: function () {\n return {\n eventBus: new Vue()\n };\n },\n provide: function () {\n return {\n eventBus: this.eventBus\n };\n },\n render: function (createElement) {\n var children = [];\n if (this.$_config.cleanNested) {\n this.$_config.cleanNested();\n }\n (0, children_processing_1.pullAllChildren)(this.$slots.default, children, this.$_config);\n this.$_processChildren(children);\n return createElement(\"div\", {\n attrs: { id: this.$attrs.id }\n }, children);\n },\n beforeUpdate: function () {\n this.$_config.setPrevNestedOptions(this.$_config.getNestedOptionValues());\n },\n updated: function () {\n var _a, _b;\n this.$children.forEach(function (child) { return (0, configuration_component_1.initOptionChangedFunc)((0, configuration_component_1.getConfig)(child), child, (0, configuration_component_1.getInnerChanges)(child)); });\n this.$_templatesManager.discover();\n this.$_instance.beginUpdate();\n this.$_applyConfigurationChanges();\n if (this.$_templatesManager.isDirty) {\n this.$_instance.option(\"integrationOptions.templates\", this.$_templatesManager.templates);\n var props = (_b = (_a = this.$vnode) === null || _a === void 0 ? void 0 : _a.componentOptions) === null || _b === void 0 ? void 0 : _b.propsData;\n for (var _i = 0, _c = Object.keys(this.$_templatesManager.templates); _i < _c.length; _i++) {\n var name_1 = _c[_i];\n this.$_instance.option((0, helpers_1.getTemplatePropName)(props, name_1), name_1);\n }\n this.$_templatesManager.resetDirtyFlag();\n }\n for (var _d = 0, _e = Object.keys(this.$_pendingOptions); _d < _e.length; _d++) {\n var name_2 = _e[_d];\n this.$_instance.option(name_2, this.$_pendingOptions[name_2]);\n }\n this.$_pendingOptions = {};\n this.$_instance.endUpdate();\n this.eventBus.$emit(\"updated\");\n },\n beforeDestroy: function () {\n var instance = this.$_instance;\n if (instance) {\n (0, events_1.triggerHandler)(this.$el, constants_1.DX_REMOVE_EVENT);\n instance.dispose();\n }\n },\n created: function () {\n var _this = this;\n this.$_config = new configuration_1.default(function (n, v) { return _this.$_pendingOptions[n] = v; }, null, this.$options.propsData && __assign({}, this.$options.propsData), this.$_expectedChildren);\n this.$_innerChanges = {};\n this.$_config.init(this.$props && Object.keys(this.$props));\n },\n methods: {\n $_applyConfigurationChanges: function () {\n var _this = this;\n this.$_config.componentsCountChanged.forEach(function (_a) {\n var optionPath = _a.optionPath, isCollection = _a.isCollection, removed = _a.removed;\n var options = _this.$_config.getNestedOptionValues();\n if (!isCollection && removed) {\n _this.$_instance.resetOption(optionPath);\n }\n else {\n _this.$_instance.option(optionPath, (0, helpers_1.getOptionValue)(options, optionPath));\n }\n });\n this.$_config.cleanComponentsCountChanged();\n },\n $_createWidget: function (element) {\n var thisComponent = this;\n thisComponent.$_pendingOptions = {};\n thisComponent.$_templatesManager = new templates_manager_1.TemplatesManager(this);\n var config = this.$_config;\n var options = __assign(__assign(__assign(__assign({}, this.$options.propsData), config.initialValues), config.getNestedOptionValues()), this.$_getIntegrationOptions());\n var instance = new this.$_WidgetClass(element, options);\n thisComponent.$_instance = instance;\n instance.on(\"optionChanged\", function (args) { return config.onOptionChanged(args); });\n (0, configuration_1.setEmitOptionChangedFunc)(config, this, this.$_innerChanges);\n (0, configuration_1.bindOptionWatchers)(config, this, this.$_innerChanges);\n this.$_createEmitters(instance);\n },\n $_getIntegrationOptions: function () {\n var _a, _b;\n var result = __assign({ integrationOptions: {\n watchMethod: this.$_getWatchMethod(),\n } }, this.$_getExtraIntegrationOptions());\n if (this.$_templatesManager.isDirty) {\n var templates = this.$_templatesManager.templates;\n result.integrationOptions.templates = templates;\n var props = (_b = (_a = this.$vnode) === null || _a === void 0 ? void 0 : _a.componentOptions) === null || _b === void 0 ? void 0 : _b.propsData;\n for (var _i = 0, _c = Object.keys(templates); _i < _c.length; _i++) {\n var name_3 = _c[_i];\n result[(0, helpers_1.getTemplatePropName)(props, name_3)] = name_3;\n }\n this.$_templatesManager.resetDirtyFlag();\n }\n return result;\n },\n $_getWatchMethod: function () {\n var _this = this;\n return function (valueGetter, valueChangeCallback, options) {\n options = options || {};\n if (!options.skipImmediate) {\n valueChangeCallback(valueGetter());\n }\n return _this.$watch(function () {\n return valueGetter();\n }, function (newValue, oldValue) {\n if ((0, helpers_1.toComparable)(oldValue) !== (0, helpers_1.toComparable)(newValue) || options.deep) {\n valueChangeCallback(newValue);\n }\n }, {\n deep: options.deep\n });\n };\n },\n $_getExtraIntegrationOptions: function () {\n return {};\n },\n $_processChildren: function (_children) {\n return;\n },\n $_createEmitters: function (instance) {\n var _this = this;\n Object.keys(this.$listeners).forEach(function (listenerName) {\n var eventName = (0, helpers_1.camelize)(listenerName);\n instance.on(eventName, function (e) {\n _this.$emit(listenerName, e);\n });\n });\n }\n }\n}); };\nexports.BaseComponent = BaseComponent;\nfunction cleanWidgetNode(node) {\n var removedNodes = [];\n (0, helpers_1.forEachChildNode)(node, function (childNode) {\n var parent = childNode.parentNode;\n var isExtension = childNode.hasAttribute && childNode.hasAttribute(\"isExtension\");\n if ((childNode.nodeName === \"#comment\" || isExtension) && parent) {\n removedNodes.push(childNode);\n parent.removeChild(childNode);\n }\n });\n return removedNodes;\n}\nfunction restoreNodes(el, nodes) {\n nodes.forEach(function (node) {\n el.appendChild(node);\n });\n}\nvar DxComponent = function () { return BaseComponent().extend({\n methods: {\n $_getExtraIntegrationOptions: function () {\n return {\n onInitializing: function () {\n this.beginUpdate();\n }\n };\n },\n $_processChildren: function (children) {\n children.forEach(function (childNode) {\n if (!childNode.componentOptions) {\n return;\n }\n childNode.componentOptions.$_hasOwner = true;\n });\n },\n },\n mounted: function () {\n var _this = this;\n var nodes = cleanWidgetNode(this.$el);\n this.$_createWidget(this.$el);\n this.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n if (this.$slots && this.$slots.default) {\n this.$slots.default.forEach(function (child) {\n var childExtension = child.componentInstance;\n if (childExtension && childExtension.$_isExtension) {\n childExtension.attachTo(_this.$el);\n }\n });\n }\n }\n}); };\nexports.DxComponent = DxComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discover = exports.mountTemplate = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nvar vue_1 = require(\"vue\");\nvar TEMPLATE_PROP = \"template\";\nfunction asConfigurable(component) {\n var componentOptions = component;\n if (!componentOptions) {\n return;\n }\n if (!componentOptions.$_config || !componentOptions.$_config.name) {\n return undefined;\n }\n return componentOptions;\n}\nfunction hasTemplate(component) {\n return TEMPLATE_PROP in component.type.props && (0, vue_helper_1.configurationTemplate)(component);\n}\nfunction discover(component) {\n var templates = {};\n var namedTeplates = (0, vue_helper_1.declaredTemplates)(component);\n for (var slotName in namedTeplates) {\n if (slotName === \"default\" && component.$slots.default) {\n continue;\n }\n var slot = namedTeplates[slotName];\n if (!slot) {\n continue;\n }\n templates[slotName] = slot;\n }\n var componentChildren = (0, vue_helper_1.getChildren)(component);\n for (var _i = 0, componentChildren_1 = componentChildren; _i < componentChildren_1.length; _i++) {\n var childComponent = componentChildren_1[_i];\n var configurable = asConfigurable(childComponent);\n if (!configurable) {\n continue;\n }\n var defaultSlot = (0, vue_helper_1.configurationDefaultTemplate)(childComponent);\n if (!defaultSlot || !hasTemplate(childComponent)) {\n continue;\n }\n var templateName = \"\".concat(configurable.$_config.fullPath, \".\").concat(TEMPLATE_PROP);\n templates[templateName] = defaultSlot;\n }\n return templates;\n}\nexports.discover = discover;\nfunction clearConfiguration(content) {\n var newContent = [];\n content.forEach(function (item) {\n var configurable = (0, vue_helper_1.getConfigurationOptions)(item);\n if (!configurable || !configurable.$_optionName) {\n newContent.push(item);\n }\n });\n return newContent;\n}\nfunction mountTemplate(getSlot, parent, data, name, placeholder) {\n return (0, vue_helper_1.mount)({\n name: name,\n inject: [\"eventBus\"],\n created: function () {\n this.eventBus.add(this.$_updatedHandler);\n },\n mounted: function () {\n data.onRendered();\n },\n unmounted: function () {\n this.eventBus.remove(this.$_updatedHandler);\n },\n methods: {\n $_updatedHandler: function () {\n this.$forceUpdate();\n }\n },\n render: function () {\n var content = clearConfiguration(getSlot()(data));\n if (!content) {\n return (0, vue_1.h)(\"div\");\n }\n return content.length > 1 ? content : content[0];\n }\n }, parent, placeholder);\n}\nexports.mountTemplate = mountTemplate;\n","/**\r\n * DevExtreme (esm/ui/collection/item.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render: function() {\r\n var $placeholder = $(\"
\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._$element.attr(\"aria-disabled\", !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.dispose()\r\n }))\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxExtensionComponent = void 0;\nvar component_1 = require(\"./component\");\nvar DxExtensionComponent = function () { return (0, component_1.BaseComponent)().extend({\n created: function () {\n this.$_isExtension = true;\n },\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n if (this.$vnode && this.$vnode.componentOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n}); };\nexports.DxExtensionComponent = DxExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nvar component_1 = require(\"./component\");\nvar configuration_component_1 = require(\"./configuration-component\");\nvar extension_component_1 = require(\"./extension-component\");\nfunction createComponent(config) {\n config.extends = (0, component_1.DxComponent)();\n return Vue.extend(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = (0, configuration_component_1.DxConfiguration)();\n return Vue.extend(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = (0, extension_component_1.DxExtensionComponent)();\n return Vue.extend(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initBaseComponent = exports.initDxComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar callbacks_1 = __importDefault(require(\"devextreme/core/utils/callbacks\"));\nvar events_1 = require(\"devextreme/events\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar children_processing_1 = require(\"./children-processing\");\nvar configuration_1 = __importStar(require(\"./configuration\"));\nvar configuration_component_1 = require(\"./configuration-component\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar includeAttrs = [\"id\", \"class\", \"style\"];\nfunction getAttrs(attrs) {\n var attributes = {};\n includeAttrs.forEach(function (attr) {\n var attrValue = attrs[attr];\n if (attrValue) {\n attributes[attr] = attrValue;\n }\n });\n return attributes;\n}\nfunction initBaseComponent() {\n return (0, vue_1.defineComponent)({\n inheritAttrs: false,\n data: function () {\n return {\n eventBus: (0, callbacks_1.default)()\n };\n },\n provide: function () {\n return {\n eventBus: this.eventBus\n };\n },\n render: function () {\n var thisComponent = this;\n var children = [];\n if (thisComponent.$_config.cleanNested) {\n thisComponent.$_config.cleanNested();\n }\n (0, children_processing_1.pullAllChildren)((0, vue_helper_1.defaultSlots)(this), children, thisComponent.$_config);\n this.$_processChildren(children);\n return (0, vue_1.h)(\"div\", __assign({}, getAttrs(this.$attrs)), children);\n },\n beforeUpdate: function () {\n var thisComponent = this;\n thisComponent.$_config.setPrevNestedOptions(thisComponent.$_config.getNestedOptionValues());\n },\n updated: function () {\n var thisComponent = this;\n var nodes = cleanWidgetNode(this.$el);\n (0, vue_helper_1.getChildren)(thisComponent).forEach(function (child) {\n var _a;\n (0, configuration_component_1.initOptionChangedFunc)(child.$_config, child.type.props || {}, (_a = child === null || child === void 0 ? void 0 : child.component) === null || _a === void 0 ? void 0 : _a.proxy, child.$_innerChanges);\n });\n thisComponent.$_templatesManager.discover();\n thisComponent.$_instance.beginUpdate();\n this.$_applyConfigurationChanges();\n if (thisComponent.$_templatesManager.isDirty) {\n thisComponent.$_instance.option(\"integrationOptions.templates\", thisComponent.$_templatesManager.templates);\n var props = thisComponent.$.vnode.props;\n for (var _i = 0, _a = Object.keys(thisComponent.$_templatesManager.templates); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n thisComponent.$_instance.option((0, helpers_1.getTemplatePropName)(props, name_1), name_1);\n }\n thisComponent.$_templatesManager.resetDirtyFlag();\n }\n for (var _b = 0, _c = Object.keys(thisComponent.$_pendingOptions); _b < _c.length; _b++) {\n var name_2 = _c[_b];\n thisComponent.$_instance.option(name_2, thisComponent.$_pendingOptions[name_2]);\n }\n thisComponent.$_pendingOptions = {};\n thisComponent.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n this.eventBus.fire();\n },\n beforeUnmount: function () {\n var thisComponent = this;\n var instance = thisComponent.$_instance;\n if (instance) {\n (0, events_1.triggerHandler)(this.$el, constants_1.DX_REMOVE_EVENT);\n instance.dispose();\n }\n },\n created: function () {\n var thisComponent = this;\n var props = (0, vue_helper_1.getComponentProps)(this);\n thisComponent.$_config = new configuration_1.default(function (n, v) {\n if (Array.isArray(v)) {\n thisComponent.$_instance.option(n, v);\n }\n else {\n thisComponent.$_pendingOptions[n === vue_helper_1.VMODEL_NAME ? \"value\" : n] = v;\n }\n }, null, props && __assign({}, props), thisComponent.$_expectedChildren);\n thisComponent.$_innerChanges = {};\n thisComponent.$_config.init(this.$props && Object.keys(this.$props));\n },\n methods: {\n $_applyConfigurationChanges: function () {\n var thisComponent = this;\n thisComponent.$_config.componentsCountChanged.forEach(function (_a) {\n var optionPath = _a.optionPath, isCollection = _a.isCollection, removed = _a.removed;\n var options = thisComponent.$_config.getNestedOptionValues();\n if (!isCollection && removed) {\n thisComponent.$_instance.resetOption(optionPath);\n }\n else {\n thisComponent.$_instance.option(optionPath, (0, helpers_1.getOptionValue)(options, optionPath));\n }\n });\n thisComponent.$_config.cleanComponentsCountChanged();\n },\n $_createWidget: function (element) {\n var thisComponent = this;\n thisComponent.$_pendingOptions = {};\n thisComponent.$_templatesManager = new templates_manager_1.TemplatesManager(this);\n var config = thisComponent.$_config;\n if (config.initialValues.hasOwnProperty(vue_helper_1.VMODEL_NAME)) {\n config.initialValues.value = (0, vue_helper_1.getVModelValue)(config.initialValues);\n }\n var options = __assign(__assign(__assign(__assign({ templatesRenderAsynchronously: thisComponent.$_hasAsyncTemplate }, (0, vue_helper_1.getComponentProps)(thisComponent)), config.initialValues), config.getNestedOptionValues()), this.$_getIntegrationOptions());\n var instance = new thisComponent.$_WidgetClass(element, options);\n thisComponent.$_instance = instance;\n instance.on(\"optionChanged\", function (args) { return config.onOptionChanged(args); });\n (0, configuration_1.setEmitOptionChangedFunc)(config, thisComponent, thisComponent.$_innerChanges);\n (0, configuration_1.bindOptionWatchers)(config, thisComponent, thisComponent.$_innerChanges);\n this.$_createEmitters(instance);\n },\n $_getIntegrationOptions: function () {\n var thisComponent = this;\n var result = __assign({ integrationOptions: {\n watchMethod: this.$_getWatchMethod(),\n } }, this.$_getExtraIntegrationOptions());\n if (thisComponent.$_templatesManager.isDirty) {\n var templates = thisComponent.$_templatesManager.templates;\n result.integrationOptions.templates = templates;\n var props = thisComponent.$.vnode.props;\n for (var _i = 0, _a = Object.keys(templates); _i < _a.length; _i++) {\n var name_3 = _a[_i];\n result[(0, helpers_1.getTemplatePropName)(props, name_3)] = name_3;\n }\n thisComponent.$_templatesManager.resetDirtyFlag();\n }\n return result;\n },\n $_getWatchMethod: function () {\n var _this = this;\n return function (valueGetter, valueChangeCallback, options) {\n options = options || {};\n if (!options.skipImmediate) {\n valueChangeCallback(valueGetter());\n }\n return _this.$watch(function () {\n return valueGetter();\n }, function (newValue, oldValue) {\n if ((0, helpers_1.toComparable)(oldValue) !== (0, helpers_1.toComparable)(newValue) || options.deep) {\n valueChangeCallback(newValue);\n }\n }, {\n deep: options.deep\n });\n };\n },\n $_getExtraIntegrationOptions: function () {\n return {};\n },\n $_processChildren: function (_children) {\n return;\n },\n $_createEmitters: function (instance) {\n var _this = this;\n if (this.$attrs) {\n Object.keys(this.$attrs).forEach(function (listenerName) {\n var eventName = (0, helpers_1.camelize)(listenerName);\n instance.on(eventName, function (e) {\n _this.$emit(listenerName, e);\n });\n });\n }\n }\n }\n });\n}\nexports.initBaseComponent = initBaseComponent;\nfunction cleanWidgetNode(node) {\n var removedNodes = [];\n (0, helpers_1.forEachChildNode)(node, function (childNode) {\n var parent = childNode.parentNode;\n var isExtension = childNode.hasAttribute && childNode.hasAttribute(\"isExtension\");\n if ((childNode.nodeName === \"#comment\" || isExtension) && parent) {\n removedNodes.push(childNode);\n parent.removeChild(childNode);\n }\n });\n return removedNodes;\n}\nfunction restoreNodes(el, nodes) {\n nodes.forEach(function (node) {\n el.appendChild(node);\n });\n}\nfunction initDxComponent() {\n return (0, vue_1.defineComponent)({\n extends: initBaseComponent(),\n methods: {\n $_getExtraIntegrationOptions: function () {\n return {\n onInitializing: function () {\n this.beginUpdate();\n }\n };\n },\n $_processChildren: function (children) {\n children.forEach(function (childNode) {\n if (!childNode || typeof childNode !== \"object\") {\n return;\n }\n childNode.$_hasOwner = true;\n });\n },\n },\n mounted: function () {\n var _this = this;\n var nodes = cleanWidgetNode(this.$el);\n var thisComponent = this;\n this.$_createWidget(this.$el);\n thisComponent.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n if (this.$slots && this.$slots.default) {\n (0, vue_helper_1.getChildren)(thisComponent).forEach(function (child) {\n var childExtenton = child;\n if (childExtenton && childExtenton.$_isExtension) {\n childExtenton.$_attachTo(_this.$el);\n }\n });\n }\n }\n });\n}\nexports.initDxComponent = initDxComponent;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInnerChanges = exports.getConfig = exports.initOptionChangedFunc = exports.DxConfiguration = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nvar configuration_1 = require(\"./configuration\");\nfunction getConfig(vueInstance) {\n if (!vueInstance.$vnode) {\n return;\n }\n var componentOptions = vueInstance.$vnode.componentOptions;\n return componentOptions && componentOptions.$_config;\n}\nexports.getConfig = getConfig;\nfunction getInnerChanges(vueInstance) {\n if (!vueInstance.$vnode) {\n return;\n }\n var componentOptions = vueInstance.$vnode.componentOptions;\n return componentOptions && componentOptions.$_innerChanges;\n}\nexports.getInnerChanges = getInnerChanges;\nfunction initOptionChangedFunc(config, vueInstance, innerChanges) {\n if (!config) {\n return;\n }\n config.init(Object.keys(vueInstance.$props));\n (0, configuration_1.setEmitOptionChangedFunc)(config, vueInstance, innerChanges);\n}\nexports.initOptionChangedFunc = initOptionChangedFunc;\nfunction getComponentInfo(_a, removed) {\n var name = _a.name, isCollectionItem = _a.isCollectionItem, ownerConfig = _a.ownerConfig;\n var parentPath = ownerConfig && ownerConfig.fullPath;\n var optionPath = name && parentPath ? \"\".concat(parentPath, \".\").concat(name) : name || \"\";\n return {\n optionPath: optionPath,\n isCollection: isCollectionItem,\n removed: removed\n };\n}\nvar DxConfiguration = function () { return Vue.extend({\n beforeMount: function () {\n var config = getConfig(this);\n var innerChanges = getInnerChanges(this);\n initOptionChangedFunc(config, this, innerChanges);\n (0, configuration_1.bindOptionWatchers)(config, this, innerChanges);\n },\n mounted: function () {\n if (this.$parent.$_instance) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this)));\n }\n },\n beforeDestroy: function () {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this), true));\n },\n render: function (createElement) {\n return createElement();\n }\n}); };\nexports.DxConfiguration = DxConfiguration;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.DX_TEMPLATE_WRAPPER_CLASS = void 0;\nvar DX_TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\nexports.DX_TEMPLATE_WRAPPER_CLASS = DX_TEMPLATE_WRAPPER_CLASS;\nvar DX_REMOVE_EVENT = \"dxremove\";\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfigurationOptions = exports.setVModel = exports.setCompatOptions = exports.getVModelValue = exports.getNodeTypeOfComponent = exports.getNodeOptions = exports.usedConfigurationProps = exports.getComponentProps = exports.mount = exports.defaultSlots = exports.declaredTemplates = exports.configurationTemplate = exports.configurationDefaultTemplate = exports.configurationChildren = exports.getNormalizedProps = exports.getComponentInfo = exports.getChildren = exports.VMODEL_NAME = void 0;\nvar vue_1 = require(\"vue\");\nvar helpers_1 = require(\"./helpers\");\nvar children_processing_1 = require(\"./children-processing\");\nexports.VMODEL_NAME = \"modelValue\";\nfunction getChildren(component) {\n if (!hasChildren(component) || !component.$_config) {\n return [];\n }\n var children = component.$.subTree && component.$.subTree.children;\n if (!Array.isArray(children)) {\n return [];\n }\n return children.filter(function (child) {\n if (!(0, children_processing_1.isFragment)(child)) {\n return child;\n }\n return;\n });\n}\nexports.getChildren = getChildren;\nfunction getComponentInfo(component) {\n return getConfigurationOptions(component);\n}\nexports.getComponentInfo = getComponentInfo;\nfunction getNormalizedProps(props) {\n var result = {};\n for (var propName in props) {\n if (props.hasOwnProperty(propName)) {\n result[(0, helpers_1.camelize)(propName)] = props[propName];\n }\n }\n return result;\n}\nexports.getNormalizedProps = getNormalizedProps;\nfunction configurationChildren(component) {\n if (!component.children || !component.children.default) {\n return [];\n }\n return findConfigurationComponents(component.children.default());\n}\nexports.configurationChildren = configurationChildren;\nfunction configurationDefaultTemplate(node) {\n if (!node.children || node.children === \"object\" || !node.children.default) {\n return;\n }\n return hasInlineTemplate(node.children.default()) ? node.children.default : undefined;\n}\nexports.configurationDefaultTemplate = configurationDefaultTemplate;\nfunction configurationTemplate(node) {\n return configurationDefaultTemplate(node);\n}\nexports.configurationTemplate = configurationTemplate;\nfunction declaredTemplates(component) {\n return component.$slots;\n}\nexports.declaredTemplates = declaredTemplates;\nfunction defaultSlots(component) {\n var templates = declaredTemplates(component);\n if (!templates.default) {\n return [];\n }\n return templates.default();\n}\nexports.defaultSlots = defaultSlots;\nfunction mount(options, parent, el) {\n var template = (0, vue_1.createApp)(options);\n template.provide(\"eventBus\", parent.eventBus);\n setAppContext(template, parent);\n return template.mount(el);\n}\nexports.mount = mount;\nfunction getComponentProps(component) {\n var props = component.$.vnode.props || {};\n return getNormalizedProps(props);\n}\nexports.getComponentProps = getComponentProps;\nfunction usedConfigurationProps(node) {\n return node.props;\n}\nexports.usedConfigurationProps = usedConfigurationProps;\nfunction getNodeOptions(component) {\n if (component.$) {\n return component.$.vnode;\n }\n return component;\n}\nexports.getNodeOptions = getNodeOptions;\nfunction getNodeTypeOfComponent(component) {\n return component.$.vnode.type;\n}\nexports.getNodeTypeOfComponent = getNodeTypeOfComponent;\nfunction getVModelValue(options) {\n return options[exports.VMODEL_NAME];\n}\nexports.getVModelValue = getVModelValue;\nfunction setCompatOptions(component) {\n component.compatConfig = {\n MODE: 3\n };\n}\nexports.setCompatOptions = setCompatOptions;\nfunction setVModel(config) {\n var _a;\n var eventName = \"update:\".concat(exports.VMODEL_NAME);\n config.model.prop = exports.VMODEL_NAME;\n config.model.event = eventName;\n config.props.modelValue = {};\n config.emits = __assign(__assign({}, config.emits), (_a = {}, _a[\"\".concat(eventName)] = null, _a));\n}\nexports.setVModel = setVModel;\nfunction setCustomPluginsData(appContext, parentAppContext) {\n for (var prop in parentAppContext) {\n if (!appContext.hasOwnProperty(prop) && parentAppContext.hasOwnProperty(prop)) {\n appContext[prop] = parentAppContext[prop];\n }\n }\n}\nfunction setAppContext(template, parent) {\n template._context.components = Object.assign(parent.$.appContext.components, template._context.components);\n Object.setPrototypeOf(template._context.provides, Object.getPrototypeOf(parent.$.provides));\n Object.assign(template._context.provides, parent.$.appContext.provides);\n template._context.config = parent.$.appContext.config;\n template._context.directives = parent.$.appContext.directives;\n template._context.mixins = parent.$.appContext.mixins;\n setCustomPluginsData(template._context.app, parent.$.appContext.app);\n}\nfunction findConfigurationComponents(children) {\n return children.filter(function (child) {\n if ((0, children_processing_1.isFragment)(child)) {\n return findConfigurationComponents(child.children || []);\n }\n var childType = child.type;\n if (childType && typeof childType === \"object\" && childType.$_optionName) {\n delete child.$_config;\n delete child.$_innerChanges;\n return child;\n }\n return;\n });\n}\nfunction hasInlineTemplate(children) {\n var hasTemplate = false;\n children.forEach(function (child) {\n if (!isConfiguration(child) && !(0, children_processing_1.isFragment)(child) && !isComment(child)) {\n hasTemplate = true;\n }\n });\n return hasTemplate;\n}\nfunction isComment(node) {\n return node.type === vue_1.Comment || (node.type.toString() === \"Symbol()\" && !node.children);\n}\nfunction isConfiguration(child) {\n return child.type && typeof child.type === \"object\" && child.type.$_optionName;\n}\nfunction getConfigurationOptions(node) {\n return node.type;\n}\nexports.getConfigurationOptions = getConfigurationOptions;\nfunction hasChildren(component) {\n return component.$.vnode && component.$.vnode.children && component.$.vnode.children.default;\n}\n","/*!\n * devextreme-vue\n * Version: 23.1.5\n * Build date: Wed Aug 30 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInnerChanges = exports.getConfig = exports.initOptionChangedFunc = exports.initDxConfiguration = void 0;\nvar vue_1 = require(\"vue\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar configuration_1 = require(\"./configuration\");\nfunction getConfig(vueInstance) {\n var componentOptions = (0, vue_helper_1.getNodeOptions)(vueInstance);\n if (!componentOptions) {\n return;\n }\n return componentOptions.$_config || vueInstance.$_config;\n}\nexports.getConfig = getConfig;\nfunction getInnerChanges(vueInstance) {\n var componentOptions = (0, vue_helper_1.getNodeOptions)(vueInstance);\n if (!componentOptions) {\n return;\n }\n return componentOptions.$_innerChanges || vueInstance.$_innerChanges;\n}\nexports.getInnerChanges = getInnerChanges;\nfunction initOptionChangedFunc(config, props, vueInstance, innerChanges) {\n if (!config) {\n return;\n }\n config.init(Object.keys(props));\n if (vueInstance) {\n (0, configuration_1.setEmitOptionChangedFunc)(config, vueInstance, innerChanges);\n }\n}\nexports.initOptionChangedFunc = initOptionChangedFunc;\nfunction getComponentInfo(_a, removed) {\n var name = _a.name, isCollectionItem = _a.isCollectionItem, ownerConfig = _a.ownerConfig;\n var parentPath = ownerConfig && ownerConfig.fullPath;\n var optionPath = name && parentPath ? \"\".concat(parentPath, \".\").concat(name) : name || \"\";\n return {\n optionPath: optionPath,\n isCollection: isCollectionItem,\n removed: removed\n };\n}\nfunction initDxConfiguration() {\n return (0, vue_1.defineComponent)({\n beforeMount: function () {\n var thisComponent = this;\n var config = getConfig(thisComponent);\n var innerChanges = getInnerChanges(thisComponent);\n initOptionChangedFunc(config, (0, vue_helper_1.getNodeTypeOfComponent)(thisComponent).props, thisComponent, innerChanges);\n (0, configuration_1.bindOptionWatchers)(config, this, innerChanges);\n },\n mounted: function () {\n if (this.$parent.$_instance) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this)));\n }\n },\n beforeUnmount: function () {\n var config = getConfig(this);\n if (config) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(config, true));\n }\n },\n render: function () {\n return null;\n }\n });\n}\nexports.initDxConfiguration = initDxConfiguration;\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 23.1.5\r\n * Build date: Wed Aug 30 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n"],"sourceRoot":""}