{"version":3,"sources":["webpack:///./node_modules/devextreme/esm/ui/box.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.scroll.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/esm/ui/calendar.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","webpack:///./node_modules/devextreme/esm/ui/date_box.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/devextreme/esm/events/gesture/swipeable.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./src/store/job-feed-management/moduleJobFeedManagementState.js","webpack:///./src/store/job-feed-management/moduleJobFeedManagementMutations.js","webpack:///./src/store/job-feed-management/moduleJobFeedManagementActions.js","webpack:///./src/store/job-feed-management/moduleJobFeedManagementGetters.js","webpack:///./src/store/job-feed-management/moduleJobFeedManagement.js","webpack:///./src/store/campaign-management/moduleCampaignManagementState.js","webpack:///./src/store/campaign-management/moduleCampaignManagementMutations.js","webpack:///./src/store/campaign-management/moduleCampaignManagementActions.js","webpack:///./src/store/campaign-management/moduleCampaignManagementGetters.js","webpack:///./src/store/campaign-management/moduleCampaignManagement.js","webpack:///./node_modules/devextreme-vue/tag-box.js","webpack:///./src/store/article-list-management/moduleArticleListManagementState.js","webpack:///./src/store/article-list-management/moduleArticleListManagementMutations.js","webpack:///./src/store/article-list-management/moduleArticleListManagementActions.js","webpack:///./src/store/article-list-management/moduleArticleListManagementGetters.js","webpack:///./src/store/article-list-management/moduleArticleListManagement.js","webpack:///./node_modules/devextreme-vue/date-box.js","webpack:///./src/store/news-article-list-management/moduleNewsArticleListManagementState.js","webpack:///./src/store/news-article-list-management/moduleNewsArticleListManagementMutations.js","webpack:///./src/store/news-article-list-management/moduleNewsArticleListManagementActions.js","webpack:///./src/store/news-article-list-management/moduleNewsArticleListManagementGetters.js","webpack:///./src/store/news-article-list-management/moduleNewsArticleListManagement.js","webpack:///./node_modules/devextreme/esm/core/utils/date_serialization.js","webpack:///./node_modules/devextreme/esm/core/utils/date.js","webpack:///./node_modules/devextreme-vue/check-box.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/devextreme/esm/ui/tag_box.js","webpack:///./src/views/campaign/CampaignEdit.vue?59a1","webpack:///src/views/campaign/CampaignEdit.vue","webpack:///./src/views/campaign/CampaignEdit.vue?58be","webpack:///./src/views/campaign/CampaignEdit.vue"],"names":["BOX_CLASS","BOX_SELECTOR","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","MINSIZE_MAP","row","col","MAXSIZE_MAP","SHRINK","FLEX_JUSTIFY_CONTENT_MAP","start","end","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","element","prop","value","style","cssName","styleExpr","attributes","indexOf","setAttribute","BOX_EVENTNAMESPACE","UPDATE_EVENT","FALLBACK_BOX_ITEM","FALLBACK_WRAP_MAP","FALLBACK_MAIN_SIZE_MAP","name","getter","setter","FALLBACK_CROSS_SIZE_MAP","FALLBACK_PRE_MARGIN_MAP","FALLBACK_POST_MARGIN_MAP","FALLBACK_CROSS_PRE_MARGIN_MAP","FALLBACK_CROSS_POST_MARGIN_MAP","MARGINS_RTL_FLIP_MAP","marginLeft","marginRight","BoxItem","oldValue","super","_renderVisible","this","_options","fireItemStateChangedAction","state","oldState","FlexLayoutStrategy","$element","option","_$element","_option","initSize","update","css","display","get","justifyContent","_normalizedAlign","align","alignItems","_normalizedCrossAlign","crossAlign","$items","flexPropPrefix","direction","$item","item","data","maxSize","minSize","baseSize","ratio","shrink","children","each","_","itemContent","width","height","flexBasis","flexDirection","FallbackLayoutStrategy","fontSize","whiteSpace","verticalAlign","off","on","bind","_$items","totalItemSize","boxSize","freeSpace","shift","_setItemsMargins","first","_chooseMarginSide","last","length","size","that","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","removeClass","itemData","_baseSize","freeSpaceSize","_boxSize","factor","totalFactor","Math","round","addClass","_contentSize","_parseSize","String","match","parseFloat","_boxSizeValue","arguments","_totalBaseSize","result","is","detach","append","renderItems","renderAlign","renderCrossAlign","find","parent","closest","triggerHandler","Box","_getDefaultOptions","activeStateEnabled","focusStateEnabled","onItemStateChanged","_layoutStrategy","_queue","_itemContainer","_itemSelector","_init","concat","_initLayout","_initBoxQueue","_layout","config","push","renderBox","_initMarkup","_renderAlign","_renderActions","_onItemStateChanged","_createActionByOption","items","_renderItems","_queueIsNotEmpty","_shiftItemFromQueue","_createComponent","itemTemplate","itemHoldTimeout","onItemHold","onItemClick","onItemContextMenu","onItemRendered","_itemElements","clearTimeout","_updateTimer","setTimeout","_isUpdated","args","$itemNode","node","_renderItemContentByNode","_renderItemContent","boxConfig","box","_pushItemToQueue","source","_createItemByTemplate","visible","_dimensionChanged","_dispose","apply","property","_itemOptionChanged","_invalidate","_optionChanged","options","_itemOptions","e","ItemClass","allowScroll","container","delta","shiftKey","$container","scrollTopPos","scrollLeft","scrollTop","scrollBottomPos","isScrollFromTop","isScrollFromBottom","isScrollFromMiddle","prepareScrollData","validateTarget","validate","eventTarget","target","_needSkipEvent","monthGetter","date","getMonth","monthSetter","day","getDate","monthLimits","getLimits","newValue","parseInt","min","max","setMonth","newDay","setDate","PATTERN_GETTERS","a","getHours","E","y","M","L","d","H","h","m","s","S","PATTERN_SETTERS","extend","hours","current","setHours","lastDayInMonth","isPM","getDay","currentYear","getFullYear","valueLength","maxLimitLength","substr","setFullYear","getPatternGetter","patternChar","renderDateParts","text","regExpInfo","regexp","exec","sections","_loop","i","pattern","patterns","replace","index","isStub","caret","limits","_len","Array","_key","forcedPattern","dM","Date","getAmPm","getDatePartIndexByPosition","dateParts","position","caretInGroup","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","format","formatType","type","dateUtils","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","newDate","FORMATS_INFO","getStandardPattern","components","time","datetime","standardPattern","$input","attr","val","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","serializeDate","fromStandardDateFormat","dateParser","getMaxMonthDay","year","month","mergeDates","isNaN","getTime","now","valueOf","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","formatUsesMonthName","formatUsesDayName","getLongestDate","monthNames","dayNames","stringFormat","longestDate","normalizeTime","setSeconds","setMilliseconds","formatter","formatDate","startValue","endValue","getMonthNames","minutes","seconds","milliseconds","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","Navigator","inherit","callBase","onClick","onCaptionClick","_initActions","_clickAction","_captionClickAction","_renderButtons","_renderCaption","_prevButton","icon","event","integrationOptions","$prevButton","_nextButton","$nextButton","_caption","$caption","toggleButton","buttonPrefix","buttonName","button","toggleClass","abstract","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","CALENDAR_DXCLICK_EVENT_NAME","click","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","cellTemplate","disabledDates","onCellClick","rowCount","colCount","allowValueSelection","_todayDate","_renderImpl","_createTable","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderValue","_renderEvents","_$table","setAria","label","message","role","$body","appendTo","rowData","cellDate","_getFirstCellData","prevCellDate","rowIndex","_createRow","colIndex","_renderCell","createElement","appendChild","_appendCell","cell","_appendMethodName","_cacheAppendMethodName","rtlEnabled","_createCell","$cell","className","_getClassNameByDate","getShortDateFormat","getCellAriaLabel","params","cellIndex","fixTimezoneGap","render","_prepareCellTemplateData","innerHTML","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","model","view","_createCellClickAction","currentTarget","hasClass","_cellClickAction","_disabledDatesHandler","isArray","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","isBoundary","CALENDAR_OTHER_MONTH_CLASS","Views","firstDayOfWeek","_renderHeader","_renderFocusTarget","$headerRow","$header","prepend","_renderHeaderCell","full","fullCaption","abbreviated","abbrCaption","_getDayCaption","_getFirstDayOfWeek","scope","abbr","getNavigatorCaption","today","sameDate","minDate","maxDate","dateInRange","daysInWeek","dayIndex","getDayNames","firstDay","getFirstMonthDate","firstMonthDayOffset","firstDayOfWeekIndex","sameMonthAndYear","isDisabledDate","some","getLastMonthDate","currentDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","FOCUSED_STATE_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","elementHasFocus","Calendar","_activeStateUnit","hoverStateEnabled","dateSerializationFormat","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_defaultOptionsRules","device","devices","real","deviceType","isSimulator","_supportedKeys","rightArrow","preventDefault","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","leftArrow","upArrow","_navigateUp","fx","isAnimating","_view","downArrow","_navigateDown","home","_dateOption","sameView","getViewFirstCellDate","_moveToClosestAvailableDate","getViewLastCellDate","pageUp","pageDown","tab","enter","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_getSerializationFormat","optionName","getDateSerializationFormat","_convertToDate","deserializeDate","cellElement","_saveValueChangeEvent","optionValue","serializationFormat","_shiftDate","offset","reverse","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","date1","date2","getYear","b","abs","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_areDatesInSameView","_correctZoomLevel","_initCurrentDate","_getNormalizedDate","normalizeDate","_getDate","_onContouredChanged","_initTemplates","_templateManager","addDefaultTemplates","_updateCurrentDate","_$viewsWrapper","stop","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","_focusTarget","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","difference","getDifferenceInMonth","lastDay","_renderSubmitElement","_renderViews","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_render","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_injectComponent","tabIndex","_cellClickHandler","_getTemplateByOption","func","component","getViewMinBoundaryDate","getViewMaxBoundaryDate","left","top","_getViewPosition","coefficient","rtlCorrection","nextView","getViewDown","isMaxZoomLevel","currentValue","setMinutes","getMinutes","getSeconds","getMilliseconds","newCurrentDate","_animateShowView","_navigatorConfig","_updateButtonsVisibility","_navigatorClickHandler","getViewUp","_isMinZoomLevel","_getRequiredView","_swipeable","onStart","_swipeStartHandler","onUpdated","_swipeUpdateHandler","onEnd","_swipeEndHandler","itemSizeFunc","_viewWidth","maxLeftOffset","maxRightOffset","isRtl","_updateNavigatorCaption","targetOffset","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","$todayButton","_toTodayView","_$footer","_$submitElement","_setSubmitValue","dateValue","_getSubmitElement","_popAnimationView","promise","from","to","duration","animate","scale","opacity","newView","remove","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","done","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clean","_clearViewWidthCache","_disposeViews","_refreshViews","_visibilityChanged","_focusInHandler","_focusOutHandler","_updateViewsValue","previousValue","_value","$prevSelectedCell","$selectedCell","_value2","ariaId","$newCell","_suppressingNavigation","callback","getContouredDate","DateBoxStrategy","ctor","dateBox","widgetOption","_widget","_renderWidget","_createWidget","_getWidgetContainer","widgetName","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","mode","getDisplayFormat","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","parse","renderInputMinMax","renderOpenedState","_updateValue","popupConfig","_this$_getPopup","_getPopup","repaint","renderPopupContent","popup","$popupContent","$content","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","_popup","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","getValue","isAdaptivityChanged","dispose","empty","dateOption","CalendarStrategy","NAME","homeEndHandler","viewValue","_getContouredValue","lastActionElement","_lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","close","_valueChangeEventHandler","displayFormat","onValueChanged","_valueChangedHandler","_refreshActiveDescendant","actionValue","_popupConfig","toolbarItems","buttonsLocation","_isCalendarVisible","unshift","widget","toolbar","location","onInitialized","registerKeyHandler","_escapeHandler","collision","focus","prevValue","convertToLocation","x","isHorizontal","isVertical","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","showScrollbar","useNative","selectedIndex","bounceEnabled","showOnClick","onSelectedIndexChanged","scrollByContent","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","eventName","clickAction","content","forEach","add","_fitIndex","_moveTo","_getItemPosition","_renderActiveStateItem","itemCount","_itemHeight","itemSelector","_getItemSelector","_itemClickHandler","_itemElementIndex","itemElement","targetLocation","scrollOffset","_isVisible","_prepareDirections","_animation","_shouldScrollToNeighborItem","floor","handleMove","_moveIsAllowed","itemsCount","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","_isInNullNeighborhood","newSelectedIndex","_fitSelectedIndexInRange","_getSelectedIndexAfterScroll","_getNewSelectedIndex","_visibilityTimer","toggleActiveState","fitIndex","_fireSelectedIndexChanged","_refreshSelectedIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_device","_toggleFormatClasses","_toggleCompactClass","currentFormat","previousFormat","_wrapper","_$wrapper","_renderContentImpl","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_toggleActive","_setActiveRoller","_setRollerState","getFormatParts","partName","_createRollerConfig","componentName","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","setValue","valueItems","getIndex","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","toString","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","openOnFieldClick","applyButtonText","_popupToolbarItemsConfig","defaultOptionsRules","platform","_device2","phone","maxWidth","maxHeight","my","at","of","_isNativeType","onDisposing","NativeStrategy","split","_getDateBoxType","dropDownButton","getButton","android","_input","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","angle","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","stylingMode","_getValue","_renderBox","_updateTime","$box","template","_renderClock","_renderField","__","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","getTimeSeparator","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","editor","_onHourBoxValueChanged","onKeyboardHandled","opts","_keyboardHandler","_getNumberBoxConfig","_isPM","_ref","newHours","_convertMaxHourToMin","maxHoursValue","_ref2","newMinutes","periodNames","getPeriodNames","valueExpr","displayExpr","_ref3","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","_resumeValueChangeAction","showSpinButtons","displayValueFormatter","_normalizeHours","_updateField","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","applyValueMode","_is24HourFormat","is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","$wrapper","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","onShowing","clockMinWidth","_hasFocusClass","_this$_widget$option","_removeMinWidthTimer","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","opened","space","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_listItemClickHandler","onFocusedItemChanged","selectionMode","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","n","_areDatesEqual","second","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","interval","boundary","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","_setPopupOption","popupHeight","_timeList","updateDimensions","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_INVALID_BADGE_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","calendar","rollers","list","native","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","_strategy","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","calendarOptions","useHiddenSubmitElement","realDevice","currentDevice","version","_initOptions","_userOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","string","charAt","toLowerCase","strategyName","_getStrategyName","_getFormatType","strategy","currentType","isTime","test","isDate","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_renderDimensions","_this$_strategy$_upda","_this$_strategy","call","inputElement","isRtlEnabled","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","getComputedStyle","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","paddingLeft","paddingRight","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","elementWidth","necessaryWidth","_renderPopup","_renderPopupWrapper","title","_getPopupTitle","dragEnabled","classPostfixes","_renderPopupContent","_getFirstPopupElement","_getLastPopupElement","_popupShowingHandler","_popupShownHandler","_popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","isCustomValueDisabled","_getDisplayedText","submitFormat","submitValue","displayedText","_getFormatByMode","validationError","parsedDate","_getParsedDate","_getDateByDefault","_applyInternalValidation","isValid","editorSpecific","_applyCustomValidation","parsedText","hasText","isDateInRange","validationMessage","validationRequest","fire","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","newText","_renderProps","_renderOpenedState","_refreshStrategy","placeholder","_refresh","_applyButtonHandler","_renderDisplayText","_this$_strategy2","_updatePopupTitle","_this$_popup","_renderInputValue","forceIsoDateParsing","dxEvent","isValueChanged","_clearValue","reset","MASK_EVENT_NAMESPACE","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","del","_revertPart","_isAllSelected","backspace","_selectFirstPart","_selectLastPart","escape","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_useMaskBehavior","altKey","step","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","useMaskBehavior","emptyDateValue","originalEvent","alt","key","_e$originalEvent","_useBeforeInputEvent","oldInputValue","_processInputKey","trigger","browser","chrome","code","_maskInputHandler","_renderSelectedPart","_isSingleCharKey","_keyInputHandler","inputType","isBackwardDeletion","isForwardDeletion","_isSingleDigitKey","_maskValue","_activePartIndex","_searchString","_searchNumber","_caret","_formatPattern","isLDMLPattern","_getPatternByFormat","_renderDateParts","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","_searchValue","isValueOverflowed","char","_getActivePartLimits","_setActivePartValue","_partLimitsReached","startString","endLimit","_clearSearchValue","actual","_regExpInfo","_getFormatPattern","flags","quantifierRegexp","RegExp","convertedSource","map","sourcePart","number","convertDigits","join","_prepareRegExpInfo","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_initMaskState","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_maskBeforeInputHandler","_disposed","isBoundaryIndex","lockOtherParts","limitFunction","_getRealLimitsPattern","zeroes","_addLeadingZeroes","limitDelta","_applyLimits","limitBase","limitClosest","_replaceSelectedText","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","isDefaultPrevented","_saveMaskValue","_renderMask","$at","iterated","_t","_i","point","O","undefined","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","onCancel","Swipeable","elastic","immediate","_attachEventHandlers","_detachEventHandlers","_createEventData","actionName","action","context","_eventData","_useTemplates","ScrollDirection","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_BOTH","$export","ownKeys","toIObject","gOPD","createProperty","getOwnPropertyDescriptors","object","desc","getDesc","f","keys","gOPN","gOPS","anObject","Reflect","module","exports","it","getSymbols","_defineProperty","obj","Object","defineProperty","enumerable","configurable","writable","fetchJobFeeds","organisationId","commit","Promise","resolve","reject","jwt","idOrganisation","then","response","catch","error","fetchJobFeed","campaignId","url","saveJobFeed","post","removeRecord","id","fetchJobItems","idJobFeed","isRegistered","namespaced","mutations","actions","getters","unmappedCampaigns","SET_UNMAPPED_CAMPAIGNS","campaigns","fetchCampaigns","fetchCampaignsByAdvertiser","idAdvertiser","fetchCampaign","idCampaign","fetchVoucher","payload","fetchCampaignCategories","saveCampaign","updatedData","campaign","assign","fetchImages","reorderImages","addImage","deleteImage","fetchUnmappedCampaigns","addCampaignsToAdvertiser","fetchCampaignBanners","__importDefault","mod","__esModule","DxToolbarItem","DxTo","DxShow","DxPosition","DxOptions","DxOffset","DxMy","DxItem","DxHide","DxFrom","DxDropDownOptions","DxCollision","DxButton","DxBoundaryOffset","DxAt","DxAnimation","DxTagBox","tag_box_1","index_1","index_2","createComponent","props","acceptCustomValue","Boolean","accessKey","buttons","dataSource","deferRendering","disabled","Function","dropDownButtonTemplate","dropDownOptions","elementAttr","fieldTemplate","grouped","groupTemplate","Number","hideSelectedItems","hint","inputAttr","labelMode","maxDisplayedTags","maxFilterQueryLength","maxLength","minSearchLength","multiline","noDataText","onChange","onClosed","onContentReady","onCustomItemCreating","onEnterKey","onFocusIn","onFocusOut","onInput","onKeyDown","onKeyUp","onMultiTagPreparing","onOpened","onOptionChanged","onSelectAllValueChanged","onSelectionChanged","readOnly","searchEnabled","searchExpr","searchMode","searchTimeout","selectAllMode","selectAllText","selectedItems","showClearButton","showDataBeforeSearch","showDropDownButton","showMultiTagOnly","showSelectionControls","tagTemplate","useItemTextAsTitle","validationErrors","validationMessageMode","validationStatus","wrapItemText","emits","computed","instance","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","isCollectionItem","createConfigurationComponent","hide","show","$_optionName","$_isCollectionItem","animation","bindingOptions","closeOnOutsideClick","contentTemplate","copyRootClassesToWrapper","dragAndResizeArea","dragOutsideBoundary","fullScreen","hideOnParentScroll","minHeight","minWidth","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShown","onTitleRendered","resizeEnabled","restorePosition","shading","shadingColor","showCloseButton","showTitle","titleTemplate","wrapperAttr","toolbarItem","complete","delay","easing","staggerDelay","html","useSubmitBehavior","validationGroup","boundaryOffset","fetchArticleLists","fetchArticleList","saveArticleList","syncFeed","fetchArticle","activateArticle","deactivateArticle","fetchArticles","searchValue","filterOptions","dataField","filterOperationEnum","filterValue","saveArticle","removeArticle","reorderArticles","fetchArticleListDefinition","saveArticleListDefinition","fetchArticleListDefinitionByIdArticleList","idArticleList","al","articleList","idArticleListDefinition","response2","fields","DxDisplayFormat","DxCalendarOptions","DxDateBox","date_box_1","cancelButtonText","onCopy","onCut","onPaste","spellcheck","valueChangeEvent","validator","v","currency","parser","precision","fetchNewsArticleLists","fetchNewsArticleList","saveNewsArticleList","previewNewsArticleList","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","part","isDefaultSerializationFormat","parsedValue","parts","timeZoneHour","timeZoneMinute","correctYear","hour","minute","millisecond","pow","UTC","getIso8601Format","useUtc","dateUnitIntervals","toMilliseconds","getDatesInterval","intervalUnit","millisecondCount","getNextDateUnit","unit","withWeeks","getDateUnitInterval","convertMillisecondsToDateUnits","dateUnitCount","dateUnitInterval","convertDateUnitToMilliseconds","dateToMilliseconds","tickInterval","dateUnit","count","maxInterval","tickIntervalToFormatMap","week","quarter","getDateFormatByTickInterval","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","dateInterval","withCorrection","firstQuarterMonth","oldDate","getFirstWeekDate","trimTime","setToDayEnd","getDatesDifferences","counter","differences","getTimezonesDifference","addDateInterval","dir","intervalObject","getDateIntervalByString","years","quarters","months","weeks","days","setTime","addInterval","isNegative","getSequenceByInterval","cur","intervals","viewType","getLastMonthDay","resultDate","typeView","getDifferenceInMonthForCells","intervalString","startDecadeDate1","startDecadeDate2","startCenturyDate1","startCenturyDate2","normalizeDateByWeek","differenceInDays","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","dateTimeFromDecimal","roundDateByStartDayHour","startDayHour","startTime","diff","sign","trial","roundToHour","getTimezoneOffset","makeDate","getDatesOfInterval","sameMonth","DxCheckBox","check_box_1","iconSize","$defineProperty","createDesc","TAGBOX_TAG_DATA_KEY","TAGBOX_CLASS","TAGBOX_TAG_CONTAINER_CLASS","TAGBOX_TAG_CLASS","TAGBOX_MULTI_TAG_CLASS","TAGBOX_CUSTOM_TAG_CLASS","TAGBOX_TAG_REMOVE_BUTTON_CLASS","TAGBOX_ONLY_SELECT_CLASS","TAGBOX_SINGLE_LINE_CLASS","TAGBOX_POPUP_WRAPPER_CLASS","TAGBOX_TAG_CONTENT_CLASS","TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS","TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS","NATIVE_CLICK_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER","TagBox","sendToList","_list","_isCaretAtTheStart","_processKeyboardEvent","_isTagRemoved","$tagToDelete","_$focusedTag","_tagElements","_moveTagFocus","_preserveFocusedTag","_removeTagElement","isListItemFocused","isCustomItem","_customItemAddedHandler","isOpened","isInputActive","_shouldRenderSearchEvent","_isEmpty","_isEditable","_scrollContainer","stopPropagation","_updateTagsContainer","_$tagsContainer","_allowSelectItemByTab","clearOnBoundary","tagElements","_toggleFocusClass","$nextFocusedTag","_replaceFocusedTag","_clearTagFocus","_focusClassTarget","_getLabelContainer","scrollPosition","_getScrollPosition","_getBorderPosition","_getFocusedTagPosition","isScrollLeft","scrollSign","scrollWidth","_setNextValue","_selectedItems","_initSelectAllValueChangedAction","_initMultiTagPreparingAction","_multiTagPreparingAction","beforeExecute","_multiTagPreparingHandler","excludeValidators","selectedCount","getFormatter","_initDynamicTemplates","tag","_data$text","$tagContent","_displayGetter","_toggleSubmitElement","enabled","$options","useDisplayText","_shouldUseDisplayValue","_tagElementsCache","isSingleLineMode","_initTagTemplate","_renderTagRemoveAction","_renderSingleLineScroll","_tagTemplate","isDefaultFieldTemplate","tagRemoveAction","_createAction","_removeTagHandler","mouseWheelEvent","isMultiline","_tagContainerMouseWheelHandler","input","namespace","keyName","_isControlKey","_popupWrapperClass","_renderInput","_renderPreventBlur","_inputWrapper","_renderInputValueImpl","_renderMultiSelect","_loadInputValue","_clearTextValue","_toggleEmptinessEventHandler","_preventNestedFocusEvent","_restoreInputText","saveEditingValue","_selectAllValueChangeAction","_renderList","_setListDataSourceFilter","_popupElementTabHandler","_popupElementEscHandler","_canListHaveFocus","_listConfig","_$textEditorInputContainer","_renderInputSize","_renderTags","refreshPosition","fail","_shouldClearFilter","shouldClearFilter","isEmptyInput","canTypeText","$calculationElement","includePaddings","insertAfter","_renderInputSubstitution","_updateWidgetHeight","_multiTagRequired","values","_renderMultiTag","$tag","multiTagElement","cancel","insertBefore","_getFilter","creator","dataSourceFilter","_dataSource","filter","filterExpr","getCombinedFilter","filterQueryLength","encodeURI","JSON","stringify","log","_getFilteredItems","_this$_loadFilteredIt","_this$_list","_this$_list$getDataSo","_loadFilteredItemsPromise","listSelectedItems","isListItemsLoaded","getDataSource","isLoaded","clientFilterFunction","getLocalFilter","_valueGetter","filteredItems","selectedItemsAlreadyLoaded","_isDataSourceChanged","customQueryParams","expand","select","loadOptions","store","load","extra","mappedItems","_applyMapFunction","_createTagsData","cache","isValueExprSpecified","_valueGetterExpr","filteredValues","filteredItem","filteredItemValue","loadItemPromises","currentItem","_loadItem","always","newItem","_createTagData","splice","valueIndex","selectedItem","customItem","_isGroupedData","_this$_dataSource","group","_getItemsByValues","resultItems","_getItemFromPlain","_getFilteredGroupedItems","_filteredGroupedItemsLoadPromise","operationId","_loadTagsData","tagData","filteredItemsPromise","isPlainDataUsed","_shouldGetItemsFromPlain","_valuesToUpdate","_getItemsFromPlain","_renderTagsImpl","_renderTagsCore","_renderEmptyState","_getPlainItems","_getSelectedItemsFromList","needFilterPlainItems","plainItems","_filterSelectedItems","_this$_list2","dataItem","_isValueEquals","_integrateInput","slice","_cleanTags","$multiTag","_renderTag","_isFocused","_refreshTagElements","$tags","isEmpty","_toggleEmptiness","_applyTagTemplate","_getTag","displayValue","itemModel","_getItemModel","_createTag","tagsLength","itemValue","_removeTagWithUpdate","_removeTag","_getCurrentValue","_lastValue","_selectionChangeHandler","removedItems","removedItem","addedItems","addedItem","_addTag","listSelectionChangeEvent","_getSelectionChangeEvent","_saveSelectionChangeEvent","_valueIndex","_fieldRenderData","_completeSelection","_setValue","useButtons","_isSelectedValue","indexByValues","selectedValue","lastValue","_searchHandler","originalHeight","currentHeight","_refreshSelected","_this$_list3","_resetListDataSourceFilter","_getDataSource","_userFilter","reload","valueGetterExpr","_dataSourceFilterExpr","_dataSourceFilterFunction","_dataSourceChangedHandler","_getSortedListValues","_cancelSearchIfNeed","listValues","_getListValues","existedItems","newItems","_setListDataSource","defaultValue","_defaultTagTemplate","_removeDuplicates","what","_setListOption","_refreshEvents","_selectionChangedAction","_getActualSearchValue","_popupHidingHandler","_clearFilter","_vm","_h","$createElement","_c","_self","attrs","campaignNotFound","$event","_v","_s","$route","staticClass","ref","$t","localData","$set","strategyTypes","idStrategyType","jobFeeds","externalStrategyListId","_e","articleLists","newsArticleLists","newsArticleListIds","$acl","check","isPremium","isActive","hasStrategies","hasSubscriptions","advertiserCanAddSubscription","retailerCanBuySubscription","saveChanges","staticRenderFns","mixins","notifyMixin","DxSelectBox","DxTextBox","DxValidator","DxValidationGroup","DxRequiredRule","$store","refCodes","watch","deep","handler","methods","fetchData","dispatch","$router","created","moduleCampaignManagement","registerModule","moduleJobFeedManagement","moduleArticleListManagement","moduleNewsArticleListManagement"],"mappings":"kHAAA,gKA0CIA,EAAY,SACZC,EAAe,UACfC,EAAiB,cACjBC,EAAoB,gBACpBC,EAAc,CACdC,IAAK,WACLC,IAAK,aAELC,EAAc,CACdF,IAAK,WACLC,IAAK,aAELE,EAAS,EACTC,EAA2B,CAC3BC,MAAO,aACPC,IAAK,WACLC,OAAQ,SACR,gBAAiB,gBACjB,eAAgB,gBAEhBC,EAAuB,CACvBH,MAAO,aACPC,IAAK,WACLC,OAAQ,SACRE,QAAS,WAETC,EAAqB,CACrBV,IAAK,MACLC,IAAK,UAELU,EAAc,CAACC,EAASC,EAAMC,KAG9B,GAFAA,EAAQ,eAAmBD,EAAMC,GACjCF,EAAQG,MAAM,eAAUF,IAASC,GAC5B,iBAAa,CACd,GAAI,KAAOA,IAAU,eAAUA,GAC3B,OAEJ,IAAIE,EAAU,eAAUH,GACpBI,EAAYD,EAAU,KAAOF,EAAQ,IACpCF,EAAQM,WAAWH,MAEbH,EAAQM,WAAWH,MAAMD,MAAMK,QAAQF,GAAa,IAC3DL,EAAQM,WAAWH,MAAMD,OAAS,IAAMG,GAFxCL,EAAQQ,aAAa,QAASH,KAMtCI,EAAqB,QACrBC,EAAe,YAAcD,EAC7BE,EAAoB,uBACpBC,EAAoB,CACpBxB,IAAK,SACLC,IAAK,UAELwB,EAAyB,CACzBzB,IAAK,CACD0B,KAAM,QACNC,OAAQ,OACRC,OAAQ,QAEZ3B,IAAK,CACDyB,KAAM,SACNC,OAAQ,OACRC,OAAQ,SAGZC,EAA0B,CAC1B7B,IAAKyB,EAAuBxB,IAC5BA,IAAKwB,EAAuBzB,KAE5B8B,EAA0B,CAC1B9B,IAAK,aACLC,IAAK,aAEL8B,EAA2B,CAC3B/B,IAAK,cACLC,IAAK,gBAEL+B,EAAgC,CAChChC,IAAK,YACLC,IAAK,cAELgC,EAAiC,CACjCjC,IAAK,eACLC,IAAK,eAELiC,EAAuB,CACvBC,WAAY,cACZC,YAAa,cAEjB,MAAMC,UAAgB,OAClB,eAAevB,EAAOwB,GAClBC,MAAMC,eAAe1B,GACjB,eAAUwB,IACVG,KAAKC,SAASC,2BAA2B,CACrCjB,KAAM,UACNkB,MAAO9B,EACP+B,SAAUP,KAK1B,MAAMQ,EACF,YAAYC,EAAUC,GAClBP,KAAKQ,UAAYF,EACjBN,KAAKS,QAAUF,EACfP,KAAKU,SAAW,OAChBV,KAAKW,OAAS,OAElB,YACIX,KAAKQ,UAAUI,IAAI,CACfC,QAAS,eAAgB,iBAAmB,SAEhD3C,EAAY8B,KAAKQ,UAAUM,IAAI,GAAI,gBAAiB7C,EAAmB+B,KAAKS,QAAQ,eAExF,cACIT,KAAKQ,UAAUI,IAAI,CACfG,eAAgBf,KAAKgB,qBAG7B,mBACI,IAAIC,EAAQjB,KAAKS,QAAQ,SACzB,OAAOQ,KAAStD,EAA2BA,EAAyBsD,GAASA,EAEjF,mBACIjB,KAAKQ,UAAUI,IAAI,CACfM,WAAYlB,KAAKmB,0BAGzB,wBACI,IAAIC,EAAapB,KAAKS,QAAQ,cAC9B,OAAOW,KAAcrD,EAAuBA,EAAqBqD,GAAcA,EAEnF,YAAYC,GACR,IAAIC,EAAiB,eAAgB,iBACjCC,EAAYvB,KAAKS,QAAQ,aAC7B,eAAKY,GAAQ,WACT,IAAIG,EAAQ,eAAExB,MACVyB,EAAOD,EAAME,KAAKrE,GACtBmE,EAAMZ,IAAI,CACNC,QAASS,EAAiB,SAC3BV,IAAInD,EAAY8D,GAAYE,EAAKE,SAAW,QAAQf,IAAItD,EAAYiE,GAAYE,EAAKG,SAAW,KACnG1D,EAAYsD,EAAMV,IAAI,GAAI,YAAaW,EAAKI,UAAY,GACxD3D,EAAYsD,EAAMV,IAAI,GAAI,WAAYW,EAAKK,OAC3C5D,EAAYsD,EAAMV,IAAI,GAAI,aAAc,eAAUW,EAAKM,QAAUN,EAAKM,OAASrE,GAC/E8D,EAAMQ,WAAWC,KAAK,CAACC,EAAGC,KACtB,eAAEA,GAAavB,IAAI,CACfwB,MAAO,OACPC,OAAQ,OACRxB,QAAS,eAAgB,iBAAmB,OAC5CyB,UAAW,IAEfpE,EAAYiE,EAAa,WAAY,GACrCjE,EAAYiE,EAAa,gBAAiB,eAAEA,GAAa,GAAG7D,MAAMiE,eAAiB,gBAKnG,MAAMC,EACF,YAAYlC,EAAUC,GAClBP,KAAKQ,UAAYF,EACjBN,KAAKS,QAAUF,EAEnB,YACIP,KAAKQ,UAAUI,IAAI,CACf6B,SAAU,EACVC,WAAY3D,EAAkBiB,KAAKS,QAAQ,cAC3CkC,cAAe,QAEnB,OAAaC,IAAI5C,KAAKQ,UAAW3B,GACjC,OAAagE,GAAG7C,KAAKQ,UAAW3B,EAAcmB,KAAKW,OAAOmC,KAAK9C,OAEnE,cACI,IAAIqB,EAASrB,KAAK+C,QAClB,GAAK1B,EAAL,CAGA,IAAIJ,EAAQjB,KAAKS,QAAQ,SACrBuC,EAAgBhD,KAAKgD,cACrBzB,EAAYvB,KAAKS,QAAQ,aACzBwC,EAAUjE,EAAuBuC,GAAWrC,OAAOc,KAAKQ,WACxD0C,EAAYD,EAAUD,EACtBG,EAAQ,EAEZ,OADAnD,KAAKoD,iBAAiB/B,EAAQE,EAAW,GACjCN,GACJ,IAAK,QACD,MACJ,IAAK,MACDkC,EAAQD,EACR7B,EAAOgC,QAAQzC,IAAIZ,KAAKsD,kBAAkBjE,EAAwBkC,IAAa4B,GAC/E,MACJ,IAAK,SACDA,EAAQ,GAAKD,EACb7B,EAAOgC,QAAQzC,IAAIZ,KAAKsD,kBAAkBjE,EAAwBkC,IAAa4B,GAC/E9B,EAAOkC,OAAO3C,IAAIZ,KAAKsD,kBAAkBhE,EAAyBiC,IAAa4B,GAC/E,MACJ,IAAK,gBACDA,EAAQ,GAAKD,GAAa7B,EAAOmC,OAAS,GAC1CxD,KAAKoD,iBAAiB/B,EAAQE,EAAW4B,GACzC9B,EAAOgC,QAAQzC,IAAIZ,KAAKsD,kBAAkBjE,EAAwBkC,IAAa,GAC/EF,EAAOkC,OAAO3C,IAAIZ,KAAKsD,kBAAkBhE,EAAyBiC,IAAa,GAC/E,MACJ,IAAK,eACD4B,EAAQ,GAAKD,EAAY7B,EAAOmC,OAChCxD,KAAKoD,iBAAiB/B,EAAQE,EAAW4B,KAGrD,iBAAiB9B,EAAQE,EAAW4B,GAChC9B,EAAOT,IAAIZ,KAAKsD,kBAAkBjE,EAAwBkC,IAAa4B,GAAOvC,IAAIZ,KAAKsD,kBAAkBhE,EAAyBiC,IAAa4B,GAEnJ,mBACI,IAAI9B,EAASrB,KAAK+C,QAClB,GAAK1B,EAAL,CAGA,IAAID,EAAapB,KAAKS,QAAQ,cAC1Bc,EAAYvB,KAAKS,QAAQ,aACzBgD,EAAOrE,EAAwBmC,GAAWrC,OAAOc,KAAKQ,WACtDkD,EAAO1D,KACX,OAAQoB,GACJ,IAAK,QACD,MACJ,IAAK,MACD,eAAKC,GAAQ,WACT,IAAIG,EAAQ,eAAExB,MACV2D,EAAWvE,EAAwBmC,GAAWrC,OAAOsC,GACrD2B,EAAQM,EAAOE,EACnBnC,EAAMZ,IAAI8C,EAAKJ,kBAAkB/D,EAA8BgC,IAAa4B,MAEhF,MACJ,IAAK,SACD,eAAK9B,GAAQ,WACT,IAAIG,EAAQ,eAAExB,MACV2D,EAAWvE,EAAwBmC,GAAWrC,OAAOsC,GACrD2B,EAAQ,IAAMM,EAAOE,GACzBnC,EAAMZ,IAAI8C,EAAKJ,kBAAkB/D,EAA8BgC,IAAa4B,GAAOvC,IAAI8C,EAAKJ,kBAAkB9D,EAA+B+B,IAAa4B,MAE9J,MACJ,IAAK,UACD9B,EAAOT,IAAI8C,EAAKJ,kBAAkB/D,EAA8BgC,IAAa,GAAGX,IAAI8C,EAAKJ,kBAAkB9D,EAA+B+B,IAAa,GAAGX,IAAIxB,EAAwBmC,GAAWtC,KAAM,UAGnN,kBAAkBZ,GACd,OAAK2B,KAAKS,QAAQ,eAGXhB,EAAqBpB,IAFjBA,EAIf,YAAYgD,GACRrB,KAAK+C,QAAU1B,EACf,IAAIE,EAAYvB,KAAKS,QAAQ,aACzBmD,EAAa,EACbC,EAAsB,EACtBC,EAAgB,EACpB,eAAKzC,EAAQ,CAACa,EAAGT,KACb,IAAID,EAAQ,eAAEC,GACdD,EAAMZ,IAAI,CACNC,QAAS,eACT8B,cAAe,QAEnB3D,EAAuBuC,GAAWpC,OAAOqC,EAAO,QAChDA,EAAMuC,YAAYjF,GAClB,IAAIkF,EAAWxC,EAAME,KAAKrE,GACtByE,EAAQkC,EAASlC,OAAS,EAC1B2B,EAAOzD,KAAKiE,UAAUzC,GACtBO,EAAS,eAAUiC,EAASjC,QAAUiC,EAASjC,OAASrE,EAC5DkG,GAAc9B,EACd+B,GAAuB9B,EAAS0B,EAChCK,GAAiBL,IAErB,IAAIS,EAAgBlE,KAAKmE,WAAaL,EAClCH,EAAWnC,IACX,IAAIwC,EAAWxC,EAAME,KAAKrE,GACtBoG,EAAOzD,KAAKiE,UAAUzC,GACtB4C,EAASF,GAAiB,EAAIF,EAASlC,OAAS,GAAK,eAAUkC,EAASjC,QAAUiC,EAASjC,OAASrE,GAAU+F,EAC9GY,EAAcH,GAAiB,EAAIN,EAAaC,EAChDV,EAAQkB,EAAcC,KAAKC,MAAML,EAAgBE,EAASC,GAAe,EAC7E,OAAOZ,EAAON,GAEdH,EAAgB,EACpB,eAAK3B,EAAQ,CAACa,EAAGT,KACb,IAAID,EAAQ,eAAEC,GACVuC,EAAW,eAAEvC,GAAMC,KAAKrE,GACxBoG,EAAOE,EAASnC,GACpBwB,GAAiBS,EACjBjC,EAAMZ,IAAInD,EAAY8D,GAAYyC,EAASrC,SAAW,QAAQf,IAAItD,EAAYiE,GAAYyC,EAASpC,SAAW,KAAKhB,IAAI5B,EAAuBuC,GAAWtC,KAAMwE,GAC/JjC,EAAMgD,SAAS1F,KAEnBkB,KAAKgD,cAAgBA,EAEzB,UAAUvB,GACN,IAAIuC,EAAW,eAAEvC,GAAMC,KAAKrE,GAC5B,OAAO,MAAQ2G,EAASnC,SAAW,EAAI,SAAWmC,EAASnC,SAAW7B,KAAKyE,aAAahD,GAAQzB,KAAK0E,WAAWV,EAASnC,UAE7H,aAAaJ,GACT,OAAOzC,EAAuBgB,KAAKS,QAAQ,cAAcvB,OAAO,eAAEuC,IAEtE,WAAWgC,GACP,OAAOkB,OAAOlB,GAAMmB,MAAM,QAAU,IAAMC,WAAWpB,GAAQzD,KAAK8E,cAAgBrB,EAEtF,SAASpF,GACL,IAAK0G,UAAUvB,OAEX,OADAxD,KAAK8E,cAAgB9E,KAAK8E,eAAiB9E,KAAKgF,iBACzChF,KAAK8E,cAEhB9E,KAAK8E,cAAgBzG,EAEzB,iBACI,IAAI4G,EAAS,EAIb,OAHA,eAAKjF,KAAK+C,QAAS,CAACb,EAAGT,KACnBwD,GAAUjF,KAAKiE,UAAUxC,KAEtBwD,EAEX,WACIjF,KAAKmE,SAASnF,EAAuBgB,KAAKS,QAAQ,cAAcvB,OAAOc,KAAKQ,YAEhF,SACI,GAAKR,KAAK+C,UAAW/C,KAAKQ,UAAU0E,GAAG,WAAvC,CAGAlF,KAAK+C,QAAQoC,SACbnF,KAAKU,WACLV,KAAKQ,UAAU4E,OAAOpF,KAAK+C,SAC3B/C,KAAKqF,YAAYrF,KAAK+C,SACtB/C,KAAKsF,cACLtF,KAAKuF,mBACL,IAAIpH,EAAU6B,KAAKQ,UAAUM,IAAI,GACjCd,KAAK+C,QAAQyC,KAAKrI,GAAc8E,MAAK,WAC7B9D,IAAY,eAAE6B,MAAMyF,SAASC,QAAQvI,GAAc2D,IAAI,IACvD,OAAa6E,eAAe3F,KAAMnB,QAKlD,MAAM+G,UAAY,OACd,qBACI,OAAO,eAAO9F,MAAM+F,qBAAsB,CACtCtE,UAAW,MACXN,MAAO,QACPG,WAAY,UACZ0E,oBAAoB,EACpBC,mBAAmB,EACnBC,wBAAoB,EACpBC,gBAAiB,OACjBC,YAAQ,IAGhB,aACI,OAAO9I,EAEX,eACI,OAAOC,EAEX,gBACI,OAAO2C,KAAKmG,iBAAiBnE,SAAShC,KAAKoG,iBAE/C,QACItG,MAAMuG,QACNrG,KAAKM,WAAWkE,SAAS,GAAG8B,OAAOpJ,EAAW,KAAKoJ,OAAOtG,KAAKO,OAAO,qBACtEP,KAAKuG,cACLvG,KAAKwG,gBAET,cACIxG,KAAKyG,QAAU,aAAezG,KAAKO,OAAO,mBAAqB,IAAIiC,EAAuBxC,KAAKM,WAAYN,KAAKO,OAAOuC,KAAK9C,OAAS,IAAIK,EAAmBL,KAAKM,WAAYN,KAAKO,OAAOuC,KAAK9C,OAElM,gBACIA,KAAKkG,OAASlG,KAAKO,OAAO,WAAa,GAE3C,mBACI,OAAOP,KAAKO,OAAO,aAAsBP,KAAKkG,OAAO1C,OAEzD,iBAAiBhC,EAAOkF,GACpB1G,KAAKkG,OAAOS,KAAK,CACbnF,MAAOA,EACPkF,OAAQA,IAGhB,sBACI,OAAO1G,KAAKkG,OAAO/C,QAEvB,cACInD,KAAKM,WAAWkE,SAAStH,GACzB8C,KAAKyG,QAAQG,YACb9G,MAAM+G,cACN7G,KAAK8G,eACL9G,KAAK+G,iBAET,iBACI/G,KAAKgH,oBAAsBhH,KAAKiH,sBAAsB,sBAE1D,eACIjH,KAAKyG,QAAQnB,cACbtF,KAAKyG,QAAQlB,mBAEjB,aAAa2B,GACTlH,KAAKyG,QAAQ/F,WACbZ,MAAMqH,aAAaD,GACnB,MAAOlH,KAAKoH,mBAAoB,CAC5B,IAAI3F,EAAOzB,KAAKqH,sBAChBrH,KAAKsH,iBAAiB7F,EAAKD,MAAOoE,EAAK,eAAO,CAC1CK,gBAAiBjG,KAAKO,OAAO,mBAC7BgH,aAAcvH,KAAKO,OAAO,gBAC1BiH,gBAAiBxH,KAAKO,OAAO,mBAC7BkH,WAAYzH,KAAKO,OAAO,cACxBmH,YAAa1H,KAAKO,OAAO,eACzBoH,kBAAmB3H,KAAKO,OAAO,qBAC/BqH,eAAgB5H,KAAKO,OAAO,kBAC5B2F,OAAQlG,KAAKkG,QACdzE,EAAKiF,SAEZ1G,KAAKyG,QAAQpB,YAAYrF,KAAK6H,iBAC9BC,aAAa9H,KAAK+H,cAClB/H,KAAK+H,aAAeC,WAAW,KACtBhI,KAAKiI,YACNjI,KAAKyG,QAAQ9F,SAEjBX,KAAKiI,YAAa,EAClBjI,KAAK+H,aAAe,OAG5B,mBAAmBG,GACf,IAAIC,EAAYD,EAAKlE,UAAYkE,EAAKlE,SAASoE,KAC/C,OAAID,EACOnI,KAAKqI,yBAAyBH,EAAMC,GAExCrI,MAAMwI,mBAAmBJ,GAEpC,uBAAuBA,GACnB,IAAIK,EAAYL,EAAKlE,SAASwE,IACzBD,GAGLvI,KAAKyI,iBAAiBP,EAAK/F,YAAaoG,GAE5C,sBAAsBhB,EAAcW,GAChC,OAAIA,EAAKlE,SAASwE,IACPjB,EAAamB,OAASnB,EAAamB,SAAW,iBAElD5I,MAAM6I,sBAAsBpB,EAAcW,GAErD,mBAAmBU,GACXA,GACA5I,KAAK6I,oBAGb,oBACQ7I,KAAK+H,eAGT/H,KAAKiI,YAAa,EAClBjI,KAAKyG,QAAQ9F,UAEjB,WACImH,aAAa9H,KAAK+H,cAClBjI,MAAMgJ,SAASC,MAAM/I,KAAM+E,WAE/B,mBAAmBtD,EAAMuH,EAAU3K,EAAOwB,GAClC,YAAcmJ,GACdhJ,KAAKgH,oBAAoB,CACrB/H,KAAM+J,EACN7I,MAAO9B,EACP+B,UAAU,IAAUP,IAG5BC,MAAMmJ,mBAAmBxH,EAAMuH,EAAU3K,GAE7C,eAAe6J,GACX,OAAQA,EAAKjJ,MACT,IAAK,kBACL,IAAK,SACL,IAAK,YACDe,KAAKkJ,cACL,MACJ,IAAK,QACDlJ,KAAKyG,QAAQnB,cACb,MACJ,IAAK,aACDtF,KAAKyG,QAAQlB,mBACb,MACJ,QACIzF,MAAMqJ,eAAejB,IAGjC,eACI,IAAIkB,EAAUtJ,MAAMuJ,eAIpB,OAHAD,EAAQlJ,2BAA6BoJ,IACjCtJ,KAAKgH,oBAAoBsC,IAEtBF,EAEX,UACIpJ,KAAK6I,qBAGbjD,EAAI2D,UAAY3J,EAChB,eAAkB,QAASgG,GACZ,U,oCC1hBf,gGAYI4D,EAAc,SAASC,EAAWC,EAAOC,GACzC,IAAIC,EAAa,eAAEH,GACfI,EAAeF,EAAWC,EAAWE,aAAeF,EAAWG,YAC/D3L,EAAOuL,EAAW,QAAU,SAC5BK,EAAkBJ,EAAWxL,KAAK,SAASkI,OAAOlI,IAASwL,EAAWxL,KAAK,SAASkI,OAAOlI,IAASyL,EACxG,GAAI,IAAMA,GAAgB,IAAMG,EAC5B,OAAO,EAEX,IAAIC,EAAkB,IAAMJ,GAAgBH,GAAS,EACjDQ,EAAqB,IAAMF,GAAmBN,GAAS,EACvDS,EAAqBN,EAAe,GAAKG,EAAkB,EAC/D,SAAIC,GAAmBC,GAAsBC,SAA7C,GAIAC,EAAoB,SAASX,EAAWY,GACxC,IAAIT,EAAa,eAAEH,GACnB,MAAO,CACHa,SAAU,SAAShB,GACf,GAAI,eAAoBA,KAAOiB,EAAcjB,EAAEkB,QAAQH,GAAiB,eAAEE,GAAarF,GAAGuE,IACtF,QAAID,EAAYI,GAAaN,EAAEI,MAAOJ,EAAEK,YACpCL,EAAEmB,gBAAiB,GACZ,GAIf,IAAIF,M,yJClBZG,EAAcC,GAAQA,EAAKC,WAAa,EACxCC,EAAc,CAACF,EAAMtM,KACrB,IAAIyM,EAAMH,EAAKI,UACXC,EAAcC,EAAU,IAAKN,GAC7BO,EAAW,eAAaC,SAAS9M,GAAQ2M,EAAYI,IAAKJ,EAAYK,KAC1EV,EAAKW,SAASJ,EAAW,EAAG,GAC5B,IACIE,IAAKA,EACLC,IAAKA,GACLJ,EAAU,KAAMN,GAChBY,EAAS,eAAaT,EAAKM,EAAKC,GACpCV,EAAKa,QAAQD,IAEbE,EAAkB,CAClBC,EAAGf,GAAQA,EAAKgB,WAAa,GAAK,EAAI,EACtCC,EAAG,SACHC,EAAG,cACHC,EAAGpB,EACHqB,EAAGrB,EACHsB,EAAG,UACHC,EAAG,WACHC,EAAG,WACHC,EAAG,aACHC,EAAG,aACHC,EAAG,mBAEHC,EAAkB,OAAAC,EAAA,MAAO,GAAI,iBAAqB,CAClDb,EAAG,CAACf,EAAMtM,KACN,IAAImO,EAAQ7B,EAAKgB,WACbc,EAAUD,GAAS,GACnBC,MAActB,SAAS9M,IAG3BsM,EAAK+B,UAAUF,EAAQ,IAAM,KAEjCR,EAAG,CAACrB,EAAMtM,KACN,IAAIsO,EAAiB1B,EAAU,KAAMN,GAAMU,IACvChN,EAAQsO,GACRhC,EAAKW,SAASX,EAAKC,WAAa,GAEpCD,EAAKa,QAAQnN,IAEjB6N,EAAG,CAACvB,EAAMtM,KACN,IAAIuO,EAAOjC,EAAKgB,YAAc,GAC9BhB,EAAK+B,UAAUrO,EAAQ,IAAMuO,EAAO,GAAK,KAE7Cd,EAAGjB,EACHkB,EAAGlB,EACHe,EAAG,CAACjB,EAAMtM,KACFA,EAAQ,GAGZsM,EAAKa,QAAQb,EAAKI,UAAYJ,EAAKkC,SAAW1B,SAAS9M,KAE3DwN,EAAG,CAAClB,EAAMtM,KACN,IAAIyO,EAAcnC,EAAKoC,cACnBC,EAAcrI,OAAOtG,GAAOmF,OAC5ByJ,EAAiBtI,OAAOsG,EAAU,IAAKN,GAAMU,KAAK7H,OAClD0H,EAAWC,SAASxG,OAAOmI,GAAaI,OAAO,EAAGD,EAAiBD,GAAe3O,GACtFsM,EAAKwC,YAAYjC,MAGrBkC,EAAmBC,GAAe5B,EAAgB4B,IAAgB,KAAOA,GAClEC,EAAkB,CAACC,EAAMC,KA6BhC,IA5BA,IAAIvI,EAASuI,EAAWC,OAAOC,KAAKH,GAChC3P,EAAQ,EACRC,EAAM,EACN8P,EAAW,GACXC,EAAQ,SAASC,GACjBjQ,EAAQC,EACRA,EAAMD,EAAQqH,EAAO4I,GAAGrK,OACxB,IAAIsK,EAAUN,EAAWO,SAASF,EAAI,GAAGG,QAAQ,SAAU,IACvD9O,EAASkO,EAAiBU,EAAQ,IACtCH,EAAShH,KAAK,CACVsH,MAAOJ,EAAI,EACXK,OAAQJ,IAAY7I,EAAO4I,GAC3BM,MAAO,CACHvQ,MAAOA,EACPC,IAAKA,GAETiQ,QAASA,EACTP,KAAMtI,EAAO4I,GACbO,OAAQ,WACJ,IAAK,IAAIC,EAAOtJ,UAAUvB,OAAQ0E,EAAO,IAAIoG,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC7ErG,EAAKqG,GAAQxJ,UAAUwJ,GAE3B,OAAOtD,EAAU6C,EAAQ,MAAO5F,IAEpC/I,OAAQmN,EAAgBwB,EAAQ,KAAO,OACvC5O,OAAQA,KAGP2O,EAAI,EAAGA,EAAI5I,EAAOzB,OAAQqK,IAC/BD,EAAMC,GAEV,OAAOF,GAEP1C,EAAY,CAAC6C,EAASnD,EAAM6D,KAC5B,IAAIJ,EAAS,CACTvC,EAAG,CACCT,IAAK,EACLC,IAAK,MAETS,EAAG,CACCV,IAAK,EACLC,IAAK,IAETU,EAAG,CACCX,IAAK,EACLC,IAAK,IAETW,EAAG,CACCZ,IAAK,EACLC,IAAK,IAEToD,GAAI,CACArD,IAAK,EACLC,IAAK,IAAIqD,KAAK/D,EAAKoC,cAAepC,EAAKC,WAAa,EAAG,GAAGG,WAE9Da,EAAG,CACCR,IAAK,EACLC,IAAK,GAETY,EAAG,CACCb,IAAK,EACLC,IAAK,IAETa,EAAG,CACCd,IAAK,EACLC,IAAK,IAETc,EAAG,CACCf,IAAK,EACLC,IAAK,IAETe,EAAG,CACChB,IAAK,EACLC,IAAK,IAETgB,EAAG,CACCjB,IAAK,EACLC,IAAK,KAETK,EAAG,CACCN,IAAK,EACLC,IAAK,IAGb,OAAO+C,EAAOI,GAAiBV,IAAYM,EAAOO,SAE3CC,EAA6B,CAACC,EAAWC,KAChD,IAAK,IAAIjB,EAAI,EAAGA,EAAIgB,EAAUrL,OAAQqK,IAAK,CACvC,IAAIkB,EAAeF,EAAUhB,GAAGM,MAAMtQ,KAAOiR,EAC7C,IAAKD,EAAUhB,GAAGK,QAAUa,EACxB,OAAOlB,EAGf,OAAO,M,oIChKPmB,EAAkB,CAAC,OAAQ,MAAO,QAAS,OAC3CC,EAAkB,CAAC,QAAS,UAAW,UAAW,gBAClDC,EAAa,IACbC,EAAU,GAAKD,EAAa,GAC5BE,EAAW,IAAMD,EACjBE,EAAkB,SAASC,GAC3B,IAAIC,SAAoBD,EACxB,MAAI,WAAaC,EACN,SAEP,WAAaA,QAAc,IAAWD,EAAOE,KACtCF,EAAOE,KAEX,MAEPC,EAAY,CACZC,kBAAmB,CAAC,OAAQ,OAAQ,YACpCR,WAAYA,EACZC,QAASA,EACTC,SAAUA,EACVO,0BAA2B,IAAIjB,KAAK,KAAM,EAAG,GAC7CkB,0BAA2B,WACvB,IAAIC,EAAU,IAAInB,KAClB,OAAO,IAAIA,KAAKmB,EAAQ9C,cAAgB,GAAI8C,EAAQjF,WAAYiF,EAAQ9E,UAAW,GAAI,GAAI,IAFpE,GAI3B+E,aAAc,CACVnF,KAAM,CACFoF,mBAAoB,WAChB,MAAO,cAEXC,WAAYhB,GAEhBiB,KAAM,CACFF,mBAAoB,WAChB,MAAO,SAEXC,WAAYf,GAEhBiB,SAAU,CACNH,mBAAoB,WAChB,IAAII,EAcJ,OAbE,WACE,IAAIC,EAAS,eAAE,WAAWC,KAAK,OAAQ,YACvCD,EAAOE,IAAI,qBACPF,EAAOE,QACPH,EAAkB,qBAJxB,GAOGA,IACDA,EAAkB,wBAEtBV,EAAUK,aAAaI,SAASH,mBAAqB,WACjD,OAAOI,GAEJA,GAEXH,WAAY,IAAIhB,KAAoBC,IAExC,iBAAkB,CACdc,mBAAoB,WAChB,MAAO,uBAEXC,WAAY,IAAIhB,EAAiB,QAAS,UAAW,aAG7DuB,YAAa,CACT5F,KAAM,YACNsF,KAAM,YACNC,SAAU,sBAEdM,mBAAoB,CAChB7F,KAAM,OACNsF,KAAM,OACNC,SAAU,kBAEdO,qBAAsB,SAAS9F,EAAM6E,GACjC,IAAI1B,EAAU2B,EAAUK,aAAaN,GAAMO,qBAC3C,OAAO,OAAkBW,cAAc/F,EAAMmD,IAEjD6C,uBAAwB,SAASpD,GAC7B,IAAI5C,EAAO,OAAkBiG,WAAWrD,GACxC,OAAO,eAAO5C,GAAQA,OAAO,GAEjCkG,eAAgB,SAASC,EAAMC,GAC3B,OAAO,IAAIrC,KAAKoC,EAAMC,EAAQ,EAAG,GAAGhG,WAExCiG,WAAY,SAASnR,EAAUqL,EAAUoE,GACrC,IAAKpE,EACD,OAAOA,GAAY,KAEvB,IAAKrL,GAAYoR,MAAMpR,EAASqR,WAAY,CACxC,IAAIC,EAAM,IAAIzC,KAAK,MACnB7O,EAAW,IAAI6O,KAAKyC,EAAIpE,cAAeoE,EAAIvG,WAAYuG,EAAIpG,WAE/D,IAAI9F,EAAS,IAAIyJ,KAAK7O,EAASuR,WAC3BC,EAAa5B,EAAUK,aAAaR,GAKxC,OAJA,eAAK+B,EAAWrB,YAAY,WACxB,IAAIsB,EAAgB7B,EAAU8B,qBAAqBvR,MACnDiF,EAAOqM,EAAcnS,QAAQ+L,EAASoG,EAAcpS,cAEjD+F,GAEXuM,uBAAwB,SAASC,GAC7B,IAEI5D,EAFA6D,EAAe,EACfC,EAAuB,EAE3B,IAAK9D,EAAI,EAAGA,EAAI4D,EAAajO,SAAUqK,EAC/B4D,EAAa5D,GAAGrK,OAASmO,IACzBD,EAAe7D,EACf8D,EAAuBF,EAAa5D,GAAGrK,QAG/C,OAAOkO,GAEXE,oBAAqB,SAAStC,GAC1B,OAAO,OAAiBsC,oBAAoBtC,IAEhDuC,kBAAmB,SAASvC,GACxB,OAAO,OAAiBuC,kBAAkBvC,IAE9CwC,eAAgB,SAASxC,EAAQyC,EAAYC,GACzC,IAAIC,EAAe5C,EAAgBC,GAC/ByB,EAAQ,EACPkB,IAAgBxC,EAAUmC,oBAAoBK,KAC/ClB,EAAQtB,EAAU+B,uBAAuBO,IAE7C,IAAIG,EAAc,IAAIxD,KAAK,KAAMqC,EAAO,GAAI,GAAI,GAAI,GAAI,KACxD,IAAKkB,GAAgBxC,EAAUoC,kBAAkBI,GAAe,CAC5D,IAAItH,EAAOuH,EAAYnH,UAAYmH,EAAYrF,SAAW4C,EAAU+B,uBAAuBQ,GAC3FE,EAAY1G,QAAQb,GAExB,OAAOuH,GAEXC,cAAe,SAASxH,GACpBA,EAAKyH,WAAW,GAChBzH,EAAK0H,gBAAgB,KAG7B5C,EAAU8B,qBAAuB,CAC7BT,KAAM,CACF5R,OAAQ,cACRC,OAAQ,cACRmT,UAAW,SAASjU,EAAOsM,GACvB,IAAI4H,EAAa,IAAI7D,KAAK/D,EAAKuG,WAE/B,OADAqB,EAAWpF,YAAY9O,GAChB,OAAiBiR,OAAOiD,EAAY,SAE/CC,gBAAY,EACZC,cAAU,GAEd3H,IAAK,CACD5L,OAAQ,UACRC,OAAQ,UACRmT,UAAW,SAASjU,EAAOsM,GACvB,IAAI4H,EAAa,IAAI7D,KAAK/D,EAAKuG,WAE/B,OADAqB,EAAW/G,QAAQnN,GACZ,OAAiBiR,OAAOiD,EAAY,MAE/CC,WAAY,EACZC,cAAU,GAEd1B,MAAO,CACH7R,OAAQ,WACRC,OAAQ,WACRmT,UAAW,SAASjU,GAChB,OAAO,OAAiBqU,gBAAgBrU,IAE5CmU,WAAY,EACZC,SAAU,IAEdjG,MAAO,CACHtN,OAAQ,WACRC,OAAQ,WACRmT,UAAW,SAASjU,GAChB,OAAO,OAAiBiR,OAAO,IAAIZ,KAAK,EAAG,EAAG,EAAGrQ,GAAQ,SAE7DmU,WAAY,EACZC,SAAU,IAEdE,QAAS,CACLzT,OAAQ,aACRC,OAAQ,aACRmT,UAAW,SAASjU,GAChB,OAAO,OAAiBiR,OAAO,IAAIZ,KAAK,EAAG,EAAG,EAAG,EAAGrQ,GAAQ,WAEhEmU,WAAY,EACZC,SAAU,IAEdG,QAAS,CACL1T,OAAQ,aACRC,OAAQ,aACRmT,UAAW,SAASjU,GAChB,OAAO,OAAiBiR,OAAO,IAAIZ,KAAK,EAAG,EAAG,EAAG,EAAG,EAAGrQ,GAAQ,WAEnEmU,WAAY,EACZC,SAAU,IAEdI,aAAc,CACV3T,OAAQ,kBACRC,OAAQ,kBACRmT,UAAW,SAASjU,GAChB,OAAO,OAAiBiR,OAAO,IAAIZ,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGrQ,GAAQ,gBAEtEmU,WAAY,EACZC,SAAU,MAGH,Q,iGClNXK,EAA2B,wBAC3BC,EAA0C,uCAC1CC,EAAsC,mCACtCC,EAAyC,sCACzCC,EAAqC,kCACrCC,EAAyC,sCACzCC,EAA0C,6BAC1CC,GAAY,OAAOC,QAAQ,CAC3BzN,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BC,QAAS,KACTC,eAAgB,KAChBlG,KAAM,MAGdlH,MAAO,WACHrG,KAAKuT,WACLvT,KAAK0T,gBAETA,aAAc,WACV1T,KAAK2T,aAAe3T,KAAKiH,sBAAsB,WAC/CjH,KAAK4T,oBAAsB5T,KAAKiH,sBAAsB,mBAE1DJ,YAAa,WACT7G,KAAKuT,WACLvT,KAAKM,WAAWkE,SAASsO,GACzB9S,KAAK6T,iBACL7T,KAAK8T,kBAETD,eAAgB,WACZ,IAAInQ,EAAO1D,KACPuB,EAAYvB,KAAKO,OAAO,eAAiB,EAAI,EACjDP,KAAK+T,YAAc/T,KAAKsH,iBAAiB,eAAE,OAAQ,aAAQ,CACvDvB,mBAAmB,EACnBiO,KAAM,cACNR,QAAS,SAASlK,GACd5F,EAAKiQ,aAAa,CACdpS,WAAYA,EACZ0S,MAAO3K,KAGf4K,mBAAoB,KAExB,IAAIC,EAAcnU,KAAK+T,YAAYzT,WAAWkE,SAASyO,GAAwCzO,SAASuO,GACxG/S,KAAKoU,YAAcpU,KAAKsH,iBAAiB,eAAE,OAAQ,aAAQ,CACvDvB,mBAAmB,EACnBiO,KAAM,eACNR,QAAS,SAASlK,GACd5F,EAAKiQ,aAAa,CACdpS,UAAWA,EACX0S,MAAO3K,KAGf4K,mBAAoB,KAExB,IAAIG,EAAcrU,KAAKoU,YAAY9T,WAAWkE,SAAS0O,GAAoC1O,SAASwO,GACpGhT,KAAKsU,SAAWtU,KAAKsH,iBAAiB,eAAE,OAAO9C,SAAS4O,GAA0C,aAAQ,CACtGrN,mBAAmB,EACnByN,QAAS,SAASlK,GACd5F,EAAKkQ,oBAAoB,CACrBK,MAAO3K,KAGf4K,mBAAoB,KAExB,IAAIK,EAAWvU,KAAKsU,SAAShU,WAC7BN,KAAKM,WAAW8E,OAAO+O,EAAaI,EAAUF,IAElDP,eAAgB,WACZ9T,KAAKsU,SAAS/T,OAAO,OAAQP,KAAKO,OAAO,UAE7CiU,aAAc,SAASC,EAAcpW,GACjC,IAAIqW,EAAa,IAAMD,EAAe,SAClCE,EAAS3U,KAAK0U,GACdC,IACAA,EAAOpU,OAAO,WAAYlC,GAC1BsW,EAAOrU,WAAWsU,YAAYzB,EAAwC9U,KAG9E8K,eAAgB,SAASjB,GACrB,OAAQA,EAAKjJ,MACT,IAAK,OACDe,KAAK8T,iBACL,MACJ,QACI9T,KAAKuT,SAASrL,OAIf,M,qDCrEX2M,SAAU,IACV,OACAC,GAA4B,yBAC5BC,GAAsB,mBACtBC,GAA4B,yBAC5BC,GAAuB,oBACvBC,GAA+B,4BAC/BC,GAAgC,6BAChCC,GAA8B,eAAaC,GAAA,KAAgB,cAC3DC,GAA0B,iBAC1BC,GAAW,OAAOjC,QAAQ,CAC1BkC,aAAc,WACV,MAAO,QAEX3P,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3B5I,KAAM,IAAI+D,KACV3I,mBAAmB,EACnB0P,aAAc,KACdC,cAAe,KACfC,YAAa,KACbC,SAAU,EACVC,SAAU,EACVC,qBAAqB,EACrBC,WAAY,IAAM,IAAIrH,QAG9B7H,YAAa,WACT7G,KAAKuT,WACLvT,KAAKgW,eAETA,YAAa,WACThW,KAAKM,WAAW8E,OAAOpF,KAAKiW,gBAC5BjW,KAAKkW,8BACLlW,KAAKmW,cACLnW,KAAKoW,uBACLpW,KAAKqW,eACLrW,KAAKsW,iBAETL,aAAc,WAMV,OALAjW,KAAKuW,QAAU,eAAE,WACjBvW,KAAKwW,QAAQ,CACTC,MAAOC,EAAA,KAAoBpH,OAAO,6BAClCqH,KAAM,QACP3W,KAAKuW,SACDvW,KAAKuW,SAEhBJ,YAAa,WACTnW,KAAK4W,MAAQ,eAAE,WAAWC,SAAS7W,KAAKuW,SAKxC,IAJA,IAAIO,EAAU,CACVC,SAAU/W,KAAKgX,oBACfC,aAAc,MAETC,EAAW,EAAGtB,EAAW5V,KAAKO,OAAO,YAAa2W,EAAWtB,EAAUsB,IAAY,CACxFJ,EAAQvZ,IAAMyC,KAAKmX,aACnB,IAAK,IAAIC,EAAW,EAAGvB,EAAW7V,KAAKO,OAAO,YAAa6W,EAAWvB,EAAUuB,IAC5EpX,KAAKqX,YAAYP,EAASM,KAItCD,WAAY,WACR,IAAI5Z,EAAM,cAAW+Z,cAAc,MAGnC,OAFAtX,KAAKwW,QAAQ,OAAQ,MAAO,eAAEjZ,IAC9ByC,KAAK4W,MAAM9V,IAAI,GAAGyW,YAAYha,GACvBA,GAEXia,YAAa,SAASja,EAAKka,GAClBzX,KAAK0X,mBACN1X,KAAK2X,yBAET,eAAEpa,GAAKyC,KAAK0X,mBAAmBD,IAEnCE,uBAAwB,SAASC,GAC7B5X,KAAK0X,mBAAqB,OAASE,QAAc,IAAWA,EAAaA,EAAa5X,KAAKO,OAAO,eAAiB,UAAY,UAEnIsX,YAAa,SAASd,GAClB,IAAIU,EAAO,cAAWH,cAAc,MAChCQ,EAAQ,eAAEL,GAQd,OAPAA,EAAKM,UAAY/X,KAAKgY,oBAAoBjB,GAC1CU,EAAK9Y,aAAa,aAAc,OAAkB+R,cAAcqG,EAAU,OAAckB,uBACxF,gBAAYR,EAAMnC,GAAyByB,GAC3C/W,KAAKwW,QAAQ,CACTG,KAAM,WACNF,MAAOzW,KAAKkY,iBAAiBnB,IAC9Be,GACI,CACHL,KAAMA,EACNK,MAAOA,IAGfT,YAAa,SAASc,EAAQC,GAC1B,IACIrB,SAAUA,EACVE,aAAcA,EACd1Z,IAAKA,GACL4a,EACAlB,GACA,OAAcoB,eAAepB,EAAcF,GAE/CoB,EAAOlB,aAAeF,EACtB,IACIU,KAAMA,EACNK,MAAOA,GACP9X,KAAK6X,YAAYd,GACjBtB,EAAezV,KAAKO,OAAO,gBAC/BP,KAAKwX,YAAYja,EAAKka,GAClBhC,EACAA,EAAa6C,OAAOtY,KAAKuY,yBAAyBxB,EAAUqB,EAAWN,IAEvEL,EAAKe,UAAYxY,KAAKyY,aAAa1B,GAEvCoB,EAAOpB,SAAW/W,KAAK0Y,iBAAiB3B,IAE5CiB,oBAAqB,SAASjB,GAC1B,IAAIgB,EAAYhD,GAUhB,OATI/U,KAAK2Y,aAAa5B,KAClBgB,GAAa,IAAIzR,OAAO2O,MAExBjV,KAAK4Y,kBAAkB7B,IAAa/W,KAAK6Y,eAAe9B,MACxDgB,GAAa,IAAIzR,OAAO0O,KAExBhV,KAAK8Y,aAAa/B,KAClBgB,GAAa,IAAIzR,OAAOwO,KAErBiD,GAEXQ,yBAA0B,SAASxB,EAAUqB,EAAWN,GACpD,MAAO,CACHiB,MAAO,CACHxL,KAAMvN,KAAKyY,aAAa1B,GACxBpM,KAAMoM,EACNiC,KAAMhZ,KAAKwV,gBAEf/L,UAAW,gBAAiBqO,GAC5B7J,MAAOmK,IAGf9B,cAAe,WACXtW,KAAKiZ,yBACL,OAAarW,IAAI5C,KAAKuW,QAASnB,IAC/B,OAAavS,GAAG7C,KAAKuW,QAASnB,GAA6B,KAAM9L,IACxD,eAAEA,EAAE4P,eAAeC,SAASnE,KAC7BhV,KAAKoZ,iBAAiB,CAClBnF,MAAO3K,EACPjL,MAAO,eAAEiL,EAAE4P,eAAexX,KAAK4T,SAK/C2D,uBAAwB,WACpBjZ,KAAKoZ,iBAAmBpZ,KAAKiH,sBAAsB,gBAEvDiP,4BAA6B,WACzB,IAAIR,EAAgB1V,KAAKO,OAAO,iBAChCP,KAAKqZ,sBAAwB/K,MAAMgL,QAAQ5D,GAAiB1V,KAAKuZ,gCAAgC7D,GAAiBA,GAAiB,QAEvI6D,gCAAiC,SAAS7D,GACtC,OAAO,QAEXiD,aAAc,GACdC,kBAAmB,GACnBC,eAAgB,SAAS9B,GACrB,IAAIlI,EAAY,CACZlE,KAAMoM,EACNiC,KAAMhZ,KAAKwV,gBAEf,OAAOxV,KAAKqZ,sBAAsBxK,IAEtCiK,aAAc,GACdL,aAAc,GACdzB,kBAAmB,GACnB0B,iBAAkB,GAClBtC,qBAAsB,SAASoD,GAC3B,GAAKxZ,KAAKO,OAAO,qBAAjB,CAGAiZ,EAAgBA,GAAiBxZ,KAAKO,OAAO,iBAC7C,IAAIkZ,EAAoBzZ,KAAK0Z,oBACzBC,EAAoB3Z,KAAK4Z,eAAeJ,GAC5CC,EAAkB1V,YAAYoR,IAC9BwE,EAAkBnV,SAAS2Q,MAE/BuE,kBAAmB,WACf,OAAO1Z,KAAKuW,QAAQ/Q,KAAK,IAAIc,OAAO6O,MAExC0E,aAAc,SAAS9C,GACnB,GAAIA,EAAU,CACV,IAAI1Y,EAAQ2B,KAAKO,OAAO,SACpB2K,EAAW7M,EAAQ,IAAIqQ,KAAKrQ,GAAS,IAAIqQ,KAC7CxD,EAASM,QAAQuL,EAAShM,WAC1BG,EAASI,SAASyL,EAASnM,YAC3BM,EAASiC,YAAY4J,EAAShK,eAC9B7B,EAASM,QAAQuL,EAAShM,WAC1B/K,KAAKO,OAAO,QAAS2K,QAErBlL,KAAKO,OAAO,QAAS,OAG7B8V,aAAc,WACV,GAAKrW,KAAKO,OAAO,uBAAjB,CAGA,IAAIlC,EAAQ2B,KAAKO,OAAO,SACpBuZ,EAAe9Z,KAAK4Z,eAAevb,GACnC2B,KAAK+Z,eACL/Z,KAAK+Z,cAAchW,YAAYmR,IAEnC4E,EAAatV,SAAS0Q,IACtBlV,KAAK+Z,cAAgBD,IAEzB5B,iBAAkB,SAASvN,GACvB,OAAO3K,KAAKyY,aAAa9N,IAE7BqP,uBAAwB,WACpB,IAAIrP,EAAO3K,KAAKO,OAAO,QACnB6K,EAAMpL,KAAKO,OAAO,OAEtB,OADAoK,EAAO,OAAcsP,iBAAiBja,KAAKwV,eAAgB7K,GACpD,IAAI+D,KAAKtD,GAAOT,EAAOS,EAAMA,EAAMT,IAE9CiP,eAAgB,GAChBM,WAAY,GACZ/Q,eAAgB,SAASjB,GACrB,IACIjJ,KAAMA,EACNZ,MAAOA,GACP6J,EACJ,OAAQjJ,GACJ,IAAK,QACDe,KAAKqW,eACL,MACJ,IAAK,gBACDrW,KAAKoW,qBAAqB/X,GAC1B,MACJ,IAAK,cACD2B,KAAKiZ,yBACL,MACJ,IAAK,gBACL,IAAK,eACDjZ,KAAKkJ,cACL,MACJ,IAAK,aACDlJ,KAAK2X,uBAAuBtZ,GAC5B2B,KAAKuT,SAASrL,GACd,MACJ,IAAK,aACDlI,KAAKmW,cACL,MACJ,QACInW,KAAKuT,SAASrL,OAIf,MCxQXiS,GAA6B,0BAC7B,GAA4B,yBAC5BC,GAAQ,CACRrJ,MAAO,GAASuC,QAAQ,CACpBkC,aAAc,WACV,MAAO,SAEX3P,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3B8G,oBAAgB,EAChBzE,SAAU,EACVC,SAAU,KAGlBG,YAAa,WACThW,KAAKuT,WACLvT,KAAKsa,iBAETnE,YAAa,WACTnW,KAAKuT,WACLvT,KAAKuW,QAAQ/Q,KAAK,IAAIc,OAAO,KAA4B9B,SAAS2V,KAEtEI,mBAAoB,OACpBrC,iBAAkB,SAASvN,GACvB,OAAO,OAAiB2E,OAAO3E,EAAM,aAEzC2P,cAAe,WACX,IAAIE,EAAa,eAAE,QACfC,EAAU,eAAE,WAAWrV,OAAOoV,GAClCxa,KAAKuW,QAAQmE,QAAQD,GACrB,IAAK,IAAIrD,EAAW,EAAGvB,EAAW7V,KAAKO,OAAO,YAAa6W,EAAWvB,EAAUuB,IAC5EpX,KAAK2a,kBAAkBvD,EAAUoD,IAGzCG,kBAAmB,SAASvC,EAAWoC,GACnC,IACII,KAAMC,EACNC,YAAaC,GACb/a,KAAKgb,eAAehb,KAAKib,qBAAuB7C,GAChDN,EAAQ,eAAE,QAAQzH,KAAK,CACvB6K,MAAO,MACPC,KAAMN,IACPtN,KAAKwN,GACR/a,KAAKwX,YAAYgD,EAAY1C,IAEjCsD,oBAAqB,WACjB,OAAO,OAAiB9L,OAAOtP,KAAKO,OAAO,QAAS,iBAExDoY,aAAc,SAAS5B,GACnB,IAAIsE,EAAQrb,KAAKO,OAAO,aAAZP,GACZ,OAAO,OAAUsb,SAASvE,EAAUsE,IAExCzC,kBAAmB,SAAS7B,GACxB,IAAIwE,EAAUvb,KAAKO,OAAO,OACtBib,EAAUxb,KAAKO,OAAO,OAC1B,OAAQ,OAAUkb,YAAY1E,EAAUwE,EAASC,EAAS,SAE9D1C,aAAc,SAAS/B,GACnB,OAAOA,EAASnM,aAAe5K,KAAKO,OAAO,QAAQqK,YAEvD6N,aAAc,SAAS1B,GACnB,OAAO,OAAiBzH,OAAOyH,EAAU,MAE7CiE,eAAgB,SAASlQ,GACrB,IAAI4Q,EAAa1b,KAAKO,OAAO,YACzBob,EAAW7Q,EAAM4Q,EACrB,MAAO,CACHd,KAAM,OAAiBgB,cAAcD,GACrCb,YAAa,OAAiBc,YAAY,eAAeD,KAGjE3E,kBAAmB,WACf,IAAI6E,EAAW,OAAUC,kBAAkB9b,KAAKO,OAAO,SACnDwb,EAAsB/b,KAAKib,qBAAuBY,EAAShP,SAC3D6O,EAAa1b,KAAKO,OAAO,YAK7B,OAJIwb,GAAuB,IACvBA,GAAuBL,GAE3BG,EAASrQ,QAAQqQ,EAAS9Q,UAAYgR,GAC/BF,GAEXnD,iBAAkB,SAAS/N,GAGvB,OAFAA,EAAO,IAAI+D,KAAK/D,GAChBA,EAAKa,QAAQb,EAAKI,UAAY,GACvBJ,GAEXsQ,mBAAoB,WAChB,OAAO,eAAUjb,KAAKO,OAAO,mBAAqBP,KAAKO,OAAO,kBAAoB,OAAiByb,uBAEvGpC,eAAgB,SAASjP,GACrB,OAAO3K,KAAKuW,QAAQ/Q,KAAK,kBAAkBc,OAAO,OAAkBoK,cAAc/F,EAAM,OAAUsN,sBAAuB,QAE7HiC,WAAY,SAASvP,GACjB,OAAO,OAAUsR,iBAAiBtR,EAAM3K,KAAKO,OAAO,SAAW,OAAU0b,iBAAiBtR,EAAM3K,KAAKO,OAAO,SAEhHgZ,gCAAiC,SAAS7D,GACtC,OAAO,SAASxN,GACZ,IAAIgU,EAAiBxG,EAAcyG,MAAK,SAAU1a,GAC9C,OAAO,OAAU6Z,SAAS7Z,EAAMyG,EAAKyC,SAEzC,GAAIuR,EACA,OAAO,MAKvBpL,KAAM,GAASwC,QAAQ,CACnBkC,aAAc,WACV,MAAO,QAEXmD,aAAc,SAAS5B,GACnB,IAAIsE,EAAQrb,KAAKO,OAAO,aAAZP,GACZ,OAAO,OAAUic,iBAAiBlF,EAAUsE,IAEhDzC,kBAAmB,SAAS7B,GACxB,OAAQ,OAAU0E,YAAY1E,EAAU,OAAU+E,kBAAkB9b,KAAKO,OAAO,QAAS,OAAU6b,iBAAiBpc,KAAKO,OAAO,UAEpIuY,aAAc,WACV,OAAO,GAEXL,aAAc,SAAS1B,GACnB,OAAO,OAAiBrE,cAAc,eAAeqE,EAASnM,aAElEoM,kBAAmB,WACf,IAAIqF,EAAcrc,KAAKO,OAAO,QAC1BmB,EAAO,IAAIgN,KAAK2N,GAGpB,OAFA3a,EAAK8J,QAAQ,GACb9J,EAAK4J,SAAS,GACP5J,GAEXgX,iBAAkB,SAAS/N,GAGvB,OAFAA,EAAO,IAAI+D,KAAK/D,GAChBA,EAAKW,SAASX,EAAKC,WAAa,GACzBD,GAEXiP,eAAgB,SAASjP,GACrB,IAAI2R,EAAY,IAAI5N,KAAK/D,GAEzB,OADA2R,EAAU9Q,QAAQ,GACXxL,KAAKuW,QAAQ/Q,KAAK,kBAAkBc,OAAO,OAAkBoK,cAAc4L,EAAW,OAAUrE,sBAAuB,QAElIC,iBAAkB,SAASvN,GACvB,OAAO,OAAiB2E,OAAO3E,EAAM,iBAEzCyQ,oBAAqB,WACjB,OAAO,OAAiB9L,OAAOtP,KAAKO,OAAO,QAAS,SAExD2Z,WAAY,SAASvP,GACjB,OAAO,OAAU4R,SAAS5R,EAAM3K,KAAKO,OAAO,SAAW,OAAUgc,SAAS5R,EAAM3K,KAAKO,OAAO,WAGpGic,OAAQ,GAASlJ,QAAQ,CACrBkC,aAAc,WACV,MAAO,UAEXmD,aAAc,SAAS5B,GACnB,IAAIsE,EAAQrb,KAAKO,OAAO,aAAZP,GACZ,OAAO,OAAUuc,SAASxF,EAAUsE,IAExCzC,kBAAmB,SAAS7B,GACxB,IAAI3L,EAAMpL,KAAKO,OAAO,OAClB8K,EAAMrL,KAAKO,OAAO,OACtB,OAAQ,OAAUkb,YAAY1E,EAAShK,cAAe3B,GAAOA,EAAI2B,cAAe1B,GAAOA,EAAI0B,gBAE/F+L,aAAc,SAAS/B,GACnB,IAAIpM,EAAO,IAAI+D,KAAKqI,GAEpB,OADApM,EAAKW,SAAS,IACN,OAAUmR,WAAW9R,EAAM3K,KAAKO,OAAO,UAEnDkY,aAAc,SAAS1B,GACnB,OAAO,OAAiBzH,OAAOyH,EAAU,SAE7CC,kBAAmB,WACf,IAAIlG,EAAO,OAAU4L,qBAAqB1c,KAAKO,OAAO,SAAW,EACjE,OAAO,OAAUoc,uBAAuB7L,EAAM,EAAG,IAErD4H,iBAAkB,SAAS/N,GAGvB,OAFAA,EAAO,IAAI+D,KAAK/D,GAChBA,EAAKwC,YAAYxC,EAAKoC,cAAgB,GAC/BpC,GAEXyQ,oBAAqB,WACjB,IAAIiB,EAAcrc,KAAKO,OAAO,QAC1Bqc,EAAoB,OAAUF,qBAAqBL,GACnDQ,EAAY,IAAInO,KAAK2N,GACrBS,EAAU,IAAIpO,KAAK2N,GAGvB,OAFAQ,EAAU1P,YAAYyP,GACtBE,EAAQ3P,YAAYyP,EAAoB,GACjC,OAAiBtN,OAAOuN,EAAW,QAAU,IAAM,OAAiBvN,OAAOwN,EAAS,SAE/FC,sBAAuB,SAASV,EAAahe,GACzC,OAAO,OAAUoe,WAAWJ,EAAahe,IAE7Cub,eAAgB,SAASjP,GACrB,IAAI2R,EAAY,IAAI5N,KAAK/D,GAGzB,OAFA2R,EAAU9Q,QAAQ,GAClB8Q,EAAUhR,SAAS,GACZtL,KAAKuW,QAAQ/Q,KAAK,kBAAkBc,OAAO,OAAkBoK,cAAc4L,EAAW,OAAUrE,sBAAuB,QAElIiC,WAAY,SAASvP,GACjB,OAAO,OAAU8R,WAAW9R,EAAM3K,KAAKO,OAAO,SAAW,OAAUkc,WAAW9R,EAAM3K,KAAKO,OAAO,WAGxGyc,QAAS,GAAS1J,QAAQ,CACtBkC,aAAc,WACV,MAAO,WAEXmD,aAAc,SAAS5B,GACnB,IAAIsE,EAAQrb,KAAKO,OAAO,aAAZP,GACZ,OAAO,OAAUyc,WAAW1F,EAAUsE,IAE1CzC,kBAAmB,SAAS7B,GACxB,IAAIyF,EAAS,OAAUE,qBAAqB3F,GACxCkG,EAAY,OAAUP,qBAAqB1c,KAAKO,OAAO,QACvD2c,EAAY,OAAUR,qBAAqB1c,KAAKO,OAAO,QAC3D,OAAQ,OAAUkb,YAAYe,EAAQS,EAAWC,IAErDpE,aAAc,SAAS/B,GACnB,IAAIpM,EAAO,IAAI+D,KAAKqI,GAEpB,OADApM,EAAKW,SAAS,IACN,OAAU6R,YAAYxS,EAAM3K,KAAKO,OAAO,UAEpDkY,aAAc,SAAS1B,GACnB,IAAI8F,EAAY,OAAiBvN,OAAOyH,EAAU,QAC9C+F,EAAU,IAAIpO,KAAKqI,GAEvB,OADA+F,EAAQ3P,YAAY2P,EAAQ/P,cAAgB,GACrC8P,EAAY,MAAQ,OAAiBvN,OAAOwN,EAAS,SAEhE9F,kBAAmB,WACf,IAAIwF,EAAS,OAAUY,wBAAwBpd,KAAKO,OAAO,SAAW,GACtE,OAAO,OAAUoc,uBAAuBH,EAAQ,EAAG,IAEvD9D,iBAAkB,SAAS/N,GAGvB,OAFAA,EAAO,IAAI+D,KAAK/D,GAChBA,EAAKwC,YAAYxC,EAAKoC,cAAgB,IAC/BpC,GAEXiP,eAAgB,SAASjP,GACrB,IAAI2R,EAAY,IAAI5N,KAAK/D,GAIzB,OAHA2R,EAAU9Q,QAAQ,GAClB8Q,EAAUhR,SAAS,GACnBgR,EAAUnP,YAAY,OAAUuP,qBAAqBJ,IAC9Ctc,KAAKuW,QAAQ/Q,KAAK,kBAAkBc,OAAO,OAAkBoK,cAAc4L,EAAW,OAAUrE,sBAAuB,QAElImD,oBAAqB,WACjB,IAAIiB,EAAcrc,KAAKO,OAAO,QAC1B8c,EAAuB,OAAUD,wBAAwBf,GACzDQ,EAAY,IAAInO,KAAK2N,GACrBS,EAAU,IAAIpO,KAAK2N,GAGvB,OAFAQ,EAAU1P,YAAYkQ,GACtBP,EAAQ3P,YAAYkQ,EAAuB,IACpC,OAAiB/N,OAAOuN,EAAW,QAAU,IAAM,OAAiBvN,OAAOwN,EAAS,SAE/F5C,WAAY,SAASvP,GACjB,OAAO,OAAUwS,YAAYxS,EAAM3K,KAAKO,OAAO,SAAW,OAAU4c,YAAYxS,EAAM3K,KAAKO,OAAO,YAI/F,M,uCCpOX+c,GAAiB,cACjBC,GAAsB,mBACtB,GAAsB,mBACtBC,GAAwB,qBACxBC,GAA8B,2BAC9BC,GAA4B,0BAC5BC,GAA+B,4BAC/BC,GAAsB,mBACtBC,GAAsB,mBACtBC,GAA+B,IAC/BC,GAAqB,GACrBC,GAAmB,EACnBC,GAAkC,aAClC,GAA0B,iBAC1BC,GAAoB,CACpBnN,MAAO,EACPD,KAAM,EACN0L,OAAQ,EACRQ,QAAS,GAETmB,GAAa,CACbC,MAAO,QACPC,KAAM,OACNC,OAAQ,SACRC,QAAS,WAGb,SAASC,GAAgBrgB,GACrB,OAAOA,EAAQgb,SAAS0E,IAE5B,IAAIY,GAAW,OAAOnL,QAAQ,CAC1BoL,iBAAkB,IAAM,GACxB7Y,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BoL,mBAAmB,EACnB7Y,oBAAoB,EACpBuW,YAAa,IAAI3N,KACjBrQ,MAAO,KACPugB,6BAAyB,EACzBxT,IAAK,IAAIsD,KAAK,IAAK,GACnBrD,IAAK,IAAIqD,KAAK,IAAK,GACnB2L,oBAAgB,EAChBwE,UAAWV,GAAWC,MACtBU,aAAcX,GAAWC,MACzBW,aAAcZ,GAAWI,QACzBS,iBAAiB,EACjBvJ,aAAc,OACdC,cAAe,KACfC,YAAa,KACbsJ,mBAAoB,KACpBC,gBAAgB,EAChBnJ,WAAY,IAAM,IAAIrH,QAG9ByQ,qBAAsB,WAClB,OAAOnf,KAAKuT,WAAWjN,OAAO,CAAC,CAC3B8Y,OAAQ,WACJ,MAAO,YAAcC,EAAA,KAAQC,OAAOC,aAAeF,EAAA,KAAQG,eAE/DpW,QAAS,CACLrD,mBAAmB,OAI/B0Z,eAAgB,WACZ,OAAO,OAAAlT,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BmM,WAAY,SAASpW,GACjBA,EAAEqW,iBACE,eAAoBrW,GACpBtJ,KAAK4f,gBAAgB,GAErB5f,KAAK6f,yBAAyB,EAAI7f,KAAK8f,sBAG/CC,UAAW,SAASzW,GAChBA,EAAEqW,iBACE,eAAoBrW,GACpBtJ,KAAK4f,iBAAiB,GAEtB5f,KAAK6f,0BAA0B,EAAI7f,KAAK8f,sBAGhDE,QAAS,SAAS1W,GAEd,GADAA,EAAEqW,iBACE,eAAoBrW,GACpBtJ,KAAKigB,kBACF,CACH,GAAIC,GAAA,KAAGC,YAAYngB,KAAKogB,MAAM9f,YAC1B,OAEJN,KAAK6f,0BAA0B,EAAI7f,KAAKogB,MAAM7f,OAAO,eAG7D8f,UAAW,SAAS/W,GAEhB,GADAA,EAAEqW,iBACE,eAAoBrW,GACpBtJ,KAAKsgB,oBACF,CACH,GAAIJ,GAAA,KAAGC,YAAYngB,KAAKogB,MAAM9f,YAC1B,OAEJN,KAAK6f,yBAAyB,EAAI7f,KAAKogB,MAAM7f,OAAO,eAG5DggB,KAAM,SAASjX,GACXA,EAAEqW,iBACF,IAAId,EAAY7e,KAAKO,OAAO,aACxB8b,EAAcrc,KAAKO,OAAO,eAC1B6K,EAAMpL,KAAKwgB,YAAY,OAC3B,IAAIxgB,KAAKogB,MAAMvH,eAAewD,GAA9B,CAGA,IAAI1R,EAAO,OAAU8V,SAAS5B,EAAWxC,EAAajR,GAAOA,EAAM,OAAUsV,qBAAqB7B,EAAWxC,GAC7Grc,KAAK2gB,4BAA4BhW,KAErC9M,IAAK,SAASyL,GACVA,EAAEqW,iBACF,IAAId,EAAY7e,KAAKO,OAAO,aACxB8b,EAAcrc,KAAKO,OAAO,eAC1B8K,EAAMrL,KAAKwgB,YAAY,OAC3B,IAAIxgB,KAAKogB,MAAMvH,eAAewD,GAA9B,CAGA,IAAI1R,EAAO,OAAU8V,SAAS5B,EAAWxC,EAAahR,GAAOA,EAAM,OAAUuV,oBAAoB/B,EAAWxC,GAC5Grc,KAAK2gB,4BAA4BhW,KAErCkW,OAAQ,SAASvX,GACbA,EAAEqW,iBACF3f,KAAK4f,iBAAiB,EAAI5f,KAAK8f,sBAEnCgB,SAAU,SAASxX,GACfA,EAAEqW,iBACF3f,KAAK4f,gBAAgB,EAAI5f,KAAK8f,sBAElCiB,IAAK,OACLC,MAAO,SAAS1X,GACZ,GAAKtJ,KAAKihB,mBAEH,IAAKjhB,KAAKogB,MAAMvH,eAAe7Y,KAAKO,OAAO,gBAAiB,CAC/D,IAAIlC,EAAQ2B,KAAKkhB,qBAAqBlhB,KAAKO,OAAO,gBAClDP,KAAKmhB,WAAW9iB,EAAOiL,SAHvBtJ,KAAKsgB,oBAQrBc,wBAAyB,SAASC,GAC9B,IAAIhjB,EAAQ2B,KAAKO,OAAO8gB,GAAc,SACtC,OAAIrhB,KAAKO,OAAO,2BACLP,KAAKO,OAAO,2BAEnB,eAAUlC,GACH,SAEN,eAASA,GAGP,OAAkBijB,2BAA2BjjB,QAHpD,GAKJkjB,eAAgB,SAASljB,EAAOgjB,GAC5B,OAAO,OAAkBG,gBAAgBnjB,IAE7C8iB,WAAY,SAAS9iB,EAAO4V,GACxB,GAAIA,EAAO,CACP,GAAI,YAAcA,EAAMzE,KAAM,CAC1B,IAAIiS,EAAczhB,KAAKogB,MAAM1G,oBAAoB5Y,IAAI,GACrDmT,EAAMzJ,OAASiX,EAEnBzhB,KAAK0hB,sBAAsBzN,GAE/BjU,KAAKwgB,YAAY,QAASniB,IAE9BmiB,YAAa,SAASa,EAAYM,GAC9B,GAAI,IAAM5c,UAAUvB,OAChB,OAAOxD,KAAKuhB,eAAevhB,KAAKO,OAAO8gB,GAAaA,GAExD,IAAIO,EAAsB5hB,KAAKohB,wBAAwBC,GACvDrhB,KAAKO,OAAO8gB,EAAY,OAAkB3Q,cAAciR,EAAaC,KAEzEC,WAAY,SAAShD,EAAWlU,EAAMmX,EAAQC,GAC1C,OAAQlD,GACJ,KAAKV,GAAWC,MACZzT,EAAKa,QAAQb,EAAKI,UAAY+W,EAASC,GACvC,MACJ,KAAK5D,GAAWE,KACZ1T,EAAKW,SAASX,EAAKC,WAAakX,EAASC,GACzC,MACJ,KAAK5D,GAAWG,OACZ3T,EAAKwC,YAAYxC,EAAKoC,cAAgB+U,EAASC,GAC/C,MACJ,KAAK5D,GAAWI,QACZ5T,EAAKwC,YAAYxC,EAAKoC,cAAgB,GAAK+U,EAASC,KAGhElC,yBAA0B,SAASiC,GAC/B,IAAIE,EAAWhiB,KAAKO,OAAO,eACvB8b,EAAc,IAAI3N,KAAKsT,GACvBnD,EAAY7e,KAAKO,OAAO,aAC5BP,KAAK6hB,WAAWhD,EAAWxC,EAAayF,EAAQ,GAChD,IAAItG,EAAUxb,KAAKiiB,cACf1G,EAAUvb,KAAKkiB,cACfC,EAA8BniB,KAAKoiB,wBAAwBvD,EAAWxC,EAAa2F,GACnFK,EAAuB,eAAQhG,EAAad,EAASC,IAAY2G,EACjEG,EAAc,IAAI5T,KAAK2N,GAC3B,MAAOgG,EAAsB,CACzB,IAAKriB,KAAKogB,MAAMvH,eAAeyJ,GAAc,CACzCjG,EAAciG,EACd,MAEJtiB,KAAK6hB,WAAWhD,EAAWyD,EAAaR,EAAQ,GAChDK,EAA8BniB,KAAKoiB,wBAAwBvD,EAAWyD,EAAaN,GACnFK,EAAuB,eAAQC,EAAa/G,EAASC,IAAY2G,EAEjEniB,KAAKogB,MAAMvH,eAAemJ,IAAahiB,KAAKogB,MAAMvH,eAAewD,GACjErc,KAAK4f,gBAAgBkC,EAAS,EAAI,GAAK,GAEvC9hB,KAAKO,OAAO,cAAe8b,IAGnC,oBAAoBwC,EAAW0D,EAAOC,GAClC,OAAQ3D,GACJ,KAAKV,GAAWC,MACZ,OAAOmE,EAAM3X,aAAe4X,EAAM5X,WACtC,KAAKuT,GAAWE,KACZ,OAAOkE,EAAME,YAAcD,EAAMC,UACrC,KAAKtE,GAAWG,OACZ,OAAOnT,SAASoX,EAAME,UAAY,MAAQtX,SAASqX,EAAMC,UAAY,IACzE,KAAKtE,GAAWI,QACZ,OAAOpT,SAASoX,EAAME,UAAY,OAAStX,SAASqX,EAAMC,UAAY,OAGlF,wBAAwB5D,EAAW0D,EAAOC,GACtC,OAAQ3D,GACJ,KAAKV,GAAWC,MACZ,OAAQ1S,EAAI6W,EAAM3X,WAAY8X,EAAIF,EAAM5X,WAAY+X,EAAMre,KAAKqe,IAAIjX,EAAIgX,GAAIpe,KAAK8G,IAAIuX,EAAK,GAAKA,IAAS,EAC3G,KAAKxE,GAAWE,KACZ,OAAO/Z,KAAKqe,IAAIJ,EAAME,UAAYD,EAAMC,YAAc,EAC1D,KAAKtE,GAAWG,OACZ,OAAOha,KAAKqe,IAAIJ,EAAME,UAAYD,EAAMC,YAAc,GAC1D,KAAKtE,GAAWI,QACZ,OAAOja,KAAKqe,IAAIJ,EAAME,UAAYD,EAAMC,YAAc,IAE9D,IAAI/W,EAAGgX,EAAGC,GAEdhC,4BAA6B,WACzB,IAMIiC,EACAC,EAPAb,EAAWjd,UAAUvB,OAAS,QAAK,IAAWuB,UAAU,GAAKA,UAAU,GAAK/E,KAAKO,OAAO,eACxF8b,EAAc,IAAI3N,KAAKsT,GACvBnD,EAAY7e,KAAKO,OAAO,aACxBuiB,GAA0B9iB,KAAK+iB,oBAAoB1G,GACnD2G,EAAyBF,EACzBG,EAA0BH,EAG1BR,EAAc,IAAI5T,KAAK2N,GACvB6G,EAAe,IAAIxU,KAAK2N,GAC5B,EAAG,CACC,GAAI2G,EAAwB,CACxB3G,EAAciG,EACd,MAEJ,GAAIW,EAAyB,CACzB5G,EAAc6G,EACd,MAEJljB,KAAK6hB,WAAWhD,EAAWyD,EAAa,EAAG,GAC3CtiB,KAAK6hB,WAAWhD,EAAWqE,EAAc,GAAI,GAC7CN,EAA2B5iB,KAAKmjB,oBAAoBtE,EAAWyD,EAAaN,GAC5Ea,EAA4B7iB,KAAKmjB,oBAAoBtE,EAAWqE,EAAclB,GAC9EgB,EAAyBJ,IAA6B5iB,KAAK+iB,oBAAoBT,GAC/EW,EAA0BJ,IAA8B7iB,KAAK+iB,oBAAoBG,SAC5EN,GAA4BC,GACrC7iB,KAAKO,OAAO,cAAe8b,IAE/B0G,oBAAqB,SAASpY,GAC1B,IAAI6Q,EAAUxb,KAAKiiB,cACf1G,EAAUvb,KAAKkiB,cACnB,OAAQ,eAAQvX,EAAM4Q,EAASC,IAAYxb,KAAKogB,MAAMvH,eAAelO,IAEzEtE,MAAO,WACHrG,KAAKuT,WACLvT,KAAKojB,oBACLpjB,KAAKqjB,mBACLrjB,KAAK0T,gBAET0P,kBAAmB,WACf,IAAIrE,EAAe/e,KAAKO,OAAO,gBAC3Bue,EAAe9e,KAAKO,OAAO,gBAC3Bse,EAAY7e,KAAKO,OAAO,aACxB2d,GAAkBY,GAAgBZ,GAAkBa,KAGpDb,GAAkBW,GAAaX,GAAkBY,GACjD9e,KAAKO,OAAO,YAAaue,GAClBZ,GAAkBW,GAAaX,GAAkBa,IACxD/e,KAAKO,OAAO,YAAawe,KAGjCsE,iBAAkB,WACd,IAAIhH,EAAcrc,KAAKsjB,mBAAmBtjB,KAAKwgB,YAAY,WAAaxgB,KAAKsjB,mBAAmBtjB,KAAKO,OAAO,gBAC5GP,KAAKO,OAAO,cAAe8b,IAE/BiH,mBAAoB,SAAS3Y,GAEzB,OADAA,EAAO,OAAU4Y,cAAc5Y,EAAM3K,KAAKkiB,cAAeliB,KAAKiiB,eACvD,eAAUtX,GAAQ3K,KAAKwjB,SAAS7Y,GAAQA,GAEnD+I,aAAc,WACV1T,KAAKoZ,iBAAmBpZ,KAAKiH,sBAAsB,eACnDjH,KAAKyjB,oBAAsBzjB,KAAKiH,sBAAsB,uBAE1Dyc,eAAgB,WACZ1jB,KAAK2jB,iBAAiBC,oBAAoB,CACtCnM,KAAM,IAAI,SAAiB,SAAUrO,GACjC,IAAI1H,EAAO0H,EAAQ2P,MACnB,eAAE3P,EAAQK,WAAWrE,OAAO,eAAE,UAAUmI,KAAK7L,GAAQA,EAAK6L,MAAQ5I,OAAOjD,UAGjF1B,KAAKuT,YAETsQ,mBAAoB,SAASlZ,GACrBuV,GAAA,KAAGC,YAAYngB,KAAK8jB,iBACpB5D,GAAA,KAAG6D,KAAK/jB,KAAK8jB,gBAAgB,GAEjC,IAAI1Y,EAAMpL,KAAKkiB,cACX7W,EAAMrL,KAAKiiB,cACf,GAAI7W,EAAMC,EACNrL,KAAKO,OAAO,cAAe,IAAImO,UADnC,CAIA,IAAIsV,EAAiBhkB,KAAKsjB,mBAAmB3Y,GAC7C,GAAIA,EAAKuG,YAAc8S,EAAe9S,UAAtC,CAIA,IAAI4Q,EAAS9hB,KAAKikB,gBAAgBjkB,KAAKogB,MAAM7f,OAAO,QAASyjB,GACzD,IAAMlC,IAAW9hB,KAAKihB,mBAAqBjhB,KAAKkkB,0BAChDpC,EAAS,GAET9hB,KAAKogB,OAAS,IAAM0B,IAAW9hB,KAAKmkB,oBACpCnkB,KAAKokB,UAAUtC,EAAQkC,IAEvBhkB,KAAKqkB,mBACLrkB,KAAKskB,kBAAkBN,GACvBhkB,KAAKukB,cAAcP,SAZnBhkB,KAAKO,OAAO,cAAe,IAAImO,KAAKsV,MAe5CM,kBAAmB,SAAS3Z,IACpB3K,KAAKO,OAAO,mBAAqBie,GAAgBxe,KAAKwkB,kBACtDxkB,KAAKogB,MAAM7f,OAAO,gBAAiBoK,IAG3CuX,YAAa,WACT,OAAIliB,KAAKoL,MAGTpL,KAAKoL,IAAMpL,KAAKwgB,YAAY,QAAU,IAAI9R,KAAK,IAAK,IAFzC1O,KAAKoL,KAKpB6W,YAAa,WACT,OAAIjiB,KAAKqL,MAGTrL,KAAKqL,IAAMrL,KAAKwgB,YAAY,QAAU,IAAI9R,KAAK,IAAK,IAFzC1O,KAAKqL,KAKpB4Y,gBAAiB,SAASpH,EAAWC,GACjC,IAII2H,EAJA5F,EAAY7e,KAAKO,OAAO,aAC5B,GAAIse,IAAcV,GAAWC,MACzB,OAAOpe,KAAK0kB,iBAAiB7H,EAAWC,GAG5C,OAAQ+B,GACJ,KAAKV,GAAWI,QACZkG,EAAiB,IACjB,MACJ,KAAKtG,GAAWG,OACZmG,EAAiB,GACjB,MACJ,QACIA,EAAiB,EAEzB,OAAOtZ,SAAS2R,EAAQ/P,cAAgB0X,GAAkBtZ,SAAS0R,EAAU9P,cAAgB0X,IAEjGC,iBAAkB,SAAS7H,EAAWC,GAClC,IAAI6H,EAAa7H,EAAQ/P,cAAgB8P,EAAU9P,cAC/C6X,EAAc9H,EAAQlS,WAAaiS,EAAUjS,WACjD,OAAO,GAAK+Z,EAAaC,GAE7BhF,gBAAiB,SAASkC,GACtB,IAAI9hB,KAAK6kB,mBAAT,CAGA7kB,KAAK6kB,oBAAqB,EAC1B,IAAIla,EAAO3K,KAAK8kB,iBAAiBhD,EAAS9hB,KAAK8f,qBAC/C9f,KAAK2gB,4BAA4BhW,GACjC3K,KAAK+kB,uBAAyB/c,WAAW,KACrChI,KAAK6kB,oBAAqB,MAGlC/E,kBAAmB,WACf,OAAO9f,KAAKO,OAAO,eAAiB,EAAI,GAE5CukB,iBAAkB,SAAShD,EAAQnX,GAC/B,IAAIqa,EACJra,EAAO3K,KAAKwjB,SAAS,QAAUwB,EAAQra,SAAS,IAAWqa,EAAQA,EAAQhlB,KAAKO,OAAO,gBACvF,IAAI0kB,EAAata,EAAKI,UAClBma,EAAa,OAAUC,qBAAqBnlB,KAAKO,OAAO,cAAgBuhB,EAC5EnX,EAAKa,QAAQ,GACbb,EAAKW,SAASX,EAAKC,WAAasa,GAChC,IAAIE,EAAU,OAAUhJ,iBAAiBzR,GAAMI,UAE/C,OADAJ,EAAKa,QAAQyZ,EAAaG,EAAUA,EAAUH,GACvCta,GAEX6Z,aAAc,WACV,OAAOxkB,KAAKM,YAEhBuG,YAAa,WACT7G,KAAKqlB,uBACLrlB,KAAKuT,WACL,IAAIjT,EAAWN,KAAKM,WACpBA,EAASkE,SAAS8Y,IAClBtd,KAAKmW,cACL7V,EAAS8E,OAAOpF,KAAK4W,OACrB5W,KAAKslB,eACLtlB,KAAKqkB,mBACL/jB,EAAS8E,OAAOpF,KAAKulB,WAAWjlB,YAChCN,KAAKwlB,mBACLxlB,KAAKylB,gBACLzlB,KAAK0lB,sBACL1lB,KAAKukB,gBACLvkB,KAAK2gB,+BAETgF,QAAS,WACL3lB,KAAKuT,WACLvT,KAAKskB,kBAAkBtkB,KAAKO,OAAO,iBAEvC4V,YAAa,WACJnW,KAAK8jB,iBACN9jB,KAAK4W,MAAQ,eAAE,SAASpS,SAAS+Y,IACjCvd,KAAK8jB,eAAiB,eAAE,SAAStf,SAASmZ,IAC1C3d,KAAK4W,MAAMxR,OAAOpF,KAAK8jB,kBAG/B,wBACI,OAAO9jB,KAAKuT,WAAWjN,OAAO,CAACtG,KAAKogB,SAExCkF,aAAc,WACVtlB,KAAKM,WAAWkE,SAASoZ,GAAsB,IAAM5d,KAAKO,OAAO,cACjE,IAAI8b,EAAcrc,KAAKO,OAAO,eAE9B,GADAP,KAAKogB,MAAQpgB,KAAK4lB,oBAAoBvJ,GAClC,iBAAa,CACb,IAAIwJ,EAAa7lB,KAAK8kB,kBAAkB,EAAGzI,GAC3Crc,KAAK8lB,YAAc9lB,KAAK+lB,iBAAiBF,GAAc7lB,KAAK4lB,oBAAoBC,GAAc,KAC9F,IAAIG,EAAYhmB,KAAK8kB,iBAAiB,EAAGzI,GACzC2J,EAAUxa,QAAQ,GAClBxL,KAAKimB,WAAajmB,KAAK+lB,iBAAiBC,GAAahmB,KAAK4lB,oBAAoBI,GAAa,KAE/FhmB,KAAKkmB,mBAETN,oBAAqB,SAASjb,GAC1B,IAAIwb,EAAe,GAAMnmB,KAAKO,OAAO,cACjC6lB,EAAQ,eAAE,SAASvP,SAAS7W,KAAK8jB,gBACjCpd,EAAS1G,KAAKqmB,YAAY1b,GAC9B,OAAO3K,KAAKsH,iBAAiB8e,EAAOD,EAAczf,IAEtD2f,YAAa,SAAS1b,GAClB,IAAI+K,EAAgB1V,KAAKO,OAAO,iBAEhC,OADAmV,EAAgB,eAAWA,GAAiB1V,KAAKsmB,iBAAiB5Q,EAAc5S,KAAK9C,OAAS0V,EACvF,CACH/K,KAAMA,EACNS,IAAKpL,KAAKkiB,cACV7W,IAAKrL,KAAKiiB,cACV5H,eAAgBra,KAAKO,OAAO,kBAC5BlC,MAAO2B,KAAKwgB,YAAY,SACxB+F,cAAU,EACVxgB,kBAAmB/F,KAAKO,OAAO,qBAC/Boe,kBAAmB3e,KAAKO,OAAO,qBAC/BmV,cAAeA,EACfC,YAAa3V,KAAKwmB,kBAAkB1jB,KAAK9C,MACzCyV,aAAczV,KAAKymB,qBAAqB,gBACxC3Q,oBAAqB9V,KAAKihB,kBAC1BlL,WAAY/V,KAAKO,OAAO,gBAGhC+lB,iBAAkB,SAASI,GACvB,IAAIhjB,EAAO1D,KACX,OAAO,SAASmY,GAIZ,OAHA,OAAA5L,EAAA,MAAO4L,EAAQ,CACXwO,UAAWjjB,IAERgjB,EAAKvO,KAGpB4N,iBAAkB,SAASpb,GACvB,IAAIkU,EAAY7e,KAAKO,OAAO,aACxB6K,EAAM,OAAUwb,uBAAuB/H,EAAW7e,KAAKkiB,eACvD7W,EAAM,OAAUwb,uBAAuBhI,EAAW7e,KAAKiiB,eAC3D,OAAO,OAAUxG,YAAY9Q,EAAMS,EAAKC,IAE5C6a,gBAAiB,WACb,gBAAKlmB,KAAKogB,MAAM9f,WAAY,CACxBwmB,KAAM,EACNC,IAAK,IAET/mB,KAAK8lB,aAAe,gBAAK9lB,KAAK8lB,YAAYxlB,WAAY,CAClDwmB,KAAM9mB,KAAKgnB,kBAAkB,GAC7BD,IAAK,IAET/mB,KAAKimB,YAAc,gBAAKjmB,KAAKimB,WAAW3lB,WAAY,CAChDwmB,KAAM9mB,KAAKgnB,iBAAiB,GAC5BD,IAAK,KAGbC,iBAAkB,SAASC,GACvB,IAAIC,EAAgBlnB,KAAKO,OAAO,eAAiB,EAAI,EACrD,OAAO,IAAM0mB,EAAcC,EAAgB,KAE/CV,kBAAmB,SAASld,GACxB,IAAIuV,EAAY7e,KAAKO,OAAO,aACxB4mB,EAAW,OAAUC,YAAYvI,GACjCwI,EAAiBrnB,KAAKihB,kBAC1B,GAAIkG,IAAaE,EACbrnB,KAAKsgB,cAAchX,EAAE2K,MAAMiF,mBACxB,CACH,IAAIhO,EAAWlL,KAAKkhB,qBAAqB5X,EAAEjL,OAC3C2B,KAAKmhB,WAAWjW,EAAU5B,EAAE2K,OAC5BjU,KAAKoZ,iBAAiB9P,KAG9B4X,qBAAsB,SAASvW,GAC3B,IAAI1F,EAAS,IAAIyJ,KAAK/D,GAClB2c,EAAetnB,KAAKwgB,YAAY,SAOpC,OANI8G,IACAriB,EAAOyH,SAAS4a,EAAa3b,YAC7B1G,EAAOsiB,WAAWD,EAAaE,cAC/BviB,EAAOmN,WAAWkV,EAAaG,cAC/BxiB,EAAOoN,gBAAgBiV,EAAaI,oBAEjCziB,GAEXgc,gBAAiB,WACb,OAAOjhB,KAAKO,OAAO,eAAiBP,KAAKO,OAAO,iBAEpD+f,cAAe,SAAS7I,GACpB,IAAIoH,EAAY7e,KAAKO,OAAO,aAC5B,IAAIP,KAAKihB,kBAAT,CAGA,IAAIkG,EAAW,OAAUC,YAAYvI,GACrC,GAAKsI,EAAL,CAGA,IAAIQ,EAAiB3nB,KAAKogB,MAAM7f,OAAO,kBAAoBP,KAAKogB,MAAM7f,OAAO,QACzEkX,IACAkQ,EAAiB,eAAElQ,GAAM/V,KAAK,KAElC1B,KAAKkkB,yBAA0B,EAC/BlkB,KAAKO,OAAO,cAAeonB,GAC3B3nB,KAAKO,OAAO,YAAa4mB,GACzBnnB,KAAKkkB,yBAA0B,EAC/BlkB,KAAKqkB,mBACLrkB,KAAK4nB,mBACL5nB,KAAK2gB,8BACL3gB,KAAKskB,kBAAkBtkB,KAAKsjB,mBAAmBtjB,KAAKO,OAAO,oBAE/D8jB,iBAAkB,WACTrkB,KAAKulB,aACNvlB,KAAKulB,WAAa,IAAI,GAAU,eAAE,SAAUvlB,KAAK6nB,qBAErD7nB,KAAKulB,WAAWhlB,OAAO,OAAQP,KAAKogB,MAAMhF,uBAC1Cpb,KAAK8nB,4BAETD,iBAAkB,WACd,MAAO,CACHta,KAAMvN,KAAKogB,MAAMhF,sBACjB5H,QAASxT,KAAK+nB,uBAAuBjlB,KAAK9C,MAC1CyT,eAAgBzT,KAAKigB,YAAYnd,KAAK9C,MACtC4X,WAAY5X,KAAKO,OAAO,gBAGhCwnB,uBAAwB,SAASze,GAC7B,IAAI+S,EAAcrc,KAAK8kB,iBAAiBxb,EAAE/H,UAAWvB,KAAKO,OAAO,gBACjEP,KAAK2gB,4BAA4BtE,IAErC4D,YAAa,WACT,IAAIpB,EAAY7e,KAAKO,OAAO,aACxB4mB,EAAW,OAAUa,UAAUnJ,GAC9BsI,IAAYnnB,KAAKioB,gBAAgBpJ,KAGtC7e,KAAKO,OAAO,YAAa4mB,GACzBnnB,KAAKqkB,mBACLrkB,KAAK4nB,mBACL5nB,KAAK2gB,8BACL3gB,KAAKskB,kBAAkBtkB,KAAKsjB,mBAAmBtjB,KAAKO,OAAO,mBAE/D0nB,gBAAiB,SAASpJ,GACtB,IAAIzT,EAAMpL,KAAKkiB,cACX7W,EAAMrL,KAAKiiB,cACf,OAAO,OAAUxB,SAAS5B,EAAWzT,EAAKC,IAAQrL,KAAKO,OAAO,kBAAoBse,GAEtFiJ,yBAA0B,WACtB9nB,KAAKulB,WAAW/Q,aAAa,QAAS,eAAUxU,KAAKkoB,iBAAiB,UACtEloB,KAAKulB,WAAW/Q,aAAa,QAAS,eAAUxU,KAAKkoB,iBAAiB,WAE1E1C,iBAAkB,WACTxlB,KAAKmoB,aACNnoB,KAAKmoB,WAAanoB,KAAKsH,iBAAiBtH,KAAKM,WAAY,OAAW,CAChE8nB,QAASpoB,KAAKqoB,mBAAmBvlB,KAAK9C,MACtCsoB,UAAWtoB,KAAKuoB,oBAAoBzlB,KAAK9C,MACzCwoB,MAAOxoB,KAAKyoB,iBAAiB3lB,KAAK9C,MAClC0oB,aAAc1oB,KAAK2oB,WAAW7lB,KAAK9C,UAI/CqoB,mBAAoB,SAAS/e,GACzB4W,GAAA,KAAG6D,KAAK/jB,KAAK8jB,gBAAgB,GAC7Bxa,EAAE2K,MAAM2U,cAAgB5oB,KAAKkoB,iBAAiB,QAAU,EAAI,EAC5D5e,EAAE2K,MAAM4U,eAAiB7oB,KAAKkoB,iBAAiB,QAAU,EAAI,GAEjEA,iBAAkB,SAASjpB,GACvB,IAAI+Z,EACA8P,EAAQ9oB,KAAKO,OAAO,cAMxB,MALI,SAAWtB,EACX+Z,EAAO8P,EAAQ9oB,KAAK8lB,YAAc9lB,KAAKimB,WAChC,SAAWhnB,IAClB+Z,EAAO8P,EAAQ9oB,KAAKimB,WAAajmB,KAAK8lB,aAEnC9M,GAEXuP,oBAAqB,SAASjf,GAC1B,IAAIwY,EAASxY,EAAE2K,MAAM6N,OACrB,gBAAK9hB,KAAK8jB,eAAgB,CACtBgD,KAAMhF,EAAS9hB,KAAK2oB,aACpB5B,IAAK,IAET/mB,KAAK+oB,wBAAwBjH,IAEjC2G,iBAAkB,SAASnf,GACvB,IAAI0f,EAAe1f,EAAE2K,MAAM+U,aACvBC,EAAcD,EAAmBA,EAAe1kB,KAAKqe,IAAIqG,GAA5B,EACjC,GAAI,IAAMC,EAAV,CAIA,IAAIte,EAAO3K,KAAK8kB,kBAAkBmE,EAAajpB,KAAK8f,qBAChD9f,KAAKkpB,sBAAsBve,KAEvBA,EADAse,GAAc,EACP,IAAIva,KAAK1O,KAAKkiB,eAEd,IAAIxT,KAAK1O,KAAKiiB,gBAG7BjiB,KAAKO,OAAO,cAAeoK,QAXvB3K,KAAKmpB,gBAAgB,EAAGrL,KAahC6K,WAAY,WAIR,OAHK3oB,KAAKopB,kBACNppB,KAAKopB,gBAAkB,eAASppB,KAAKM,aAElCN,KAAKopB,iBAEhBL,wBAAyB,SAASjH,GAC9BA,GAAU9hB,KAAK8f,oBACf,IAAI9G,EAAOhZ,KAAKogB,MACZ0B,EAAS,IAAM9hB,KAAK8lB,YACpB9M,EAAOhZ,KAAK8lB,YACLhE,GAAU,IAAM9hB,KAAKimB,aAC5BjN,EAAOhZ,KAAKimB,YAEhBjmB,KAAKulB,WAAWhlB,OAAO,OAAQyY,EAAKoC,wBAExC8N,sBAAuB,SAASve,GAC5B,IAAI3K,KAAKogB,MAAMlG,WAAWvP,GAA1B,CAGA,IAAIS,EAAMpL,KAAKkiB,cACX7W,EAAMrL,KAAKiiB,cACX+B,EAAiB,OAAUT,cAAc5Y,EAAMS,EAAKC,GACxD,OAAO2Y,IAAmB5Y,GAAO4Y,IAAmB3Y,IAExDoa,cAAe,WACX,IAAIzG,EAAkBhf,KAAKO,OAAO,mBAClC,GAAIye,EAAiB,CACjB,IAAIqK,EAAerpB,KAAKsH,iBAAiB,eAAE,OAAQ,aAAQ,CACvDvB,mBAAmB,EACnBwH,KAAMmJ,EAAA,KAAoBpH,OAAO,8BACjCkE,QAAS,SAAStL,GACdlI,KAAKspB,aAAaphB,IACpBpF,KAAK9C,MACPkU,mBAAoB,KACrB5T,WAAWkE,SAASiZ,IACvBzd,KAAKupB,SAAW,eAAE,SAAS/kB,SAASgZ,IAAuBpY,OAAOikB,GAClErpB,KAAKM,WAAW8E,OAAOpF,KAAKupB,UAEhCvpB,KAAKM,WAAWsU,YAAY8I,GAA2BsB,IAE3DqG,qBAAsB,WAClBrlB,KAAKwpB,gBAAkB,eAAE,WAAWnZ,KAAK,OAAQ,UAAUwG,SAAS7W,KAAKM,YACzEN,KAAKypB,gBAAgBzpB,KAAKO,OAAO,WAErCkpB,gBAAiB,SAASprB,GACtB,IAAIqrB,EAAY1pB,KAAKuhB,eAAeljB,GACpC2B,KAAK2pB,oBAAoBrZ,IAAI,OAAkBI,cAAcgZ,EAAWzL,MAE5E0L,kBAAmB,WACf,OAAO3pB,KAAKwpB,iBAEhB5B,iBAAkB,WAEd,OADA1H,GAAA,KAAG6D,KAAK/jB,KAAKogB,MAAM9f,YAAY,GACxBN,KAAK4pB,kBAAkB5pB,KAAKogB,MAAOrC,GAAoBC,GAAkBF,IAA8B+L,WAElHD,kBAAmB,SAAS5Q,EAAM8Q,EAAMC,EAAIC,GACxC,OAAO9J,GAAA,KAAG+J,QAAQjR,EAAK1Y,WAAY,CAC/BkP,KAAM,MACNsa,KAAM,CACFI,MAAOJ,EACPK,QAASL,GAEbC,GAAI,CACAG,MAAOH,EACPI,QAASJ,GAEbC,SAAUA,KAGlB5F,UAAW,SAAStC,EAAQzjB,GACxB,GAAI,IAAMyjB,GAAU,IAAMxd,KAAKqe,IAAIb,IAAW9hB,KAAK+lB,iBAAiB1nB,GAAQ,CACxE,IAAI+rB,EAAUpqB,KAAK4lB,oBAAoBvnB,GACnCyjB,EAAS,GACT9hB,KAAKimB,YAAcjmB,KAAKimB,WAAW3lB,WAAW+pB,SAC9CrqB,KAAKimB,WAAamE,IAElBpqB,KAAK8lB,aAAe9lB,KAAK8lB,YAAYxlB,WAAW+pB,SAChDrqB,KAAK8lB,YAAcsE,GAEvBpqB,KAAKkmB,kBAET,IAAIgB,EAAgBlnB,KAAK8f,oBACrBwK,EAAaxI,EAAS,EAAI,EAAIA,EAAS,GAAK,EAAI,EAChDyI,GAAerD,EAAgBoD,EAAatqB,KAAK2oB,aACjD6B,EAAuBxqB,KAAK8jB,eAAehV,WAAWgY,KACtD0D,IAAyBD,IACrBvqB,KAAKyqB,4BACLzqB,KAAK0qB,4BAA4B5I,EAAQzjB,GAEzC2B,KAAKmpB,gBAAgBoB,EAAazM,IAA8B6M,KAAK3qB,KAAK0qB,4BAA4B5nB,KAAK9C,KAAM8hB,EAAQzjB,MAIrI8qB,gBAAiB,SAASY,EAAIC,GAC1B,OAAO9J,GAAA,KAAG+J,QAAQjqB,KAAK8jB,eAAgB,CACnCtU,KAAM,QACNsa,KAAM,CACFhD,KAAM9mB,KAAK8jB,eAAehV,WAAWgY,MAEzCiD,GAAI,CACAjD,KAAMiD,GAEVC,SAAUA,KAGlBxG,SAAUnlB,GAAS,IAAIqQ,KAAKrQ,GAC5BirB,aAAc,SAASphB,GACnBlI,KAAK0hB,sBAAsBxZ,EAAK+L,OAChC,IAAIoH,EAAQ,IAAI3M,KACZ1O,KAAKihB,kBACLjhB,KAAKwgB,YAAY,QAASnF,IAG9Brb,KAAKyqB,6BAA8B,EACnCzqB,KAAKO,OAAO,YAAaP,KAAKO,OAAO,iBACrCP,KAAKwgB,YAAY,QAASnF,GAC1Brb,KAAK4nB,mBACL5nB,KAAKyqB,6BAA8B,IAEvCC,4BAA6B,SAAS5I,EAAQjS,GAC1C7P,KAAK4qB,gBAAgB9I,GACrB9hB,KAAKkmB,kBACLlmB,KAAK6qB,iBACL7qB,KAAKqkB,mBACLrkB,KAAKskB,kBAAkBzU,GACvB7P,KAAKukB,cAAc1U,IAEvB+a,gBAAiB,SAAS9I,GAItB,IAAIgJ,EACAC,EACAC,EALJ,GAAI,IAAMlJ,IAMNA,EAAS,GACTgJ,EAAa,EACbC,EAAkB,cAClBC,EAAkB,eAElBF,GAAc,EACdC,EAAkB,aAClBC,EAAkB,eAEjBhrB,KAAK+qB,IAAV,CAGA,IAAIE,EAAkBjrB,KAAK+qB,GAAiBxqB,OAAO,QAC/CP,KAAKgrB,IACLhrB,KAAKgrB,GAAiB1qB,WAAW+pB,SAEjCvI,IAAWgJ,EACX9qB,KAAKgrB,GAAmBhrB,KAAKogB,OAE7BpgB,KAAKgrB,GAAmBhrB,KAAK4lB,oBAAoB5lB,KAAK8kB,iBAAiBgG,EAAYG,IACnFjrB,KAAKogB,MAAM9f,WAAW+pB,UAE1BrqB,KAAKogB,MAAQpgB,KAAK+qB,GAClB,IAAIG,EAAelrB,KAAK8kB,kBAAkBgG,EAAYG,GACtDjrB,KAAK+qB,GAAmB/qB,KAAK+lB,iBAAiBmF,GAAgBlrB,KAAK4lB,oBAAoBsF,GAAgB,OAE3GL,eAAgB,WACZ,gBAAK7qB,KAAK8jB,eAAgB,CACtBgD,KAAM,EACNC,IAAK,KAGboE,OAAQ,WACJnrB,KAAKuT,WACLvT,KAAKorB,8BACEprB,KAAK8jB,sBACL9jB,KAAKulB,kBACLvlB,KAAKupB,UAEhB6B,qBAAsB,kBACXprB,KAAKopB,iBAEhBiC,cAAe,WACXrrB,KAAKogB,MAAM9f,WAAW+pB,SACtBrqB,KAAK8lB,aAAe9lB,KAAK8lB,YAAYxlB,WAAW+pB,SAChDrqB,KAAKimB,YAAcjmB,KAAKimB,WAAW3lB,WAAW+pB,gBACvCrqB,KAAKogB,aACLpgB,KAAK8lB,mBACL9lB,KAAKimB,YAEhBnd,SAAU,WACNhB,aAAa9H,KAAK+kB,wBAClB/kB,KAAKuT,YAET+X,cAAe,WACXtrB,KAAKqrB,gBACLrrB,KAAKslB,gBAETiG,mBAAoB,WAChBvrB,KAAKkmB,mBAETsF,gBAAiB,WACbxrB,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKogB,MAAM7f,OAAO,gBAAiBP,KAAKO,OAAO,iBAEnDkrB,iBAAkB,WACdzrB,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKogB,MAAM7f,OAAO,gBAAiB,OAEvCmrB,kBAAmB,SAASrtB,GACxB,IAAI6M,EAAW7M,EAAQ,IAAIqQ,KAAKrQ,GAAS,KACzC2B,KAAKogB,MAAM7f,OAAO,QAAS2K,GAC3BlL,KAAK8lB,aAAe9lB,KAAK8lB,YAAYvlB,OAAO,QAAS2K,GACrDlL,KAAKimB,YAAcjmB,KAAKimB,WAAW1lB,OAAO,QAAS2K,IAEvDwa,oBAAqB,SAASrnB,EAAOstB,GACjC,IAAIC,EACJvtB,EAAQ,QAAUutB,EAASvtB,SAAU,IAAWutB,EAASA,EAAS5rB,KAAKwgB,YAAY,SACnF,IAAIqL,EAAoB7rB,KAAKogB,MAAMxG,eAAe+R,GAC9CG,EAAgB9rB,KAAKogB,MAAMxG,eAAevb,GAC9C2B,KAAKwW,QAAQ,gBAAY,EAAQqV,GACjC7rB,KAAKwW,QAAQ,YAAY,EAAMsV,GAC3BztB,GAAS2B,KAAKO,OAAO,eAAe2Q,YAAc7S,EAAM6S,WACxDlR,KAAKukB,cAAclmB,IAG3BkmB,cAAe,SAASlmB,GACpB,IAAI0tB,EACJ1tB,EAAQ,QAAU0tB,EAAU1tB,SAAU,IAAW0tB,EAAUA,EAAU/rB,KAAKO,OAAO,eACjF,IAAIyrB,EAAS,MAAQ,IAAI,OACrBC,EAAWjsB,KAAKogB,MAAMxG,eAAevb,GACzC2B,KAAKwW,QAAQ,KAAMwV,EAAQC,GAC3BjsB,KAAKwW,QAAQ,mBAAoBwV,GACjChsB,KAAKyjB,oBAAoBuI,IAE7BE,uBAAwB,SAASC,EAAUjkB,GACvClI,KAAKmkB,qBAAsB,EAC3BgI,EAASpjB,MAAM/I,KAAMkI,UACdlI,KAAKmkB,qBAEhBhb,eAAgB,SAASjB,GACrB,IAAI7J,EAAQ6J,EAAK7J,MACbstB,EAAgBzjB,EAAKyjB,cACzB,OAAQzjB,EAAKjJ,MACT,IAAK,QACDe,KAAKuT,SAASrL,GACdlI,KAAKorB,uBACL,MACJ,IAAK,MACL,IAAK,MACDprB,KAAKoL,SAAM,EACXpL,KAAKqL,SAAM,EACXrL,KAAKksB,uBAAuBlsB,KAAK6jB,mBAAoB,CAAC7jB,KAAKO,OAAO,iBAClEP,KAAKsrB,gBACLtrB,KAAKqkB,mBACL,MACJ,IAAK,iBACDrkB,KAAKsrB,gBACLtrB,KAAK8nB,2BACL,MACJ,IAAK,cACD9nB,KAAKwW,QAAQ,UAAM,EAAQxW,KAAKogB,MAAMxG,eAAe+R,IACrD3rB,KAAK6jB,mBAAmBxlB,GACxB,MACJ,IAAK,YACD2B,KAAKM,WAAWyD,YAAY6Z,GAAsB,IAAM+N,GACxD3rB,KAAKojB,oBACLpjB,KAAKsrB,gBACLtrB,KAAKqkB,mBACLrkB,KAAKukB,gBACL,MACJ,IAAK,eACL,IAAK,eACDvkB,KAAKojB,oBACLpjB,KAAK8nB,2BACL,MACJ,IAAK,QACDzpB,EAAQ2B,KAAKuhB,eAAeljB,GAC5BstB,EAAgB3rB,KAAKuhB,eAAeoK,GACpC3rB,KAAK0lB,oBAAoBrnB,EAAOstB,GAChC3rB,KAAKO,OAAO,cAAe,eAAUlC,GAAS,IAAIqQ,KAAKrQ,GAAS,IAAIqQ,MACpE1O,KAAK0rB,kBAAkBrtB,GACvB2B,KAAKypB,gBAAgBprB,GACrB2B,KAAKuT,SAASrL,GACd,MACJ,IAAK,cACDlI,KAAKogB,MAAM7f,OAAO,cAAelC,GACjC,MACJ,IAAK,qBACD2B,KAAKyjB,oBAAsBzjB,KAAKiH,sBAAsB,sBACtD,MACJ,IAAK,gBACL,IAAK,0BACL,IAAK,eACL,IAAK,kBACDjH,KAAKkJ,cACL,MACJ,IAAK,iBACD,MACJ,IAAK,aACDlJ,KAAKsrB,gBACL,MACJ,QACItrB,KAAKuT,SAASrL,KAG1BkkB,iBAAkB,WACd,OAAOpsB,KAAKogB,MAAM7f,OAAO,oBAGjC,eAAkB,aAAcke,IACjB,UCz+BA,M,aCMX,GAAW,QAAM5J,SACjBwX,GAAkB,QAAM/Y,QAAQ,CAChCgZ,KAAM,SAASC,GACXvsB,KAAKusB,QAAUA,GAEnBC,aAAc,WACV,OAAOxsB,KAAKysB,SAAWzsB,KAAKysB,QAAQlsB,OAAOwI,MAAM/I,KAAKysB,QAAS1nB,YAEnE2nB,cAAe,SAASvuB,GACpBA,EAAUA,GAAW,eAAE,SACvB6B,KAAKysB,QAAUzsB,KAAK2sB,cAAcxuB,GAClC6B,KAAKysB,QAAQnsB,WAAWuW,SAAS7W,KAAK4sB,wBAE1CD,cAAe,SAASxuB,GACpB,IAAI0uB,EAAa7sB,KAAK8sB,iBAClBC,EAAgB/sB,KAAKgtB,oBACzB,OAAOhtB,KAAKusB,QAAQjlB,iBAAiBnJ,EAAS0uB,EAAYE,IAE9DC,kBAAmB,GACnBF,eAAgB,GAChBG,kBAAmB,WACf,MAAO,CACHC,KAAM,SAGdC,iBAAkB,GAClBC,cAAe,OACfC,oBAAqB,OACrBC,iBAAkB,OAClBC,cAAe,SAAShgB,EAAM+B,GAC1B,IAAIjR,EAAQ,OAAiBmvB,MAAMjgB,EAAM+B,GACzC,OAAOjR,GAAgB,OAAiBmvB,MAAMjgB,IAElDkgB,kBAAmB,OACnBC,kBAAmB,WACf1tB,KAAK2tB,gBAETC,YAAa,GACb/kB,kBAAmB,WACf,IAAIglB,EACJ,QAAUA,EAAkB7tB,KAAK8tB,mBAAgB,IAAWD,GAA2BA,EAAgBE,WAE3GC,mBAAoB,WAChB,IAAIC,EAAQjuB,KAAK8tB,YACjB9tB,KAAK0sB,gBACL,IAAIwB,EAAgBD,EAAME,WAAW1oB,SACrC,OAAa7C,IAAIsrB,EAAe,aAChC,OAAarrB,GAAGqrB,EAAe,YAAaluB,KAAKouB,qBAAqBtrB,KAAK9C,QAE/EquB,qBAAsB,OACtBC,oBAAqB,OACrBF,qBAAsB,SAAS9kB,GAC3BA,EAAEqW,kBAENiN,oBAAqB,WACjB,OAAO5sB,KAAK8tB,YAAYK,YAE5BL,UAAW,WACP,OAAO9tB,KAAKusB,QAAQgC,QAExBC,oBAAqB,OACrBC,mBAAoB,OACpBd,aAAc,WACV3tB,KAAKysB,SAAWzsB,KAAKysB,QAAQlsB,OAAO,QAASP,KAAK0uB,iBAEtDC,wBAAyB,OACzBC,eAAgB,WACZ,OAAO,IAAIlgB,MAEfmgB,mBAAoB,OACpBC,YAAa,WACL9uB,KAAKusB,QAAQhsB,OAAO,WACpBP,KAAK2tB,gBAGboB,SAAU,WACN,OAAO/uB,KAAKysB,QAAQlsB,OAAO,UAE/ByuB,oBAAqB,WACjB,OAAO,GAEXC,QAAS,WACL,IAAIhB,EAAQjuB,KAAK8tB,YACbG,GACAA,EAAME,WAAWe,SAGzBR,aAAc,WACV,OAAI3pB,UAAUvB,OACHxD,KAAKusB,QAAQ7C,UAAU3gB,MAAM/I,KAAKusB,QAASxnB,WAE3C/E,KAAKusB,QAAQ4C,WAAWpmB,MAAM/I,KAAKusB,QAAS,CAAC,aAIjD,MCxFX6C,GAAmB,GAAgB9b,QAAQ,CAC3C+b,KAAM,WACNjC,cAAe,WACX,IAAIkC,EAAiB,SAAShmB,GAC1B,QAAItJ,KAAKO,OAAO,YACZ+I,EAAEqW,kBACK,IAIf,MAAO,CACHD,WAAY,WACR,GAAI1f,KAAKO,OAAO,UACZ,OAAO,GAGfwf,UAAW,WACP,GAAI/f,KAAKO,OAAO,UACZ,OAAO,GAGfygB,MAAO,SAAS1X,GACZ,GAAItJ,KAAKusB,QAAQhsB,OAAO,UAAW,CAE/B,GADA+I,EAAEqW,iBACE3f,KAAKysB,QAAQlsB,OAAO,eAAiBP,KAAKysB,QAAQlsB,OAAO,gBAAiB,CAC1E,IAAIgvB,EAAYvvB,KAAKwvB,qBACjBC,EAAoBzvB,KAAK0vB,mBACzBC,EAAsB3vB,KAAK4vB,wBAM/B,OALID,GAAuBJ,GAAa,aAAeE,GACnDzvB,KAAK0uB,aAAaa,EAAWjmB,GAEjCqmB,GAAuB3vB,KAAKusB,QAAQsD,QACpC7vB,KAAKusB,QAAQuD,yBAAyBxmB,IAC9BqmB,EAER,OAAO,EAGX3vB,KAAKusB,QAAQuD,yBAAyBxmB,IAE5CxG,KAAK9C,MACPugB,KAAM+O,EACNzxB,IAAKyxB,IAGbnC,iBAAkB,SAAS4C,GACvB,OAAOA,GAAiB,aAE5BH,sBAAuB,KAAM,EAC7B9C,eAAgB,WACZ,OAAO,IAEX0C,mBAAoB,WAChB,OAAOxvB,KAAKysB,QAAQrM,MAAM7f,OAAO,kBAErC,sBACI,OAAOP,KAAKysB,SAEhBO,kBAAmB,WACf,IAAItX,EAAgB1V,KAAKusB,QAAQhsB,OAAO,iBACxC,OAAO,OAAAgM,EAAA,MAAOvM,KAAKusB,QAAQhsB,OAAO,mBAAoB,CAClDlC,MAAO2B,KAAK0uB,gBAAkB,KAC9B9P,wBAAyB,KACzBxT,IAAKpL,KAAKusB,QAAQ4C,WAAW,OAC7B9jB,IAAKrL,KAAKusB,QAAQ4C,WAAW,OAC7Ba,eAAgBhwB,KAAKiwB,qBAAqBntB,KAAK9C,MAC/C2V,YAAa3V,KAAKwmB,kBAAkB1jB,KAAK9C,MACzCumB,SAAU,KACV7Q,cAAe,eAAWA,GAAiB1V,KAAKsmB,iBAAiB5Q,EAAc5S,KAAK9C,KAAKusB,UAAY7W,EACrGuJ,mBAAoBjf,KAAKkwB,yBAAyBptB,KAAK9C,MACvDkf,gBAAgB,KAGxBoH,iBAAkB,SAASI,GACvB,IAAIhjB,EAAO1D,KACX,OAAO,SAASmY,GAIZ,OAHA,OAAA5L,EAAA,MAAO4L,EAAQ,CACXwO,UAAWjjB,EAAK6oB,UAEb7F,EAAKvO,KAGpB+X,yBAA0B,SAAS5mB,GAC/BtJ,KAAK0vB,mBAAqB,WAC1B1vB,KAAKusB,QAAQ/V,QAAQ,mBAAoBlN,EAAE6mB,cAE/CvC,YAAa,SAASwC,GAClB,IAAIC,EAAeD,EAAaC,aAC5BC,EAAkBtwB,KAAKusB,QAAQhsB,OAAO,mBACtCuO,EAAW,GAuBf,OArBIA,EADA,YAAcwhB,EACH,eAAUA,GAEV,CAAC,SAAU,UAEtB,eAAiBtwB,KAAKusB,QAAQhsB,OAAO,mBAAqBP,KAAKuwB,sBAC/DF,EAAaG,QAAQ,CACjBC,OAAQ,WACRC,QAAS5hB,EAAS,GAClB6hB,SAAU,UAAY7hB,EAAS,GAAK,SAAWA,EAAS,GACxD1F,QAAS,CACLwnB,cAAe,SAAStnB,GACpBA,EAAEqd,UAAUkK,mBAAmB,SAAU7wB,KAAK8wB,eAAehuB,KAAK9C,QACpE8C,KAAK9C,MACPwT,QAAStL,IACLlI,KAAKysB,QAAQnD,aAAaphB,IAE9BqF,KAAMmJ,EAAA,KAAoBpH,OAAO,8BACjCE,KAAM,WAIX,OAAAjD,EAAA,OAAO,EAAM6jB,EAAc,CAC9BC,aAAcA,EACdvhB,SAAU,CACNiiB,UAAW,gBAEf3uB,MAAO,UAGfmuB,mBAAoB,WAChB,OAAO,eAAcvwB,KAAKusB,QAAQhsB,OAAO,sBAAuB,IAAUP,KAAKusB,QAAQhsB,OAAO,4BAElGuwB,eAAgB,WACZ9wB,KAAKusB,QAAQsD,QACb7vB,KAAKusB,QAAQyE,SAEjBf,qBAAsB,SAAS3mB,GAC3B,IAAIijB,EAAUvsB,KAAKusB,QACfluB,EAAQiL,EAAEjL,MACV4yB,EAAY3nB,EAAEqiB,cACd,OAAUrQ,SAASjd,EAAO4yB,IAG1B,cAAgB1E,EAAQhsB,OAAO,mBAC/BP,KAAK0uB,aAAa1uB,KAAK+uB,WAAYzlB,EAAE2K,QAG7C0Z,aAAc,WACL3tB,KAAKysB,SAGVzsB,KAAKysB,QAAQlsB,OAAO,QAASP,KAAK0uB,iBAEtCG,mBAAoB,WAChB7uB,KAAK0vB,mBAAqB,QACtB1vB,KAAKusB,QAAQhsB,OAAO,WAAaP,KAAKysB,SACtCzsB,KAAK2tB,cAAa,IAG1BnH,kBAAmB,SAASld,GACxB,IAAIijB,EAAUvsB,KAAKusB,QACf,cAAgBA,EAAQhsB,OAAO,oBAC/BgsB,EAAQhsB,OAAO,UAAU,GACzBP,KAAK0uB,aAAa1uB,KAAK+uB,WAAYzlB,EAAE2K,WAIlC,M,0BClKR,SAASid,GAAkBP,EAAUpvB,GACxC,GAAI,eAAcovB,GAAW,CACzB,IAAI7J,EAAO,eAAc6J,EAAS7J,KAAM6J,EAASQ,GAC7CpK,EAAM,eAAc4J,EAAS5J,IAAK4J,EAAS9kB,GAC/C,MAAO,CACHib,KAAM,eAAUA,GAAQA,OAAO,EAC/BC,IAAK,eAAUA,GAAOA,OAAM,GAGpC,IACIqK,aAAcA,EACdC,WAAYA,GACZ,IAAI,QAAgB9vB,GACxB,MAAO,CACHulB,KAAMsK,GAAgB,eAAUT,GAAYA,OAAW,EACvD5J,IAAKsK,GAAc,eAAUV,GAAYA,OAAW,GCE5D,IAAIW,GAAwB,oBACxBC,GAA+B,kBAC/BC,GAAgC,4BAChCC,GAA6B,mBAC7BC,GAAsC,4BACtCC,GAA4C,kCAC5CC,GAA6C,mCACjD,MAAM,WAAuB,QACzB,qBACI,OAAO,OAAArlB,EAAA,MAAOzM,MAAM+F,qBAAsB,CACtCgsB,cAAe,QACfC,WAAW,EACXC,cAAe,EACfC,eAAe,EACf9qB,MAAO,GACP+qB,aAAa,EACbze,QAAS,KACT0e,uBAAwB,KACxBC,iBAAiB,IAGzB,QACIryB,MAAMuG,QACNrG,KAAKO,OAAO,qBAAsBP,KAAKoyB,0BAA0BtvB,KAAK9C,OACtEA,KAAKO,OAAO,QAASP,KAAKqyB,kBAAkBvvB,KAAK9C,OAErD,UACIF,MAAM6lB,UACN3lB,KAAKsyB,2BACLtyB,KAAKM,WAAWkE,SAAS8sB,IACzBtxB,KAAKuyB,wBACLvyB,KAAKmH,eACLnH,KAAKwyB,uBACLxyB,KAAKyyB,oBACLzyB,KAAK0yB,oBACL1yB,KAAK2yB,8BAET,8BACI3yB,KAAK4yB,sBAAwB5yB,KAAKiH,sBAAsB,0BAE5D,oBACI,OAAapE,GAAG,eAAE7C,KAAKyJ,aAAc,eAAgBH,IACjDtJ,KAAK6yB,kBAAmB,IAGhC,wBACI,GAAK7yB,KAAKO,OAAO,eAAjB,CAGA,IAAIuyB,EAAY,eAAazd,GAAA,KAAgBrV,KAAKqvB,MAC9C0D,EAAc/yB,KAAKiH,sBAAsB,WAC7C,OAAarE,IAAI,eAAE5C,KAAKyJ,aAAcqpB,GACtC,OAAajwB,GAAG,eAAE7C,KAAKyJ,aAAcqpB,GAAW,SAAUxpB,GACtDypB,EAAY,CACR9e,MAAO3K,QAInB,eACI,IAAIpC,EAAQlH,KAAKO,OAAO,UAAY,GAChCc,EAAS,iBACb,eAAErB,KAAKgzB,WAAW9D,QAClBhoB,EAAM+rB,SAAQ,SAAUxxB,GACpBJ,EAASA,EAAO6xB,IAAI,eAAE,SAAS1uB,SAASitB,IAA4BrsB,OAAO3D,OAE/E,eAAEzB,KAAKgzB,WAAW5tB,OAAO/D,GACzBrB,KAAK+C,QAAU1B,EACfrB,KAAKW,SAET,2BACI,eAAE,SAAS6D,SAASmtB,IAA2CvsB,OAAO,eAAE,SAASZ,SAASotB,KAA6C/a,SAAS,eAAE7W,KAAKyJ,cAE3J,qBAAqBsoB,GACjB,IAAI9jB,EAAQjO,KAAKmzB,UAAU,OAASpB,QAAiB,IAAWA,EAAgBA,EAAgB/xB,KAAKO,OAAO,kBAC5GP,KAAKozB,QAAQ,CACTrM,IAAK/mB,KAAKqzB,iBAAiBplB,KAE/BjO,KAAKszB,yBAET,UAAUrlB,GACN,IAAI/G,EAAQlH,KAAKO,OAAO,UAAY,GAChCgzB,EAAYrsB,EAAM1D,OACtB,OAAIyK,GAASslB,EACFA,EAAY,EAEnBtlB,EAAQ,EACD,EAEJA,EAEX,iBAAiBA,GACb,OAAO3J,KAAKC,MAAMvE,KAAKwzB,cAAgBvlB,GAE3C,oBACI,IAAIwlB,EAAezzB,KAAK0zB,mBACpBZ,EAAY,eAAazd,GAAA,KAAgBrV,KAAKqvB,MAClD,OAAazsB,IAAI5C,KAAKM,WAAYwyB,EAAWW,GAC7C,OAAa5wB,GAAG7C,KAAKM,WAAYwyB,EAAWW,EAAczzB,KAAK2zB,kBAAkB7wB,KAAK9C,OAE1F,mBACI,MAAO,IAAMyxB,GAEjB,kBAAkBnoB,GACdtJ,KAAKO,OAAO,gBAAiBP,KAAK4zB,kBAAkBtqB,EAAE4P,gBAE1D,kBAAkB2a,GACd,OAAO7zB,KAAK6H,gBAAgBoG,MAAM4lB,GAEtC,gBACI,OAAO7zB,KAAKM,WAAWkF,KAAKxF,KAAK0zB,oBAErC,yBACI,IAAI3B,EAAgB/xB,KAAKO,OAAO,iBAChC,eAAKP,KAAK+C,SAAS,SAAUkL,GACzB,eAAEjO,MAAM4U,YAAY8c,GAAqCK,IAAkB9jB,MAGnF,8BACI,MAAO,YAAcoR,EAAA,KAAQC,OAAOC,YAAcvf,KAAK6yB,iBAE3D,QAAQiB,GACJ,IACI/M,IAAKA,EACLD,KAAMA,GACNoK,GAAkB4C,GAClBnD,EAAW3wB,KAAK+zB,eAChBrqB,EAAQ,CACRynB,EAAGR,EAAS7J,KAAOA,EACnBjb,EAAG8kB,EAAS5J,IAAMA,GAEtB,GAAI/mB,KAAKg0B,eAAiBtqB,EAAMynB,GAAKznB,EAAMmC,GAEvC,GADA7L,KAAKi0B,oBAAmB,GACpBj0B,KAAKk0B,aAAel0B,KAAKm0B,8BAA+B,CACxD,IAAIzwB,EAAO1D,KACXkgB,GAAA,KAAG6D,KAAK,eAAE/jB,KAAKgzB,YACf9S,GAAA,KAAG+J,QAAQ,eAAEjqB,KAAKgzB,WAAY,CAC1BhJ,SAAU,IACVxa,KAAM,QACNua,GAAI,CACAhD,IAAKziB,KAAK8vB,MAAM1qB,EAAMmC,IAE1B,WACI,gBAAc,eAAEnI,EAAKsvB,YACrBtvB,EAAK2wB,WAAW,CACZ3qB,MAAOA,cAIZ1J,KAAKk0B,gBAEZl0B,KAAKq0B,WAAW,CACZ3qB,MAAOA,IAKvB,UAAUJ,GACN,OAAOtJ,KAAKs0B,eAAehrB,GAE/B,yBAAyB2E,GACrB,IAAIsmB,EAAav0B,KAAKO,OAAO,SAASiD,OACtC,OAAOc,KAAK+G,IAAI/G,KAAK8G,IAAI6C,EAAOsmB,EAAa,GAAI,GAErD,sBAAsBpD,GAClB,OAAQ,IAAMA,GAAKA,GAAK,GAE5B,6BAA6BqD,GACzB,IAAIC,EAAcz0B,KAAK+zB,eAAehN,IAClC2N,EAA+BF,EAAuBx0B,KAAKwzB,cAC3DmB,EAAKF,EAAcC,EACvB,GAAI10B,KAAK40B,sBAAsBD,GAC3B,OAAOH,EAEX,IAAIjzB,EAAYozB,EAAK,EAAI,GAAK,EAC1BE,EAAmB70B,KAAK80B,yBAAyBN,EAAuBjzB,GAC5E,OAAOszB,EAEX,qBAAqBL,GACjB,GAAIx0B,KAAKm0B,8BACL,OAAOn0B,KAAK+0B,6BAA6BP,GAE7Cx0B,KAAKk0B,YAAa,EAClB,IAAIpyB,EAAQ9B,KAAK+zB,eAAehN,IAAM/mB,KAAKwzB,cAC3C,OAAOlvB,KAAKC,MAAMzC,GAEtB,oBACI,IAAI0yB,EAAuBx0B,KAAKO,OAAO,iBACnCs0B,EAAmB70B,KAAKg1B,qBAAqBR,GAC7CK,IAAqBL,EACrBx0B,KAAKwyB,qBAAqBqC,GAE1B70B,KAAKO,OAAO,gBAAiBs0B,GAEjC70B,KAAK6yB,kBAAmB,EAE5B,cACI,IAAIrxB,EAAQxB,KAAK+C,QAAQM,QACzB,OAAO,eAAU7B,GAErB,cAAcrB,GACVH,KAAKM,WAAWsU,YAAY2c,GAA8BpxB,GAE9D,aACI,OAAO,eAAEH,KAAKyJ,aAAavE,GAAG,YAElC,0BAA0B7G,EAAOstB,GAC7B3rB,KAAK4yB,sBAAsB,CACvBv0B,MAAOA,EACPstB,cAAeA,EACf1X,WAAO,IAGf,mBAAmBrL,GACf9I,MAAMyrB,mBAAmB3iB,GACzB5I,KAAKoyB,0BAA0BxpB,GAEnC,0BAA0BA,GAClBA,IACA5I,KAAKi1B,iBAAmBjtB,WAAW,KAC/BhI,KAAKwyB,qBAAqBxyB,KAAKO,OAAO,qBAG9CP,KAAKk1B,mBAAkB,GAE3B,kBAAkB/0B,GACdH,KAAKM,WAAWsU,YAAY4c,GAA+BrxB,GAE/D,wBACI,IAAI4xB,EAAgB/xB,KAAKO,OAAO,iBAC5B40B,EAAWn1B,KAAKmzB,UAAUpB,GAC1BoD,IAAapD,EACb/xB,KAAKszB,yBAELtzB,KAAKO,OAAO,gBAAiB40B,GAGrC,eAAejtB,GACX,OAAQA,EAAKjJ,MACT,IAAK,gBACDe,KAAKo1B,0BAA0BltB,EAAK7J,MAAO6J,EAAKyjB,eAChD3rB,KAAKwyB,qBAAqBtqB,EAAK7J,OAC/B,MACJ,IAAK,QACD2B,KAAKmH,eACLnH,KAAKq1B,wBACL,MACJ,IAAK,UACL,IAAK,cACDr1B,KAAKuyB,wBACL,MACJ,IAAK,yBACDvyB,KAAK2yB,8BACL,MACJ,QACI7yB,MAAMqJ,eAAejB,IAGjC,WACIJ,aAAa9H,KAAKi1B,kBAClBn1B,MAAMgJ,YAGd,eAAkB,mBAAoB,IACvB,UCrRXwsB,GAAiB,cACjBC,GAAyB,sBACzBC,GAAyB,sBACzBC,GAAkC,sBAClC,GAAwB,oBACxBC,GAAO,CACP/qB,KAAM,OACNuF,SAAU,WACVD,KAAM,QAEN0lB,GAAc,CACd7kB,KAAM,OACNC,MAAO,QACPjG,IAAK,MACL0B,MAAO,SAEPopB,GAAW,OAAOtiB,QAAQ,CAC1BuiB,aAAc,WACV,IAAIx3B,EAAQ2B,KAAKO,OAAO,SACpBoK,EAAO,IAAI+D,KAAKrQ,GACpB,OAAQA,GAAS4S,MAAMtG,GAAQ3K,KAAK81B,kBAAoBnrB,GAE5DmrB,gBAAiB,WACb,IAAInrB,EAAO,IAAI+D,KACf,OAAI1O,KAAKO,OAAO,UAAYm1B,GAAK/qB,KACtB,IAAI+D,KAAK/D,EAAKoC,cAAepC,EAAKC,WAAYD,EAAKI,WAEvDJ,GAEX9E,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BgI,QAAS,EAAY5L,0BACrB6L,QAAS,EAAY5L,0BACrBJ,KAAMkmB,GAAK/qB,KACXtM,MAAO,IAAIqQ,KACXqnB,mBAAmB,KAG3B5W,qBAAsB,WAClB,OAAOnf,KAAKuT,WAAWjN,OAAO,CAAC,CAC3B8Y,OAAQ,SAAS4W,GACb,MAAO,YAAcA,EAAQzW,YAEjCnW,QAAS,CACL2sB,mBAAmB,OAI/BpQ,QAAS,WACL3lB,KAAKuT,WACLvT,KAAKM,WAAWkE,SAAS8wB,IACzBt1B,KAAKi2B,qBAAqBj2B,KAAKO,OAAO,SACtCP,KAAKk2B,uBAETD,qBAAsB,SAASE,EAAeC,GAC1Cp2B,KAAKM,WAAWkE,SAAS8wB,GAAiB,IAAMa,GAChDC,GAAkBp2B,KAAKM,WAAWyD,YAAYuxB,GAAiB,IAAMc,IAEzEF,oBAAqB,WACjBl2B,KAAKM,WAAWsU,YAAY2gB,GAAwBv1B,KAAKO,OAAO,uBAEpE81B,SAAU,WACN,OAAOr2B,KAAKs2B,WAEhBC,mBAAoB,WAChBv2B,KAAKs2B,UAAY,eAAE,SAAS9xB,SAASgxB,IACrCx1B,KAAKw2B,iBACLx2B,KAAKs2B,UAAUzf,SAAS7W,KAAKM,aAEjCk2B,eAAgB,WACPx2B,KAAKy2B,qBACNz2B,KAAKy2B,mBAAqB,eAAE,SAASjyB,SAASixB,KAElDz1B,KAAKy2B,mBAAmBvH,QACxBlvB,KAAK02B,uBACL12B,KAAK22B,SAAW,GAChB,IAAIjzB,EAAO1D,KACX,eAAK0D,EAAKkzB,gBAAgB,SAAU33B,GAChC,IAAI43B,EAAU,eAAE,SAAShgB,SAASnT,EAAK+yB,oBAAoBjyB,SAAS,GAAwB,IAAMd,EAAKkzB,eAAe33B,GAAMuQ,MAC5H9L,EAAKizB,SAASjzB,EAAKkzB,eAAe33B,GAAMuQ,MAAQ9L,EAAK4D,iBAAiBuvB,EAAS,GAAgB,CAC3F3vB,MAAOxD,EAAKkzB,eAAe33B,GAAM63B,aACjC/E,cAAeruB,EAAKkzB,eAAe33B,GAAM8yB,cACzCF,cAAe,QACfM,iBAAiB,EACjB/J,QAAS,SAAS9e,GACd,IAAIytB,EAASztB,EAAEqd,UACfoQ,EAAOC,eAAc,GACrBtzB,EAAKuzB,iBAAiBvzB,EAAKkzB,eAAe33B,GAAO83B,EAAOx2B,OAAO,mBAEnEioB,MAAO,SAASlf,GACZ,IAAIytB,EAASztB,EAAEqd,UACfoQ,EAAOC,eAAc,IAEzBxjB,QAAS,SAASlK,GACd,IAAIytB,EAASztB,EAAEqd,UACfoQ,EAAOC,eAAc,GACrBtzB,EAAKuzB,iBAAiBvzB,EAAKkzB,eAAe33B,GAAO83B,EAAOx2B,OAAO,kBAC/DmD,EAAKwzB,gBAAgBxzB,EAAKkzB,eAAe33B,GAAO83B,EAAOx2B,OAAO,kBAC9Dw2B,EAAOC,eAAc,IAEzB9E,uBAAwB,SAAS5oB,GAC7B,IAAIytB,EAASztB,EAAEqd,UACfjjB,EAAKwzB,gBAAgBxzB,EAAKkzB,eAAe33B,GAAO83B,EAAOx2B,OAAO,wBAI1EmD,EAAK+yB,mBAAmB5f,SAASnT,EAAK2yB,aAE1CK,qBAAsB,SAASlnB,GAC3B,IAAI9L,EAAO1D,KACXwP,EAAOA,GAAQ9L,EAAKnD,OAAO,QAC3BmD,EAAKkzB,eAAiB,GACtB,OAAiBO,eAAe,EAAY5mB,YAAYf,IAAOyjB,SAAQ,SAAUmE,GAC7E1zB,EAAK2zB,oBAAoBD,OAGjCC,oBAAqB,SAASC,GAgB1B,IAfA,IAAIhmB,EAAgB,EAAYC,qBAAqB+lB,GACjDC,EAAav3B,KAAKw3B,iCAAiCF,GACnD9kB,EAAa+kB,EAAW/kB,WACxBC,EAAW8kB,EAAW9kB,SACtBH,EAAYhB,EAAcgB,UAC1BmlB,EAAUz3B,KAAK03B,kBACfhxB,EAAS,CACT8I,KAAM8nB,EACNK,SAAUrmB,EAAcnS,OACxBy4B,WAAY,GACZd,aAAc,GACde,SAAU,SAASx5B,GACf,OAAOA,EAAMiT,EAAcpS,UAAYsT,IAGtC3E,EAAI2E,EAAY3E,GAAK4E,EAAU5E,IACpCnH,EAAOkxB,WAAWjxB,KAAKkH,GACvBnH,EAAOowB,aAAanwB,KAAK2L,EAAUzE,EAAG4pB,IAE1C/wB,EAAOqrB,cAAgBrrB,EAAOmxB,SAASJ,GACvCz3B,KAAK42B,eAAeU,GAAiB5wB,GAEzCuwB,iBAAkB,SAASa,GACvB,IAAIC,EAAeD,GAAiB93B,KAAK22B,SAASmB,EAActoB,MAChE,eAAKxP,KAAK22B,UAAU,WAChB32B,KAAKk1B,kBAAkBl1B,OAAS+3B,OAGxCC,uBAAwB,WACpB,IAAIt0B,EAAO1D,KACX,eAAKA,KAAK22B,UAAU,SAAUnnB,GAC1B,IAAIyoB,EAAev0B,EAAKkzB,eAAepnB,GAAMqoB,SAASn0B,EAAKg0B,mBAC3D13B,KAAKO,OAAO,gBAAiB03B,OAGrCf,gBAAiB,SAASH,EAAQhF,GAC9B,GAAIA,IAAkBgF,EAAOhF,cAAe,CACxC,IAAImG,EAAcnB,EAAOa,WAAW7F,GAChC4F,EAAWZ,EAAOY,SAClBrQ,EAAe,IAAI5Y,KAAK1O,KAAK03B,mBAC7Brb,EAAciL,EAAavc,UAC3BwQ,EAAUvb,KAAKO,OAAO,WACtBib,EAAUxb,KAAKO,OAAO,WACtBw2B,EAAOvnB,OAASmmB,GAAY5kB,MAC5BsL,EAAc/X,KAAK8G,IAAIiR,EAAa,EAAYxL,eAAeyW,EAAava,cAAemrB,IACpFnB,EAAOvnB,OAASmmB,GAAY7kB,OACnCuL,EAAc/X,KAAK8G,IAAIiR,EAAa,EAAYxL,eAAeqnB,EAAa5Q,EAAa1c,cAE7F0c,EAAa9b,QAAQ6Q,GACrBiL,EAAaqQ,GAAUO,GACvB,IAAIlU,EAAiB,OAAUT,cAAc+D,EAAc/L,EAASC,GACpE8L,EAAe,EAAYtW,WAAWgT,EAAgBsD,EAAc,QACpEA,EAAe,OAAU/D,cAAc+D,EAAc/L,EAASC,GAC9Dxb,KAAKO,OAAO,QAAS+mB,GACrByP,EAAOhF,cAAgBA,EAEvBgF,EAAOvnB,OAASmmB,GAAY7kB,MAC5B9Q,KAAKm4B,kBAELpB,EAAOvnB,OAASmmB,GAAY5kB,QAC5B/Q,KAAKo4B,eAAezC,GAAY7qB,KAChC9K,KAAKo4B,eAAezC,GAAYnpB,SAGxC4rB,eAAgB,SAASC,GACrB,IAAItB,EAAS/2B,KAAK22B,SAAS0B,GAC3B,GAAItB,EAAQ,CACR/2B,KAAKq3B,oBAAoBgB,GACzB,IAAIC,EAAet4B,KAAK42B,eAAeyB,GACnCA,IAAe1C,GAAY7qB,KAAOwtB,EAAaxB,aAAayB,aAAexB,EAAOx2B,OAAO,SAASg4B,YAClGxB,EAAOx2B,OAAO,CACV2G,MAAOoxB,EAAaxB,aACpB/E,cAAeuG,EAAavG,kBAK5C2F,gBAAiB,WACb,IAAID,EAAUz3B,KAAK61B,eACfta,EAAUvb,KAAKO,OAAO,WACtBib,EAAUxb,KAAKO,OAAO,WAC1B,OAAO,OAAUgjB,cAAckU,EAASlc,EAASC,IAErDgc,iCAAkC,SAASF,GACvC,IAAIG,EAAUz3B,KAAK03B,kBACfnc,EAAUvb,KAAKO,OAAO,WACtBib,EAAUxb,KAAKO,OAAO,WACtBi4B,EAAU,OAAUjc,SAASkb,EAASlc,GACtCkd,EAAWD,GAAWf,EAAQ7sB,aAAe2Q,EAAQ3Q,WACrD8tB,EAAU,OAAUnc,SAASkb,EAASjc,GACtCmd,EAAWD,GAAWjB,EAAQ7sB,aAAe4Q,EAAQ5Q,WACrDguB,EAAUH,GAAYhB,EAAQ1sB,YAAcwQ,EAAQxQ,UACpD8tB,EAAUF,GAAYlB,EAAQ1sB,YAAcyQ,EAAQzQ,UACpDuG,EAAgB,EAAYC,qBAAqB+lB,GACjD9kB,EAAalB,EAAckB,WAC3BC,EAAWnB,EAAcmB,SA0B7B,OAzBI6kB,IAAkB3B,GAAY7kB,OAC9B0B,EAAa+I,EAAQxO,cACrB0F,EAAW+I,EAAQzO,eAEnBuqB,IAAkB3B,GAAY5kB,QAC1BynB,IACAhmB,EAAa+I,EAAQ3Q,YAErB8tB,IACAjmB,EAAW+I,EAAQ5Q,aAGvB0sB,IAAkB3B,GAAY7qB,MAC9B2H,EAAW,EAAY5B,eAAe4mB,EAAQ1qB,cAAe0qB,EAAQ7sB,YACjE4tB,GAAWC,IACXjmB,EAAa+I,EAAQxQ,WAErB2tB,GAAWC,IACXlmB,EAAW+I,EAAQzQ,YAGvBusB,IAAkB3B,GAAYnpB,QAC9BgG,EAAaomB,EAAUrd,EAAQ5P,WAAa6G,EAC5CC,EAAWomB,EAAUrd,EAAQ7P,WAAa8G,GAEvC,CACHD,WAAYA,EACZC,SAAUA,IAGlB0lB,gBAAiB,WACbn4B,KAAKo4B,eAAezC,GAAY5kB,OAChC/Q,KAAKo4B,eAAezC,GAAY7qB,KAChC9K,KAAKo4B,eAAezC,GAAYnpB,QAEpCrD,eAAgB,SAASjB,GACrB,OAAQA,EAAKjJ,MACT,IAAK,UACL,IAAK,UACL,IAAK,OACDe,KAAKw2B,iBACLx2B,KAAKi2B,qBAAqB/tB,EAAK7J,MAAO6J,EAAKyjB,eAC3C,MACJ,IAAK,UACD3rB,KAAKuT,SAASrL,GACVA,EAAK7J,OACL2B,KAAKw2B,iBAET,MACJ,IAAK,QACDx2B,KAAKO,OAAO,QAASP,KAAK61B,gBAC1B71B,KAAKm4B,kBACLn4B,KAAKg4B,yBACL,MACJ,QACIh4B,KAAKuT,SAASrL,KAG1BijB,OAAQ,WACJnrB,KAAKuT,kBACEvT,KAAKy2B,sBAGpB,eAAkB,aAAcb,IACjB,UC9RX,GAAS,iBAWTkD,GAAmB,GAAgBxlB,QAAQ,CAC3C+b,KAAM,WACNpC,kBAAmB,WACf,OAAO,OAAA1gB,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BwlB,kBAAkB,EAClBC,gBAAiBtiB,EAAA,KAAoBpH,OAAO,MAC5C,6BAA6B,KAGrC6d,iBAAkB,SAAS4C,GACvB,OAAOA,GAAiB,EAAUxf,YAAYvQ,KAAKusB,QAAQhsB,OAAO,UAEtEqtB,YAAa,SAASlnB,GAClB,MAAO,CACH2pB,aAAcrwB,KAAKusB,QAAQ0M,2BAC3BrI,cAAelqB,EAAOkqB,cACtBsI,oBAAqB,CAAC,CAClB9Z,OAAQ,CACJ+Z,SAAU,WAEd/vB,QAAS,CACLhH,MAAO,IACPC,OAAQ,MAEb,CACC+c,OAAQ,SAAS4W,GACb,IAAImD,EAAWnD,EAAQmD,SACvB,MAAO,YAAcA,GAAY,QAAUA,GAE/C/vB,QAAS,CACLhH,MAAO,OACPC,OAAQ,SAEb,CACC+c,OAAQ,SAASga,GACb,IAAID,EAAWC,EAASD,SACpBE,EAAQD,EAASC,MACrB,MAAO,YAAcF,GAAYE,GAErCjwB,QAAS,CACLhH,MAAO,IACPk3B,SAAU,OACVC,UAAW,OACXl3B,OAAQ,OACRyM,SAAU,CACNiiB,UAAW,kBAGpB,CACC3R,OAAQ,CACJ+Z,SAAU,MACVE,OAAO,GAEXjwB,QAAS,CACLhH,MAAO,OACP0M,SAAU,CACN0qB,GAAI,SACJC,GAAI,SACJC,GAAI,SAMxBhN,cAAe,WACX,GAAI,uBAAU1sB,KAAKusB,QAAQhsB,OAAO,UAAYP,KAAKusB,QAAQoN,iBAAmB35B,KAAKusB,QAAQhsB,OAAO,YAC1FP,KAAKysB,UACLzsB,KAAKysB,QAAQnsB,WAAW+pB,SACxBrqB,KAAKysB,QAAU,UAHvB,CAOA,IAAIwB,EAAQjuB,KAAK8tB,YACjB,GAAI9tB,KAAKysB,QACLzsB,KAAKysB,QAAQlsB,OAAOP,KAAKgtB,yBACtB,CACH,IAAI7uB,EAAU,eAAE,SAAS0Y,SAASoX,EAAME,YACxCnuB,KAAKysB,QAAUzsB,KAAK2sB,cAAcxuB,GAEtC6B,KAAKysB,QAAQnsB,WAAWuW,SAAS7W,KAAK4sB,yBAE1CE,eAAgB,WACZ,OAAO,IAEXY,kBAAmB,WACf1tB,KAAKuT,WACDvT,KAAKysB,SACLzsB,KAAKysB,QAAQlsB,OAAO,QAASP,KAAKysB,QAAQiL,oBAGlD1K,kBAAmB,WACf,MAAO,CACH3uB,MAAO2B,KAAK0uB,gBAAkB,IAAIhgB,KAClCc,KAAMxP,KAAKusB,QAAQhsB,OAAO,QAC1Bgb,QAASvb,KAAKusB,QAAQ4C,WAAW,QAAU,IAAIzgB,KAAK,KAAM,EAAG,GAC7D8M,QAASxb,KAAKusB,QAAQ4C,WAAW,QAAU,IAAIzgB,KAAKA,KAAKyC,MAAQ,GAAK,EAAU/B,UAChFwqB,YAAa,WACT55B,KAAKysB,QAAU,MACjB3pB,KAAK9C,UAIJ,M,aCrGX65B,GAAiB,GAAgBvmB,QAAQ,CACzC+b,KAAM,SACNzB,YAAa,SAASwC,GAClB,OAAO,OAAA7jB,EAAA,MAAO,GAAI6jB,EAAc,CAC5BhuB,MAAO,UAGfmrB,cAAe,SAAShgB,GACpB,OAAKA,EAGD,aAAevN,KAAKusB,QAAQhsB,OAAO,QAC5B,IAAImO,KAAKnB,EAAKS,QAAQ,KAAM,KAAKA,QAAQ,IAAK,KAAK8rB,MAAM,KAAK,IAElE,EAAUnpB,uBAAuBpD,GAL7B,MAOfygB,mBAAoB,OACpBlB,eAAgB,OAChBE,kBAAmB,OACnB+M,gBAAiB,WACb,IAAIvqB,EAAOxP,KAAKusB,QAAQhsB,OAAO,QAM/B,OALK,IAAM,gBAAQiP,EAAM,EAAUE,mBAC/BF,EAAO,OACA,aAAeA,GAAS,uBAAUA,KACzCA,EAAO,kBAEJA,GAEX8d,iBAAkB,WACd,IAAI0M,EAAiBh6B,KAAKusB,QAAQ0N,UAAU,YACxC5a,EAAA,KAAQC,OAAO4a,SAAWF,GAC1BA,EAAen3B,GAAG,QAAS,WACvB7C,KAAKusB,QAAQ4N,SAASr5B,IAAI,GAAGuU,SAC/BvS,KAAK9C,QAGfitB,kBAAmB,WACf,MAAO,CACHC,KAAMltB,KAAK+5B,oBAGnB5M,iBAAkB,SAAS4C,GACvB,IAAIvgB,EAAOxP,KAAK+5B,kBAChB,OAAOhK,GAAiB,EAAUxf,YAAYf,IAElDie,kBAAmB,SAASrd,GACxBA,EAAOC,KAAK,CACRjF,IAAK,OAAkBsF,cAAc1Q,KAAKusB,QAAQ4C,WAAW,OAAQ,cACrE9jB,IAAK,OAAkBqF,cAAc1Q,KAAKusB,QAAQ4C,WAAW,OAAQ,mBAIlE,M,uCCzDXiL,GAAiB,cACjBC,GAAuB,oBACvBC,GAAuB,oBACvBC,GAA2B,wBAC3BC,GAAgC,6BAChCC,GAA0B,uBAC1BC,IAAwB,EACxBC,GAAuB,EACvBC,GAA6B,0BAC7BC,GAAc,SAASC,EAAQC,EAAOjZ,GACtCkZ,GAAUF,EAAQC,EAAOjZ,IAEzBkZ,GAAY,SAASF,EAAQC,EAAOjZ,GACpCgZ,EAAOl6B,IAAI,YAAa,UAAYm6B,EAAQ,oBAAsBjZ,EAAS,QAE3EmZ,GAAW,OAAO3nB,QAAQ,CAC1BzN,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BlV,MAAO,IAAIqQ,KAAKA,KAAKyC,OACrB+pB,iBAAiB,EACjBC,YAAY,EACZC,aAAc,EACdC,iBAAa,KAGrBC,UAAW,WACP,OAAOt7B,KAAKO,OAAO,UAAY,IAAImO,MAEvCrI,MAAO,WACHrG,KAAKuT,WACLvT,KAAKM,WAAWkE,SAAS41B,KAE7BzU,QAAS,WACL3lB,KAAKuT,WACLvT,KAAKu7B,aACLv7B,KAAKw7B,eAETD,WAAY,WACR,IAAIE,EAAO,eAAE,SAAS5kB,SAAS7W,KAAKM,YAChC4G,EAAQ,GACRlH,KAAKO,OAAO,eACZ2G,EAAMP,KAAK,CACP7E,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV65B,SAAU17B,KAAK27B,aAAa74B,KAAK9C,QAGzCkH,EAAMP,KAAK,CACP7E,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV65B,SAAU17B,KAAK47B,aAAa94B,KAAK9C,QAErCA,KAAKsH,iBAAiBm0B,EAAM,QAAK,CAC7Bp5B,OAAQ,OACRD,MAAO,OACPb,UAAW,MACX2F,MAAOA,KAGfy0B,aAAc,SAASz5B,EAAG25B,EAAIpyB,GAC1BzJ,KAAK87B,YAAc,eAAE,SAASt3B,SAAS+1B,IACvCv6B,KAAK+7B,cAAgB,eAAE,SAASv3B,SAASo2B,IACzC,IAAIhxB,EAAa,eAAEH,GACnBG,EAAWpF,SAAS61B,IAAsBj1B,OAAOpF,KAAK87B,aAAa12B,OAAOpF,KAAK+7B,eAC/E/7B,KAAKwW,QAAQ,OAAQ,eAAgB5M,IAEzCoyB,aAAc,WACV,IAAI/rB,EAAOjQ,KAAKs7B,YACZW,EAAiBhsB,EAAKtE,WAAa,GAAK,IAAMsE,EAAKuX,aAAe,GAAK,GACvE0U,EAAmBjsB,EAAKuX,aAAe,GAAK,IAChDqT,GAAY76B,KAAK87B,YAAaG,EAAgBj8B,KAAKO,OAAO,iBAC1Ds6B,GAAY76B,KAAK+7B,cAAeG,EAAkBl8B,KAAKO,OAAO,kBAElE47B,aAAc,SAASC,GACnB,IAAIl1B,EAAQ,CAAC,CACTpF,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV65B,SAAU,IAAM17B,KAAKq8B,SAAS/7B,YAC/B,CACCwB,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV65B,SAAU,eAAE,SAASl3B,SAASg2B,IAA+BjtB,KAAK,OAAiB+uB,qBACpF,CACCx6B,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV65B,SAAU,IAAM17B,KAAKu8B,WAAWj8B,aAUpC,OARI87B,GACAl1B,EAAMP,KAAK,CACP7E,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV65B,SAAU,IAAM17B,KAAKw8B,UAAUl8B,aAGhC4G,GAEX00B,aAAc,WACV,IAAIQ,GAAkBp8B,KAAKO,OAAO,mBAMlC,OALAP,KAAKy8B,eAAeL,GACpBp8B,KAAK08B,mBACDN,GACAp8B,KAAK28B,qBAEF38B,KAAKsH,iBAAiB,eAAE,SAAS9C,SAAS81B,IAAuB,QAAK,CACzE/4B,UAAW,MACXN,MAAO,SACPG,WAAY,SACZ8F,MAAOlH,KAAKm8B,aAAaC,KAC1B97B,YAEPm8B,eAAgB,SAASL,GACrB,IAAIQ,EAAS58B,KAAKq8B,SAAWr8B,KAAKsH,iBAAiB,eAAE,SAAU,cAAW,OAAAiF,EAAA,MAAO,CAC7EnB,KAAM,EACNC,IAAK+wB,EAAiB,GAAK,GAC3B/9B,MAAO2B,KAAKs7B,YAAY3vB,WACxBqkB,eAAgBhwB,KAAK68B,uBAAuB/5B,KAAK9C,MACjD88B,kBAAmBC,GAAQ/8B,KAAKg9B,iBAAiBD,IAClD/8B,KAAKi9B,wBACRL,EAAOpmB,QAAQ,QAAS,UAE5B0mB,MAAO,WACH,OAAQl9B,KAAKO,OAAO,oBAAsB,IAAMP,KAAKw8B,UAAUj8B,OAAO,UAE1Es8B,uBAAwB,SAASM,GAC7B,IACI9+B,MAAOA,EACPsoB,UAAWA,GACXwW,EACA7V,EAAetnB,KAAKs7B,YACpBpwB,EAAW,IAAIwD,KAAK4Y,GACpB8V,EAAWp9B,KAAKq9B,qBAAqBh/B,GACzCsoB,EAAUpmB,OAAO,QAAS68B,GACtBp9B,KAAKk9B,UACLE,GAAY,IAEhBlyB,EAASwB,SAAS0wB,GAClB,EAAUjrB,cAAcjH,GACxBlL,KAAKO,OAAO,QAAS2K,IAEzBmyB,qBAAsB,SAAS7wB,GAC3B,IAAI8wB,EAAgBt9B,KAAKO,OAAO,mBAAqB,GAAK,GAC1D,OAAQ+8B,EAAgB9wB,GAAS8wB,GAErCZ,iBAAkB,WACd,IAAIE,EAAS58B,KAAKu8B,WAAav8B,KAAKsH,iBAAiB,eAAE,SAAU,cAAW,OAAAiF,EAAA,MAAO,CAC/EnB,KAAM,EACNC,IAAK,GACLhN,MAAO2B,KAAKs7B,YAAY9T,aACxBsV,kBAAmBC,GAAQ/8B,KAAKg9B,iBAAiBD,GACjD/M,eAAgBuN,IACZ,IACIl/B,MAAOA,EACPsoB,UAAWA,GACX4W,EACAC,GAAc,GAAKn/B,GAAS,GAChCsoB,EAAUpmB,OAAO,QAASi9B,GAC1B,IAAIvtB,EAAO,IAAIvB,KAAK1O,KAAKs7B,aACzBrrB,EAAKsX,WAAWiW,GAChB,EAAUrrB,cAAclC,GACxBjQ,KAAKO,OAAO,QAAS0P,KAE1BjQ,KAAKi9B,wBACRL,EAAOpmB,QAAQ,QAAS,YAE5BmmB,mBAAoB,WAChB,IAAIc,EAAc,OAAiBC,iBAC/Bd,EAAS58B,KAAKw8B,UAAYx8B,KAAKsH,iBAAiB,eAAE,SAAS9C,SAASi2B,IAA0B,cAAW,CACzGvzB,MAAO,CAAC,CACJ7I,MAAOq8B,GACPntB,KAAMkwB,EAAY,IACnB,CACCp/B,MAAOs8B,GACPptB,KAAMkwB,EAAY,KAEtBE,UAAW,QACXC,YAAa,OACbd,kBAAmBC,GAAQ/8B,KAAKg9B,iBAAiBD,GACjD/M,eAAgB6N,IACZ,IACIx/B,MAAOA,GACPw/B,EACArxB,EAAQxM,KAAKs7B,YAAY3vB,WACzBsE,EAAO,IAAIvB,KAAK1O,KAAKs7B,aACrB8B,GAAY5wB,EAAQ,GAAKnO,GAAS,GACtC4R,EAAKvD,SAAS0wB,GACdp9B,KAAKO,OAAO,QAAS0P,IAEzB5R,MAAO2B,KAAKs7B,YAAY3vB,YAAc,GAAKgvB,GAAuBD,GAClEW,YAAar7B,KAAKO,OAAO,iBAE7Bq8B,EAAOpmB,QAAQ,QAAS,SAE5BsnB,iBAAkB,WACd,IAAI99B,KAAKO,OAAO,mBAAhB,CAGA,IAAIlC,EAAQ2B,KAAKs7B,YACb9uB,EAAQnO,EAAMsN,WACdiB,EAAOJ,GAAS,GAChBtB,EAAW0B,EAAO+tB,GAAuBD,GAC7C16B,KAAK+9B,yBAAyB/9B,KAAKw8B,UAAWtxB,KAElD6yB,yBAA0B,SAASnB,EAAQv+B,GACnCu+B,IACAA,EAAOoB,6BACPpB,EAAOr8B,OAAO,QAASlC,GACvBu+B,EAAOqB,6BAGfhB,oBAAqB,WACjB,MAAO,CACHiB,iBAAiB,EACjBC,sBAAuB,SAAS9/B,GAC5B,OAAQA,EAAQ,GAAK,IAAM,IAAMA,GAErCg9B,YAAar7B,KAAKO,OAAO,iBAGjC69B,gBAAiB,SAAS5xB,GACtB,OAAOxM,KAAKO,OAAO,mBAAqBiM,EAAQA,EAAQ,IAAM,IAElE6xB,aAAc,WACV,IAAI7xB,EAAQxM,KAAKo+B,gBAAgBp+B,KAAKs7B,YAAY3vB,YAClD3L,KAAK+9B,yBAAyB/9B,KAAKq8B,SAAU7vB,GAC7CxM,KAAK+9B,yBAAyB/9B,KAAKu8B,WAAYv8B,KAAKs7B,YAAY9T,cAChExnB,KAAK89B,oBAETtC,YAAa,WACLx7B,KAAKO,OAAO,eACZP,KAAKg8B,eAETh8B,KAAKq+B,gBAET9S,mBAAoB,SAAS3iB,GACrBA,GACA5I,KAAKw7B,eAGbryB,eAAgB,SAASjB,GACrB,OAAQA,EAAKjJ,MACT,IAAK,QACDe,KAAKw7B,cACLx7B,KAAKuT,SAASrL,GACd,MACJ,IAAK,eACD,MACJ,IAAK,kBACL,IAAK,aACL,IAAK,cACDlI,KAAKkJ,cACL,MACJ,QACIlJ,KAAKuT,SAASrL,OAI9B,eAAkB,aAAc+yB,IACjB,UC3QX,GAAS,iBAUTqD,GAA2B,IAC3BC,GAAgC,6BAChCC,GAA8B,gCAC9BC,GAA2B,GAAiBnrB,QAAQ,CACpD+b,KAAM,mBACNpC,kBAAmB,WACf,OAAO,OAAA1gB,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BmrB,eAAgB,aAChBpO,gBAAiB,eACjB,6BAA6B,KAGrCV,sBAAuB,WACnB,OAAO,OAAUtU,SAAStb,KAAKwvB,qBAAsBxvB,KAAKwsB,aAAa,WAE3EW,iBAAkB,SAAS4C,GACvB,OAAOA,GAAiB,sBAE5B4O,gBAAiB,WACb,OAAO,OAAiBC,eAAe5+B,KAAKmtB,iBAAiBntB,KAAKusB,QAAQhsB,OAAO,oBAErFivB,mBAAoB,WAChB,IAAIqP,EAAW7+B,KAAKuT,WACpB,OAAOvT,KAAK8+B,gBAAgBD,IAEhCnS,cAAe,WACX1sB,KAAKuT,WACLvT,KAAK++B,UAAY/+B,KAAKusB,QAAQjlB,iBAAiB,eAAE,SAAU,GAAU,CACjEjJ,MAAO2B,KAAK0uB,eACZyM,YAAan7B,KAAKg/B,gBAClB9D,gBAAiBl7B,KAAK2+B,kBACtB3O,eAAgBhwB,KAAKiwB,qBAAqBntB,KAAK9C,MAC/Cq7B,YAAar7B,KAAKusB,QAAQhsB,OAAO,iBAErCP,KAAK++B,UAAUlO,mBAAmB,SAAU7wB,KAAK8wB,eAAehuB,KAAK9C,QAEzE0tB,kBAAmB,WACf1tB,KAAKuT,WACL,IAAI0a,EAAQjuB,KAAK8tB,YACbG,GACAA,EAAMgR,WAAWrqB,YAAY2pB,GAA+Bv+B,KAAKk/B,kBAErEp3B,aAAa9H,KAAKm/B,eAClBn/B,KAAKm/B,cAAgBn3B,WAAW,WAC5BhI,KAAK8tB,aAAe9tB,KAAK8tB,YAAYC,WACvCjrB,KAAK9C,MAAO,IAElBgvB,oBAAqB,WACjB,IAAIoQ,EAAiBp/B,KAAKg/B,gBACtBK,EAAsBr/B,KAAKs/B,qBAC/B,OAAIF,IAAmBC,GACnBr/B,KAAKs/B,qBAAuBF,OACrB,IAAWC,GAEfr/B,KAAKuT,YAEhBoa,aAAc,SAAS4R,GACnB,IAAI50B,EAAO3K,KAAK0uB,eACX/jB,GAAS40B,IACV50B,EAAO,IAAI+D,KACX,EAAYyD,cAAcxH,IAE9B3K,KAAKuT,WACDvT,KAAK++B,YACLp0B,GAAQ3K,KAAK++B,UAAUx+B,OAAO,QAASoK,GACvC3K,KAAK++B,UAAUx+B,OAAO,kBAAmBP,KAAK2+B,qBAGtDO,eAAgB,WACZ,OAAO,eAAS,KAAWZ,IAE/BU,cAAe,WACX,OAAQh/B,KAAKusB,QAAQhsB,OAAO,oBAAsBP,KAAKusB,QAAQhsB,OAAO,sBAAwBP,KAAKk/B,kBAEvG/C,aAAc,WACV,IAAIj1B,EAAQ,CAAC,CACTpF,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV5C,KAAM,aAUV,OARKe,KAAKg/B,iBACN93B,EAAMP,KAAK,CACP7E,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV5C,KAAM,SAGPiI,GAEX8mB,mBAAoB,WAChBhuB,KAAKuT,WACLvT,KAAKs/B,qBAAuBt/B,KAAKg/B,gBACjC,IAAI9Q,EAAgBluB,KAAK8tB,YAAYK,WACrCnuB,KAAKw/B,KAAOx/B,KAAKusB,QAAQjlB,iBAAiB,eAAE,SAASuP,SAASqX,GAAgB,QAAK,CAC/E3sB,UAAW,MACXH,WAAY,UACZ8F,MAAOlH,KAAKm8B,eACZ50B,aAAc,SAAS7F,EAAMmM,EAAG1P,GAC5B,IAAIyL,EAAa,eAAE,SACnB,OAAQlI,EAAKzC,MACT,IAAK,WACD2K,EAAWxE,OAAOpF,KAAKysB,QAAQnsB,YAC3BN,KAAKg/B,kBACLh/B,KAAK++B,UAAUz+B,WAAWkE,SAASg6B,IACnC50B,EAAWxE,OAAOpF,KAAK++B,UAAUz+B,aAErC,MACJ,IAAK,OACDsJ,EAAWxE,OAAOpF,KAAK++B,UAAUz+B,YACjC,eAAEnC,GAASqG,SAASg6B,IAE5B,OAAO50B,GACT9G,KAAK9C,QAEXA,KAAKy/B,qBAET7R,YAAa,SAASwC,GAClB,IAAIsP,EAAsB1/B,KAAKuT,SAAS6c,GACpCnrB,EAAS,OAAAsH,EAAA,MAAOmzB,EAAqB,CACrCt9B,MAAO,OACPu9B,UAAW,WACP,GAAI,aAAe3/B,KAAKw/B,KAAKj/B,OAAO,mBAAoB,CACpD,IAAIq/B,EAAgB5/B,KAAK8tB,YAAYK,WAAW3oB,KAAK,sBAAsB5E,IAAI,YAC/EZ,KAAK++B,UAAUz+B,WAAWM,IAAI,WAAYg/B,KAEhD98B,KAAK9C,QAEX,OAAOiF,GAEXopB,qBAAsB,WAClB,OAAOruB,KAAK++B,UAAU1C,SAAS/7B,WAAWkF,KAAK,UAEnDi6B,kBAAmB,WACf,IAAIlT,EAAUvsB,KAAKusB,QACnBvsB,KAAK++B,UAAU1C,SAASxL,mBAAmB,OAAO,SAAUvnB,GACpDA,EAAEK,WACFL,EAAEqW,iBACF4M,EAAQyE,aAIpB5C,qBAAsB,SAAS9kB,GACtB,eAAEA,EAAEkB,QAAQ2O,SAAS,yBACtBnZ,KAAKuT,SAASxK,MAAM/I,KAAM+E,WACrB/E,KAAKusB,QAAQsT,kBACd7/B,KAAKusB,QAAQyE,UAIzB8N,gBAAiB,SAASn0B,GACtB,IAAIsF,EAAOjQ,KAAK++B,UAAUx+B,OAAO,SAEjC,OADAoK,EAAK+B,SAASuD,EAAKtE,WAAYsE,EAAKuX,aAAcvX,EAAKwX,aAAcxX,EAAKyX,mBACnE/c,GAEXokB,SAAU,WACN,IAAI+Q,EACAn1B,EAAO,QAAUm1B,EAAuB9/B,KAAKysB,QAAQlsB,OAAO,gBAAa,IAAWu/B,EAAuBA,EAAuB9/B,KAAKysB,QAAQL,mBAEnJ,OADAzhB,EAAOA,EAAO,IAAI+D,KAAK/D,GAAQ,IAAI+D,KAC5B1O,KAAK8+B,gBAAgBn0B,IAEhCskB,QAAS,WACLnnB,aAAa9H,KAAK+/B,sBAClBj4B,aAAa9H,KAAKm/B,eAClBn/B,KAAKuT,cAGE,M,sCClLX,GAAS,iBAoBTysB,GAAc,OACdC,GAAkB,CAClB70B,IAAK,IAAIsD,KAAK,EAAG,EAAG,EAAG,EAAG,GAC1BrD,IAAK,IAAIqD,KAAK,EAAG,EAAG,EAAG,GAAI,KAE3BwxB,GAAe,GAAgB5sB,QAAQ,CACvC+b,KAAM,OACNjC,cAAe,WACX,MAAO,CACHrM,IAAK,WACD,IACIof,OAAQA,EACRzB,eAAgBA,GAChB1+B,KAAKO,SACL4/B,GAAU,cAAgBzB,GAC1B1+B,KAAK6vB,SAGbuQ,MAAO,OACP7f,KAAM,OACN1iB,IAAK,SAGbovB,kBAAmB,WACf,OAAO,OAAA1gB,EAAA,MAAOvM,KAAKuT,WAAY,CAC3BmrB,eAAgB,eAGxBvR,iBAAkB,SAAS4C,GACvB,OAAOA,GAAiB,aAE5BnC,YAAa,SAASwC,GAClB,OAAOA,GAEXrB,SAAU,WACN,IAAIgD,EAAgB/xB,KAAKysB,QAAQlsB,OAAO,iBACxC,IAAK,IAAMwxB,EACP,OAAO/xB,KAAKusB,QAAQhsB,OAAO,SAE/B,IAAIyD,EAAWhE,KAAKqgC,aAAatO,GACjC,OAAO/xB,KAAKsgC,mBAAmBt8B,IAEnC2qB,wBAAyB,WACrB,OAAO,GAEXC,eAAgB,WACZ,OAAO,IAAIlgB,KAAK,OAEpB8f,oBAAqB,WACjBxuB,KAAKusB,QAAQ1jB,qBAEjB6jB,cAAe,WACX1sB,KAAKuT,WACLvT,KAAKugC,iBAETzT,eAAgB,WACZ,OAAO,SAEXE,kBAAmB,WACf,MAAO,CACHzlB,aAAcvH,KAAKwgC,sBAAsB19B,KAAK9C,MAC9C0H,YAAa1H,KAAKygC,sBAAsB39B,KAAK9C,MAC7CumB,UAAW,EACXma,qBAAsB1gC,KAAKkwB,yBAAyBptB,KAAK9C,MACzD2gC,cAAe,WAGvBzQ,yBAA0B,SAAS5mB,GAC/BtJ,KAAKusB,QAAQ/V,QAAQ,mBAAoB,IACzCxW,KAAKusB,QAAQ/V,QAAQ,mBAAoBlN,EAAE6mB,cAE/CoQ,cAAe,WACXvgC,KAAKqgC,aAAergC,KAAK4gC,oBACzB5gC,KAAKysB,QAAQlsB,OAAO,QAASP,KAAKqgC,eAEtC3S,kBAAmB,WACV1tB,KAAKysB,UAGVzsB,KAAKysB,QAAQlsB,OAAO,iBAAkB,MACtCP,KAAK6gC,2BACD7gC,KAAKysB,QAAQlsB,OAAO,iCACpBP,KAAK8gC,oBAAsB94B,WAAWhI,KAAK+gC,sBAAsBj+B,KAAK9C,OAEtEA,KAAK+gC,0BAGb9R,QAAS,WACLjvB,KAAKuT,WACLzL,aAAa9H,KAAK8gC,sBAEtBnT,aAAc,WACL3tB,KAAKysB,UAGVzsB,KAAKugC,gBACLvgC,KAAK6gC,2BACL7gC,KAAK+gC,0BAETF,yBAA0B,WACtB,IAAIxiC,EAAQ2B,KAAK0uB,eACbsS,EAAYhhC,KAAKihC,cAAc5iC,IAC9B,IAAM2iC,EACPhhC,KAAKysB,QAAQlsB,OAAO,gBAAiB,IAErCP,KAAKysB,QAAQlsB,OAAO,gBAAiBygC,IAG7CD,sBAAuB,WACnB/gC,KAAKysB,QAAQyU,aAAalhC,KAAKysB,QAAQlsB,OAAO,mBAElD0gC,cAAe,SAASt2B,GAEpB,IADA,IAAI1F,GAAU,EACL4I,EAAI,EAAGszB,EAAInhC,KAAKqgC,aAAa78B,OAAQqK,EAAIszB,EAAGtzB,IACjD,GAAI7N,KAAKohC,eAAez2B,EAAM3K,KAAKqgC,aAAaxyB,IAAK,CACjD5I,EAAS4I,EACT,MAGR,OAAO5I,GAEXm8B,eAAgB,SAAS/9B,EAAOg+B,GAC5B,OAAO,eAAOh+B,IAAU,eAAOg+B,IAAWh+B,EAAMsI,aAAe01B,EAAO11B,YAActI,EAAMmkB,eAAiB6Z,EAAO7Z,cAEtHoZ,kBAAmB,WACf,IAAIx1B,EAAMpL,KAAKusB,QAAQ4C,WAAW,QAAUnvB,KAAKshC,iBAAiB,OAC9Dj2B,EAAMrL,KAAKusB,QAAQ4C,WAAW,QAAUnvB,KAAKshC,iBAAiB,OAC9DjjC,EAAQ2B,KAAKusB,QAAQ4C,WAAW,UAAY,KAC5CzlB,EAAQ2B,EAAMD,EACduH,EAAUvH,EAAIoc,aAAexnB,KAAKusB,QAAQhsB,OAAO,YACrD,OAAImJ,EAAQ,EACD,IAEPA,EAAQ,EAAUyF,UAClBzF,EAAQ,EAAUyF,SAElB9Q,EAAQ+M,EAAM,EAAU+D,UAG5B/D,EAAMpL,KAAKshC,iBAAiB,OAC5Bl2B,EAAImc,WAAW5U,GACXtU,GAASiG,KAAKqe,IAAItkB,EAAQgN,GAAO,EAAU8D,UAC3CzF,GAAS,GAAK2B,EAAIM,WAAarH,KAAKqe,IAAItX,EAAImc,aAAe7U,IAAY,EAAUzD,aAL1ElP,KAAKuhC,eAAen2B,EAAK,IAAIsD,KAAKtD,GAAM1B,KASvD63B,eAAgB,SAAS/uB,EAAY8U,EAAcka,GAC/C,IAAIC,EAAa,GACbC,EAAW1hC,KAAKusB,QAAQhsB,OAAO,YACnC,MAAO+mB,EAAe9U,GAAcgvB,EAChCC,EAAW96B,KAAK,IAAI+H,KAAK4Y,IACzBA,EAAaC,WAAWD,EAAaE,aAAeka,GAExD,OAAOD,GAEXH,iBAAkB,SAASK,GACvB,IAAIC,EAAgB3B,GAAgB0B,GAChCra,EAAe,IAAI5Y,KAAK,eAAc1O,KAAKusB,QAAQ4C,WAAW,SAAU,IAC5E,OAAO,IAAIzgB,KAAK4Y,EAAava,cAAeua,EAAa1c,WAAY0c,EAAavc,UAAW62B,EAAcj2B,WAAYi2B,EAAcpa,eAEzIgZ,sBAAuB,SAASx8B,GAC5B,IAAI+rB,EAAgB/vB,KAAKusB,QAAQhsB,OAAO,iBACxC,OAAO,OAAiB+O,OAAOtL,EAAUhE,KAAKmtB,iBAAiB4C,KAEnE0Q,sBAAuB,SAASn3B,GAC5B,GAAI,eAAiBtJ,KAAKusB,QAAQhsB,OAAO,kBAAzC,CAGA,IAAIoK,EAAO3K,KAAKsgC,mBAAmBh3B,EAAEtF,UACrChE,KAAKusB,QAAQhsB,OAAO,UAAU,GAC9BP,KAAK0uB,aAAa/jB,EAAMrB,EAAE2K,SAE9BqsB,mBAAoB,SAASt8B,GACzB,IAAI2G,EAAO3K,KAAKusB,QAAQhsB,OAAO,SAC3BiM,EAAQxI,EAAS2H,WACjBgH,EAAU3O,EAASwjB,aACnB5U,EAAU5O,EAASyjB,aACnB3W,EAAO9M,EAAS+I,cAChBgE,EAAQ/M,EAAS4G,WACjBE,EAAM9G,EAAS+G,UAgBnB,OAfIJ,GAEIA,EADA3K,KAAKusB,QAAQhsB,OAAO,2BACb,OAAkBihB,gBAAgB7W,GAElC,IAAI+D,KAAK/D,GAEpBA,EAAK+B,SAASF,GACd7B,EAAK4c,WAAW5U,GAChBhI,EAAKyH,WAAWQ,GAChBjI,EAAKwC,YAAY2D,GACjBnG,EAAKW,SAASyF,GACdpG,EAAKa,QAAQV,IAEbH,EAAO,IAAI+D,KAAKoC,EAAMC,EAAOjG,EAAK0B,EAAOmG,EAAS,EAAG,GAElDhI,GAEX0iB,oBAAqB,WACjB,OAAOrtB,KAAKysB,SAEhBoV,mBAAoB,WAChB,IAAIC,EAAwB,gBAAa9hC,KAAKusB,QAAQhsB,OAAO,2BAC7D,QAAI,IAAWuhC,GAAyB,SAAWA,EAAuB,CACtE9hC,KAAKusB,QAAQwV,gBAAgB,SAAU,QACvC,IAAIC,EAAc,eAAehiC,KAAKysB,QAAQnsB,YAC1Ci5B,EAAY,IAAM,eAAU,IAChCv5B,KAAKusB,QAAQwV,gBAAgB,SAAUz9B,KAAK8G,IAAI42B,EAAazI,IAEjEv5B,KAAKusB,QAAQ0V,WAAajiC,KAAKusB,QAAQ0V,UAAUC,oBAErD3U,cAAe,SAAShgB,EAAM+B,GAC1B,IAAIjR,EAAQ2B,KAAKuT,SAAShG,EAAM+B,GAIhC,OAHIjR,IACAA,EAAQ,EAAU2S,WAAW3S,EAAO,IAAIqQ,KAAK,MAAOsxB,KAEjD3hC,KAGA,MCjPX,GAAS,iBAkCT8jC,GAAgB,aAChBC,GAAsB,gBACtBC,GAAyB,wBACzBC,GAAwB,uBACxBC,GAAwB,qBACxBC,GAA+B,4BAC/BC,GAAc,CACdC,SAAU,WACVC,QAAS,UACTC,KAAM,OACNC,OAAQ,UAER,GAAO,CACPl4B,KAAM,OACNuF,SAAU,WACVD,KAAM,QAEN6yB,GAAgB,CAChBJ,SAAU,WACVK,SAAU,WACVF,OAAQ,SACRG,iBAAkB,mBAClBJ,KAAM,QAENK,GAAmB,CACnBxkB,SAAU,GACVmX,SAAU,GACVsN,OAAQ,GACRC,iBAAkB,GAClBC,KAAM,IAENC,GAAU,OAAe/vB,QAAQ,CACjCmM,eAAgB,WACZ,OAAO,OAAAlT,EAAA,MAAOvM,KAAKuT,WAAYvT,KAAKsjC,UAAUlW,kBAElDmW,wBAAyB,WACrBvjC,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKsjC,UAAUhW,oBAEnBznB,mBAAoB,WAChB,OAAO,OAAA0G,EAAA,MAAOvM,KAAKuT,WAAY,CAC3B/D,KAAM,OACNg0B,iBAAiB,EACjBnlC,MAAO,KACPugB,6BAAyB,EACzBxT,SAAK,EACLC,SAAK,EACL0kB,cAAe,KACf2R,SAAU,GACVhsB,cAAe,KACf+tB,WAAYhB,GAAYC,SACxBgB,mBAAoBhtB,EAAA,KAAoBpH,OAAO,iCAC/Cq0B,sBAAuBjtB,EAAA,KAAoBpH,OAAO,oBAClD0pB,gBAAiBtiB,EAAA,KAAoBpH,OAAO,MAC5Cs0B,mBAAmB,EACnBC,gBAAiB,GACjBC,wBAAwB,KAGhC3kB,qBAAsB,WAClB,OAAOnf,KAAKuT,WAAWjN,OAAO,CAAC,CAC3B8Y,OAAQ,CACJ+Z,SAAU,OAEd/vB,QAAS,CACL,6BAA6B,IAElC,CACCgW,OAAQ,CACJ+Z,SAAU,WAEd/vB,QAAS,CACLknB,gBAAiB,iBAEtB,CACClR,OAAQ,WACJ,IAAI2kB,EAAa1kB,EAAA,KAAQC,OACrB6Z,EAAW4K,EAAW5K,SAC1B,MAAO,QAAUA,GAAY,YAAcA,GAE/C/vB,QAAS,CACLq6B,WAAYhB,GAAYI,SAE7B,CACCzjB,OAAQ,SAAS4kB,GACb,IAAID,EAAa1kB,EAAA,KAAQC,OACrB6Z,EAAW4K,EAAW5K,SACtB8K,EAAUF,EAAWE,QACzB,MAAO,YAAc9K,GAAY,YAAc6K,EAAczkB,YAAc,YAAc4Z,GAAY,eAAgB8K,EAAS,CAAC,EAAG,IAAM,GAE5I76B,QAAS,CACLq6B,WAAYhB,GAAYE,UAE7B,CACCvjB,OAAQ,CACJ+Z,SAAU,UACV5Z,WAAY,WAEhBnW,QAAS,CACLknB,gBAAiB,oBAI7B4T,aAAc,SAAS96B,GACnBpJ,KAAKmkC,aAAe,OAAA53B,EAAA,MAAO,GAAInD,GAC/BpJ,KAAKuT,SAASnK,GACdpJ,KAAKokC,wBAETA,qBAAsB,WAClB,IAAIX,EAAazjC,KAAKO,OAAO,cACzBiP,EAAOxP,KAAKO,OAAO,QACnBkjC,IAAehB,GAAYG,MAASpzB,IAAS,GAAKU,UAAYV,IAAS,GAAK7E,OAC5E84B,EAAahB,GAAYC,UAEzBlzB,IAAS,GAAKS,MAAQwzB,IAAehB,GAAYC,WACjDe,EAAahB,GAAYG,MAE7B5iC,KAAKO,OAAO,qBAAsB,YAAc8e,EAAA,KAAQC,OAAO6Z,UAAYsK,IAAehB,GAAYI,QACtG7iC,KAAKqkC,YAAcZ,GAEvBp9B,MAAO,WACHrG,KAAKskC,gBACLtkC,KAAKO,OAAO,OAAAgM,EAAA,MAAO,GAAIvM,KAAKsjC,UAAUrW,oBAAqBjtB,KAAKmkC,sBACzDnkC,KAAKmkC,aACZnkC,KAAKuT,YAETgxB,wBAAyB,SAASC,GAC9B,OAAOA,EAAOC,OAAO,GAAGC,cAAgBF,EAAOt3B,OAAO,IAE1Do3B,cAAe,WACX,IAAIK,EAAe3kC,KAAK4kC,iBAAiB5kC,KAAK6kC,kBAC1CC,EAAW7B,GAAiB0B,GAC1B3kC,KAAKsjC,WAAatjC,KAAKsjC,UAAUjU,OAASsV,IAC5C3kC,KAAKsjC,UAAY,IAAIwB,EAAS9kC,QAGtC6kC,eAAgB,WACZ,IAAIE,EAAc/kC,KAAKO,OAAO,QAC1BykC,EAAS,SAASC,KAAKF,GACvBG,EAAS,SAASD,KAAKF,GACvBv1B,EAAO,GAOX,OANI01B,IACA11B,GAAQ,GAAK7E,MAEbq6B,IACAx1B,GAAQ,GAAKS,MAEVT,GAEXo1B,iBAAkB,SAASp1B,GACvB,IAAIi0B,EAAazjC,KAAKqkC,YACtB,OAAIZ,IAAehB,GAAYE,QACpBG,GAAcC,SACdU,IAAehB,GAAYI,OAC3BC,GAAcD,OAErBrzB,IAAS,GAAK7E,KACPm4B,GAAcJ,SAErBlzB,IAAS,GAAKU,SACP4yB,GAAcE,iBAElBF,GAAcF,MAEzB/7B,YAAa,WACT7G,KAAKM,WAAWkE,SAAS29B,IACzBniC,KAAKuT,WACLvT,KAAKmlC,sBACLnlC,KAAKolC,0BACLplC,KAAKsjC,UAAU7V,kBAAkBztB,KAAKm6B,WAE1CxU,QAAS,WACL3lB,KAAKuT,WACLvT,KAAKqlC,yBAETC,kBAAmB,WACftlC,KAAKuT,WACLvT,KAAKM,WAAWsU,YAAYwtB,IAAsBpiC,KAAKO,OAAO,UAC9DP,KAAK6I,qBAETA,kBAAmB,WAGX,IAAI08B,EAAuBC,GAF/BxlC,KAAKuT,SAASxO,WACV/E,KAAKuuB,UAEL,QAAUgX,GAAyBC,EAAkBxlC,KAAKsjC,WAAWzB,0BAAuB,IAAW0D,GAAiCA,EAAsBE,KAAKD,KAG3KL,oBAAqB,WACjB,IAAI7kC,EAAWN,KAAKM,WACpB,eAAK,IAAM,SAAU4B,EAAGT,GACpBnB,EAASyD,YAAYo+B,GAAgB,IAAM1gC,MAE/CnB,EAASkE,SAAS29B,GAAgB,IAAMniC,KAAKO,OAAO,UAExD6kC,wBAAyB,WACrB,IAAI9kC,EAAWN,KAAKM,WACpB,eAAKmiC,IAAa,SAAUvgC,EAAGT,GAC3BnB,EAASyD,YAAYo+B,GAAgB,IAAM1gC,MAE/CnB,EAASkE,SAAS29B,GAAgB,IAAMniC,KAAKqkC,cAEjDgB,sBAAuB,WACnB,GAAK,iBAAL,CAGA,IAAIK,EAAe1lC,KAAKm6B,SAASr5B,IAAI,GACjC6kC,EAAe3lC,KAAKO,OAAO,cAC3BqlC,EAAmB5lC,KAAK6lC,uBACxBC,EAA2B9lC,KAAK+lC,+BAChCC,EAAWnhC,WAAW,GAAOohC,iBAAiBP,GAActjC,OAASwjC,EACrEM,EAA2BJ,EAAyB1jC,MAAQ4jC,EAC5D1nC,EAAQonC,EAAapnC,MACzB0B,KAAKM,WAAWsU,YAAYytB,IAAyB6D,GACjDA,QACI,IAAWlmC,KAAKmmC,iBAChBnmC,KAAKmmC,eAAiBR,EAAeG,EAAyBM,YAAcN,EAAyBO,cAEzGV,EAAernC,EAAMgoC,YAAc,EAAIhoC,EAAMioC,aAAe,GAE5DZ,EAAernC,EAAMgoC,YAActmC,KAAKmmC,eAAiB,KAAO7nC,EAAMioC,aAAevmC,KAAKmmC,eAAiB,OAGnHN,qBAAsB,WAClB,IAAID,EAAmB,EACvB,GAAI5lC,KAAKwmC,yBAA2B,KAAOxmC,KAAKm6B,SAAS7pB,MAAO,CAC5D,IAAIm2B,EAAqBzmC,KAAKM,WAAWkF,KAAK,IAAM88B,IAAuBxhC,IAAI,GAC/E8kC,EAAmB/gC,WAAW,GAAOohC,iBAAiBQ,GAAoBrkC,OAE9E,OAAOwjC,GAEXG,6BAA8B,WAC1B,IAAIz2B,EAAStP,KAAKsjC,UAAUnW,iBAAiBntB,KAAKO,OAAO,kBACrDmmC,EAAe,OAAiBp3B,OAAO,EAAYwC,eAAexC,EAAQ,OAAiBoD,gBAAiB,OAAiBkJ,eAAgBtM,GAC7Ic,EAASpQ,KAAKm6B,SACduL,EAAet1B,EAAOtP,IAAI,GAC1B6lC,EAAuB,eAA4Bv2B,EAAQs2B,GAC3DE,OAAkB,IAAW5mC,KAAKmmC,eAClCU,EAAiBD,EAAsB5mC,KAAKmmC,eAAT,EACvCQ,EAAqB9vB,SAAS7W,KAAKM,YACnC,IAAIwmC,EAAejiC,WAAW,GAAOohC,iBAAiBU,EAAqB7lC,IAAI,IAAIsB,OAC/EikC,EAAexhC,WAAW,GAAOohC,iBAAiBP,GAAca,cAChEH,EAAcvhC,WAAW,GAAOohC,iBAAiBP,GAAcY,aAC/DS,EAAiBD,EAAeV,EAAcC,EAAeQ,EAEjE,OADAF,EAAqBtc,SACd,CACHjoB,MAAO2kC,EACPX,YAAaA,EACbC,aAAcA,IAGtB,wBACI,OAAOrmC,KAAKuT,WAAWjN,OAAO,CAACtG,KAAKsjC,WAAatjC,KAAKsjC,UAAUjW,yBAEpE2Z,aAAc,WACVhnC,KAAKuT,WACLvT,KAAKuuB,OAAO0Q,WAAWz6B,SAAS+9B,IAChCviC,KAAKinC,uBAET7W,aAAc,WACV,IAAIxC,EAAc5tB,KAAKuT,WACvB,OAAO,OAAAhH,EAAA,MAAOvM,KAAKsjC,UAAU1V,YAAYA,GAAc,CACnDsZ,MAAOlnC,KAAKmnC,iBACZC,aAAa,KAGrBH,oBAAqB,WACjB,GAAKjnC,KAAKuuB,OAAV,CAGA,IAAIjuB,EAAWN,KAAKM,WAChB+mC,EAAiB,OAAA96B,EAAA,MAAO,GAAI,GAAMk2B,IACtC,eAAK4E,EAAgB,SAASnlC,EAAGT,GAC7BnB,EAASyD,YAAYw+B,GAAwB,IAAM9gC,IACrDqB,KAAK9C,OACPA,KAAKuuB,OAAO0Q,WAAWz6B,SAAS+9B,GAAwB,IAAMviC,KAAKO,OAAO,SAASiE,SAAS+9B,GAAwB,IAAMviC,KAAKqkC,aAAa7/B,SAASg+B,MAEzJ8E,oBAAqB,WACjBtnC,KAAKuT,WACLvT,KAAKsjC,UAAUtV,sBAEnBuZ,sBAAuB,WACnB,OAAOvnC,KAAKsjC,UAAUjV,wBAA0BruB,KAAKuT,YAEzDi0B,qBAAsB,WAClB,OAAOxnC,KAAKsjC,UAAUhV,uBAAyBtuB,KAAKuT,YAExDk0B,qBAAsB,WAClBznC,KAAKuT,WACLvT,KAAKsjC,UAAU9U,uBAEnBkZ,mBAAoB,WAChB1nC,KAAKuT,WACLvT,KAAKsjC,UAAU5V,qBAEnBia,oBAAqB,WACjB3nC,KAAKuT,WACLvT,KAAKsjC,UAAU5V,oBACf1tB,KAAKsjC,UAAU7U,sBAEnBlD,mBAAoB,SAAS3iB,GACrBA,GACA5I,KAAKqlC,yBAGbuC,mBAAoB,SAASt+B,GACzBtJ,KAAKO,OAAO,OAAQ,IACpBP,KAAKuT,SAASjK,IAElBu+B,mBAAoB,WAChB,GAAI7nC,KAAKqkC,cAAgB5B,GAAYE,QACjC,OAAO,EAEX,IAAIxJ,EAAW9Z,EAAA,KAAQC,OAAO6Z,SAC1B2O,EAAwB9nC,KAAK25B,kBAAoB,QAAUR,GAAY,YAAcA,GACzF,OAAI2O,EACO9nC,KAAKO,OAAO,YAEhBP,KAAKuT,YAEhBizB,sBAAuB,WACnB,OAAOxmC,KAAKuT,aAAevT,KAAK25B,iBAEpCtjB,aAAc,WACV,IAAIhY,EAAQ2B,KAAKmvB,WAAW,SAG5B,OAFAnvB,KAAKO,OAAO,OAAQP,KAAK+nC,kBAAkB1pC,IAC3C2B,KAAKsjC,UAAUxU,cACR9uB,KAAKuT,YAEhBkW,gBAAiB,WACb,IAAIprB,EAAQ2B,KAAKmvB,WAAW,SACxBvQ,EAA0B5e,KAAKO,OAAO,2BACtCynC,EAAe,EAAYx3B,mBAAmBxQ,KAAKO,OAAO,SAC1D0nC,EAAcrpB,EAA0B,OAAkBlO,cAAcrS,EAAOugB,GAA2B,EAAYnO,qBAAqBpS,EAAO2pC,GACtJhoC,KAAK2pB,oBAAoBrZ,IAAI23B,IAEjCF,kBAAmB,SAAS1pC,GACxB,IACI6pC,EADAhb,EAAOltB,KAAKO,OAAO,QAEvB,GAAI,SAAW2sB,EAAM,CACjB,IAAI6C,EAAgB/vB,KAAKsjC,UAAUnW,iBAAiBntB,KAAKO,OAAO,kBAChE2nC,EAAgB,OAAiB54B,OAAOjR,EAAO0xB,OAC5C,CACH,IAAIzgB,EAAStP,KAAKmoC,iBAAiBjb,GAE/Bgb,EADA54B,EACgB,OAAiBA,OAAOjR,EAAOiR,GAE/B,EAAYmB,qBAAqBpS,EAAO6uB,GAGhE,OAAOgb,GAEXC,iBAAkB,SAASjb,GACvB,OAAO,uBAAUA,GAAQ,KAAO,EAAY3c,YAAY2c,IAE5D4C,yBAA0B,SAASxmB,GAC/B,IACIiE,KAAMA,EACNiC,KAAMA,EACN44B,gBAAiBA,GACjBpoC,KAAKO,SACL+mB,EAAetnB,KAAKmvB,WAAW,SACnC,GAAI5hB,IAASvN,KAAK+nC,kBAAkBzgB,GAApC,CAOA,IAAI+gB,EAAaroC,KAAKsoC,eAAe/6B,GACjClP,EAAQ,OAASipB,QAAgB,IAAWA,EAAeA,EAAetnB,KAAKuoC,oBAC/Er9B,EAAW,EAAY8F,WAAW3S,EAAOgqC,EAAY74B,GACrD7E,EAAO09B,GAAc,SAAW74B,EAAOtE,EAAWm9B,EACtD,GAAIroC,KAAKwoC,yBAAyB79B,GAAM89B,QAAS,CAC7C,IAAIP,EAAgBloC,KAAK+nC,kBAAkB78B,GACvC7M,GAAS6M,GAAY7M,EAAM6S,YAAchG,EAASgG,WAAag3B,IAAkB36B,EACjFvN,KAAKqW,eAELrW,KAAK0pB,UAAUxe,EAAU5B,SAfxB8+B,IAAmBA,EAAgBM,iBACpC1oC,KAAKwoC,yBAAyBlhB,GAC9BtnB,KAAK2oC,uBAAuBrhB,KAiBxCihB,kBAAmB,WACf,OAAOvoC,KAAKsjC,UAAU3U,2BAA6B3uB,KAAKsjC,UAAU1U,kBAEtE0Z,eAAgB,SAAS/6B,GACrB,IAAIwiB,EAAgB/vB,KAAKsjC,UAAUnW,iBAAiBntB,KAAKO,OAAO,kBAC5DqoC,EAAa5oC,KAAKsjC,UAAU/V,cAAchgB,EAAMwiB,GACpD,OAAO,OAAS6Y,QAAc,IAAWA,EAAaA,OAAa,GAEvE,yBAAyBvqC,GACrB,IAAIkP,EAAOvN,KAAKO,OAAO,QACnBsoC,IAAYt7B,GAAQ,OAASlP,EAC7B6mC,IAAW7mC,GAAS,eAAWA,KAAW4S,MAAM5S,EAAM6S,WACtD43B,EAAgB5D,GAAU,OAAUzpB,YAAYpd,EAAO2B,KAAKmvB,WAAW,OAAQnvB,KAAKmvB,WAAW,OAAQnvB,KAAKO,OAAO,SACnHkoC,GAAWI,IAAYxqC,GAASyqC,EAChCC,EAAoB,GAaxB,OAZK7D,EAEO4D,IACRC,EAAoB/oC,KAAKO,OAAO,0BAFhCwoC,EAAoB/oC,KAAKO,OAAO,sBAIpCP,KAAKO,OAAO,CACRkoC,QAASA,EACTL,gBAAiBK,EAAU,KAAO,CAC9BC,gBAAgB,EAChBhyB,QAASqyB,KAGV,CACHN,QAASA,EACTvD,OAAQA,IAGhByD,uBAAwB,SAAStqC,GAC7B2B,KAAKgpC,kBAAkBC,KAAK,CACxBrM,OAAQ58B,KACR3B,MAAO2B,KAAKkpC,eAAe7qC,MAGnC8qC,gBAAiB,SAASj+B,GACtB,IAAIrL,EAAWG,KAAKmvB,WAAW,SAC3Bia,EAAUvpC,GAAYA,EAASqR,UAC/Bm4B,EAAUn+B,GAAYA,EAASgG,UACnC,OAAOk4B,IAAYC,GAEvBC,eAAgB,SAASp+B,GACrB,IAAIq+B,EAAUvpC,KAAKO,OAAO,QACtBipC,EAAUt+B,GAAYlL,KAAK+nC,kBAAkB78B,IAAa,GAC9D,OAAOq+B,IAAYC,GAEvBC,aAAc,WACVzpC,KAAKuT,WACLvT,KAAKm6B,SAAS9pB,KAAK,eAAgB,QAEvCq5B,mBAAoB,WACX1pC,KAAK25B,iBACN35B,KAAKuT,WAELvT,KAAKsjC,UAAUtU,uBACfhvB,KAAK2pC,oBAGbxC,eAAgB,WACZ,IAAIyC,EAAc5pC,KAAKO,OAAO,eAC9B,GAAIqpC,EACA,OAAOA,EAEX,IAAIp6B,EAAOxP,KAAKO,OAAO,QACvB,OAAIiP,IAAS,GAAKS,KACPyG,EAAA,KAAoBpH,OAAO,0CAElCE,IAAS,GAAK7E,MAAQ6E,IAAS,GAAKU,SAC7BwG,EAAA,KAAoBpH,OAAO,0CAE/B,IAEXq6B,iBAAkB,WACd3pC,KAAKsjC,UAAUrU,UACfjvB,KAAKskC,gBACLtkC,KAAKO,OAAOP,KAAKsjC,UAAUrW,qBAC3BjtB,KAAK6pC,YAETC,oBAAqB,SAASxgC,GAC1B,IAAIjL,EAAQ2B,KAAKsjC,UAAUvU,YAEvB0Z,QAASA,EACTvD,OAAQA,GACRllC,KAAKwoC,yBAAyBnqC,GAClC,GAAIoqC,EACAzoC,KAAK0pB,UAAUrrB,EAAOiL,EAAE2K,YACrB,GAAIixB,EAAQ,CACf,IAAIgD,EAAgBloC,KAAK+nC,kBAAkB1pC,GAC3C2B,KAAKO,OAAO,OAAQ2nC,GACpBloC,KAAK+pC,mBAAmB7B,GAE5BloC,KAAKuT,YAETzK,SAAU,WACN,IAAIkhC,EACJhqC,KAAKuT,WACL,QAAUy2B,EAAmBhqC,KAAKsjC,iBAAc,IAAW0G,GAA4BA,EAAiB/a,WAE5G0K,cAAe,WACX,OAAO35B,KAAKqkC,cAAgB5B,GAAYI,QAE5CoH,kBAAmB,WACf,IAAIC,EACJ,QAAUA,EAAelqC,KAAKuuB,cAAW,IAAW2b,GAAwBA,EAAa3pC,OAAO,QAASP,KAAKmnC,mBAElHh+B,eAAgB,SAASjB,GACrB,OAAQA,EAAKjJ,MACT,IAAK,kBACL,IAAK,UACDe,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKqlC,wBACL,MACJ,IAAK,aACDrlC,KAAKokC,qBAAqB,CACtBX,WAAYv7B,EAAK7J,QAErB2B,KAAK2pC,mBACL3pC,KAAKolC,0BACLplC,KAAKkJ,cACL,MACJ,IAAK,OACDlJ,KAAKokC,qBAAqB,CACtB90B,OAAQpH,EAAK7J,QAEjB2B,KAAK2pC,mBACL3pC,KAAKmlC,sBACLnlC,KAAKinC,sBACLjnC,KAAKqlC,wBACLrlC,KAAK2tB,eACL,MACJ,IAAK,cACD3tB,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKiqC,oBACL,MACJ,IAAK,MACL,IAAK,MACD,IAAIxB,EAAUzoC,KAAKO,OAAO,WAC1BP,KAAKwoC,yBAAyBxoC,KAAKmvB,WAAW,UACzCsZ,GACDzoC,KAAK2oC,uBAAuB3oC,KAAKmvB,WAAW,UAEhDnvB,KAAKkJ,cACL,MACJ,IAAK,0BACL,IAAK,WACL,IAAK,gBACL,IAAK,kBACDlJ,KAAKkJ,cACL,MACJ,IAAK,gBACDlJ,KAAKO,OAAO,OAAQP,KAAK+nC,kBAAkB/nC,KAAKmvB,WAAW,WAC3DnvB,KAAKmqC,oBACL,MACJ,IAAK,OACDnqC,KAAKsjC,UAAUzU,mBAAmB3mB,EAAK7J,OACvC2B,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B,MACJ,IAAK,UACD/E,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKqlC,wBACL,MACJ,IAAK,qBACDrlC,KAAKqlC,wBACLrlC,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B,MACJ,IAAK,WACD/E,KAAKuT,SAASxK,MAAM/I,KAAM+E,WAC1B/E,KAAKqlC,wBACL,MACJ,IAAK,qBACL,IAAK,wBACL,IAAK,oBACL,IAAK,kBACD,MACJ,QACIrlC,KAAKuT,SAASxK,MAAM/I,KAAM+E,aAGtCqc,wBAAyB,WACrB,IAAI/iB,EAAQ2B,KAAKO,OAAO,SACxB,OAAIP,KAAKO,OAAO,4BAA8B,iBAAS6pC,oBAC5CpqC,KAAKO,OAAO,2BAEnB,eAAUlC,GACH,SAEN,eAASA,GAGP,OAAkBijB,2BAA2BjjB,QAHpD,GAKJsvB,aAAc,SAAStvB,GACnB2B,KAAKuT,WACLvT,KAAKwoC,yBAAyB,OAASnqC,QAAS,IAAWA,EAAQA,EAAQ2B,KAAKmvB,WAAW,WAE/FzF,UAAW,SAASrrB,EAAOgsC,GACvB,IAAIC,EAAiBtqC,KAAKmpC,gBAAgB9qC,GAW1C,OAVIisC,GAAkBD,GAClBrqC,KAAK0hB,sBAAsB2oB,GAE1BC,IACGtqC,KAAKspC,eAAejrC,GACpB2B,KAAK2tB,aAAatvB,GACX,KAAO2B,KAAKO,OAAO,SAC1BP,KAAK2oC,uBAAuBtqC,IAG7B2B,KAAKmvB,WAAW,QAAS9wB,IAEpC8wB,WAAY,SAAS9N,EAAYhjB,GAC7B,GAAI,IAAM0G,UAAUvB,OAChB,OAAO,OAAkBge,gBAAgBxhB,KAAKO,OAAO8gB,IAEzDrhB,KAAKO,OAAO8gB,EAAYrhB,KAAKkpC,eAAe7qC,KAEhD6qC,eAAgB,SAASv+B,GACrB,IAAIiX,EAAsB5hB,KAAKohB,0BAC/B,OAAO,OAAkB1Q,cAAc/F,EAAMiX,IAEjD2oB,YAAa,WACT,IAAIlsC,EAAQ2B,KAAKO,OAAO,SACxBP,KAAKuT,WACD,OAASlV,GACT2B,KAAK2oC,uBAAuB,OAGpC6B,MAAO,WACH,IAAInsC,EAAQ2B,KAAKO,OAAO,SACxBP,KAAKuT,WACD,OAASlV,GACT2B,KAAKwoC,yBAAyB,SAI3B,M,0BC1mBXiC,GAAuB,cACvBC,GAAU,EACVC,IAAY,EACZC,GAAc,GAAYt3B,QAAQ,CAClC,eAAehK,GACX,IAAIuhC,EAAmB7qC,KAAKuT,SAASjK,GACjCwhC,EAAsBxhC,IACtB,IAAIyhC,EAAkBF,EAAiB,eAAiBvhC,IACxD,OAAOyhC,GAAmBA,EAAgBhiC,MAAM/I,KAAM,CAACsJ,KAEvD0hC,EAAe,CAAC1hC,EAAG2hC,IACfjrC,KAAKkrC,0BAA0B5hC,GACxBwhC,EAAoB/hC,MAAM/I,KAAM,CAACsJ,IAEjC2hC,EAAYliC,MAAM/I,KAAM,CAACsJ,IAGxC,OAAO,OAAAiD,EAAA,MAAO,GAAIs+B,EAAkB,CAChCM,IAAK7hC,GAAK0hC,EAAa1hC,EAAG2K,IACtBjU,KAAKorC,YAAYV,IACjB1qC,KAAKqrC,kBAAoBp3B,EAAM0L,mBAEnC2rB,UAAWhiC,GAAK0hC,EAAa1hC,EAAG2K,IAC5BjU,KAAKorC,YAAYT,IACjB3qC,KAAKqrC,kBAAoBp3B,EAAM0L,mBAEnCY,KAAMjX,GAAK0hC,EAAa1hC,EAAG2K,IACvBjU,KAAKurC,mBACLt3B,EAAM0L,mBAEV9hB,IAAKyL,GAAK0hC,EAAa1hC,EAAG2K,IACtBjU,KAAKwrC,kBACLv3B,EAAM0L,mBAEV8rB,OAAQniC,GAAK0hC,EAAa1hC,EAAG2K,IACzBjU,KAAK0rC,eAAez3B,KAExB+M,MAAO1X,GAAK0hC,EAAa1hC,EAAG2K,IACxBjU,KAAK2rC,cAAc13B,KAEvB8L,UAAWzW,GAAK0hC,EAAa1hC,EAAG2K,IAC5BjU,KAAK4rC,gBAAgBjB,IACrB12B,EAAM0L,mBAEVD,WAAYpW,GAAK0hC,EAAa1hC,EAAG2K,IAC7BjU,KAAK4rC,gBAAgBlB,IACrBz2B,EAAM0L,mBAEVK,QAAS1W,GAAK0hC,EAAa1hC,EAAG2K,IAC1BjU,KAAK6rC,oBAAoBnB,IACzBz2B,EAAM0L,mBAEVU,UAAW/W,GAAK0hC,EAAa1hC,EAAG2K,IAC5BjU,KAAK6rC,oBAAoBlB,IACzB12B,EAAM0L,sBAIlB,0BAA0BrW,GACtB,IAAIwiC,EAA0B9rC,KAAKO,OAAO,WAAa+I,IAAM,IAAM,CAAC,YAAa,OAAO5K,QAAQ,eAAiB4K,IACjH,OAAQtJ,KAAK+rC,oBAAsBD,GAA2BxiC,GAAKA,EAAE0iC,QAEzE,oBAAoBC,GAChBjsC,KAAKksC,qBACL,IAAIC,EAAgBnsC,KAAKosC,oBAAoBpsC,KAAKqsC,mBAC9C/kB,EAAetnB,KAAKosC,sBACpB1iC,EAAQ4d,EAAe6kB,EAC3BnsC,KAAKssC,eAAetsC,KAAKqsC,mBACzBrsC,KAAKusC,cAAc7iC,EAAQuiC,GAAM,IAErC,qBACI,OAAO,OAAA1/B,EAAA,MAAOvM,KAAKuT,WAAY,CAC3Bi5B,iBAAiB,EACjBC,eAAgB,IAAI/9B,KAAK,IAAK,EAAG,EAAG,EAAG,EAAG,MAGlD,iBAAiByuB,GACb,IACIuP,cAAeA,EACfC,IAAKA,GACLxP,EACAyP,EAAMF,EAAchrC,MAAQgrC,EAAcE,IAC9C,MAAO,kBAAoBA,GAAO,IAAMA,EAAIppC,SAAWmpC,IAAQ,eAAoBD,IAEvF,kBAAkBpjC,GACd,IAAIujC,EACAnrC,EAAO,QAAUmrC,EAAmBvjC,EAAEojC,qBAAkB,IAAWG,OAAmB,EAASA,EAAiBnrC,KACpH,OAAO,KAAO,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAK8B,SAAW2H,SAASzJ,EAAM,KAE7ForC,qBAAsB,WAClB,IAAI1tB,EAASC,EAAA,KAAQC,OACrB,OAAOF,EAAO8a,SAAW9a,EAAO6kB,QAAQ,GAAK,GAEjD,iBAAiB36B,EAAGsjC,GAChB,IAAIG,EAAgB/sC,KAAKm6B,SAAS7pB,MAClCtQ,KAAKgtC,iBAAiBJ,GACtBtjC,EAAEqW,iBACF,IAAI2qB,EAAiByC,IAAkB/sC,KAAKm6B,SAAS7pB,MACrDg6B,GAAkB,OAAa2C,QAAQjtC,KAAKm6B,SAAU,UAE1D,iBAAiB7wB,GACb,IAAIsjC,EAAMtjC,EAAEojC,cAAcE,IACtB3nC,EAASjF,KAAKuT,SAASjK,GAC3B,OAAKtJ,KAAK+rC,oBAAsB/rC,KAAK8sC,yBAGjCI,GAAA,KAAQC,QAAU,YAAc7jC,EAAEsjC,KAAO,IAAMtjC,EAAE8jC,KAAK1uC,QAAQ,UAC9DkuC,EAAMtjC,EAAE8jC,KAAKp/B,QAAQ,QAAS,IAC9BhO,KAAKgtC,iBAAiBJ,GACtB5sC,KAAKqtC,kBAAoB,KACrBrtC,KAAKstC,wBAEFttC,KAAKutC,iBAAiBjkC,IAC7BtJ,KAAKwtC,iBAAiBlkC,EAAEojC,cAAeE,IAThC3nC,GAaf,wBAAwBqE,GACpBtJ,KAAKqtC,kBAAoB,KACzB,IACII,UAAWA,GACXnkC,EAAEojC,cACF,0BAA4Be,IAC5BztC,KAAKqtC,kBAAoB,KACrBrtC,KAAKstC,wBAGb,IAAII,EAAqB,0BAA4BD,EACjDE,EAAoB,yBAA2BF,EACnD,GAAIC,GAAsBC,EAAmB,CACzC,IAAIpsC,EAAYmsC,EAAqB/C,GAAWD,GAChD1qC,KAAKqtC,kBAAoB,KACrBrtC,KAAKorC,cACLprC,KAAK4rC,gBAAgBrqC,IAG7B,GAAKvB,KAAK+rC,oBAAuB/rC,KAAKutC,iBAAiBjkC,GAAvD,CAGA,IAAIsjC,EAAMtjC,EAAEojC,cAAchrC,KAE1B,OADA1B,KAAKwtC,iBAAiBlkC,EAAGsjC,IAClB,IAEX,iBAAiBtjC,GACb,IACIojC,cAAez4B,GACf3K,EACA,2BAA6B,OAAS2K,QAAS,IAAWA,OAAQ,EAASA,EAAMw5B,YAAcztC,KAAK4tC,kBAAkBtkC,KACtHtJ,KAAKgtC,iBAAiB/4B,EAAMvS,MAC5B1B,KAAK+pC,mBAAmB/pC,KAAK+nC,kBAAkB/nC,KAAK6tC,aACpD7tC,KAAK4rC,mBAET5rC,KAAKuT,SAASjK,GACVtJ,KAAKqtC,oBACLrtC,KAAKqtC,oBACLrtC,KAAKqtC,kBAAoB,OAGjC,iBAAiBT,GACT5sC,KAAKqrC,mBACLrrC,KAAK8tC,iBAAmB,GAE5B9tC,KAAKksC,qBACDj7B,MAAM9F,SAASyhC,IACf5sC,KAAK+tC,cAAcnB,GAEnB5sC,KAAKguC,cAAcpB,IAG3B,iBACI,IAAIz+B,EAAQnO,KAAKiuC,SACjB,OAAO9/B,EAAMtQ,IAAMsQ,EAAMvQ,QAAUoC,KAAKO,OAAO,QAAQiD,QAE3D,oBACI,GAAIxD,KAAKkuC,eACL,OAAOluC,KAAKkuC,eAEhB,IAAI5+B,EAAStP,KAAKsjC,UAAUnW,iBAAiBntB,KAAKO,OAAO,kBACrD4tC,EAAgB,eAAS7+B,KAAY,OAAiB8+B,oBAAoB9+B,GAQ9E,OANItP,KAAKkuC,eADLC,EACsB7+B,EAEA,gBAAU,SAAUjR,GACtC,OAAO,OAAiBiR,OAAOjR,EAAOiR,MAGvCtP,KAAKkuC,gBAEhB,qBACI,IAAKluC,KAAK6tC,WAAY,CAClB,IAAIxvC,EAAQ,SAAW2B,KAAKO,OAAO,QAAU,IAAImO,KAAK,MAAQ,IAAIA,KAClE1O,KAAK6tC,WAAaxvC,EAClB2B,KAAKqsC,kBAAoBhuC,EACzB2B,KAAKquC,qBAGb,mBAAmBhjC,GACf,IAAI4B,EAAiBtI,OAAO0G,GAAK7H,OAC7B8qC,EAAetuC,KAAKuuC,mBAAmB,WAAW/qC,OAClDgrC,EAAgB,IAAMF,EACtBG,EAAkBD,EAAgBvhC,EAAiB3I,KAAK8G,IAAIkjC,EAAcrhC,GAC1EyhC,EAAmB1uC,KAAK2uC,aAAanrC,SAAWirC,EAChDG,EAAoBzjC,SAASnL,KAAK2uC,aAAe,KAAOtjC,EAC5D,OAAOqjC,GAAoBE,GAE/B,cAAcC,GACV,IACIxjC,IAAKA,GACLrL,KAAK8uC,uBACL7hC,EAAiBtI,OAAO0G,GAAK7H,OACjCxD,KAAK2uC,cAAgB3uC,KAAK2uC,aAAeE,GAAM3hC,QAAQD,GACnDgE,MAAMjR,KAAK2uC,gBACX3uC,KAAK2uC,aAAeE,GAExB7uC,KAAK+uC,oBAAoB/uC,KAAK2uC,cAC1B3uC,KAAKgvC,mBAAmB3jC,IACxBrL,KAAK4rC,gBAAgBlB,KAG7B,cAAcmE,GACV,GAAK59B,MAAM9F,SAASnL,KAAKuuC,mBAAmB,UAA5C,CAMA,IAHA,IAAIngC,EAASpO,KAAKuuC,mBAAmB,SAAxBvuC,CAAkCA,KAAK6tC,YAChDoB,EAAcjvC,KAAK2uC,aAAeE,EAAKnK,cACvCwK,EAAW9gC,EAAO/C,IAAM+C,EAAOhD,IAC1ByC,EAAI,EAAGA,GAAKqhC,EAAUrhC,IAG3B,GAFA7N,KAAKssC,eAAetsC,KAAKqsC,mBACzBrsC,KAAKusC,cAAc1+B,EAAI,GACnB,IAAM7N,KAAKuuC,mBAAmB,QAAQ7J,cAAchmC,QAAQuwC,GAE5D,YADAjvC,KAAK2uC,aAAeM,GAI5BjvC,KAAKksC,qBACDlsC,KAAK2uC,eACL3uC,KAAKmvC,oBACLnvC,KAAK+tC,cAAcc,MAG3B,oBACI7uC,KAAK2uC,aAAe,IAExBvD,YAAa,SAAS7pC,GAClB,IAAKvB,KAAKqrC,iBAAkB,CACxB,IAAI+D,EAASpvC,KAAKosC,oBAAoBpsC,KAAKO,OAAO,mBAClDP,KAAK+uC,oBAAoBK,GACzBpvC,KAAK4rC,gBAAgBrqC,GAEzBvB,KAAKmvC,qBAET,mBACI,OAAOnvC,KAAKO,OAAO,oBAAsB,SAAWP,KAAKO,OAAO,SAEpE,qBACIP,KAAKqvC,YAAc,eAAcrvC,KAAKsvC,oBAAqB,QAC3D,IAAI7hC,EAASzN,KAAKqvC,YAAY5hC,OAC1B/E,EAAS+E,EAAO/E,OAChB6mC,EAAQ9hC,EAAO8hC,MACfC,EAAmB,IAAIC,OAAO,wBAC9BC,EAAkBhnC,EAAOoxB,MAAM0V,GAAkBG,IAAIC,GAAcJ,EAAiBvK,KAAK2K,GAAcA,EAAaC,GAAA,KAAmBC,cAAcF,GAAY,IAAQG,KAAK,IAClL/vC,KAAKqvC,YAAY5hC,OAAS,IAAIgiC,OAAOC,EAAiBH,IAE1D,iBACIvvC,KAAK8tC,iBAAmB,EACxB9tC,KAAKkuC,eAAiB,KACtBluC,KAAKgwC,qBACLhwC,KAAKssC,kBAET,cACItsC,KAAKuT,WACLvT,KAAKiwC,oBACLjwC,KAAKkwC,kBACDlwC,KAAK+rC,qBACL/rC,KAAKmwC,oBACLnwC,KAAKowC,iBACLpwC,KAAKquC,qBAGb,mBACI,GAAKruC,KAAK+rC,mBAAV,CAGA,IAAIx+B,EAAOvN,KAAKO,OAAO,SAAWP,KAAK+nC,kBAAkB/nC,KAAK6tC,YAC1DtgC,IACAvN,KAAKqwC,WAAa/iC,EAAgBC,EAAMvN,KAAKqvC,aACxCrvC,KAAKm6B,SAASj1B,GAAG,YAClBlF,KAAK4rC,qBAIjB,oBACI,OAAahpC,IAAI5C,KAAKm6B,SAAU,IAAMsQ,KAE1C,oBACI,OAAa5nC,GAAG7C,KAAKm6B,SAAU,eAAa,UAAWsQ,IAAuBzqC,KAAKswC,kBAAkBxtC,KAAK9C,OAC1G,OAAa6C,GAAG7C,KAAKm6B,SAAU,eAAa,QAASsQ,IAAuBzqC,KAAKuwC,kBAAkBztC,KAAK9C,OACxG,OAAa6C,GAAG7C,KAAKm6B,SAAU,eAAa,OAAQsQ,IAAuB,KACvEzqC,KAAKstC,wBAET,OAAazqC,GAAG7C,KAAKm6B,SAAU,eAAa,iBAAkBsQ,IAAuBzqC,KAAKwwC,2BAA2B1tC,KAAK9C,OACtHA,KAAK8sC,wBACL,OAAajqC,GAAG7C,KAAKm6B,SAAU,eAAa,cAAesQ,IAAuBzqC,KAAKywC,wBAAwB3tC,KAAK9C,QAG5H,sBACIA,KAAK+pC,mBAAmB/pC,KAAK+nC,kBAAkB/nC,KAAK6tC,aACpD7tC,KAAK4rC,mBAET,kBACQ5rC,KAAKO,OAAO,UACZP,KAAK8tC,iBAAmB9tC,KAAKqwC,WAAW7sC,OACxCxD,KAAK4rC,gBAAgBjB,MAG7B,mBACQ3qC,KAAKO,OAAO,UACZP,KAAK8tC,kBAAoB,EACzB9tC,KAAK4rC,gBAAgBlB,MAG7B,cAAcphC,GACNtJ,KAAK+rC,oBACL/rC,KAAKusC,cAAcjjC,EAAEI,MAAQ,EAAIghC,GAAUC,GAAUrhC,IAG7D,kBACI,IAAI2iC,EAAOlnC,UAAUvB,OAAS,QAAK,IAAWuB,UAAU,GAAKA,UAAU,GAAK,EAC5E,GAAK/E,KAAKO,OAAO,UAAWP,KAAK0wC,UAAjC,CAGIzE,IACAjsC,KAAKqsC,kBAAoB,IAAI39B,KAAK1O,KAAK6tC,aAE3C,IAAI5/B,EAAQ,eAAajO,KAAK8tC,iBAAmB7B,EAAM,EAAGjsC,KAAKqwC,WAAW7sC,OAAS,GACnF,GAAIxD,KAAKqwC,WAAWpiC,GAAOC,OAAQ,CAC/B,IAAIyiC,EAAkB,IAAM1iC,GAASg+B,EAAO,GAAKh+B,IAAUjO,KAAKqwC,WAAW7sC,OAAS,GAAKyoC,EAAO,EAChG,IAAK0E,EAED,YADA3wC,KAAK4rC,gBAAgBK,GAAQ,EAAIA,EAAO,EAAIA,EAAO,GAGnDh+B,EAAQjO,KAAK8tC,iBAGjB9tC,KAAK8tC,mBAAqB7/B,GAC1BjO,KAAKmvC,oBAETnvC,KAAK8tC,iBAAmB7/B,EACxBjO,KAAKiuC,OAAOjuC,KAAKuuC,mBAAmB,YAExC,wBACI,GAAI,MAAQvuC,KAAKuuC,mBAAmB,WAAW,GAC3C,MAAO,MAGf,qBAAqBqC,GACjB,IAAIC,EAAgB7wC,KAAKuuC,mBAAmB,UAC5C,OAAOsC,EAAc7wC,KAAK6tC,WAAY+C,GAAkB5wC,KAAK8wC,0BAEjE,oBAAoBpnB,GAChBA,EAAYA,GAAa1pB,KAAK6tC,WAC9B,IAAI3uC,EAASc,KAAKuuC,mBAAmB,UACrC,OAAO,eAAWrvC,GAAUA,EAAOwqB,GAAaA,EAAUxqB,MAE9D,kBAAkBb,GACd,IAAI0yC,EAAS/wC,KAAK2uC,aAAa/pC,MAAM,OACjCwJ,EAASpO,KAAK8uC,uBACd7hC,EAAiBtI,OAAOyJ,EAAO/C,KAAK7H,OACxC,QAASutC,GAAUA,EAAO,IAAM,IAAMpsC,OAAOtG,IAAQ6O,QAAQD,IAEjE,oBAAoB5O,EAAOqrB,GACvBA,EAAYA,GAAa1pB,KAAK6tC,WAC9B,IAAI1uC,EAASa,KAAKuuC,mBAAmB,UACjCngC,EAASpO,KAAK8uC,uBAClBzwC,EAAQ,eAAQA,EAAO+P,EAAOhD,IAAKgD,EAAO/C,KAAOhN,EAAQA,EAAQ,GACjEA,EAAQ2B,KAAKgxC,kBAAkB,eAAa3yC,EAAO+P,EAAOhD,IAAKgD,EAAO/C,MACtE,eAAWlM,GAAUA,EAAOuqB,EAAWrrB,GAASqrB,EAAUvqB,GAAQd,GAClE2B,KAAK+pC,mBAAmB/pC,KAAK+nC,kBAAkBre,IAC/C1pB,KAAKquC,oBAET,mBAAmBrlC,GACf,GAAKhJ,KAAKqwC,YAAerwC,KAAKqwC,WAAWrwC,KAAK8tC,kBAG9C,OAAO9tC,KAAKqwC,WAAWrwC,KAAK8tC,kBAAkB9kC,IAElD,iBACI,IAAI3K,EAAQ0G,UAAUvB,OAAS,QAAK,IAAWuB,UAAU,GAAKA,UAAU,GAAK/E,KAAKmvB,WAAW,SAC7FnvB,KAAK6tC,WAAaxvC,GAAS,IAAIqQ,KAAKrQ,GACpC2B,KAAKqsC,kBAAoBhuC,GAAS,IAAIqQ,KAAKrQ,IAE/C,iBACI,IAAIA,EAAQ2B,KAAK6tC,YAAc,IAAIn/B,KAAK1O,KAAK6tC,YACzCxvC,GAAS,SAAW2B,KAAKO,OAAO,SAChClC,EAAMqO,SAAS,EAAG,EAAG,EAAG,GAE5B1M,KAAKqsC,kBAAoB,IAAI39B,KAAKrQ,GAClC2B,KAAKmvB,WAAW,QAAS9wB,IAE7B,iBACI2B,KAAKssC,iBACLtsC,KAAK+pC,mBAAmB/pC,KAAK+nC,kBAAkB/nC,KAAK6tC,aACpD7tC,KAAKquC,oBAET,mBAAmB9gC,GACfvN,KAAKuT,SAAShG,GACVvN,KAAK+rC,oBACL/rC,KAAKO,OAAO,OAAQgN,IAG5B,cAAc0+B,EAAM2E,GAChB5wC,KAAKksC,qBACL,IACI7gC,IAAKA,EACLD,IAAKA,GACLpL,KAAK8uC,qBAAqB8B,GAC1BK,EAAa5lC,EAAMD,EACnB,IAAM6lC,GACNA,IAEJ,IAAI/lC,EAAW+gC,EAAOjsC,KAAKosC,sBACvBlhC,EAAWG,EACXH,EAAWlL,KAAKkxC,aAAahmC,EAAU,CACnCimC,UAAW/lC,EACXgmC,aAAc/lC,EACd4lC,WAAYA,IAET/lC,EAAWE,IAClBF,EAAWlL,KAAKkxC,aAAahmC,EAAU,CACnCimC,UAAW9lC,EACX+lC,aAAchmC,EACd6lC,WAAYA,KAGpBjxC,KAAK+uC,oBAAoB7jC,IAE7B,aAAaA,EAAUqyB,GACnB,IACI4T,UAAWA,EACXC,aAAcA,EACdH,WAAYA,GACZ1T,EACA7zB,GAASwB,EAAWkmC,GAAgBH,EACxC,OAAOvnC,EAAQynC,EAAYznC,EAAQ,EAAI,eAAKA,GAAS0nC,GAEzD,oBACQpxC,KAAKO,OAAO,UACZP,KAAK8tC,iBAAmBl/B,EAA2B5O,KAAKqwC,WAAYrwC,KAAKiuC,SAASrwC,OAC7EoC,KAAKqrC,mBACF,eAAUrrC,KAAK8tC,kBACf9tC,KAAKiuC,OAAOjuC,KAAKuuC,mBAAmB,UAEpCvuC,KAAKwrC,qBAKrB,2BAA2BliC,GACvBtJ,KAAKm6B,SAAS7pB,IAAItQ,KAAK+nC,kBAAkB/nC,KAAK6tC,aAC9C7tC,KAAK4rC,kBACL5rC,KAAKqtC,kBAAoB,KACrBrtC,KAAKstC,wBAGb,kBAAkBhkC,GACd,IAAIkgC,EAAUxpC,KAAKqxC,qBAAqBrxC,KAAKO,OAAO,QAASP,KAAKiuC,SAAU,eAAc3kC,IACtFqB,EAAO,OAAiB6iB,MAAMgc,EAASxpC,KAAKsvC,qBAC5C3kC,GAAQ3K,KAAKsxC,aAAa3mC,KAC1B3K,KAAK6tC,WAAaljC,EAClB3K,KAAK+pC,mBAAmB/pC,KAAK+nC,kBAAkB/nC,KAAK6tC,aACpD7tC,KAAKquC,mBACLruC,KAAK4rC,mBAETtiC,EAAEqW,kBAEN2xB,aAAc3mC,GAAQ,eAAOA,KAAUsG,MAAMtG,GAC7C,gBACI,IAAItM,EAAQ2B,KAAKmvB,WAAW,SAC5B,OAAQnvB,KAAK6tC,YAAc7tC,KAAK6tC,WAAW38B,cAAgB7S,GAASA,EAAM6S,YAE9E,mBACIlR,KAAKmvC,oBACDnvC,KAAKuxC,iBACL,OAAatE,QAAQjtC,KAAKm6B,SAAU,WAG5C,cAAc7wB,GACVtJ,KAAKwxC,mBACLxxC,KAAK4rC,gBAAgBlB,IACrBphC,EAAEqW,kBAEN,iBAAiBrW,GACb,IAAImoC,EAAwBzxC,KAAK+rC,qBAAuBziC,EAAEooC,qBACtDD,GACAzxC,KAAKwxC,mBACLxxC,KAAKuT,SAASjK,GACdtJ,KAAKurC,iBAAiBjiC,IAEtBtJ,KAAKuT,SAASjK,IAGtB,yBAAyBA,GACrB,IAAIiE,EAAOvN,KAAKO,OAAO,QACnBP,KAAK+rC,oBACL/rC,KAAK0hB,sBAAsBpY,GACtBiE,EAEM,OAASvN,KAAK6tC,YACrB7tC,KAAKssC,eAAe/+B,GAFpBvN,KAAK6tC,WAAa,KAItB7tC,KAAK2xC,kBAEL3xC,KAAKuT,SAASjK,IAGtB,eAAepB,GACX,OAAQA,EAAKjJ,MACT,IAAK,kBACDe,KAAK4xC,cACL,MACJ,IAAK,gBACL,IAAK,OACD5xC,KAAKuT,SAASrL,GACdlI,KAAK4xC,cACL,MACJ,IAAK,QACD5xC,KAAKssC,iBACLtsC,KAAKuT,SAASrL,GACdlI,KAAKquC,mBACL,MACJ,IAAK,iBACD,MACJ,QACIruC,KAAKuT,SAASrL,KAG1B,kBACIlI,KAAKmvC,2BACEnvC,KAAKqwC,kBACLrwC,KAAK8tC,wBACL9tC,KAAK6tC,YAEhB,QACI7tC,KAAKuT,WACLvT,KAAKkwC,kBACLlwC,KAAK8tC,iBAAmB,GAE5B,SACI9tC,KAAKuT,WACLvT,KAAKiwC,oBACLjwC,KAAKkwC,qBAGE,MC7kBf,eAAkB,YAAa,IAChB,UCFA,iB,oCCRf,IAAI2B,EAAM,EAAQ,OAAR,EAAwB,GAGlC,EAAQ,OAAR,CAA0BltC,OAAQ,UAAU,SAAUmtC,GACpD9xC,KAAK+xC,GAAKptC,OAAOmtC,GACjB9xC,KAAKgyC,GAAK,KAET,WACD,IAEIC,EAFAC,EAAIlyC,KAAK+xC,GACT9jC,EAAQjO,KAAKgyC,GAEjB,OAAI/jC,GAASikC,EAAE1uC,OAAe,CAAEnF,WAAO8zC,EAAWxnB,MAAM,IACxDsnB,EAAQJ,EAAIK,EAAGjkC,GACfjO,KAAKgyC,IAAMC,EAAMzuC,OACV,CAAEnF,MAAO4zC,EAAOtnB,MAAM,Q,oCCf/B,wFA2BIynB,EAAe,cACfC,EAAkB,eAClBC,EAAsB,CACtBlqB,QAAS,OACTE,UAAW,OACXE,MAAO,OACP+pB,SAAU,iBAEVC,EAAY,OAAal/B,QAAQ,CACjCzN,mBAAoB,WAChB,OAAO,eAAO7F,KAAKuT,WAAY,CAC3Bk/B,SAAS,EACTC,WAAW,EACXnxC,UAAW,aACXmnB,aAAc,KACdN,QAAS,KACTE,UAAW,KACXE,MAAO,KACP+pB,SAAU,QAGlB5sB,QAAS,WACL3lB,KAAKuT,WACLvT,KAAKM,WAAWkE,SAAS6tC,GACzBryC,KAAK2yC,wBAETA,qBAAsB,WAElB,GADA3yC,KAAK4yC,wBACD5yC,KAAKO,OAAO,YAAhB,CAGA,IAAI8uB,EAAOrvB,KAAKqvB,KAChBrvB,KAAK6yC,mBACL,eAAKP,EAAqB,SAASQ,EAAYhgB,GAC3C,IAAIigB,EAAS/yC,KAAKiH,sBAAsB6rC,EAAY,CAChDE,QAAShzC,OAEb8yB,EAAY,eAAaA,EAAWzD,GACpC,OAAaxsB,GAAG7C,KAAKM,WAAYwyB,EAAW9yB,KAAKizC,YAAY,SAAU3pC,GACnE,OAAOypC,EAAO,CACV9+B,MAAO3K,QAGjBxG,KAAK9C,SAEX6yC,iBAAkB,WACd7yC,KAAKizC,WAAa,CACdR,QAASzyC,KAAKO,OAAO,WACrBmoB,aAAc1oB,KAAKO,OAAO,gBAC1BgB,UAAWvB,KAAKO,OAAO,aACvBmyC,UAAW1yC,KAAKO,OAAO,eAG/BqyC,qBAAsB,WAClB,OAAahwC,IAAI5C,KAAKM,WAAY,IAAM8xC,IAE5CjpC,eAAgB,SAASjB,GACrB,OAAQA,EAAKjJ,MACT,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,eACL,IAAK,YACDe,KAAK4yC,uBACL5yC,KAAK2yC,uBACL,MACJ,IAAK,aACD,MACJ,QACI3yC,KAAKuT,SAASrL,KAG1BgrC,cAAe,WACX,OAAO,KAGf,eAAKV,EAAWJ,GACD,U,kCC5Gf,kDAaO,MAAMe,EACT,YAAY5xC,GACRvB,KAAKozC,qBAAuB,aAC5BpzC,KAAKqzC,mBAAqB,WAC1BrzC,KAAKszC,eAAiB,OACtBtzC,KAAKuB,UAAY,OAASA,QAAa,IAAWA,EAAYA,EAAY,OAE9E,mBACI,OAAOvB,KAAKuB,YAAc,QAAwBvB,KAAKuB,YAAc,OAEzE,iBACI,OAAOvB,KAAKuB,YAAc,QAAsBvB,KAAKuB,YAAc,OAEvE,aACI,OAAOvB,KAAKuB,YAAc,U,uBC1BlC,IAAIgyC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBC,EAAY,EAAQ,QACpBC,EAAO,EAAQ,QACfC,EAAiB,EAAQ,QAE7BJ,EAAQA,EAAQlnC,EAAG,SAAU,CAC3BunC,0BAA2B,SAAmCC,GAC5D,IAKIjH,EAAKkH,EALL5B,EAAIuB,EAAUI,GACdE,EAAUL,EAAKM,EACfC,EAAOT,EAAQtB,GACfjtC,EAAS,GACT4I,EAAI,EAER,MAAOomC,EAAKzwC,OAASqK,EACnBimC,EAAOC,EAAQ7B,EAAGtF,EAAMqH,EAAKpmC,WAChBskC,IAAT2B,GAAoBH,EAAe1uC,EAAQ2nC,EAAKkH,GAEtD,OAAO7uC,M,uBClBX,IAAIivC,EAAO,EAAQ,QACfC,EAAO,EAAQ,QACfC,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAAaA,QACnCC,EAAOC,QAAUF,GAAWA,EAAQb,SAAW,SAAiBgB,GAC9D,IAAIP,EAAOC,EAAKF,EAAEI,EAASI,IACvBC,EAAaN,EAAKH,EACtB,OAAOS,EAAaR,EAAK3tC,OAAOmuC,EAAWD,IAAOP,I,kCCRrC,SAASS,EAAgBC,EAAK/H,EAAKvuC,GAYhD,OAXIuuC,KAAO+H,EACTC,OAAOC,eAAeF,EAAK/H,EAAK,CAC9BvuC,MAAOA,EACPy2C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZL,EAAI/H,GAAOvuC,EAGNs2C,EAZT,mC,kCCAe,SCAA,K,YCEA,GAEbM,cAFa,WAEcC,GAAgB,EAA1BC,OACf,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAI,yBAA0B,CAAE00C,eAAgBN,IACjDO,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCC,aAXa,SAWC7C,EAAS8C,GACrB,OAAO,IAAIV,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAMD,EAAa,qBAAH,OAAwBA,GAAe,wBAC7DP,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCI,YArBa,SAqBAhD,EAAStxC,GACpB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,yBAA0Bv0C,GAChC+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCM,aA9Ba,WA8BaC,GAAI,EAAdhB,OACd,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,mCAAqCE,IAClCV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCQ,cAvCa,SAuCEpD,EAASqD,GACtB,OAAO,IAAIjB,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAI,yBAA0B,CAAEu1C,UAAWA,IAC5CZ,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,WC/CpB,KCKA,QACbU,cAAc,EACdC,YAAY,EACZp2C,QACAq2C,YACAC,UACAC,Y,kCCXa,OACbC,kBAAmB,ICDN,GACbC,uBADa,SACWz2C,EAAO02C,GAC7B12C,EAAMw2C,kBAAoBE,I,YCAf,GAEbC,eAFa,WAEetB,GAAgB,EAA1BL,OAChB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAI,2BAA4B,CAAE00C,mBACnCC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCmB,2BAXa,WAW2BC,GAAc,EAAxB7B,OAC5B,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAI,2BAA4B,CAAEk2C,aAAcA,IACjDvB,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCqB,cApBa,SAoBEjE,EAASkE,GACtB,OAAO,IAAI9B,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAMmB,EAAa,uBAAH,OAA0BA,GAAe,0BAC/D3B,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCuB,aA9Ba,SA8BCnE,EAASoE,GACrB,OAAO,IAAIhC,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,4BACZR,OAAIz0C,IAAIi1C,EAAKqB,GACV3B,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCyB,wBAxCa,SAwCYrE,EAASkE,GAChC,OAAO,IAAI9B,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,uBAAH,OAA0BmB,EAA1B,eACT3B,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC0B,aAlDa,SAkDCtE,EAASuE,GACrB,OAAO,IAAInC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAJ,8BAA+By2C,EAAYpB,KACxCV,MAAK,SAACC,GACL,IAAMh0C,EAAOg0C,EAASh0C,KAAK81C,SAC3B5C,OAAO6C,OAAO/1C,EAAM61C,GACpBhC,OAAIU,KAAK,2BAA4Bv0C,GAClC+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,SAC5BD,OAAM,SAACC,GAAYN,EAAOM,UAInCM,aAjEa,WAiEagB,GAAY,IAAtB/B,EAAsB,EAAtBA,OACd,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,qCAAuCiB,IACpCzB,MAAK,SAACC,GACLP,EAAO,gBAAiB+B,GACxB7B,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC8B,YA3Ea,SA2EA1E,EAASkE,GACpB,OAAO,IAAI9B,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,uBAAH,OAA0BmB,EAA1B,WACT3B,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC+B,cArFa,SAqFE3E,EAAStxC,GACtB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,uBAAH,OAA0Br0C,EAAKw1C,WAA/B,mBACT3B,OAAIU,KAAKF,EAAKr0C,GACX+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCgC,SA/Fa,SA+FH5E,EAAStxC,GACjB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,uBAAH,OAA0Br0C,EAAKw1C,WAA/B,UACT3B,OAAIU,KAAKF,EAAKr0C,GACX+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCiC,YAzGa,SAyGA7E,EAASmD,GACpB,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,oCAAH,OAAuCI,GAChDZ,OAAIU,KAAKF,GACNN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCkC,uBAnHa,WAmHuBd,GAAc,IAAxB7B,EAAwB,EAAxBA,OACxB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAJ,gCAAiCk2C,EAAjC,wBACGvB,MAAK,SAACC,GACLP,EAAO,yBAA0BO,EAASh0C,KAAKwF,OAC/CmuC,EAAQK,EAASh0C,KAAKwF,UAEvByuC,OAAM,SAACC,GAAYN,EAAOM,UAGjCmC,yBA7Ha,SA6Ha/E,EAASoE,GACjC,OAAO7B,OAAIU,KAAJ,gCAAkCmB,EAAQjB,GAA1C,kBAA8DiB,IAEvEY,qBAhIa,SAgIShF,EAASkE,GAC7B,OAAO,IAAI9B,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,iBAAH,OAAoBmB,EAApB,YACT3B,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,EAASh0C,KAAKwF,UAEvByuC,OAAM,SAACC,GAAYN,EAAOM,WCzIpB,KCKA,QACbU,cAAc,EACdC,YAAY,EACZp2C,QACAq2C,YACAC,UACAC,Y;;;;;;;;;;;;GCGF,IAAIuB,EAAmBj4C,MAAQA,KAAKi4C,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDtD,OAAOC,eAAeN,EAAS,aAAc,CAAEl2C,OAAO,IACtDk2C,EAAQ6D,cAAgB7D,EAAQ8D,KAAO9D,EAAQ+D,OAAS/D,EAAQgE,WAAahE,EAAQiE,UAAYjE,EAAQkE,SAAWlE,EAAQmE,KAAOnE,EAAQoE,OAASpE,EAAQqE,OAASrE,EAAQsE,OAAStE,EAAQuE,kBAAoBvE,EAAQwE,YAAcxE,EAAQyE,SAAWzE,EAAQ0E,iBAAmB1E,EAAQ2E,KAAO3E,EAAQ4E,YAAc5E,EAAQ6E,cAAW,EAC9U,IAAIC,EAAYpB,EAAgB,EAAQ,SACpCqB,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBH,EAAWE,EAAQE,gBAAgB,CACnCC,MAAO,CACHC,kBAAmBC,QACnBC,UAAWj1C,OACXmB,mBAAoB6zC,QACpBjb,eAAgB/5B,OAChBk1C,QAASvrC,MACTwrC,WAAY,CAACxrC,MAAOsmC,OAAQjwC,QAC5Bo1C,eAAgBJ,QAChBK,SAAUL,QACV/b,YAAa,CAACqc,SAAUt1C,QACxBu1C,uBAAwB,GACxBC,gBAAiBvF,OACjBwF,YAAaxF,OACbyF,cAAe,GACft0C,kBAAmB4zC,QACnBW,QAASX,QACTY,cAAe,GACfl4C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3B81C,kBAAmBd,QACnBe,KAAM/1C,OACNga,kBAAmBg7B,QACnBgB,UAAW,GACXlS,QAASkR,QACTzyC,MAAOoH,MACP/G,aAAc,GACdkP,MAAO9R,OACPi2C,UAAWj2C,OACXk2C,iBAAkBL,OAClBM,qBAAsBN,OACtBO,UAAW,CAACP,OAAQ71C,QACpBq2C,gBAAiBR,OACjBS,UAAWtB,QACX16C,KAAM0F,OACNu2C,WAAYv2C,OACZw2C,SAAUlB,SACVmB,SAAUnB,SACVoB,eAAgBpB,SAChBqB,qBAAsBrB,SACtBrgB,YAAaqgB,SACbsB,WAAYtB,SACZuB,UAAWvB,SACXwB,WAAYxB,SACZrpB,cAAeqpB,SACfyB,QAASzB,SACTvyC,YAAauyC,SACb0B,UAAW1B,SACX2B,QAAS3B,SACT4B,oBAAqB5B,SACrB6B,SAAU7B,SACV8B,gBAAiB9B,SACjB+B,wBAAyB/B,SACzBgC,mBAAoBhC,SACpBjqB,eAAgBiqB,SAChB9Z,OAAQwZ,QACR5gB,iBAAkB4gB,QAClB/P,YAAajlC,OACbu3C,SAAUvC,QACV/hC,WAAY+hC,QACZwC,cAAexC,QACfyC,WAAY,CAAC9tC,MAAO2rC,SAAUt1C,QAC9B03C,WAAY13C,OACZ23C,cAAe9B,OACf+B,cAAe53C,OACf63C,cAAe73C,OACf83C,cAAenuC,MACfouC,gBAAiB/C,QACjBgD,qBAAsBhD,QACtBiD,mBAAoBjD,QACpBkD,iBAAkBlD,QAClBmD,sBAAuBnD,QACvBte,YAAa12B,OACb4hB,SAAUi0B,OACVuC,YAAa,GACbxvC,KAAM5I,OACNq4C,mBAAoBrD,QACpBvR,gBAAiB,GACjB6U,iBAAkB3uC,MAClB4uC,sBAAuBv4C,OACvBw4C,iBAAkBx4C,OAClBtG,MAAOiQ,MACPqvB,UAAW,CAACsc,SAAUt1C,QACtBiE,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,QAC1By4C,aAAczD,SAElB0D,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,2BAA4B,KAC5B,mBAAoB,KACpB,4BAA6B,KAC7B,wBAAyB,KACzB,iBAAkB,KAClB,oBAAqB,KACrB,wBAAyB,KACzB,kBAAmB,KACnB,qBAAsB,KACtB,gCAAiC,KACjC,yBAA0B,KAC1B,qBAAsB,KACtB,uBAAwB,KACxB,2BAA4B,KAC5B,iBAAkB,KAClB,uBAAwB,KACxB,gBAAiB,KACjB,2BAA4B,KAC5B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,iBAAkB,KAClB,eAAgB,KAChB,sBAAuB,KACvB,eAAgB,KAChB,mBAAoB,KACpB,0BAA2B,KAC3B,8BAA+B,KAC/B,mBAAoB,KACpB,yBAA0B,KAC1B,mBAAoB,KACpB,cAAe,KACf,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,wBAAyB,KACzB,8BAA+B,KAC/B,qBAAsB,KACtB,oBAAqB,KACrB,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,iBAAkB,KAClB,qBAAsB,KACtB,mBAAoB,KACpB,iBAAkB,KAClB,6BAA8B,KAC9B,kBAAmB,KACnB,yBAA0B,KAC1B,iCAAkC,KAClC,4BAA6B,KAC7B,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,KACrB,uBAAwB,KACxB,oBAAqB,KACrB,oBAAqB,KACrB,uBAAwB,KACxB,uBAAwB,KACxB,uBAAwB,KACxB,uBAAwB,KACxB,yBAA0B,KAC1B,8BAA+B,KAC/B,4BAA6B,KAC7B,0BAA2B,KAC3B,+BAAgC,KAChC,qBAAsB,KACtB,kBAAmB,KACnB,qBAAsB,KACtB,cAAe,KACf,4BAA6B,KAC7B,yBAA0B,KAC1B,0BAA2B,KAC3B,+BAAgC,KAChC,0BAA2B,KAC3B,eAAgB,KAChB,mBAAoB,KACpB,iBAAkB,KAClB,eAAgB,KAChB,sBAAuB,MAE3BtkC,MAAO,CAAE3a,KAAM,QAAS6V,MAAO,gBAC/BqpC,SAAU,CACNC,SAAU,WACN,OAAOv9C,KAAKw9C,aAGpBC,aAAc,WACVz9C,KAAK09C,cAAgBrE,EAAUsE,QAC/B39C,KAAK49C,oBAAqB,EAC1B59C,KAAK69C,mBAAqB,CACtBlpC,OAAQ,CAAEmpC,kBAAkB,EAAMz8B,WAAY,WAC9C84B,gBAAiB,CAAE2D,kBAAkB,EAAOz8B,WAAY,mBACxD5f,KAAM,CAAEq8C,kBAAkB,EAAMz8B,WAAY,aAIxDkzB,EAAQ6E,SAAWA,EACnB,IAAID,EAAcI,EAAQwE,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,cAAe,MAEnB5D,MAAO,CACHuE,KAAM,CAACpJ,OAAQ4F,OAAQ71C,QACvBs5C,KAAM,CAACrJ,OAAQ4F,OAAQ71C,WAG/B4vC,EAAQ4E,YAAcA,EACtBA,EAAY+E,aAAe,YAC3B/E,EAAY0E,mBAAqB,CAC7BG,KAAM,CAAEF,kBAAkB,EAAOz8B,WAAY,QAC7C48B,KAAM,CAAEH,kBAAkB,EAAOz8B,WAAY,SAEjD,IAAI63B,EAAOK,EAAQwE,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGxsB,OACHkH,EAAGlH,UAGX4vC,EAAQ2E,KAAOA,EACfA,EAAKgF,aAAe,KACpB,IAAIjF,EAAmBM,EAAQwE,6BAA6B,CACxDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGqpB,OACH3uC,EAAG2uC,UAGXjG,EAAQ0E,iBAAmBA,EAC3BA,EAAiBiF,aAAe,iBAChC,IAAIlF,EAAWO,EAAQwE,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtB5D,MAAO,CACH9oB,SAAUhsB,OACV1F,KAAM0F,OACNyE,QAASwrC,UAGjBL,EAAQyE,SAAWA,EACnBA,EAASkF,aAAe,UACxBlF,EAASmF,oBAAqB,EAC9BnF,EAAS6E,mBAAqB,CAC1Bz0C,QAAS,CAAE00C,kBAAkB,EAAOz8B,WAAY,YAEpD,IAAI03B,EAAcQ,EAAQwE,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGxsB,OACHkH,EAAGlH,UAGX4vC,EAAQwE,YAAcA,EACtBA,EAAYmF,aAAe,YAC3B,IAAIpF,EAAoBS,EAAQwE,6BAA6B,CACzDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1B5D,MAAO,CACHG,UAAWj1C,OACXmB,mBAAoB6zC,QACpByE,UAAWxJ,OACXyJ,eAAgBzJ,OAChB0J,oBAAqB,CAAC3E,QAASM,UAC/BxwC,UAAW,GACX80C,gBAAiB,GACjBC,yBAA0B7E,QAC1BI,eAAgBJ,QAChBK,SAAUL,QACV8E,kBAAmB,GACnBrX,YAAauS,QACb+E,oBAAqB/E,QACrBS,YAAa,GACbr0C,kBAAmB4zC,QACnBgF,WAAYhF,QACZt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3Bi6C,mBAAoBjF,QACpBe,KAAM/1C,OACNga,kBAAmBg7B,QACnBpgB,UAAW,CAAC0gB,SAAUO,OAAQ71C,QAC9B20B,SAAU,CAAC2gB,SAAUO,OAAQ71C,QAC7Bk6C,UAAW,CAAC5E,SAAUO,OAAQ71C,QAC9Bm6C,SAAU,CAAC7E,SAAUO,OAAQ71C,QAC7B02C,eAAgBpB,SAChBrgB,YAAaqgB,SACbuB,UAAWvB,SACXwB,WAAYxB,SACZ8E,SAAU9E,SACV+E,SAAU/E,SACVrpB,cAAeqpB,SACf8B,gBAAiB9B,SACjBgF,SAAUhF,SACViF,YAAajF,SACbkF,cAAelF,SACfta,UAAWsa,SACXmF,QAASnF,SACToF,gBAAiBpF,SACjBnrC,SAAU,CAACmrC,SAAUrF,OAAQjwC,QAC7B26C,cAAe3F,QACf4F,gBAAiB5F,QACjB/hC,WAAY+hC,QACZ6F,QAAS7F,QACT8F,aAAc96C,OACd+6C,gBAAiB/F,QACjBgG,UAAWhG,QACXpzB,SAAUi0B,OACVtT,MAAOviC,OACPi7C,cAAe,GACfvvB,aAAc/hB,MACd1F,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,QAC1Bk7C,YAAa,MAGrBtL,EAAQuE,kBAAoBA,EAC5BA,EAAkBoF,aAAe,kBACjCpF,EAAkB+E,mBAAqB,CACnCO,UAAW,CAAEN,kBAAkB,EAAOz8B,WAAY,aAClDvS,SAAU,CAAEgvC,kBAAkB,EAAOz8B,WAAY,YACjDy+B,YAAa,CAAEhC,kBAAkB,EAAMz8B,WAAY,iBAEvD,IAAIw3B,EAASU,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElB5D,MAAO,CACH3yB,KAAM0zB,OACNrwB,QAASqwB,OACT1rC,SAAU8lC,OACV1qB,MAAOswB,OACPzzB,IAAKyzB,UAGbjG,EAAQsE,OAASA,EACjBA,EAAOqF,aAAe,OACtBrF,EAAOgF,mBAAqB,CACxB/uC,SAAU,CAAEgvC,kBAAkB,EAAOz8B,WAAY,aAErD,IAAIu3B,EAASW,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnB5D,MAAO,CACHsG,SAAU9F,SACV+F,MAAOxF,OACPj5C,UAAWoD,OACXqlB,SAAUwwB,OACVyF,OAAQt7C,OACRmlB,KAAM8qB,OACNsL,aAAc1F,OACd58C,MAAOq8C,SACPlwB,GAAI6qB,OACJplC,KAAM7K,UAGd4vC,EAAQqE,OAASA,EACjBA,EAAOsF,aAAe,OACtBtF,EAAOiF,mBAAqB,CACxB/zB,KAAM,CAAEg0B,kBAAkB,EAAOz8B,WAAY,QAC7C0I,GAAI,CAAE+zB,kBAAkB,EAAOz8B,WAAY,OAE/C,IAAIs3B,EAASY,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtB5D,MAAO,CACHO,SAAUL,QACVwG,KAAMx7C,OACN+2B,SAAU,GACVnuB,KAAM5I,OACNiE,QAAS+wC,WAGjBpF,EAAQoE,OAASA,EACjBA,EAAOuF,aAAe,QACtBvF,EAAOwF,oBAAqB,EAC5B,IAAIzF,EAAOa,EAAQwE,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGxsB,OACHkH,EAAGlH,UAGX4vC,EAAQmE,KAAOA,EACfA,EAAKwF,aAAe,KACpB,IAAIzF,EAAWc,EAAQwE,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGqpB,OACH3uC,EAAG2uC,UAGXjG,EAAQkE,SAAWA,EACnBA,EAASyF,aAAe,SACxB,IAAI1F,EAAYe,EAAQwE,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,wBAAyB,KACzB,kBAAmB,KACnB,qBAAsB,KACtB,2BAA4B,KAC5B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,cAAe,KACf,iBAAkB,KAClB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,cAAe,KACf,2BAA4B,KAC5B,yBAA0B,KAC1B,iBAAkB,KAClB,eAAgB,MAEpB5D,MAAO,CACHG,UAAWj1C,OACXmB,mBAAoB6zC,QACpB0E,eAAgBzJ,OAChBoF,SAAUL,QACVS,YAAaxF,OACb7uC,kBAAmB4zC,QACnBt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3B+1C,KAAM/1C,OACNga,kBAAmBg7B,QACnB3lC,KAAMrP,OACN6O,QAASymC,SACToB,eAAgBpB,SAChBrgB,YAAaqgB,SACbuB,UAAWvB,SACXwB,WAAYxB,SACZrpB,cAAeqpB,SACf8B,gBAAiB9B,SACjBriC,WAAY+hC,QACZte,YAAa12B,OACb4hB,SAAUi0B,OACV9e,SAAU,GACVnuB,KAAM5I,OACN6K,KAAM7K,OACNy7C,kBAAmBzG,QACnB0G,gBAAiB17C,OACjBiE,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,WAGlC4vC,EAAQiE,UAAYA,EACpBA,EAAU0F,aAAe,UACzB,IAAI3F,EAAagB,EAAQwE,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,YAAa,KACb,YAAa,KACb,gBAAiB,MAErB5D,MAAO,CACHhgB,GAAI,CAACmb,OAAQjwC,QACbg9B,SAAU,GACV2e,eAAgB,CAAC1L,OAAQjwC,QACzBosB,UAAW,CAAC6jB,OAAQjwC,QACpB60B,GAAI,CAACob,OAAQjwC,QACb+0B,GAAI,GACJ5X,OAAQ,CAAC8yB,OAAQjwC,WAGzB4vC,EAAQgE,WAAaA,EACrBA,EAAW2F,aAAe,WAC1B,IAAI5F,EAASiB,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnB5D,MAAO,CACHsG,SAAU9F,SACV+F,MAAOxF,OACPj5C,UAAWoD,OACXqlB,SAAUwwB,OACVyF,OAAQt7C,OACRmlB,KAAM8qB,OACNsL,aAAc1F,OACd58C,MAAOq8C,SACPlwB,GAAI6qB,OACJplC,KAAM7K,UAGd4vC,EAAQ+D,OAASA,EACjBA,EAAO4F,aAAe,OACtB,IAAI7F,EAAOkB,EAAQwE,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElB5D,MAAO,CACH3yB,KAAM0zB,OACNrwB,QAASqwB,OACT1rC,SAAU8lC,OACV1qB,MAAOswB,OACPzzB,IAAKyzB,UAGbjG,EAAQ8D,KAAOA,EACfA,EAAK6F,aAAe,KACpB,IAAI9F,EAAgBmB,EAAQwE,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,kBAAmB,KACnB,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,iBAAkB,KAClB,gBAAiB,MAErB5D,MAAO,CACHO,SAAUL,QACVwG,KAAMx7C,OACNgsB,SAAUhsB,OACVyE,QAAS,GACTsyB,SAAU,GACVnuB,KAAM5I,OACN+rB,QAAS/rB,OACTiE,QAAS+wC,QACTlpB,OAAQ9rB,UAGhB4vC,EAAQ6D,cAAgBA,EACxBA,EAAc8F,aAAe,eAC7B9F,EAAc+F,oBAAqB,EACnC5J,EAAQoJ,QAAUvE,G,kCC9qBH,SCAA,K,wBCEA,GAEbmH,kBAFa,WAEkBrL,GAAgB,EAA1BC,OACnB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAI,8BAA+B,CAAE00C,eAAgBN,IACtDO,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC4K,iBAXa,SAWKxN,EAASmD,GACzB,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAMI,EAAK,0BAAH,OAA6BA,GAAO,6BAClDZ,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC6K,gBArBa,SAqBIzN,EAAStxC,GACxB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,8BAA+Bv0C,GACrC+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCM,aA9Ba,WA8BaC,GAAI,EAAdhB,OACd,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,wCAA0CE,IACvCV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC8K,SAvCa,WAuCSvK,GAAI,EAAdhB,OACV,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,0CAA4CE,IACzCV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC+K,aAhDa,SAgDC3N,EAAStxC,GACrB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAMr0C,EAAKy0C,GAAL,6BAAgCz0C,EAAKy0C,IAAO,yBACxDZ,OAAIz0C,IAAIi1C,EAAKr0C,GACV+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCgL,gBA1Da,SA0DI5N,EAASmD,GACxB,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,sCAAwCE,IACrCV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCiL,kBAnEa,SAmEM7N,EAASmD,GAC1B,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,wCAA0CE,IACvCV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCkL,cA5Ea,SA4EE9N,EAASoE,GAMtB,OALIA,EAAQ2J,cACV3J,EAAQ4J,cAAgB,CACtB,CAAEC,UAAW,QAASC,oBAAqB,WAAYC,YAAa/J,EAAQ2J,eAGzE,IAAI3L,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,0BAA2BmB,GACjC3B,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCwL,YA1Fa,SA0FApO,EAAStxC,GACpB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,0BAA2Bv0C,GACjC+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCyL,cAnGa,WAmGclL,GAAI,EAAdhB,OACf,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,oCAAsCE,IACnCV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC0L,gBA5Ga,SA4GItO,EAAStxC,GACxB,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,6BACZR,OAAIU,KAAKF,EAAKr0C,GACX+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC2L,2BAtHa,SAsHevO,EAASmD,GACnC,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,oCAAH,OAAuCI,GAChDZ,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC4L,0BAhIa,SAgIcxO,EAAStxC,GAClC,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,wCAAyCv0C,GAC/C+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjC6L,0CAzIa,SAyI8BzO,EAAS0O,GAClD,OAAO,IAAItM,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAM,0BAAH,OAA6B2L,GACtCnM,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACL,IAAMiM,EAAKjM,EAASh0C,KAAKkgD,YACzB,GAAID,EAAGE,wBACLtM,OAAIz0C,IAAJ,2CAA4C6gD,EAAGE,0BAC5CpM,MAAK,SAACqM,GACLzM,EAAQyM,MAETnM,OAAM,SAACC,GACNN,EAAOM,UAEN,CACL,IAAMl0C,EAAO,CACXggD,cAAeC,EAAGxL,GAClBX,eAAgBmM,EAAGnM,eACnBv2C,KAAM,GAAF,OAAK0iD,EAAG1iD,KAAR,eACJ8iD,OAAQ,CACN,CAAE,KAAQ,mBAAoB,MAAS,iBAAkB,UAAa,QACtE,CAAE,KAAQ,WAAY,MAAS,QAAS,UAAa,WAGzDxM,OAAIU,KAAJ,wCAAkDv0C,GAC/C+zC,MAAK,SAACqM,GACLzM,EAAQyM,MAETnM,OAAM,SAACC,GACNN,EAAOM,UAIdD,OAAM,SAACC,GACNN,EAAOM,WC7KF,KCKA,QACbU,cAAc,EACdC,YAAY,EACZp2C,QACAq2C,YACAC,UACAC,Y;;;;;;;;;;;;GCGF,IAAIuB,EAAmBj4C,MAAQA,KAAKi4C,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDtD,OAAOC,eAAeN,EAAS,aAAc,CAAEl2C,OAAO,IACtDk2C,EAAQ6D,cAAgB7D,EAAQ8D,KAAO9D,EAAQ+D,OAAS/D,EAAQgE,WAAahE,EAAQiE,UAAYjE,EAAQkE,SAAWlE,EAAQmE,KAAOnE,EAAQqE,OAASrE,EAAQsE,OAAStE,EAAQuE,kBAAoBvE,EAAQyN,gBAAkBzN,EAAQwE,YAAcxE,EAAQ0N,kBAAoB1N,EAAQyE,SAAWzE,EAAQ0E,iBAAmB1E,EAAQ2E,KAAO3E,EAAQ4E,YAAc5E,EAAQ2N,eAAY,EACpX,IAAIC,EAAalK,EAAgB,EAAQ,SACrCqB,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClB2I,EAAY5I,EAAQE,gBAAgB,CACpCC,MAAO,CACHC,kBAAmBC,QACnBC,UAAWj1C,OACXmB,mBAAoB6zC,QACpB/V,kBAAmB+V,QACnB3gB,gBAAiBr0B,OACjB+5B,eAAgB/5B,OAChBk1C,QAASvrC,MACTu1B,gBAAiB+Q,OACjBwN,iBAAkBz9C,OAClBg/B,sBAAuBh/B,OACvBia,wBAAyBja,OACzBo1C,eAAgBJ,QAChBK,SAAUL,QACVjkC,cAAe,CAACpH,MAAO2rC,UACvBlqB,cAAe,CAAC6kB,OAAQqF,SAAUt1C,QAClCu1C,uBAAwB,GACxBC,gBAAiBvF,OACjBwF,YAAaxF,OACb7uC,kBAAmB4zC,QACnBt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3B+1C,KAAM/1C,OACNga,kBAAmBg7B,QACnBgB,UAAW,GACXjZ,SAAU8Y,OACV9W,mBAAoB/+B,OACpB8jC,QAASkR,QACTljC,MAAO9R,OACPi2C,UAAWj2C,OACX0G,IAAK,GACL0vC,UAAW,CAACP,OAAQ71C,QACpByG,IAAK,GACLnM,KAAM0F,OACNw2C,SAAUlB,SACVmB,SAAUnB,SACVoB,eAAgBpB,SAChBoI,OAAQpI,SACRqI,MAAOrI,SACPrgB,YAAaqgB,SACbsB,WAAYtB,SACZuB,UAAWvB,SACXwB,WAAYxB,SACZrpB,cAAeqpB,SACfyB,QAASzB,SACT0B,UAAW1B,SACX2B,QAAS3B,SACT6B,SAAU7B,SACV8B,gBAAiB9B,SACjBsI,QAAStI,SACTjqB,eAAgBiqB,SAChB9Z,OAAQwZ,QACR5gB,iBAAkB4gB,QAClBlW,WAAY9+B,OACZilC,YAAajlC,OACbu3C,SAAUvC,QACV/hC,WAAY+hC,QACZnW,gBAAiBmW,QACjB+C,gBAAiB/C,QACjBiD,mBAAoBjD,QACpB6I,WAAY7I,QACZte,YAAa12B,OACb4hB,SAAUi0B,OACVjtC,KAAM5I,OACN6K,KAAM7K,OACN6nC,gBAAiBmN,QACjBvR,gBAAiB,GACjB6U,iBAAkB3uC,MAClB4uC,sBAAuBv4C,OACvBw4C,iBAAkBx4C,OAClBtG,MAAO,GACPokD,iBAAkB99C,OAClBiE,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,SAE9B04C,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,2BAA4B,KAC5B,mBAAoB,KACpB,4BAA6B,KAC7B,2BAA4B,KAC5B,yBAA0B,KAC1B,wBAAyB,KACzB,iBAAkB,KAClB,yBAA0B,KAC1B,0BAA2B,KAC3B,+BAAgC,KAChC,iCAAkC,KAClC,wBAAyB,KACzB,kBAAmB,KACnB,uBAAwB,KACxB,uBAAwB,KACxB,gCAAiC,KACjC,yBAA0B,KAC1B,qBAAsB,KACtB,2BAA4B,KAC5B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,4BAA6B,KAC7B,iBAAkB,KAClB,eAAgB,KAChB,mBAAoB,KACpB,aAAc,KACd,mBAAoB,KACpB,aAAc,KACd,cAAe,KACf,kBAAmB,KACnB,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,eAAgB,KAChB,qBAAsB,KACtB,oBAAqB,KACrB,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,iBAAkB,KAClB,mBAAoB,KACpB,iBAAkB,KAClB,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,KACrB,yBAA0B,KAC1B,yBAA0B,KAC1B,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,cAAe,KACf,cAAe,KACf,yBAA0B,KAC1B,yBAA0B,KAC1B,0BAA2B,KAC3B,+BAAgC,KAChC,0BAA2B,KAC3B,eAAgB,KAChB,0BAA2B,KAC3B,iBAAkB,KAClB,eAAgB,MAEpBtkC,MAAO,CAAE3a,KAAM,QAAS6V,MAAO,gBAC/BqpC,SAAU,CACNC,SAAU,WACN,OAAOv9C,KAAKw9C,aAGpBC,aAAc,WACVz9C,KAAK09C,cAAgByE,EAAWxE,QAChC39C,KAAK49C,oBAAqB,EAC1B59C,KAAK69C,mBAAqB,CACtBlpC,OAAQ,CAAEmpC,kBAAkB,EAAMz8B,WAAY,WAC9CwiB,gBAAiB,CAAEia,kBAAkB,EAAOz8B,WAAY,mBACxD0O,cAAe,CAAE+tB,kBAAkB,EAAOz8B,WAAY,iBACtD84B,gBAAiB,CAAE2D,kBAAkB,EAAOz8B,WAAY,uBAIpEkzB,EAAQ2N,UAAYA,EACpB,IAAI/I,EAAcI,EAAQwE,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,cAAe,MAEnB5D,MAAO,CACHuE,KAAM,CAACpJ,OAAQ4F,OAAQ71C,QACvBs5C,KAAM,CAACrJ,OAAQ4F,OAAQ71C,WAG/B4vC,EAAQ4E,YAAcA,EACtBA,EAAY+E,aAAe,YAC3B/E,EAAY0E,mBAAqB,CAC7BG,KAAM,CAAEF,kBAAkB,EAAOz8B,WAAY,QAC7C48B,KAAM,CAAEH,kBAAkB,EAAOz8B,WAAY,SAEjD,IAAI63B,EAAOK,EAAQwE,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGxsB,OACHkH,EAAGlH,UAGX4vC,EAAQ2E,KAAOA,EACfA,EAAKgF,aAAe,KACpB,IAAIjF,EAAmBM,EAAQwE,6BAA6B,CACxDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGqpB,OACH3uC,EAAG2uC,UAGXjG,EAAQ0E,iBAAmBA,EAC3BA,EAAiBiF,aAAe,iBAChC,IAAIlF,EAAWO,EAAQwE,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtB5D,MAAO,CACH9oB,SAAUhsB,OACV1F,KAAM0F,OACNyE,QAASwrC,UAGjBL,EAAQyE,SAAWA,EACnBA,EAASkF,aAAe,UACxBlF,EAASmF,oBAAqB,EAC9BnF,EAAS6E,mBAAqB,CAC1Bz0C,QAAS,CAAE00C,kBAAkB,EAAOz8B,WAAY,YAEpD,IAAI4gC,EAAoB1I,EAAQwE,6BAA6B,CACzDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,wBAAyB,KACzB,sBAAuB,KACvB,qBAAsB,KACtB,iCAAkC,KAClC,kBAAmB,KACnB,uBAAwB,KACxB,qBAAsB,KACtB,wBAAyB,KACzB,2BAA4B,KAC5B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,iBAAkB,KAClB,aAAc,KACd,sBAAuB,KACvB,aAAc,KACd,sBAAuB,KACvB,cAAe,KACf,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,wBAAyB,KACzB,kBAAmB,KACnB,oBAAqB,KACrB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,yBAA0B,KAC1B,0BAA2B,KAC3B,+BAAgC,KAChC,0BAA2B,KAC3B,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,KAChB,mBAAoB,MAExB5D,MAAO,CACHG,UAAWj1C,OACXmB,mBAAoB6zC,QACpB0E,eAAgBzJ,OAChBn/B,aAAc,GACd4G,YAAa,GACbuC,wBAAyBja,OACzBq1C,SAAUL,QACVjkC,cAAe,CAACpH,MAAO2rC,UACvBG,YAAaxF,OACbv6B,eAAgB,CACZ7K,KAAMgrC,OACNkI,UAAW,SAAUC,GAAK,MAAsB,kBAAR,IAQtB,IAR0C,CACxD,EACA,EACA,EACA,EACA,EACA,EACA,GACFjkD,QAAQikD,KAEd58C,kBAAmB4zC,QACnBt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3B+1C,KAAM/1C,OACNga,kBAAmBg7B,QACnBlR,QAASkR,QACTtuC,IAAK,GACLyT,aAAcna,OACdyG,IAAK,GACL2T,aAAcpa,OACd1F,KAAM0F,OACN02C,eAAgBpB,SAChBrgB,YAAaqgB,SACbuB,UAAWvB,SACXwB,WAAYxB,SACZrpB,cAAeqpB,SACf8B,gBAAiB9B,SACjBjqB,eAAgBiqB,SAChBiC,SAAUvC,QACV/hC,WAAY+hC,QACZ36B,gBAAiB26B,QACjBte,YAAa12B,OACb4hB,SAAUi0B,OACVpS,gBAAiB,GACjB6U,iBAAkB3uC,MAClB4uC,sBAAuBv4C,OACvBw4C,iBAAkBx4C,OAClBtG,MAAO,GACPuK,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,QAC1Bka,UAAWla,UAGnB4vC,EAAQ0N,kBAAoBA,EAC5BA,EAAkB/D,aAAe,kBACjC,IAAInF,EAAcQ,EAAQwE,6BAA6B,CACnDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGxsB,OACHkH,EAAGlH,UAGX4vC,EAAQwE,YAAcA,EACtBA,EAAYmF,aAAe,YAC3B,IAAI8D,EAAkBzI,EAAQwE,6BAA6B,CACvDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,MAEnB5D,MAAO,CACHmJ,SAAUj+C,OACV2N,UAAW2nC,SACX4I,OAAQ5I,SACR6I,UAAWtI,OACXhrC,KAAM7K,UAGd4vC,EAAQyN,gBAAkBA,EAC1BA,EAAgB9D,aAAe,gBAC/B,IAAIpF,EAAoBS,EAAQwE,6BAA6B,CACzDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1B5D,MAAO,CACHG,UAAWj1C,OACXmB,mBAAoB6zC,QACpByE,UAAWxJ,OACXyJ,eAAgBzJ,OAChB0J,oBAAqB,CAAC3E,QAASM,UAC/BxwC,UAAW,GACX80C,gBAAiB,GACjBC,yBAA0B7E,QAC1BI,eAAgBJ,QAChBK,SAAUL,QACV8E,kBAAmB,GACnBrX,YAAauS,QACb+E,oBAAqB/E,QACrBS,YAAa,GACbr0C,kBAAmB4zC,QACnBgF,WAAYhF,QACZt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3Bi6C,mBAAoBjF,QACpBe,KAAM/1C,OACNga,kBAAmBg7B,QACnBpgB,UAAW,CAAC0gB,SAAUO,OAAQ71C,QAC9B20B,SAAU,CAAC2gB,SAAUO,OAAQ71C,QAC7Bk6C,UAAW,CAAC5E,SAAUO,OAAQ71C,QAC9Bm6C,SAAU,CAAC7E,SAAUO,OAAQ71C,QAC7B02C,eAAgBpB,SAChBrgB,YAAaqgB,SACbuB,UAAWvB,SACXwB,WAAYxB,SACZ8E,SAAU9E,SACV+E,SAAU/E,SACVrpB,cAAeqpB,SACf8B,gBAAiB9B,SACjBgF,SAAUhF,SACViF,YAAajF,SACbkF,cAAelF,SACfta,UAAWsa,SACXmF,QAASnF,SACToF,gBAAiBpF,SACjBnrC,SAAU,CAACmrC,SAAUrF,OAAQjwC,QAC7B26C,cAAe3F,QACf4F,gBAAiB5F,QACjB/hC,WAAY+hC,QACZ6F,QAAS7F,QACT8F,aAAc96C,OACd+6C,gBAAiB/F,QACjBgG,UAAWhG,QACXpzB,SAAUi0B,OACVtT,MAAOviC,OACPi7C,cAAe,GACfvvB,aAAc/hB,MACd1F,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,QAC1Bk7C,YAAa,MAGrBtL,EAAQuE,kBAAoBA,EAC5BA,EAAkBoF,aAAe,kBACjCpF,EAAkB+E,mBAAqB,CACnCO,UAAW,CAAEN,kBAAkB,EAAOz8B,WAAY,aAClDvS,SAAU,CAAEgvC,kBAAkB,EAAOz8B,WAAY,YACjDy+B,YAAa,CAAEhC,kBAAkB,EAAMz8B,WAAY,iBAEvD,IAAIw3B,EAASU,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElB5D,MAAO,CACH3yB,KAAM0zB,OACNrwB,QAASqwB,OACT1rC,SAAU8lC,OACV1qB,MAAOswB,OACPzzB,IAAKyzB,UAGbjG,EAAQsE,OAASA,EACjBA,EAAOqF,aAAe,OACtBrF,EAAOgF,mBAAqB,CACxB/uC,SAAU,CAAEgvC,kBAAkB,EAAOz8B,WAAY,aAErD,IAAIu3B,EAASW,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnB5D,MAAO,CACHsG,SAAU9F,SACV+F,MAAOxF,OACPj5C,UAAWoD,OACXqlB,SAAUwwB,OACVyF,OAAQt7C,OACRmlB,KAAM8qB,OACNsL,aAAc1F,OACd58C,MAAOq8C,SACPlwB,GAAI6qB,OACJplC,KAAM7K,UAGd4vC,EAAQqE,OAASA,EACjBA,EAAOsF,aAAe,OACtBtF,EAAOiF,mBAAqB,CACxB/zB,KAAM,CAAEg0B,kBAAkB,EAAOz8B,WAAY,QAC7C0I,GAAI,CAAE+zB,kBAAkB,EAAOz8B,WAAY,OAE/C,IAAIq3B,EAAOa,EAAQwE,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGxsB,OACHkH,EAAGlH,UAGX4vC,EAAQmE,KAAOA,EACfA,EAAKwF,aAAe,KACpB,IAAIzF,EAAWc,EAAQwE,6BAA6B,CAChDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhB5D,MAAO,CACHtoB,EAAGqpB,OACH3uC,EAAG2uC,UAGXjG,EAAQkE,SAAWA,EACnBA,EAASyF,aAAe,SACxB,IAAI1F,EAAYe,EAAQwE,6BAA6B,CACjDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,wBAAyB,KACzB,kBAAmB,KACnB,qBAAsB,KACtB,2BAA4B,KAC5B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,cAAe,KACf,iBAAkB,KAClB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,oBAAqB,KACrB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,cAAe,KACf,2BAA4B,KAC5B,yBAA0B,KAC1B,iBAAkB,KAClB,eAAgB,MAEpB5D,MAAO,CACHG,UAAWj1C,OACXmB,mBAAoB6zC,QACpB0E,eAAgBzJ,OAChBoF,SAAUL,QACVS,YAAaxF,OACb7uC,kBAAmB4zC,QACnBt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3B+1C,KAAM/1C,OACNga,kBAAmBg7B,QACnB3lC,KAAMrP,OACN6O,QAASymC,SACToB,eAAgBpB,SAChBrgB,YAAaqgB,SACbuB,UAAWvB,SACXwB,WAAYxB,SACZrpB,cAAeqpB,SACf8B,gBAAiB9B,SACjBriC,WAAY+hC,QACZte,YAAa12B,OACb4hB,SAAUi0B,OACV9e,SAAU,GACVnuB,KAAM5I,OACN6K,KAAM7K,OACNy7C,kBAAmBzG,QACnB0G,gBAAiB17C,OACjBiE,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,WAGlC4vC,EAAQiE,UAAYA,EACpBA,EAAU0F,aAAe,UACzB,IAAI3F,EAAagB,EAAQwE,6BAA6B,CAClDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,YAAa,KACb,YAAa,KACb,gBAAiB,MAErB5D,MAAO,CACHhgB,GAAI,CAACmb,OAAQjwC,QACbg9B,SAAU,GACV2e,eAAgB,CAAC1L,OAAQjwC,QACzBosB,UAAW,CAAC6jB,OAAQjwC,QACpB60B,GAAI,CAACob,OAAQjwC,QACb+0B,GAAI,GACJ5X,OAAQ,CAAC8yB,OAAQjwC,WAGzB4vC,EAAQgE,WAAaA,EACrBA,EAAW2F,aAAe,WAC1B,IAAI5F,EAASiB,EAAQwE,6BAA6B,CAC9CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnB5D,MAAO,CACHsG,SAAU9F,SACV+F,MAAOxF,OACPj5C,UAAWoD,OACXqlB,SAAUwwB,OACVyF,OAAQt7C,OACRmlB,KAAM8qB,OACNsL,aAAc1F,OACd58C,MAAOq8C,SACPlwB,GAAI6qB,OACJplC,KAAM7K,UAGd4vC,EAAQ+D,OAASA,EACjBA,EAAO4F,aAAe,OACtB,IAAI7F,EAAOkB,EAAQwE,6BAA6B,CAC5CV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElB5D,MAAO,CACH3yB,KAAM0zB,OACNrwB,QAASqwB,OACT1rC,SAAU8lC,OACV1qB,MAAOswB,OACPzzB,IAAKyzB,UAGbjG,EAAQ8D,KAAOA,EACfA,EAAK6F,aAAe,KACpB,IAAI9F,EAAgBmB,EAAQwE,6BAA6B,CACrDV,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,kBAAmB,KACnB,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,iBAAkB,KAClB,gBAAiB,MAErB5D,MAAO,CACHO,SAAUL,QACVwG,KAAMx7C,OACNgsB,SAAUhsB,OACVyE,QAAS,GACTsyB,SAAU,GACVnuB,KAAM5I,OACN+rB,QAAS/rB,OACTiE,QAAS+wC,QACTlpB,OAAQ9rB,UAGhB4vC,EAAQ6D,cAAgBA,EACxBA,EAAc8F,aAAe,eAC7B9F,EAAc+F,oBAAqB,EACnC5J,EAAQoJ,QAAUuE,G,kCC7vBH,SCAA,K,YCEA,GAEba,sBAFa,WAEsB7N,GAAgB,EAA1BC,OACvB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIz0C,IAAI,kCAAmC,CAAE00C,eAAgBN,IAC1DO,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCoN,qBAXa,SAWShQ,EAASmD,GAC7B,OAAO,IAAIf,SAAQ,SAACC,EAASC,GAC3B,IAAMS,EAAMI,EAAK,8BAAH,OAAiCA,GAAO,iCACtDZ,OAAIz0C,IAAIi1C,GACLN,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCqN,oBArBa,SAqBQjQ,EAAStxC,GAC5B,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,kCAAmCv0C,GACzC+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCsN,uBA9Ba,SA8BWlQ,EAAStxC,GAC/B,OAAO,IAAI0zC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAK,qCAAsCv0C,GAC5C+zC,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,UAGjCM,aAvCa,WAuCaC,GAAI,EAAdhB,OACd,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BC,OAAIU,KAAJ,4CAA8CE,IAC3CV,MAAK,SAACC,GACLL,EAAQK,MAETC,OAAM,SAACC,GAAYN,EAAOM,WC/CpB,KCKA,QACbU,cAAc,EACdC,YAAY,EACZp2C,QACAq2C,YACAC,UACAC,Y,kCCXF,oDAkBIyM,EAA8B,SAC9BC,EAA4B,aAC5BC,EAAgC,sBAChCC,EAAkB,yHAClBC,EAAuB,+BACvBC,EAAwB,CAAC,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,MAAO,GAAI,KAAM,GAAI,KAAM,QACpFC,EAA6B,8BAC7BC,EAAqB,EACrB9yC,EAAa,SAASrD,EAAMo2C,GAC5B,IAAI1+C,EAIJ,OAHI,eAASsI,KAAUo2C,IACnB1+C,EAAS2+C,EAAmBr2C,IAEzBtI,GAAU4+C,EAAUt2C,IAG/B,SAASu2C,EAAYC,GACjB,OAAQA,GAAQ,EAGpB,SAASF,EAAUt2C,GACf,IAAIy2C,EAA+B1iC,EAA2B/T,KAAU61C,EACpEa,GAAe,eAAO12C,IAASmB,KAAK8e,MAAMjgB,GAC9C,IAAK02C,GAAeD,EAA8B,CAC9C,IAAIE,EAAQ32C,EAAK3I,MAAM6+C,GACvB,GAAIS,EAAO,CACP,IAAIr0C,EAAU,IAAInB,KAAKo1C,EAAYI,EAAM,IAAKJ,EAAYI,EAAM,IAAKJ,EAAYI,EAAM,KAIvF,OAHAr0C,EAAQ1C,YAAY22C,EAAYI,EAAM,KACtCr0C,EAAQvE,SAASw4C,EAAYI,EAAM,IAAM,GACzCr0C,EAAQrE,QAAQs4C,EAAYI,EAAM,KAC3Br0C,GAGf,OAAO,eAASo0C,GAAe,IAAIv1C,KAAKu1C,GAAe12C,EAG3D,SAASq2C,EAAmBr2C,GACxB,IAAI22C,EAAQ32C,EAAK3I,MAAM0+C,GACvB,IAAKY,EAED,OADAA,EAAQ32C,EAAK3I,MAAM2+C,GACfW,EACO,IAAIx1C,KAAK,EAAG,EAAG,EAAGo1C,EAAYI,EAAM,IAAKJ,EAAYI,EAAM,IAAKJ,EAAYI,EAAM,UAE7F,EAEJ,IAAIpzC,EAAOgzC,EAAYI,EAAM,IACzBnzC,IAAUmzC,EAAM,GAChBp5C,EAAMo5C,EAAM,GACZC,EAAe,EACfC,EAAiB,EACjBC,EAAcr4C,IACd8E,EAAO,KAAO9E,EAAEmB,YAAY2D,GACrB9E,GAEXm4C,EAAeL,EAAYI,EAAM,KACjCE,EAAiBN,EAAYI,EAAM,KAC/B,MAAQA,EAAM,MACdC,GAAgBA,EAChBC,GAAkBA,GAEtB,IAAIE,EAAOR,EAAYI,EAAM,IAAMC,EAC/BI,EAAST,EAAYI,EAAM,IAAME,EACjC/iB,EAASyiB,EAAYI,EAAM,KAC3BM,EAAc,SAAST,GAEvB,OADAA,EAAOA,GAAQ,GACRD,EAAYC,GAAQz/C,KAAKmgD,IAAI,GAAIf,EAAqBK,EAAKvgD,QAFpD,CAGhB0gD,EAAM,KACR,OAAIA,EAAM,IACCG,EAAY,IAAI31C,KAAKA,KAAKg2C,IAAI5zC,EAAMC,EAAOjG,EAAKw5C,EAAMC,EAAQljB,EAAQmjB,KAE1EH,EAAY,IAAI31C,KAAKoC,EAAMC,EAAOjG,EAAKw5C,EAAMC,EAAQljB,EAAQmjB,IAExE,IAAIG,EAAmB,SAASp3C,EAAMq3C,GAClC,IAAIV,EAAQ32C,EAAK3I,MAAM0+C,GACnBr+C,EAAS,GACb,IAAKi/C,EAED,OADAA,EAAQ32C,EAAK3I,MAAM2+C,GACfW,EACOA,EAAM,GAAK,WAAa,aAEnC,EAEJ,IAAK,IAAIr2C,EAAI,EAAGA,EAAI21C,EAAsBhgD,OAAQqK,IAC1Cq2C,EAAMr2C,KACN5I,GAAUu+C,EAAsB31C,IAAMq2C,EAAMr2C,IAepD,MAZI,MAAQq2C,EAAM,MACdj/C,GAAU,OAEVi/C,EAAM,MACFA,EAAM,IACNj/C,GAAU,MACHi/C,EAAM,IACbj/C,GAAU,KAEVA,GAAU,KAGXA,GAEPuc,EAAkB,SAASnjB,GAC3B,MAAI,kBAAoBA,EACb,IAAIqQ,KAAKrQ,GAEbuS,EAAWvS,GAAQ,iBAAS+rC,sBAEnC15B,EAAgB,SAASrS,EAAOujB,GAChC,OAAKA,EAGA,eAAOvjB,GAGRujB,IAAwBuhC,EACjB9kD,GAASA,EAAM+S,QAAU/S,EAAM+S,UAAY,KAE/C,eAAiBwQ,EAAqB,OAAtC,CAAwDvjB,GALpD,KAHAA,GAUXijB,EAA6B,SAASjjB,GACtC,MAAI,kBAAoBA,EACb8kD,EACA,eAAS9kD,IAEZ,iBAAS+rC,sBACT96B,EAASq1C,EAAiBtmD,IAE1BiR,IAEOjR,EAAMK,QAAQ,MAAQ,EACtB2kD,EAEAD,IAEJ/kD,EACA,UADJ,EAXH,IAAIiR,GAeG,QACXsB,WAAYA,EACZ4Q,gBAAiBA,EACjB9Q,cAAeA,EACf4Q,2BAA4BA,I,kCChKhC,oDAwBIujC,EAAoB,CAAC,cAAe,SAAU,SAAU,OAAQ,MAAO,OAAQ,QAAS,UAAW,QACnGC,EAAiB,SAASA,EAAezmD,GACzC,OAAQA,GACJ,IAAK,cACD,OAAO,EACX,IAAK,SACD,OAAO,IAAMymD,EAAe,eAChC,IAAK,SACD,OAAO,GAAKA,EAAe,UAC/B,IAAK,OACD,OAAO,GAAKA,EAAe,UAC/B,IAAK,MACD,OAAO,GAAKA,EAAe,QAC/B,IAAK,OACD,OAAO,EAAIA,EAAe,OAC9B,IAAK,QACD,OAAO,GAAKA,EAAe,OAC/B,IAAK,UACD,OAAO,EAAIA,EAAe,SAC9B,IAAK,OACD,OAAO,IAAMA,EAAe,OAChC,QACI,OAAO,IAGfC,EAAmB,SAASloC,EAAWC,EAASkoC,GAChD,IAAIt7C,EAAQoT,EAAQ5L,UAAY2L,EAAU3L,UACtC+zC,EAAmBH,EAAeE,IAAiB,EACvD,OAAO1gD,KAAK8vB,MAAM1qB,EAAQu7C,IAE1BC,EAAkB,SAASC,EAAMC,GACjC,IAAI1jB,EAAW2jB,EAAoBF,GACnC,OAAQzjB,GACJ,IAAK,cACD,MAAO,SACX,IAAK,SACD,MAAO,SACX,IAAK,SACD,MAAO,OACX,IAAK,OACD,MAAO,MACX,IAAK,MACD,OAAO0jB,EAAY,OAAS,QAChC,IAAK,OACD,MAAO,QACX,IAAK,QACD,MAAO,UACX,IAAK,UACL,IAAK,OACD,MAAO,OACX,QACI,OAAO,IAGfE,EAAiC,SAASjnD,GAC1C,IAAIwP,EACA03C,EACAC,EACAX,EAAoB,CAAC,cAAe,SAAU,SAAU,OAAQ,MAAO,QAAS,QAChF5/C,EAAS,GACb,IAAK4I,EAAIg3C,EAAkBrhD,OAAS,EAAGqK,GAAK,EAAGA,IAC3C23C,EAAmBX,EAAkBh3C,GACrC03C,EAAgBjhD,KAAK8vB,MAAM/1B,EAAQymD,EAAeU,IAC9CD,EAAgB,IAChBtgD,EAAOugD,EAAmB,KAAOD,EACjClnD,GAASonD,EAA8BD,EAAkBD,IAGjE,OAAOtgD,GAEPygD,EAAqB,SAASC,GAC9B,IAAI9yC,EAAe,EASnB,OARI,eAAS8yC,IACT,eAAKA,GAAc,SAAU/Y,EAAKvuC,GAC9BwU,GAAgB4yC,EAA8B7Y,EAAI1/B,OAAO,EAAG0/B,EAAIppC,OAAS,GAAInF,MAGjF,eAASsnD,KACT9yC,EAAe4yC,EAA8BE,EAAc,IAExD9yC,GAGX,SAAS4yC,EAA8BG,EAAUC,GAC7C,OAAOf,EAAec,GAAYC,EAGtC,SAASR,EAAoBM,GACzB,IACI93C,EADAi4C,GAAe,EAEnB,OAAI,eAASH,GACFA,EAEP,eAASA,IACT,eAAKA,GAAc,SAAU/Y,EAAKvuC,GAC9B,IAAKwP,EAAI,EAAGA,EAAIg3C,EAAkBrhD,OAAQqK,IAClCxP,IAAUuuC,IAAQiY,EAAkBh3C,GAAK,KAAO++B,IAAQiY,EAAkBh3C,KAAOi4C,EAAcj4C,IAC/Fi4C,EAAcj4C,MAInBg3C,EAAkBiB,IAEtB,GAEX,IAAIC,EAA0B,CAC1BvB,YAAa,cACbnjB,OAAQ,WACRkjB,OAAQ,YACRD,KAAM,YACNx5C,IAAK,MACLk7C,KAAM,MACNj1C,MAAO,QACPk1C,QAAS,UACTn1C,KAAM,QAGV,SAASo1C,EAA4BP,GACjC,OAAOI,EAAwBV,EAAoBM,KAAkB,GAEzE,IAAIQ,EAAa,SAASp1C,GACtB,OAAOzM,KAAK8vB,MAAMrjB,EAAQ,IAE1Bq1C,EAAuB,SAASr1C,GAChC,OAAO,EAAIo1C,EAAWp1C,IAG1B,SAASs1C,EAA6B17C,EAAM27C,EAAcC,EAAgBlsC,GACtE1P,EAAO,IAAI+D,KAAK/D,EAAKuG,WACrB,IACIs1C,EACAz1C,EAFA01C,EAAU,IAAI/3C,KAAK/D,EAAKuG,WAGxBs0C,EAAmBH,EAAoBiB,GAC3C,OAAQd,GACJ,IAAK,SACD76C,EAAO,IAAI+D,KAAK,IAAMpK,KAAK8vB,MAAMqyB,EAAQv1C,UAAY,MACrD,MACJ,IAAK,SACDvG,EAAO,IAAI+D,KAAK,IAAMpK,KAAK8vB,MAAMqyB,EAAQv1C,UAAY,MACrD,MACJ,IAAK,OACDvG,EAAO,IAAI+D,KAAK,KAAOpK,KAAK8vB,MAAMqyB,EAAQv1C,UAAY,OACtD,MACJ,IAAK,OACDvG,EAAKW,SAAS,GAClB,IAAK,QACDX,EAAKa,QAAQ,GACjB,IAAK,MACDb,EAAK+B,SAAS,EAAG,EAAG,EAAG,GACvB,MACJ,IAAK,OACD/B,EAAO+7C,EAAiB/7C,EAAM0P,GAAkB,GAChD1P,EAAK+B,SAAS,EAAG,EAAG,EAAG,GACvB,MACJ,IAAK,UACD85C,EAAoBJ,EAAqBz7C,EAAKC,YAC9CmG,EAAQpG,EAAKC,WACbD,EAAKa,QAAQ,GACbb,EAAK+B,SAAS,EAAG,EAAG,EAAG,GACnBqE,IAAUy1C,GACV77C,EAAKW,SAASk7C,GAM1B,OAHID,GAAkB,SAAWf,GAAoB,WAAaA,GAAoB,WAAaA,GAC/FntC,EAAeouC,EAAS97C,GAErBA,EAGX,SAASg8C,EAASh8C,GACd,OAAO07C,EAA6B17C,EAAM,OAE9C,IAAIi8C,EAAc,SAASj8C,GACvB,IAAI1F,EAAS0hD,EAASh8C,GAEtB,OADA1F,EAAOuG,QAAQvG,EAAO8F,UAAY,GAC3B,IAAI2D,KAAKzJ,EAAOiM,UAAY,IAEnC21C,EAAsB,SAAStkC,EAAOC,GACtC,IAAIskC,EAAU,EACVC,EAAc,CACdj2C,KAAMyR,EAAMxV,gBAAkByV,EAAMzV,cACpCgE,MAAOwR,EAAM3X,aAAe4X,EAAM5X,WAClCE,IAAKyX,EAAMxX,YAAcyX,EAAMzX,UAC/Bu5C,KAAM/hC,EAAM5W,aAAe6W,EAAM7W,WACjC44C,OAAQhiC,EAAMiF,eAAiBhF,EAAMgF,aACrC6Z,OAAQ9e,EAAMkF,eAAiBjF,EAAMiF,aACrC+8B,YAAajiC,EAAMmF,oBAAsBlF,EAAMkF,mBAYnD,OAVA,eAAKq/B,GAAa,SAAUna,EAAKvuC,GACzBA,GACAyoD,OAGJ,IAAMA,GAAW,IAAME,GAAuBzkC,EAAOC,KACrDukC,EAAYzC,MAAO,EACnBwC,KAEJC,EAAYlB,MAAQiB,EACbC,GAGX,SAASE,EAAgB5oD,EAAOqjC,EAAUwlB,GACtC,IAAIjiD,EAAS,IAAIyJ,KAAKrQ,EAAM6S,WACxBi2C,EAAiB,eAASzlB,GAAY0lB,EAAwB1lB,EAASgD,eAAiB,eAAUhD,GAAY4jB,EAA+B5jB,GAAYA,EA4B7J,OA3BIylB,EAAeE,OACfpiD,EAAOkI,YAAYlI,EAAO8H,cAAgBo6C,EAAeE,MAAQH,GAEjEC,EAAeG,UACfriD,EAAOqG,SAASrG,EAAO2F,WAAa,EAAIu8C,EAAeG,SAAWJ,GAElEC,EAAeI,QACftiD,EAAOqG,SAASrG,EAAO2F,WAAau8C,EAAeI,OAASL,GAE5DC,EAAeK,OACfviD,EAAOuG,QAAQvG,EAAO8F,UAAY,EAAIo8C,EAAeK,MAAQN,GAE7DC,EAAeM,MACfxiD,EAAOuG,QAAQvG,EAAO8F,UAAYo8C,EAAeM,KAAOP,GAExDC,EAAe36C,OACfvH,EAAOyiD,QAAQziD,EAAOiM,UAAY,KAAOi2C,EAAe36C,MAAQ06C,GAEhEC,EAAex0C,SACf1N,EAAOyiD,QAAQziD,EAAOiM,UAAY,IAAMi2C,EAAex0C,QAAUu0C,GAEjEC,EAAev0C,SACf3N,EAAOyiD,QAAQziD,EAAOiM,UAAY,IAAMi2C,EAAev0C,QAAUs0C,GAEjEC,EAAet0C,cACf5N,EAAOyiD,QAAQziD,EAAOiM,UAAYi2C,EAAet0C,aAAeq0C,GAE7DjiD,EAEX,IAAI0iD,EAAc,SAAStpD,EAAOqjC,EAAUkmB,GACxC,IAAIV,EAAMU,GAAc,EAAI,EAC5B,OAAO,eAAOvpD,GAAS4oD,EAAgB5oD,EAAOqjC,EAAUwlB,GAAO,eAAO7oD,EAAQqjC,EAAWwlB,EAAKxlB,IAE9FmmB,EAAwB,SAASz8C,EAAKC,EAAKq2B,GAC3C,IACIomB,EADAC,EAAY,GAEhBA,EAAUphD,KAAK,eAAOyE,GAAO,IAAIsD,KAAKtD,EAAI8F,WAAa9F,GACvD08C,EAAM18C,EACN,MAAO08C,EAAMz8C,EACTy8C,EAAMH,EAAYG,EAAKpmB,GACvBqmB,EAAUphD,KAAKmhD,GAEnB,OAAOC,GAEPrnC,EAAuB,SAASsnC,EAAUr9C,GAC1C,MAAI,UAAYq9C,EACLrrC,GAAuBhS,EAAKoC,cAAepC,EAAKC,WAAY,GAEnE,SAAWo9C,EACJrrC,GAAuBhS,EAAKoC,cAAe,EAAGpC,EAAKI,WAE1D,WAAai9C,EACNrrC,GAAuBD,EAAqB/R,GAAOA,EAAKC,WAAYD,EAAKI,WAEhF,YAAci9C,EACPrrC,GAAuBS,EAAwBzS,GAAOA,EAAKC,WAAYD,EAAKI,gBADvF,GAIA6V,EAAsB,SAASonC,EAAUr9C,GACzC,MAAI,UAAYq9C,EACLrrC,GAAuBhS,EAAKoC,cAAepC,EAAKC,WAAYq9C,EAAgBt9C,IAEnF,SAAWq9C,EACJrrC,GAAuBhS,EAAKoC,cAAe,GAAIpC,EAAKI,WAE3D,WAAai9C,EACNrrC,GAAuBD,EAAqB/R,GAAQ,EAAGA,EAAKC,WAAYD,EAAKI,WAEpF,YAAci9C,EACPrrC,GAAuBS,EAAwBzS,GAAQ,GAAIA,EAAKC,WAAYD,EAAKI,gBAD5F,GAIA6b,EAAyB,SAASohC,EAAUr9C,GAC5C,IAAIu9C,EAAavrC,GAAuBhS,EAAKoC,cAAepC,EAAKC,WAAY,GAC7E,MAAI,UAAYo9C,EACLE,GAEXA,EAAW58C,SAAS,GAChB,SAAW08C,IAGX,WAAaA,GACbE,EAAW/6C,YAAYuP,EAAqB/R,IAE5C,YAAcq9C,GACdE,EAAW/6C,YAAYiQ,EAAwBzS,KANxCu9C,IAUXrhC,EAAyB,SAASmhC,EAAUr9C,GAC5C,IAAIu9C,EAAa,IAAIx5C,KAAK/D,GAE1B,OADAu9C,EAAW18C,QAAQy8C,EAAgBt9C,IAC/B,UAAYq9C,EACLE,GAEXA,EAAW58C,SAAS,IACpB48C,EAAW18C,QAAQy8C,EAAgBC,IAC/B,SAAWF,IAGX,WAAaA,GACbE,EAAW/6C,YAAYuP,EAAqB/R,GAAQ,GAEpD,YAAcq9C,GACdE,EAAW/6C,YAAYiQ,EAAwBzS,GAAQ,KANhDu9C,IAWf,SAASD,EAAgBt9C,GACrB,IAAIu9C,EAAavrC,GAAuBhS,EAAKoC,cAAepC,EAAKC,WAAa,EAAG,GACjF,OAAOs9C,EAAWn9C,UAEtB,IAAIid,EAAY,SAASmgC,GACrB,OAAQA,GACJ,IAAK,QACD,MAAO,OACX,IAAK,OACD,MAAO,SACX,IAAK,SACD,MAAO,YAGf/gC,EAAc,SAAS+gC,GACvB,OAAQA,GACJ,IAAK,UACD,MAAO,SACX,IAAK,SACD,MAAO,OACX,IAAK,OACD,MAAO,UAGfhjC,EAAuB,SAASgjC,GAChC,IAAIjjC,EAAa,EAUjB,MATI,SAAWijC,IACXjjC,EAAa,IAEb,WAAaijC,IACbjjC,EAAa,KAEb,YAAcijC,IACdjjC,EAAa,MAEVA,GAEPkjC,EAA+B,SAASD,GACxC,IAAIjjC,EAAa,EAOjB,MANI,WAAaijC,IACbjjC,EAAa,IAEb,YAAcijC,IACdjjC,EAAa,KAEVA,GAGX,SAASkiC,EAAwBiB,GAC7B,IAAIpjD,EAAS,GACb,OAAQojD,GACJ,IAAK,OACDpjD,EAAOoiD,MAAQ,EACf,MACJ,IAAK,QACDpiD,EAAOsiD,OAAS,EAChB,MACJ,IAAK,UACDtiD,EAAOsiD,OAAS,EAChB,MACJ,IAAK,OACDtiD,EAAOuiD,MAAQ,EACf,MACJ,IAAK,MACDviD,EAAOwiD,KAAO,EACd,MACJ,IAAK,OACDxiD,EAAOuH,MAAQ,EACf,MACJ,IAAK,SACDvH,EAAO0N,QAAU,EACjB,MACJ,IAAK,SACD1N,EAAO2N,QAAU,EACjB,MACJ,IAAK,cACD3N,EAAO4N,aAAe,EAE9B,OAAO5N,EAGX,SAASqW,EAASiH,EAAOC,GACrB,OAAOvG,EAAiBsG,EAAOC,IAAUD,EAAMxX,YAAcyX,EAAMzX,UAGvE,SAASkR,EAAiBsG,EAAOC,GAC7B,OAAOjG,EAASgG,EAAOC,IAAUD,EAAM3X,aAAe4X,EAAM5X,WAGhE,SAAS2R,EAASgG,EAAOC,GACrB,OAAOD,GAASC,GAASD,EAAMxV,gBAAkByV,EAAMzV,cAE3D,IAAI0P,EAAa,SAAS8F,EAAOC,GAC7B,GAAK,eAAUD,IAAW,eAAUC,GAApC,CAGA,IAAI8lC,EAAmB/lC,EAAMxV,cAAgBwV,EAAMxV,cAAgB,GAC/Dw7C,EAAmB/lC,EAAMzV,cAAgByV,EAAMzV,cAAgB,GACnE,OAAOwV,GAASC,GAAS8lC,IAAqBC,IAE9CprC,EAAc,SAASoF,EAAOC,GAC9B,GAAK,eAAUD,IAAW,eAAUC,GAApC,CAGA,IAAIgmC,EAAoBjmC,EAAMxV,cAAgBwV,EAAMxV,cAAgB,IAChE07C,EAAoBjmC,EAAMzV,cAAgByV,EAAMzV,cAAgB,IACpE,OAAOwV,GAASC,GAASgmC,IAAsBC,IAGnD,SAASrrC,EAAwBzS,GAC7B,OAAOA,GAAQA,EAAKoC,cAAgBpC,EAAKoC,cAAgB,IAG7D,SAAS2P,EAAqB/R,GAC1B,OAAOA,GAAQA,EAAKoC,cAAgBpC,EAAKoC,cAAgB,GAE7D,IAAIkL,EAAqB,WACrB,MAAO,cAEP6D,EAAoB,SAASnR,GAC7B,GAAK,eAAUA,GAGf,OAAOgS,GAAuBhS,EAAKoC,cAAepC,EAAKC,WAAY,IAEnEwR,EAAmB,SAASzR,GAC5B,GAAK,eAAUA,GAGf,OAAOgS,GAAuBhS,EAAKoC,cAAepC,EAAKC,WAAa,EAAG,IAG3E,SAAS87C,EAAiB/7C,EAAM0P,GAC5B,IAAI3Q,GAASiB,EAAKkC,SAAWwN,EAAiB,GAAK,EAC/CpV,EAAS,IAAIyJ,KAAK/D,GAEtB,OADA1F,EAAOuG,QAAQb,EAAKI,UAAYrB,GACzBzE,EAEX,IAAIyjD,EAAsB,SAAS/9C,EAAM0R,GACrC,IAAIssC,EAAmBl5C,GAAUs1C,iBAAiBp6C,EAAM0R,EAAa,OACjE6rC,EAAa,IAAIx5C,KAAK/D,GAI1B,OAHIg+C,GAAoB,IACpBT,EAAa,IAAIx5C,KAAKw5C,EAAW18C,QAAQ08C,EAAWn9C,UAAY,KAE7Dm9C,GAEPzsC,EAAc,SAAS9Q,EAAMS,EAAKC,EAAKiE,GAMvC,MALI,SAAWA,IACXlE,EAAMA,GAAOqE,GAAU42C,6BAA6Bj7C,EAAK,OACzDC,EAAMA,GAAOoE,GAAU42C,6BAA6Bh7C,EAAK,OACzDV,EAAOA,GAAQ8E,GAAU42C,6BAA6B17C,EAAM,QAEzD4Y,EAAc5Y,EAAMS,EAAKC,KAASV,GAEzCi+C,EAAmB,SAASx/C,GAC5B,IACIy/C,SAAUA,EACVC,SAAUA,EACVC,UAAWA,EACXC,UAAWA,GACX5/C,EACJ,OAAOy/C,GAAYE,GAAaA,GAAaD,GAAYD,EAAWE,GAAaF,EAAWG,GAAaH,EAAWG,GAAaF,EAAWE,GAE5IC,EAAsB,SAASpZ,GAC/B,IAAIrjC,EAAQlI,KAAK8vB,MAAMyb,GACnBl9B,EAAUk9B,EAAS,EAAI,GAC3B,MAAO,CACHrjC,MAAOA,EACPmG,QAASA,IAGbu2C,EAA0B,SAASv+C,EAAMw+C,GACzC,IAAIC,EAAYppD,KAAKipD,oBAAoBE,GACrClkD,EAAS,IAAIyJ,KAAK/D,GAItB,OAHIA,EAAKgB,aAAey9C,EAAU58C,OAAS7B,EAAK6c,aAAe4hC,EAAUz2C,SAAWhI,EAAKgB,WAAay9C,EAAU58C,QAC5GvH,EAAOyH,SAAS08C,EAAU58C,MAAO48C,EAAUz2C,QAAS,EAAG,GAEpD1N,GAGX,SAASse,EAAc5Y,EAAMS,EAAKC,GAC9B,IAAI2Y,EAAiBrZ,EACrB,OAAK,eAAUA,IAGX,eAAUS,IAAQT,EAAOS,IACzB4Y,EAAiB5Y,GAEjB,eAAUC,IAAQV,EAAOU,IACzB2Y,EAAiB3Y,GAEd2Y,GARIrZ,EAWf,SAAS0N,EAAeouC,EAAS52C,GAC7B,GAAK,eAAU42C,GAAf,CAGA,IAAI4C,EAAOx5C,EAAQlE,WAAa86C,EAAQ96C,WACxC,GAAI,IAAM09C,EAAV,CAGA,IAAIC,EAAO,IAAMD,IAAS,KAAOA,GAAQ,EAAI,EACzCE,EAAQ,IAAI76C,KAAKmB,EAAQqB,UAAY,KAAOo4C,IAC5CA,EAAO,GAAKC,EAAMx+C,YAAc8E,EAAQ9E,YACxC8E,EAAQ63C,QAAQ6B,EAAMr4C,aAG9B,IAAIs4C,GAAc,SAAS7+C,GACvB,IAAI1F,EAAS,IAAIyJ,KAAK/D,EAAKuG,WAG3B,OAFAjM,EAAOyH,SAASzH,EAAO0G,WAAa,GACpC1G,EAAOsiB,WAAW,GACXtiB,GAGX,SAAS+hD,GAAuB57C,EAAKC,GACjC,OAAO,IAAMA,EAAIo+C,oBAAsBr+C,EAAIq+C,qBAAuB,IAEtE,IAAIC,GAAW,SAAS/+C,GACpB,OAAO,IAAI+D,KAAK/D,IAEhBg/C,GAAqB,SAAS9sC,EAAWC,EAASmvB,GAClD,IAAIhnC,EAAS,GACToX,EAAc,IAAI3N,KAAKmO,EAAU3L,WACrC,MAAOmL,EAAcS,EACjB7X,EAAO0B,KAAK,IAAI+H,KAAK2N,EAAYnL,YACjCmL,EAAcrc,KAAK2nD,YAAYtrC,EAAa4vB,GAEhD,OAAOhnC,GAEP0X,GAAyB,SAAS7L,GAClC,IAAI7L,EAAS,IAAIyJ,QAAQ3J,WAEzB,OADAE,EAAOkI,YAAY2D,GACZ7L,GAEPwK,GAAY,CACZo1C,kBAAmBA,EACnBS,+BAAgCA,EAChCI,mBAAoBA,EACpBR,gBAAiBA,EACjBO,8BAA+BA,EAC/BJ,oBAAqBA,EACrBa,4BAA6BA,EAC7BW,oBAAqBA,EACrBR,6BAA8BA,EAC9BM,SAAUA,EACVC,YAAaA,EACbsC,wBAAyBA,EACzBD,oBAAqBA,EACrBhC,gBAAiBA,EACjBU,YAAaA,EACbE,sBAAuBA,EACvBT,wBAAyBA,EACzB9rC,SAAUA,EACVW,iBAAkBA,EAClB2tC,UAAW3tC,EACXM,SAAUA,EACVE,WAAYA,EACZU,YAAaA,EACbgI,qBAAsBA,EACtBijC,6BAA8BA,EAC9B1rC,qBAAsBA,EACtBU,wBAAyBA,EACzBnF,mBAAoBA,EACpByI,qBAAsBA,EACtBE,oBAAqBA,EACrBwG,YAAaA,EACbY,UAAWA,EACXigC,gBAAiBA,EACjB7rC,iBAAkBA,EAClBN,kBAAmBA,EACnB4qC,iBAAkBA,EAClBgC,oBAAqBA,EACrBvC,WAAYA,EACZC,qBAAsBA,EACtB3qC,YAAaA,EACbmtC,iBAAkBA,EAClBY,YAAaA,GACbjmC,cAAeA,EACfqD,uBAAwBA,EACxBC,uBAAwBA,EACxBxO,eAAgBA,EAChB2uC,uBAAwBA,GACxB0C,SAAUA,GACV3E,iBAAkBA,EAClB4E,mBAAoBA,GACpBhtC,uBAAwBA,GAE5B,SAAqB,SAAS3D,EAAMuJ,EAAOC,GACvC,OAAO/S,GAAU,eAAS,QAAUuJ,IAAOuJ,EAAOC,KAEvC,W;;;;;;;;;;;;GCtmBf,IAAIy1B,EAAmBj4C,MAAQA,KAAKi4C,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDtD,OAAOC,eAAeN,EAAS,aAAc,CAAEl2C,OAAO,IACtDk2C,EAAQsV,gBAAa,EACrB,IAAIC,EAAc7R,EAAgB,EAAQ,SACtCqB,EAAU,EAAQ,QAClBuQ,EAAavQ,EAAQE,gBAAgB,CACrCC,MAAO,CACHG,UAAWj1C,OACXmB,mBAAoB6zC,QACpBK,SAAUL,QACVS,YAAaxF,OACb7uC,kBAAmB4zC,QACnBt3C,OAAQ,CAAC43C,SAAUO,OAAQ71C,QAC3B+1C,KAAM/1C,OACNga,kBAAmBg7B,QACnBoQ,SAAU,CAACvP,OAAQ71C,QACnB8jC,QAASkR,QACT16C,KAAM0F,OACN02C,eAAgBpB,SAChBrgB,YAAaqgB,SACbrpB,cAAeqpB,SACf8B,gBAAiB9B,SACjBjqB,eAAgBiqB,SAChBiC,SAAUvC,QACV/hC,WAAY+hC,QACZpzB,SAAUi0B,OACVjtC,KAAM5I,OACNyjC,gBAAiB,GACjB6U,iBAAkB3uC,MAClB4uC,sBAAuBv4C,OACvBw4C,iBAAkBx4C,OAClBtG,MAAO,GACPuK,QAAS+wC,QACTv3C,MAAO,CAAC63C,SAAUO,OAAQ71C,SAE9B04C,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,KACnB,qBAAsB,KACtB,2BAA4B,KAC5B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,kBAAmB,KACnB,iBAAkB,KAClB,cAAe,KACf,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,yBAA0B,KAC1B,wBAAyB,KACzB,kBAAmB,KACnB,oBAAqB,KACrB,kBAAmB,KACnB,cAAe,KACf,yBAA0B,KAC1B,0BAA2B,KAC3B,+BAAgC,KAChC,0BAA2B,KAC3B,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBtkC,MAAO,CAAE3a,KAAM,QAAS6V,MAAO,gBAC/BqpC,SAAU,CACNC,SAAU,WACN,OAAOv9C,KAAKw9C,aAGpBC,aAAc,WACVz9C,KAAK09C,cAAgBoM,EAAYnM,QACjC39C,KAAK49C,oBAAqB,KAGlCrJ,EAAQsV,WAAaA,EACrBtV,EAAQoJ,QAAUkM,G,kCC7FlB,IAAIG,EAAkB,EAAQ,QAC1BC,EAAa,EAAQ,QAEzB3V,EAAOC,QAAU,SAAUV,EAAQ5lC,EAAO5P,GACpC4P,KAAS4lC,EAAQmW,EAAgBhW,EAAEH,EAAQ5lC,EAAOg8C,EAAW,EAAG5rD,IAC/Dw1C,EAAO5lC,GAAS5P,I,kCCNvB,uTA2EI6rD,EAAsB,YACtBC,EAAe,YACfC,EAA6B,mBAC7BC,EAAmB,SACnBC,EAAyB,sBACzBC,EAA0B,gBAC1BC,EAAiC,uBACjCC,EAA2B,wBAC3BC,EAA2B,wBAC3BC,EAA6B,0BAC7BC,EAA2B,iBAC3BC,EAAsC,6BACtCC,EAAqC,4BACrCC,EAAqB,kBACrBC,EAAmC,gCACnCC,GAAuC,GACvCC,EAAS,aAAU53C,QAAQ,CAC3BmM,eAAgB,WACZ,IAAIha,EAASzF,KAAKuT,WACd43C,EAAa/hD,GAAWpJ,KAAKorD,MAAMpuB,iBAAiB5zB,GACpDwO,EAAa5X,KAAKO,OAAO,cAC7B,OAAO,eAAO,GAAIkF,EAAQ,CACtB6lC,UAAW,SAAShiC,GAChB,GAAKtJ,KAAKqrD,qBAAV,CAGArrD,KAAKsrD,sBAAsBhiD,GAC3BtJ,KAAKurD,eAAgB,EACrB,IAAIC,EAAexrD,KAAKyrD,cAAgBzrD,KAAK0rD,eAAenoD,OACxDvD,KAAKyrD,cACLzrD,KAAK2rD,cAAc,QAAQ,GAE3B,IAAMH,EAAahoD,SAGvBxD,KAAK4rD,qBAAsB,EAC3B5rD,KAAK6rD,kBAAkBL,UAChBxrD,KAAK4rD,uBAEhB5rC,QAAS,CAAC1W,EAAGyzB,IAASzzB,EAAE0iC,SAAWhsC,KAAKorD,MAAQ3lD,EAAOua,QAAQylB,KAAKzlC,KAAMsJ,GAAK6hD,EAAWpuB,GAC1F1c,UAAW,CAAC/W,EAAGyzB,IAASzzB,EAAE0iC,SAAWhsC,KAAKorD,MAAQ3lD,EAAO4a,UAAUolB,KAAKzlC,KAAMsJ,GAAK6hD,EAAWpuB,GAC9FoO,IAAK,SAAS7hC,GACV,GAAKtJ,KAAKyrD,cAAiBzrD,KAAKqrD,qBAAhC,CAGArrD,KAAKsrD,sBAAsBhiD,GAC3BtJ,KAAKurD,eAAgB,EACrB,IAAIC,EAAexrD,KAAKyrD,aACxBzrD,KAAK2rD,cAAc,QAAQ,GAC3B3rD,KAAK4rD,qBAAsB,EAC3B5rD,KAAK6rD,kBAAkBL,UAChBxrD,KAAK4rD,sBAEhB5qC,MAAO,SAAS1X,EAAGF,GACf,IAAI0iD,EAAoB9rD,KAAKorD,OAAS,OAASprD,KAAKorD,MAAM7qD,OAAO,kBAC7DwrD,EAAe/rD,KAAKO,OAAO,uBAAyBurD,EACxD,GAAIC,EAGA,OAFAziD,EAAEqW,sBACF,KAAO3f,KAAK2uC,gBAAkB3uC,KAAKgsD,wBAAwB1iD,IAG3DtJ,KAAKO,OAAO,YACZP,KAAK0hB,sBAAsBpY,GAC3B6hD,EAAW/hD,GACXE,EAAEqW,mBAGVygB,MAAO,SAAS92B,EAAGF,GACf,IAAI6iD,EAAWjsD,KAAKO,OAAO,UACvB2rD,EAAgBlsD,KAAKmsD,2BACrBF,IAAaC,IACblsD,KAAK0hB,sBAAsBpY,GAC3B6hD,EAAW/hD,GACXE,EAAEqW,mBAGVI,UAAW,SAASzW,GAChB,MAAKtJ,KAAKqrD,sBAAwBrrD,KAAKosD,YAAcpsD,KAAKqsD,eAAiBz0C,IAAe5X,KAAKyrD,cAA/F,CAGAniD,EAAEqW,iBACF,IAAIpe,EAAYqW,EAAa,OAAS,OACtC5X,KAAK2rD,cAAcpqD,IAClBvB,KAAKO,OAAO,cAAgBP,KAAKssD,iBAAiB/qD,KAEvDme,WAAY,SAASpW,GACjB,GAAKtJ,KAAKqrD,uBAAwBrrD,KAAKosD,cAAcpsD,KAAKqsD,eAAkBz0C,GAAe5X,KAAKyrD,cAAhG,CAGAniD,EAAEqW,iBACF,IAAIpe,EAAYqW,EAAa,OAAS,OACtC5X,KAAK2rD,cAAcpqD,IAClBvB,KAAKO,OAAO,cAAgBP,KAAKssD,iBAAiB/qD,QAI/D+pD,sBAAuB,SAAShiD,GAC5BA,EAAEqW,iBACFrW,EAAEijD,kBACFvsD,KAAK0hB,sBAAsBpY,IAE/B8iD,SAAU,WACN,OAAO,IAAMpsD,KAAKs7B,YAAY93B,QAElCgpD,qBAAsB,SAASlsD,GAC3BN,KAAKysD,gBAAkBnsD,EAASkE,SAAS4lD,GAA4B5lD,SAASumD,GAC9E/qD,KAAKysD,gBAAgBhnD,SAASjB,SAASumD,IAE3C2B,sBAAuB,WACnB,OAAO,GAEXrB,mBAAoB,WAChB,IAAIv8C,EAAW,eAAM9O,KAAKm6B,UAC1B,OAAO,IAAMrrB,EAASlR,OAAS,IAAMkR,EAASjR,KAElD8tD,cAAe,SAASpqD,EAAWorD,GAC/B,IAAK3sD,KAAKyrD,aAAc,CACpB,IAAImB,EAAc5sD,KAAK0rD,eAGvB,OAFA1rD,KAAKyrD,aAAe,SAAWlqD,EAAYqrD,EAAYvpD,QAAUupD,EAAYrpD,YAC7EvD,KAAK6sD,mBAAkB,EAAM7sD,KAAKyrD,cAGtC,IAAIqB,EAAkB9sD,KAAKyrD,aAAalqD,GAAW,IAAI+E,OAAO+jD,IAC1DyC,EAAgBtpD,OAAS,EACzBxD,KAAK+sD,mBAAmBD,IACjBH,GAAmB,SAAWprD,GAAavB,KAAKqsD,gBACvDrsD,KAAKgtD,kBAGbD,mBAAoB,SAASD,GACzB9sD,KAAK6sD,mBAAkB,EAAO7sD,KAAKyrD,cACnCzrD,KAAKyrD,aAAeqB,EACpB9sD,KAAK6sD,mBAAkB,EAAM7sD,KAAKyrD,eAEtCuB,eAAgB,WACPhtD,KAAKyrD,eAGVzrD,KAAK6sD,mBAAkB,EAAO7sD,KAAKyrD,qBAC5BzrD,KAAKyrD,eAEhBwB,kBAAmB,SAAS3sD,GACxB,OAAIA,GAAYA,EAASkD,QAAUlD,EAAS,KAAON,KAAKwkB,eAAe,GAC5DlkB,EAEJN,KAAKuT,YAEhB25C,mBAAoB,WAChB,OAAOltD,KAAKysD,iBAEhBH,iBAAkB,SAAS/qD,GACvB,IAAIvB,KAAKO,OAAO,cAAiB,kBAG5BP,KAAKysD,gBAAV,CAGA,IAAIU,EAAiBntD,KAAKotD,mBAAmB7rD,GAC7CvB,KAAKysD,gBAAgB3iD,WAAWqjD,KAEpCC,mBAAoB,SAAS7rD,GACzB,MAAI,UAAYA,GAAa,QAAUA,EAC5BvB,KAAKqtD,mBAAmB9rD,GAE5BvB,KAAKyrD,aAAezrD,KAAKstD,uBAAuB/rD,GAAavB,KAAKqtD,mBAAmB,QAEhGA,mBAAoB,SAAS9rD,GACzB,IAAIqW,EAAa5X,KAAKO,OAAO,cACzBgtD,EAAe,QAAUhsD,EAAYqW,EACrC41C,EAAa51C,GAAc,EAAI,EACnC,OAAO21C,GAAgB31C,EAAa,EAAI41C,GAAcxtD,KAAKysD,gBAAgB3rD,IAAI,GAAG2sD,YAAc,eAAcztD,KAAKysD,mBAEvHa,uBAAwB,SAAS/rD,GAC7B,IAAIqW,EAAa5X,KAAKO,OAAO,cACzBgtD,EAAe,SAAWhsD,EAAYqW,GAEtCkP,KAAMiN,GACN/zB,KAAKyrD,aAAa38C,WAClBhF,EAAa9J,KAAKysD,gBAAgB3iD,aAOtC,OANIyjD,IACAx5B,GAAgB,eAAc/zB,KAAKyrD,cAAc,GAAQ,eAAczrD,KAAKysD,kBAE5Ec,EAAex5B,EAAe,IAC9BjqB,GAAciqB,GAEXjqB,GAEX4jD,cAAe,OACf7nD,mBAAoB,WAChB,OAAO,eAAO7F,KAAKuT,WAAY,CAC3BlV,MAAO,GACPu+C,oBAAoB,EACpB9B,qBAAsB,KACtBiC,YAAa,MACbP,cAAe,OAAoBltC,OAAO,oBAC1CmrC,mBAAmB,EACnBgC,cAAe,GACfF,cAAe,OACfP,wBAAyB,KACzBnB,sBAAkB,EAClBgC,kBAAkB,EAClBhB,oBAAqB,KACrBZ,WAAW,EACXmF,mBAAmB,KAG3B/5C,MAAO,WACHrG,KAAKuT,WACLvT,KAAK2tD,eAAiB,GACtB3tD,KAAK4tD,oCAETl6C,aAAc,WACV1T,KAAKuT,WACLvT,KAAK6tD,gCAETA,6BAA8B,WAC1B7tD,KAAK8tD,yBAA2B9tD,KAAKiH,sBAAsB,sBAAuB,CAC9E8mD,cAAe,SAASzkD,GACpBtJ,KAAKguD,0BAA0B1kD,EAAEpB,KAAK,KACxCpF,KAAK9C,MACPiuD,kBAAmB,CAAC,WAAY,eAGxCD,0BAA2B,SAAS9lD,GAChC,IACI1E,OAAQ0qD,GACRluD,KAAKs7B,YACJt7B,KAAKO,OAAO,oBAGb2H,EAAKqF,KAAO,OAAoB4gD,aAAa,oBAAjC,CAAsDD,GAFlEhmD,EAAKqF,KAAO,OAAoB4gD,aAAa,wBAAjC,CAA0DD,EAAgBluD,KAAKO,OAAO,oBAAsB,IAKhI6tD,sBAAuB,WACnBpuD,KAAKuT,WACLvT,KAAK2jB,iBAAiBC,oBAAoB,CACtCyqC,IAAK,IAAI,OAAiB,CAACzkD,EAAYlI,KACnC,IAAI4sD,EACAC,EAAc,eAAE,SAAS/pD,SAASomD,GACtC,eAAE,UAAUr9C,KAAK,QAAU+gD,EAAa5sD,EAAK6L,YAAS,IAAW+gD,EAAaA,EAAa5sD,GAAMmV,SAAS03C,GAC1G,eAAE,SAAS/pD,SAASgmD,GAAgC3zC,SAAS03C,GAC7D3kD,EAAWxE,OAAOmpD,IACnB,CAAC,QAASvuD,KAAKO,OAAO,kCAAmC,CACxDgN,KAAMvN,KAAKwuD,oBAIvBC,qBAAsB,SAASC,GACvBA,GACA1uD,KAAKqlB,uBACLrlB,KAAKypB,oBAELzpB,KAAKwpB,iBAAmBxpB,KAAKwpB,gBAAgBa,gBACtCrqB,KAAKwpB,kBAGpBnE,qBAAsB,WACbrlB,KAAKO,OAAO,uBAGjBP,KAAKwpB,gBAAkB,eAAE,YAAYnZ,KAAK,WAAY,YAAYzP,IAAI,UAAW,QAAQiW,SAAS7W,KAAKM,cAE3GmpB,gBAAiB,WACb,GAAKzpB,KAAKO,OAAO,qBAAjB,CAKA,IAFA,IAAIlC,EAAQ2B,KAAKs7B,YACbqzB,EAAW,GACN9gD,EAAI,EAAGszB,EAAI9iC,EAAMmF,OAAQqK,EAAIszB,EAAGtzB,IAAK,CAC1C,IAAI+gD,EAAiB5uD,KAAK6uD,uBAAuBxwD,EAAMwP,IACvD8gD,EAAShoD,KAAK,eAAE,YAAY2J,IAAIs+C,EAAiB5uD,KAAKwuD,eAAenwD,EAAMwP,IAAMxP,EAAMwP,IAAIwC,KAAK,WAAY,aAEhHrQ,KAAK2pB,oBAAoBuF,QAAQ9pB,OAAOupD,KAE5C9nD,YAAa,WACT7G,KAAK8uD,kBAAoB,iBACzB,IAAIC,GAAoB/uD,KAAKO,OAAO,aACpCP,KAAKM,WAAWkE,SAAS2lD,GAAcv1C,YAAY61C,IAA4BzqD,KAAKO,OAAO,kBAAoBP,KAAKO,OAAO,uBAAuBqU,YAAY81C,EAA0BqE,GACxL/uD,KAAKgvD,mBACLhvD,KAAKuT,YAEToS,QAAS,WACL3lB,KAAKuT,WACLvT,KAAKivD,yBACLjvD,KAAKkvD,0BACLlvD,KAAKssD,iBAAiB,UAE1B0C,iBAAkB,WACdhvD,KAAKmvD,aAAenvD,KAAKymB,qBAAqB,gBAElDmV,aAAc,WACV,IAAIwzB,GAA0B,eAAUpvD,KAAKO,OAAO,kBACpDP,KAAKM,WAAWsU,YAAYi2C,EAAqCuE,GAAwBx6C,YAAYk2C,GAAqCsE,GAC1IpvD,KAAKuT,YAET07C,uBAAwB,WACpB,IAAII,EAAkBrvD,KAAKsvD,cAActvD,KAAKuvD,kBAAkBzsD,KAAK9C,OACjE8yB,EAAY,eAAa,OAAY,qBACzC,OAAalwB,IAAI5C,KAAKysD,gBAAiB35B,GACvC,OAAajwB,GAAG7C,KAAKysD,gBAAiB35B,EAAW,IAAIxsB,OAAOkkD,GAAiCv2C,IACzFo7C,EAAgB,CACZp7C,MAAOA,OAInBi7C,wBAAyB,WACrB,IAAIM,EAAkB,eAAa,eAAgBxvD,KAAKqvB,MACpD/uB,EAAWN,KAAKM,WAChBmvD,EAAczvD,KAAKO,OAAO,aAC9B,OAAaqC,IAAItC,EAAUkvD,GACvB,YAAc,OAAQlwC,OAAOC,WAI7BkwC,GAGJ,OAAa5sD,GAAGvC,EAAUkvD,EAAiBxvD,KAAK0vD,+BAA+B5sD,KAAK9C,OANhFA,KAAKysD,iBAAmBzsD,KAAKysD,gBAAgB7rD,IAAI,YAAa6uD,EAAc,GAAK,SAQzFC,+BAAgC,SAASpmD,GACrC,IAAIQ,EAAa9J,KAAKysD,gBAAgB3iD,aAClCJ,EAAQJ,EAAEI,MAAQuhD,EACtB,IAAK,eAAoB3hD,IAAM,eAAYtJ,KAAKysD,gBAAiB/iD,GAAO,GAEpE,OADA1J,KAAKysD,gBAAgB3iD,WAAWA,EAAaJ,IACtC,GAGf4M,cAAe,WACXtW,KAAKuT,WACL,IAAIo8C,EAAQ3vD,KAAKm6B,SACby1B,EAAY,eAAa,UAAW5vD,KAAKqvB,MAC7C,OAAaxsB,GAAG8sD,EAAOC,EAAWtmD,IAC9B,IAAIumD,EAAU,eAAiBvmD,IAC1BtJ,KAAK8vD,cAAcD,IAAY7vD,KAAKqsD,eACrCrsD,KAAKgtD,oBAIjB+C,mBAAoB,WAChB,OAAO/vD,KAAKuT,WAAa,IAAMo3C,GAEnCqF,aAAc,WACVhwD,KAAKuT,WACLvT,KAAKiwD,mBAAmBjwD,KAAKkwD,kBAEjCC,sBAAuB,WACnB,OAAOnwD,KAAKowD,sBAEhBC,gBAAiB,WACb,OAAO,kBAEXC,gBAAiB,WACbtwD,KAAKm6B,SAAS7pB,IAAI,IAClBtQ,KAAKuwD,+BACLvwD,KAAKO,OAAO,OAAQ,KAExBirB,gBAAiB,SAASliB,GACjBtJ,KAAKwwD,yBAAyBlnD,IAC/BtJ,KAAKssD,iBAAiB,OAE1BtsD,KAAKuT,SAASjK,IAElB6gC,kBAAmB,WAEf,OADAnqC,KAAKO,OAAO,eAAgBP,KAAK2uC,gBAC1B3uC,KAAKuT,YAEhBk9C,kBAAmB,SAASC,GACnBA,GACD1wD,KAAKswD,mBAGb7kC,iBAAkB,SAASniB,GAClBtJ,KAAKwwD,yBAAyBlnD,KAC/BtJ,KAAKgtD,iBACLhtD,KAAKssD,iBAAiB,UAE1BtsD,KAAKuT,SAASjK,IAElBi+B,sBAAuB,WACnB,OAAOvnC,KAAKO,OAAO,yBAA2BP,KAAKorD,MAAM9qD,WAAaN,KAAKuT,YAE/Eq6C,iCAAkC,WAC9B5tD,KAAK2wD,4BAA8B3wD,KAAKiH,sBAAsB,4BAElE2pD,YAAa,WACT5wD,KAAKuT,WACLvT,KAAK6wD,2BACD7wD,KAAKO,OAAO,2BACZP,KAAKorD,MAAMv6B,mBAAmB,MAAOvnB,GAAKtJ,KAAK8wD,wBAAwBxnD,IACvEtJ,KAAKorD,MAAMv6B,mBAAmB,SAAUvnB,GAAKtJ,KAAK+wD,wBAAwBznD,MAGlF0nD,kBAAmB,WACf,MAAO,eAAiBhxD,KAAKO,OAAO,mBAExC0wD,YAAa,WACT,IAAItwB,EAAgB3gC,KAAKO,OAAO,yBAA2B,MAAQ,WACnE,OAAO,eAAOP,KAAKuT,WAAY,CAC3BotB,cAAeA,EACf6b,cAAex8C,KAAKO,OAAO,iBAC3By7C,wBAAyB7e,IACrB,IACI9+B,MAAOA,GACP8+B,EACJn9B,KAAK2wD,4BAA4B,CAC7BtyD,MAAOA,KAGfk+C,cAAev8C,KAAKO,OAAO,iBAC3Bk8C,cAAez8C,KAAK2tD,eACpBjtB,qBAAsB,QAG9B0vB,mBAAoB,WAChB,IAAIpkD,EAAI,IAAI,OAOZ,OANAhM,KAAKwsD,qBAAqBxsD,KAAKkxD,4BAC/BlxD,KAAKmxD,mBACLnxD,KAAKoxD,cAAczmC,KAAK,KACpB3qB,KAAKuuB,QAAUvuB,KAAKuuB,OAAO8iC,kBAC3BrlD,EAAEqpC,YACHic,KAAKtlD,EAAEspC,QACHtpC,EAAE6d,WAEb4W,sBAAuB,SAASn3B,IAC3BtJ,KAAKO,OAAO,0BAA4BP,KAAKswD,kBAC1C,eAAiBtwD,KAAKO,OAAO,oBAGjCP,KAAKuT,SAASjK,GACdtJ,KAAK0hB,2BAAsB,KAE/B6vC,mBAAoB,WAChB,IAAIC,EAAoBxxD,KAAKuT,WACzBupC,EAAwB98C,KAAKO,OAAO,yBACxC,OAAQu8C,GAAyB0U,GAErCL,iBAAkB,WACd,IAAI/gD,EAASpQ,KAAKm6B,SACd97B,EAAQ+R,EAAOE,MACfmhD,EAAe,eAASpzD,IAAUA,EAClC+D,EAAQ,GACRqB,EAAO,GACPiuD,EAAc1xD,KAAKO,OAAO,kBAAoBP,KAAKO,OAAO,qBAC9D,GAAIkxD,GAAgBC,EAAa,CAC7B,IAAIC,EAAsB,eAA4BvhD,EAAQ/R,EAAO,CACjEuzD,iBAAiB,IAErBD,EAAoBE,YAAYzhD,GAChChO,EAAQ,eAAcuvD,GAAuB,EAC7CA,EAAoBtnC,cACZhsB,IACRoF,EAAO,GAEX2M,EAAOxP,IAAI,QAASwB,GACpBgO,EAAOC,KAAK,OAAQ5M,IAExBquD,yBAA0B,WACtB9xD,KAAKuT,WACLvT,KAAK+xD,uBAETz2B,UAAW,WACP,OAAOt7B,KAAKO,OAAO,UAAY,IAEnCyxD,kBAAmB,WACf,IAAIC,EAASjyD,KAAKs7B,YACduf,EAAmB76C,KAAKO,OAAO,oBACnC,OAAO,eAAUs6C,IAAqBoX,EAAOzuD,OAASq3C,GAE1DqX,gBAAiB,SAAS9hD,GACtB,IAAI+hD,EAAO,eAAE,SAAS3tD,SAAS6lD,GAAkB7lD,SAAS8lD,GACtDpiD,EAAO,CACPkqD,gBAAiB,eAAiBD,GAClC1V,cAAez8C,KAAKO,OAAO,kBAG/B,OADAP,KAAK8tD,yBAAyB5lD,IAC1BA,EAAKmqD,SAGTF,EAAKzwD,KAAKwoD,EAAqBhiD,EAAKqF,MACpC4kD,EAAKG,aAAaliD,GAClBpQ,KAAKmvD,aAAa72C,OAAO,CACrBS,MAAO7Q,EAAKqF,KACZ9D,UAAW,eAAiB0oD,KAEzBA,IAEXI,WAAY,SAASC,GACjB,IAAIC,EAAmBzyD,KAAK0yD,YAAYC,SACpCC,EAAaJ,EAAQK,kBAAkB7yD,KAAKO,OAAO,aAAckyD,GACjEK,EAAoBC,UAAUC,KAAKC,UAAUL,IAAapvD,OAC1Ds3C,EAAuB96C,KAAKO,OAAO,wBACvC,GAAIuyD,GAAqBhY,EACrB,OAAO8X,EAEX,OAAOM,IAAI,QAASpY,IAExBqY,kBAAmB,SAASlB,GACxB,IAAImB,EAAuBC,EAAaC,EACxC,QAAUF,EAAwBpzD,KAAKuzD,iCAA8B,IAAWH,GAAiCA,EAAsB9d,SACvI,IAAIkd,EAAU,IAAI,OAAcP,GAC5BuB,EAAoB,QAAUH,EAAcrzD,KAAKorD,aAAU,IAAWiI,OAAc,EAASA,EAAY9yD,OAAO,iBAChHkzD,IAAsBD,IAAsB,QAAUF,EAAwBtzD,KAAKorD,MAAMsI,uBAAoB,IAAWJ,OAAwB,EAASA,EAAsBK,YAC/KlX,EAAgB+W,GAAqBxzD,KAAKO,OAAO,iBACjDqzD,EAAuBpB,EAAQqB,eAAe7zD,KAAK8zD,cACnDC,EAAgBtX,EAAckW,OAAOiB,GACrCI,EAA6BD,EAAcvwD,SAAWyuD,EAAOzuD,OAC7DwI,EAAI,IAAI,OACR8tC,EAAa95C,KAAK0yD,YACtB,GAAK5Y,EAEE,IAAM95C,KAAKi0D,uBAAwBR,IAAsBO,EAEzD,CACH,IACIE,kBAAmBA,EACnBC,OAAQA,EACRC,OAAQA,GACRta,EAAWua,cACX1B,EAAS3yD,KAAKuyD,WAAWC,GAmB7B,OAlBA1Y,EAAWwa,QAAQC,KAAK,CACpB5B,OAAQA,EACRuB,kBAAmBA,EACnBC,OAAQA,EACRC,OAAQA,IACTzpC,KAAK,CAACjpB,EAAM8yD,KAEX,GADAx0D,KAAKi0D,sBAAuB,EACxBj0D,KAAK0wC,UACL1kC,EAAEspC,aADN,CAIA,IACI5zC,KAAMwF,GACN,eAAoBxF,EAAM8yD,GAC1BC,EAAc3a,EAAW4a,kBAAkBxtD,GAC/C8E,EAAEqpC,QAAQof,EAAY9B,OAAOiB,OAC9BtC,KAAKtlD,EAAEspC,QACVt1C,KAAKuzD,0BAA4BvnD,EAC1BA,EAAE6d,UA1BT,OAAO7d,EAAEqpC,QAAQ0e,GAAelqC,UAFhC,OAAO7d,EAAEqpC,QAAQ,IAAIxrB,WA+B7B8qC,gBAAiB,SAAS1C,EAAQ8B,GAC9B,IAAI7sD,EAAQ,GACR0tD,EAAQ,GACRC,EAAuB,SAAW70D,KAAK80D,mBACvCC,EAAiB,GACrBhB,EAAc9gC,QAAQ+hC,IAClB,IAAIC,EAAoBJ,EAAuB7B,KAAKC,UAAU+B,GAAgBh1D,KAAK8zD,aAAakB,GAChGD,EAAeE,GAAqBD,IAExC,IAAIE,EAAmB,GACvBjD,EAAOh/B,QAAQ,CAAC50B,EAAO4P,KACnB,IAAIknD,EAAcJ,EAAeF,EAAuB7B,KAAKC,UAAU50D,GAASA,GAChF,GAAIw2D,IAAyB,eAAUM,GACnCD,EAAiBvuD,KAAK3G,KAAKo1D,UAAU/2D,EAAOu2D,GAAOS,OAAO5zD,IACtD,IAAI6zD,EAAUt1D,KAAKu1D,eAAeruD,EAAOzF,EAAMpD,EAAO4P,GACtD/G,EAAMsuD,OAAOvnD,EAAO,EAAGqnD,UAExB,CACH,IAAIA,EAAUt1D,KAAKu1D,eAAeruD,EAAOiuD,EAAa92D,EAAO4P,GAC7D/G,EAAMsuD,OAAOvnD,EAAO,EAAGqnD,MAG/B,IAAItpD,EAAI,IAAI,OAIZ,OAHA,OAAKjD,MAAM/I,KAAMk1D,GAAkBG,QAAO,WACtCrpD,EAAEqpC,QAAQnuC,MAEP8E,EAAE6d,WAEb0rC,eAAgB,SAASruD,EAAOzF,EAAMpD,EAAOo3D,GACzC,GAAI,eAAUh0D,GAEV,OADAzB,KAAK2tD,eAAehnD,KAAKlF,GAClBA,EAEP,IAAIi0D,EAAe11D,KAAKO,OAAO,gBAC3Bo1D,EAAa31D,KAAK8zD,aAAa4B,KAAkBr3D,EAAQq3D,EAAer3D,EAC5E,OAAOs3D,GAGfC,eAAgB,WACZ,IAAIC,EACJ,OAAO71D,KAAKO,OAAO,cAAgB,QAAUs1D,EAAoB71D,KAAK0yD,mBAAgB,IAAWmD,GAAqBA,EAAkBC,UAE5IC,kBAAmB,SAAS9D,GACxB,IAAI+D,EAAc,GAOlB,OANA/D,EAAOh/B,QAAQ,SAAS50B,GACpB,IAAIoD,EAAOzB,KAAKi2D,kBAAkB53D,GAC9B,eAAUoD,IACVu0D,EAAYrvD,KAAKlF,IAEvBqB,KAAK9C,OACAg2D,GAEXE,yBAA0B,SAASjE,GAC/B,IAAIxV,EAAgB,IAAI,OACxB,OAAKz8C,KAAK0yD,aAGN1yD,KAAKm2D,kCACLn2D,KAAK0yD,YAAYL,OAAOryD,KAAKm2D,iCAAiCC,aAE7Dp2D,KAAK0yD,YAAYxrD,QAAQ1D,OAS1Bi5C,EAAcpH,QAAQr1C,KAAK+1D,kBAAkB9D,IAR7CjyD,KAAKm2D,iCAAmCn2D,KAAK0yD,YAAY6B,OAAO5pC,KAAK,KACjE8xB,EAAcpH,QAAQr1C,KAAK+1D,kBAAkB9D,MAC9CX,KAAK,KACJ7U,EAAcpH,QAAQ,MACvBggB,OAAO,KACNr1D,KAAKm2D,sCAAmC,IAKzC1Z,EAAc5yB,WAhBV4yB,EAAc5yB,WAkB7BwsC,cAAe,WACX,IAAIpE,EAASjyD,KAAKs7B,YACdg7B,EAAU,IAAI,OAClBt2D,KAAK2tD,eAAiB,GACtB,IAAI4I,EAAuBv2D,KAAK41D,iBAAmB51D,KAAKk2D,yBAAyBjE,GAAUjyD,KAAKmzD,kBAAkBlB,GAOlH,OANAsE,EAAqB5rC,KAAKopC,IACtB,IAAI7sD,EAAQlH,KAAK20D,gBAAgB1C,EAAQ8B,GACzC7sD,EAAMmuD,QAAO,SAAU3zD,GACnB40D,EAAQjhB,QAAQ3zC,QAErB4vD,KAAKgF,EAAQhhB,OAAOxyC,KAAK9C,OACrBs2D,EAAQzsC,WAEnBunC,YAAa,WACT,IAAIplD,EAAI,IAAI,OACRwqD,GAAkB,EAmBtB,OAlBIx2D,KAAKy2D,yBAAyBz2D,KAAK02D,mBACnC12D,KAAK2tD,eAAiB3tD,KAAK22D,mBAAmB32D,KAAK02D,iBAC/C12D,KAAK2tD,eAAenqD,SAAWxD,KAAK02D,gBAAgBlzD,SACpDxD,KAAK42D,gBAAgB52D,KAAK2tD,gBAC1B6I,GAAkB,EAClBxqD,EAAEqpC,YAGLmhB,GACDx2D,KAAKq2D,gBAAgB1rC,KAAKzjB,IAClBlH,KAAK0wC,UACL1kC,EAAEspC,UAGNt1C,KAAK42D,gBAAgB1vD,GACrB8E,EAAEqpC,aACHic,KAAKtlD,EAAEspC,QAEPtpC,EAAE6d,WAEb+sC,gBAAiB,SAAS1vD,GACtBlH,KAAK62D,gBAAgB3vD,GACrBlH,KAAK82D,oBACA92D,KAAK4rD,qBACN5rD,KAAKgtD,kBAGbyJ,yBAA0B,SAASxE,GAC/B,OAAOA,GAAUjyD,KAAK0yD,YAAYiB,YAAc1B,EAAOzuD,QAAUxD,KAAK+2D,iBAAiBvzD,QAE3FmzD,mBAAoB,SAAS1E,GACzB,IAAIxV,EAAgBz8C,KAAKg3D,0BAA0B/E,GAC/CgF,EAAuB,IAAMxa,EAAcj5C,QAAUyuD,EAAOzuD,OAAS,GAAKi5C,EAAcj5C,OAASyuD,EAAOzuD,OAC5G,GAAIyzD,EAAsB,CACtB,IAAIC,EAAal3D,KAAK+2D,iBACtBta,EAAgBz8C,KAAKm3D,qBAAqBD,EAAYjF,GAE1D,OAAOxV,GAEXua,0BAA2B,SAAS/E,GAChC,IAAImF,EACA5D,EAAoB,QAAU4D,EAAep3D,KAAKorD,aAAU,IAAWgM,OAAe,EAASA,EAAa72D,OAAO,iBACnHk8C,EAAgB,GAIpB,OAHIwV,EAAOzuD,UAAY,OAASgwD,QAAqB,IAAWA,OAAoB,EAASA,EAAkBhwD,UAC3Gi5C,EAAgBz8C,KAAKm3D,qBAAqB3D,EAAmBvB,IAE1DxV,GAEX0a,qBAAsB,SAASD,EAAYjF,GACvC,IAAIxV,EAAgBya,EAAWvE,OAAO0E,IAElC,IADA,IAAI/vC,EACKzZ,EAAI,EAAGA,EAAIokD,EAAOzuD,OAAQqK,IAE/B,GADAyZ,EAAe2qC,EAAOpkD,GAClB,eAASyZ,IACT,GAAItnB,KAAKs3D,eAAeD,EAAU/vC,GAC9B,OAAO,OAER,GAAItnB,KAAKs3D,eAAet3D,KAAK8zD,aAAauD,GAAW/vC,GACxD,OAAO,EAGf,OAAO,GACRtnB,MACH,OAAOy8C,GAEX8a,gBAAiB,WACbv3D,KAAKuT,WACLvT,KAAKwsD,qBAAqB,eAAE,IAAIlmD,OAAO0kD,KACvChrD,KAAKivD,0BAET4H,gBAAiB,SAAS3vD,GACtBlH,KAAK47B,eACL57B,KAAKO,OAAO,gBAAiBP,KAAK2tD,eAAe6J,SACjDx3D,KAAKy3D,aACL,IAAIC,EAAY13D,KAAKgyD,qBAAuBhyD,KAAKkyD,gBAAgBlyD,KAAKm6B,UAClE0iB,EAAmB78C,KAAKO,OAAO,oBAC/Bs6C,EAAmB76C,KAAKO,OAAO,oBACnC2G,EAAM+rB,QAAQ,CAACxxB,EAAMwM,KACjB,GAAIypD,GAAa7a,GAAoB6a,IAAc7a,GAAoB5uC,EAAQ4sC,IAAqB,EAChG,OAAO,EAEX76C,KAAK23D,WAAWl2D,EAAMi2D,GAAa13D,KAAKm6B,YAExCn6B,KAAK43D,cACL53D,KAAKssD,iBAAiB,OAE1BtsD,KAAK63D,uBAETJ,WAAY,WACR,GAAIz3D,KAAKgyD,oBACLhyD,KAAK0rD,eAAerhC,aACjB,CACH,IAAIytC,EAAQ93D,KAAK0rD,eACbuG,EAASjyD,KAAKs7B,YAClB,eAAKw8B,GAAO,SAAU51D,EAAGmsD,GACrB,IAAI8D,EAAO,eAAE9D,GACTpgD,EAAQ,eAAQkkD,EAAKzwD,KAAKwoD,GAAsB+H,GAChDhkD,EAAQ,GACRkkD,EAAK9nC,cAKrBysC,kBAAmB,WACf,IAAIiB,IAAY/3D,KAAKs7B,YAAY93B,QAAUxD,KAAK2tD,eAAenqD,QAAUxD,KAAK2uC,gBAC9E3uC,KAAKg4D,iBAAiBD,GACtB/3D,KAAK+pC,sBAETA,mBAAoB,WAChB/pC,KAAKmxD,oBAET0G,oBAAqB,WACjB73D,KAAK8uD,kBAAoB9uD,KAAKM,WAAWkF,KAAK,IAAIc,OAAO+jD,KAE7DqB,aAAc,WACV,OAAO1rD,KAAK8uD,mBAEhBmJ,kBAAmB,SAASx2D,EAAM0wD,GAC9BnyD,KAAKmvD,aAAa72C,OAAO,CACrBS,MAAOtX,EACPgI,UAAW,eAAiB0oD,MAGpCwF,WAAY,SAASl2D,EAAM2O,GACvB,IAAI/R,EAAQ2B,KAAK8zD,aAAaryD,GAC9B,GAAK,eAAUpD,GAAf,CAGA,IAAI8zD,EAAOnyD,KAAKk4D,QAAQ75D,GACpB85D,EAAen4D,KAAKwuD,eAAe/sD,GACnC22D,EAAYp4D,KAAKq4D,cAAc52D,EAAM02D,GACrChG,GACI,eAAUgG,KACVhG,EAAKjjC,QACLlvB,KAAKi4D,kBAAkBG,EAAWjG,IAEtCA,EAAKpuD,YAAYwmD,KAEjB4H,EAAOnyD,KAAKs4D,WAAWj6D,EAAO+R,GAC1B,eAAU3O,GACVzB,KAAKi4D,kBAAkBG,EAAWjG,IAElCA,EAAK3tD,SAAS+lD,GACdvqD,KAAKi4D,kBAAkB55D,EAAO8zD,OAI1CkG,cAAe,SAAS52D,EAAM02D,GAC1B,OAAI,eAAS12D,IAAS,eAAU02D,GACrB12D,EAEA,eAAc02D,EAAc,KAG3CD,QAAS,SAAS75D,GAId,IAHA,IAAIy5D,EAAQ93D,KAAK0rD,eACb6M,EAAaT,EAAMt0D,OACnByB,GAAS,EACJ4I,EAAI,EAAGA,EAAI0qD,EAAY1qD,IAAK,CACjC,IAAIskD,EAAO2F,EAAMjqD,GACbyoD,EAAU,eAAYnE,EAAMjI,GAChC,GAAI7rD,IAAUi4D,GAAW,eAAaj4D,EAAOi4D,GAAU,CACnDrxD,EAAS,eAAEktD,GACX,OAGR,OAAOltD,GAEXqzD,WAAY,SAASj6D,EAAO+R,GACxB,OAAO,eAAE,SAAS5L,SAAS6lD,GAAkB3oD,KAAKwoD,EAAqB7rD,GAAOi0D,aAAaliD,IAE/FmgD,6BAA8B,WAC1BvwD,KAAKg4D,kBAAkBh4D,KAAKs7B,YAAY93B,SAAWxD,KAAK2uC,eAAenrC,SAE3EwoD,wBAAyB,SAAS1iD,GAC9BtJ,KAAKuT,SAASjK,GACdtJ,KAAKswD,mBAETf,kBAAmB,SAASrnD,GACxB,IAAIoB,EAAIpB,EAAK+L,MACb3K,EAAEijD,kBACFvsD,KAAK0hB,sBAAsBpY,GAC3B,IAAI6oD,EAAO,eAAE7oD,EAAEkB,QAAQ9E,QAAQ,IAAIY,OAAO+jD,IAC1CrqD,KAAK6rD,kBAAkBsG,IAE3BtG,kBAAmB,SAASsG,GACxB,GAAIA,EAAKh5C,SAASmxC,GACTtqD,KAAKO,OAAO,oBAGbP,KAAKwqC,QAFLxqC,KAAKO,OAAO,QAASP,KAAKs7B,YAAYk8B,MAAM,EAAGx3D,KAAKO,OAAO,0BAFnE,CAQA,IAAIi4D,EAAYrG,EAAKzwD,KAAKwoD,GAC1BlqD,KAAKy4D,qBAAqBD,GAC1Bx4D,KAAK63D,wBAETx5B,aAAc,OACdo6B,qBAAsB,SAASD,GAC3B,IAAIn6D,EAAQ2B,KAAKs7B,YAAYk8B,QAC7Bx3D,KAAK04D,WAAWr6D,EAAOm6D,GACvBx4D,KAAKO,OAAO,QAASlC,GACjB,IAAMA,EAAMmF,QACZxD,KAAKgtD,kBAGb2L,iBAAkB,WACd,OAAO34D,KAAK44D,cAEhBC,wBAAyB,SAASvvD,GAC9B,GAAI,eAAiBtJ,KAAKO,OAAO,kBAAjC,CAGA,IAAIlC,EAAQ2B,KAAKs7B,YAAYk8B,QAQ7B,GAPA,eAAKluD,EAAEwvD,cAAgB,GAAI,CAAC52D,EAAG62D,KAC3B/4D,KAAK04D,WAAWr6D,EAAO2B,KAAK8zD,aAAaiF,MAE7C,eAAKzvD,EAAE0vD,YAAc,GAAI,CAAC92D,EAAG+2D,KACzBj5D,KAAKk5D,QAAQ76D,EAAO2B,KAAK8zD,aAAamF,MAE1Cj5D,KAAK+xD,uBACA,eAAa/xD,KAAKorD,MAAM7qD,OAAO,oBAAqBP,KAAKO,OAAO,UAAW,CAC5E,IAAI44D,EAA2Bn5D,KAAKorD,MAAMgO,2BAC1CD,GAA4Bn5D,KAAK0hB,sBAAsBy3C,GACvDn5D,KAAKO,OAAO,QAASlC,GAEzB2B,KAAKorD,MAAMiO,+BAA0B,KAEzCX,WAAY,SAASr6D,EAAOoD,GACxB,IAAIwM,EAAQjO,KAAKs5D,YAAY73D,EAAMpD,GAC/B4P,GAAS,GACT5P,EAAMm3D,OAAOvnD,EAAO,IAG5BirD,QAAS,SAAS76D,EAAOoD,GACrB,IAAIwM,EAAQjO,KAAKs5D,YAAY73D,GACzBwM,EAAQ,GACR5P,EAAMsI,KAAKlF,IAGnB83D,iBAAkB,WACd,OAAOv5D,KAAK2tD,eAAe6J,SAE/BgC,mBAAoB,SAASn7D,GACpB2B,KAAKO,OAAO,0BACbP,KAAKy5D,UAAUp7D,IAGvBo7D,UAAW,SAASp7D,GAChB,GAAI,OAASA,EAAb,CAGA,IAAIq7D,EAAa,eAAiB15D,KAAKO,OAAO,kBAC1Ck1D,EAAaz1D,KAAKs5D,YAAYj7D,GAC9B4zD,GAAUyH,EAAa15D,KAAKorD,MAAM7qD,OAAO,oBAAsBP,KAAKs7B,aAAak8B,QACjF/B,GAAc,EACdxD,EAAOuD,OAAOC,EAAY,GAE1BxD,EAAOtrD,KAAKtI,GAEZ,eAAiB2B,KAAKO,OAAO,kBAC7BP,KAAKorD,MAAM7qD,OAAO,mBAAoB0xD,GAEtCjyD,KAAKO,OAAO,QAAS0xD,KAG7B0H,iBAAkB,SAASt7D,EAAOu2D,GAC9B,OAAO50D,KAAKs5D,YAAYj7D,EAAO,KAAMu2D,IAAU,GAEnD0E,YAAa,SAASj7D,EAAO4zD,EAAQ2C,GACjC,IAAI3vD,GAAU,EACd,OAAI2vD,GAAS,kBAAoBv2D,IACxBu2D,EAAMgF,gBACPhF,EAAMgF,cAAgB,GACtB3H,EAASA,GAAUjyD,KAAKs7B,YACxB22B,EAAOh/B,SAAQ,SAAU50B,EAAO4P,GAC5B2mD,EAAMgF,cAAcv7D,GAAS4P,MAGjC5P,KAASu2D,EAAMgF,eACRhF,EAAMgF,cAAcv7D,IAGnC4zD,EAASA,GAAUjyD,KAAKs7B,YACxB,eAAK22B,EAAQ,CAAChkD,EAAO4rD,KACjB,GAAI75D,KAAKs3D,eAAej5D,EAAOw7D,GAE3B,OADA50D,EAASgJ,GACF,IAGRhJ,IAEX2zD,WAAY,WACR,IAAI3G,EAASjyD,KAAKs7B,YACdw+B,EAAY7H,EAAOA,EAAOzuD,OAAS,GACvC,OAAO,OAASs2D,QAAa,IAAWA,EAAYA,EAAY,MAEpEhqC,yBAA0B,OAC1Bq8B,yBAA0B,WACtB,OAAOnsD,KAAKO,OAAO,kBAAoBP,KAAKO,OAAO,sBAEvDw5D,eAAgB,SAASzwD,GACjBtJ,KAAKO,OAAO,kBAAsB+I,IAAMtJ,KAAKurD,gBAC7CvrD,KAAKuT,SAASxO,WACd/E,KAAK6wD,4BAET7wD,KAAK+xD,6BACE/xD,KAAKurD,eAEhBwG,oBAAqB,WACjB,IAAI5zD,EAAU6B,KAAKM,WACf05D,EAAiB,eAAU77D,GAC/B6B,KAAKmxD,mBACL,IAAI8I,EAAgB,eAAU97D,GAC1B6B,KAAKuuB,QAAUvuB,KAAKO,OAAO,WAAaP,KAAKqsD,eAAiB4N,IAAkBD,GAChFh6D,KAAKuuB,OAAOR,WAGpBmsC,iBAAkB,WACd,IAAIC,GACH,QAAUA,EAAen6D,KAAKorD,aAAU,IAAW+O,OAAe,EAASA,EAAazG,kBAAoB1zD,KAAKorD,MAAM7qD,OAAO,gBAAiBP,KAAK2tD,iBAEzJyM,2BAA4B,WACxB,IAAItgB,EAAa95C,KAAKq6D,iBACjBvgB,WAGE95C,KAAKs6D,YACZxgB,EAAW6Y,OAAO,MAClB7Y,EAAWygB,WAEf1J,yBAA0B,WACtB,GAAK7wD,KAAKO,OAAO,sBAAyBP,KAAKorD,MAA/C,CAGA,IAAItR,EAAa95C,KAAKq6D,iBACtB,GAAKvgB,EAAL,CAGA,IAAI0gB,EAAkBx6D,KAAK80D,mBAC3B,GAAI,eAAS0F,IAAoB,SAAWA,EAAiB,CACzD,IAAI7H,EAAS3yD,KAAKy6D,6BACd,IAAWz6D,KAAKs6D,cAChBt6D,KAAKs6D,YAAcxgB,EAAW6Y,UAAY,MAE9C3yD,KAAKs6D,aAAe3H,EAAOhsD,KAAK3G,KAAKs6D,aACrC3H,EAAOnvD,OAASs2C,EAAW6Y,OAAOA,GAAU7Y,EAAW6Y,OAAO,WAE9D7Y,EAAW6Y,OAAO3yD,KAAK06D,0BAA0B53D,KAAK9C,OAE1D85C,EAAWya,UAEfkG,sBAAuB,WACnB,IAAI9H,EAAS,GAIb,OAHA,eAAK3yD,KAAKs7B,YAAa,CAACrtB,EAAO5P,KAC3Bs0D,EAAOhsD,KAAK,CAAC,IAAK,CAAC3G,KAAK80D,mBAAoBz2D,OAEzCs0D,GAEX+H,0BAA2B,SAAS12D,GAChC,IAAIw0D,EAAYx4D,KAAK8zD,aAAa9vD,GAC9BiB,GAAS,EAOb,OANA,eAAKjF,KAAKs7B,YAAa,CAACrtB,EAAO5P,KAC3B,GAAI2B,KAAKs3D,eAAej5D,EAAOm6D,GAE3B,OADAvzD,GAAS,GACF,IAGRA,GAEX01D,0BAA2B,WACvB36D,KAAKi0D,sBAAuB,EAC5Bj0D,KAAKuT,SAASxK,MAAM/I,KAAM+E,YAE9B+kC,oBAAqB,SAAS5hC,GAC1BlI,KAAK0hB,sBAAsBxZ,EAAK+L,OAChCjU,KAAKO,OAAO,QAASP,KAAK46D,wBAC1B56D,KAAKswD,kBACLtwD,KAAKuT,WACLvT,KAAK66D,uBAETD,qBAAsB,WAClB,IAAIE,EAAa96D,KAAK+6D,iBAClBzzC,EAAetnB,KAAKO,OAAO,UAAY,GACvCy6D,EAAeF,EAAWt3D,OAAS8jB,EAAaqrC,OAAOlxD,IAAS,IAAMq5D,EAAWp8D,QAAQ+C,IAAS,GAClGw5D,EAAWD,EAAax3D,OAASs3D,EAAWnI,OAAOlxD,IAAS,IAAM6lB,EAAa5oB,QAAQ+C,IAASq5D,EACpG,OAAOE,EAAa10D,OAAO20D,IAE/BF,eAAgB,WACZ,IAAK/6D,KAAKorD,MACN,MAAO,GAEX,IAAI3O,EAAgBz8C,KAAK+2D,eAAe/2D,KAAKorD,MAAM7qD,OAAO,kBACtD0E,EAAS,GAIb,OAHA,eAAKw3C,EAAe,CAACxuC,EAAOxM,KACxBwD,EAAOgJ,GAASjO,KAAK8zD,aAAaryD,KAE/BwD,GAEXi2D,mBAAoB,WAChB,IAAI5zC,EAAetnB,KAAKs7B,YACxBt7B,KAAKuT,WACD+T,IAAiBtnB,KAAKO,OAAO,UAC7BP,KAAKO,OAAO,QAAS+mB,GAEzBtnB,KAAKk6D,oBAETxwB,mBAAoB,WAChB1pC,KAAKuT,WACD,eAAiBvT,KAAKO,OAAO,mBAAsBP,KAAKO,OAAO,WAC/DP,KAAKk6D,oBAGb1vB,MAAO,WACHxqC,KAAKywD,oBACL,IAAI0K,EAAen7D,KAAK6F,qBAAqBxH,MACzCipB,EAAetnB,KAAKO,OAAO,SAC3B46D,GAAgB,IAAMA,EAAa33D,QAAU8jB,GAAgB6zC,EAAa33D,SAAW8jB,EAAa9jB,QAGtGxD,KAAKuT,YAET4X,OAAQ,WACJnrB,KAAKuT,kBACEvT,KAAKo7D,2BACLp7D,KAAK02D,uBACL12D,KAAKmvD,cAEhBkM,kBAAmB,SAASvxC,EAAMwxC,GAC9B,IAAIr2D,EAAS,GAOb,OANA,eAAK6kB,EAAM,CAAC5nB,EAAG7D,KACX,IAAI01D,EAAgBuH,EAAK3I,OAAOlxD,GAAQzB,KAAK8zD,aAAaz1D,KAAW2B,KAAK8zD,aAAaryD,IAClFsyD,EAAcvwD,QACfyB,EAAO0B,KAAKtI,KAGb4G,GAEXkE,eAAgB,SAASjB,GACrB,OAAQA,EAAKjJ,MACT,IAAK,0BACDe,KAAK4tD,mCACL,MACJ,IAAK,sBACD5tD,KAAK6tD,+BACL7tD,KAAKoxD,cACL,MACJ,IAAK,oBACGlpD,EAAK7J,MACL2B,KAAK6wD,2BAEL7wD,KAAKo6D,6BAET,MACJ,IAAK,oBACDp6D,KAAKyuD,qBAAqBvmD,EAAK7J,OAC/B,MACJ,IAAK,cACD2B,KAAKuT,SAASrL,GACdlI,KAAK0jB,iBACL1jB,KAAKkJ,cACL,MACJ,IAAK,cACDlJ,KAAKgvD,mBACLhvD,KAAKkJ,cACL,MACJ,IAAK,gBACDlJ,KAAKu7D,eAAe,gBAAiBv7D,KAAKO,OAAO,kBACjD,MACJ,IAAK,WACL,IAAK,WACDP,KAAKuT,SAASrL,IACbA,EAAK7J,OAAS2B,KAAKw7D,iBACpB,MACJ,IAAK,QACDx7D,KAAK02D,gBAAkB,OAASxuD,QAAQ,IAAWA,OAAO,EAASA,EAAK7J,MACxE2B,KAAKuT,SAASrL,GACdlI,KAAK02D,qBAAkB,EACvB12D,KAAK6wD,2BACL,MACJ,IAAK,mBACL,IAAK,mBACD7wD,KAAKoxD,cACL,MACJ,IAAK,gBACDpxD,KAAKu7D,eAAerzD,EAAKjJ,KAAMiJ,EAAK7J,OACpC,MACJ,IAAK,eACD,MACJ,IAAK,gBACD2B,KAAKy7D,wBAAwB,CACzBzC,WAAYh5D,KAAKq7D,kBAAkBnzD,EAAK7J,MAAO6J,EAAKyjB,eACpDmtC,aAAc94D,KAAKq7D,kBAAkBnzD,EAAKyjB,cAAezjB,EAAK7J,SAElE,MACJ,IAAK,YACD2B,KAAKM,WAAWsU,YAAY81C,GAA2BxiD,EAAK7J,OAC5D2B,KAAKkvD,0BACL,MACJ,IAAK,uBACD,MACJ,QACIlvD,KAAKuT,SAASrL,KAG1BwzD,sBAAuB,WACnB,OAAO17D,KAAKuT,YAAcvT,KAAK2uC,gBAEnCgtB,oBAAqB,WACjB37D,KAAKuT,WACLvT,KAAK47D,kBAGb,eAAkB,WAAY1Q,GACf,gB,yCCnsCf,IAAI5yC,EAAS,WAAa,IAAIujD,EAAI77D,KAAS87D,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,uBAAuB,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,SAAS,MAAQ,qBAAqB,OAASL,EAAIM,kBAAkBt5D,GAAG,CAAC,gBAAgB,SAASu5D,GAAQP,EAAIM,iBAAiBC,KAAU,CAACJ,EAAG,OAAO,CAACH,EAAIQ,GAAG,2CAA2CL,EAAG,SAAS,CAACH,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,OAAOpkD,OAAO29B,eAAe+lB,EAAIQ,GAAG,uBAAuBL,EAAG,OAAO,CAACA,EAAG,OAAO,CAACH,EAAIQ,GAAG,WAAWL,EAAG,cAAc,CAACQ,YAAY,yBAAyBN,MAAM,CAAC,GAAK,CAAEj9D,KAAM,mBAAoB,CAAC48D,EAAIQ,GAAG,oBAAoB,KAAMR,EAAa,UAAEG,EAAG,UAAU,CAACA,EAAG,sBAAsB,CAACS,IAAI,oBAAoB,CAACT,EAAG,MAAM,CAACQ,YAAY,eAAe,CAACR,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAG,iBAAiBR,EAAIS,GAAGT,EAAIa,GAAG,kBAAkB,kBAAkBV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAU19D,MAAM4D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,OAAQP,MAAW,CAACJ,EAAG,cAAc,CAACA,EAAG,iBAAiB,CAACE,MAAM,CAAC,QAAUL,EAAIa,GAAG,6BAA6B,IAAI,IAAI,KAAKV,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAG,iBAAiBR,EAAIS,GAAGT,EAAIa,GAAG,uBAAuB,kBAAkBV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAU9/C,WAAWha,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,YAAaP,QAAa,KAAKJ,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAG,iBAAiBR,EAAIS,GAAGT,EAAIa,GAAG,qBAAqB,kBAAkBV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAU7/C,SAASja,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,UAAWP,QAAa,KAAKJ,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAG,iBAAiBR,EAAIS,GAAGT,EAAIa,GAAG,0BAA0B,kBAAkBV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQL,EAAIgB,cAAc,kBAAiB,EAAK,MAAQhB,EAAIc,UAAUG,eAAe,eAAe,cAAc,aAAa,MAAMj6D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,iBAAkBP,MAAW,CAACJ,EAAG,cAAc,CAACA,EAAG,iBAAiB,CAACE,MAAM,CAAC,QAAUL,EAAIa,GAAG,qCAAqC,IAAI,IAAI,KAAuC,IAAjCb,EAAIc,UAAUG,eAAsBd,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAG,iBAAiBR,EAAIS,GAAGT,EAAIa,GAAG,qBAAqB,kBAAkBV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQL,EAAIkB,SAAS,kBAAiB,EAAK,MAAQlB,EAAIc,UAAUK,uBAAuB,eAAe,OAAO,aAAa,MAAMn6D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,yBAA0BP,QAAa,KAAKP,EAAIoB,KAAuC,IAAjCpB,EAAIc,UAAUG,eAAsBd,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAG,iBAAiBR,EAAIS,GAAGT,EAAIa,GAAG,yBAAyB,kBAAkBV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQL,EAAIqB,aAAa,kBAAiB,EAAK,MAAQrB,EAAIc,UAAUK,uBAAuB,eAAe,OAAO,aAAa,MAAMn6D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,yBAA0BP,QAAa,KAAKP,EAAIoB,KAAKjB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACX,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIa,GAAG,0BAA0BV,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,WAAW,CAACE,MAAM,CAAC,cAAcL,EAAIsB,iBAAiB,eAAe,OAAO,aAAa,KAAK,kBAAiB,EAAK,MAAQtB,EAAIc,UAAUS,mBAAmB,2BAA0B,EAAK,mBAAmB,cAAcv6D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,qBAAsBP,QAAa,KAAMP,EAAIwB,KAAKC,MAAM,SAAUtB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,mBAAmBR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAUY,UAAU,KAAO1B,EAAIa,GAAG,uBAAuB75D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,YAAaP,QAAa,KAAKP,EAAIoB,KAAKjB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,mBAAmBR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAUa,SAAS,KAAO3B,EAAIa,GAAG,sBAAsB75D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,WAAYP,QAAa,KAAMP,EAAIwB,KAAKC,MAAM,SAAUtB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,mBAAmBR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAUc,cAAc,KAAO5B,EAAIa,GAAG,2BAA2B75D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,gBAAiBP,QAAa,KAAKP,EAAIoB,KAAMpB,EAAIwB,KAAKC,MAAM,SAAUtB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,mBAAmBR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAUe,iBAAiB,KAAO7B,EAAIa,GAAG,8BAA8B75D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,mBAAoBP,QAAa,KAAKP,EAAIoB,KAAMpB,EAAIwB,KAAKC,MAAM,SAAUtB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,mBAAmBR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAUgB,6BAA6B,KAAO9B,EAAIa,GAAG,0CAA0C75D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,+BAAgCP,QAAa,KAAKP,EAAIoB,KAAMpB,EAAIwB,KAAKC,MAAM,SAAUtB,EAAG,MAAM,CAACQ,YAAY,YAAY,CAACR,EAAG,MAAM,CAACQ,YAAY,mBAAmBR,EAAG,MAAM,CAACQ,YAAY,kBAAkB,CAACR,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQL,EAAIc,UAAUiB,2BAA2B,KAAO/B,EAAIa,GAAG,wCAAwC75D,GAAG,CAAC,eAAe,SAASu5D,GAAQ,OAAOP,EAAIe,KAAKf,EAAIc,UAAW,6BAA8BP,QAAa,KAAKP,EAAIoB,UAAU,GAAGpB,EAAIoB,KAAKjB,EAAG,MAAM,CAACQ,YAAY,UAAU,CAACR,EAAG,MAAM,CAACQ,YAAY,iBAAiB,CAACR,EAAG,MAAM,CAACQ,YAAY,gDAAgD,CAACR,EAAG,YAAY,CAACQ,YAAY,eAAe35D,GAAG,CAAC,MAAQg5D,EAAIgC,cAAc,CAAChC,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIa,GAAG,YAAYV,EAAG,YAAY,CAACQ,YAAY,YAAYN,MAAM,CAAC,KAAO,SAAS,MAAQ,WAAWr5D,GAAG,CAAC,MAAQg5D,EAAIxJ,SAAS,CAACwJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIa,GAAG,eAAe,QAAQ,IACr4MoB,EAAkB,G,oyBCyPtB,OACEC,OAAQ,CAACC,EAAX,MACEt8D,KAFF,WAGI,MAAO,CACLi7D,UAAW,GACXR,kBAAkB,EAClBY,SAAU,GACVG,aAAc,GACdC,iBAAkB,KAGtBntD,WAAY,CACViuD,YAAJ,iBACIC,UAAJ,eACIrU,WAAJ,gBACIsU,YAAJ,iBACIC,kBAAJ,IACIC,eAAJ,oBACInc,UAAJ,eACI9I,SAAJ,KAEEkE,SAAU,CACRuf,cADJ,WACA,WACM,OAAO78D,KAAKs+D,OAAOn+D,MAAMo+D,SAAS1B,cAAcltB,KAAI,SAA1D,GACQ,OAAO,EAAf,+EAIE6uB,MAAO,CACL7B,UAAW,CACT8B,MAAM,EACNC,QAFN,SAEA,GACQpuD,EAAImtD,cAAgBz9D,KAAK28D,UAAUG,eAAiB,GAAsC,GAAjC98D,KAAK28D,UAAUG,kBAI9E6B,QAAS,CACPC,UADJ,SACA,cACM5+D,KAAKs+D,OAAOO,SAAS,mCAAoC/oB,GAC/D,kBACQ,EAAR,0BACA,mBAIQ,QAAR,KACA,4CACA,gDACA,sDANU,EAAV,uBASA,mBACA,oCACU,EAAV,oBAGQ,EAAR,mBAGIb,cAvBJ,SAuBA,cACMj1C,KAAKs+D,OAAOO,SAAS,kCAAmCrpB,GAC9D,kBACQ,EAAR,0BAGI+K,kBA7BJ,SA6BA,cACMvgD,KAAKs+D,OAAOO,SAAS,0CAA2CrpB,GACtE,kBACQ,EAAR,8BAGIuN,sBAnCJ,SAmCA,cACM/iD,KAAKs+D,OAAOO,SAAS,kDAAmDrpB,GAC9E,kBACQ,EAAR,kCAGIqoB,YAzCJ,WAyCA,WACA,0CACA,eACW54D,EAAOwjC,SAGZzoC,KAAKs+D,OAAOO,SAAS,kCAAmC7+D,KAAK28D,WACnE,iBACQ,EAAR,+BACQ,EAAR,2CAEA,mBAAQ,QAAR,aAEItK,OAtDJ,WAuDMryD,KAAK8+D,QAAQn4D,KAAK,oBAGtBo4D,QA9FF,WA+FSC,EAAT,oBACMh/D,KAAKs+D,OAAOW,eAAe,qBAAsBD,EAAvD,MACMA,EAAN,sBAESE,EAAT,oBACMl/D,KAAKs+D,OAAOW,eAAe,oBAAqBC,EAAtD,MACMA,EAAN,sBAESC,EAAT,oBACMn/D,KAAKs+D,OAAOW,eAAe,wBAAyBE,EAA1D,MACMA,EAAN,sBAESC,EAAT,oBACMp/D,KAAKs+D,OAAOW,eAAe,4BAA6BG,EAA9D,MACMA,EAAN,sBAGIp/D,KAAK4+D,UAAU5+D,KAAKu8D,OAAOpkD,OAAO29B,cC1W+T,I,YCOjWnvB,EAAY,eACd,EACArO,EACAwlD,GACA,EACA,KACA,KACA,MAIa,aAAAn3C,E","file":"js/chunk-7f173288.dc7b7f96.js","sourcesContent":["/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 registerComponent from \"../core/component_registrator\";\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 hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_SELECTOR = \".dx-box\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar SHRINK = 1;\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n if (!element.attributes.style) {\r\n element.setAttribute(\"style\", styleExpr)\r\n } else if (element.attributes.style.value.indexOf(styleExpr) < 0) {\r\n element.attributes.style.value += \" \" + styleExpr\r\n }\r\n }\r\n};\r\nvar BOX_EVENTNAMESPACE = \"dxBox\";\r\nvar UPDATE_EVENT = \"dxupdate.\" + BOX_EVENTNAMESPACE;\r\nvar FALLBACK_BOX_ITEM = \"dx-box-fallback-item\";\r\nvar FALLBACK_WRAP_MAP = {\r\n row: \"nowrap\",\r\n col: \"normal\"\r\n};\r\nvar FALLBACK_MAIN_SIZE_MAP = {\r\n row: {\r\n name: \"width\",\r\n getter: getWidth,\r\n setter: setWidth\r\n },\r\n col: {\r\n name: \"height\",\r\n getter: getHeight,\r\n setter: setHeight\r\n }\r\n};\r\nvar FALLBACK_CROSS_SIZE_MAP = {\r\n row: FALLBACK_MAIN_SIZE_MAP.col,\r\n col: FALLBACK_MAIN_SIZE_MAP.row\r\n};\r\nvar FALLBACK_PRE_MARGIN_MAP = {\r\n row: \"marginLeft\",\r\n col: \"marginTop\"\r\n};\r\nvar FALLBACK_POST_MARGIN_MAP = {\r\n row: \"marginRight\",\r\n col: \"marginBottom\"\r\n};\r\nvar FALLBACK_CROSS_PRE_MARGIN_MAP = {\r\n row: \"marginTop\",\r\n col: \"marginLeft\"\r\n};\r\nvar FALLBACK_CROSS_POST_MARGIN_MAP = {\r\n row: \"marginBottom\",\r\n col: \"marginRight\"\r\n};\r\nvar MARGINS_RTL_FLIP_MAP = {\r\n marginLeft: \"marginRight\",\r\n marginRight: \"marginLeft\"\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass FlexLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option;\r\n this.initSize = noop;\r\n this.update = noop\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass FallbackLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n fontSize: 0,\r\n whiteSpace: FALLBACK_WRAP_MAP[this._option(\"direction\")],\r\n verticalAlign: \"top\"\r\n });\r\n eventsEngine.off(this._$element, UPDATE_EVENT);\r\n eventsEngine.on(this._$element, UPDATE_EVENT, this.update.bind(this))\r\n }\r\n renderAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var align = this._option(\"align\");\r\n var totalItemSize = this.totalItemSize;\r\n var direction = this._option(\"direction\");\r\n var boxSize = FALLBACK_MAIN_SIZE_MAP[direction].getter(this._$element);\r\n var freeSpace = boxSize - totalItemSize;\r\n var shift = 0;\r\n this._setItemsMargins($items, direction, 0);\r\n switch (align) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n shift = freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"center\":\r\n shift = .5 * freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"space-between\":\r\n shift = .5 * freeSpace / ($items.length - 1);\r\n this._setItemsMargins($items, direction, shift);\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), 0);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), 0);\r\n break;\r\n case \"space-around\":\r\n shift = .5 * freeSpace / $items.length;\r\n this._setItemsMargins($items, direction, shift)\r\n }\r\n }\r\n _setItemsMargins($items, direction, shift) {\r\n $items.css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift).css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift)\r\n }\r\n renderCrossAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var crossAlign = this._option(\"crossAlign\");\r\n var direction = this._option(\"direction\");\r\n var size = FALLBACK_CROSS_SIZE_MAP[direction].getter(this._$element);\r\n var that = this;\r\n switch (crossAlign) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\r\n var shift = size - itemSize;\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"center\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\r\n var shift = .5 * (size - itemSize);\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"stretch\":\r\n $items.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), 0).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), 0).css(FALLBACK_CROSS_SIZE_MAP[direction].name, \"100%\")\r\n }\r\n }\r\n _chooseMarginSide(value) {\r\n if (!this._option(\"rtlEnabled\")) {\r\n return value\r\n }\r\n return MARGINS_RTL_FLIP_MAP[value] || value\r\n }\r\n renderItems($items) {\r\n this._$items = $items;\r\n var direction = this._option(\"direction\");\r\n var totalRatio = 0;\r\n var totalWeightedShrink = 0;\r\n var totalBaseSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n $item.css({\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n });\r\n FALLBACK_MAIN_SIZE_MAP[direction].setter($item, \"auto\");\r\n $item.removeClass(FALLBACK_BOX_ITEM);\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var ratio = itemData.ratio || 0;\r\n var size = this._baseSize($item);\r\n var shrink = isDefined(itemData.shrink) ? itemData.shrink : SHRINK;\r\n totalRatio += ratio;\r\n totalWeightedShrink += shrink * size;\r\n totalBaseSize += size\r\n });\r\n var freeSpaceSize = this._boxSize() - totalBaseSize;\r\n var itemSize = $item => {\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var size = this._baseSize($item);\r\n var factor = freeSpaceSize >= 0 ? itemData.ratio || 0 : (isDefined(itemData.shrink) ? itemData.shrink : SHRINK) * size;\r\n var totalFactor = freeSpaceSize >= 0 ? totalRatio : totalWeightedShrink;\r\n var shift = totalFactor ? Math.round(freeSpaceSize * factor / totalFactor) : 0;\r\n return size + shift\r\n };\r\n var totalItemSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n var size = itemSize($item);\r\n totalItemSize += size;\r\n $item.css(MAXSIZE_MAP[direction], itemData.maxSize || \"none\").css(MINSIZE_MAP[direction], itemData.minSize || \"0\").css(FALLBACK_MAIN_SIZE_MAP[direction].name, size);\r\n $item.addClass(FALLBACK_BOX_ITEM)\r\n });\r\n this.totalItemSize = totalItemSize\r\n }\r\n _baseSize(item) {\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n return null == itemData.baseSize ? 0 : \"auto\" === itemData.baseSize ? this._contentSize(item) : this._parseSize(itemData.baseSize)\r\n }\r\n _contentSize(item) {\r\n return FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter($(item))\r\n }\r\n _parseSize(size) {\r\n return String(size).match(/.+%$/) ? .01 * parseFloat(size) * this._boxSizeValue : size\r\n }\r\n _boxSize(value) {\r\n if (!arguments.length) {\r\n this._boxSizeValue = this._boxSizeValue || this._totalBaseSize();\r\n return this._boxSizeValue\r\n }\r\n this._boxSizeValue = value\r\n }\r\n _totalBaseSize() {\r\n var result = 0;\r\n each(this._$items, (_, item) => {\r\n result += this._baseSize(item)\r\n });\r\n return result\r\n }\r\n initSize() {\r\n this._boxSize(FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter(this._$element))\r\n }\r\n update() {\r\n if (!this._$items || this._$element.is(\":hidden\")) {\r\n return\r\n }\r\n this._$items.detach();\r\n this.initSize();\r\n this._$element.append(this._$items);\r\n this.renderItems(this._$items);\r\n this.renderAlign();\r\n this.renderCrossAlign();\r\n var element = this._$element.get(0);\r\n this._$items.find(BOX_SELECTOR).each((function() {\r\n if (element === $(this).parent().closest(BOX_SELECTOR).get(0)) {\r\n eventsEngine.triggerHandler(this, UPDATE_EVENT)\r\n }\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _layoutStrategy: \"flex\",\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(\"\".concat(BOX_CLASS, \"-\").concat(this.option(\"_layoutStrategy\")));\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = \"fallback\" === this.option(\"_layoutStrategy\") ? new FallbackLayoutStrategy(this.$element(), this.option.bind(this)) : new FlexLayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n this._layout.initSize();\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n _layoutStrategy: this.option(\"_layoutStrategy\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements());\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(() => {\r\n if (!this._isUpdated) {\r\n this._layout.update()\r\n }\r\n this._isUpdated = false;\r\n this._updateTimer = null\r\n })\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n _dimensionChanged() {\r\n if (this._updateTimer) {\r\n return\r\n }\r\n this._isUpdated = true;\r\n this._layout.update()\r\n }\r\n _dispose() {\r\n clearTimeout(this._updateTimer);\r\n super._dispose.apply(this, arguments)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_layoutStrategy\":\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n repaint() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.scroll.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nvar allowScroll = function(container, delta, shiftKey) {\r\n var $container = $(container);\r\n var scrollTopPos = shiftKey ? $container.scrollLeft() : $container.scrollTop();\r\n var prop = shiftKey ? \"Width\" : \"Height\";\r\n var scrollBottomPos = $container.prop(\"scroll\".concat(prop)) - $container.prop(\"client\".concat(prop)) - scrollTopPos;\r\n if (0 === scrollTopPos && 0 === scrollBottomPos) {\r\n return false\r\n }\r\n var isScrollFromTop = 0 === scrollTopPos && delta >= 0;\r\n var isScrollFromBottom = 0 === scrollBottomPos && delta <= 0;\r\n var isScrollFromMiddle = scrollTopPos > 0 && scrollBottomPos > 0;\r\n if (isScrollFromTop || isScrollFromBottom || isScrollFromMiddle) {\r\n return true\r\n }\r\n};\r\nvar prepareScrollData = function(container, validateTarget) {\r\n var $container = $(container);\r\n return {\r\n validate: function(e) {\r\n if (isDxMouseWheelEvent(e) && (eventTarget = e.target, validateTarget ? $(eventTarget).is(container) : true)) {\r\n if (allowScroll($container, -e.delta, e.shiftKey)) {\r\n e._needSkipEvent = true;\r\n return true\r\n }\r\n return false\r\n }\r\n var eventTarget\r\n }\r\n }\r\n};\r\nexport {\r\n allowScroll,\r\n prepareScrollData\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function(i) {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop(i)\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 23\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar Navigator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n text: \"\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n },\r\n _renderButtons: function() {\r\n var that = this;\r\n var direction = this.option(\"rtlEnabled\") ? -1 : 1;\r\n this._prevButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronleft\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: -direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronright\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n that._captionClickAction({\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n },\r\n _renderCaption: function() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n },\r\n toggleButton: function(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"\");\r\n this.setAria({\r\n label: messageLocalization.format(\"dxCalendar-ariaWidgetName\"),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _appendCell: function(row, cell) {\r\n if (!this._appendMethodName) {\r\n this._cacheAppendMethodName()\r\n }\r\n $(row)[this._appendMethodName](cell)\r\n },\r\n _cacheAppendMethodName: function(rtlEnabled) {\r\n this._appendMethodName = (null !== rtlEnabled && void 0 !== rtlEnabled ? rtlEnabled : this.option(\"rtlEnabled\")) ? \"prepend\" : \"append\"\r\n },\r\n _createCell: function(cellDate) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n this._appendCell(row, cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n return {\r\n model: {\r\n text: this._getCellText(cellDate),\r\n date: cellDate,\r\n view: this._getViewName()\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \"td\", e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _changeValue: function(cellDate) {\r\n if (cellDate) {\r\n var value = this.option(\"value\");\r\n var newValue = value ? new Date(value) : new Date;\r\n newValue.setDate(cellDate.getDate());\r\n newValue.setMonth(cellDate.getMonth());\r\n newValue.setFullYear(cellDate.getFullYear());\r\n newValue.setDate(cellDate.getDate());\r\n this.option(\"value\", newValue)\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n var selectedCell = this._getCellByDate(value);\r\n if (this._selectedCell) {\r\n this._selectedCell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n }\r\n selectedCell.addClass(CALENDAR_SELECTED_DATE_CLASS);\r\n this._selectedCell = selectedCell\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getFirstDateView(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"rtlEnabled\":\r\n this._cacheAppendMethodName(value);\r\n this.callBase(args);\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 BaseView from \"./ui.calendar.base_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: void 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"\");\r\n var $header = $(\"\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(this._getFirstDayOfWeek() + cellIndex);\r\n var $cell = $(\"
\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n this._appendCell($headerRow, $cell)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = this._getFirstDayOfWeek() - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getFirstDayOfWeek: function() {\r\n return isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : dateLocalization.firstDayOfWeekIndex()\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n }\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n }\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n }\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\n\r\nfunction elementHasFocus(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n}\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n showTodayButton: false,\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._dateValue(value, e)\r\n }\r\n }\r\n })\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value, optionName) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n return this._convertToDate(this.option(optionName), optionName)\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n this.option(optionName, dateSerialization.serializeDate(optionValue, serializationFormat))\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var currentDate = this._getNormalizedDate(this._dateOption(\"value\")) || this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n this._navigate(offset, normalizedDate)\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"skipFocusCheck\") || elementHasFocus(this._focusTarget())) {\r\n this._view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n $element.append(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._updateAriaSelected();\r\n this._updateAriaId();\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"
\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"
\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var currentDate = this.option(\"currentDate\");\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(1, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var specificView = Views[this.option(\"zoomLevel\")];\r\n var $view = $(\"
\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n return this._createComponent($view, specificView, config)\r\n },\r\n _viewConfig: function(date) {\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n value: this._dateOption(\"value\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._beforeView && move(this._beforeView.$element(), {\r\n left: this._getViewPosition(-1),\r\n top: 0\r\n });\r\n this._afterView && move(this._afterView.$element(), {\r\n left: this._getViewPosition(1),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._dateValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"
\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._view.getNavigatorCaption());\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n return {\r\n text: this._view.getNavigatorCaption(),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: this.option(\"rtlEnabled\")\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var currentDate = this._getDateByOffset(e.direction, this.option(\"currentDate\"));\r\n this._moveToClosestAvailableDate(currentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._getRequiredView(\"next\")));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._getRequiredView(\"prev\")))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 : 0\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var date = this._getDateByOffset(-moveOffset * this._getRtlCorrection());\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element())\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var view = this._view;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView\r\n } else if (offset < -.5 && this._afterView) {\r\n view = this._afterView\r\n }\r\n this._navigator.option(\"text\", view.getNavigatorCaption())\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: function(args) {\r\n this._toTodayView(args)\r\n }.bind(this),\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"
\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n return this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW).promise()\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._dateOption(\"value\", today);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._dateOption(\"value\", today);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate)\r\n },\r\n _rearrangeViews: function(offset) {\r\n if (0 === offset) {\r\n return\r\n }\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n if (this[viewToRemoveKey]) {\r\n this[viewToRemoveKey].$element().remove()\r\n }\r\n if (offset === viewOffset) {\r\n this[viewToRemoveKey] = this._view\r\n } else {\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset, destinationDate));\r\n this._view.$element().remove()\r\n }\r\n this._view = this[viewToCreateKey];\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._beforeView;\r\n delete this._afterView\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null)\r\n },\r\n _updateViewsValue: function(value) {\r\n var newValue = value ? new Date(value) : null;\r\n this._view.option(\"value\", newValue);\r\n this._beforeView && this._beforeView.option(\"value\", newValue);\r\n this._afterView && this._afterView.option(\"value\", newValue)\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._dateOption(\"value\");\r\n var $prevSelectedCell = this._view._getCellByDate(previousValue);\r\n var $selectedCell = this._view._getCellByDate(value);\r\n this.setAria(\"selected\", void 0, $prevSelectedCell);\r\n this.setAria(\"selected\", true, $selectedCell);\r\n if (value && this.option(\"currentDate\").getTime() === value.getTime()) {\r\n this._updateAriaId(value)\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value2;\r\n value = null !== (_value2 = value) && void 0 !== _value2 ? _value2 : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var $newCell = this._view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n value = this._convertToDate(value);\r\n previousValue = this._convertToDate(previousValue);\r\n this._updateAriaSelected(value, previousValue);\r\n this.option(\"currentDate\", isDefined(value) ? new Date(value) : new Date);\r\n this._updateViewsValue(value);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"
\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: noop,\r\n getLastPopupElement: noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var toolbarItems = _popupConfig.toolbarItems;\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var position = [];\r\n if (\"default\" !== buttonsLocation) {\r\n position = splitPair(buttonsLocation)\r\n } else {\r\n position = [\"bottom\", \"center\"]\r\n }\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\") && this._isCalendarVisible()) {\r\n toolbarItems.unshift({\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n type: \"today\"\r\n }\r\n })\r\n }\r\n return extend(true, _popupConfig, {\r\n toolbarItems: toolbarItems,\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _isCalendarVisible: function() {\r\n return isEmptyObject(this.dateBox.option(\"calendarOptions\")) || false !== this.dateBox.option(\"calendarOptions.visible\")\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\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 addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"
\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"
\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"
\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"
\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (-1 === inArray(type, dateUtils.SUPPORTED_FORMATS)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"
\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"
\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"
\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"
\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"
\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"
\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"
\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"
\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"
\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n var result = extend(calendarPopupConfig, {\r\n width: \"auto\",\r\n onShowing: function() {\r\n if (\"fallback\" === this._box.option(\"_layoutStrategy\")) {\r\n var clockMinWidth = this._getPopup().$content().find(\".dx-timeview-clock\").css(\"minWidth\");\r\n this._timeView.$element().css(\"maxWidth\", clockMinWidth)\r\n }\r\n }.bind(this)\r\n });\r\n return result\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", (function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n }))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n var {\r\n opened: opened,\r\n applyValueMode: applyValueMode\r\n } = this.option();\r\n if (opened && \"instantly\" === applyValueMode) {\r\n this.close()\r\n }\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: function(currentDevice) {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n var version = realDevice.version;\r\n return \"generic\" === platform && \"desktop\" !== currentDevice.deviceType || \"android\" === platform && compareVersions(version, [4, 4]) < 0\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.rollers\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== devices.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon);\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(currentValue);\r\n this._applyCustomValidation(currentValue)\r\n }\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n });\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n var {\r\n isValid: isValid,\r\n isDate: isDate\r\n } = this._applyInternalValidation(value);\r\n if (isValid) {\r\n this.dateValue(value, e.event)\r\n } else if (isDate) {\r\n var displayedText = this._getDisplayedText(value);\r\n this.option(\"text\", displayedText);\r\n this._renderDisplayText(displayedText)\r\n }\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy2;\r\n this.callBase();\r\n null === (_this$_strategy2 = this._strategy) || void 0 === _this$_strategy2 ? void 0 : _this$_strategy2.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n reset: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, event => {\r\n this._enterHandler(event)\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n var device = devices.real();\r\n return device.android && device.version[0] > 4\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regexp = this._regExpInfo.regexp;\r\n var source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n limitDelta: limitDelta\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this.callBase();\r\n this._clearMaskState();\r\n this._activePartIndex = 0\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DateBox from \"./date_box/ui.date_box\";\r\nexport default DateBox;\r\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default {\r\n\r\n}\r\n","export default {\r\n\r\n}\r\n","import jwt from '@/http/requests/auth/jwt'\r\n\r\nexport default {\r\n\r\n fetchJobFeeds ({ commit }, organisationId) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get('/api/jobs/jobfeed/list', { idOrganisation: organisationId })\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchJobFeed (context, campaignId) {\r\n return new Promise((resolve, reject) => {\r\n const url = campaignId ? `/api/jobs/jobfeed/${campaignId}` : \"/api/jobs/jobfeed/new\"\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n saveJobFeed (context, data) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/jobs/jobfeed/save', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n removeRecord ({ commit }, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/jobs/jobfeed/delete/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchJobItems (context, idJobFeed) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get('/api/jobs/jobitem/list', { idJobFeed: idJobFeed })\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n}\r\n","export default {}","import state from './moduleJobFeedManagementState.js'\r\nimport mutations from './moduleJobFeedManagementMutations.js'\r\nimport actions from './moduleJobFeedManagementActions.js'\r\nimport getters from './moduleJobFeedManagementGetters.js'\r\n\r\nexport default {\r\n isRegistered: false,\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","export default {\r\n unmappedCampaigns: []\r\n}\r\n","export default {\r\n SET_UNMAPPED_CAMPAIGNS (state, campaigns) {\r\n state.unmappedCampaigns = campaigns\r\n }\r\n}\r\n","import jwt from '@/http/requests/auth/jwt'\r\n\r\nexport default {\r\n\r\n fetchCampaigns ({ commit }, idOrganisation) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get('/api/admin/campaign/list', { idOrganisation })\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchCampaignsByAdvertiser ({ commit }, idAdvertiser) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get('/api/admin/campaign/list', { idAdvertiser: idAdvertiser })\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchCampaign (context, idCampaign) {\r\n return new Promise((resolve, reject) => {\r\n const url = idCampaign ? `/api/admin/campaign/${idCampaign}` : \"/api/admin/campaign/new\"\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchVoucher (context, payload) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/voucher/bycode`\r\n jwt.get(url, payload)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchCampaignCategories (context, idCampaign) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/campaign/${idCampaign}/categories`\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n saveCampaign (context, updatedData) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get(`/api/admin/campaign/${updatedData.id}`)\r\n .then((response) => {\r\n const data = response.data.campaign\r\n Object.assign(data, updatedData)\r\n jwt.post('/api/admin/campaign/save', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n }).catch((error) => { reject(error) })\r\n\r\n })\r\n },\r\n removeRecord ({ commit }, idCampaign) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/campaign/delete/${idCampaign}`)\r\n .then((response) => {\r\n commit('REMOVE_RECORD', idCampaign)\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchImages (context, idCampaign) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/campaign/${idCampaign}/images`\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n reorderImages (context, data) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/campaign/${data.idCampaign}/images/reorder`\r\n jwt.post(url, data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n addImage (context, data) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/campaign/${data.idCampaign}/image`\r\n jwt.post(url, data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n deleteImage (context, id) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/campaign/image/delete/${id}`\r\n jwt.post(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchUnmappedCampaigns ({ commit }, idAdvertiser) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get(`/api/admin/advertiser/${idAdvertiser}/campaigns/unmapped`)\r\n .then((response) => {\r\n commit('SET_UNMAPPED_CAMPAIGNS', response.data.items)\r\n resolve(response.data.items)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n addCampaignsToAdvertiser (context, payload) {\r\n return jwt.post(`/api/admin/advertiser/${payload.id}/campaigns/add`, payload)\r\n },\r\n fetchCampaignBanners (context, idCampaign) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/campaign/${idCampaign}/banners`\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response.data.items)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n}\r\n","export default {}","import state from './moduleCampaignManagementState.js'\r\nimport mutations from './moduleCampaignManagementMutations.js'\r\nimport actions from './moduleCampaignManagementActions.js'\r\nimport getters from './moduleCampaignManagementGetters.js'\r\n\r\nexport default {\r\n isRegistered: false,\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxToolbarItem = exports.DxTo = exports.DxShow = exports.DxPosition = exports.DxOptions = exports.DxOffset = exports.DxMy = exports.DxItem = exports.DxHide = exports.DxFrom = exports.DxDropDownOptions = exports.DxCollision = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAnimation = exports.DxTagBox = void 0;\nvar tag_box_1 = __importDefault(require(\"devextreme/ui/tag_box\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxTagBox = index_1.createComponent({\n props: {\n acceptCustomValue: Boolean,\n accessKey: String,\n activeStateEnabled: Boolean,\n applyValueMode: String,\n buttons: Array,\n dataSource: [Array, Object, String],\n deferRendering: Boolean,\n disabled: Boolean,\n displayExpr: [Function, String],\n dropDownButtonTemplate: {},\n dropDownOptions: Object,\n elementAttr: Object,\n fieldTemplate: {},\n focusStateEnabled: Boolean,\n grouped: Boolean,\n groupTemplate: {},\n height: [Function, Number, String],\n hideSelectedItems: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: {},\n isValid: Boolean,\n items: Array,\n itemTemplate: {},\n label: String,\n labelMode: String,\n maxDisplayedTags: Number,\n maxFilterQueryLength: Number,\n maxLength: [Number, String],\n minSearchLength: Number,\n multiline: Boolean,\n name: String,\n noDataText: String,\n onChange: Function,\n onClosed: Function,\n onContentReady: Function,\n onCustomItemCreating: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onItemClick: Function,\n onKeyDown: Function,\n onKeyUp: Function,\n onMultiTagPreparing: Function,\n onOpened: Function,\n onOptionChanged: Function,\n onSelectAllValueChanged: Function,\n onSelectionChanged: Function,\n onValueChanged: Function,\n opened: Boolean,\n openOnFieldClick: Boolean,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n searchEnabled: Boolean,\n searchExpr: [Array, Function, String],\n searchMode: String,\n searchTimeout: Number,\n selectAllMode: String,\n selectAllText: String,\n selectedItems: Array,\n showClearButton: Boolean,\n showDataBeforeSearch: Boolean,\n showDropDownButton: Boolean,\n showMultiTagOnly: Boolean,\n showSelectionControls: Boolean,\n stylingMode: String,\n tabIndex: Number,\n tagTemplate: {},\n text: String,\n useItemTextAsTitle: Boolean,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: Array,\n valueExpr: [Function, String],\n visible: Boolean,\n width: [Function, Number, String],\n wrapItemText: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:acceptCustomValue\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:applyValueMode\": null,\n \"update:buttons\": null,\n \"update:dataSource\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:displayExpr\": null,\n \"update:dropDownButtonTemplate\": null,\n \"update:dropDownOptions\": null,\n \"update:elementAttr\": null,\n \"update:fieldTemplate\": null,\n \"update:focusStateEnabled\": null,\n \"update:grouped\": null,\n \"update:groupTemplate\": null,\n \"update:height\": null,\n \"update:hideSelectedItems\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:isValid\": null,\n \"update:items\": null,\n \"update:itemTemplate\": null,\n \"update:label\": null,\n \"update:labelMode\": null,\n \"update:maxDisplayedTags\": null,\n \"update:maxFilterQueryLength\": null,\n \"update:maxLength\": null,\n \"update:minSearchLength\": null,\n \"update:multiline\": null,\n \"update:name\": null,\n \"update:noDataText\": null,\n \"update:onChange\": null,\n \"update:onClosed\": null,\n \"update:onContentReady\": null,\n \"update:onCustomItemCreating\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onItemClick\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyUp\": null,\n \"update:onMultiTagPreparing\": null,\n \"update:onOpened\": null,\n \"update:onOptionChanged\": null,\n \"update:onSelectAllValueChanged\": null,\n \"update:onSelectionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:opened\": null,\n \"update:openOnFieldClick\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:searchEnabled\": null,\n \"update:searchExpr\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:selectAllMode\": null,\n \"update:selectAllText\": null,\n \"update:selectedItems\": null,\n \"update:showClearButton\": null,\n \"update:showDataBeforeSearch\": null,\n \"update:showDropDownButton\": null,\n \"update:showMultiTagOnly\": null,\n \"update:showSelectionControls\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:tagTemplate\": null,\n \"update:text\": null,\n \"update:useItemTextAsTitle\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueExpr\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapItemText\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = tag_box_1.default;\n this.$_hasAsyncTemplate = true;\n this.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" },\n dropDownOptions: { isCollectionItem: false, optionName: \"dropDownOptions\" },\n item: { isCollectionItem: true, optionName: \"items\" }\n };\n }\n});\nexports.DxTagBox = DxTagBox;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: [Object, Number, String],\n show: [Object, Number, String]\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxDropDownOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxDropDownOptions = DxDropDownOptions;\nDxDropDownOptions.$_optionName = \"dropDownOptions\";\nDxDropDownOptions.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxFrom = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxFrom = DxFrom;\nDxFrom.$_optionName = \"from\";\nDxFrom.$_expectedChildren = {\n position: { isCollectionItem: false, optionName: \"position\" }\n};\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nDxHide.$_expectedChildren = {\n from: { isCollectionItem: false, optionName: \"from\" },\n to: { isCollectionItem: false, optionName: \"to\" }\n};\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxTo = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxTo = DxTo;\nDxTo.$_optionName = \"to\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: {},\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nexports.default = DxTagBox;\n","export default {\r\n\r\n}\r\n","export default {\r\n\r\n}\r\n","import jwt from '@/http/requests/auth/jwt'\r\n\r\nexport default {\r\n\r\n fetchArticleLists ({ commit }, organisationId) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get('/api/admin/articlelist/list', { idOrganisation: organisationId })\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchArticleList (context, id) {\r\n return new Promise((resolve, reject) => {\r\n const url = id ? `/api/admin/articlelist/${id}` : \"/api/admin/articlelist/new\"\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n saveArticleList (context, data) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/admin/articlelist/save', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n removeRecord ({ commit }, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/articlelist/delete/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n syncFeed ({ commit }, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/articlelist/syncfeed/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchArticle (context, data) {\r\n return new Promise((resolve, reject) => {\r\n const url = data.id ? `/api/admin/article/${data.id}` : \"/api/admin/article/new\"\r\n jwt.get(url, data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n activateArticle (context, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/article/activate/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n deactivateArticle (context, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/article/deactivate/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchArticles (context, payload) {\r\n if (payload.searchValue) {\r\n payload.filterOptions = [\r\n { dataField: \"Title\", filterOperationEnum: \"Contains\", filterValue: payload.searchValue }\r\n ]\r\n }\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/admin/article/list', payload)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n saveArticle (context, data) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/admin/article/save', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n removeArticle ({ commit }, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/article/delete/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n reorderArticles (context, data) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/article/reorder`\r\n jwt.post(url, data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchArticleListDefinition (context, id) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/articlelistdefinition/${id}`\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n saveArticleListDefinition (context, data) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/admin/articlelistdefinition/save', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchArticleListDefinitionByIdArticleList (context, idArticleList) {\r\n return new Promise((resolve, reject) => {\r\n const url = `/api/admin/articlelist/${idArticleList}`\r\n jwt.get(url)\r\n .then((response) => {\r\n const al = response.data.articleList\r\n if (al.idArticleListDefinition) {\r\n jwt.get(`/api/admin/articlelistdefinition/${al.idArticleListDefinition}`)\r\n .then((response2) => {\r\n resolve(response2)\r\n })\r\n .catch((error) => {\r\n reject(error)\r\n })\r\n } else {\r\n const data = {\r\n idArticleList: al.id,\r\n idOrganisation: al.idOrganisation,\r\n name: `${al.name} Definition`,\r\n fields: [\r\n { \"name\": \"callToActionText\", \"label\": \"Call To Action\", \"fieldType\": \"Text\" },\r\n { \"name\": \"imageUrl\", \"label\": \"Image\", \"fieldType\": \"Image\" }\r\n ],\r\n }\r\n jwt.post(`/api/admin/articlelistdefinition/save`, data)\r\n .then((response2) => {\r\n resolve(response2)\r\n })\r\n .catch((error) => {\r\n reject(error)\r\n })\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n}\r\n","export default {}","import state from './moduleArticleListManagementState.js'\r\nimport mutations from './moduleArticleListManagementMutations.js'\r\nimport actions from './moduleArticleListManagementActions.js'\r\nimport getters from './moduleArticleListManagementGetters.js'\r\n\r\nexport default {\r\n isRegistered: false,\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxToolbarItem = exports.DxTo = exports.DxShow = exports.DxPosition = exports.DxOptions = exports.DxOffset = exports.DxMy = exports.DxHide = exports.DxFrom = exports.DxDropDownOptions = exports.DxDisplayFormat = exports.DxCollision = exports.DxCalendarOptions = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAnimation = exports.DxDateBox = void 0;\nvar date_box_1 = __importDefault(require(\"devextreme/ui/date_box\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDateBox = index_1.createComponent({\n props: {\n acceptCustomValue: Boolean,\n accessKey: String,\n activeStateEnabled: Boolean,\n adaptivityEnabled: Boolean,\n applyButtonText: String,\n applyValueMode: String,\n buttons: Array,\n calendarOptions: Object,\n cancelButtonText: String,\n dateOutOfRangeMessage: String,\n dateSerializationFormat: String,\n deferRendering: Boolean,\n disabled: Boolean,\n disabledDates: [Array, Function],\n displayFormat: [Object, Function, String],\n dropDownButtonTemplate: {},\n dropDownOptions: Object,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: {},\n interval: Number,\n invalidDateMessage: String,\n isValid: Boolean,\n label: String,\n labelMode: String,\n max: {},\n maxLength: [Number, String],\n min: {},\n name: String,\n onChange: Function,\n onClosed: Function,\n onContentReady: Function,\n onCopy: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onKeyDown: Function,\n onKeyUp: Function,\n onOpened: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n opened: Boolean,\n openOnFieldClick: Boolean,\n pickerType: String,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showAnalogClock: Boolean,\n showClearButton: Boolean,\n showDropDownButton: Boolean,\n spellcheck: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n type: String,\n useMaskBehavior: Boolean,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n valueChangeEvent: String,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:acceptCustomValue\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:adaptivityEnabled\": null,\n \"update:applyButtonText\": null,\n \"update:applyValueMode\": null,\n \"update:buttons\": null,\n \"update:calendarOptions\": null,\n \"update:cancelButtonText\": null,\n \"update:dateOutOfRangeMessage\": null,\n \"update:dateSerializationFormat\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:disabledDates\": null,\n \"update:displayFormat\": null,\n \"update:dropDownButtonTemplate\": null,\n \"update:dropDownOptions\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:interval\": null,\n \"update:invalidDateMessage\": null,\n \"update:isValid\": null,\n \"update:label\": null,\n \"update:labelMode\": null,\n \"update:max\": null,\n \"update:maxLength\": null,\n \"update:min\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onClosed\": null,\n \"update:onContentReady\": null,\n \"update:onCopy\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyUp\": null,\n \"update:onOpened\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:opened\": null,\n \"update:openOnFieldClick\": null,\n \"update:pickerType\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showAnalogClock\": null,\n \"update:showClearButton\": null,\n \"update:showDropDownButton\": null,\n \"update:spellcheck\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useMaskBehavior\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = date_box_1.default;\n this.$_hasAsyncTemplate = true;\n this.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" },\n calendarOptions: { isCollectionItem: false, optionName: \"calendarOptions\" },\n displayFormat: { isCollectionItem: false, optionName: \"displayFormat\" },\n dropDownOptions: { isCollectionItem: false, optionName: \"dropDownOptions\" }\n };\n }\n});\nexports.DxDateBox = DxDateBox;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: [Object, Number, String],\n show: [Object, Number, String]\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxCalendarOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:cellTemplate\": null,\n \"update:currentDate\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:disabledDates\": null,\n \"update:elementAttr\": null,\n \"update:firstDayOfWeek\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:isValid\": null,\n \"update:max\": null,\n \"update:maxZoomLevel\": null,\n \"update:min\": null,\n \"update:minZoomLevel\": null,\n \"update:name\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showTodayButton\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:zoomLevel\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n cellTemplate: {},\n currentDate: {},\n dateSerializationFormat: String,\n disabled: Boolean,\n disabledDates: [Array, Function],\n elementAttr: Object,\n firstDayOfWeek: {\n type: Number,\n validator: function (v) { return typeof (v) !== \"number\" || [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ].indexOf(v) !== -1; }\n },\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n isValid: Boolean,\n max: {},\n maxZoomLevel: String,\n min: {},\n minZoomLevel: String,\n name: String,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showTodayButton: Boolean,\n stylingMode: String,\n tabIndex: Number,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n visible: Boolean,\n width: [Function, Number, String],\n zoomLevel: String\n }\n});\nexports.DxCalendarOptions = DxCalendarOptions;\nDxCalendarOptions.$_optionName = \"calendarOptions\";\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxDisplayFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxDisplayFormat = DxDisplayFormat;\nDxDisplayFormat.$_optionName = \"displayFormat\";\nvar DxDropDownOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxDropDownOptions = DxDropDownOptions;\nDxDropDownOptions.$_optionName = \"dropDownOptions\";\nDxDropDownOptions.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxFrom = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxFrom = DxFrom;\nDxFrom.$_optionName = \"from\";\nDxFrom.$_expectedChildren = {\n position: { isCollectionItem: false, optionName: \"position\" }\n};\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nDxHide.$_expectedChildren = {\n from: { isCollectionItem: false, optionName: \"from\" },\n to: { isCollectionItem: false, optionName: \"to\" }\n};\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxTo = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxTo = DxTo;\nDxTo.$_optionName = \"to\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: {},\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nexports.default = DxDateBox;\n","export default {\r\n\r\n}\r\n","export default {\r\n\r\n}\r\n","import jwt from '@/http/requests/auth/jwt'\r\n\r\nexport default {\r\n\r\n fetchNewsArticleLists ({ commit }, organisationId) {\r\n return new Promise((resolve, reject) => {\r\n jwt.get('/api/admin/newsarticlelist/list', { idOrganisation: organisationId })\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchNewsArticleList (context, id) {\r\n return new Promise((resolve, reject) => {\r\n const url = id ? `/api/admin/newsarticlelist/${id}` : \"/api/admin/newsarticlelist/new\"\r\n jwt.get(url)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n saveNewsArticleList (context, data) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/admin/newsarticlelist/save', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n previewNewsArticleList (context, data) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post('/api/admin/newsarticlelist/preview', data)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n removeRecord ({ commit }, id) {\r\n return new Promise((resolve, reject) => {\r\n jwt.post(`/api/admin/newsarticlelist/delete/${id}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n }\r\n}\r\n","export default {}","import state from './moduleNewsArticleListManagementState.js'\r\nimport mutations from './moduleNewsArticleListManagementMutations.js'\r\nimport actions from './moduleNewsArticleListManagementActions.js'\r\nimport getters from './moduleNewsArticleListManagementGetters.js'\r\n\r\nexport default {\r\n isRegistered: false,\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar toMilliseconds = function toMilliseconds(value) {\r\n switch (value) {\r\n case \"millisecond\":\r\n return 1;\r\n case \"second\":\r\n return 1e3 * toMilliseconds(\"millisecond\");\r\n case \"minute\":\r\n return 60 * toMilliseconds(\"second\");\r\n case \"hour\":\r\n return 60 * toMilliseconds(\"minute\");\r\n case \"day\":\r\n return 24 * toMilliseconds(\"hour\");\r\n case \"week\":\r\n return 7 * toMilliseconds(\"day\");\r\n case \"month\":\r\n return 30 * toMilliseconds(\"day\");\r\n case \"quarter\":\r\n return 3 * toMilliseconds(\"month\");\r\n case \"year\":\r\n return 365 * toMilliseconds(\"day\");\r\n default:\r\n return 0\r\n }\r\n};\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + 7) % 7;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n var result = new Date(date.getTime());\r\n result.setHours(result.getHours() + 1);\r\n result.setMinutes(0);\r\n return result\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDateWithFullYear: createDateWithFullYear\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 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 __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxCheckBox = void 0;\nvar check_box_1 = __importDefault(require(\"devextreme/ui/check_box\"));\nvar index_1 = require(\"./core/index\");\nvar DxCheckBox = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n iconSize: [Number, String],\n isValid: Boolean,\n name: String,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n tabIndex: Number,\n text: String,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:iconSize\": null,\n \"update:isValid\": null,\n \"update:name\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = check_box_1.default;\n this.$_hasAsyncTemplate = true;\n }\n});\nexports.DxCheckBox = DxCheckBox;\nexports.default = DxCheckBox;\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","/**\r\n * DevExtreme (esm/ui/tag_box.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nimport {\r\n SelectionFilterCreator as FilterCreator\r\n} from \"../core/utils/selection_filter\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport {\r\n name as clickEvent\r\n} from \"../events/click\";\r\nimport caret from \"./text_box/utils.caret\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../data/data_source/utils\";\r\nimport SelectBox from \"./select_box\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n allowScroll\r\n} from \"./text_box/utils.scroll\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar TAGBOX_TAG_DATA_KEY = \"dxTagData\";\r\nvar TAGBOX_CLASS = \"dx-tagbox\";\r\nvar TAGBOX_TAG_CONTAINER_CLASS = \"dx-tag-container\";\r\nvar TAGBOX_TAG_CLASS = \"dx-tag\";\r\nvar TAGBOX_MULTI_TAG_CLASS = \"dx-tagbox-multi-tag\";\r\nvar TAGBOX_CUSTOM_TAG_CLASS = \"dx-tag-custom\";\r\nvar TAGBOX_TAG_REMOVE_BUTTON_CLASS = \"dx-tag-remove-button\";\r\nvar TAGBOX_ONLY_SELECT_CLASS = \"dx-tagbox-only-select\";\r\nvar TAGBOX_SINGLE_LINE_CLASS = \"dx-tagbox-single-line\";\r\nvar TAGBOX_POPUP_WRAPPER_CLASS = \"dx-tagbox-popup-wrapper\";\r\nvar TAGBOX_TAG_CONTENT_CLASS = \"dx-tag-content\";\r\nvar TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS = \"dx-tagbox-default-template\";\r\nvar TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS = \"dx-tagbox-custom-template\";\r\nvar NATIVE_CLICK_CLASS = \"dx-native-click\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER = -.3;\r\nvar TagBox = SelectBox.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n var sendToList = options => this._list._keyboardHandler(options);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n return extend({}, parent, {\r\n backspace: function(e) {\r\n if (!this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag || this._tagElements().last();\r\n if (this._$focusedTag) {\r\n this._moveTagFocus(\"prev\", true)\r\n }\r\n if (0 === $tagToDelete.length) {\r\n return\r\n }\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n upArrow: (e, opts) => e.altKey || !this._list ? parent.upArrow.call(this, e) : sendToList(opts),\r\n downArrow: (e, opts) => e.altKey || !this._list ? parent.downArrow.call(this, e) : sendToList(opts),\r\n del: function(e) {\r\n if (!this._$focusedTag || !this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag;\r\n this._moveTagFocus(\"next\", true);\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n enter: function(e, options) {\r\n var isListItemFocused = this._list && null !== this._list.option(\"focusedElement\");\r\n var isCustomItem = this.option(\"acceptCustomValue\") && !isListItemFocused;\r\n if (isCustomItem) {\r\n e.preventDefault();\r\n \"\" !== this._searchValue() && this._customItemAddedHandler(e);\r\n return\r\n }\r\n if (this.option(\"opened\")) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n space: function(e, options) {\r\n var isOpened = this.option(\"opened\");\r\n var isInputActive = this._shouldRenderSearchEvent();\r\n if (isOpened && !isInputActive) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n leftArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"next\" : \"prev\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n },\r\n rightArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && !rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"prev\" : \"next\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _isEmpty: function() {\r\n return 0 === this._getValue().length\r\n },\r\n _updateTagsContainer: function($element) {\r\n this._$tagsContainer = $element.addClass(TAGBOX_TAG_CONTAINER_CLASS).addClass(NATIVE_CLICK_CLASS);\r\n this._$tagsContainer.parent().addClass(NATIVE_CLICK_CLASS)\r\n },\r\n _allowSelectItemByTab: function() {\r\n return false\r\n },\r\n _isCaretAtTheStart: function() {\r\n var position = caret(this._input());\r\n return 0 === position.start && 0 === position.end\r\n },\r\n _moveTagFocus: function(direction, clearOnBoundary) {\r\n if (!this._$focusedTag) {\r\n var tagElements = this._tagElements();\r\n this._$focusedTag = \"next\" === direction ? tagElements.first() : tagElements.last();\r\n this._toggleFocusClass(true, this._$focusedTag);\r\n return\r\n }\r\n var $nextFocusedTag = this._$focusedTag[direction](\".\".concat(TAGBOX_TAG_CLASS));\r\n if ($nextFocusedTag.length > 0) {\r\n this._replaceFocusedTag($nextFocusedTag)\r\n } else if (clearOnBoundary || \"next\" === direction && this._isEditable()) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _replaceFocusedTag: function($nextFocusedTag) {\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._$focusedTag = $nextFocusedTag;\r\n this._toggleFocusClass(true, this._$focusedTag)\r\n },\r\n _clearTagFocus: function() {\r\n if (!this._$focusedTag) {\r\n return\r\n }\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n delete this._$focusedTag\r\n },\r\n _focusClassTarget: function($element) {\r\n if ($element && $element.length && $element[0] !== this._focusTarget()[0]) {\r\n return $element\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelContainer: function() {\r\n return this._$tagsContainer\r\n },\r\n _scrollContainer: function(direction) {\r\n if (this.option(\"multiline\") || !hasWindow()) {\r\n return\r\n }\r\n if (!this._$tagsContainer) {\r\n return\r\n }\r\n var scrollPosition = this._getScrollPosition(direction);\r\n this._$tagsContainer.scrollLeft(scrollPosition)\r\n },\r\n _getScrollPosition: function(direction) {\r\n if (\"start\" === direction || \"end\" === direction) {\r\n return this._getBorderPosition(direction)\r\n }\r\n return this._$focusedTag ? this._getFocusedTagPosition(direction) : this._getBorderPosition(\"end\")\r\n },\r\n _getBorderPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"end\" === direction ^ rtlEnabled;\r\n var scrollSign = rtlEnabled ? -1 : 1;\r\n return isScrollLeft ^ !rtlEnabled ? 0 : scrollSign * (this._$tagsContainer.get(0).scrollWidth - getOuterWidth(this._$tagsContainer))\r\n },\r\n _getFocusedTagPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"next\" === direction ^ rtlEnabled;\r\n var {\r\n left: scrollOffset\r\n } = this._$focusedTag.position();\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n if (isScrollLeft) {\r\n scrollOffset += getOuterWidth(this._$focusedTag, true) - getOuterWidth(this._$tagsContainer)\r\n }\r\n if (isScrollLeft ^ scrollOffset < 0) {\r\n scrollLeft += scrollOffset\r\n }\r\n return scrollLeft\r\n },\r\n _setNextValue: noop,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: [],\r\n showDropDownButton: false,\r\n maxFilterQueryLength: 1500,\r\n tagTemplate: \"tag\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n hideSelectedItems: false,\r\n selectedItems: [],\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n maxDisplayedTags: void 0,\r\n showMultiTagOnly: true,\r\n onMultiTagPreparing: null,\r\n multiline: true,\r\n useSubmitBehavior: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._selectedItems = [];\r\n this._initSelectAllValueChangedAction()\r\n },\r\n _initActions: function() {\r\n this.callBase();\r\n this._initMultiTagPreparingAction()\r\n },\r\n _initMultiTagPreparingAction: function() {\r\n this._multiTagPreparingAction = this._createActionByOption(\"onMultiTagPreparing\", {\r\n beforeExecute: function(e) {\r\n this._multiTagPreparingHandler(e.args[0])\r\n }.bind(this),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _multiTagPreparingHandler: function(args) {\r\n var {\r\n length: selectedCount\r\n } = this._getValue();\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-moreSelected\")(selectedCount - this.option(\"maxDisplayedTags\") + 1)\r\n } else {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-selected\")(selectedCount)\r\n }\r\n },\r\n _initDynamicTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n tag: new BindableTemplate(($container, data) => {\r\n var _data$text;\r\n var $tagContent = $(\"
\").addClass(TAGBOX_TAG_CONTENT_CLASS);\r\n $(\"\").text(null !== (_data$text = data.text) && void 0 !== _data$text ? _data$text : data).appendTo($tagContent);\r\n $(\"
\").addClass(TAGBOX_TAG_REMOVE_BUTTON_CLASS).appendTo($tagContent);\r\n $container.append($tagContent)\r\n }, [\"text\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter\r\n })\r\n })\r\n },\r\n _toggleSubmitElement: function(enabled) {\r\n if (enabled) {\r\n this._renderSubmitElement();\r\n this._setSubmitValue()\r\n } else {\r\n this._$submitElement && this._$submitElement.remove();\r\n delete this._$submitElement\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n this._$submitElement = $(\"