{"version":3,"sources":["kendo.grid.js"],"names":["f","define","$","normalizeText","text","String","replace","REPLACE_REGEX","SPACE","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","zeroSize","width","height","baseline","measureText","style","measureBox","TextMetrics","current","measure","LRUCache","DEFAULT_OPTIONS","defaultMeasureBox","window","kendo","util","Class","extend","init","size","this","_size","_length","_map","put","value","map","entry","_head","_tail","newer","older","get","baselineMarkerSize","document","createElement","cssText","options","_cache","styleKey","cacheKey","cachedResult","baselineMarker","textStr","box","_baselineMarker","cloneNode","textContent","appendChild","body","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","marker","deepExtend","jQuery","amd","a1","a2","a3","undefined","attrEquals","attrName","attrValue","attr","groupCells","count","Array","stringifyAttributes","attributes","result","STRING","cursor","context","add","css","reorder","selector","source","dest","before","idx","sourceIndex","eq","appendTo","elements","lockedContent","content","filter","find","attachCustomCommandEvent","container","commands","command","commandName","isArray","isPlainObject","click","name","on","CLICK","NS","proxy","normalizeColumns","columns","encoded","hide","locked","parentIds","column","hidden","uid","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","guid","headers","id","columnParent","parents","columnParents","inserted","splice","setColumnVisibility","visible","setVisibility","show","method","removeHiddenStyle","setColumnMediaVisibility","setColumnMatchesMedia","hideByMedia","_hideByMedia","matchesMedia","columnMatchesMedia","isUndefined","media","isCellVisible","display","isElementVisible","element","visibleColumns","grep","columnsWithMedia","minScreenWidth","Error","concat","toJQuery","toArray","updateCellRowSpan","cell","sourceLockedColumnsCount","lockedColumnDepth","depth","lockedColumns","nonLockedColumnDepth","nonLockedColumns","rowSpan","findColumnByUID","findColumnByField","moveCellsBetweenContainers","sources","target","leafs","destination","groups","action","rows","sourcesDepth","targetDepth","children","insertAfter","last","addRowSpanValue","moveCells","updateCellIndex","thead","offset","position","allColumns","cells","leafColumns","el","hasClass","columnPosition","row","temp","max","sourcePosition","columnVisiblePosition","ths","t","cellCounts","findParentColumnWithChildren","index","rtl","targetLocked","findReorderTarget","masterColumns","parent","parentColumns","targetIndex","inArray","flatColumnsInDomOrder","flatColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","sumWidths","cols","parseInt","columnsWidth","colWidth","indexOf","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","setLeftAndRightStyles","left","right","createColumnAttribute","attribute","property","addColumnAttribute","removeColumnAttribute","stickyColumns","sticky","visibleStickyColumns","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","childColumns","visibleChildColumns","e","getColumnsFields","leafDataCells","indexAttr","a","b","indexA","indexB","parentColumnsCells","parentCellsWithChildren","prevCells","parentCell","closest","headerRows","level","prevAll","colSpan","Math","getAttribute","childColumnsCells","child","colSpanAttr","next","appendContent","tbody","table","html","empty","placeholder","tmp","tbodySupportsInnerHtml","innerHTML","firstChild","replaceChild","match","hasHiddenStyle","normalizeCols","hasDetails","colgroup","format","is","append","prepend","normalizeHeaderCells","len","lastIndex","th","insertBefore","convertToObject","array","item","formatGroupValue","columnValues","isForeignKey","groupValue","htmlEncode","setCellVisibility","state","pad","nonDataCellsRegExp","test","className","hideColumnCells","columnIndex","groupRows","data","hasSubgroups","items","groupFooters","aggregates","showColumnCells","updateColspan","toAdd","toRemove","num","tableWidth","syncTableHeight","table1","table2","lockedHeigth","tableHeigth","diff","filterRowRegExp","adjustRowHeight","row1","row2","offsetHeight1","offsetHeight2","getCommand","focusTable","direct","scrollLeft","focusElement","one","preventDefault","focus","isColumnGroupable","grid","groupable","isGroupedBy","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","preventScroll","currentTable","roleSelector","_setCurrent","navigatable","setTimeout","_activeElement","CHECKBOXINPUT","contains","support","touch","leftMostPosition","browser","webkit","parseVirtualSettings","asLowerString","toLowerCase","isElementVisibleInWrapper","wrapper","halfHeight","top","outerHeight","math","abs","floor","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","expanded","includeAdditionalData","EXPAND","groupRowLockedContentBuilder","toggleRow","backslashEscapeQuotes","ampRegExp","ltRegExp","quoteRegExp","aposRegExp","gtRegExp","getTitle","col","title","exportDataSort","dataSource","getByUid","isExcelExportableColumn","exportable","excel","GroupsPager","VirtualScrollable","defaultCommands","Grid","ui","DataSource","ObservableObject","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","_outerHeight","keys","prototype","isFunction","isEmptyObject","DOT","PROGRESS","ERROR","HIERARCHY_CELL_CLASS","DATA_CELL","SELECTION_CELL_SELECTOR","NAVROW","NAVCELL","ITEMROW","COLGROUP","FIRSTITEMROW","LASTITEMROW","FIRSTNAVITEM","HEADERCELLS","WRAPPER","CONTENTRLOCKEDCONTAINER","GROUPCELLCLASS","EDIT","BEFOREEDIT","SAVE","REMOVE","DETAILINIT","FILTERMENUINIT","COLUMNMENUINIT","FILTERMENUOPEN","COLUMNMENUOPEN","CELLCLOSE","CHANGE","COLUMNHIDE","COLUMNSHOW","SAVECHANGES","DATABOUND","DETAILEXPAND","DETAILCOLLAPSE","ITEM_CHANGE","PAGE","PAGING","SCROLL","SYNC","LOAD_START","LOAD_END","FOCUSED","FOCUSABLE","SELECTED","CHECKBOX","NORECORDSCLASS","LINK_CLASS","ICON_CLASS","ORDER_CLASS","SORTED_CLASS","HEADER_COLUMN_MENU_CLASS","FILTER_MENU_CLASS","STICKY_CELL_CLASS","STICKY_HEADER_CLASS","STICKY_FOOTER_CLASS","STICKY_HEADER_NO_BORDER_CLASS","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","COLUMNSTICK","COLUMNUNSTICK","NAVIGATE","MOUSEDOWN","HEIGHT","TABINDEX","FUNCTION","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","UNIQUE_ID","MINCOLSPANVALUE","COLSPAN","OVERFLOW","HIDDEN","SORT","GROUP_SORT","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","formatRegExp","templateHashRegExp","whitespaceRegExp","leftRegExp","RegExp","rightRegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE11","msie","version","isMac","navigator","userAgent","classNames","widget","scrollContainer","Pager","fn","call","useRanges","_omitPrefetch","totalPages","that","ceil","_collapsedTotal","pageSize","groupsTotal","_refreshHandler","refresh","setDataSource","wrap","unbind","bind","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","verticalScrollbar","off","clearTimeout","_timeout","_scrollingTimeout","drag","scrollbar","overflow","first","_wheelScroll","_wrapper","kineticScrollNeeded","UserEvents","global","allowSelection","start","sender","capture","move","scrollTop","y","delta","x","_scroll","overflow-y","ctrlKey","wheelDeltaY","clientHeight","scrollHeight","delayLoading","rowHeight","skip","_rangeStart","innerHeight","isScrollingUp","_scrollbarTop","firstItemIndex","lastItemOffset","lastItemIndex","_preventScroll","_prevScrollTop","_scrollTop","_scrolling","_fetch","trigger","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","total","_isGroupPaged","min","_fetching","callback","isGroupPaged","_groupRangeExists","inRange","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","cancel","page","create","iconClass","save","edit","update","canceledit","pdf","search","DataBoundWidget","_events","_element","_aria","_columns","_foreignKeyPromises","when","apply","then","_continueInit","_dataSource","_stickyColumns","_tbody","_thead","_groupable","_toolbar","_pageable","_setContentHeight","_templates","_navigatable","_selectable","_clipboard","_details","_editable","_attachCustomCommandsEvent","_adaptiveColumns","_minScreenSupport","autoBind","fetch","_group","_groups","_footer","addClass","_resizeHandler","resize","notify","scrollableContent","scrollable","virtual","virtualScrollable","toolbar","filterable","sortable","allowCopy","pageable","persistSelection","encodeTitles","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","loaderType","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","_headertables","pager","timer","_progressTimeOut","_collapseGroupsTimeOut","_endlessFetchTimeOut","_destroyGroupable","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyVirtualScrollable","editableUserEvents","_lockedContentUserEvents","_destroyEditable","_progressHandler","_errorHandler","_clearSortClasses","_removeLockedContainers","pane","_isMobile","minScreenResizeHandler","_detachColumnMediaResizeHandler","_draggableInstance","lockedRowTemplate","lockedAltRowTemplate","footerTemplate","groupFooterTemplate","lockedGroupFooterTemplate","noRecordsTemplate","scrollables","footer","lockedFooter","_groupableClickHandler","_groupRows","_setContentWidthHandler","getOptions","initialData","_data","group","aggregate","transport","$angular","setOptions","mobileWrapper","currentOptions","after","removeClass","_setEvents","_items","includeGroupRows","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","headerWrap","ieCorrection","firefoxCorrection","leftMargin","invisibleSpace","leftBorderWidth","indicatorWidth","halfResizeHandle","rtlCorrection","mozilla","parseFloat","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","button","buttons","which","hasAttribute","_resizeHandleDocumentClick","_resetResizeHandleHeader","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","minHold","hold","resizeColumn","columnWidth","constrain","totalWidth","isLocked","isHidden","mobileOS","contentTable","header","columnMinWidth","minResizableWidth","gridWidth","_footerWidth","_scrollVirtualWrapperOnColumnResize","_applyLockedContainersWidth","_syncLockedContentHeight","_syncLockedHeaderHeight","_updateStickyColumns","_resizable","columnStart","isMobile","Resizable","handle","hint","location","rtlMultiplier","currentWidth","resizeend","newWidth","oldWidth","_draggable","kendoDraggable","autoScroll","dragstart","not","dragend","_reorderable","kendoReorderable","draggable","dragOverContainers","lockable","inSameContainer","change","oldIndex","newIndex","reorderColumn","_reorderHeader","sourceLockedColumns","targetLockedColumns","destPosition","_reorderContent","footerCol","beforeVisibleColumn","columnsArray","lockedRows","visibleSources","destIndex","colSourceIndex","colDest","lockedCount","headerCol","_findClosestVisibleColumnIndex","slice","prev","_hasFilterRow","_hasVirtualColumns","reverse","closestVisibleColumn","leafIndex","autoFitColumn","minWidth","contentDiv","menu","thWidth","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","safari","lockChanged","sourceColumns","destColumn","virtualScroll","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unstickColumn","unlockColumn","stickColumn","_removeStickyAttributes","_removeStickyStyles","_anyStickyColumns","_updateStickyFilterCells","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","_calculateColumnIndex","virtualOffset","mode","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","tap","isLockedCell","has","blur","editCell","shouldCloseCell","_virtualColScroll","_belongsToGrid","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","editor","values","skipFocus","_isVirtualIncellEditable","_editableState","_relatedRow","_syncLockedScroll","_adjustLockedHorizontalScrollBar","touchScroller","_adjustRowsHeight","_syncLockedFooterHeight","editView","_editCancelClickHandler","_editUpdateClickHandler","_detachModelChange","_destroyEditView","_editableIsClosing","close","_confirmDialog","purge","navigate","_modelChangeHandler","_modelChange","isCancel","type","_displayCell","ns","dataItem","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","modelId","schema","cancelRow","_removeGroupIfEmpty","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","editMenuGuid","unescape","_createButton","kendoWindow","modal","userTriggered","clearContainer","_openPopUpEditor","windowEditor","windowOptions","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","angularElements","angularData","isSelected","isAlt","replaceWith","_checkBoxSelection","select","_showMessage","confirmDialog","Confirm","closable","okText","done","fail","confirm","_isVirtualEditable","_virtualPageToTop","saveChanges","addRow","createAt","view","createAtBottom","virtualEditable","serverPaging","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","input","_searchTimeOut","searchFields","expression","filters","logic","endless","_endlessPageSize","operator","searchText","attributeClassMatch","split","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","chrome","Groupable","groupContainer","draggableElements","allowDrag","_skip","_pageSize","_take","_addGroupableOptionsToHeader","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","cellFieldAttr","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","multi","notString","Selectable","parseOptions","multiple","aria","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","useAllItems","relatedTarget","continuousItems","ignoreOverlapped","addIdToRanges","keyCode","SPACEBAR","shiftKey","_deselectCheckRows","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","stopImmediatePropagation","copySelection","areaClipBoard","val","getTSV","copySelectionToClipboard","includeHeaders","_createAreaClipBoard","execCommand","Event","metaKey","getSelection","selection","createRange","opacity","cellsOffset","lockedCols","inLockedArea","rowsOffset","selected","delimeter","onlyVisible","hasLockedCols","cellText","_getCellField","_anyColumnHasMediaQuery","_setColumnsMediaVisibility","_attachColumnMediaResizeHandler","_columnsWithMediaQuery","_columnMediaResizeHandler","_onColumnMediaResize","_setContentMediaWidth","_setColumnMediaVisibility","_showColumnByMedia","_hideColumnByMedia","showColumn","initiallyHidden","hideColumn","headerColumns","headerColgroup","headerColumnsCount","visibleHeaderColumnsCount","hiddenHeaderColumnsCount","totalHeaderWidth","currentHeaderWidth","colgroupChild","columnStyleWidth","any","hideMinScreenCols","screenWidth","innerWidth","screen","_iterateMinScreenCols","_setStickyColumns","filterCells","filterCell","getKendoFilterCell","stickyStyle","updateStyles","stickyWidths","_calculateStickyWidths","_setStickyClassAttributes","_setStickyStyleAttributes","_setStickyStyles","initialLeftWidth","initialRightWidth","nextColumnLeft","nextColumnRight","fill","_sumColumnWidth","masterIndex","stickyLeft","stickyRight","childCols","childStickyWidths","cellClassRegExp","headerClassRegExp","footerClassRegExp","headerClassNoBorderRegExp","leafsCols","_getColumnHeader","groupHeaderColumnTemplateClass","_sumCurrentWidths","getSelectedData","selectedRanges","selectedRangeNames","Object","selectedSingleItems","_mapSelectionToData","exportSelectedToExcel","exporter","columnHandler","book","exportData","sortHandler","workbook","ooxml","ExcelExporter","autoWidth","sheets","freezePane","_addRangeSelectionRows","_addSingleSelectionRows","Workbook","skipCustomHeight","toDataURLAsync","dataURI","saveAs","fileName","proxyURL","forceProxy","_setExporterColumns","_createExportRows","_rows","_dataRows","_prepareColumn","columnsFilter","curr","elementType","nodeName","isRowSelection","columnMapHandler","fieldAttr","_relatedCell","clearSelection","selectableoptions","checked","prop","allRows","dataSourceOptions","selectedViewIds","selectedKeyNames","ids","_updateCurrentAttr","nextId","descId","headerId","removeAttr","_current","_scrollCurrent","tableContainer","isInLockedContainer","isInContent","scrollableContainer","addBack","_rowVirtualIndex","preventTrigger","siblings","_virtualCellIndex","_lastCellIndex","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","offsetLeft","bottomDistance","edge","dataTables","headerTables","_openHeaderMenu","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","_findCellIndex","startIndex","reversed","_scrollToColumn","HOME","END","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","_handleHome","_handleEnd","_handleSpaceKey","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","collapseRow","_moveColumn","_prevHorizontalCell","_tabNext","_horizontalContainer","expandRow","_nextHorizontalCell","nextAll","_prevVerticalCell","_verticalContainer","_nextVerticalCell","isLeft","ctrl","rowContainer","isInLockedTable","isInBody","isInCell","_handleEditing","active","_toggleCurrent","descriptors","label","_canDrag","dir","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","back","switchRow","isEdited","isIE","_initMobile","_createPane","Pane","viewEngine","viewOptions","renderOnInit","wrapInSections","detachOnHide","detachOnDestroy","_scrollable","originalPageSize","hasVirtualScroll","_createVirtualScrollable","_scrollLeft","isScrollingLeft","_endlessFetchInProgress","_skipRerenderItemsCount","_cacheEditableState","_restoreEditableState","movable","_averageRowHeight","scroll","_focusEditable","loadStart","_progress","loadEnd","_onVirtualPaging","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","virtualColumns","_getByUid","editedField","_canFocusEditable","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","isGridHeightSet","scrollableHeight","initialHeight","newHeight","currentRowHeight","itemsCount","_rowHeight","_sum","_measures","_sortHandler","_requestStart","_error","relatedRow","selectableRow","childCells","originalCells","pagerWrap","_groupPaging","_togglePagerVisibility","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","_columnMenu","menuOptions","hasMultiColumnHeaders","hasLockableColumns","hasStickableColumns","stickable","initCallback","openCallback","closeCallback","stickCallback","unstickCallback","filterHandler","compare","forceUnique","checkSource","owner","stick","unstick","filtering","componentType","kendoColumnMenu","_filterable","columnFilterable","filterInit","filterOpen","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","suggestDataSource","operators","customDataSource","cellOptions","_updateHeader","delay","inputWidth","suggestionOperator","minLength","dataTextField","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","initialColumns","_updateColumnIDs","_checkboxClick","_headerCheckboxClick","_foreignKeyBindings","_fetchForeignKeyValues","_hasBoundForeignKey","dataValueField","checkBox","isSelecting","_tmpl","alt","skipGroupCells","paramName","dirtyCellTemplate","expr","_dirtyCellTemplate","dirtyField","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","stringify","useWithBlock","_virtualCols","considerNext","widths","c","sumOfWidths","colsToRender","firstColspan","lastColspan","widthOfHiddenColumns","virtualCols","columnLeafs","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","_toggleDetails","omitAnimation","detailRow","expanding","masterRow","ariaLabelText","ariaExpandText","toggleClass","detailCell","toggle","correctIdx","classesRegEx","sectionRowIndex","_createHeaderCells","_appendLockedColumnContent","spanIdx","skipHiddenCount","colOffset","detach","lockedCells","_appendLockedColumnHeader","trFilter","hasFilterRow","filterCellOffset","leafColumnsCount","filtercellCells","filterRow","existingFilterRow","syncHeight","hasLockedColumns","hasTHead","headerContent","_updateHeadersAttr","_prepareColumns","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","subgroupsCount","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","firstVisibleColumnGroupHeaderTemplate","groupHeaderTemplate","currentItems","_groupsState","isNew","excludeHeader","_skippedGroups","shift","groupUid","groupObject","currentGroupCount","groupCountAfterCollapse","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_getGroupByUid","_calculateGroupsTotal","_serverGroupsTotal","_currentRangeStart","_groupToCollapse","footersVisibility","groupsCount","groupCount","groupCountAfterExpand","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","_updateContentWidth","predicate","p","originalColumn","columnLeafIndex","_buildSkeleton","loaderHTML","skeleton","isVirtualization","progress","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_renderContent","_renderLockedContent","_restoreCurrent","contentResized","resetTouchEvents","_muteAngularRebind","_restoreSelection","selectedRows","dataItemKey","cmd","_cleanupDetailItems","_angularGroupItems","_angularGroupFooterItems","flatViewLength","endlessAppend","flatView","groupRowBuilderFunc","groupHeaderData","prevElement","newGroupRowElement","currentRow","firstColumnGroupData","alwaysVisible","rows2","containers","containersLength","heights","ExcelMixin","PDFMixin","_drawPDF_autoPageBreak","allPages","startingPage","draw","cont","_destructive","pageNumber","pageNum","drawing","drawDOM","clone","always","toggleUnexportableColumns","err","renderPage","origBody","paddingRight","_initPDFProgress","restore","visibleInExport","visibleInExportOnly","_toggledDuringExport","_drawPDF","exportPage","doc","_drawPDFShadow","avoidLinks","args","paperSize","Group","pb","loading","kendoProgressBar","chunkCount","plugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,qBAAsB,cAAeD,IAC9C,YACG,SAAUE,GAqDP,QAASC,GAAcC,GACnB,OAAcA,EAAPC,IAAaC,QAAQC,EAAeC,GAE/C,QAASC,GAAUC,GAAnB,GAEaC,GADLC,IACJ,KAASD,IAAOD,GACZE,EAAMC,KAAKF,EAAMD,EAAOC,GAE5B,OAAOC,GAAME,OAAOC,KAAK,IAE7B,QAASC,GAAQC,GAAjB,GAEaC,GADLC,EAAO,UACX,KAASD,EAAI,EAAGA,EAAID,EAAIG,SAAUF,EAC9BC,IAASA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IACzEA,GAAQF,EAAII,WAAWH,EAE3B,OAAOC,KAAS,EAEpB,QAASG,KACL,OACIC,MAAO,EACPC,OAAQ,EACRC,SAAU,GA0DlB,QAASC,GAAYtB,EAAMuB,EAAOC,GAC9B,MAAOC,GAAYC,QAAQC,QAAQ3B,EAAMuB,EAAOC,GAtIvD,GAEOI,GAiDAzB,EACAC,EA0BAyB,EACAC,EAKAL,CAnFJM,QAAOC,MAAMC,KAAOF,OAAOC,MAAMC,SAC7BL,EAAWI,MAAME,MAAMC,QACvBC,KAAM,SAAUC,GACZC,KAAKC,MAAQF,EACbC,KAAKE,QAAU,EACfF,KAAKG,SAETC,IAAK,SAAUnC,EAAKoC,GAAf,GACGC,GAAMN,KAAKG,KACXI,GACAtC,IAAKA,EACLoC,MAAOA,EAEXC,GAAIrC,GAAOsC,EACNP,KAAKQ,OAGNR,KAAKS,MAAMC,MAAQH,EACnBA,EAAMI,MAAQX,KAAKS,MACnBT,KAAKS,MAAQF,GAJbP,KAAKQ,MAAQR,KAAKS,MAAQF,EAM1BP,KAAKE,SAAWF,KAAKC,OACrBK,EAAIN,KAAKQ,MAAMvC,KAAO,KACtB+B,KAAKQ,MAAQR,KAAKQ,MAAME,MACxBV,KAAKQ,MAAMG,MAAQ,MAEnBX,KAAKE,WAGbU,IAAK,SAAU3C,GACX,GAAIsC,GAAQP,KAAKG,KAAKlC,EACtB,IAAIsC,EAeA,MAdIA,KAAUP,KAAKQ,OAASD,IAAUP,KAAKS,QACvCT,KAAKQ,MAAQD,EAAMG,MACnBV,KAAKQ,MAAMG,MAAQ,MAEnBJ,IAAUP,KAAKS,QACXF,EAAMI,QACNJ,EAAMI,MAAMD,MAAQH,EAAMG,MAC1BH,EAAMG,MAAMC,MAAQJ,EAAMI,OAE9BJ,EAAMI,MAAQX,KAAKS,MACnBF,EAAMG,MAAQ,KACdV,KAAKS,MAAMC,MAAQH,EACnBP,KAAKS,MAAQF,GAEVA,EAAMF,SAIrBxC,EAAgB,eAChBC,EAAQ,IA0BRyB,GAAoBsB,mBAAoB,GAEpB,mBAAbC,YACPtB,EAAoBsB,SAASC,cAAc,OAC3CvB,EAAkBP,MAAM+B,QAAU,wQAElC7B,EAAcO,MAAME,MAAMC,QAC1BC,KAAM,SAAUmB,GACZjB,KAAKkB,OAAS,GAAI5B,GAAS,KAC3BU,KAAKiB,QAAUzD,EAAEqC,UAAWN,EAAiB0B,IAEjD5B,QAAS,SAAU3B,EAAMuB,EAAOgC,GAAvB,GAODE,GACAC,EACAC,EAIAtB,EACAb,EACAoC,EACKrD,EACDoC,EAKJkB,CAlBJ,IAHgB,SAAZN,IACAA,MAEgB,SAATvD,GAAiC,OAATA,EAC/B,MAAOkB,IAKX,IAHIuC,EAAWpD,EAAUkB,GACrBmC,EAAW9C,EAAQZ,EAAOyD,GAC1BE,EAAerB,KAAKkB,OAAON,IAAIQ,GAE/B,MAAOC,EAEPtB,GAAOnB,IACPM,EAAa+B,EAAQO,KAAOhC,EAC5B8B,EAAiBtB,KAAKyB,kBAAkBC,WAAU,EACtD,KAASzD,IAAOgB,GACRoB,EAAQpB,EAAMhB,GACG,SAAVoC,IACPnB,EAAWD,MAAMhB,GAAOoC,EAgBhC,OAbIkB,GAAUN,EAAQxD,iBAAkB,EAAQA,EAAcC,GAAeA,EAAPC,GACtEuB,EAAWyC,YAAcJ,EACzBrC,EAAW0C,YAAYN,GACvBR,SAASe,KAAKD,YAAY1C,GACtBqC,EAAQ7C,SACRqB,EAAKlB,MAAQK,EAAW4C,YAAc9B,KAAKiB,QAAQJ,mBACnDd,EAAKjB,OAASI,EAAW6C,aACzBhC,EAAKhB,SAAWuC,EAAeU,UAAYhC,KAAKiB,QAAQJ,oBAExDd,EAAKlB,MAAQ,GAAKkB,EAAKjB,OAAS,GAChCkB,KAAKkB,OAAOd,IAAIgB,EAAUrB,GAE9Bb,EAAW+C,WAAWC,YAAYhD,GAC3Ba,GAEX0B,gBAAiB,WACb,GAAIU,GAASrB,SAASC,cAAc,MAEpC,OADAoB,GAAOlD,MAAM+B,QAAU,0DAA4DhB,KAAKiB,QAAQJ,mBAAqB,eAAiBb,KAAKiB,QAAQJ,mBAAqB,uBACjKsB,KAGfhD,EAAYC,QAAU,GAAID,GAI1BO,MAAM0C,WAAW1C,MAAMC,MACnBL,SAAUA,EACVH,YAAaA,EACbH,YAAaA,EACbjB,UAAWA,EACXO,QAASA,EACTb,cAAeA,KAErBgC,OAAOC,MAAM2C,SACC,kBAAV9E,SAAwBA,OAAO+E,IAAM/E,OAAS,SAAUgF,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUlF,EAAGC,QACVA,OAAO,cACH,aACA,qBACA,iBACA,eACA,mBACA,mBACA,kBACA,cACA,mBACA,iBACA,oBACA,kBACA,cACA,cACA,aACA,oBACA,YACA,eACA,aACA,gBACDD,IACL,WA6yRE,MA5sRC,UAAUE,EAAGkF,GA+UV,QAASC,GAAWC,EAAUC,GAC1B,MAAO,IAAMnD,GAAMoD,KAAKF,GAAY,IAAMC,EAAY,IAE1D,QAASE,GAAWC,GAChB,MAAWC,OAAMD,EAAQ,GAAG3E,KAAK,wCAErC,QAAS6E,GAAoBC,GACzB,GAAIL,GAAMM,EAAS,GACnB,IAAID,EAAY,CACZ,SAAWA,KAAeE,GACtB,MAAOF,EAEX,KAAKL,IAAQK,GACgB,KAArBA,EAAWL,KACXM,GAAUN,EAAO,KAAOK,EAAWL,GAAQ,KAIvD,MAAOM,GAqDX,QAASE,GAAOC,EAASlD,GACrB7C,EAAE,oCAAqC+F,GAASC,IAAI1C,SAASe,MAAM4B,IAAI,SAAUpD,GAErF,QAASqD,GAAQC,EAAUC,EAAQC,EAAMC,EAAQd,GAAjD,GAIae,GAHLC,EAAcJ,CAGlB,KAFAA,EAASpG,IACTwF,EAAQA,GAAS,EACRe,EAAM,EAAGA,EAAMf,EAAOe,IAC3BH,EAASA,EAAOJ,IAAIG,EAASM,GAAGD,EAAcD,GAE/B,iBAARF,GACPD,EAAOE,EAAS,eAAiB,eAAeH,EAASM,GAAGJ,IAE5DD,EAAOM,SAASL,GAGxB,QAASM,GAASC,EAAeC,EAASC,GACtC,MAAO9G,GAAE4G,GAAeZ,IAAIa,GAASE,KAAKD,GAE9C,QAASE,GAAyBjB,EAASkB,EAAWC,GAClD,GAAIX,GAAKrF,EAAQiG,EAASC,CAE1B,KADAF,EAAYG,GAAQH,GAAyBA,GAAZA,GAC5BX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAClDY,EAAUD,EAASX,GACfe,GAAcH,IAAYA,EAAQI,QAClCH,EAAcD,EAAQK,MAAQL,EAAQjH,KACtC+G,EAAUQ,GAAGC,GAAQC,GAAI,aAAeP,GAAe,IAAIhH,QAAQ,MAAO,KAAOgH,YAAaA,GAAeQ,GAAMT,EAAQI,MAAOxB,KAI9I,QAAS8B,GAAiBC,EAASC,EAASC,EAAMC,EAAQC,GACtD,MAAOpF,IAAIgF,EAAS,SAAUK,GAAV,GAEZC,GAQAC,CAcJ,OAvBAF,SAAgBA,KAAWtC,IAAWyC,MAAOH,GAAWA,EAExDA,EAAOD,UAAYA,EACdK,EAAUJ,KAAWH,IACtBG,EAAOxC,WAAa6C,GAAeL,EAAOxC,YAC1CwC,EAAOM,iBAAmBD,GAAeL,EAAOM,kBAChDN,EAAOO,iBAAmBF,GAAeL,EAAOO,kBAChDN,GAAS,GAETC,EAAMnG,GAAMyG,OACZV,IAAWE,EAAOF,SAClBE,EAAOF,OAASA,GAEpBE,EAAOO,iBAAmBrG,IAASuG,QAASV,GAAaC,EAAOO,kBAC3DP,EAAOO,iBAAiBG,GAIzBR,EAAMF,EAAOO,iBAAiBG,IAH9BV,EAAOO,iBAAmBrG,IAASwG,GAAIR,GAAOF,EAAOO,kBACrDP,EAAOE,IAAMA,GAIbF,EAAOL,UACPK,EAAOL,QAAUD,EAAiBM,EAAOL,QAASC,EAASK,EAAQD,EAAOF,OAAQC,EAAYA,EAAY,IAAMG,EAAMA,IAEnHhG,IACH0F,QAASA,EACTK,OAAQA,EACRH,OAAQA,GACTE,KAGX,QAASW,GAAaX,EAAQL,GAC1B,GAAIiB,KAEJ,OADAC,GAAcb,EAAQL,EAASiB,GACxBA,EAAQA,EAAQ7H,OAAS,GAEpC,QAAS8H,GAAcb,EAAQL,EAASiB,GAAxC,GAEaxC,GAIG0C,CAJZ,KADAF,EAAUA,MACDxC,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CAC3C,GAAI4B,IAAWL,EAAQvB,GACnB,OAAO,CACJ,IAAIuB,EAAQvB,GAAKuB,QAAS,CAG7B,GAFImB,EAAWF,EAAQ7H,OACvB6H,EAAQpI,KAAKmH,EAAQvB,IAChByC,EAAcb,EAAQL,EAAQvB,GAAKuB,QAASiB,GAG7C,OAAO,CAFPA,GAAQG,OAAOD,EAAUF,EAAQ7H,OAAS+H,IAMtD,OAAO,EAEX,QAASE,GAAoBhB,EAAQiB,GACjCC,EAAclB,EAAQiB,EAASA,GAEnC,QAASC,GAAclB,EAAQiB,EAASE,GACpC,GAAIC,GAASD,EAAOE,GAAoBhB,EACxCL,GAAOC,QAAUgB,EACjBjB,EAAOxC,WAAa4D,EAAOpB,EAAOxC,YAClCwC,EAAOM,iBAAmBc,EAAOpB,EAAOM,kBACxCN,EAAOO,iBAAmBa,EAAOpB,EAAOO,kBAE5C,QAASe,GAAyBtB,EAAQiB,GACtCM,EAAsBvB,EACtB,IAAIwB,GAAcxB,EAAOyB,YACzBP,GAAclB,EAAQiB,EAASO,EAAcxB,EAAO0B,aAAeT,GAEvE,QAASM,GAAsBvB,GAC3BA,EAAO0B,aAAeC,EAAmB3B,GAE7C,QAAS2B,GAAmB3B,GACxB,MAAOA,KAAW4B,EAAY5B,EAAO6B,SAAWD,EAAY5B,EAAO6B,QAAU9H,GAAM2H,aAAa1B,EAAO6B,QAE3G,QAASC,KACL,MAA8B,SAAvBzH,KAAKf,MAAMyI,QAEtB,QAASC,GAAiBC,GACtB,MAAuC,SAAhCpK,EAAEoK,GAAS,GAAG3I,MAAMyI,QAE/B,QAAS3B,GAAUJ,GACf,MAAOkC,IAAgBlC,IAASjH,OAAS,EAE7C,QAASmJ,GAAevC,GACpB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,GAAIvC,IAAUuC,EAAOC,QAAUD,EAAO0B,gBAAiB,CAIvD,OAHIjE,IAAUuC,EAAOL,UACjBlC,EAASyE,EAAelC,EAAOL,SAAS5G,OAAS,GAE9C0E,IAGf,QAAS2E,GAAiBzC,GAA1B,GAEQK,GACKnH,EAFL4E,IAEJ,KAAS5E,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAAK,CAErC,GADAmH,EAASL,EAAQ9G,IACZ+I,EAAY5B,EAAO6B,OAAQ,CAC5B,IAAKD,EAAY5B,EAAOqC,gBACpB,KAAUC,OAAM,gFAEpB7E,GAAOjF,KAAKwH,GAEZA,EAAOL,UACPlC,EAASA,EAAO8E,OAAOH,EAAiBpC,EAAOL,WAGvD,MAAOlC,GAEX,QAASmE,GAAYlH,GACjB,MAAwB,KAAVA,EAElB,QAAS8H,GAAShE,GACd,MAAO3G,GAAE2G,GAAU7D,IAAI,WACnB,MAAON,MAAKoI,YAGpB,QAASC,GAAkBC,EAAMhD,EAASiD,GAA1C,GACQC,GAAoBC,EAAMC,EAAcpD,IACxCqD,EAAuBF,EAAMG,EAAiBtD,IAC9CuD,EAAUP,EAAKO,OAGXP,GAAKO,QAFTN,EACIC,EAAoBG,EACLE,GAAWL,EAAoBG,IAAyB,EAExDE,GAAWF,EAAuBH,GAGjDA,EAAoBG,EACLE,GAAWL,EAAoBG,GAE/BE,GAAWF,EAAuBH,IAAsB,EAInF,QAASM,GAAgBxD,EAASO,GAC9B,IAAK,GAAIrH,GAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAChC,GAAI8G,EAAQ9G,GAAGqH,KAAOA,EAClB,MAAOP,GAAQ9G,GAI3B,QAASuK,GAAkBzD,EAASQ,GAChC,IAAK,GAAItH,GAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAChC,GAAI8G,EAAQ9G,GAAGsH,OAASA,EACpB,MAAOR,GAAQ9G,GAI3B,QAASwK,GAA2BC,EAASC,EAAQC,EAAO7D,EAASb,EAAW2E,EAAaC,EAAQC,GAArG,GAIYvG,GACAwG,EAJJC,EAAef,EAAMQ,GACrBQ,EAAchB,GAAOS,GACrBM,GAAeC,IACX1G,EAAiBE,MAAMoG,EAAS,GAAGhL,KAAK,6DACxCkL,EAAOH,EAAYM,SAAS,uBAChClM,EAAMyF,MAAMuG,EAAeC,EAAc,GAAGpL,KAAK,OAAS0E,EAAa,UAAU4G,YAAYJ,EAAKK,SAEtGC,EAAgBT,EAAaI,EAAeC,GAC5CK,EAAUX,EAAO7D,EAASb,EAAW2E,EAAaE,GAEtD,QAASS,GAAgBC,EAAO1E,EAAS2E,GAAzC,GAEQC,GACA5B,EACA6B,EAEAC,EACAb,EACAjF,EAIKP,EAASrF,CAAlB,KAXAuL,EAASA,GAAU,EAGfE,EAAa7E,EACjBA,EAAU+E,GAAY/E,GAClB8E,KACAb,EAAOS,EAAMzF,KAAK,0BAClBD,EAAS,WACT,GAAIgG,GAAK9M,EAAEwC,KACX,QAAQsK,EAAGC,SAAS,kBAAoBD,EAAGC,SAAS,qBAE/CxG,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACrDmG,EAAWM,EAAelF,EAAQvB,GAAMoG,GACnCC,EAAMF,EAASO,OAChBL,EAAMF,EAASO,KAAOlB,EAAKtF,GAAGiG,EAASO,KAAKlG,KAAK,aAAaD,OAAOA,IAEzEgE,EAAO8B,EAAMF,EAASO,KAAKxG,GAAGiG,EAAS5B,MACvCA,EAAKxF,KAAKpD,GAAMoD,KAAK,SAAUmH,EAASlG,EAE5C,OAAOuB,GAAQ5G,OAEnB,QAAS+J,GAAMnD,GAAf,GAGavB,GAEG2G,EAJRtH,EAAS,EACTuH,EAAM,CACV,KAAS5G,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAKuB,UACToF,EAAOjC,EAAMnD,EAAQvB,GAAKuB,SAC1BoF,EAAOC,IACPA,EAAMD,GAIlB,OAAOtH,GAASuH,EAEpB,QAASb,GAAUX,EAAO7D,EAASb,EAAW2E,EAAaE,GAA3D,GAKQvF,GAKA2F,EATAkB,EAAiBC,EAAsB1B,EAAM,GAAI7D,GACjDwF,EAAMrG,EAAUF,KAAK,6BAA+BqG,EAAeH,IAAM,iBACzEM,EAAIvN,IACJwG,EAAc4G,EAAetC,IAEjC,KAAKvE,EAAM,EAAGA,EAAMoF,EAAMzK,OAAQqF,IAC9BgH,EAAIA,EAAEvH,IAAIsH,EAAI7G,GAAGD,EAAcD,GAInC,KAFAqF,EAAY7E,KAAK,0BAA0BN,GAAG2G,EAAeH,KAAKnB,GAAQyB,GACtErB,KACC3F,EAAM,EAAGA,EAAMoF,EAAMzK,OAAQqF,IAC1BoF,EAAMpF,GAAKuB,UACXoE,EAAWA,EAASxB,OAAOiB,EAAMpF,GAAKuB,SAG1CoE,GAAShL,QACToL,EAAUJ,EAAUpE,EAASb,EAAW2E,EAAaE,GAG7D,QAASkB,GAAe7E,EAAQL,EAASmF,EAAKO,GAA9C,GACQ5H,GACAW,CAIJ,KAHA0G,EAAMA,GAAO,EACbO,EAAaA,MACbA,EAAWP,GAAOO,EAAWP,IAAQ,EAChC1G,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CACvC,GAAIuB,EAAQvB,IAAQ4B,EAAQ,CACxBvC,GACIkF,KAAM0C,EAAWP,GACjBA,IAAKA,EAET,OACG,GAAInF,EAAQvB,GAAKuB,UACpBlC,EAASoH,EAAe7E,EAAQL,EAAQvB,GAAKuB,QAASmF,EAAM,EAAGO,IAE3D,KAGRA,GAAWP,KAEf,MAAOrH,GAEX,QAAS6H,GAA6B3F,EAAS4F,EAAOtH,EAAQuH,GAA9D,GACQjC,GAEAkC,EADA3F,IAAW7B,EAAO6B,MAEtB,GACIyD,GAAS5D,EAAQ4F,GACjBA,GAASC,EAAM,KACfC,IAAiBlC,EAAOzD,aACnByD,GAAUgC,MAAcA,EAAQ5F,EAAQ5G,QAAUwK,GAAUtF,IAAWsF,EAAO5D,SAAW8F,IAAiB3F,EACnH,OAAOyD,GAEX,QAASmC,GAAkB/F,EAAS4D,EAAQtF,EAAQE,EAAQwH,GAA5D,GAKYC,GACAC,EAMAN,EAQAlH,EAEAyH,CArBR,OAAIvC,GAAO5D,SACP4D,EAASA,EAAO5D,QACT4D,EAAOpF,EAAS,EAAIoF,EAAOxK,OAAS,KAEvC6M,EAASjF,EAAa4C,EAAQ5D,GAG9BkG,EADAD,EACgBA,EAAOjG,QAEPA,EAEhB4F,EAAQQ,GAAQxC,EAAQsC,GACd,IAAVN,GAAepH,EACfoH,IACOA,GAASM,EAAc9M,OAAS,IAAMoF,IAAWF,EAAO6B,SAAWyD,EAAO5D,UAAYxB,EAC7FoH,KACOA,EAAQ,GAAe,IAAVA,IAAgBpH,IACpCoH,IAEAlH,EAAc0H,GAAQ9H,EAAQ4H,GAClCtC,EAAS+B,EAA6BO,EAAeN,EAAOtH,EAAQI,EAAckH,GAC9EO,EAAcC,GAAQxC,EAAQoC,KAC9BpC,EAAO5D,SAAamG,GAAeA,IAAgBD,EAAc9M,OAAS,IAG1EwK,GAAUA,GAAUtF,GAAUsF,EAAO5D,QAC9B+F,EAAkB/F,EAAS4D,EAAQtF,EAAQE,EAAQwH,GAHnD,MAQnB,QAAST,GAAsBlF,EAAQL,EAASmF,EAAKO,GAArD,GACQ5H,GACAW,CAIJ,KAHA0G,EAAMA,GAAO,EACbO,EAAaA,MACbA,EAAWP,GAAOO,EAAWP,IAAQ,EAChC1G,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CACvC,GAAIuB,EAAQvB,IAAQ4B,EAAQ,CACxBvC,GACIkF,KAAM0C,EAAWP,GACjBA,IAAKA,EAET,OACG,GAAInF,EAAQvB,GAAKuB,UACpBlC,EAASyH,EAAsBlF,EAAQL,EAAQvB,GAAKuB,QAASmF,EAAM,EAAGO,IAElE,KAGH1F,GAAQvB,GAAK6B,QACdoF,EAAWP,KAGnB,MAAOrH,GAEX,QAASuI,GAAsBrG,GAC3B,GAAIlC,GAASwI,EAAYlD,EAAcpD,GACvC,OAAOlC,GAAO8E,OAAO0D,EAAYhD,EAAiBtD,KAEtD,QAASuG,GAA2BD,EAAatG,EAAStB,EAAayH,GAAvE,GACQ9F,GAASiG,EAAY5H,GACrBkF,EAAS0C,EAAYH,GACrBF,EAASjF,EAAaX,EAAQL,EAElC,OADAA,GAAUiG,EAASA,EAAOjG,QAAUA,EAC7BoG,GAAQxC,EAAQ5D,GAE3B,QAASsG,GAAYtG,GAArB,GAGavB,GAFLX,KACAsG,IACJ,KAAS3F,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACpCX,EAAOjF,KAAKmH,EAAQvB,IAChBuB,EAAQvB,GAAKuB,UACboE,EAAWA,EAASxB,OAAO5C,EAAQvB,GAAKuB,SAMhD,OAHIoE,GAAShL,SACT0E,EAASA,EAAO8E,OAAO0D,EAAYlC,KAEhCtG,EAEX,QAAS0I,GAAuBxG,GAAhC,GAEQK,GACK5B,EAFLgI,EAAU,CAEd,KAAShI,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACpC4B,EAASL,EAAQvB,GACb4B,EAAOL,QACPyG,GAAWD,EAAuBnG,EAAOL,SAClCK,EAAOC,QACdmG,GAGR,OAAOA,GAEX,QAASC,GAAUC,GAAnB,GAEalI,GAASrF,EADdG,EAAQ,CACZ,KAASkF,EAAM,EAAGrF,EAASuN,EAAKvN,OAAQqF,EAAMrF,EAAQqF,IAC7CkI,EAAKlI,GAAK6B,SACX/G,GAASqN,SAASD,EAAKlI,GAAKlF,MAAO,IAG3C,OAAOA,GAEX,QAASsN,GAAaF,GAAtB,GACQG,GACKrI,EAASrF,EADJG,EAAQ,CACtB,KAASkF,EAAM,EAAGrF,EAASuN,EAAKvN,OAAQqF,EAAMrF,EAAQqF,IAClDqI,EAAWH,EAAKlI,GAAK9E,MAAMJ,MACvBuN,GAAYA,EAASC,QAAQ,WAC7BxN,GAASqN,SAASE,EAAU,IAGpC,OAAOvN,GAEX,QAASyN,GAAmB7H,EAAWzB,GAAvC,GAEQ6F,GACK9E,EAFLqG,EAAQ3F,EAAUF,KAAK,gEAE3B,KAASR,EAAM,EAAGA,EAAMqG,EAAM1L,OAAQqF,IAClC8E,EAAUuB,EAAMrG,GAAK8E,QACjBA,EAAU,IACVuB,EAAMrG,GAAK8E,QAAUA,EAAU7F,GAAS,GAIpD,QAAS6G,GAAgBpF,EAAWzB,GAApC,GAEae,GADLqG,EAAQ3F,EAAUF,KAAK,gEAC3B,KAASR,EAAM,EAAGA,EAAMqG,EAAM1L,OAAQqF,IAClCqG,EAAMrG,GAAK8E,SAAW7F,EAG9B,QAASuJ,GAAgB9H,GAAzB,GAMaV,GALLwF,EAAO9E,EAAUF,KAAK,yBACtBiI,EAAiBjD,EAAKjF,OAAO,WAC7B,OAAQ9G,EAAEwC,MAAM0J,WAAWhL,SAC5B+N,SAAS/N,OACR0L,EAAQb,EAAKhF,KAAK,0CACtB,KAASR,EAAM,EAAGA,EAAMqG,EAAM1L,OAAQqF,IAC9BqG,EAAMrG,GAAK8E,QAAU,IACrBuB,EAAMrG,GAAK8E,SAAW2D,EAG9B,OAAOjD,GAAK7K,OAAS8N,EAEzB,QAASE,GAAoBpH,EAAS8E,EAAOb,EAAMoD,EAAU1C,GACzD,GAAIlG,GAAK0G,EAAK/L,EAAQgL,IACtB,KAAK3F,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD0G,EAAMlB,EAAKoD,OACXlC,EAAItM,KAAKiM,EAAMnG,GAAGgG,EAASlG,IAC3BwF,EAAKoD,GAAYlC,EACbnF,EAAQvB,GAAKuB,UACboE,EAAWA,EAASxB,OAAO5C,EAAQvB,GAAKuB,SAG5CoE,GAAShL,QACTgO,EAAoBhD,EAAUU,EAAOb,EAAMoD,EAAW,EAAG1C,EAAS3E,EAAQ5G,QAGlF,QAASkO,GAAsBhF,EAASiF,EAAMC,GAC1ClF,EAAQnE,KACJoJ,KAAQA,EACRC,MAASA,IAGjB,QAASC,GAAsBpH,EAAQqH,EAAWC,GAC9CtH,EAAOqH,GAAarH,EAAOqH,OAC3BrH,EAAOqH,GAAWC,GAAYtH,EAAOqH,GAAWC,IAAa,GAEjE,QAASC,GAAmBvH,EAAQqH,EAAWC,EAAU5M,GACrD0M,EAAsBpH,EAAQqH,EAAWC,GACL,KAAhCtH,EAAOqH,GAAWC,GAClBtH,EAAOqH,GAAWC,IAAa,IAAM5M,EAErCsF,EAAOqH,GAAWC,GAAY5M,EAGtC,QAAS8M,GAAsBxH,EAAQqH,EAAWC,EAAU5M,GACxD0M,EAAsBpH,EAAQqH,EAAWC,GACzCtH,EAAOqH,GAAWC,GAAYtH,EAAOqH,GAAWC,GAAUrP,QAAQyC,EAAO,IAE7E,QAASqI,GAAcpD,GACnB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAOF,SAGtB,QAASmD,GAAiBtD,GACtB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,OAAQA,EAAOF,SAGvB,QAAS2H,GAAc9H,GACnB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAO0H,SAAW1H,EAAOF,SAGxC,QAAS6H,GAAqBhI,GAC1B,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAO0H,SAAW1H,EAAOF,QAAUM,EAAUJ,KAG5D,QAAS4H,GAAwBjI,GAC7B,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,OAAQA,EAAOF,QAAUM,EAAUJ,KAG3C,QAAS6H,IAAqBlI,GAC1B,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAOF,QAAUM,EAAUJ,KAG1C,QAAS8H,IAAmBnI,GAA5B,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAK6B,SAGbN,EAAQvB,GAAKuB,QACblC,EAASA,EAAO8E,OAAOuF,GAAmBnI,EAAQvB,GAAKuB,UAEvDlC,EAAOjF,KAAKmH,EAAQvB,IAG5B,OAAOX,GAEX,QAASsK,IAAapI,GAAtB,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAKuB,UACblC,EAASA,EAAO8E,OAAO5C,EAAQvB,GAAKuB,SAG5C,OAAOlC,GAEX,QAASuK,IAAoBrI,GACzB,GAAIlC,GAASsK,GAAapI,EAI1B,OAHAlC,GAASA,EAAOkB,OAAO,SAAUsJ,GAC7B,OAAQA,EAAEhI,SAIlB,QAASyE,IAAY/E,GAArB,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAC/BuB,EAAQvB,GAAKuB,QAIlBlC,EAASA,EAAO8E,OAAOmC,GAAY/E,EAAQvB,GAAKuB,UAH5ClC,EAAOjF,KAAKmH,EAAQvB,GAK5B,OAAOX,GAEX,QAASyK,IAAiBvI,GAA1B,GAGavB,GAFLX,IAEJ,KADAkC,EAAU+E,GAAY/E,GACbvB,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACR,gBAAjBuB,GAAQvB,GACfX,EAAOjF,KAAKmH,EAAQvB,IACbuB,EAAQvB,GAAK+B,OACpB1C,EAAOjF,KAAKmH,EAAQvB,GAAK+B,MAGjC,OAAO1C,GAEX,QAAS0K,IAAcrJ,GAAvB,GAaQsJ,GAZAxE,EAAO9E,EAAUF,KAAK,0BACtBD,EAAS,WACT,GAAIgG,GAAK9M,EAAEwC,KACX,QAAQsK,EAAGC,SAAS,kBAAoBD,EAAGC,SAAS,qBAEpDH,EAAQ5M,GAuBZ,OAtBI+L,GAAK7K,OAAS,IACd0L,EAAQb,EAAKhF,KAAK,MAAMD,OAAOA,GAAQA,OAAO,WAC1C,MAAOtE,MAAK6I,QAAU,KAG9BuB,EAAQA,EAAM5G,IAAI+F,EAAKK,OAAOrF,KAAK,MAAMD,OAAOA,IAC5CyJ,EAAYrO,GAAMoD,KAAK,SAC3BsH,EAAMhM,KAAK,SAAU4P,EAAGC,GAAb,GAGHC,GACAC,CASJ,OAZAH,GAAIxQ,EAAEwQ,GACNC,EAAIzQ,EAAEyQ,GACFC,EAASF,EAAElL,KAAKiL,GAChBI,EAASF,EAAEnL,KAAKiL,GAChBG,IAAWxL,IACXwL,EAAS1Q,EAAEwQ,GAAG9C,SAEdiD,IAAWzL,IACXyL,EAAS3Q,EAAEyQ,GAAG/C,SAElBgD,EAAShC,SAASgC,EAAQ,IAC1BC,EAASjC,SAASiC,EAAQ,IACnBD,EAASC,EAAS,EAAID,EAASC,KAAc,IAEjD/D,EAEX,QAASgE,IAAmB9F,GAA5B,GAOYiD,GACA8C,EAGApE,EACAiB,EACAoD,EAGKvK,EAMDwK,EArBR9J,EAAY6D,EAAKkG,QAAQ,SACzBpL,EAAS5F,IAAIgG,IAAI8E,GACjBmC,EAAMnC,EAAKkG,QAAQ,MACnBC,EAAahK,EAAUF,KAAK,yBAC5BmK,EAAQD,EAAWvD,MAAMT,EAC7B,IAAIiE,EAAQ,EAAG,CAUX,IATInD,EAASkD,EAAWxK,GAAGyK,EAAQ,GAC/BL,EAA0B9C,EAAOhH,KAAK,2CAA2CD,OAAO,WACxF,OAAQ9G,EAAEwC,MAAM8C,KAAK,aAErBmH,EAAS,EACTiB,EAAQT,EAAIlG,KAAK,2CAA2C2G,MAAM5C,GAClEgG,EAAYhG,EAAKqG,QAAQ,yCAAyCrK,OAAO,WACzE,MAAOtE,MAAK4O,QAAU,IAEjB7K,EAAM,EAAGA,EAAMuK,EAAU5P,OAAQqF,IACtCkG,GAAUqE,EAAUvK,GAAK6K,SAAW,CAIxC,KAFA1D,GAAS2D,KAAKlE,IAAIV,EAAS,EAAG,GAC9BA,EAAS,EACJlG,EAAM,EAAGA,EAAMsK,EAAwB3P,OAAQqF,IAOhD,GANIwK,EAAaF,EAAwBpK,GAAGF,GAExCkG,GADAsE,EAAWzL,KAAK,gBACNyL,EAAW,GAAGO,aAAa,gBAE3B,EAEV5D,GAASnH,GAAOmH,EAAQjB,EAAQ,CAChC7G,EAASgL,GAAmBG,GAAY/K,IAAIJ,EAC5C,QAIZ,MAAOA,GAEX,QAAS2L,IAAkBzG,GAA3B,GAQY0G,GACAV,EACAvK,EAIAkG,EAIAG,EACAwE,EAKIvO,EAvBRoE,EAAY6D,EAAKkG,QAAQ,SACzBpL,EAAS5F,IAAIgG,IAAI8E,GACjBmC,EAAMnC,EAAKkG,QAAQ,MACnBC,EAAahK,EAAUF,KAAK,yBAC5BmK,EAAQD,EAAWvD,MAAMT,GAAOnC,EAAK,GAAGO,QACxCoG,EAAcvP,GAAMoD,KAAK,UAC7B,IAAI4L,GAASD,EAAW/P,OAAS,EAAG,CAQhC,IAPIsQ,EAAQvE,EAAIyE,OACZZ,EAAYhG,EAAKqG,QAAQ,yCAE7BL,EAAYA,EAAUhK,OAAO,WACzB,OAAQtE,KAAK6I,SAA4B,IAAjB7I,KAAK6I,UAE7BoB,EAAS,EACRlG,EAAM,EAAGA,EAAMuK,EAAU5P,OAAQqF,IAClCkG,GAAUiC,SAASoC,EAAUrK,GAAGF,GAAKjB,KAAKmM,GAAc,KAAO,CAKnE,KAHI7E,EAAQ4E,EAAMzK,KAAK,2CACnBqK,EAAU1C,SAAS5D,EAAKxF,KAAKmM,GAAc,KAAO,EACtDlL,EAAM,EACCA,EAAM6K,GACTI,EAAQ5E,EAAMnG,GAAGF,EAAMkG,GACvB7G,EAASA,EAAOI,IAAIuL,GAAkBC,IAClC3O,EAAQ6L,SAAS8C,EAAMlM,KAAKmM,GAAc,IAC1C5O,EAAQ,IACRuO,GAAWvO,EAAQ,GAEvB0D,IAGR,MAAOX,GAEX,QAAS+L,IAAcC,EAAOC,EAAOC,EAAMC,GACvC,GAAIC,GAAaC,EAAML,CAavB,OAZIG,IACAH,EAAMG,QAENG,GACAN,EAAM,GAAGO,UAAYL,GAErBE,EAAc1O,SAASC,cAAc,OACrCyO,EAAYG,UAAY,iBAAmBL,EAAO,mBAClDF,EAAQI,EAAYI,WAAWA,WAC/BP,EAAM,GAAGQ,aAAaT,EAAOK,EAAI,IACjCL,EAAQ5R,EAAE4R,IAEPA,EAEX,QAASpJ,IAAelD,GACpBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,KASjB,OARKA,IAGDA,EAAQA,EAAMrB,QAAQ,iBAAkB,gBACnCqB,EAAM6Q,MAAM,eACb7Q,EAAQA,EAAMrB,QAAQ,SAAU,qBAJpCqB,EAAQ,eAOLY,MAAWiD,GAAQ7D,MAAOA,IAErC,QAAS8Q,IAAejN,GACpBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,OAAS,EAC1B,OAAOA,GAAMoN,QAAQ,qBAEzB,QAASrF,IAAkBlE,GACvBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,KAIjB,OAHIA,KACA6D,EAAK7D,MAAQA,EAAMrB,QAAQ,+BAAgC,KAExDkF,EAEX,QAASkN,IAAcX,EAAOxH,EAAgBoI,EAAY5G,GACtD,GAAwCxK,GAApCqR,EAAWb,EAAM9K,KAAK,aAAqB0H,EAAO3L,GAAIuH,EAAgB,SAAUlC,GAE5E,MADA9G,GAAQ8G,EAAO9G,MACXA,GAAiC,IAAxBqN,SAASrN,EAAO,IAClBa,GAAMyQ,OAAO,iCAAmCtR,KAAUwE,GAASxE,EAAQA,EAAQ,MAEvF,aAEXoR,GAAcC,EAAS3L,KAAK,oBAAoB7F,SAChDuN,EAAKvF,OAAO,EAAG,EAAG,mCAElBwJ,EAASxR,QACTwR,EAASzD,SAEbyD,EAAW1S,EAAMyF,MAAMoG,EAAS,GAAGhL,KAAK,6BAA+B4N,EAAK5N,KAAK,KAC5E6R,EAASE,GAAG,cACbF,EAAW1S,EAAE,eAAe6S,OAAOH,IAEvCb,EAAMiB,QAAQJ,GAElB,QAASK,IAAqB9L,EAAWa,GAAzC,GAEQvB,GAAKyM,EADLC,EAAY,EAEZC,EAAKjM,EAAUF,KAAK,wBACxB,KAAKR,EAAM,EAAGyM,EAAMlL,EAAQ5G,OAAQqF,EAAMyM,EAAKzM,IACvCuB,EAAQvB,GAAK0B,SACbiL,EAAGzM,GAAGF,GAAK4M,aAAaD,EAAGzM,GAAGwM,IAC9BC,EAAKjM,EAAUF,KAAK,yBACpBkM,KAIZ,QAASG,IAAgBC,GACrB,GAAiBC,GAAM/M,EAAKrF,EAAxB0E,IACJ,KAAKW,EAAM,EAAGrF,EAASmS,EAAMnS,OAAQqF,EAAMrF,EAAQqF,IAC/C+M,EAAOD,EAAM9M,GACbX,EAAO0N,EAAKzQ,OAASyQ,EAAKpT,IAE9B,OAAO0F,GAEX,QAAS2N,IAAiB1Q,EAAO8P,EAAQa,EAAczL,GACnD,GAAI0L,GAAeD,GAAgBA,EAAatS,QAAUoG,GAAckM,EAAa,KAAO,SAAWA,GAAa,GAAIE,EAAaD,EAAeL,GAAgBI,GAAc3Q,GAASA,CAE3L,OADA6Q,GAA2B,MAAdA,EAAqBA,EAAa,GACxCf,EAASzQ,GAAMyQ,OAAOA,EAAQe,GAAc3L,KAAY,EAAQ2L,EAAaxR,GAAMyR,WAAWD,GAEzG,QAASE,IAAkBhH,EAAOc,EAAOtE,GAErC,IADA,GAAayK,GAATC,EAAM,EAAUhJ,EAAO8B,EAAMkH,GAC1BhJ,GAAM,CAET,GADA+I,IAAQzK,GAAwC,SAAvB0B,EAAKrJ,MAAMyI,QAChC2J,IAAUE,GAAmBC,KAAKlJ,EAAKmJ,cAAgBvG,EAAQ,EAAG,CAClE5C,EAAKrJ,MAAMyI,QAAUd,EAAU,GAAK,MACpC,OAEJ0B,EAAO8B,IAAQkH,IAGvB,QAASI,IAAgBnI,EAAMoI,GAE3B,IADA,GAAmCrJ,GAAMmC,EAArC1G,EAAM,EAAGrF,EAAS6K,EAAK7K,OACpBqF,EAAMrF,EAAQqF,GAAO,EACxB0G,EAAMlB,EAAKtF,GAAGF,GACV0G,EAAI2F,GAAG,kCACP9H,EAAOmC,EAAIf,SAAS,4CAA4CE,OAChEtB,EAAKxF,KAAK,UAAWoJ,SAAS5D,EAAKxF,KAAK,WAAY,IAAM,KAEtD2H,EAAIF,SAAS,qBAAuBjC,EAAOmC,EAAIf,SAAS,qBAAqB,MAC7EpB,EAAO9K,EAAE8K,GACTA,EAAKxF,KAAK,UAAWoJ,SAAS5D,EAAKxF,KAAK,WAAY,IAAM,GAC1DwF,EAAK/D,KAAK,OAAON,GAAG0N,GAAalF,SACjChC,EAAMnC,EAAK/D,KAAK,aAEpB6M,GAAkB3G,EAAI,GAAGL,MAAOuH,GAAa,IAIzD,QAASC,IAAUC,GAAnB,GAEQf,GACK/M,EAFLX,IAEJ,KAASW,EAAM,EAAGA,EAAM8N,EAAKnT,SACzBoS,EAAOe,EAAK9N,GACN,SAAW+M,IAAQ,SAAWA,IAAQ,SAAWA,IAFtB/M,IAKjCX,EAAOjF,KAAK2S,GACRA,EAAKgB,eACL1O,EAASA,EAAO8E,OAAO0J,GAAUd,EAAKiB,QAG9C,OAAO3O,GAEX,QAAS4O,IAAaH,GAAtB,GAEQf,GACK/M,EAFLX,IAEJ,KAASW,EAAM,EAAGA,EAAM8N,EAAKnT,SACzBoS,EAAOe,EAAK9N,GACN,SAAW+M,IAAQ,SAAWA,IAAQ,SAAWA,IAFtB/M,IAK7B+M,EAAKgB,eACL1O,EAASA,EAAO8E,OAAO8J,GAAalB,EAAKiB,SAE7C3O,EAAOjF,KAAK2S,EAAKmB,WAErB,OAAO7O,GAEX,QAAS8O,IAAgB3I,EAAMoI,GAE3B,IADA,GAAmCrJ,GAAMmC,EAAKnF,EAA1CvB,EAAM,EAAGrF,EAAS6K,EAAK7K,OACpBqF,EAAMrF,EAAQqF,GAAO,EACxB0G,EAAMlB,EAAKtF,GAAGF,GACV0G,EAAI2F,GAAG,kCACP9H,EAAOmC,EAAIf,SAAS,4CAA4CE,OAChEtB,EAAKxF,KAAK,UAAWoJ,SAAS5D,EAAKxF,KAAK,WAAY,IAAM,KAEtD2H,EAAIF,SAAS,qBAAuBjC,EAAOmC,EAAIf,SAAS,qBAAqB,MAC7EpB,EAAO9K,EAAE8K,GACTA,EAAKxF,KAAK,UAAWoJ,SAAS5D,EAAKxF,KAAK,WAAY,IAAM,GAC1DkN,GAAc1H,EAAK/D,KAAK,eAAgBsD,EAAevC,IAAU,EAAO,GACxEmF,EAAMnC,EAAK/D,KAAK,aAEpB6M,GAAkB3G,EAAI,GAAGL,MAAOuH,GAAa,IAIzD,QAASQ,IAAcC,EAAOC,EAAUC,GACpCA,EAAMA,GAAO,CACb,IAAIxB,GAAM/M,EAAKrF,CACf,KAAKqF,EAAM,EAAGrF,EAAS0T,EAAM1T,OAAQqF,EAAMrF,EAAQqF,IAC/C+M,EAAOsB,EAAMnO,GAAGF,GAAK2F,WAAWE,OAChCkH,EAAKhO,KAAK,UAAWoJ,SAAS4E,EAAKhO,KAAK,WAAY,IAAMwP,GAC1DxB,EAAOuB,EAASpO,GAAGF,GAAK2F,WAAWE,OACnCkH,EAAKhO,KAAK,UAAWoJ,SAAS4E,EAAKhO,KAAK,WAAY,IAAMwP,GAGlE,QAASC,IAAWlD,GAApB,GACQtL,GAAKrF,EAAQG,EAAQ,EACrBoN,EAAOoD,EAAM9K,KAAK,gBACtB,KAAKR,EAAM,EAAGrF,EAASuN,EAAKvN,OAAQqF,EAAMrF,EAAQqF,GAAO,EACrDlF,GAASqN,SAASD,EAAKlI,GAAK9E,MAAMJ,MAAO,GAE7C,OAAOA,GAizOX,QAAS2T,IAAgBC,EAAQC,GAAjC,GAIYC,GACAC,EACAnI,EACAoI,CANRJ,GAASA,EAAO,GAChBC,EAASA,EAAO,GACZD,EAAOlJ,KAAK7K,SAAWgU,EAAOnJ,KAAK7K,SAC/BiU,EAAeF,EAAO1Q,aACtB6Q,EAAcF,EAAO3Q,aAGrB4Q,EAAeC,GACfnI,EAAMiI,EAAOnJ,KAAKmJ,EAAOnJ,KAAK7K,OAAS,GACnCoU,GAAgBtB,KAAK/G,EAAIgH,aACzBhH,EAAMiI,EAAOnJ,KAAKmJ,EAAOnJ,KAAK7K,OAAS,IAE3CmU,EAAOF,EAAeC,IAEtBnI,EAAMgI,EAAOlJ,KAAKkJ,EAAOlJ,KAAK7K,OAAS,GACnCoU,GAAgBtB,KAAK/G,EAAIgH,aACzBhH,EAAMgI,EAAOlJ,KAAKkJ,EAAOlJ,KAAK7K,OAAS,IAE3CmU,EAAOD,EAAcD,GAEzBlI,EAAIxL,MAAMH,OAAS2L,EAAI1I,aAAe8Q,EAAO,MAGrD,QAASE,IAAgBC,EAAMC,GAA/B,GACQnU,GACAoU,EAAgBF,EAAKjR,aACrBoR,EAAgBF,EAAKlR,YACrBmR,GAAgBC,EAChBrU,EAASoU,EAAgB,KAClBA,EAAgBC,IACvBrU,EAASqU,EAAgB,MAEzBrU,IACAkU,EAAK/T,MAAMH,OAASmU,EAAKhU,MAAMH,OAASA,GAGhD,QAASsU,IAAW1O,EAAUM,GAC1B,GAAIjB,GAAKrF,EAAQiG,CACjB,UAAWD,KAAarB,IAAUqB,IAAaM,EAC3C,MAAON,EAEX,IAAII,GAAcJ,IAAaA,EAASM,OAASA,EAC7C,MAAON,EAEX,IAAIG,GAAQH,GACR,IAAKX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAElD,GADAY,EAAUD,EAASX,SACRY,KAAYtB,IAAUsB,IAAYK,GAAQL,EAAQK,OAASA,EAClE,MAAOL,EAInB,OAAO,MAEX,QAAS0O,IAAWhE,EAAOiE,GACvB,GAAIA,KAAW,EAAM,CACjBjE,EAAQ7R,EAAE6R,EACV,IAAIkE,GAAa7T,GAAM6T,WAAWlE,EAAM9D,SACxC7L,IAAM8T,aAAanE,GACnB3P,GAAM6T,WAAWlE,EAAM9D,SAAUgI,OAEjC/V,GAAE6R,GAAOoE,IAAI,UAAW,SAAU7F,GAC9BA,EAAE8F,mBACHC,QAGX,QAASC,IAAkBC,EAAMlO,GAC7B,MAAOkO,GAAK5S,QAAQ6S,YAAcnO,EAAOmO,WAAanO,EAAOmO,YAAcpR,GAE/E,QAASqR,IAAY1K,EAAQvD,GACzB,QAAStI,EAAEsK,KAAKuB,EAAQ,SAAUyH,GAC9B,MAAOA,GAAKhL,QAAUA,IACvBpH,OAEP,QAASsV,IAAiBrO,EAAQsO,GAC9B,SAAKtO,EAAOG,OAASH,EAAOuO,gBAGxBD,EAAME,WAAaF,EAAME,SAASxO,EAAOG,WAGzCH,EAAOwO,WAAaxO,EAAOwO,SAASF,KAK5C,QAASG,IAAexM,GACpB,MAAOpK,GAAEoK,GAASwI,GAAG,0MAEzB,QAASiE,IAAWzG,GAChB,GAAI0G,GAAgB9W,EAAEoQ,EAAE0G,eAAgBC,EAAWD,EAAclE,GAAG,MAAOf,EAAQrP,KAAKqP,MAAM7L,IAAIxD,KAAKwU,aAAcC,EAAczU,KAAKgK,MAAMuB,SAAS/H,IAAIhG,EAAE,SAAUwC,KAAK0U,eAAgBC,EAAUP,GAAexG,EAAE1E,QAAS0L,EAAgBpX,EAAEoQ,EAAE1E,QAAQkH,GAAG,eAAgBlH,EAAS1L,EAAEoQ,EAAE1E,QAAS2L,EAAeP,EAAc9F,QAAQ,SAAS,EACnV,OAAImG,IAAWL,EAAc/P,KAAK7E,GAAMoV,aAAa,eAAepW,QAChEsB,KAAK+U,YAAYT,GACjB,IAEAO,IAAiBxF,EAAM,IAAMwF,IAAiBxF,EAAM,IAAMwF,IAAiBJ,EAAY,IAAMI,IAAiBJ,EAAY,IAG1HvL,EAAOkH,GAAG,kCAGVpQ,KAAKiB,QAAQ+T,aACbhV,KAAK+U,YAAYT,GAAe,EAAOM,IAEvCL,GAAaI,GACbM,WAAW,WACHzX,EAAEkC,GAAMwV,kBAAkB3K,SAAS,cAGnC/M,EAAEkC,GAAMwV,kBAAkB9E,GAAG+E,KAAmBf,GAAe1U,GAAMwV,mBAAsB1X,EAAE4X,SAASP,EAAcnV,GAAMwV,mBAC1H7B,GAAWwB,GAAc,KAIjCN,IAAa7U,GAAM2V,QAAQC,OAC3B1H,EAAE8F,kBApBN,GAuBJ,QAAS6B,IAAiB3N,EAASuD,GAC/B,IAAKA,EACD,MAAO,EAEX,IAAI/H,GAAS,CAIb,OAHI1D,IAAM2V,QAAQG,QAAQC,SACtBrS,EAASwE,EAAQ/I,SAEduE,EAEX,QAASsS,IAAqBzU,GAC1B,GAAI0U,EACJ,OAAuB,gBAAZ1U,IACP0U,EAAgB1U,EAAQ2U,cACF,SAAlBD,GACSpM,MAAM,IAGXA,KAAMoM,EAActJ,QAAQ,WAC5B/G,QAASqQ,EAActJ,QAAQ,gBAGhCpL,KAAY,GACVsI,MAAM,GADZ,EAIX,QAASsM,IAA0BC,EAASlO,GAA5C,GACQ5F,GACA+T,CACJ,SAAKD,IAGLlO,EAAUpK,EAAEoK,MACRA,EAAQ,IAAMwN,GAASU,EAAQ,GAAIlO,EAAQ,MAC3C5F,EAAY4F,EAAQqC,SAAS+L,IAAMF,EAAQ7L,SAAS+L,IACpDD,EAAanO,EAAQqO,cAAgB,GAChCjU,GAAa,GAAKkU,GAAKC,IAAInU,IAAc+T,IAAeG,GAAKE,MAAMpU,EAAY+T,IAAeD,EAAQhX,YAMnH,QAASuX,IAAS/N,GACd,MAAOA,KAASA,EAAKiC,SAAS,gBAAkBjC,EAAKiD,SAAShB,SAAS,oBAE3E,QAAS+L,IAAiBC,GACtB,MAAO,gCAAkCA,EAAsB,iFAA6FC,GAAY,KAAOC,GAAW,8BAE9L,QAASC,IAA8BH,GACnC,MAAO,gBAAkBA,EAAsB,uCAEnD,QAASI,IAAgBC,EAASlI,EAAOhR,EAAMmZ,EAAUhR,EAAKiR,GAC1D,MAAO,kBAAoBA,EAAwB,mBAAqBjR,EAAM,IAAM,IAAM,0BAA4B9C,EAAW2L,GAAS,gBAAkBkI,EAAU,sBAAwBC,EAAW,0CAAsDA,EAAW,eAAiB,cAAgB,4BAA8BL,GAAY,MAAQK,EAAWJ,GAAWM,IAAU,SAAWrZ,EAAO,iBAEnZ,QAASsZ,IAA6BJ,GAClC,MAAO,sDAA6DA,EAAU,iEAElF,QAASK,IAAUxM,EAAK7D,GACpB6D,EAAMjN,EAAEiN,GAAK,GAETA,EAAIxL,MAAMyI,QADVd,EACoB,GAEA,OAG5B,QAASuK,IAAW9Q,EAAO6W,GACvB,GAAIC,GAAY,KAAMC,EAAW,KAAMC,EAAc,KAAMC,EAAa,KAAMC,EAAW,IACzF,QAAQ,GAAKlX,GAAOzC,QAAQuZ,EAAW,SAASvZ,QAAQwZ,EAAU,QAAQxZ,QAAQ2Z,EAAU,QAAQ3Z,QAAQyZ,EAAa,SAAUvH,GAC/H,MAAIoH,GACO,KAAOpH,EAEX,WACRlS,QAAQ0Z,EAAY,SAE3B,QAASE,IAAS1R,EAAOR,GACrB,MAAOA,GAAQhB,OAAO,SAAUmT,GAC5B,MAAOA,GAAI3R,QAAUA,IACtB,GAAG4R,OAAS5R,EAEnB,QAAS6R,IAAe3J,EAAGC,GACvB,MAAOjO,MAAK4X,WAAWvL,QAAQrM,KAAK4X,WAAWC,SAAS7J,EAAEnI,MAAQ7F,KAAK4X,WAAWvL,QAAQrM,KAAK4X,WAAWC,SAAS5J,EAAEpI,MAEzH,QAASiS,IAAwBnS,GAC7B,QAASA,EAAOoS,cAAe,GAASpS,EAAOoS,YAAcpS,EAAOoS,WAAWC,SAAU,GAvsRhG,GASOC,IAmBAC,GAuUAC,GA22BAC,GA7sCA1Y,GAAQD,OAAOC,MAAO2Y,GAAK3Y,GAAM2Y,GAAIC,GAAa5Y,GAAMmS,KAAKyG,WAAYC,GAAmB7Y,GAAMmS,KAAK0G,iBAAkB7I,GAAyBhQ,GAAM2V,QAAQmD,eAAgBC,GAAgB/Y,GAAMwV,eAAgBwD,GAASL,GAAGK,OAAQC,GAAajZ,GAAMkZ,YAAa3C,GAAcvW,GAAMmZ,aAAcC,GAAOpZ,GAAMoZ,KAAMhU,GAAgBtH,EAAEsH,cAAejF,GAASrC,EAAEqC,OAAQS,GAAM9C,EAAE8C,IAAKwH,GAAOtK,EAAEsK,KAAMjD,GAAUrH,EAAEqH,QAAS6G,GAAUlO,EAAEkO,QAASvN,GAAO8E,MAAM8V,UAAU5a,KAAMiH,GAAQ5H,EAAE4H,MAAO4T,GAAatZ,GAAMsZ,WAAYC,GAAgBzb,EAAEyb,cAAe7D,GAAW5X,EAAE4X,SAAUc,GAAOrH,KAAMqK,GAAM,IAAKC,GAAW,WAAYC,GAAQ,QAASC,GAAuB,mBAAoBC,GAAY,4BAA8B5Z,GAAMoD,KAAK,WAAa,uFAAwFyW,GAA0B,uHAAwHC,GAAS,qCAAsCC,GAAU,yEAA0EC,GAAU,kGAAmGC,GAAW,0CAA2CC,GAAeF,GAAU,SAAUG,GAAcH,GAAU,QAASI,GAAeN,GAAS,UAAYC,GAAU,SAAUM,GAAc,wDAAyDC,GAAU,mBAAoB7U,GAAK,aAAc8U,GAA0B,wBAAyBC,GAAiB,eAAgBC,GAAO,OAAQC,GAAa,aAAcC,GAAO,OAAQC,GAAS,SAAUC,GAAa,aAAcC,GAAiB,iBAAkBC,GAAiB,iBAAkBC,GAAiB,iBAAkBC,GAAiB,iBAAkBC,GAAY,YAAaC,GAAS,SAAUC,GAAa,aAAcC,GAAa,aAAcC,GAAc,cAAeC,GAAY,YAAaC,GAAe,eAAgBC,GAAiB,iBAAkBC,GAAc,aAAcC,GAAO,OAAQC,GAAS,SAAUC,GAAS,SAAUC,GAAO,OAAQC,GAAa,YAAaC,GAAW,UAAWC,GAAU,kBAAmBC,GAAY,kBAAmBC,GAAW,mBAAoBC,GAAW,aAAc3G,GAAgB,+BAAmC2G,GAAUC,GAAiB,mBAAoBC,GAAa,SAAUC,GAAa,SAAUC,GAAc,eAAgBC,GAAe,WAAYC,GAA2B,uBAAwBC,GAAoB,gBAAiBC,GAAoB,wBAAyBC,GAAsB,uBAAwBC,GAAsB,uBAAwBC,GAAgC,wBAAyBC,GAAS,SAAUC,GAAe,eAAgBC,GAAgB,gBAAiBC,GAAa,aAAcC,GAAe,eAAgBC,GAAc,cAAeC,GAAgB,gBAAiBC,GAAW,WAAY/X,GAAQ,QAASgY,GAAY,YAAaC,GAAS,SAAUC,GAAW,WAAYC,GAAW,WAAYha,GAAS,SAAUia,GAAS,SAAUC,GAAgB,gBAAiBC,GAAQ,QAASC,GAAQ,QAASC,GAAS,SAAUC,GAAS,SAAUC,GAAY,MAAOC,GAAkB,EAAGC,GAAU,UAAWC,GAAW,WAAYC,GAAS,SAAUC,GAAO,OAAQC,GAAa,aAAcC,GAAgB,+CAAgDC,GAAY,wBAAyBC,GAAgB,SAAUC,GAAe,SAAU7H,GAAW,WAAYM,GAAS,SAAUP,GAAY,aAAc+H,GAAe,YAAaC,GAAqB,MAAOC,GAAmB,sBAAuBC,GAAiBC,OAAO,+BAAgC,MAAOC,GAAkBD,OAAO,gCAAiC,MAAOpN,GAAyBoN,OAAO,MAAQF,GAAmB,oCAAgDA,GAAmB,OAAQ3L,GAAsB6L,OAAO,MAAQF,GAAmB,mBAA+BA,GAAmB,OAAQI,GAAoB,uQAA4RC,GAAmB,iBAAmBhD,GAAW,uFAAwFiD,GAAyB,iBAAmBjD,GAAW,4FAA6FkD,IAAQ,EAAOxJ,GAAU9V,GAAM2V,QAAQG,QAC9oJyJ,GAASzJ,GAAQ0J,MAA4B,KAApB1J,GAAQ2J,QACjCC,GAAQ,SAAS5N,KAAK6N,UAAUC,WAChCC,IACAlb,QAAS,YACTmb,OAAQ,WACRC,gBAAiB,qBAGjBpH,IAAGqH,QACHzH,GAAcI,GAAGqH,MAAM7f,QACnBC,KAAM,SAAU8H,EAAS3G,GACrBoX,GAAGqH,MAAMC,GAAG7f,KAAK8f,KAAK5f,KAAM4H,EAAS/H,IAAO,KAAUoB,IACtDjB,KAAK4X,WAAW3W,QAAQ4e,WAAY,EACpC7f,KAAK4X,WAAWkI,eAAgB,GAEpC7e,SAAW+D,KAAM,eACjB+a,WAAY,WACR,GAAIC,GAAOhgB,IACX,OAAO6O,MAAKoR,MAAMD,EAAKE,mBAAqB,IAAMF,EAAKG,YAAc,KAEzED,gBAAiB,WACb,GAAItI,GAAa5X,KAAK4X,UACtB,OAAOA,GAAaA,EAAWwI,aAAY,IAAS,EAAI,MAIhElI,GAAoBQ,GAAO7Y,QAC3BC,KAAM,SAAU8H,EAAS3G,GACrB,GAAI+e,GAAOhgB,IACX0Y,IAAOiH,GAAG7f,KAAK8f,KAAKI,EAAMpY,EAAS3G,GACnC+e,EAAKK,gBAAkBjb,GAAM4a,EAAKM,QAASN,GAC3CA,EAAKO,cAActf,EAAQ2W,YAC3BoI,EAAKQ,QAETD,cAAe,SAAU3I,GACrB,GAAIoI,GAAOhgB,IACPggB,GAAKpI,YACLoI,EAAKpI,WAAW6I,OAAO5F,GAAQmF,EAAKK,iBAExCL,EAAKpI,WAAaA,EAClBoI,EAAKpI,WAAW8I,KAAK7F,GAAQmF,EAAKK,iBAClCL,EAAKpI,WAAW3W,QAAQ4e,WAAY,GAExC5e,SACI+D,KAAM,oBACN2b,WAAYnjB,EAAEojB,KACdC,UAAU,EACVC,gBAAiB,MAErBC,QACIzF,GACAD,GACAE,GACAE,GACAC,IAEJsF,QAAS,WACL,GAAIhB,GAAOhgB,IACX0Y,IAAOiH,GAAGqB,QAAQpB,KAAKI,GACvBA,EAAKpI,WAAW6I,OAAO5F,GAAQmF,EAAKK,iBACpCL,EAAKlK,QAAQtS,IAAIwc,EAAKiB,mBAAmBC,IAAI/b,IAC7Cgc,aAAanB,EAAKoB,UACdpB,EAAKqB,mBACLF,aAAanB,EAAKqB,mBAElBrB,EAAKsB,OACLtB,EAAKsB,KAAKN,UACVhB,EAAKsB,KAAO,MAEhBtB,EAAKlK,QAAUkK,EAAKpY,QAAUoY,EAAKiB,kBAAoB,KACvDjB,EAAKK,gBAAkB,MAE3BG,KAAM,WACF,GAAoF1K,GAAhFkK,EAAOhgB,KAAMuhB,EAAY7hB,GAAM2V,QAAQkM,YAAc,EAAG3Z,EAAUoY,EAAKpY,OAC3EA,GAAQnE,KACJ5E,MAAO,OACP2iB,SAAU,WACX/d,IAAIub,GAAQ,eAAiB,gBAAiBuC,GACjDvB,EAAK3b,QAAUuD,EAAQ8B,WAAW+X,QAClC3L,EAAUkK,EAAKlK,QAAUkK,EAAK3b,QAAQmc,KAAK,4CAA4CjV,SAASmV,KAAK,iBAAmBvb,GAAK,cAAgBA,GAAIC,GAAM4a,EAAK0B,aAAc1B,IAC1KA,EAAK2B,YACDjiB,GAAM2V,QAAQuM,qBAAuBliB,GAAM2V,QAAQC,SACnD0K,EAAKlK,QAAQrS,IAAI,eAAgB,QACjCuc,EAAKsB,KAAO,GAAI5hB,IAAMmiB,WAAW7B,EAAKlK,SAClCgM,QAAQ,EACRC,gBAAgB,EAChBC,MAAO,SAAUpU,GACbA,EAAEqU,OAAOC,WAEbC,KAAM,SAAUvU,GACZoS,EAAKiB,kBAAkBmB,UAAUpC,EAAKiB,kBAAkBmB,YAAcxU,EAAEyU,EAAEC,OAC1E5iB,GAAM6T,WAAWuC,EAASpW,GAAM6T,WAAWuC,GAAWlI,EAAE2U,EAAED,OAC1D1U,EAAE8F,qBAIdsM,EAAKiB,kBAAoBzjB,EAAE,oDAAoDiG,KAAM5E,MAAO0iB,IAAard,SAAS0D,GAAS8Y,KAAK,SAAWvb,GAAIC,GAAM4a,EAAKwC,QAASxC,KAEvK2B,SAAU,WACN,GAAI3B,GAAOhgB,IACPif,MACAe,EAAKlK,QAAQrS,KAAMgf,aAAclH,KACjCyE,EAAKpY,QAAQnE,IAAIub,GAAQ,eAAiB,gBAAiB,KAGnE0C,aAAc,SAAU9T,GACpB,IAAIA,EAAE8U,QAAN,CAGA,GAAInB,GAAYvhB,KAAKihB,kBAAmBmB,EAAYb,EAAUa,YAAaE,EAAQ5iB,GAAMijB,YAAY/U,IACjG0U,GAAWA,EAAQ,GAAmB,IAAdF,GAAsBE,EAAQ,GAAKF,EAAYb,EAAU,GAAGqB,cAAgBrB,EAAU,GAAGsB,eACjHjV,EAAE8F,iBACF1T,KAAKihB,kBAAkBmB,UAAUA,GAAaE,MAGtDE,QAAS,SAAU5U,GACf,GAAIoS,GAAOhgB,KAAM8iB,GAAgB9C,EAAK/e,QAAQ4f,SAAUuB,EAAYxU,EAAE0G,cAAc8N,UAAWxK,EAAaoI,EAAKpI,WAAYmL,EAAY/C,EAAKW,WAAYqC,EAAOpL,EAAWoL,QAAU,EAAGhB,EAAQhC,EAAKiD,aAAeD,EAAMlkB,EAASkhB,EAAKpY,QAAQsb,cAAeC,KAAmBnD,EAAKoD,eAAiBpD,EAAKoD,cAAgBhB,GAAYiB,EAAiBnN,GAAKvL,IAAIuL,GAAKE,MAAMgM,EAAYW,GAAY,GAAIO,EAAiBH,EAAgBjN,GAAK+J,KAAKnhB,EAASikB,GAAa7M,GAAKE,MAAMtX,EAASikB,GAAYQ,EAAgBrN,GAAKvL,IAAI0Y,EAAiBC,EAAgB,EACtiB,OAAItD,GAAKwD,gBACLxD,EAAKwD,gBAAiB,EACtB,IAEJxD,EAAKyD,eAAiBzD,EAAK0D,WAC3B1D,EAAK0D,WAAatB,EAAYJ,EAAQe,EACtC/C,EAAKoD,cAAgBhB,EACrBpC,EAAK2D,WAAab,EACb9C,EAAK4D,OAAOP,EAAgBE,EAAeJ,KAC5CnD,EAAKlK,QAAQ,GAAGsM,UAAYpC,EAAK0D,YAErC1D,EAAK6D,QAAQtI,IACTuH,IACI9C,EAAKqB,mBACLF,aAAanB,EAAKqB,mBAEtBrB,EAAKqB,kBAAoBpM,WAAW,WAChC+K,EAAK2D,YAAa,EAClB3D,EAAK8D,MAAM9D,EAAKiD,YAAajD,EAAKpI,WAAWmM,SAC9C,MAfP/D,IAkBJgE,YAAa,WACThkB,KAAKikB,UAAU,IAEnBC,eAAgB,WACZ,GAAI3C,GAAYvhB,KAAKihB,iBACrBjhB,MAAKikB,UAAU1C,EAAU,GAAGsB,aAAetB,EAAUziB,WAEzDqlB,oBAAqB,WACjBnkB,KAAK8V,QAAQsM,UAAU,IAE3BgC,uBAAwB,WACpBpkB,KAAK8V,QAAQsM,UAAUpiB,KAAK8V,QAAQ,GAAG+M,eAE3CwB,6BAA8B,WAAA,GACtBrE,GAAOhgB,KACP8V,EAAU9V,KAAK8V,QACfwO,EAAmBxO,EAAQsM,WAC3BtM,GAAQ,GAAGyO,YAAczO,EAAQ,GAAG0O,cAC/BxE,EAAKyE,kBAAoBH,GAAoBtE,EAAK0E,yBACnD5O,EAAQsM,UAAUkC,EAAmB5kB,GAAM2V,QAAQkM,aACnDvB,EAAK0D,WAAa5N,EAAQsM,YAC1BpC,EAAKyE,kBAAmB,GAErBzE,EAAKyE,mBACPzE,EAAK2E,+BACN7O,EAAQsM,UAAUkC,EAAmB5kB,GAAM2V,QAAQkM,aACnDvB,EAAK0D,WAAa5N,EAAQsM,aAE9BpC,EAAKyE,kBAAmB,IAGhCR,UAAW,SAAU7B,GAAV,GACHpC,GAAOhgB,KACPuhB,EAAYvB,EAAKiB,iBACjBM,GAAUa,cAAgBA,IAC1BpC,EAAKwD,gBAAiB,GAE1BxD,EAAKlK,QAAQsM,UAAUA,GACvBpC,EAAK0D,WAAa1D,EAAKlK,QAAQsM,YAC/Bb,EAAUa,UAAUA,GACpBpC,EAAKoD,cAAgB7B,EAAUa,aAEnCwC,iBAAkB,WACd,MAA8C,KAAvC5kB,KAAKihB,kBAAkBmB,aAElCsC,oBAAqB,WAAA,GACbnD,GAAYvhB,KAAKihB,kBACjBmB,EAAYb,EAAUa,WAC1B,OAAOA,GAAY,GAAKA,GAAalW,SAASqV,EAAU,GAAGsB,aAAetB,EAAUziB,SAAU,KAElG6lB,2BAA4B,WACxB,GAAI7O,GAAU9V,KAAK8V,OACnB,OAAOA,GAAQsM,aAAelW,SAAS4J,EAAQ,GAAG+M,aAAe/M,EAAQhX,SAAU,KAEvF+lB,UAAW,SAAUlY,GACjB,GAAImY,GAAa9kB,KAAKijB,aAAejjB,KAAK4X,WAAWoL,QAAU,CAC/D,OAAO8B,GAAanY,GAExBzC,SAAU,SAAUgB,GAAV,GAGF9H,GAFA0hB,EAAa9kB,KAAKijB,aAAejjB,KAAK4X,WAAWoL,QAAU,EAC3D7C,EAAWngB,KAAK4X,WAAWuI,UAO/B,OAJI/c,GADA8H,EAAQ4Z,EACC5Z,EAAQ4Z,EAERA,EAAa5Z,EAAQ,EAE3B9H,EAAS+c,EAAWA,EAAW/c,GAE1C2hB,eAAgB,SAAUta,GAAV,GACRhG,GAAYzE,KAAK8V,QAAQ,GACzBkP,EAAkBvgB,EAAUme,aAC5BqC,EAAmBjlB,KAAK0kB,sBAAiEjgB,EAAU2d,UAAnDpiB,KAAK0jB,YAAcjf,EAAU2d,UAC7E8C,EAAgBza,EAAI,GAAGzI,UACvBmjB,EAAgB1a,EAAI,GAAG1I,YACvBkjB,GAAkBC,EAClBllB,KAAKihB,kBAAkB,GAAGmB,WAAa4C,EAAkB,EAClDE,EAAgBC,GAAiBF,EAAkBD,IAC1DhlB,KAAKihB,kBAAkB,GAAGmB,WAAa4C,EAAkB,IAGjEpB,OAAQ,SAAUP,EAAgBE,EAAe6B,GAAzC,GACApF,GAAOhgB,KAAM4X,EAAaoI,EAAKpI,WAAY+I,EAAaX,EAAKW,WAAYoD,EAAOnM,EAAWmM,OAAQe,EAAa9E,EAAKiD,aAAerL,EAAWoL,QAAU,EAAGqC,EAAcnP,GAAKE,MAAMiN,EAAiBU,GAAQA,EAAMuB,GAAW,EAAOC,EAAa,IACnPhE,EAAYvB,EAAKiB,kBACjBuE,EAAmBhQ,GAAQC,OAAS,EAAI,EACxCgQ,EAAQ7N,EAAW8N,gBAAkB9N,EAAWwI,aAAY,GAAQxI,EAAW6N,OAyBnF,OAxBIpC,GAAiByB,GACjBQ,GAAW,EACXR,EAAa5O,GAAKvL,IAAI,EAAG4Y,EAAgBQ,GACzC/D,EAAK0D,WAAanC,EAAUa,YAAc0C,EAAanE,EACvDX,EAAK8D,MAAMgB,EAAYf,IAChBR,GAAiBuB,EAAaf,IAASqB,GAC9CE,GAAW,EACXR,EAAa5O,GAAKyP,IAAItC,EAAgBoC,EAAQ1B,GAE1C/D,EAAK0D,WADLnC,EAAUa,aAAeb,EAAU,GAAGsB,aAAetB,EAAU,GAAGxf,aAAeyjB,EAC/DxF,EAAKlK,QAAQ,GAAG+M,aAAe7C,EAAKlK,QAAQ,GAAG/T,aAC1Die,EAAKpI,WAAW8N,iBAAmBrC,GAAkBoC,EAAQ1B,EAClD/D,EAAKlK,QAAQ,GAAG+M,aAAe7C,EAAKlK,QAAQ,GAAG/T,cAAgBie,EAAK0D,WAAa1D,EAAKyD,gBAEtF9C,EAEtBX,EAAK8D,MAAMgB,EAAYf,KACf/D,EAAK4F,WAAa5F,EAAK/e,QAAQ4f,WACnCwC,EAAiBgC,EAActB,EAAOA,EAAOwB,GAAclC,EAAiBU,GAC5EnM,EAAWiJ,SAASwE,EAActB,EAAMA,EAAMvmB,EAAEojB,MAEhD2C,EAAgB8B,EAActB,EAAOwB,GACrC3N,EAAWiJ,SAASwE,EAActB,EAAMA,EAAMvmB,EAAEojB,OAGjD0E,GAEXA,SAAU,WACN,MAAOtlB,MAAK4lB,WAEhB9B,MAAO,SAAUd,EAAMe,EAAM8B,GACzB,GAAI7F,GAAOhgB,KAAM8iB,GAAgB9C,EAAK/e,QAAQ4f,SAAUjJ,EAAaoI,EAAKpI,WAAYkO,EAAelO,EAAW8N,eAChHG,GAAW7M,GAAW6M,GAAYA,EAAWroB,EAAEojB,KAC3CZ,EAAK6D,QAAQvI,IACT0H,KAAMA,EACNe,KAAMA,MAId5C,aAAanB,EAAKoB,UAClBpB,EAAK4F,WAAY,EACjB5F,EAAKiD,YAAcD,EACf8C,GAAgBlO,EAAWmO,kBAAkB/C,EAAMA,EAAOe,KAAU+B,GAAgBlO,EAAWoO,QAAQhD,EAAMe,IAC7G/D,EAAK6D,QAAQpI,IACb7D,EAAWqO,MAAMjD,EAAMe,EAAM,WACzB/D,EAAK6D,QAAQnI,IACbmK,IACA7F,EAAK6D,QAAQxI,KACd,UAEEyH,GACD9C,EAAK6D,QAAQpI,IAEjBuE,EAAKoB,SAAWnM,WAAW,WAClB+K,EAAK2D,aACFb,GACA9C,EAAK6D,QAAQpI,IAEjB7D,EAAWqO,MAAMjD,EAAMe,EAAM,WACzB/D,EAAK6D,QAAQnI,IACbmK,IACA7F,EAAK6D,QAAQxI,QAGtB,QAGX6K,iBAAkB,SAAUC,GAAV,GACqNpiB,GAA/Nic,EAAOhgB,KAAMsP,EAAO,GAAI8W,EAAYpG,EAAK/e,QAAQ6f,gBAAiBlJ,EAAaoI,EAAKpI,WAAY2J,EAAa7hB,GAAM2V,QAAQuM,oBAAkD,EAA5BliB,GAAM2V,QAAQkM,YAAiB8E,EAAiBrG,EAAKlK,QAAQ,GAC9MwQ,EAAsBtG,EAAK0E,sBADyM/D,EAE3NX,EAAKW,WAAaX,EAAK/e,QAAQ0f,cAAgB,EACxD4F,EAAqBF,EAAe9B,YAAc8B,EAAevkB,YAAcyf,EAAY,EAHuHiF,GAIvM5O,EAAW8N,gBAAkB9N,EAAWwI,aAAY,GAAQxI,EAAW6N,SAAW9E,EAAa4F,CAC9G,KAAKxiB,EAAM,EAAGA,EAAMmS,GAAKE,MAAMoQ,EAAcJ,GAAYriB,IACrDuL,GAAQ,gCAAkC8W,EAAY,YAEtDI,GAAcJ,IACd9W,GAAQ,gCAAkCkX,EAAcJ,EAAY,cAExEpG,EAAKiB,kBAAkB3R,KAAKA,IACxBgX,GAAwBtG,EAAK0E,uBAA0B1E,EAAKpI,WAAW8N,iBACvE1F,EAAKkE,iBAEsB,IAApBlE,EAAK0D,YAAgCyC,IAC5CE,EAAejE,UAAYpC,EAAK0D,WAChC1D,EAAKqE,iCAGb/D,QAAS,SAAU1S,GAAV,GACDoS,GAAOhgB,KAAM4X,EAAaoI,EAAKpI,WAAYkN,EAAa9E,EAAKiD,YAC7D3Z,GAAUsE,OAAStE,OACnB6c,EAAsBnG,EAAK0E,wBAA0Bpb,GAAUA,IAAW8R,IAAe9R,IAAWgR,IAAUhR,IAAWkS,EAC7HwE,GAAK6D,QAAQnI,IACbyF,aAAanB,EAAKoB,UAClBpB,EAAKkG,iBAAiBC,GAClBnG,EAAKsB,MACLtB,EAAKsB,KAAKmF,SAEY,IAAf3B,GAA+B9E,EAAK4F,cACtCtc,GAAUA,IAAWkS,IAAQlS,IAAW8R,IAA0B,gBAAX9R,KACxD0W,EAAKiD,YAAcrL,EAAWoL,QAER,IAAtBpL,EAAW8O,QAAkBpd,IAAUA,IAAWkS,IAAQlS,IAAW8R,IAA0B,gBAAX9R,GAAuC,kBAAXA,KAChH0W,EAAKiB,kBAAkB,GAAGmB,UAAY,IAG9CpC,EAAK4F,WAAY,KAuBrBzN,IACAwO,QACIjpB,KAAM,iBACN+T,UAAW,aACXmV,UAAW,mBAEfH,QACI/oB,KAAM,iBACN+T,UAAW,wBACXmV,UAAW,qBAEfC,MACInpB,KAAM,eACN+T,UAAW,sBACXmV,UAAW,oBAEf5F,SACItjB,KAAM,SACN+T,UAAW,gBACXmV,UAAW,oBAEfE,MACIppB,KAAM,OACN+T,UAAW,cACXmV,UAAW,mBAEfG,QACIrpB,KAAM,SACN+T,UAAW,0BACXmV,UAAW,oBAEfI,YACItpB,KAAM,SACN+T,UAAW,gBACXmV,UAAW,qBAEf5O,OACIta,KAAM,kBACN+T,UAAW,eACXmV,UAAW,yBAEfK,KACIvpB,KAAM,gBACN+T,UAAW,aACXmV,UAAW,uBAEfM,QACIxpB,KAAM,YACN+T,UAAW,kBA2zBf2G,GAAO1Y,GAAM2Y,GAAG8O,gBAAgBtnB,QAChCC,KAAM,SAAU8H,EAAS3G,EAAS8f,GAC9B,GAAIf,GAAOhgB,IACXiB,GAAU4D,GAAQ5D,IAAa2W,WAAY3W,GAAYA,EACvDyX,GAAOiH,GAAG7f,KAAK8f,KAAKI,EAAMpY,EAAS3G,GAC/B8f,IACAf,EAAKoH,QAAUrG,GAEnB/B,GAAQtf,GAAM2V,QAAQ2J,MAAMpX,GAC5BoY,EAAKqH,WACLrH,EAAKsH,QACLtH,EAAKuH,SAAS/pB,EAAEqC,QAAO,KAAUmgB,EAAK/e,QAAQqE,UAC1C0a,EAAKwH,oBACLhqB,EAAEiqB,KAAKC,MAAM,KAAM1H,EAAKwH,qBAAqBG,KAAK,WAC9C3H,EAAKwH,oBAAsB,KAC3BxH,EAAK4H,kBAGT5H,EAAK4H,iBAGbA,cAAe,WACX,GAAI5H,GAAOhgB,IACXggB,GAAK6H,cACL7H,EAAK8H,iBACL9H,EAAK+H,SACL/H,EAAKgI,SACLhI,EAAKiI,aACLjI,EAAKkI,WACLlI,EAAKmI,YACLnI,EAAKoI,oBACLpI,EAAKqI,aACLrI,EAAKsI,eACLtI,EAAKuI,cACLvI,EAAKwI,aACLxI,EAAKyI,WACLzI,EAAK0I,YACL1I,EAAK2I,6BACL3I,EAAK4I,mBACL5I,EAAK6I,oBACD7I,EAAK/e,QAAQ6nB,SACb9I,EAAKpI,WAAWmR,SAEhB/I,EAAKgJ,OAAShJ,EAAKiJ,UAAY,EAC/BjJ,EAAKkJ,WAELlJ,EAAK5b,gBACL4b,EAAKlK,QAAQqT,SAAS,wBACtBnJ,EAAKoJ,eAAiB,WAClBpJ,EAAKqJ,UAET7rB,EAAEiC,QAAQwF,GAAG,SAAWE,GAAI6a,EAAKoJ,iBAErC1pB,GAAM4pB,OAAOtJ,IAEjBe,QACIlG,GACA,cACA,SACAI,GACAC,GACAC,GACAZ,GACAC,GACAE,GACAD,GACAE,GACAR,GACAC,GACAC,GACAC,GACAU,GACAJ,GACA+B,GACAC,GACA7B,GACAD,GACA+B,GACAC,GACAC,GACAC,GACAC,GACA,OACA,OACA,SACA,QACA,cACA,gBACA,gBAEJsD,cAAe,SAAU3I,GAAV,GAGP2R,GAFAvJ,EAAOhgB,KACPwpB,EAAaxJ,EAAK/e,QAAQuoB,UAE9BxJ,GAAK/e,QAAQ2W,WAAaA,EAC1BoI,EAAK6H,cACL7H,EAAKmI,YACLnI,EAAKgI,SACDwB,IACIA,EAAWC,SACXF,EAAoBvJ,EAAK3b,QAAQE,KAAK,+BACtC7E,GAAM6T,WAAWgW,EAAmBhU,GAAiBgU,EAAmBvK,OAExEuK,EAAoBvJ,EAAK5Q,MACzB1P,GAAM6T,WAAWyM,EAAK3b,QAASkR,GAAiBgU,EAAmBvK,OAGvEgB,EAAK/e,QAAQ6S,WACbkM,EAAKiI,aAELjI,EAAK0J,mBACL1J,EAAK0J,kBAAkBnJ,cAAcP,EAAK/e,QAAQ2W,YAElDoI,EAAK/e,QAAQ+T,aACbgL,EAAKsI,eAELtI,EAAK/e,QAAQiT,YACb8L,EAAKuI,cAELvI,EAAK/e,QAAQ6nB,SACb9I,EAAKpI,WAAWmR,QAEhB/I,EAAKkJ,WAGbjoB,SACI+D,KAAM,OACNM,WACAqkB,QAAS,KACTb,UAAU,EACVc,YAAY,EACZJ,YAAY,EACZK,UAAU,EACV3V,YAAY,EACZ4V,WAAW,EACX9U,aAAa,EACb+U,UAAU,EACVC,kBAAkB,EAClB7V,UAAU,EACV8V,cAAc,EACdnW,WAAW,EACXoW,YAAa,GACbC,eAAgB,GAChBjD,QAAQ,EACRkD,WAAW,EACXxS,cACA9Y,OAAQ,KACRurB,WAAW,EACXC,aAAa,EACbC,YAAY,EACZC,eAAgB,KAChBC,wBAAyB,EACzBC,OAAQ,GACRC,WAAY,eACZC,UACIzW,UACI0W,aAAcvM,GACdwM,aAAc3M,GACd4M,cAAe1M,IAEnB3Z,UACIiiB,OAAQxO,GAAgBwO,OAAOjpB,KAC/B+oB,OAAQtO,GAAgBsO,OAAO/oB,KAC/BmpB,KAAM1O,GAAgB0O,KAAKnpB,KAC3BsjB,QAAS7I,GAAgB6I,QAAQtjB,KACjCopB,KAAM3O,GAAgB2O,KAAKppB,KAC3BqpB,OAAQ5O,GAAgB4O,OAAOrpB,KAC/BspB,WAAY7O,GAAgB6O,WAAWtpB,KACvCsa,MAAOG,GAAgBH,MAAMta,KAC7BupB,IAAK9O,GAAgB8O,IAAIvpB,KACzBwpB,OAAQ/O,GAAgB+O,OAAOxpB,MAEnC0sB,UAAWhM,GACX4M,2BAA4B,GAC5BC,YAAa;AACbC,cAAe,iCAEnBrsB,MAAO,MAEXmiB,QAAS,WACL,GAAiBpZ,GAAboY,EAAOhgB,IACXggB,GAAKmL,cAAc,WACnBnL,EAAKoL,4BACL1S,GAAOiH,GAAGqB,QAAQpB,KAAKI,GACnBhgB,KAAKqrB,qBACLrrB,KAAKqrB,mBAAmBnK,IAAI/b,IAC5BnF,KAAKqrB,mBAAqB,KAC1BrrB,KAAKsrB,cAAgB,MAErBtL,EAAKoJ,gBACL5rB,EAAEiC,QAAQyhB,IAAI,SAAW/b,GAAI6a,EAAKoJ,gBAElCpJ,EAAKuL,OAASvL,EAAKuL,MAAM3jB,SACzBoY,EAAKuL,MAAMvK,UAEXhB,EAAKwL,OACLrK,aAAanB,EAAKwL,OAElBxL,EAAKyL,kBACLtK,aAAanB,EAAKyL,kBAElBzL,EAAK0L,wBACLvK,aAAanB,EAAK0L,wBAElB1L,EAAK2L,sBACLxK,aAAanB,EAAK2L,sBAEtB3L,EAAKuL,MAAQ,KACbvL,EAAK4L,oBACD5L,EAAK/e,QAAQqpB,aACbtK,EAAKlK,QAAQjE,KAAK,oBAAoBmP,UAEtChB,EAAK9L,YAAc8L,EAAK9L,WAAWtM,UACnCoY,EAAK9L,WAAW8M,UAChBhB,EAAK6L,YACL7L,EAAK8L,aAAe,KAChB9L,EAAK+L,cACL/L,EAAKlK,QAAQoL,IAAI,UAAWlB,EAAK+L,aACjC/L,EAAKS,OAAOT,EAAK+L,cAEjB/L,EAAKgM,uBACLhM,EAAKS,OAAOT,EAAKgM,sBACjBhM,EAAKgM,qBAAuB,MAE5BhM,EAAKiM,kBACLjM,EAAKlK,QAAQoL,IAAI,QAASlB,EAAKiM,mBAGvCjM,EAAK9L,WAAa,KACd8L,EAAKqK,YACLrK,EAAKqK,UAAUrJ,UACXhB,EAAKkM,oBACDlM,EAAKmM,mCACL3uB,EAAEsD,UAAUogB,IAAI,QAASlB,EAAKmM,mCAElCnM,EAAKkM,kBAAkBlL,UACvBhB,EAAKkM,kBAAoB,MAE7BlM,EAAKqK,UAAY,MAErBrK,EAAKoM,4BACDpM,EAAKqM,qBACLrM,EAAKqM,mBAAmBrL,UACxBhB,EAAKqM,mBAAqB,MAE1BrM,EAAKsM,2BACLtM,EAAKsM,yBAAyBtL,UAC9BhB,EAAKsM,yBAA2B,MAEpCtM,EAAKuM,mBACDvM,EAAKpI,aACLoI,EAAKpI,WAAW6I,OAAO5F,GAAQmF,EAAKK,iBAAiBI,OAAOtH,GAAU6G,EAAKwM,kBAAkB/L,OAAOrH,GAAO4G,EAAKyM,eAAehM,OAAOxC,GAAM+B,EAAK0M,mBACjJ1M,EAAKK,gBAAkBL,EAAKwM,iBAAmBxM,EAAKyM,cAAgBzM,EAAK0M,kBAAoB,MAEjG9kB,EAAUoY,EAAKpY,QAAQpE,IAAIwc,EAAKlK,SAAStS,IAAIwc,EAAK3Q,OAAO7L,IAAIwc,EAAKhW,OAAOxG,IAAIwc,EAAKlK,QAAQvR,KAAK,qBAC3Fyb,EAAK3b,UACLuD,EAAUA,EAAQpE,IAAIwc,EAAK3b,SAASb,IAAIwc,EAAK3b,QAAQE,KAAK,iCAE1Dyb,EAAKtL,cACLsL,EAAK2M,0BAEL3M,EAAK4M,MACL5M,EAAK4M,KAAK5L,UAEVhB,EAAK6M,YACL7M,EAAKlK,QAAQoL,IAAI,gBAAkB/b,IACnC6a,EAAKlK,QAAQoL,IAAI,cAAgB/b,KAEjC6a,EAAK8M,wBACLtvB,EAAEiC,QAAQyhB,IAAI,SAAUlB,EAAK8M,wBAEjC9M,EAAK+M,kCACD/M,EAAKgN,oBAAsBhN,EAAKgN,mBAAmBplB,SACnDoY,EAAKgN,mBAAmBhM,UAE5BhB,EAAKgN,mBAAqB,KAC1BplB,EAAQsZ,IAAI/b,IACZzF,GAAMshB,QAAQhB,EAAKlK,SACnBkK,EAAKkK,YAAclK,EAAKmK,eAAiBnK,EAAKiN,kBAAoBjN,EAAKkN,qBAAuBlN,EAAKwK,eAAiBxK,EAAKmN,eAAiBnN,EAAKoN,oBAAsBpN,EAAKqN,0BAA4BrN,EAAKsN,kBAAoB,KAC/NtN,EAAKuN,YAAcvN,EAAKhW,MAAQgW,EAAK5Q,MAAQ4Q,EAAKpY,QAAUoY,EAAK3Q,MAAQ2Q,EAAK3b,QAAU2b,EAAKwN,OAASxN,EAAKlK,QAAUkK,EAAKxL,YAAcwL,EAAK5b,cAAgB4b,EAAKtL,aAAesL,EAAKyN,aAAezN,EAAK0N,uBAAyB1N,EAAK2N,WAAa3N,EAAK4N,wBAA0B,MAExRC,WAAY,WAAA,GAGJzqB,GAEAwU,EACAkW,EALA7sB,EAAUjB,KAAKiB,OAuBnB,OAtBAA,GAAQ2W,WAAa,KACjBxU,EAASvD,IAAO,KAAUG,KAAKiB,SACnCmC,EAAOkC,QAAU5F,GAAM0C,cAAepC,KAAKsF,SACvCsS,EAAa5X,KAAK4X,WAClBkW,EAAclW,EAAW3W,QAAQ4Q,MAAQ+F,EAAWmW,MACxDnW,EAAW3W,QAAQ4Q,KAAO,KAC1BzO,EAAOwU,WAAapa,EAAEqC,QAAO,KAAU+X,EAAW3W,SAClD2W,EAAW3W,QAAQ4Q,KAAOic,EAC1B1qB,EAAOwU,WAAW/F,KAAOic,EACzB1qB,EAAOwU,WAAW8O,KAAO9O,EAAW8O,OACpCtjB,EAAOwU,WAAWtT,OAAS9G,EAAEqC,QAAO,KAAU+X,EAAWtT,UACzDlB,EAAOwU,WAAWuI,SAAWvI,EAAWuI,WACxC/c,EAAOwU,WAAWxZ,KAAOwZ,EAAWxZ,OACpCgF,EAAOwU,WAAWoW,MAAQpW,EAAWoW,QACrC5qB,EAAOwU,WAAWqW,UAAYrW,EAAWqW,YACrC7qB,EAAOwU,WAAWsW,YAClB9qB,EAAOwU,WAAWsW,UAAUtW,WAAa,MAEzCxU,EAAO2mB,UAAY3mB,EAAO2mB,SAAS5J,WACnC/c,EAAO2mB,SAAS5J,SAAWvI,EAAWuI,YAE1C/c,EAAO+qB,SAAWzrB,EACXU,GAEXgrB,WAAY,SAAUntB,GAAV,GAUJ6U,GACAiL,EACAnZ,EAIIymB,EAfJC,EAAiBtuB,KAAK6tB,YAC1BnuB,IAAM0C,WAAWksB,EAAgBrtB,GAC5BA,EAAQ2W,WAGL3W,EAAQ2W,WAAWtT,SACnBgqB,EAAe1W,WAAWtT,OAASrD,EAAQ2W,WAAWtT,QAH1DgqB,EAAe1W,WAAa5X,KAAK4X,WAMjC9B,EAAU9V,KAAK8V,QACfiL,EAAS/gB,KAAKonB,QACdxf,EAAU5H,KAAK4H,QACnB5H,KAAKghB,UACLhhB,KAAKiB,QAAU,KACXjB,KAAK6sB,YACDwB,EAAgBvY,EAAQtH,QAAQ9O,GAAMoV,aAAa,SAASvJ,SAChE8iB,EAAcE,MAAMzY,GACpBuY,EAAc5hB,SACdqJ,EAAQ0Y,YAAY,kBAEpB1Y,EAAQ,KAAOlO,EAAQ,KACvBkO,EAAQhS,OAAO8D,GACfkO,EAAQrJ,UAEZ7E,EAAQ2H,QACRvP,KAAKF,KAAK8H,EAAS0mB,EAAgBvN,GACnC/gB,KAAKyuB,WAAWH,IAEpBvc,MAAO,WACH,MAAI/R,MAAKoE,cACEpE,KAAK0uB,OAAO1uB,KAAKoP,OAAO5L,IAAIxD,KAAK0uB,OAAO1uB,KAAKwU,YAAY9K,SAAS,WAElE1J,KAAK0uB,OAAO1uB,KAAKoP,QAGhCsf,OAAQ,SAAUjqB,EAAWkqB,GACzB,MAAOlqB,GAAUiF,WAAWpF,OAAO,WAC/B,GAAIsqB,GAAKpxB,EAAEwC,KACX,SAA4B4uB,EAAGrkB,SAAvBokB,EAAgC,eAA+B,mBAAuBC,EAAGrkB,SAAS,iBAAoBqkB,EAAGrkB,SAAS,sBAGlJskB,UAAW,WAAA,GAGCC,GAAsBrf,EACjBjR,EAHTqwB,EAAYnvB,GAAM2Y,GAAG8O,gBAAgBxH,GAAGkP,UAAUjP,KAAK5f,KAC3D,IAAIA,KAAKoE,cAAe,CAEpB,IADI0qB,EAAID,EAAUnwB,OAAQ+Q,EAAUxM,MAAM,EAAI6rB,GACrCtwB,EAAIswB,IAAKtwB,GAAK,GACnBiR,EAAIjR,GAAKiR,EAAIjR,EAAIswB,GAAKD,EAAUrwB,EAEpCqwB,GAAYpf,EAEhB,MAAOof,IAEXzD,0BAA2B,WACvB,GAAIpL,GAAOhgB,IACXggB,GAAK+O,aAAe,KACf/O,EAAKhW,QAGVhK,KAAKgvB,QAAQ,UAAW,WACpB,OAAS7qB,SAAU6b,EAAKhW,MAAMpJ,SAElCof,EAAKhW,MAAMxG,IAAIwc,EAAKtL,cAAcnQ,KAAK,MAAM0qB,KAAK,WAC9C,GAAIve,GAAKlT,EAAEwC,MAAOkvB,EAAaxe,EAAGmB,KAAK,mBAAoBgY,EAAWnZ,EAAGmB,KAAK,qBAAsB0Y,EAAa7Z,EAAGmB,KAAK,kBACrHqd,IACAA,EAAWlO,UAEX6I,GACAA,EAAS7I,UAETuJ,GACAA,EAAWvJ,cAIvB2H,2BAA4B,WACxB,GAA4DhkB,GAASZ,EAAKrF,EAAtEshB,EAAOhgB,KAAMsF,EAAU+E,GAAY2V,EAAK1a,YAC5C,KAAKvB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDY,EAAUW,EAAQvB,GAAKY,QACnBA,GACAH,EAAyBwb,EAAMA,EAAKlK,QAASnR,IAIzD2iB,MAAO,WACH,GAAIjhB,GAAKrG,KAAK4H,QAAQ9E,KAAK,OAAS,MAChCuD,KACArG,KAAKmvB,QAAU9oB,EAAK,iBAG5BghB,SAAU,WACN,GAAIrH,GAAOhgB,KAAMqP,EAAQ2Q,EAAKpY,OACzByH,GAAMe,GAAG,WAENf,EADA2Q,EAAK/e,QAAQuoB,WACLxJ,EAAKpY,QAAQrD,KAAK,6BAElByb,EAAKpY,QAAQ8B,SAAS,SAE7B2F,EAAM3Q,SACP2Q,EAAQ7R,EAAE,aAAa0G,SAAS8b,EAAKpY,WAG7CoY,EAAK3Q,MAAQA,EAAMvM,KAAK,OAAQkd,EAAKoP,cAAgB,WAAa,QAClEpP,EAAK2B,YAET0N,oBAAqB,SAAU5qB,EAAWiM,GAArB,GAOb4e,GACAC,EACA/J,EACAgK,EACAC,EACAC,EACAC,EACApc,EACA1G,EACAmJ,EAfAgK,EAAOhgB,KACP4vB,EAAiB5P,EAAK/e,QAAQwpB,wBAC9BjB,EAAaxJ,EAAK/e,QAAQuoB,WAC1BuF,EAAe/O,EAAK+O,aACpBc,EAAoC,EAAjBD,EAAqB,EACxCE,EAAgB,CAWhBf,IAAgB/O,EAAK5b,eAAiB2qB,EAAald,KAAK,MAAM,KAAOnB,EAAG,KACxEqe,EAAa7N,IAAI/b,IAAIsH,SACrBsiB,EAAe,MAEdA,IACDA,EAAe/O,EAAK+O,aAAevxB,EAAE,gFACrCiH,EAAU4L,OAAO0e,IAErBxb,EAAa7T,GAAM6T,WAAW9O,GAC1Bua,KAAUxJ,GAAQua,SAAWva,GAAQC,QAAUD,GAAQ2J,SAAW,MAClE5L,OAEJoc,EAAkBK,WAAWvrB,EAAUhB,IAAI,oBAC3CoJ,EAAO6D,EAAGzG,SAAS4C,KAAO0G,EAAayc,WAAWtf,EAAGjN,IAAI,gBAAkBgB,EAAUwF,SAAS4C,KAAO8iB,GAChG3Q,GAGGwK,IACAsG,EAAgBjjB,GAAQ0G,EAAasc,EAAmB,EACxDP,EAAa5e,EAAGlC,QAAQ,8CACxBkhB,EAAiBJ,EAAW,GAAG/K,YAAc+K,EAAW,GAAGxtB,YAC3D2tB,EAAaO,WAAWV,EAAW7rB,IAAI,eACvC8rB,EAAe/Z,GAAQ0J,KAAO,EAAIxf,GAAM6T,WAAW+b,GAAcK,EAAkBF,EAAaK,EAAgB,EAChHtK,GAAoBsK,EACpBN,EAAoBha,GAAQua,QAAUJ,EAAkBF,EAAaK,EAAgB,EACrFjjB,GAAQ2Y,EAAmBgK,EAAoBD,GAVnD1iB,GAAQ6D,EAAG,GAAG5O,YAalBkU,EAAMtF,EAAGzG,SAAS+L,IAAMga,WAAWtf,EAAGjN,IAAI,eAAiBgB,EAAUwF,SAAS+L,IAAMga,WAAWvrB,EAAUhB,IAAI,oBAC7GsrB,EAAatrB,KACTuS,IAAKA,EACLnJ,KAAMA,EAAOgjB,EACb/wB,OAAQmX,GAAYvF,GACpB7R,MAAwB,EAAjB+wB,EAAqBE,IAC7Bje,KAAK,KAAMnB,GAAI5J,OAClBioB,EAAa7N,IAAI,WAAa/b,IAAIF,GAAG,WAAaE,GAAI,WAClD6a,EAAKiQ,mBAAmB/jB,SAASwE,EAAG5N,KAAKpD,GAAMoD,KAAK,UAAW,QAGvEotB,4BAA6B,WACzB,GAAIlQ,GAAOhgB,KAAMmwB,EAAanQ,EAAKtL,aAAesL,EAAKtL,aAAanQ,KAAK,eAAiB/G,GAC1FwiB,GAAKhW,MAAMxG,IAAI2sB,GAAYlrB,GAAG,YAAcE,GAAI,6BAA8B,SAAUyI,GAAV,GACtEwiB,GAA8B,IAAdxiB,EAAEyiB,QAA0BziB,EAAEyiB,QAAUziB,EAAE0iB,OAAS1iB,EAAEwiB,OACrE1f,EAAKlT,EAAEwC,KACP0Q,GAAGnG,SAAS,iBAAmBmG,EAAGnG,SAAS,qBAGzB,IAAX6lB,GAAqC,IAAXA,GAGjC1f,EAAG,GAAG6f,aAAa7wB,GAAMoD,KAAKgb,MAGlCkC,EAAKqP,oBAAoB3e,EAAGlC,QAAQ,OAAQkC,MAGpD8f,2BAA4B,SAAU5iB,GAC9BpQ,EAAEoQ,EAAE1E,QAAQsF,QAAQ,oBAAoB9P,SAG5ClB,EAAEsD,UAAUogB,IAAItT,GAChB5N,KAAKywB,2BACLzwB,KAAK0wB,sBAETD,yBAA0B,WACtB,GAAI/f,EACC1Q,MAAK+uB,eAGVre,EAAKlT,EAAEwC,KAAK+uB,cAAcld,KAAK,MAC3BnB,IACAA,EAAGnM,KAAK2U,GAAM8C,IAAYzX,KAAK2U,GAAM+C,IAAYnV,OACjD4J,EAAGnM,KAAK2U,GAAMgD,IAAapV,OAC3B4J,EAAGnM,KAAK2U,GAAMkD,IAA0BtV,OACxC4J,EAAGnM,KAAK2U,GAAMmD,IAAmBvV,UAGzC4pB,kBAAmB,WACX1wB,KAAK+uB,eACL/uB,KAAK+uB,aAAald,KAAK,MAAM2c,YAAY,mBACrCxuB,KAAKoE,gBAAkBpE,KAAK6sB,WAC5B7sB,KAAK+uB,aAAa7N,IAAI/b,IAAIsH,SAC1BzM,KAAK+uB,aAAe,MAEpB/uB,KAAK+uB,aAAavpB,SAI9BmrB,iCAAkC,WAC9B,GAAI3Q,GAAOhgB,KAAMmwB,EAAanQ,EAAKtL,aAAesL,EAAKtL,aAAanQ,KAAK,eAAiB/G,GAC1FwiB,GAAKkM,kBAAoB,GAAIxsB,IAAMmiB,WAAWsO,EAAW3sB,IAAIwc,EAAKhW,QAC9D1F,OAAQ,+CACRssB,UAAW,GACXC,QAAS,IACTC,KAAM,SAAUljB,GACZ,GAAI8C,GAAKlT,EAAEoQ,EAAE1E,OACb0E,GAAE8F,iBACEsM,EAAK+O,eACL/O,EAAK+O,aAAald,KAAK,MAAM2c,YAAY,mBACzCxO,EAAKyQ,4BAET/f,EAAGyY,SAAS,mBACZzY,EAAGnM,KAAK2U,GAAM8C,IAAYzX,KAAK2U,GAAM+C,IAAYzW,OACjDkL,EAAGnM,KAAK2U,GAAMgD,IAAa1W,OAC3BkL,EAAGnM,KAAK2U,GAAMkD,IAA0B5W,OACxCkL,EAAGnM,KAAK2U,GAAMmD,IAAmB7W,OACjCwa,EAAKqP,oBAAoB3e,EAAGlC,QAAQ,OAAQkC,GACvCsP,EAAKmM,oCACNnM,EAAKmM,kCAAoC/mB,GAAM4a,EAAKwQ,2BAA4BxQ,IAEpFxiB,EAAEsD,UAAUmE,GAAG,QAAS+a,EAAKmM,uCAIzC4E,aAAc,SAAUprB,EAAQqrB,GAAlB,GAYNvZ,GAcIwZ,EACAC,EACAryB,EA3BJmhB,EAAOhgB,KACPmxB,IAAaxrB,EAAOF,OACpB2rB,IAAazrB,EAAOC,OACpB3E,EAAUjB,KAAKiB,QACfsgB,EAAa7hB,GAAM2V,QAAQgc,SAAuC,EAA5B3xB,GAAM2V,QAAQkM,YACpDrW,EAAQimB,EAAWzlB,GAAQ/F,EAAQ6H,GAAqBC,GAAmBuS,EAAK1a,WAAaoG,GAAQ/F,EAAQ4H,EAAwBE,GAAmBuS,EAAK1a,WAC7JgsB,EAAeH,EAAWnR,EAAKxL,YAAcwL,EAAK3Q,MAClDme,EAASxN,EAAKwN,QAAUhwB,IACxB+zB,EAASJ,EAAWnR,EAAKtL,aAAanQ,KAAK,SAAWyb,EAAKhW,MAAMwE,QAAQ,SACzEgjB,EAAiB7rB,EAAO8rB,mBAAqB,GAC7CC,EAAuB/Y,GAAXwY,EAAsBG,EAAa/sB,KAAK,SAAuByb,EAAK5Q,MAEpF,OAAIgiB,IACAzrB,EAAO9G,MAAQmyB,EAAcQ,EAAiBR,EAAcQ,EAC5D,IAEAxR,EAAKwN,QAAUxN,EAAK5b,gBACpBopB,EAAoBxN,EAAKwN,OAAO9jB,SAAvBynB,EAAgC,wBAAgD,wBAGzF1Z,EADAxW,EAAQuoB,WACF+H,EAAOhtB,KAAK,6CAA+C2G,EAAQ,KAAK1H,IAAI8tB,EAAa5nB,SAAS,YAAYnF,KAAK,kDAAoD2G,EAAQ,MAAM1H,IAAIgqB,EAAOjpB,KAAK,YAAYA,KAAK,kDAAoD2G,EAAQ,MAElRomB,EAAa/sB,KAAK,YAAYA,KAAK,kDAAoD2G,EAAQ,KAErGjK,EAAQuoB,YACJyH,GAAY,EACZC,EAAalR,EAAKlK,QAAQjX,QAAU0iB,EACpC1iB,EAAQmyB,EAAcA,EAAcQ,EAAiBR,EAAcQ,EACnEL,GAAYO,EAAYV,EAAcnyB,EAAQqyB,IAC9CryB,EAAQmyB,GAAeE,EAAaQ,EAAwB,EAAZnQ,GAC5C1iB,EAAQ,IACRA,EAAQmyB,GAEZC,GAAY,GAEZpyB,EAAQ,IAAMA,GAAS2yB,IACvB/Z,EAAIhU,IAAI,QAAS5E,GACb6yB,IAEI7yB,EADAoyB,EACQC,EAAyB,EAAZ3P,EAEbmQ,GAAaV,EAAcrrB,EAAO9G,OAE9CyyB,EAAa9tB,IAAI+tB,GAAQ/tB,IAAIgqB,GAAQ/pB,IAAI,QAAS5E,GAC7CsyB,IACDnR,EAAK2R,aAAe9yB,KAIhCmhB,EAAK4R,uCACEZ,EAAc,IAAMA,GAAeQ,GAC1C/Z,EAAIhU,IAAI,QAASutB,GAErBrrB,EAAO9G,MAAQmyB,EACfhR,EAAK6R,8BACL7R,EAAK8R,2BACL9R,EAAK+R,0BACL/R,EAAKgS,uBAzCL,IA2CJC,WAAY,WACR,GAAyCxtB,GAAWytB,EAAalB,EAAaQ,EAAgBE,EAA2GP,EAAU1Z,EAAK/G,EAApNsP,EAAOhgB,KAAMiB,EAAU+e,EAAK/e,QAAyEkxB,EAAWnyB,KAAK6sB,UAAWtL,EAAa7hB,GAAM2V,QAAQgc,SAAuC,EAA5B3xB,GAAM2V,QAAQkM,WACpLtgB,GAAQopB,YACR5lB,EAAYxD,EAAQuoB,WAAaxJ,EAAKlK,QAAQvR,KAAK,6BAA+Byb,EAAKlK,QACnFqc,EACAnS,EAAK2Q,iCAAiClsB,GAEtCub,EAAKkQ,4BAA4BzrB,GAEjCub,EAAKqK,WACLrK,EAAKqK,UAAUrJ,UAEnBhB,EAAKqK,UAAY,GAAIhS,IAAG+Z,UAAU3tB,EAAUjB,IAAIwc,EAAKtL,eACjD2d,QAAWpxB,EAAQuoB,WAAa,GAAK,KAAO,mBAC5C8I,KAAM,SAAUD,GACZ,MAAO70B,GAAE,2CAA2CiG,KAAM3E,OAAQmX,GAAYoc,EAAOxgB,KAAK,OAASmO,EAAK5Q,MAAMtM,KAAK,mBAEvHkf,MAAO,SAAUpU,GAAV,GAKC2jB,GAA8BrmB,EAE9BomB,EAAyD9D,EAUzDloB,CAhBJoL,GAAKlT,EAAEoQ,EAAE0G,eAAezC,KAAK,MACzBsgB,GACAnS,EAAK0Q,oBAELa,EAAS7gB,EAAGlC,QAAQ,SAAUtD,EAAQ1N,EAAEkO,QAAQgF,EAAG,GAAI5C,GAAc4C,EAAGlC,QAAQ,UAAUlK,OAAO,aACrG6sB,EAAWI,EAAOhmB,SAAShB,SAAS,wBAChC+mB,EAAeH,EAAWnR,EAAKxL,YAAcwL,EAAK3Q,MAAOme,EAASxN,EAAKwN,QAAUhwB,IACjFwiB,EAAKwN,QAAUxN,EAAK5b,gBACpBopB,EAAoBxN,EAAKwN,OAAO9jB,SAAvBynB,EAAgC,wBAAgD,wBAE7F7tB,EAAO0c,EAAKlK,QAAS,cAEjB2B,EADAxW,EAAQuoB,WACF+H,EAAOhtB,KAAK,kDAAoD2G,EAAQ,KAAK1H,IAAI8tB,EAAa5nB,SAAS,YAAYnF,KAAK,kDAAoD2G,EAAQ,MAAM1H,IAAIgqB,EAAOjpB,KAAK,YAAYA,KAAK,kDAAoD2G,EAAQ,MAEvRomB,EAAa5nB,SAAS,YAAYnF,KAAK,kDAAoD2G,EAAQ,KAEzG5F,EAAU9H,EAAE8C,IAAI0f,EAAK1a,QAAS,SAAU0I,GACxC,OAAQA,EAAEpI,SAAWurB,GAAYnjB,EAAEvI,SAAW0rB,IAAanjB,EAAEvI,QAAUuI,EAAI,OAE/EkkB,EAActkB,EAAE2U,EAAEgQ,SAClBvB,EAAcrY,GAAWjI,GACzB8gB,EAAiBnnB,GAAY/E,GAAS4F,GAAOumB,mBAAqB,GAClEC,EAAuB/Y,GAAXwY,EAAsBG,EAAa5nB,SAAS,SAAuBsW,EAAK5Q,OAChFoG,GAAQC,QACRuK,EAAKlK,QAAQqT,SAAS,2BAG9BE,OAAQ,SAAUzb,GAAV,GAGI4f,GASA+D,EACAD,EACAL,EACAC,EACAryB,EAfJ2zB,EAAgBxT,MAAa,EAAGyT,EAAezB,EAAcpjB,EAAE2U,EAAEgQ,SAAWC,EAAgBN,EAAcM,CAC1GvxB,GAAQuoB,YAEJ2H,GAAYnR,EAAKyN,aACjBD,EAASxN,EAAKyN,aAAa/jB,SAAS,SAC7BsW,EAAKwN,SACZA,EAASxN,EAAKwN,OAAOjpB,KAAK,+BAEzBipB,GAAWA,EAAO,KACnBA,EAAShwB,KAET+zB,EAAS7gB,EAAGlC,QAAQ,SACpB8iB,EAAeH,EAAWnR,EAAKxL,YAAcwL,EAAK3Q,MAClD4hB,GAAY,EACZC,EAAalR,EAAKlK,QAAQjX,QAAU0iB,EACpC1iB,EAAQ4zB,EACRtB,GAAYO,EAAYV,EAAcnyB,EAAQqyB,IAC9CryB,EAAQmyB,GAAeE,EAAaQ,EAAwB,EAAZnQ,GAC5C1iB,EAAQ,IACRA,EAAQ4zB,GAEZxB,GAAY,GAEZpyB,EAAQ,IAAMA,GAAS2yB,IACvB/Z,EAAIhU,IAAI,QAAS5E,GACb6yB,IAEI7yB,EADAoyB,EACQC,EAAyB,EAAZ3P,EAEbmQ,EAAY9jB,EAAE2U,EAAEgQ,SAAWC,EAAgBN,EAAcM,EAErElB,EAAa9tB,IAAI+tB,GAAQ/tB,IAAIgqB,GAAQ/pB,IAAI,QAAS5E,GAC7CsyB,IACDnR,EAAK2R,aAAe9yB,KAIhCmhB,EAAK4R,uCACEa,EAAe,IAAMA,GAAgBjB,GAC5C/Z,EAAIhU,IAAI,QAASgvB,IAGzBC,UAAW,WAAA,GACwB/sB,GAAQ4rB,EAO/BrmB,EAPJynB,EAAWha,GAAWjI,EAC1BpN,GAAO0c,EAAKlK,QAAS,IACjBN,GAAQC,QACRuK,EAAKlK,QAAQ0Y,YAAY,0BAEzBwC,GAAe2B,IACfpB,EAASvR,EAAKtL,aAAesL,EAAKtL,aAAanQ,KAAK,wBAAwBf,IAAIwc,EAAKhW,MAAMzF,KAAK,aAAemM,EAAGnF,SAC9GL,EAAQwF,EAAG5N,KAAKpD,GAAMoD,KAAK,UAC1BoI,IACDA,EAAQqmB,EAAOhtB,KAAK,gDAAgD2G,MAAMwF,IAE9E/K,EAAS0E,GAAY2V,EAAK1a,SAAS4F,GACnCvF,EAAO9G,MAAQ8zB,EACf3S,EAAK6D,QAAQlH,IACThX,OAAQA,EACRitB,SAAU5B,EACV2B,SAAUA,IAEd3S,EAAK6R,8BACL7R,EAAK8R,2BACL9R,EAAK+R,0BACL/R,EAAKgS,wBAEThS,EAAKyQ,2BACLzQ,EAAK0Q,oBACLhgB,EAAK,UAKrBmiB,WAAY,WAAA,GAMAtB,GALJvR,EAAOhgB,IACPggB,GAAK/e,QAAQqpB,cACTtK,EAAKgN,oBACLhN,EAAKgN,mBAAmBhM,UAExBuQ,EAASvR,EAAKlK,QAAQpM,SAAS,kBACnCsW,EAAKgN,mBAAqBhN,EAAKlK,QAAQgd,gBACnC9E,MAAOtuB,GAAMyG,OACb4sB,YAAY,EACZzuB,OAAQ0b,EAAK3b,QAAU,wBAA0B0V,GAAc,8BAAgCA,GAC/FiZ,UAAW,WACPzB,EAAO7nB,SAAS,uBAAuB+W,OAAO,SAAWtb,GAAK,aAAaub,KAAK,SAAWvb,GAAK,YAAa,SAAUyI,GAC/GoS,EAAK0J,kBACLhqB,GAAM6T,WAAWyM,EAAK3b,QAAQE,KAAK,+BAAgCvE,KAAKuT,YAExE7T,GAAM6T,WAAWyM,EAAKuN,YAAY0F,IAAIrlB,EAAE0G,eAAgBtU,KAAKuT,eAIzE2f,QAAS,WACLlT,EAAKyQ,2BACLc,EAAO7nB,SAAS,uBAAuB+W,OAAO,SAAWtb,GAAK,cAElEmc,KAAM,WACFtB,EAAK0Q,qBAET4B,KAAM,SAAUppB,GACZ,GAAIwO,GAAQxO,EAAOpG,KAAKpD,GAAMoD,KAAK,SAInC,OAHI4U,KACAA,EAAQhY,GAAMyR,WAAWuG,IAEtBla,EAAE,uDAAuD8R,KAAKoI,GAASxO,EAAOpG,KAAKpD,GAAMoD,KAAK,WAAaoG,EAAOxL,QAAQ4S,QAAQ,4DAE9IuB,KAAK,oBAGhBshB,aAAc,WACV,GAAInT,GAAOhgB,IACPggB,GAAK/e,QAAQqpB,cACTtK,EAAKlK,QAAQjE,KAAK,qBAClBmO,EAAKlK,QAAQjE,KAAK,oBAAoBmP,UAE1ChB,EAAKlK,QAAQsd,kBACTC,UAAWrT,EAAKgN,mBAChBsG,mBAAoB,SAAUtvB,EAAayH,GACvC,GAAInG,GAAUqG,EAAsBqU,EAAK1a,QACzC,OAAOA,GAAQtB,GAAauvB,YAAa,GAAS1nB,EAA2BvG,EAAS0a,EAAK1a,QAAStB,EAAayH,OAErH+nB,gBAAiB,SAAU5lB,GACvB,MAAOpQ,GAAEoQ,EAAEhK,QAAQ2H,SAAS,KAAO/N,EAAEoQ,EAAE1E,QAAQqC,SAAS,IAAMM,EAA2BF,EAAsBqU,EAAK1a,SAAU0a,EAAK1a,QAASsI,EAAE5J,YAAa4J,EAAEnC,iBAEjKgoB,OAAQ,SAAU7lB,GAAV,GACAtI,GAAUqG,EAAsBqU,EAAK1a,SACrCK,EAASL,EAAQsI,EAAE8lB,UACnBC,EAAW9nB,EAA2BvG,EAAS0a,EAAK1a,QAASsI,EAAE8lB,SAAU9lB,EAAE+lB,SAC/E3T,GAAK6D,QAAQjH,IACT+W,SAAUA,EACVD,SAAUhoB,GAAQ/F,EAAQL,GAC1BK,OAAQA,IAEZqa,EAAK4T,cAAcD,EAAUhuB,EAAuB,WAAfiI,EAAE1D,eAKvD2pB,eAAgB,SAAU5qB,EAASC,EAAQpF,EAAQW,GAAnC,GAIR6E,GACAwB,EAEK/G,EAUL+vB,EACAC,EAjBA/T,EAAOhgB,KACP4K,EAAiBJ,EAAevB,EAAQ,GAAI+W,EAAK1a,SACjD0uB,EAAexpB,EAAetB,EAAQ8W,EAAK1a,SAG3C6D,IACJ,KAASpF,EAAM,EAAGA,EAAMkF,EAAQvK,OAAQqF,IAChCkF,EAAQlF,GAAKuB,UACb6D,EAAQA,EAAMjB,OAAOe,EAAQlF,GAAKuB,SAItCwF,GADArG,EACMN,EAASM,EAAWA,EAAW,SAAWmG,EAAeH,IAAM,sDAE/DtG,EAAS6b,EAAKtL,aAAcsL,EAAKhW,MAAO,SAAWY,EAAeH,IAAM,sDAE9EqpB,EAAsBprB,EAAcO,GAASvK,OAC7Cq1B,EAAsBrrB,GAAeQ,IAASxK,OAC9CyK,EAAMzK,QACFo1B,EAAsB,GAA6B,IAAxBC,GAC3BzqB,EAAS,UACTN,EAA2BC,EAASC,EAAQC,EAAO6W,EAAK1a,QAAS0a,EAAKtL,aAAanQ,KAAK,SAAUyb,EAAKhW,MAAOhK,KAAKipB,UAAW3f,IAC/F,IAAxBwqB,GAA6BC,EAAsB,IAC1DzqB,EAA+B,IAAtB0qB,EAAa1rB,OAAcW,EAAQ,GAAG3D,SAAY4D,EAAO5D,SAAY0a,EAAKgJ,OAAqB,SAAZ,UAC5FhgB,EAA2BC,EAASC,EAAQC,EAAOP,EAAiBoX,EAAK1a,SAAU0a,EAAKhW,MAAOgW,EAAKtL,aAAanQ,KAAK,SAAUvE,KAAKipB,UAAW3f,KAEhJJ,EAAO5D,SAAWsF,EAAetC,KAAO0rB,EAAa1rB,KAAO,GAAK0rB,EAAa1rB,KAAOsC,EAAetC,KAAO,KAC3GY,EAASmC,EAAkB2U,EAAK1a,QAAS4D,EAAQD,EAAQ,GAAInF,EAAQkc,EAAK1a,SACtE4D,IACI4qB,EAAsB,GAA6B,IAAxBC,EAC3B/T,EAAK6T,eAAe1qB,EAAOD,EAAQpF,EAAQkc,EAAKhW,OACjB,IAAxB8pB,GAA6BC,EAAsB,EAC1D/T,EAAK6T,eAAe1qB,EAAOD,EAAQpF,EAAQkc,EAAKmQ,YAEhDnQ,EAAK6T,eAAe1qB,EAAOD,EAAQpF,MAIxCgwB,IAAwBC,GAC/B1rB,EAAkByC,EAAIF,EAAetC,MAAO0X,EAAK1a,QAASwuB,GAE9DpwB,EAAQoH,EAAKF,EAAetC,KAAM0rB,EAAa1rB,KAAMxE,EAAQmF,EAAQvK,SAEzEu1B,gBAAiB,SAAUhrB,EAASG,EAAatF,GAAhC,GAYEowB,GAAWC,EAGlBC,EAiCJ7qB,EAWKxF,EAASrF,EA1DdshB,EAAOhgB,KACPq0B,EAAa72B,IACboG,EAASqF,EAAQ,GACjBqrB,EAAiBzsB,EAAeoB,GAChCjF,EAAc0H,GAAQ9H,EAAQyG,GAAY2V,EAAK1a,UAC/CivB,EAAY7oB,GAAQtC,EAAaiB,GAAY2V,EAAK1a,UAClDkvB,EAAiB9oB,GAAQ4oB,EAAe,GAAI7mB,GAAmBuS,EAAK1a,UACpEmvB,EAAU/oB,GAAQtC,EAAaqE,GAAmBuS,EAAK1a,UACvDovB,EAAchsB,EAAcsX,EAAK1a,SAAS5G,OAC1CyyB,IAAa/nB,EAAY3D,OACzB+nB,EAASxN,EAAKwN,QAAUxN,EAAKlK,QAAQvR,KAAK,kBAC1CowB,EACQT,EAAYO,CA8CxB,KA7CIrrB,EAAYxD,SACRwuB,EAAejD,EAAWzoB,EAAcsX,EAAK1a,SAAWsD,EAAiBoX,EAAK1a,SAC9EuC,EAAeusB,GAAc11B,OAAS,GACtCi2B,EAAYT,EAAYO,EAAUz0B,KAAK40B,+BAA+BR,EAAcG,GACpFJ,EAAsBtsB,EAAeusB,EAAaS,MAAMN,IAAY71B,OAAS,GAEzEyyB,GACAsD,EAAUzU,EAAKxL,YAAYjQ,KAAK,YAChCowB,EAAY3U,EAAKtL,aAAanQ,KAAK,YACnC2vB,EAAY12B,EAAEwiB,EAAKyN,cAAclpB,KAAK,qBAEtCkwB,EAAUzU,EAAK5Q,MAAM0lB,OACrBH,EAAY3U,EAAKhW,MAAM8qB,OACvBZ,EAAY1G,EAAOjpB,KAAK,uBAAuBA,KAAK,qBAI5Dyb,EAAK+U,iBACLrxB,EAAQsc,EAAKlK,QAAQvR,KAAK,yDAA0DP,EAAauwB,EAAWzwB,EAAQmF,EAAQvK,QAE5H81B,GAAkB,GAClB9wB,EAAQS,EAAS6b,EAAKtL,aAAcsL,EAAKhW,MAAM8qB,OAAQnb,IAAW6a,EAAgBG,EAAWR,EAAsBA,EAAsBrwB,EAAQwwB,EAAe51B,QAEhKshB,EAAK/e,QAAQuoB,YACTgL,GAAkB,IAAMxU,EAAKgV,sBAC7BtxB,EAAQS,EAAS6b,EAAKxL,YAAawL,EAAK5Q,MAAM0lB,OAAQnb,IAAW6a,EAAgBC,EAASN,EAAsBA,EAAsBrwB,EAAQwwB,EAAe51B,QAGjK8uB,GAAUA,EAAO9uB,SACb81B,GAAkB,GAClB9wB,EAAQS,EAAS6b,EAAKyN,aAAcD,EAAOjpB,KAAK,uBAAwB,0DAA2DiwB,EAAgBN,EAAWC,EAAsBA,EAAsBrwB,EAAQwwB,EAAe51B,QAErOgF,EAAQ8pB,EAAOjpB,KAAK,8DAA+DP,EAAauwB,EAAWzwB,EAAQmF,EAAQvK,SAE3H6K,EAAOyW,EAAK5Q,MAAM1F,SAAS,uCAC3BsW,EAAKxL,cACDkgB,EAAcH,EACVG,GAAe1wB,GACfmO,GAAc6N,EAAKxL,YAAYjQ,KAAK,4BAA6Byb,EAAK3Q,MAAM9K,KAAK,4BAA6B0E,EAAQvK,QAEnHg2B,EAAc1wB,GACrBmO,GAAc6N,EAAK3Q,MAAM9K,KAAK,4BAA6Byb,EAAKxL,YAAYjQ,KAAK,4BAA6B0E,EAAQvK,QAE1H21B,EAAarU,EAAKxL,YAAYjQ,KAAK,iDAE9BR,EAAM,EAAGrF,EAAS6K,EAAK7K,OAAQqF,EAAMrF,EAAQqF,GAAO,EACzDL,EAAQS,EAASkwB,EAAWtwB,GAAMwF,EAAKxF,GAAM,4CAA6CC,EAAauwB,EAAWzwB,EAAQmF,EAAQvK,SAG1Ik2B,+BAAgC,SAAUtvB,EAASqM,GAC/C,GAAIyiB,GAAevsB,EAAevC,EAAQuvB,MAAMljB,IAAcjT,OAAS,EAAI4G,EAAQuvB,MAAMljB,GAAerM,EAAQuvB,MAAM,EAAGljB,EAAc,GAAGsjB,UAAWC,EAAuBrtB,EAAeusB,GAAc,EACzM,OAAO1oB,IAAQwpB,EAAsBrtB,EAAe7H,KAAKsF,WAE7D2qB,mBAAoB,SAAUkF,GAC1Bn1B,KAAKo1B,cAAc/qB,GAAYrK,KAAKsF,SAAS6vB,KAEjDC,cAAe,SAAUzvB,GAAV,GACsDuF,GAAOwF,EAAI+D,EAAa0c,EAAsI1Z,EAAK4d,EAAUC,EAAY/hB,EAA6KgiB,EAAMC,EAyBzalE,EAAyD9D,EAIzDiI,EAIKC,EAkBLC,EAIAC,EAOAC,EAUI5pB,EAAgCG,EAAU8kB,EACrCntB,EAASrF,EAzElBshB,EAAOhgB,KAAMiB,EAAU+e,EAAK/e,QAASqE,EAAU0a,EAAK1a,QAA2CwwB,EAAgB9V,EAAKtL,aAAe5G,GAAckS,EAAKtL,aAAanQ,KAAK,iBAAiBD,OAAOmD,GAAe/I,OAAS,EAA0Cq3B,EAAyB,8CAA+CC,EAAiC,sDAY/W,IAVIrwB,EADiB,gBAAVA,GACEL,EAAQK,GACVb,GAAca,GACZmC,GAAK8D,EAAYtG,GAAU,SAAUwL,GAC1C,MAAOA,KAASnL,IACjB,GAEMmC,GAAK8D,EAAYtG,GAAU,SAAUwL,GAC1C,MAAOA,GAAKhL,QAAUH,IACvB,GAEFA,GAAWI,EAAUJ,GAA1B,CAqBA,IAlBA0vB,EAAW1vB,EAAO8rB,kBAClBvmB,EAAQQ,GAAQ/F,EAAQ0E,GAAY/E,IACpC6rB,EAAWxrB,EAAOF,OAEdgP,EADA0c,EACcnR,EAAKtL,aAAahL,SAAS,SAE3BsW,EAAKhW,MAAMuB,SAE7BmF,EAAK+D,EAAYlQ,KAAK,gBAAmB2G,EAAQ,MACjDqqB,EAAO7kB,EAAGnM,KAAK,2CACX+sB,EAAeH,EAAWnR,EAAKxL,YAAcwL,EAAK3Q,MAAOme,EAASxN,EAAKwN,QAAUhwB,IACjFwiB,EAAKwN,QAAUxN,EAAK5b,gBACpBopB,EAAoBxN,EAAKwN,OAAO9jB,SAAvBynB,EAAgC,wBAAgD,wBAEzFsE,EAAcjI,EAAOjpB,KAAK,SAASkd,QACnCzB,EAAKtL,eAAiByc,IACtBjmB,GAAS4qB,GAEJJ,EAAI,EAAGA,EAAIpwB,EAAQ5G,QACpB4G,EAAQowB,KAAO/vB,EADa+vB,IAIxBpwB,EAAQowB,GAAG9vB,QACXsF,GAiCZ,IA7BIjK,EAAQuoB,YACR/R,EAAMhD,EAAYlQ,KAAKwxB,GAAwB9xB,GAAGiH,GAAO1H,IAAI8tB,EAAa5nB,SAAS,YAAYnF,KAAKwxB,GAAwB9xB,GAAGiH,IAAQ1H,IAAIiyB,EAAYlxB,KAAK,YAAYA,KAAKwxB,GAAwB9xB,GAAGiH,IACnMimB,IACDmE,EAAahE,EAAa/lB,SAC1BgI,EAAa7T,GAAM6T,WAAW+hB,KAGlC7d,EAAM6Z,EAAa5nB,SAAS,YAAYnF,KAAKwxB,GAAwB9xB,GAAGiH,GAExEyqB,EAASlhB,EAAYjR,IAAI8tB,GAAc9tB,IAAIiyB,GAC3CjgB,GAAQygB,QACRvlB,EAAGjN,IAAI,cAAe,WAEtBmyB,EAAiBjd,GAAWjI,GAChC+G,EAAI5Y,MAAM,IACV82B,EAAOlyB,IAAI,eAAgB,SAC3BgU,EAAI5Y,MAAM,QACV82B,EAAOxM,SAAS,iBAChBwM,EAAOlyB,IAAI,eAAgB,IAC3B+xB,EAAUD,EAAK72B,OAASia,GAAW4c,GAAQ5c,GAAWjI,GAAMiI,GAAWjI,GACnEmlB,EAAiBhnB,KAAKoR,KAAKpR,KAAKlE,IAAI6qB,EAAS7c,GAAW2Y,EAAa/sB,KAAK,2BAA2BN,GAAG,GAAGyF,SAASssB,GAAgC/xB,GAAGiH,IAASyN,GAAW8c,EAAYlxB,KAAK,MAAMN,GAAG,GAAGyF,SAASssB,GAAgC/xB,GAAGiH,MAAY,EAChQmqB,GAAYA,EAAWQ,IACvBA,EAAiBR,GAErB5d,EAAI5Y,MAAMg3B,GACVlwB,EAAO9G,MAAQg3B,EACXrgB,GAAQygB,QACRvlB,EAAGjN,IAAI,cAAe,IAEtBxC,EAAQuoB,WAAY,CAEpB,IADIvd,EAAOwI,EAAYlQ,KAAK,OAAkB2sB,EAAa,EAClDntB,EAAM,EAAGrF,EAASuN,EAAKvN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAEzD,GADAqI,EAAWH,EAAKlI,GAAK9E,MAAMJ,MACvBuN,GAAYA,EAASC,QAAQ,SAC7B6kB,GAAchlB,SAASE,EAAU,QAC9B,CAAA,IAAIH,EAAKhI,GAAGF,GAAKwG,SAAS,eAE1B,CACH2mB,EAAa,CACb,OAHAA,GAAchlB,SAASD,EAAKhI,GAAGF,GAAKlF,QAAS,IAMjDqyB,GACAyE,EAAO1G,KAAK,WACRjvB,KAAKf,MAAMJ,MAAQqyB,EAAa,OAI5CyE,EAAOnH,YAAY,iBACfjb,GACA7T,GAAM6T,WAAW+hB,EAAY/hB,GAEjCyM,EAAK6D,QAAQlH,IACThX,OAAQA,EACRitB,SAAUgD,EACVjD,SAAUkD,IAEd7V,EAAK6R,8BACL7R,EAAK8R,2BACL9R,EAAK+R,0BACL/R,EAAKgS,yBAET4B,cAAe,SAAUW,EAAW5uB,EAAQ7B,GAA7B,GACwNoyB,GAgB/NC,EAhBAnW,EAAOhgB,KAAMuL,EAASjF,EAAaX,EAAQqa,EAAK1a,SAAUA,EAAUiG,EAASA,EAAOjG,QAAU0a,EAAK1a,QAAStB,EAAc0H,GAAQ/F,EAAQL,GAAU8wB,EAAa9wB,EAAQivB,GAAY8B,EAAgBrW,EAAKqW,kBAAkClF,IAAaiF,EAAW3wB,OAAQivB,EAAchsB,EAAcsX,EAAK1a,SAAS5G,OAAQ43B,EAAmCxuB,GAAKuC,GAAY2V,EAAK1a,SAAU,SAAUK,GACvY,MAAOA,GAAO4wB,2BAElBvyB,KAAgBuwB,KAGf5uB,EAAOF,QAAU0rB,GAAqD,GAAzCvoB,EAAiBoX,EAAK1a,SAAS5G,QAG7DiH,EAAOF,SAAW0rB,GAA2B,GAAfuD,IAGlC1U,EAAK0Q,oBACD5sB,IAAWpB,IACXoB,EAASywB,EAAYvwB,GAErBmyB,GAAiBxwB,GACrBqa,EAAK6T,eAAesC,EAAeC,EAAYtyB,GAC3Ckc,EAAKtL,eACLnI,EAAgByT,EAAKhW,OACrBuC,EAAgByT,EAAKtL,eAErB0hB,EAAW9wB,UACX8wB,EAAa/rB,GAAY+rB,EAAW9wB,SACpC8wB,EAAaA,EAAWtyB,EAAS,EAAIsyB,EAAW13B,OAAS,IAEzDiH,EAAOL,UACP6wB,EAAgB9rB,GAAY1E,EAAOL,UAEvC0a,EAAKiU,gBAAgBkC,EAAeC,EAAYtyB,GAChDoyB,IAAgBvwB,EAAOF,OACvBywB,EAAcA,GAAe/E,EAC7BxrB,EAAOF,OAAS0rB,EAChB7rB,EAAQoB,OAAO5C,EAASywB,EAAYA,EAAY,EAAG,EAAG5uB,GACtDL,EAAQoB,OAAO1C,EAAcuwB,EAAYvwB,EAAcA,EAAc,EAAG,GACxEgc,EAAKwW,oBACLxW,EAAKyW,cACLzW,EAAKqI,aACLrI,EAAK0W,yBACL1W,EAAK2W,uBACDL,EAAiC53B,OAAS,GAC1CshB,EAAK4W,mBAET5W,EAAK6W,qBACL7W,EAAK6R,8BACL7R,EAAK+R,0BACL/R,EAAK8R,2BACL9R,EAAK8W,0BACL9W,EAAKgS,uBACDqE,EAAc/wB,SACd0a,EAAKM,UAEJ4V,IAGD/E,EACAnR,EAAK6D,QAAQhH,IAAclX,OAAQA,IAEnCqa,EAAK6D,QAAQ/G,IAAgBnX,OAAQA,QAG7C+wB,uBAAwB,WAAA,GAChBnF,GACAtnB,EAAS,CACTjK,MAAK0U,eACL6c,EAASvxB,KAAK0U,aAAanQ,KAAK,SAChC0F,EAASF,EAAgBwnB,EAAQ7oB,EAAc1I,KAAKsF,WAExDyE,EAAgB/J,KAAKgK,MAAOpB,EAAiB5I,KAAKsF,SAAU2E,IAEhE8sB,WAAY,SAAUpxB,GAAV,GAeJuF,GAdA5F,EAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUwL,GAC7B,MAAOA,GAAKhL,QAAUH,IACvB,IAEFA,GAAUA,EAAOF,QAAUE,EAAOC,SAGnCD,EAAO0H,QACPrN,KAAKg3B,cAAc1xB,EAAQ+G,QAAQ1G,IAEnCuF,EAAQxC,EAAcpD,GAAS5G,OAAS,EAC5CsB,KAAK4zB,cAAc1oB,EAAOvF,GAAQ,KAEtCsxB,aAAc,SAAUtxB,GAAV,GAYNuF,GAXA5F,EAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUwL,GAC7B,MAAOA,GAAKhL,QAAUH,IACvB,GAEFA,GAAWA,EAAOF,SAAUE,EAAOC,SAGpCsF,EAAQxC,EAAcpD,GAAS5G,OACnCsB,KAAK4zB,cAAc1oB,EAAOvF,GAAQ,KAEtCuxB,YAAa,SAAUvxB,GACnB,GAAIL,GAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUwL,GAC7B,MAAOA,GAAKhL,QAAUH,IACvB,IAEFA,GAAUA,EAAO0H,QAAU1H,EAAOC,QAGnCD,EAAOF,SACPzF,KAAKi3B,aAAa3xB,EAAQ+G,QAAQ1G,IAC9BA,EAAOF,UAIfE,EAAO0H,QAAS,EAChBrN,KAAKgyB,yBAETgF,cAAe,SAAUrxB,GACrB,GAAIL,GAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUwL,GAC7B,MAAOA,GAAKhL,QAAUH,IACvB,GAEFA,GAAWA,EAAO0H,SAAU1H,EAAOF,SAAUE,EAAOC,SAGzD5F,KAAKm3B,yBAAyBxxB,IAC9B3F,KAAKo3B,oBAAoBhqB,EAAc9H,IACvCK,EAAO0H,QAAS,EAChBrN,KAAKgyB,uBAC4B,IAA7BhyB,KAAKq3B,sBACLr3B,KAAKqoB,aACDroB,KAAK+0B,iBACL/0B,KAAKs3B,8BAIjBC,UAAW,SAAUC,GACjB,GAAIC,GAAqB,CAIzB,OAHIz3B,MAAKwU,cAAgBhX,EAAE4X,SAASpV,KAAKwU,YAAY,GAAIgjB,EAAG,MACxDC,EAAqBptB,GAAY3B,EAAc1I,KAAKsF,UAAU5G,QAE3DlB,EAAEg6B,GAAIjsB,SAAS7B,SAAS,2CAA2CwB,MAAMssB,GAAMC,GAE1FC,mBAAoB,SAAUjzB,GAC1BA,EAAYjH,EAAEiH,GACTA,EAAU2L,GAAG,OAA8B,UAArBpQ,KAAK23B,cAC5BlzB,EAAYA,EAAU+J,QAAQ,MAElC,IAAInI,GAAK5B,EAAU3B,KAAKpD,GAAMoD,KAAK,OACnC,OAAO9C,MAAK4X,WAAWC,SAASxR,IAEpCuxB,sBAAuB,SAAUtvB,GAAV,GACfivB,GAAYv3B,KAAKu3B,UAAUjvB,GAC3BuvB,EAAgB,CAKpB,OAJI73B,MAAKg1B,uBACL6C,EAAgB3rB,SAAS1O,EAAE8K,GAAMkG,QAAQ,MAAMjK,KAAK,YAAYzB,KAAK,WAAY,IACjF+0B,EAAgBA,EAAgB,EAAIA,EAAgB,EAAI,GAErDN,EAAYM,GAEvBnP,UAAW,WAAA,GAaCoP,GAZJ9X,EAAOhgB,KAAMmU,EAAW6L,EAAK/e,QAAQkT,SAAU4jB,EAAU,WACrD,GAAI7uB,GAASuP,KAAiBnQ,EAAO0X,EAAKgY,cACtC1vB,IAAQA,EAAK,KAAO9K,EAAE4X,SAAS9M,EAAK,GAAIY,IAAWZ,EAAK,KAAOY,IAAW1L,EAAE0L,GAAQsF,QAAQ,0BAA0B9P,SAClHshB,EAAK7L,SAAS8jB,MACdjY,EAAKkY,YAELlY,EAAKmY,yBAIjBhkB,KACAnU,KAAK8V,QAAQqT,SAAS,cAClB2O,EAAO9X,EAAK2X,YACH,WAATG,GACA9X,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,aAAavP,GAAG,YAAcE,GAAIqU,GAAS,IAAMC,GAAS,SAAU7L,GACpF,GAAI1E,GAAS1L,EAAEoQ,EAAE1E,OACQ,YAArB8W,EAAK2X,aAA4BzuB,EAAOqB,SAAS,eAAiBrB,EAAO4rB,OAAOhyB,KAAKpD,GAAMoD,KAAK,UAChG8K,EAAE8F,mBAGNS,EAAS4S,UAAW,IAChB3H,IACAY,EAAKlK,QAAQ7Q,GAAGC,GAAQC,GAAI,wCAA2C,SAAUyI,GAC7EpQ,EAAEoQ,EAAE1E,QAAQyK,UACb1O,GAAGC,GAAQC,GAAI,eAAgB,SAAUyI,GACnCpQ,EAAEoQ,EAAE1E,QAAQkH,GAAG,UAChB5S,EAAEoQ,EAAE0G,eAAe/P,KAAK,0BAA4BoP,UAEzD1O,GAAGiY,GAAY/X,GAAI,+BAAgC,SAAUyI,GAC5D,GAAIwqB,GAAgBpY,EAAKgY,cAErBhY,GAAKqY,wBADLD,IAAiBA,EAAc,KAAO56B,EAAE4X,SAASgjB,EAAc,GAAIxqB,EAAE1E,SAAWkvB,EAAc,KAAOxqB,EAAE1E,UAOnH8W,EAAKqM,mBAAqB,GAAI3sB,IAAMmiB,WAAW7B,EAAKlK,SAChDxR,OAAQ,+BACRyd,gBAAgB,EAChBuW,IAAK,SAAU1qB,GACX,GAAI4pB,GAAKh6B,EAAEoQ,EAAE1E,QAASqvB,EAAevY,EAAKxL,aAAegjB,EAAGhpB,QAAQ,SAAS,KAAOwR,EAAKxL,YAAY,EACrGwL,GAAKqY,sBAAuB,EACxBb,EAAGjtB,SAAS,qBAAuBitB,EAAGjtB,SAAS,kBAAoBitB,EAAGjtB,SAAS,iBAAmBitB,EAAGjtB,SAAS,gBAAkBitB,EAAGgB,IAAI,mBAAmB95B,QAAU84B,EAAGgB,IAAI,wBAAwB95B,QAAU84B,EAAGhpB,QAAQ,SAAS,KAAOwR,EAAK5Q,MAAM,KAAOmpB,GAAgB/6B,EAAEoQ,EAAE1E,QAAQkH,GAAG,YAGzR4P,EAAK7L,SACD6L,EAAK7L,SAAS8jB,OACdz6B,EAAEib,MAAiBggB,OACnBzY,EAAKkY,YACLlY,EAAK0Y,SAASlB,IAEdxX,EAAKmY,wBAGTnY,EAAK0Y,SAASlB,OAI1BxX,EAAKlK,QAAQ7Q,GAAG,UAAYE,GAAI,WACvB3H,EAAE4X,SAASpV,KAAMyY,QAClB0I,aAAanB,EAAKwL,OAClBxL,EAAKwL,MAAQ,QAElBvmB,GAAG,WAAaE,GAAI,SAAUyI,GAC7B,GAAI+qB,IAAkB,GAClBvZ,IAASY,EAAKqY,sBAAwBrY,EAAK4Y,qBAC3CD,GAAkB,GAEtB3Y,EAAKqY,sBAAuB,EACxBM,IACA3Y,EAAKwL,MAAQvW,WAAW,WACpB8iB,EAAQnqB,IACT,QAKXuG,EAAS4S,UAAW,IACpB/G,EAAKlK,QAAQ7Q,GAAGC,GAAQC,GAAI,oEAAqE,SAAUyI,GACvG,GAAIhG,GAAUpK,EAAEwC,KACXggB,GAAK6Y,eAAejxB,KAGzBgG,EAAE8F,iBACFsM,EAAK8Y,QAAQlxB,EAAQ4G,QAAQ,UAE7BwR,EAAK+Y,4BACL/Y,EAAKlK,QAAQ7Q,GAAG,WAAaE,GAAI,+BAAgC,WACzD6a,EAAK7L,WAAa6L,EAAK7L,SAAS8jB,OAChCjY,EAAKmY,2BAMrBhkB,EAAS6M,WAAY,EACrBhB,EAAKlK,QAAQ7Q,GAAGC,GAAQC,GAAI,qEAAsE,SAAUyI,GACxG,GAAIhG,GAAUpK,EAAEwC,KACXggB,GAAK6Y,eAAejxB,KAGzBgG,EAAE8F,iBACF9F,EAAEorB,kBACFhZ,EAAKiZ,UAAUrxB,EAAQ4G,QAAQ,UAGnCwR,EAAKlK,QAAQ7Q,GAAGC,GAAQC,GAAI,2EAA4E,SAAUyI,GACzGoS,EAAK6Y,eAAer7B,EAAEwC,SAG3B4N,EAAEorB,kBACGhZ,EAAKkZ,iBACNtrB,EAAE8F,sBAMtBglB,SAAU,SAAUpwB,GAAV,GAEF0X,GAAara,EAAsEsO,EA+B/E2a,CA7BR,IAHAtmB,EAAO9K,EAAE8K,GACL0X,EAAOhgB,KAAM2F,EAAS0E,GAAY2V,EAAK1a,SAAS0a,EAAK4X,sBAAsBtvB,IAAQ2L,EAAQ+L,EAAK0X,mBAAmBpvB,GACvH0X,EAAKkY,YACDjkB,GAASD,GAAiBrO,EAAQsO,KAAWtO,EAAOhB,QAAS,CAC7D,GAAIqb,EAAK6D,QAAQzJ,IAAcnG,MAAOA,IAClC,MAEJ+L,GAAKmZ,mBAAmBllB,GACxB+L,EAAKgY,eAAiB1vB,EAClB0X,EAAKoZ,2BACLpZ,EAAKqZ,sBAETrZ,EAAK7L,SAAW7L,EAAK6gB,SAAS,eAAemQ,eACzCC,QACIzzB,MAAOH,EAAOG,MACdqK,OAAQxK,EAAOwK,OACfqpB,OAAQ7zB,EAAO6zB,OACfC,OAAQ9zB,EAAO8zB,QAEnBxlB,MAAOA,EACP/K,OAAQ8W,EACRyT,OAAQ,SAAU7lB,GACVoS,EAAK6D,QAAQxJ,IACTof,OAAQ7rB,EAAE6rB,OACVh1B,UAAW6D,EACX2L,MAAOA,KAEXrG,EAAE8F,kBAGVgmB,aAAY1Z,EAAK2Z,6BAA8B3Z,EAAKgV,uBAAyBhV,EAAK4Z,kBACnF/nB,KAAK,iBACJ+c,EAAKtmB,EAAKiD,SAAS4d,SAAS,mBAC5BnJ,EAAK5b,gBACL2O,GAAgB6b,EAAG,GAAI5O,EAAK6Z,YAAYjL,GAAIzF,SAAS,mBAAmB,IACxEnJ,EAAK8Z,qBAET9Z,EAAK6D,QAAQ1J,IACT1V,UAAW6D,EACX2L,MAAOA,MAInB8lB,iCAAkC,WAAA,GAC1B1qB,GAAQrP,KAAKqP,MAAOhL,EAAUgL,EAAM9D,SACpCgW,EAAYlS,EAAM,GAAGvN,YAAcuC,EAAQ,GAAGmgB,YAAc9kB,GAAM2V,QAAQkM,YAAc,CAC5FvhB,MAAKoE,cAActF,OAAOuF,EAAQ,GAAGtC,aAAewf,IAExDuY,kBAAmB,WACf95B,KAAKoE,cAAc,GAAGge,UAAYpiB,KAAKqE,QAAQ,GAAG+d,UAC9CpiB,KAAK0pB,oBACL1pB,KAAKoE,cAAc,GAAGge,UAAYpiB,KAAK8V,QAAQvR,KAAK,8BAA8B,GAAG6d,YAG7F0P,yBAA0B,WAClB9xB,KAAKwU,cACAxU,KAAKg6B,eACNh6B,KAAK+5B,mCAET/5B,KAAKi6B,kBAAkBj6B,KAAKqP,MAAOrP,KAAKwU,eAGhDud,wBAAyB,WAAA,GAEbvd,GACAnF,CAFJrP,MAAK0U,eACDF,EAAcxU,KAAK0U,aAAahL,SAAS,SACzC2F,EAAQrP,KAAKgK,MAAMuB,SACvBvL,KAAKi6B,kBAAkBzlB,EAAanF,GACpCmD,GAAgBgC,EAAanF,KAGrC6qB,wBAAyB,WACjBl6B,KAAKytB,cAAgBztB,KAAKwtB,QAAUxtB,KAAKwtB,OAAO9uB,QAChDsB,KAAKi6B,kBAAkBj6B,KAAKytB,aAAa/jB,SAAS,SAAU1J,KAAKwtB,OAAOjpB,KAAK,iCAGrFgoB,iBAAkB,WAAA,GACVvM,GAAOhgB,KACPghB,EAAU,WACV,GAAIhB,EAAK7L,SAAU,CACf,GAAI1P,GAAYub,EAAKma,SAAWna,EAAKma,SAASvyB,QAAUoY,EAAKgY,cACzDvzB,KACAA,EAAUyc,IAAIhc,GAAQC,GAAI,kBAAmB6a,EAAKoa,yBAClD31B,EAAUyc,IAAIhc,GAAQC,GAAI,kBAAmB6a,EAAKqa,0BAEtDra,EAAKsa,qBACLta,EAAK7L,SAAS6M,UACdhB,EAAK7L,SAAW,KAChB6L,EAAKgY,eAAiB,KACtBhY,EAAKua,mBACLva,EAAKwa,mBAAqB,MAG9Bxa,GAAK7L,WACoB,UAArB6L,EAAK2X,aAA4B3X,EAAK6M,UAQtC7L,IAPIhB,EAAKwa,mBACLxa,EAAKgY,eAAenmB,KAAK,eAAe6O,KAAK,aAAcM,IAE3DhB,EAAKwa,oBAAqB,EAC1Bxa,EAAKgY,eAAenmB,KAAK,eAAe6O,KAAK,aAAcM,GAASyZ,UAM5Eza,EAAK0a,iBACL1a,EAAK0a,eAAeD,QACpBza,EAAK0a,eAAe1Z,UACpBhB,EAAK0a,eAAiB,OAG9BH,iBAAkB,WACVv6B,KAAKm6B,WACLn6B,KAAKm6B,SAASQ,QACd36B,KAAKm6B,SAAW,KAChBn6B,KAAK4sB,KAAKgO,SAAS,MAG3BzB,mBAAoB,SAAUllB,GAC1B,GAAI+L,GAAOhgB,IACXggB,GAAK6a,oBAAsB,SAAUjtB,GACjCoS,EAAK8a,cACDh1B,MAAO8H,EAAE9H,MACTmO,MAAOjU,QAGfiU,EAAMyM,KAAK,SAAUV,EAAK6a,sBAE9BP,mBAAoB,WAChB,GAAIta,GAAOhgB,KAAMyE,EAAYub,EAAKgY,eAAgB/jB,EAAQ+L,EAAK0X,mBAAmBjzB,EAC9EwP,IACAA,EAAMwM,OAAO5F,GAAQmF,EAAK6a,sBAGlC3C,UAAW,SAAU6C,GACjB,GAA6Cp1B,GAAQipB,EAAI3a,EAArD+L,EAAOhgB,KAAMsI,EAAO0X,EAAKgY,cACxB1vB,KAGL2L,EAAQ+L,EAAK0X,mBAAmBpvB,GAC5ByyB,GAAY/a,EAAK6D,QAAQ,UACrBpf,UAAW6D,EACX2L,MAAOA,MAIf+L,EAAK6D,QAAQjJ,IACTogB,KAAMD,EAAW,SAAW,OAC5B9mB,MAAOA,EACPxP,UAAW6D,IAEfA,EAAKkmB,YAAY,eACjB7oB,EAAS0E,GAAY2V,EAAK1a,SAAS0a,EAAK4X,sBAAsBtvB,IAC9DsmB,EAAKtmB,EAAKiD,SAASijB,YAAY,mBAC3BxO,EAAK5b,eACL4b,EAAK6Z,YAAYjL,GAAIJ,YAAY,mBAErCxO,EAAKuM,mBACLvM,EAAKib,aAAa3yB,EAAM3C,EAAQsO,GAC5B+L,EAAKoZ,2BACLpZ,EAAKqZ,sBAETrZ,EAAK6D,QAAQ,cACT/S,KAAM8d,EACN/c,KAAMoC,EACNinB,GAAI7iB,KAEJ2H,EAAK5b,eACL2O,GAAgB6b,EAAGnrB,IAAI,SAAU,IAAI,GAAIuc,EAAK6Z,YAAYjL,GAAInrB,IAAI,SAAU,IAAI,OAGxFw3B,aAAc,SAAU3yB,EAAM3C,EAAQw1B,GAClC,GAAInb,GAAOhgB,KAAMqR,GACT+pB,WACAp4B,MAAO,GACRq4B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBC,EAAO97B,GAAM+7B,SAASzb,EAAK0b,UAAU/1B,EAAQ0L,GAAQgqB,EAC9HhqB,GAAMrO,MAAQ,IACdw4B,EAAOp2B,GAAMo2B,EAAMnqB,EAAM+pB,UAE7B9yB,EAAKiH,QAAQD,KAAKksB,EAAKL,IACvBnb,EAAKgP,QAAQ,UAAW,WACpB,OACI7qB,SAAUmE,EACVuJ,OAASspB,SAAUA,QAI/BlC,UAAW,SAAUxuB,GACZzK,KAAKk5B,cAAczuB,IAGxBzK,KAAK27B,WAAWlxB,IAEpBkxB,WAAY,SAAUlxB,GAClB,GAAiBwJ,GAAO2nB,EAAS39B,EAAK49B,EAAlC7b,EAAOhgB,KAAmC83B,EAAO9X,EAAK2X,WAC7C,YAATG,GACA9X,EAAK8b,YAETrxB,EAAMjN,EAAEiN,GACJuV,EAAK5b,gBACLqG,EAAMA,EAAIjH,IAAIwc,EAAK6Z,YAAYpvB,KAEnCA,EAAMA,EAAIjF,OACNwa,EAAKpI,WAAW8N,iBAChB1F,EAAK+b,oBAAoBtxB,GAE7BwJ,EAAQ+L,EAAK0X,mBAAmBjtB,GAC5BwJ,IAAU+L,EAAK6D,QAAQvJ,IACnB7P,IAAKA,EACLwJ,MAAOA,KAEX4nB,EAAS7b,EAAKpI,WAAW3W,QAAQ46B,OAC7B7b,EAAK8L,cAAgB+P,GAAUA,EAAO5nB,QACtC2nB,EAAU5iB,GAAWgH,EAAKpI,WAAW3W,QAAQ46B,OAAO5nB,OAAS+L,EAAKpI,WAAW3W,QAAQ46B,OAAO5nB,MAAM0L,GAAGqc,QAAUhc,EAAKpI,WAAW3W,QAAQ46B,OAAO5nB,MAAM5N,GACpJpI,EAAMgW,EAAM2nB,SACL5b,GAAK8L,aAAa7tB,IAE7B+hB,EAAKpI,WAAWnL,OAAOwH,GACV,WAAT6jB,GAA8B,UAATA,GACrB9X,EAAKpI,WAAWqkB,QAEJ,WAATnE,GACP9X,EAAKuM,oBAGboL,UAAW,WACP,GAAIG,GAAO,SAAU3jB,EAAWnU,KAAKiB,QAAQkT,QAQ7C,OAPIA,MAAa,IAET2jB,EADmB,gBAAZ3jB,GACAA,EAEAA,EAAS2jB,MAAQA,GAGzBA,GAEXgB,QAAS,SAAUruB,GAAV,GACDwJ,GAQA6jB,EACArzB,EARAub,EAAOhgB,IACPyK,aAAe8N,IACftE,EAAQxJ,GAERA,EAAMjN,EAAEiN,GACRwJ,EAAQ+L,EAAK0X,mBAAmBjtB,IAEhCqtB,EAAO9X,EAAK2X,YAEhB3X,EAAK8b,YACD7nB,IACAxJ,EAAMuV,EAAK5Q,MAAM1F,SAAS,IAAMhK,GAAMoD,KAAK,OAAS,IAAMmR,EAAMpO,IAAM,KACtEma,EAAKmZ,mBAAmBllB,GACX,UAAT6jB,EACA9X,EAAKkc,mBAAmBjoB,GACR,WAAT6jB,EACP9X,EAAKmc,oBAAoB1xB,EAAKwJ,GACd,WAAT6jB,GACPt6B,EAAEiN,GAAKf,SAAS4P,IAAW2V,KAAK,WAAA,GACxB3mB,GAAO9K,EAAEwC,MACT2F,EAAS0E,GAAY2V,EAAK1a,SAAS0a,EAAK4X,sBAAsBtvB,GAElE,IADA2L,EAAQ+L,EAAK0X,mBAAmBpvB,GAC5B2L,KAAWA,EAAME,UAAYF,EAAME,SAASxO,EAAOG,SAAWH,EAAOG,QAAUH,EAAOuO,WAEtF,MADA8L,GAAK0Y,SAASpwB,IACP,IAInB7D,EAAYub,EAAKma,SAAWna,EAAKma,SAASvyB,QAAUoY,EAAKgY,eACrDvzB,IACKzE,KAAKo6B,0BACNp6B,KAAKo6B,wBAA0Bh1B,GAAMpF,KAAKo8B,iBAAkBp8B,OAEhEyE,EAAUQ,GAAGC,GAAQC,GAAI,kBAAmBnF,KAAKo6B,yBAC5Cp6B,KAAKq6B,0BACNr6B,KAAKq6B,wBAA0Bj1B,GAAMpF,KAAKq8B,iBAAkBr8B,OAEhEyE,EAAUQ,GAAGC,GAAQC,GAAI,kBAAmBnF,KAAKq6B,4BAI7DgC,iBAAkB,SAAUzuB,GACxBA,EAAE8F,iBACF9F,EAAEorB,kBACFh5B,KAAKs8B,WAETF,iBAAkB,SAAUxuB,GAAV,GAaV2uB,GAZAvc,EAAOhgB,KACPgV,EAAcgL,EAAK/e,QAAQ+T,YAC3Bf,EAAQ+L,EAAK7L,SAASlT,QAAQgT,MAC9BxP,EAAYub,EAAKma,SAAWna,EAAKma,SAASvyB,QAAUoY,EAAKgY,cAC7DpqB,GAAE8F,iBACF9F,EAAEorB,kBACEhZ,EAAK6D,QAAQ,UACTpf,UAAWA,EACXwP,MAAOA,MAIXsoB,EAAevc,EAAKjO,QAAQ7G,MAAM1N,EAAEwiB,EAAK5gB,WAAWmM,UACxDyU,EAAK8b,YACD9mB,IACAgL,EAAKjL,YAAYiL,EAAKjO,QAAQ9N,GAAGs4B,GAAc7yB,WAAWpF,OAAOmV,IAASgI,SAC1EpO,GAAW2M,EAAK3Q,OAAO,MAG/B6sB,mBAAoB,SAAUjoB,GAAV,GAGZtO,GACAhB,EAEAZ,EACArF,EACA88B,EACAgB,EACAC,EACAC,EACAC,EACAC,EAEA95B,EAMAuO,EAqGA5M,EAzHAub,EAAOhgB,KACPsP,EAAO,QAAU5P,GAAMoD,KAAK,OAAS,KAAOmR,EAAMpO,IAAM,iCAAmCma,EAAK6M,UAAY,kEAAoE,sCAGhL0M,KASAj0B,EAAU+E,GAAY2V,EAAK1a,SAE3Bu3B,EAAen9B,GAAMyG,OACrBgO,EAAW6L,EAAK/e,QAAQkT,SACxBsnB,EAAWtnB,EAASsnB,SACpBx6B,EAAU6D,GAAcqP,GAAYA,EAAS1U,UAC7C47B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,iBAEvD,KAAIvb,EAAK6D,QAAQzJ,IAAcnG,MAAOA,IAAtC,CAIA,GADAhT,EAAUA,MACNw6B,EAKA,UAJWA,KAAap4B,KACpBo4B,EAAW/7B,GAAMo9B,SAASrB,IAE9BnsB,GAAQ5P,GAAM+7B,SAASA,EAAUJ,GAAUpnB,GACtClQ,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD4B,EAASL,EAAQvB,GACb4B,EAAOhB,UACPi4B,EAAcxpB,GAAWzN,EAAOhB,QAAS,QACrCi4B,IACAj4B,EAAUi4B,QAKtB,KAAK74B,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD4B,EAASL,EAAQvB,GACb4B,EAAOuO,aAGNvO,EAAOhB,QAqDDgB,EAAOhB,UACdi4B,EAAcxpB,GAAWzN,EAAOhB,QAAS,QACrCi4B,IACAj4B,EAAUi4B,IAvDT5c,EAAK6M,WAuBNvd,GAAQ,uCACJ0E,GAAiBrO,EAAQsO,IACzBslB,EAAOp7B,MACH2H,MAAOH,EAAOG,MACd4R,MAAO/R,EAAO+R,MACdvH,OAAQxK,EAAOwK,OACfqpB,OAAQ7zB,EAAO6zB,OACfC,OAAQ9zB,EAAO8zB,SAEnBnqB,GAAQ,+CACRA,GAAQ,4DAA8D3J,EAAO+R,QAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWxL,EAAO+R,OAAO,GAAQ/R,EAAO+R,QAAU/R,EAAOG,OAAS,IAAM,UAC3LwJ,GAAQ,mDAAqD3J,EAAOG,MAAQ,IAAM+2B,EAAe,KAAOn9B,GAAMoD,KAAK,iBAAmB,KAAO6C,EAAOG,MAAQ,WAC5JwJ,GAAQ,aAER+B,GACI+pB,WACAp4B,MAAO,GAEXw4B,EAAO97B,GAAM+7B,SAASzb,EAAK0b,UAAU/1B,EAAQ0L,GAAQgqB,GACjDhqB,EAAMrO,MAAQ,IACdw4B,EAAOp2B,GAAMo2B,EAAMnqB,EAAM+pB,UAE7B9rB,GAAQ,0DACRA,GAAQ,4DAA8D3J,EAAO+R,QAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWxL,EAAO+R,OAAO,GAAQ/R,EAAO+R,QAAU/R,EAAOG,OAAS,IAAM,UAC3LwJ,GAAQ,4DAA8DksB,EAAKvnB,GAAS,UACpF3E,GAAQ,YAEZA,GAAQ,UAjDRA,GAAQ,yCAA2C3J,EAAOG,MAAQ,MAAQH,EAAO+R,QAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWxL,EAAO+R,OAAS/R,EAAO+R,QAAU/R,EAAOG,OAAS,IAAM,iBACrLkO,GAAiBrO,EAAQsO,IACzBslB,EAAOp7B,MACH2H,MAAOH,EAAOG,MACd4R,MAAO/R,EAAO+R,MACdvH,OAAQxK,EAAOwK,OACfqpB,OAAQ7zB,EAAO6zB,OACfC,OAAQ9zB,EAAO8zB,SAEnBnqB,GAAQ,QAAU5P,GAAMoD,KAAK,iBAAmB,KAAO6C,EAAOG,MAAQ,kCAEtEuL,GACI+pB,WACAp4B,MAAO,GAEXw4B,EAAO97B,GAAM+7B,SAASzb,EAAK0b,UAAU/1B,EAAQ0L,GAAQgqB,GACjDhqB,EAAMrO,MAAQ,IACdw4B,EAAOp2B,GAAMo2B,EAAMnqB,EAAM+pB,UAE7B9rB,GAAQ,yCAA2CksB,EAAKvnB,GAAS,WAwCjFtP,IACIG,GAAcH,KACVG,GAAcH,EAAQjH,QACtB8+B,EAAa73B,EAAQjH,KAAKqpB,OAC1B0V,EAAa93B,EAAQjH,KAAK+oB,QAE1B3hB,GAAcH,EAAQiiB,aACtB8V,EAAkB/3B,EAAQiiB,UAAUG,OACpC4V,EAAkBh4B,EAAQiiB,UAAUH,QAEpC9hB,EAAQ7B,OACRA,EAAO6B,EAAQ7B,OAKtBkd,EAAK6M,WAyCNvd,GAAQ,cACR0Q,EAAKma,SAAWna,EAAK4M,KAAKvc,OAAO,aAAe3Q,GAAMw7B,GAAK,kDAAyDx7B,GAAMw7B,GAAK,gNAA4Nlb,EAAK/e,QAAQ2pB,SAASlmB,SAASoiB,MAAQ,QAAU,6KAA8LpnB,GAAMw7B,GAAK,yBAA2B3b,GAAWlb,QAAU,KAAOiL,EAAO,gBACnpB7K,EAAYub,EAAKgY,eAAiBhY,EAAKma,SAASvyB,QAAQrD,KAAK,wBA1C7D+K,GAAQ,+CACRA,GAAQ0Q,EAAK+c,eACT/3B,KAAM,SACNtH,KAAM8+B,EACN15B,KAAMA,EACN8jB,UAAW8V,IACV1c,EAAK+c,eACN/3B,KAAM,aACNtH,KAAM++B,EACN35B,KAAMA,EACN8jB,UAAW+V,IAEfrtB,GAAQ;AACR7K,EAAYub,EAAKgY,eAAiBx6B,EAAE8R,GAAMpL,SAAS8b,EAAKlK,SAAS7R,GAAG,GAAG+4B,YAAYn9B,IAC/Eo9B,OAAO,EACP5S,WAAW,EACXgJ,WAAW,EACX3b,MAAOsI,EAAK/e,QAAQ2pB,SAASlmB,SAASoiB,MAAQ,OAC9ClgB,SAAS,EACT6zB,MAAO,SAAU7sB,GACb,GAAIA,EAAEsvB,cAAe,CAEjB,GADAtvB,EAAEqU,OAAOra,QAAQ+L,QACbqM,EAAK6D,QAAQ,UACTpf,UAAWA,EACXwP,MAAOA,IAGX,MADArG,GAAE8F,iBACF,CAEJ,IAAI6oB,GAAevc,EAAKjO,QAAQ7G,MAAM1N,EAAEwiB,EAAK5gB,WAAWmM,SACxDyU,GAAKwa,oBAAqB,EAC1Bxa,EAAK8b,YACD9b,EAAK/e,QAAQ+T,cACbgL,EAAKjL,YAAYiL,EAAKjO,QAAQ9N,GAAGs4B,GAAc7yB,WAAWpF,OAAOmV,IAASgI,SAC1EpO,GAAW2M,EAAK3Q,OAAO,OAIpCpO,KAMP+e,EAAK7L,SAAW6L,EAAKgY,eAAesB,eAChCC,OAAQA,EACRtlB,MAAOA,EACPkpB,gBAAgB,EAChBj0B,OAAQ8W,IACTnO,KAAK,iBACRmO,EAAKod,mBACLpd,EAAK6D,QAAQ1J,IACT1V,UAAWA,EACXwP,MAAOA,MAGfmpB,iBAAkB,WAAA,GACVpd,GAAOhgB,KACPq9B,EAAerd,EAAKgY,eAAiBhY,EAAKgY,eAAenmB,KAAK,eAAiB,KAC/EyrB,GAAiBtd,EAAK/e,QAAQkT,cAAgB1U,UAC7CO,MAAK6sB,UAQN7sB,KAAK4sB,KAAKgO,SAAS56B,KAAKm6B,SAAUn6B,KAAKu9B,gBAPnCF,IACKC,EAAcpzB,UACfmzB,EAAaG,SAEjBH,EAAaI,SAMzBtB,oBAAqB,SAAU1xB,EAAKwJ,GAAf,GAEbtO,GACA2C,EACA3D,EAHAqb,EAAOhgB,KAIPu5B,IACAvZ,GAAK6D,QAAQzJ,IAAcnG,MAAOA,MAGlC+L,EAAK5b,gBACLqG,EAAMA,EAAIjH,IAAIwc,EAAK6Z,YAAYpvB,KAEnCA,EAAIf,SAAS,yCAAyCulB,KAAK,WAGvD,GAFA3mB,EAAO9K,EAAEwC,MACT2F,EAAS0E,GAAY2V,EAAK1a,SAAS0a,EAAK4X,sBAAsBtvB,KACzD3C,EAAOhB,SAAWqP,GAAiBrO,EAAQsO,GAC5CslB,EAAOp7B,MACH2H,MAAOH,EAAOG,MACd4R,MAAO/R,EAAO+R,MACdvH,OAAQxK,EAAOwK,OACfqpB,OAAQ7zB,EAAO6zB,OACfC,OAAQ9zB,EAAO8zB,SAEnBnxB,EAAKxF,KAAKpD,GAAMoD,KAAK,iBAAkB6C,EAAOG,OAC9CwC,EAAKiH,YACF,IAAI5J,EAAOhB,UACdA,EAAUyO,GAAWzN,EAAOhB,QAAS,SACxB,CACT2D,EAAKiH,OACL,IAAIitB,GAAYC,EAAYC,EAAiBC,EAAiB75B,CAC1DgC,IAAcH,KACVG,GAAcH,EAAQjH,QACtB8+B,EAAa73B,EAAQjH,KAAKqpB,OAC1B0V,EAAa93B,EAAQjH,KAAK+oB,QAE1B3hB,GAAcH,EAAQiiB,aACtB8V,EAAkB/3B,EAAQiiB,UAAUG,OACpC4V,EAAkBh4B,EAAQiiB,UAAUH,QAEpC9hB,EAAQ7B,OACRA,EAAO6B,EAAQ7B,OAGvBtF,EAAEwiB,EAAK+c,eACH/3B,KAAM,SACNtH,KAAM8+B,EACN15B,KAAMA,EACN8jB,UAAW8V,IACV1c,EAAK+c,eACN/3B,KAAM,aACNtH,KAAM++B,EACN35B,KAAMA,EACN8jB,UAAW+V,KACXz4B,SAASoE,MAIzB0X,EAAKgY,eAAiBvtB,EACtBuV,EAAKgY,eAAe7O,SAAS,mBACzBnJ,EAAKoZ,2BACLpZ,EAAKqZ,sBAETrZ,EAAK7L,SAAW,GAAIzU,IAAM2Y,GAAGqlB,SAAS1d,EAAKgY,gBACvC9uB,OAAQ8W,EACRuZ,OAAQA,EACRtlB,MAAOA,EACPylB,UAAW1Z,EAAK+Y,4BAA8B/Y,EAAK4Z,kBAAmB5Z,EAAK4Z,eAAe9zB,OAAyBka,EAAKgV,qBACxHmI,gBAAgB,IAEhB1yB,EAAI/L,OAAS,IACbqU,GAAgBtI,EAAI,GAAIA,EAAI,IAC5BuV,EAAK6R,+BAET7R,EAAK6D,QAAQ1J,IACT1V,UAAWgG,EACXwJ,MAAOA,MAGf6nB,UAAW,SAAUxS,GACjB,GAAkDrV,GAA9C+L,EAAOhgB,KAAMyE,EAAYub,EAAKgY,cAClC,IAAIvzB,EAAW,CAEX,GADAwP,EAAQ+L,EAAK0X,mBAAmBjzB,IAC3BwP,GAASqV,GAAUtJ,EAAK6D,QAAQ,UAC7Bpf,UAAWA,EACXwP,MAAOA,IAEX,MAEJ+L,GAAKuM,mBACLvM,EAAKpI,WAAW+lB,cAAc1pB,GAC9B+L,EAAKqZ,sBAEDrZ,EAAK4d,YADgB,UAArB5d,EAAK2X,YACYlzB,EAEAub,EAAK5Q,MAAM7K,KAAK,IAAM7E,GAAMoD,KAAK,OAAS,IAAMmR,EAAMpO,IAAM,QAIzFy2B,QAAS,WAAA,GAKDuB,GAJA7d,EAAOhgB,KACPyE,EAAYzE,KAAKg4B,eACjB/jB,EAAQjU,KAAK03B,mBAAmBjzB,GAChCq5B,EAAWtgC,EAAEugC,UAEjB,OAAKt5B,IAAczE,KAAKmU,UAGxB0pB,EAAQ7d,EAAK7L,UAAY6L,EAAK7L,SAAS8jB,OAClC4F,GAAS79B,KAAK6jB,QAAQxJ,IACnB5V,UAAWA,EACXwP,MAAOA,KAEN4pB,GACD7d,EAAKmY,wBAEF2F,EAASE,SAASC,YAE7Bje,EAAKqZ,sBACEr5B,KAAK4X,WAAWqkB,SAbZ6B,EAASI,UAAUD,WAelCL,YAAa,SAAUnzB,GAAV,GAC8C0zB,GAASC,EAAQC,EA0BhEC,EACAC,EA3BJve,EAAOhgB,KAAMiU,EAAQ+L,EAAK0X,mBAAmBjtB,GAAgC+zB,EAAa/zB,EAAIF,SAAS,oBAAqBk0B,EAAQh0B,EAAIF,SAAS,QACjJ0J,KACI+L,EAAK5b,gBACL+5B,EAAU3gC,GAAGihC,EAAQze,EAAKkN,qBAAuBlN,EAAKiN,mBAAmBhZ,IACzE+L,EAAK6Z,YAAYpvB,EAAIb,QAAQ80B,YAAYP,IAE7Cne,EAAKgP,QAAQ,UAAW,WACpB,OAAS7qB,SAAUsG,EAAI7J,SAE3Bw9B,EAAS5gC,GAAGihC,EAAQze,EAAKmK,eAAiBnK,EAAKkK,aAAajW,IACvDxJ,EAAI2F,GAAG,aACRguB,EAAO54B,OAEXiF,EAAIi0B,YAAYN,GAChBpe,EAAK6D,QAAQ,cACT/S,KAAMstB,EACNvsB,KAAMoC,EACNinB,GAAI7iB,KAEJ8lB,GAAWA,EAAQz/B,QACnBshB,EAAK6D,QAAQ,cACT/S,KAAMqtB,EACNtsB,KAAMoC,EACNinB,GAAI7iB,KAGRimB,EAAkBF,EAClBG,IAAiBpD,SAAUlnB,IAC3BkqB,GAAWA,EAAQz/B,SACnB4/B,EAAkBF,EAAO56B,IAAI26B,GAC7BI,EAAYpgC,MAAOg9B,SAAUlnB,KAEjC+L,EAAKgP,QAAQ,UAAW,WACpB,OACI7qB,SAAUm6B,EAAgB19B,MAC1BiR,KAAM0sB,KAGVC,IAAexe,EAAK/e,QAAQiT,YAAc8L,EAAK2e,qBAC/C3e,EAAK4e,OAAOR,EAAO56B,IAAI26B,IAEvBA,GACAprB,GAAgBqrB,EAAO,GAAID,EAAQ,IAEvCE,EAAUD,EAAOlvB,OACbmvB,EAAQ9zB,SAAS,iBAAmB8zB,EAAQjuB,GAAG,aAC/CguB,EAAO75B,KAAK,6BAA6BiqB,YAAY,cAAcrF,SAAS,kBAIxF0V,aAAc,SAAUjU,EAAUngB,GAApB,GAKNq0B,GAJA9e,EAAOhgB,IACX,OAAKggB,GAAK6M,WAGNiS,EAAgB9e,EAAK0a,eAAiB,GAAIh7B,IAAM2Y,GAAG0mB,QAAQvhC,EAAE,WAAW0G,SAASpD,SAASe,OAC1Fo7B,OAASroB,eAAe,GACxBoqB,UAAU,EACVtnB,OAAO,EACPrT,QAASumB,EAASlT,MAClBkT,UACIqU,OAAQrU,EAASG,cACjBtE,OAAQmE,EAASC,cAErB4S,KAAM,WACEzd,EAAK3b,UACL2b,EAAK3b,QAAQwN,KAAKkM,GAAUiC,EAAK3b,QAAQZ,IAAIsa,KAC7CiC,EAAK3b,QAAQZ,IAAIsa,GAAUC,MAGnCyc,MAAO,WACCza,EAAK3b,SACL2b,EAAK3b,QAAQZ,IAAIsa,GAAUiC,EAAK3b,QAAQwN,KAAKkM,QAIzD+gB,EAAc17B,OAAO87B,KAAK,WACtBlf,EAAK2b,WAAWlxB,KACjB00B,KAAK,WACJ,GAAIL,GAAgB9e,EAAK0a,cACrBoE,KACAA,EAAcrE,QACdqE,EAAc9d,cAGf,GAhCIvhB,OAAO2/B,QAAQxU,EAASlT,QAkCvCwhB,cAAe,SAAUzuB,GACrB,GAAIuV,GAAOhgB,KAAMmU,EAAW6L,EAAK/e,QAAQkT,SAAU2W,EAAe3W,KAAa,SAAeA,KAAa9Q,GAAS2c,EAAK/e,QAAQ2pB,SAASzW,SAAS2W,aAAe3W,EAAS2W,YAI3K,OAHIhmB,IAAcqP,UAAoBA,GAAS2jB,OAASz0B,UAAiBynB,KAAiBzN,UAAmByN,KAAiBznB,IAAUynB,KAAiB,IACrJA,EAAe9K,EAAK/e,QAAQ2pB,SAASzW,SAAS2W,cAE9CA,KAAiB,GAAyB,MAAhBA,UACfA,KAAiBzN,KACxByN,EAAeA,EAAa9K,EAAK0X,mBAAmBjtB,KAEjDuV,EAAK6e,cACR9T,cAAe5W,EAAS4W,eAAiB/K,EAAK/e,QAAQ2pB,SAASzW,SAAS4W,cACxEF,aAAc1W,EAAS0W,cAAgB7K,EAAK/e,QAAQ2pB,SAASzW,SAAS0W,aACtEnT,MAAOoT,KAAiB,EAAO9K,EAAK/e,QAAQ2pB,SAASzW,SAAS2W,aAAeA,GAC9ErgB,KAIXkzB,cAAe,WACX,GAAI3d,GAAOhgB,IACXggB,GAAKpI,WAAW+lB,gBACZ3d,EAAKqf,sBACLrf,EAAKsf,kBAAkB,WACnBtf,EAAK0J,kBAAkB1F,iBAInCub,YAAa,WAAA,GACLvf,GAAOhgB,KACP69B,EAAQ7d,EAAK7L,UAAY6L,EAAK7L,SAAS8jB,OACtC4F,GAAU7d,EAAK7L,UAAc6L,EAAK6D,QAAQ7I,IAEnC6iB,GACR7d,EAAKmY,wBAFLnY,EAAKpI,WAAWqkB,QAKxBuD,OAAQ,WAAA,GACat0B,GAEb+I,EAFA+L,EAAOhgB,KAAa4X,EAAaoI,EAAKpI,WAAYkgB,EAAO9X,EAAK2X,YAAa8H,EAAWzf,EAAK/e,QAAQkT,SAASsrB,UAAY,GAAItf,EAAWvI,EAAWuI,WAAYuf,EAAO9nB,EAAW8nB,WAChLC,EAAiBF,EAAS7pB,gBAAkB0H,GAE5CsiB,EAAkB5f,EAAKqf,oBACvBrf,GAAK7L,UAAY6L,EAAK7L,SAAS8jB,QAAUjY,EAAK7L,UAClC,UAAR2jB,GACA9X,EAAK8b,YAET5wB,EAAQ0M,EAAWvL,QAAQqzB,EAAK,IAC5BC,IACAz0B,GAASw0B,EAAKhhC,OACVyhB,IAAavI,EAAW3W,QAAQ4+B,cAAgB1f,GAAYuf,EAAKhhC,SACjEwM,GAAS,IAGbA,EAAQ,IAEJA,EADA0M,EAAW8O,OAAS9O,EAAWmI,cACtBnI,EAAW8O,OAAS,GAAKvG,EAE1B,GAGZH,EAAK/e,QAAQ+T,aAAuB,UAAR8iB,GAC5B9X,EAAK8f,iBAELF,EACA5f,EAAK+f,kBAEL9rB,EAAQ2D,EAAWooB,OAAO90B,MAC1B8U,EAAKigB,WAAWhsB,KAGpB+L,EAAKmY,yBAGb8H,WAAY,SAAUhsB,GAAV,GAKA5N,GAAgBgJ,EAA4D5E,EAA8DnC,EAJ9I0X,EAAOhgB,KACPy/B,EAAWzf,EAAK/e,QAAQkT,SAASsrB,UAAY,GAC7C3H,EAAO9X,EAAK2X,WACZ1jB,KACI5N,EAAK4N,EAAMpO,IAAKwJ,EAAQ2Q,EAAK5b,cAAgB4b,EAAKxL,YAAcwL,EAAK3Q,MAAO5E,EAAM4E,EAAM9K,KAAK,MAAQ7E,GAAMoD,KAAK,OAAS,IAAMuD,EAAK,KAAMiC,EAAOmC,EAAIf,SAAS,2CAA2CzF,GAAG+b,EAAKkgB,0BAA0Bz1B,IAClO,WAATqtB,GAAqBrtB,EAAI/L,OACzBshB,EAAK8Y,QAAQruB,GACG,UAATqtB,EACP9X,EAAK8Y,QAAQ7kB,GACN3L,EAAK5J,QACZshB,EAAK0Y,SAASpwB,GAEY,UAA1Bm3B,EAAS7pB,eAA6BoK,EAAK5b,gBAC3C4b,EAAK5b,cAAc,GAAGge,UAAYpC,EAAK3b,QAAQ,GAAG+d,UAAYpC,EAAK3Q,MAAM,GAAGtN,gBAIxFg+B,eAAgB,WAAA,GACR/f,GAAOhgB,KACP2/B,GAAkB3f,EAAK/e,QAAQkT,SAASsrB,UAAY,IAAI7pB,gBAAkB0H,EAC9E0C,GAAKqZ,sBACDsG,EACA3f,EAAKmgB,yBAELngB,EAAKogB,uBAGbA,oBAAqB,WAAA,GAIbnsB,GAHA+L,EAAOhgB,KACP4X,EAAaoI,EAAKpI,WAClB8R,EAAoB1J,EAAK0J,iBAEH,KAAtB9R,EAAW8O,QACXzS,EAAQ2D,EAAWooB,OAAO,MAC1BhgB,EAAKigB,WAAWhsB,GAChByV,EAAkB1F,eAElBhE,EAAKsf,kBAAkB,WACnBrrB,EAAQ2D,EAAWooB,OAAO,MAC1BhgB,EAAKigB,WAAWhsB,GAChByV,EAAkB1F,iBAI9Bmc,uBAAwB,WAAA,GAKhBlsB,GAJA+L,EAAOhgB,KACP4X,EAAaoI,EAAKpI,WAClB8R,EAAoB1J,EAAK0J,kBACzBxe,EAAQ0M,EAAW6N,OAEnB7N,GAAWyoB,GAAGn1B,EAAQ,YAAcqN,KACpCtE,EAAQ2D,EAAWooB,OAAO90B,MAC1B8U,EAAKsgB,qBAAqB,WACtBtgB,EAAKigB,WAAWhsB,GAChByV,EAAkBxF,oBAGtBlE,EAAKsgB,qBAAqB,WACtBrsB,EAAQ2D,EAAWooB,OAAO90B,MAC1B8U,EAAKigB,WAAWhsB,GAChByV,EAAkBxF,oBAI9Bob,kBAAmB,SAAUzZ,GACzB,GAAI7F,GAAOhgB,IACXggB,GAAKugB,aAAa,EAAGvgB,EAAKpI,WAAWmM,OAAQ,WACzC8B,OAGRya,qBAAsB,SAAUza,GAAV,GACd7F,GAAOhgB,KACP4X,EAAaoI,EAAKpI,WAClBmM,EAAOnM,EAAWmM,OAClB0B,EAAQ7N,EAAW6N,QACnBzC,EAAOyC,EAAQ1B,EAAO0B,EAAQ1B,EAAO,CACzC/D,GAAKugB,aAAavd,EAAMe,EAAM,WAC1B8B,OAGR0a,aAAc,SAAUvd,EAAMe,EAAM8B,GAChC,GAAI7F,GAAOhgB,IACPggB,GAAKqf,uBACLrf,EAAK0J,kBAAkBlG,gBAAiB,EACxCxD,EAAK0J,kBAAkB5F,MAAMd,EAAMe,EAAM8B,KAGjDqa,0BAA2B,SAAUz7B,GACjC,GAAiBkB,GAA6C5B,EAAKrF,EAA/DshB,EAAOhgB,KAAcsF,EAAU+E,GAAY2V,EAAK1a,SAAuB2O,EAAQ+L,EAAK0X,mBAAmBjzB,EAC3G,KAAKV,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IAEjD,GADA4B,EAASL,EAAQvB,GACbkQ,KAAWA,EAAME,UAAYF,EAAME,SAASxO,EAAOG,UAAYH,EAAOhB,SAAWgB,EAAOG,OAASH,EAAOC,UAAW,EACnH,MAAO7B,EAGf,WAEJmkB,SAAU,WACN,GAA2GzjB,GAAvGub,EAAOhgB,KAAM8V,EAAUkK,EAAKlK,QAAS6T,EAAU3J,EAAK/e,QAAQ0oB,QAASxV,EAAW6L,EAAK/e,QAAQkT,QAC7FwV,KACAllB,EAAYub,EAAKlK,QAAQvR,KAAK,mBACzBE,EAAU/F,SACNsa,GAAW2Q,KACZA,QAAiBA,KAAYtmB,GAASsmB,EAAU3J,EAAKwgB,aAAa7W,GAAS/rB,QAAQ4gB,GAAoB,OACvGmL,EAAUvkB,GAAM1F,GAAM+7B,SAAS9R,GAAU3J,IAE7Cvb,EAAYjH,EAAE,4CAA4C8R,KAAKqa,OAAa8W,UAAU3qB,GACtFkK,EAAKgP,QAAQ,UAAW,WACpB,OAAS7qB,SAAUM,EAAU7D,UAGjCuT,GAAYA,EAASwS,UAAW,GAChCliB,EAAUQ,GAAGC,GAAQC,GAAI,cAAe,SAAUyI,GAC9CA,EAAE8F,iBACFsM,EAAKwf,WACNv6B,GAAGC,GAAQC,GAAI,yBAA0B,SAAUyI,GAClDA,EAAE8F,iBACFsM,EAAK2d,kBACN14B,GAAGC,GAAQC,GAAI,uBAAwB,SAAUyI,GAChDA,EAAE8F,iBACFsM,EAAKuf,gBAGb96B,EAAUQ,GAAGC,GAAQC,GAAI,gBAAiB,SAAUyI,GAChDA,EAAE8F,iBACFsM,EAAK0gB,gBAETj8B,EAAUQ,GAAGC,GAAQC,GAAI,cAAe,SAAUyI,GAC9CA,EAAE8F,iBACFsM,EAAK2gB,cAETl8B,EAAUQ,GAAGwY,GAAQtY,GAAI,uBAAwB,SAAUyI,GACvD,GAAIgzB,GAAQhzB,EAAE0G,aACd6M,cAAanB,EAAK6gB,gBAClB7gB,EAAK6gB,eAAiB5rB,WAAW,WAAA,GAEzBhU,GACA6/B,EACAC,EAIA1gC,EASS7B,CADb,IAfAwhB,EAAK6gB,eAAiB,KAClB5/B,EAAU+e,EAAK/e,QACf6/B,EAAe7/B,EAAQimB,OAASjmB,EAAQimB,OAAOqS,OAAS,KACxDwH,GACAC,WACAC,MAAO,MAEP5gC,EAAQugC,EAAMvgC,MACbygC,IACDA,EAAejzB,GAAiB5M,EAAQqE,UAExC0a,EAAKpI,WAAW3W,QAAQigC,UACxBlhB,EAAKpI,WAAW3W,QAAQigC,QAAU,KAClClhB,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW3W,QAAQkf,UAEhD9f,EACA,IAAS7B,EAAI,EAAGA,EAAIsiC,EAAapiC,OAAQF,IACrCuiC,EAAWC,QAAQ7iC,MACf2H,MAAOg7B,EAAatiC,GACpB4iC,SAAU,WACV/gC,MAAOA,QAIf0gC,KAEJ/gB,GAAKpI,WAAWtT,OAAOy8B,IACxB,SAIfP,aAAc,SAAU97B,GACpB,GAAiBX,GAAKrF,EAAmBiG,EAArCqb,EAAOhgB,KAAmBsP,EAAO,GAAa+xB,EAAa,GAAIzW,EAAW5K,EAAK/e,QAAQ2pB,SAASlmB,QACpG,IAAIG,GAAQH,GACR,IAAKX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAClDY,EAAmC,gBAAlBD,GAASX,GAAoBW,EAASX,GAAK6R,eAAiBlR,EAASX,GAAKiB,MAAQ,IAAI4Q,cACvF,WAAZjR,GAC6B,gBAAlBD,GAASX,KAChBs9B,EAAa38B,EAASX,GAAKrG,MAE/B2jC,EAAaA,GAAczW,EAAS1D,OACpC5X,GAAQ,wDACRA,GAAQ,0CAA+C+xB,EAAa,YAAgBA,EAAa,uBACjG/xB,GAAQ,4EACRA,GAAQ,WAERA,GAAQ0Q,EAAK+c,cAAcr4B,EAASX,GAIhD,OAAOuL,IAEXytB,cAAe,SAAUp4B,GACrB,GAKkD28B,GAL9C7F,EAAW92B,EAAQ82B,UAAY5c,GAAmBja,QAAqBD,KAAYtB,GAASsB,EAAUA,EAAQK,MAAQL,EAAQjH,KAAM+T,EAAY0G,GAAgBvT,GAAeuT,GAAgBvT,GAAa6M,UAAY,WAAa7M,GAAe,IAAIhH,QAAQ,MAAO,IAAKqD,GACxQwQ,UAAWA,EACX/T,KAAMkH,EACN9B,KAAM,GACN8jB,UAAW,IACZgE,EAAW5qB,KAAKiB,QAAQ2pB,SAASlmB,QACxC,MAAKE,GAAiBE,GAAcH,IAAYA,EAAQ82B,UACpD,KAAUxzB,OAAM,6CA6BpB,OA3BInD,IAAcH,IACdA,EAAU9E,IAAO,KAAU8E,GACvBA,EAAQ8M,WAAa/F,GAAQzK,EAAQwQ,UAAW9M,EAAQ8M,UAAU8vB,MAAM,MAAQ,EAChF58B,EAAQ8M,WAAa,IAAMxQ,EAAQwQ,UAC5B9M,EAAQ8M,YAAc/O,IAC7BiC,EAAQ8M,UAAYxQ,EAAQwQ,WAEZ,SAAhB7M,IACAD,EAAU9E,IAAO,KAAU8E,GAC3BA,EAAQjH,KAAOoH,GAAcH,EAAQjH,MAAQiH,EAAQjH,KAAKopB,KAAOniB,EAAQjH,KACzEiH,EAAQiiB,UAAY9hB,GAAcH,EAAQiiB,WAAajiB,EAAQiiB,UAAUE,KAAOniB,EAAQiiB,WAExFjiB,EAAQ7B,OACJgC,GAAcH,EAAQ7B,QACtB6B,EAAQ7B,KAAOI,EAAoByB,EAAQ7B,aAEpC6B,GAAQ7B,OAASO,KACxBi+B,EAAsB38B,EAAQ7B,KAAKgN,MAAM,iBACrCwxB,GAAuB51B,GAAQ41B,EAAoB,GAAI38B,EAAQ8M,UAAU8vB,MAAM,MAAQ,IACvF58B,EAAQ8M,WAAa,IAAM6vB,EAAoB,MAI3DrgC,EAAUpB,IAAO,EAAMoB,EAASkX,GAAgBvT,IAAgBlH,KAAMktB,EAAShmB,IAAgBD,IAE/F1D,EAAUpB,IAAO,EAAMoB,EAASkX,GAAgBvT,IAAgBlH,KAAMktB,EAAShmB,KAE5ElF,GAAM+7B,SAASA,GAAUx6B,IAEpCugC,YAAa,WACT,QAASxhC,KAAKmtB,kBAAoBntB,KAAKotB,qBAAuBptB,KAAKwtB,QAAUxtB,KAAKwtB,OAAO9uB,OAAS,GAAKsB,KAAK8V,QAAQvR,KAAK,kBAAkB7F,OAAS,GAExJupB,WAAY,WACR,GAAIjI,GAAOhgB,IACPggB,GAAK0N,uBACL1N,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,aAAa0M,IAAIhc,GAAQC,GAAI6a,EAAK0N,wBAEtD1N,EAAK0N,uBAAyB,SAAU9f,GAAV,GACtBhG,GAAUpK,EAAEwC,MAAOyhC,EAAW75B,EAAQ4G,QAAQ,MAC9Cwf,EAAQhO,EAAK2N,WAAa3N,EAAK2N,WAAW3N,EAAKlK,QAAQvR,KAAK,mBAAmB2G,MAAMu2B,MACrF75B,GAAQ2C,SAAS,gBACZyV,EAAK6D,QAAQ,iBACVmK,MAAOA,EACPpmB,QAAS65B,KAEbzhB,EAAK0hB,cAAcD,GAGlBzhB,EAAK6D,QAAQ,eACVmK,MAAOA,EACPpmB,QAAS65B,KAEbzhB,EAAK2hB,YAAYF,GAGzB7zB,EAAE8F,iBACF9F,EAAEorB,mBAGNhZ,EAAK4hB,YACL5hB,EAAKxL,YAAYvP,GAAGC,GAAQC,GAAI,6DAA8D6a,EAAK0N,wBAEnG1N,EAAK3Q,MAAMpK,GAAGC,GAAQC,GAAI,6DAA8D6a,EAAK0N,wBAEjG1N,EAAK6hB,oBAETA,iBAAkB,WACd,GAAI7hB,GAAOhgB,KAAM8V,EAAUkK,EAAKlK,QAAShC,EAAYkM,EAAK/e,QAAQ6S,UAAWguB,EAAa/nB,GAAc,IAAMra,GAAMoD,KAAK,SAAW,IAAKwB,EAAS0b,EAAK3b,QAAU,wBAA0By9B,EAAa,8BAAgCA,CACpOhuB,IAAaA,EAAUiuB,WAAY,IAC9BjsB,EAAQ0iB,IAAI,yBAAyB,IACtCh7B,EAAE,qBAAqB2rB,SAAS,qBAAqBsX,UAAU3qB,GAE/DkK,EAAKlM,WACLkM,EAAK4L,oBAELpW,GAAQwsB,SACRlsB,EAAQvR,KAAK,yBAAyBd,IAAI,eAAgB,QAC1DqS,EAAQvR,KAAKD,GAAQb,IAAI,eAAgB,SAE7Cuc,EAAKlM,UAAY,GAAIuE,IAAG4pB,UAAUnsB,EAASjW,MAAWiU,GAClDuf,UAAWrT,EAAKgN,mBAChBkV,eAAgB,yBAChBtqB,WAAYoI,EAAKpI,WACjBuqB,kBAAmB79B,EACnBA,OAAQA,EACR89B,UAAWpiB,EAAK/e,QAAQqpB,YACxBmJ,OAAQ,SAAU7lB,GACVoS,EAAK6D,QAAQ,SAAWxa,OAAQuE,EAAEvE,SAClCuE,EAAE8F,kBAEFsM,EAAKqZ,sBACDrZ,EAAKpI,WAAW3W,QAAQigC,UACxBlhB,EAAKpI,WAAW3W,QAAQigC,QAAU,KAClClhB,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW3W,QAAQkf,SAChDH,EAAKpI,WAAWyqB,MAAQ,EACxBriB,EAAKpI,WAAW0qB,UAAYtiB,EAAKpI,WAAW2qB,MAAQviB,EAAKmhB,iBACzDnhB,EAAKpI,WAAWkM,MAAQ,QAKxC9D,EAAKwiB,iCAGbA,6BAA8B,WAAA,GAOtBC,GACAC,EACAlkC,EARAwhB,EAAOhgB,KACPsF,EAAUsG,EAAYoU,EAAK1a,SAC3Bq9B,KACA78B,EAAQ,GACR88B,EAAc5iB,EAAK6iB,eACnBC,EAAgB,EAIpB,KAAKtkC,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BsH,EAAQR,EAAQ9G,GAAGsH,MACnB68B,EAAer9B,EAAQ9G,GAAGsH,OAASR,EAAQ9G,EAE/C,KAAKA,EAAI,EAAGA,EAAIokC,EAAYlkC,OAAQF,IAChCikC,EAAaG,EAAY3+B,GAAGzF,GAC5BskC,EAAgBL,EAAW3/B,KAAKpD,GAAMoD,KAAK0a,KAC3CklB,EAAgBC,EAAeG,GAC3BJ,GAAiBA,EAAc5uB,WAAa4uB,EAAc5uB,UAAU1V,MACpEqkC,EAAW5wB,KAAKqM,GAAYwkB,EAAc5uB,UAAU1V,OAIhEwtB,kBAAmB,WACf,GAAI5L,GAAOhgB,IACPggB,GAAKlM,WAAakM,EAAKlM,UAAUlM,SACjCoY,EAAKlM,UAAUlM,QAAQm7B,eAAe,WAE1C/iB,EAAKlM,UAAY,KACjBkM,EAAKgjB,qCAETA,kCAAmC,WAAA,GAGtBxkC,GAFLwhB,EAAOhgB,KACP4iC,EAAc5iB,EAAK6iB,cACvB,KAASrkC,EAAI,EAAGA,EAAIokC,EAAYlkC,OAAQF,IACpCokC,EAAY3+B,GAAGzF,GAAGykC,WAAW/kB,KAGrCglB,iBAAkB,SAAU5+B,EAAQgE,GAAlB,GAIV0X,GACA7b,EACAg/B,EACAC,EACA99B,EACAsD,EACAxF,EACKW,CAVT,IAAK/D,KAAKoE,cAAV,CAUA,IAPI4b,EAAOhgB,KACPmE,EAAW6b,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,aAC/B2uB,EAAc3lC,EAAE8G,EAAQH,EAAS,IACjCi/B,EAAiB5lC,EAAE8G,EAAQH,EAAS,IACpCmB,EAAUgD,EAAOI,EAAcsX,EAAK1a,SAAS5G,OAAS,EACtDkK,EAAmBN,EAAO0X,EAAK1a,QAAQ5G,OAAS4G,EAAU,EAC1DlC,KACKW,EAAM,EAAGA,EAAMo/B,EAAYzkC,OAAQqF,GAAOuB,EAC/CnH,GAAKupB,MAAMtkB,EAAQ+/B,EAAYtO,MAAM9wB,EAAKA,EAAMuB,IAChDnH,GAAKupB,MAAMtkB,EAAQggC,EAAe18B,OAAO,EAAGkC,GAEhD,OAAOxF,KAEXmlB,YAAa,WAAA,GACQ8a,GAAO/6B,EAmBhBnE,EAIAG,EAvBJ0b,EAAOhgB,KAAmBsjC,KAAgBnS,EAAWnR,EAAK4hB,YAAa1tB,EAAa8L,EAAK/e,QAAQiT,UACjGA,KACI8L,EAAK9L,YACL8L,EAAK9L,WAAW8M,UAEpBhB,EAAK8L,gBACL5X,EAAaxU,GAAM2Y,GAAGkrB,WAAWC,aAAatvB,GAC9CmvB,EAAQnvB,EAAWuvB,SACnBn7B,EAAO4L,EAAW5L,KACd0X,EAAKoP,gBACLkU,EAAUA,EAAU5kC,QAAU,kBAE9BshB,EAAK/e,QAAQ6S,WAAakM,EAAKwhB,eAAiBxhB,EAAKiJ,aACrDqa,EAAUA,EAAU5kC,QAAU,mCAElC4kC,EAAYA,EAAUjlC,KAAK,KACT,KAAdilC,IACAA,EAAY,QAAUA,EAAY,KAElCn/B,EAAW6b,EAAK3Q,MAChB8hB,IACAhtB,EAAWA,EAASX,IAAIwc,EAAKxL,cAE7BlQ,EAAS,KAAOgE,EAAOiR,GAA0B,WAAa+pB,GAClEtjB,EAAK9L,WAAa,GAAIxU,IAAM2Y,GAAGkrB,WAAWp/B,GACtCG,OAAQA,EACRo/B,MAAM,EACND,SAAUJ,EACV5P,OAAQ,WACJ,GAAIkQ,EACCr7B,IACD0X,EAAK4jB,uBAEL5jB,EAAK2e,qBACLgF,EAAiB3jB,EAAK9L,WAAW7T,QACjC2f,EAAK6jB,qBACL7jB,EAAK8jB,WAAWH,GAEZ3jB,EAAK+jB,wBADLJ,EAAejlC,QAAUilC,EAAejlC,SAAWshB,EAAKjO,QAAQrT,QACnC,GAEA,IAGrCshB,EAAK6D,QAAQhJ,KAEjBmpB,YAAa7S,GAAYkS,GAAS/6B,EAClC27B,cAAe,SAAUlyB,GAAV,GAIPosB,GACA/6B,EACKW,EAASrF,CALlB,KAAI4J,GAAS6oB,EAAb,CAKA,IADI/tB,EAAS5F,IACJuG,EAAM,EAAGrF,EAASqT,EAAMrT,OAAQqF,EAAMrF,EAAQqF,IACnDo6B,EAAUne,EAAK6Z,YAAY9nB,EAAMhO,IAC7B2H,GAAQyyB,EAAQ,GAAIpsB,GAAS,IAC7B3O,EAASA,EAAOI,IAAI26B,GAG5B,OAAO/6B,KAEX8gC,gBAAiB,WACb,MAAOlkB,GAAKkjB,iBAAiB5+B,EAAQgE,IAEzC67B,iBAAkBnkB,EAAK/e,QAAQiT,YAAc8L,EAAK/e,QAAQiT,WAAWiwB,iBACrEC,eAAe,IAEfpkB,EAAK/e,QAAQ+T,aACb7Q,EAASc,GAAG,UAAYE,GAAI,SAAUyI,GAAV,GACpBxO,GAAU4gB,EAAK5gB,UACf8J,EAAS0E,EAAE1E,MACf,IAAK9J,EAGL,GAAIwO,EAAEy2B,UAAYvrB,GAAKwrB,WAAa12B,EAAE22B,UAAY/mC,EAAEkO,QAAQxC,EAAQ/E,QAAmB/E,EAAQgR,GAAG,2BAA6BhR,EAAQmM,SAAS6E,GAAG,uDAAwD,CAOvM,GANAxC,EAAE8F,iBACF9F,EAAEorB,kBACF55B,EAAUkJ,EAAOlJ,EAAUA,EAAQmM,SAC/B4lB,IAAa7oB,IACblJ,EAAUA,EAAQoE,IAAIwc,EAAK6Z,YAAYz6B,KAEvCikC,EACA,GAAKz1B,EAAE8U,SAGH,GAAItjB,EAAQmL,SAASsR,IAEjB,MADAmE,GAAKwkB,mBAAmBplC,GACxB,MAJJ4gB,GAAK9L,WAAWuwB,YAQpBzkB,GAAK9L,WAAWuwB,OAEfn8B,KACD0X,EAAK9L,WAAWwwB,YAActlC,GAElC4gB,EAAK9L,WAAW7T,MAAMjB,QACdkJ,IAAS9K,EAAE0L,GAAQkH,GAAG,OAAS5S,EAAE0L,GAAQkH,GAAG,UAAY1E,GAAQxC,EAAQlJ,KAAKqrB,uBAAyBzd,EAAE22B,UAAY32B,EAAEy2B,SAAWvrB,GAAK6rB,MAAQ/2B,EAAE22B,UAAY32B,EAAEy2B,SAAWvrB,GAAK8rB,OAASh3B,EAAE22B,UAAY32B,EAAEy2B,SAAWvrB,GAAK+rB,IAAMj3B,EAAE22B,UAAY32B,EAAEy2B,SAAWvrB,GAAKgsB,MAAQl3B,EAAEy2B,UAAYvrB,GAAKwrB,UAAY12B,EAAE22B,YAC9S32B,EAAE8F,iBACF9F,EAAEorB,kBACF55B,EAAUA,EAAQmM,SACd4lB,IACA/xB,EAAUA,EAAQoE,IAAIwc,EAAK6Z,YAAYz6B,KAEvCikC,GACKrjB,EAAK9L,WAAWwwB,cACjB1kB,EAAK9L,WAAWwwB,YAActlC,GAElC4gB,EAAK9L,WAAW6wB,YAAY/kB,EAAK9L,WAAW8wB,iBAAkB5lC,KAE9D4gB,EAAK9L,WAAWuwB,QAChBzkB,EAAK9L,WAAW7T,MAAMjB,SAO9CopB,WAAY,WAAA,GAIA3U,GAHJ5S,EAAUjB,KAAKiB,QACfiT,EAAajT,EAAQiT,UACrBA,IAAcjT,EAAQ6oB,YAClBjW,EAAO7T,KACNiB,EAAQ+T,aACTnB,EAAKxE,MAAM7L,IAAIqQ,EAAKW,aAAa1R,KAAK,WAAY,GAAGmC,GAAG,YAAcE,GAAK,WAAaA,GAAI,iBAAkB,SAAUyI,GAChHA,EAAE1E,SAAW0E,EAAE0G,eACf1G,EAAEq3B,6BAEPhgC,GAAG,YAAcE,GAAIqU,GAAS,IAAMC,GAASrU,GAAMiP,GAAYR,IAEtEA,EAAKkY,YAAc3mB,GAAMyO,EAAKqxB,cAAerxB,GAC7CA,EAAKmY,qBAAuB,WACpBnY,EAAKsxB,eACLtxB,EAAKsxB,cAAcC,IAAIvxB,EAAKwxB,UAAU1xB,QAAQirB,UAGtD/qB,EAAK6M,KAAK,SAAU7M,EAAKmY,sBACzBnY,EAAKiC,QAAQ7Q,GAAG,UAAW4O,EAAKkY,aAChClY,EAAKoY,iBAAmB7mB,GAAMyO,EAAKgY,UAAWhY,GAC9CA,EAAKiC,QAAQ7Q,GAAG,QAAS4O,EAAKoY,oBAGtCqZ,yBAA0B,SAAUC,GAChCvlC,KAAKwlC,uBACLxlC,KAAKmlC,cAAcC,IAAIplC,KAAKqlC,OAAOE,IAAiB5xB,QAAQirB,SAC5D99B,SAAS2kC,YAAY,SAEzBP,cAAe,SAAUt3B,GACjBA,YAAavL,QAAOqjC,QAAW93B,EAAE8U,UAAW9U,EAAE+3B,SAAYnoC,EAAEoQ,EAAE1E,QAAQkH,GAAG,mCAAqC3Q,OAAOmmC,cAAgBnmC,GAAAA,OAAOmmC,gBAA6B9kC,SAAS+kC,WAAa/kC,SAAS+kC,UAAUC,cAAcpoC,OAGpOsC,KAAKwlC,uBACLxlC,KAAKmlC,cAAcC,IAAIplC,KAAKqlC,UAAU1xB,QAAQirB,WAElD4G,qBAAsB,WACbxlC,KAAKmlC,gBACNnlC,KAAKmlC,cAAgB3nC,EAAE,gBAAgBiG,KACnCyG,SAAU,QACV8L,IAAK,MACLnJ,KAAM,MACNk5B,QAAS,EACTlnC,MAAO,EACPC,OAAQ,IACToF,SAASlE,KAAK8V,WAGzBuvB,OAAQ,SAAUE,GAAV,GAUA7nC,GAQI0F,EACA4iC,EACAC,EACAC,EACA3M,EACAzzB,EACAR,EA6BA6gC,EApDJtyB,EAAO7T,KACPomC,EAAWvyB,EAAK+qB,SAChByH,EAAY,KACZvc,EAAYjW,EAAK5S,QAAQ6oB,UACzBwc,GAAc,EACdC,EAAgB1yB,EAAK+tB,aAAel5B,EAAcmL,EAAKvO,SAAS5G,MAqEpE,OApEIlB,GAAEsH,cAAcglB,IAAcA,EAAUuc,YACxCA,EAAYvc,EAAUuc,WAEtB3oC,EAAO,GACP0oC,EAAS1nC,SACL0nC,EAASniC,GAAG,GAAGmM,GAAG,QAClBg2B,EAAWA,EAAS7hC,KAAK,0BAEzB+hC,GACAF,EAAS9hC,OAAO,YAEhBlB,KACA4iC,EAAchmC,KAAKsF,QAAQ5G,OAC3BunC,EAAapyB,EAAK+tB,aAAel5B,EAAcmL,EAAKvO,SAAS5G,OAC7DwnC,GAAe,EACf3M,KAEAj0B,EAAUmI,GAAmBzN,KAAKsF,SACtC9H,EAAEyxB,KAAKmX,EAAU,SAAUriC,EAAKuE,GAAf,GAGTsmB,GACAjiB,EACA4qB,EAiBAiP,CArBJl+B,GAAO9K,EAAE8K,GACTxC,EAAQ+N,EAAK4yB,cAAcn+B,EAAMi+B,GAC7B3X,EAAKtmB,EAAKkG,QAAQ,MAClB7B,EAAWiiB,EAAG1jB,QACdqsB,EAAYjvB,EAAK4C,QACjBo7B,IACA/O,GAAajvB,EAAKqG,QAAQ,WAAWjQ,QAErCunC,GAAcC,IACdA,EAAe1oC,EAAE4X,SAASvB,EAAKW,YAAY,GAAIlM,EAAK,KAEpDuL,EAAKoV,WAAaid,IAClB3O,GAAa1jB,EAAKoV,WAEtBsO,EAAY2O,EAAe3O,EAAYA,EAAY0O,EAC/CngC,IACAyzB,EAAOhC,GAAazxB,GAEpBkgC,EAAczO,IACdyO,EAAczO,GAEdiP,EAAWl+B,EAAK5K,OACf0F,EAAOuJ,KACRvJ,EAAOuJ,OAEXvJ,EAAOuJ,GAAU4qB,GAAaiP,IAE9BL,EAAa/iC,EAAO1E,OACxB0E,EAAS5F,EAAEyxB,KAAK7rB,EAAQ,SAAUW,EAAKqhC,GAC/BA,IACAhiC,EAAOW,GAAOqhC,EAAIvQ,MAAMmR,GACpBG,EAAapiC,IACboiC,EAAapiC,MAIrBwhC,GAAkBhM,EAAO76B,QACzB0E,EAAOsD,OAAOy/B,EAAY,EAAG5M,EAAOj5B,IAAI,SAAUwF,GAC9C,MAAO0R,IAAS1R,EAAOR,MAG/B9H,EAAEyxB,KAAK7rB,EAAOyxB,MAAMsR,GAAa,SAAUpiC,EAAKqhC,GAExC1nC,GADA0nC,EACQA,EAAI/mC,KAAKgoC,GAAa,OAEtB,UAIb3oC,GAEXmuB,UAAW,SAAUje,GACjB,GAAIyB,EACArP,MAAKmlC,eAAiBv3B,GAAKA,EAAE1E,SAAWlJ,KAAKmlC,cAAc,KAEvD91B,EADArP,KAAKiB,QAAQ+T,YACLxX,EAAEwC,KAAKZ,WAAWoP,QAAQ,SAE1BxO,KAAKqP,MAEjBgE,GAAWhE,GAAO,IAElBrP,KAAKmlC,gBACLnlC,KAAKmlC,cAAc14B,SACnBzM,KAAKmlC,cAAgB,OAG7Bvc,iBAAkB,WACd,GAAI5I,GAAOhgB,IACPggB,GAAK0mB,4BACL1mB,EAAK2mB,2BAA2B3mB,EAAK1a,SACrC0a,EAAK4mB,oCAGbF,wBAAyB,WACrB,MAAO1mC,MAAK6mC,yBAAyBnoC,QAEzCmoC,uBAAwB,WACpB,MAAO9+B,GAAiB/H,KAAKsF,UAEjCshC,gCAAiC,WAC7B,GAAI5mB,GAAOhgB,IACXggB,GAAK+M,kCACL/M,EAAK8mB,0BAA4B1hC,GAAM4a,EAAK+mB,qBAAsB/mB,GAClExiB,EAAEiC,QAAQwF,GAAGyX,GAASvX,GAAI6a,EAAK8mB,4BAEnC/Z,gCAAiC,WAC7B,GAAI/M,GAAOhgB,IACPggB,GAAK8mB,2BACLtpC,EAAEiC,QAAQyhB,IAAIxE,GAASvX,GAAI6a,EAAK8mB,4BAGxCC,qBAAsB,WAClB,GAAI/mB,GAAOhgB,IACXggB,GAAK2mB,2BAA2B3mB,EAAK1a,SACrC0a,EAAKgnB,yBAETL,2BAA4B,SAAUrhC,GAAV,GAEf9G,GADLyN,EAAO3G,KACX,KAAS9G,EAAI,EAAGA,EAAIyN,EAAKvN,OAAQF,IAC7BwB,KAAKinC,0BAA0Bh7B,EAAKzN,KAG5CyoC,0BAA2B,SAAUthC,GACjC,GAAIqa,GAAOhgB,IACPuH,GAAY5B,EAAO6B,OACnBwY,EAAK2mB,2BAA2BhhC,EAAOL,SAEnCgC,EAAmB3B,IACnBqa,EAAKknB,mBAAmBvhC,GACnBA,EAAOC,QACRoa,EAAK2mB,2BAA2BhhC,EAAOL,UAG3C0a,EAAKmnB,mBAAmBxhC,IAIpCuhC,mBAAoB,SAAUvhC,GACrBA,EAAOC,QACR5F,KAAKonC,WAAWzhC,GAEpBuB,EAAsBvB,IAE1BwhC,mBAAoB,SAAUxhC,GAC1B,GAAI0hC,GAAkB1hC,EAAOC,MACxByhC,KACD1hC,EAAOyB,cAAe,EACtBpH,KAAKsnC,WAAW3hC,GAChBA,EAAOyB,cAAe,EACtBzB,EAAOC,OAASyhC,GAEpBngC,EAAsBvB,IAE1BqhC,sBAAuB,WAAA,GAIfxZ,GAUI+D,EACAD,EACAiW,EACAC,EACAC,EACAC,EACAC,EACAC,EAEIC,EACKrpC,EAEGwyB,EACAuG,EACAuQ,EACAC,EA5BhB/nB,EAAOhgB,KACPiB,EAAU+e,EAAK/e,QACfkwB,EAAWnR,EAAK4hB,WAEpB,IAAI3gC,EAAQuoB,YAAcvoB,EAAQopB,YAC1B8G,GAAYnR,EAAKyN,aACjBD,EAASxN,EAAKyN,aAAa/jB,SAAS,SAC7BsW,EAAKwN,SACZA,EAASxN,EAAKwN,OAAOjpB,KAAK,+BAEzBipB,GAAWA,EAAO,KACnBA,EAAShwB,KAET+zB,EAASJ,EAAWnR,EAAKlK,QAAQvR,KAAK,yBAAyBA,KAAK,SAAWyb,EAAKlK,QAAQvR,KAAK,kBAAkBA,KAAK,SACxH+sB,EAAeH,EAAWnR,EAAKxL,YAAcwL,EAAK3Q,MAClDk4B,EAAgBhW,EAAOhtB,KAAK,MAC5BijC,EAAiBjW,EAAOhtB,KAAK,YAC7BkjC,EAAqBF,EAAc7oC,OACnCgpC,EAA4BH,EAAcjjC,OAAOmD,GAAe/I,OAChEipC,EAA2BJ,EAAc7oC,OAASgpC,EAClDE,EAAmB,EACO,KAA1BrW,EAAO,GAAGtyB,MAAMJ,OAAgBmxB,WAAWuB,EAAO,GAAGtyB,MAAMJ,SAAW+oC,GAAkB,CAExF,IADIC,EAAqBtW,EAAO9tB,IAAI,SAC3BjF,EAAI,EAAGA,EAAIipC,EAAoBjpC,IAChCmJ,EAAiB4/B,EAAc/oC,MAE3B+4B,EAAY1oB,KAAKlE,IAAInM,EAAGA,EAAImpC,GAC5BG,EAAgBN,EAAe99B,WAAW6tB,GAC1CwQ,EAAmBD,EAAgBA,EAAc7oC,MAAMJ,MAAQ,GAC1C,KAArBkpC,EACA/W,EAAchB,WAAW+X,IAEzBxW,EAAO9tB,IAAI,QAAS,QACpButB,EAAcrY,GAAW4uB,EAActjC,GAAGzF,IAC1C+yB,EAAO9tB,IAAI,QAASokC,IAExBD,GAAoB5W,EAG5BM,GAAa7tB,IAAI,QAASmkC,EAAmB,GAC7CrW,EAAO9tB,IAAI,QAASmkC,GACpBpa,EAAO/pB,IAAI,QAASmkC,GACpB5nB,EAAKgS,yBAIjBnJ,kBAAmB,WACf,GAAImf,GAAMhoC,KAAKioC,mBACXD,KACAhoC,KAAK8sB,uBAAyB1nB,GAAMpF,KAAKioC,kBAAmBjoC,MAC5DxC,EAAEiC,QAAQwF,GAAG,SAAUjF,KAAK8sB,0BAGpCmb,kBAAmB,WACf,GAAIh8B,GAAOjM,KAAKsF,QAAS4iC,EAAczoC,OAAO0oC,WAAa,EAAI1oC,OAAO0oC,WAAaC,OAAOvpC,KAC1F,OAAOmB,MAAKqoC,sBAAsBp8B,EAAMi8B,IAE5CG,sBAAuB,SAAUp8B,EAAMi8B,GAAhB,GAEV1pC,GACDiZ,EACA4d,EAHJ2S,GAAM,CACV,KAASxpC,EAAI,EAAGA,EAAIyN,EAAKvN,OAAQF,IACzBiZ,EAAMxL,EAAKzN,GACX62B,EAAW5d,EAAIzP,eACfqtB,IAAa3yB,GAA0B,OAAb2yB,IAC1B2S,GAAM,EACF3S,EAAW6S,EACXloC,KAAKsnC,WAAW7vB,GAEhBzX,KAAKonC,WAAW3vB,KAGnBA,EAAI7R,QAAU6R,EAAInS,UACnB0iC,EAAMhoC,KAAKqoC,sBAAsB5wB,EAAInS,QAAS4iC,IAAgBF,EAGtE,OAAOA,IAEXlgB,eAAgB,WACZ,GAAI9H,GAAOhgB,IACPggB,GAAKqX,qBACLrX,EAAKsoB,mBAAkB,IAG/BtW,qBAAsB,WAAA,GACdhS,GAAOhgB,KACPs2B,EAAmCxuB,GAAKuC,GAAY2V,EAAK1a,SAAU,SAAUK,GAC7E,MAAOA,GAAO4wB,2BAEdvW,GAAKqX,sBACLrX,EAAKsoB,mBAAkB,GACvBtoB,EAAKqI,aACDiO,EAAiC53B,OAAS,GAC1CshB,EAAK4W,mBAEL5W,EAAK+U,iBACL/U,EAAKsX,6BAIjBA,yBAA0B,WAAA,GAClBtX,GAAOhgB,KACPuoC,EAAcvoB,EAAKhW,MAAMzF,KAAK,iBAAiBA,KAAK,2CACpDe,EAAU+E,GAAY2V,EAAK1a,QAC3BijC,GAAY7pC,QACZ6pC,EAAYtZ,KAAK,WAAA,GAGTtpB,GACA1G,EAHAyR,EAAKlT,EAAEwC,MACPwoC,EAAa93B,EAAGnM,KAAK,QAAQkd,QAAQgnB,oBAGrCD,KACA7iC,EAASmD,EAAgBxD,EAASkjC,EAAWvnC,QAAQ0E,OAAOE,KAC5D5G,EAAQyR,EAAG5N,KAAK,UAAY,GACxB6C,EAAO0H,QACPqD,EAAG5N,KAAK,QAAS7D,EAAQ0G,EAAO+iC,aAChCh4B,EAAGyY,SAAS5M,MAEZtd,EAAQA,EAAMrB,QAAQ8gB,GAAY,IAClCzf,EAAQA,EAAMrB,QAAQghB,GAAa,IACnClO,EAAG5N,KAAK,QAAS7D,GACjByR,EAAG8d,YAAYjS,SAMnC8a,kBAAmB,WACf,GAAIrX,GAAOhgB,IACX,OAAOoN,GAAc4S,EAAK1a,SAAS5G,QAEvC4pC,kBAAmB,SAAUK,GAAV,GACX3oB,GAAOhgB,KACPsF,EAAU8H,EAAc4S,EAAK1a,SAC7BuC,EAAiByF,EAAqB0S,EAAK1a,SAC3CsjC,EAAe5oB,EAAK6oB,uBAAuBhhC,EAC/CmY,GAAKmX,wBAAwB7xB,GAC7B0a,EAAK8oB,0BAA0BxjC,GAC/B0a,EAAK+oB,0BAA0BlhC,EAAgB+gC,EAAcD,GACzDA,GACA3oB,EAAKgpB,iBAAiBnhC,EAAgB+gC,IAG9CC,uBAAwB,SAAUvjC,EAAS2jC,EAAkBC,GAArC,GAEhB1qC,GACAmH,EACAqrB,EACAmY,EACAC,EALAppB,EAAOhgB,KAMP6M,EAAOmS,GAAQ,QAAU,OACzBlS,EAAQkS,GAAQ,OAAS,QACzB4pB,GACA/7B,KAAU5J,MAAMqC,EAAQ5G,QAAQ2qC,KAAKJ,EAAmBA,EAAmB,GAC3En8B,MAAW7J,MAAMqC,EAAQ5G,QAAQ2qC,KAAKH,EAAoBA,EAAoB,GAElF,KAAK1qC,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAS,EAAGF,IAChCmH,EAASL,EAAQ9G,GACjBwyB,EAAchR,EAAKspB,gBAAgB3jC,GACnCwjC,EAAiBnY,EAAc4X,EAAa/7B,GAAMrO,GAClDoqC,EAAa/7B,GAAMrO,EAAI,GAAK2qC,CAEhC,KAAK3qC,EAAI8G,EAAQ5G,OAAS,EAAGF,EAAI,EAAGA,IAChCmH,EAASL,EAAQ9G,GACjBwyB,EAAchR,EAAKspB,gBAAgB3jC,GACnCyjC,EAAkBpY,EAAc4X,EAAa97B,GAAOtO,GACpDoqC,EAAa97B,GAAOtO,EAAI,GAAK4qC,CAEjC,OAAOR,IAEXE,0BAA2B,SAAUxjC,EAASikC,GAAnB,GAEnB/qC,GACAmH,EAFAqa,EAAOhgB,IAGX,KAAKxB,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BmH,EAASL,EAAQ9G,GACbmH,EAAOL,WACFikC,GAAe/qC,IAChB+qC,EAAc/qC,GAElBwhB,EAAK8oB,0BAA0Bp7B,IAAc/H,IAAU4jC,IAEvDA,GACAr8B,EAAmBvH,EAAQ,mBAAoB,QAAS8W,IAE5DvP,EAAmBvH,EAAQ,aAAc,QAAS2W,IAClDpP,EAAmBvH,EAAQ,mBAAoB,QAAS4W,IACxDrP,EAAmBvH,EAAQ,mBAAoB,QAAS6W,KAGhEusB,0BAA2B,SAAUzjC,EAASsjC,EAAcD,GAAjC,GAEnBnqC,GACAmH,EACA6jC,EACAC,EACAf,EACAgB,EACAC,EAPA3pB,EAAOhgB,IAQX,KAAKxB,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BmH,EAASL,EAAQ9G,GACjBgrC,EAAaZ,EAAa/7B,KAAKrO,GAC/BirC,EAAcb,EAAa97B,MAAMtO,GACjCkqC,EAAc,SAAWc,EAAa,cAAgBC,EAAc,MAChE9jC,EAAOL,UACPokC,EAAY/7B,IAAqBhI,IACjCgkC,EAAoB3pB,EAAK6oB,uBAAuBa,EAAWF,EAAYC,GACvEzpB,EAAK+oB,0BAA0BW,EAAWC,EAAmBhB,GACzDA,GACA3oB,EAAKgpB,iBAAiBU,EAAWC,IAGzCz8B,EAAmBvH,EAAQ,aAAc,QAAS+iC,GAClDx7B,EAAmBvH,EAAQ,mBAAoB,QAAS+iC,GACxDx7B,EAAmBvH,EAAQ,mBAAoB,QAAS+iC,GACxD/iC,EAAO+iC,YAAcA,GAG7BvR,wBAAyB,SAAU7xB,GAAV,GAEjB9G,GAKAmH,EANAqa,EAAOhgB,KAEP4pC,EAAsBjrB,OAAO,QAAUrC,GAAoB,KAAM,MACjEutB,EAAwBlrB,OAAO,QAAUpC,GAAsB,KAAM,MACrEutB,EAAwBnrB,OAAO,QAAUnC,GAAsB,KAAM,MACrEutB,EAAgCprB,OAAO,QAAUlC,GAAgC,KAAM,KAE3F,KAAKje,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BmH,EAASL,EAAQ9G,GACbmH,EAAOL,SACP0a,EAAKmX,wBAAwBzpB,IAAc/H,KAE/CwH,EAAsBxH,EAAQ,aAAc,QAASikC,GACrDz8B,EAAsBxH,EAAQ,aAAc,QAAS+Y,IACrDvR,EAAsBxH,EAAQ,aAAc,QAASiZ,IACrDzR,EAAsBxH,EAAQ,mBAAoB,QAASkkC,GAC3D18B,EAAsBxH,EAAQ,mBAAoB,QAASokC,GAC3D58B,EAAsBxH,EAAQ,mBAAoB,QAAS+Y,IAC3DvR,EAAsBxH,EAAQ,mBAAoB,QAASiZ,IAC3DzR,EAAsBxH,EAAQ,mBAAoB,QAASmkC,GAC3D38B,EAAsBxH,EAAQ,mBAAoB,QAAS+Y,IAC3DvR,EAAsBxH,EAAQ,mBAAoB,QAASiZ,KAGnEoqB,iBAAkB,SAAU1jC,EAASsjC,GAAnB,GAEVpqC,GACAk3B,EAGAjrB,EACA9E,EACAgM,EACA9E,EACAC,EACAykB,EACA/D,EACAvC,EACA3iB,EAbA0X,EAAOhgB,KAGPgqC,EAAY3/B,GAAYzB,EAAiBoX,EAAK1a,UAC9CiE,EAAOyW,EAAK5Q,MAAM1F,SAAS,sBAU/B,KAAKlL,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAW5B,GAVAmH,EAASL,EAAQ9G,GACjBqO,EAAO+7B,EAAa/7B,KAAKrO,GACzBsO,EAAQ87B,EAAa97B,MAAMtO,GAC3BmT,EAAcq4B,EAAU39B,QAAQ1G,GAChC4rB,EAASvR,EAAKiqB,iBAAiBtkC,GAC/B4rB,EAAOpI,SAAS5M,IACZ5W,EAAOO,iBAAiB,UAAYP,EAAOO,iBAAiB,SAASmG,QAAQoQ,UAC7E8U,EAAOpI,SAAS1M,IAEpB7P,EAAsB2kB,EAAQ1kB,EAAMC,IAChCnH,EAAOL,QAQX,IALI0a,EAAKwN,SACLA,EAASxN,EAAKwN,OAAOjpB,KAAK,4CAA4CmF,WAAWpF,OAAO,yCAAyCL,GAAG0N,GACpI6b,EAAOrE,SAAS3M,IAChB5P,EAAsB4gB,EAAQ3gB,EAAMC,IAEnC4oB,EAAI,EAAGA,EAAInsB,EAAK7K,OAAQg3B,IACzBjrB,EAAMjN,EAAE+L,EAAKmsB,IACTjrB,EAAIF,SAAS,mBACb0gB,EAAcxgB,EAAIlG,KAAK,IAAMoB,EAAOukC,gCACpCjf,EAAY9B,SAAS7M,IACrB1P,EAAsBqe,EAAape,EAAMC,KAEzCxE,EAAOmC,EAAIf,WAAWpF,OAAO,yCAAyCL,GAAG0N,GACzErJ,EAAK6gB,SAAS7M,IACd1P,EAAsBtE,EAAMuE,EAAMC,KAKlDsqB,oBAAqB,SAAU9xB,GAAV,GAEb9G,GACAk3B,EAGAjrB,EACA9E,EACAgM,EACA4f,EACA/D,EACAvC,EACA3iB,EAXA0X,EAAOhgB,KAGPgqC,EAAY3/B,GAAYzB,EAAiBoX,EAAK1a,UAC9CiE,EAAOyW,EAAK5Q,MAAM1F,SAAS,sBAQ/B,KAAKlL,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAO5B,GANAmH,EAASL,EAAQ9G,GACjBmT,EAAcq4B,EAAU39B,QAAQ1G,GAChC4rB,EAASvR,EAAKiqB,iBAAiBtkC,GAC/B4rB,EAAO/C,YAAYjS,IACnBgV,EAAO/C,YAAY/R,IACnB7P,EAAsB2kB,EAAQ,GAAI,IAC9B5rB,EAAOL,QACP0a,EAAKoX,oBAAoBzxB,EAAOL,aAQpC,KALIK,EAAOwnB,gBAAkBnN,EAAKwN,SAC9BA,EAASxN,EAAKwN,OAAOjpB,KAAK,4CAA4CmF,WAAWpF,OAAO,yCAAyCL,GAAG0N,GACpI6b,EAAOgB,YAAYhS,IACnB5P,EAAsB4gB,EAAQ,GAAI,KAEjCkI,EAAI,EAAGA,EAAInsB,EAAK7K,OAAQg3B,IACzBjrB,EAAMjN,EAAE+L,EAAKmsB,IACTjrB,EAAIF,SAAS,mBACb0gB,EAAcxgB,EAAIlG,KAAK,IAAMoB,EAAOukC,gCACpCjf,EAAYuD,YAAYlS,IACxB1P,EAAsBqe,EAAa,GAAI,MAEvC3iB,EAAOmC,EAAIf,WAAWpF,OAAO,yCAAyCL,GAAG0N,GACzErJ,EAAKkmB,YAAYlS,IACjB1P,EAAsBtE,EAAM,GAAI,MAKhD2hC,iBAAkB,SAAUtkC,GAAV,GACVqa,GAAOhgB,KACPuxB,EAAsD/zB,EAA7CA,EAAE,IAAMmI,EAAOO,iBAAiBG,IAAI3H,OAAW,IAAMiH,EAAOO,iBAAiBG,GAAQ,IAAM2Z,EAAKmP,QAC7G,OAAOoC,IAEX+X,gBAAiB,SAAU3jC,GAAV,GACTqa,GAAOhgB,KACPnB,EAAQ,CAMZ,OAJIA,GAAQmhB,EAAKmqB,kBADbxkC,EAAOL,QACwB+E,IAAa1E,KAEZA,KAIxCwkC,kBAAmB,SAAUl+B,GAAV,GAIXwL,GACA8Z,EACA/yB,EALAwhB,EAAOhgB,KACPnB,EAAQ,EACRuN,EAAW,EAIX1N,EAASuN,EAAKvN,MAClB,KAAKF,EAAI,EAAGA,EAAIE,EAAQF,IACpBiZ,EAAMxL,EAAKzN,GACX+yB,EAASvR,EAAKiqB,iBAAiBxyB,IAC1BA,EAAI7R,QAAU0B,EAAmBmQ,KAClCrL,EAAWmlB,EAAOnhB,GAAG,YAAcmhB,EAAO5Y,aAAelB,EAAI5Y,MAC7DA,GAASuN,EAAWF,SAASE,EAAU,IAAM,EAGrD,OAAOvN,IAEXg6B,eAAgB,SAAUjxB,GACtB,MAAO5H,MAAK8V,QAAQ,KAAOlO,EAAQ4G,QAAQwL,IAAS,IAExDowB,gBAAiB,WAAA,GAOJrmC,GANLic,EAAOhgB,KACPqqC,EAAiBrqB,EAAK9L,WAAWm2B,iBACjCC,EAAqBC,OAAOzxB,KAAKuxB,GACjCG,EAAsBxqB,EAAK9L,WAAWs2B,sBACtCpnC,KACAyE,EAAiB4F,GAAmBuS,EAAK1a,QAC7C,KAASvB,EAAM,EAAGA,EAAMumC,EAAmB5rC,OAAQqF,IAC/CX,EAASA,EAAO8E,OAAO8X,EAAKyqB,oBAAoBJ,EAAeC,EAAmBvmC,IAAO8D,GAK7F,OAHI2iC,GAAoB9rC,SACpB0E,EAASA,EAAO8E,OAAO8X,EAAKyqB,oBAAoBD,EAAqB3iC,KAElEzE,GAEXsnC,sBAAuB,SAAUnF,GAAV,GAIfvlB,GACAhI,EACAnQ,EACA8iC,EACAC,EAGAC,EAQAR,EACAC,EACAE,EACAzmC,EACA+mC,EACAvE,EACAwE,EAeIC,CAvCR,KAAKtrC,GAAMsY,QAAUtY,GAAMurC,MACvB,KAAUhjC,OAAM,gIAwBpB,KAtBI+X,EAAOhgB,KACPgY,EAAQhY,KAAKiB,QAAQ+W,UACrBnQ,EAAiB4F,GAAmBuS,EAAK1a,SACzCqlC,EAAW,GAAIjrC,IAAMsY,MAAMkzB,kBAC3BN,EAAgB,WAChB,OAASO,WAAW,IAEpBN,GACAO,SACQ9lC,QAASrC,MAAMykB,MAAM,EAAGzkB,MAAM4E,EAAenJ,SAAS4B,IAAIsqC,GAC1DrhC,QACA8hC,cACA/mC,QAAQ,KAGhB+lC,EAAiBrqB,EAAK9L,WAAWm2B,iBACjCC,EAAqBC,OAAOzxB,KAAKuxB,GACjCG,EAAsBxqB,EAAK9L,WAAWs2B,sBAEtCM,KACAvE,EAAgBvmB,EAAK4hB,aAAel5B,EAAcsX,EAAK1a,SAAS5G,OAChEqsC,EAAcpzB,GAAe+I,KAAKV,GACjCjc,EAAM,EAAGA,EAAMumC,EAAmB5rC,OAAQqF,IAC3C+mC,EAAaA,EAAW5iC,OAAO8X,EAAKyqB,oBAAoBJ,EAAeC,EAAmBvmC,IAAO8D,EAAgBiQ,IAEjHgzB,GAAWpsC,QACXshB,EAAKsrB,uBAAuBT,EAAMF,EAAUG,EAAYvF,GAE5DuF,EAAaN,EAAoB9rC,OAASshB,EAAKyqB,oBAAoBD,EAAqB3iC,EAAgBiQ,OACpGgzB,EAAWpsC,SACP6nC,IACAuE,EAAaA,EAAW1sC,KAAK2sC,IAEjC/qB,EAAKurB,wBAAwBV,EAAMF,EAAUG,EAAYvF,IAEzDsF,EAAKO,OAAO,GAAG7hC,KAAK7K,SAChBssC,EAAW,GAAItrC,IAAMurC,MAAMO,SAASX,GACnCG,EAAS/pC,UACV+pC,EAAS/pC,YAEb+pC,EAAS/pC,QAAQwqC,kBAAmB,EACpCT,EAASU,iBAAiB/jB,KAAK,SAAUgkB,GACrCjsC,GAAMksC,QACFD,QAASA,EACTE,SAAUhB,EAAKgB,UAAY7zB,EAAM6zB,SACjCC,SAAU9zB,EAAM8zB,SAChBC,WAAY/zB,EAAM+zB,iBAKlCR,wBAAyB,SAAUV,EAAMF,EAAU94B,EAAM0zB,GAAhC,GAGjBz0B,GAFA/M,EAAM,EACN8D,EAAiB4F,GAAmBzN,KAAKsF,QAE7C,KAAKvB,EAAM,EAAGA,EAAM8N,EAAKnT,OAAQqF,IAC7B+M,EAAOe,EAAK9N,GACZ4mC,EAAS94B,MAAQf,GACjB9Q,KAAKgsC,oBAAoBrB,EAAU9iC,EAAgBiJ,GACnD9Q,KAAKisC,kBAAkBpB,EAAMF,EAAUpF,IAG/C+F,uBAAwB,SAAUT,EAAMF,EAAU94B,EAAM0zB,GACpD,GAAI19B,GAAiB4F,GAAmBzN,KAAKsF,QAC7CqlC,GAAS94B,KAAOA,EAChB7R,KAAKgsC,oBAAoBrB,EAAU9iC,EAAgBgK,EAAK,IACxD7R,KAAKisC,kBAAkBpB,EAAMF,EAAUpF,IAE3C0G,kBAAmB,SAAUpB,EAAMF,EAAUpF,GACzCsF,EAAKO,OAAO,GAAG7hC,KAAOshC,EAAKO,OAAO,GAAG7hC,KAAKrB,OAAOq9B,EAAiBoF,EAASuB,QAAUvB,EAASwB,UAAUxB,EAAS94B,KAAM,KAE3Hm6B,oBAAqB,SAAUrB,EAAUrlC,EAASwL,GAC9C65B,EAASrlC,QAAUqlC,EAAS1pC,QAAQqE,QAAU9H,EAAE8C,IAAIgF,EAAQhB,OAAO,SAAUmT,GACzE,MAAO8yB,QAAOzxB,KAAKhI,GAAMzE,QAAQoL,EAAI3R,QAAU,IAC/C6kC,EAASyB,iBAEjB3B,oBAAqB,SAAUtmC,EAAU0D,EAAgBwkC,GAApC,GAIblR,GAEAvzB,EACA0kC,EACAxmC,EAUAH,EACKnH,EAlBLwhB,EAAOhgB,KACPusC,EAAcpoC,EAAS,GAAG,GAAGqoC,SAC7BC,EAAiC,OAAhBF,EAEjBnpC,KAIAspC,EAAmB,SAAUj1B,GAC7B,GAAIrU,KACJ,IAAKqU,EAAI3R,SAASumC,GAAkBA,EAAc50B,IAIlD,MADArU,GAAOqU,EAAI3R,OAASq1B,EAAS1jB,EAAI3R,OAC1B1C,GAEPmjC,EAAgBvmB,EAAK4hB,aAAel5B,EAAcsX,EAAK1a,SAAS5G,MAEpE,KAASF,EAAI,EAAGA,EAAI2F,EAASzF,OAAQF,IAGjC,GAFAoJ,EAAUzD,EAAS3F,GACnB28B,EAAWnb,EAAKmb,SAASsR,EAAiB7kC,EAAUA,EAAQ2D,UACxDkhC,EACArpC,EAAO+3B,EAASt1B,KAAOrI,EAAEqC,OAAO6nB,MAAM,KAAM7f,EAAevH,IAAIosC,QAC5D,CAEH,GADA5mC,EAAQka,EAAKymB,cAAc7+B,EAAS2+B,IAC/BzgC,EACD,QAOJ,IALAwmC,EAAOlpC,EAAO+3B,EAASt1B,KAClBymC,IACDA,EAAOlpC,EAAO+3B,EAASt1B,SAE3BF,EAASoD,EAAkBlB,EAAgB/B,IACtCH,GAAU0mC,IAAkBA,EAAc1mC,GAC3C,QAEJ2mC,GAAKxmC,GAASq1B,EAASr1B,GAG/B,MAAOykC,QAAOzxB,KAAK1V,GAAQ9C,IAAI,SAAU+F,GAErC,MADAjD,GAAOiD,GAAIR,IAAMQ,EACVjD,EAAOiD,MAGtBogC,cAAe,SAAUn+B,EAAMi+B,GAAhB,GACP1yB,GAAO7T,KACPkmC,EAAeK,GAAiB/oC,EAAE4X,SAASvB,EAAKW,YAAY,GAAIlM,EAAK,IACrEqkC,EAAYjtC,GAAMoD,KAAK,QAC3B,OAAIyjC,GACO1yB,EAAKjM,QAAQrD,KAAK,mBAAqB2hC,EAAe,SAAW,QAAU,OAAOjiC,GAAGqE,EAAK4C,SAASpI,KAAK6pC,GAExG94B,EAAK7J,MAAMzF,KAAK,MAAMN,GAAGqE,EAAK4C,SAASpI,KAAK6pC,IAG3D9S,YAAa,SAAUpvB,GAAV,GAML4E,GACAnE,EANAsJ,EAAcxU,KAAKwU,WAEvB,OADA/J,GAAMjN,EAAEiN,GACH+J,GAGDnF,EAAQ5E,EAAI+D,QAAQxO,KAAKqP,MAAM7L,IAAIxD,KAAKwU,cACxCtJ,EAAQmE,EAAM9K,KAAK,aAAa2G,MAAMT,GAC1C4E,EAAQA,EAAM,KAAOrP,KAAKqP,MAAM,GAAKmF,EAAcxU,KAAKqP,MACjDA,EAAM9K,KAAK,aAAaN,GAAGiH,IALvBT,GAOfmiC,aAAc,SAAUtkC,GAAV,GAMN+G,GACAnE,EANAsJ,EAAcxU,KAAKwU,WAEvB,OADAlM,GAAO9K,EAAE8K,GACJkM,GAGDnF,EAAQ/G,EAAKkG,QAAQxO,KAAKqP,MAAM7L,IAAIxD,KAAKwU,cACzCtJ,EAAQmE,EAAM9K,KAAK,gBAAgB2G,MAAM5C,GAC7C+G,EAAQA,EAAM,KAAOrP,KAAKqP,MAAM,GAAKmF,EAAcxU,KAAKqP,MACjDA,EAAM9K,KAAK,gBAAgB2G,MAAMA,IAL7B5C,GAOfukC,eAAgB,WACZ,GAAI7sB,GAAOhgB,IAIX,OAHIggB,GAAK9L,aAAe8L,EAAK2e,oBACzB3e,EAAK9L,WAAWuwB,QAEhBzkB,EAAK2e,oBACL3e,EAAKwkB,mBAAmBxkB,EAAK4e,UAC7B,IAEA5e,EAAK/e,QAAQ+oB,iBACbhK,EAAK4jB,uBAEL5jB,EAAK8L,gBAET9L,EAAK6D,QAAQhJ,IALb,IAOJ+jB,OAAQ,SAAU7sB,GACd,GAAIiO,GAAOhgB,KAAMkU,EAAa8L,EAAK9L,WAAY44B,EAAoBptC,GAAM2Y,GAAGkrB,WAAWC,aAAaxjC,KAAKiB,QAAQiT,YAAa5L,EAAOwkC,EAAkBxkC,IAEvJ,OADAyJ,GAAQiO,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,aAAajQ,KAAKwN,GAC1CA,EAAMrT,QACFwV,IAAeA,EAAWjT,QAAQwiC,WAClCvvB,EAAWuwB,QACX1yB,EAAQA,EAAM0P,SAEdzB,EAAK4hB,cACL7vB,EAAQA,EAAMvO,IAAIuO,EAAMzR,IAAI,WACxB,MAAIgI,GACO0X,EAAK4sB,aAAa5sC,MAElBggB,EAAK6Z,YAAY75B,UAIhCkU,IAAe8L,EAAK2e,mBACpBzqB,EAAW7T,MAAM0R,IAEjBiO,EAAK8jB,WAAW/xB,GACZiO,EAAK4e,SAASlgC,SAAWshB,EAAKjO,QAAQrT,QACtCshB,EAAK+jB,yBAAwB,GAE5Bz7B,GACD0X,EAAK4jB,uBAET5jB,EAAK6D,QAAQhJ,KAEjB,GAEG3G,EAAaA,EAAW7T,QAAU2f,EAAKjO,QAAQzN,OAAO,IAAMuX,KAEvEkoB,wBAAyB,SAAUgJ,GAC/B,GAAI/sB,GAAOhgB,IACP+sC,GACA/sB,EAAKhW,MAAMxG,IAAIwc,EAAKtL,cAAcnQ,KAAK,MAAQ4Q,IAAe63B,KAAK,WAAW,GAAMlqC,KAAK,gBAAgB,GAAMA,KAAK,aAAc,qBAElIkd,EAAKhW,MAAMxG,IAAIwc,EAAKtL,cAAcnQ,KAAK,MAAQ4Q,IAAe63B,KAAK,WAAW,GAAOlqC,KAAK,gBAAgB,GAAOA,KAAK,aAAc,oBAG5I+gC,mBAAoB,WAAA,GACZ7jB,GAAOhgB,KACP21B,EAAS3V,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,YACjCmhB,GAAOpxB,KAAK,SAAW4Q,IAAerS,KAAK,gBAAgB,GAAOkqC,KAAK,WAAW,GAAOlqC,KAAK,aAAc,eAEhH0hC,mBAAoB,SAAUzyB,GAC1B,GAAIiO,GAAOhgB,IACX+R,GAAQiO,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,aAAajQ,KAAKwN,GAC1CiO,EAAK4hB,cACL7vB,EAAQA,EAAMvO,IAAIuO,EAAMzR,IAAI,WACxB,MAAO0f,GAAK6Z,YAAY75B,UAGhC+R,EAAMkd,KAAK,WACPzxB,EAAEwC,MAAMwuB,YAAY3S,IAAUtX,KAAK4Q,IAAerS,KAAK,gBAAgB,GAAOkqC,KAAK,WAAW,GAAOlqC,KAAK,aAAc,gBAE5Hkd,EAAK+jB,yBAAwB,GAC7B/jB,EAAK4jB,uBACL5jB,EAAK6D,QAAQhJ,KAEjBipB,WAAY,SAAU/xB,GAClBA,EAAMkd,KAAK,WACPzxB,EAAEwC,MAAMmpB,SAAStN,IAAUtX,KAAK4Q,IAAe63B,KAAK,WAAW,GAAMlqC,KAAK,aAAc,gBAAgBA,KAAK,gBAAgB,MAGrI8gC,qBAAsB,WAAA,GACD3lC,GAAKk9B,EAAkHS,EAY/Hp9B,EAZLwhB,EAAOhgB,KAAqBitC,EAAUjtB,EAAKjO,QAASm7B,EAAoBltB,EAAKpI,WAAW3W,QAAS46B,EAASqR,EAAkBrR,OAAiBsR,IACjJ,IAAKtR,GAAWA,EAAO5nB,OAAU+L,EAAK+N,QAGtC6N,EAAU5iB,GAAW6iB,EAAO5nB,OAAS4nB,EAAO5nB,MAAM0L,GAAGqc,QAAUH,EAAO5nB,MAAM5N,IAQ5E,IAJA2Z,EAAK4e,SAAS3P,KAAK,WACfkM,EAAWnb,EAAKmb,SAASn7B,MACzBmtC,EAAgBhS,EAASS,KAAY,IAEhCp9B,EAAI,EAAGA,EAAIyuC,EAAQvuC,OAAQF,IAChC28B,EAAWnb,EAAKmb,SAAS8R,EAAQzuC,IACjCP,EAAMk9B,EAASS,GACXuR,EAAgBlvC,GAChB+hB,EAAK8L,aAAa7tB,IAAO,QAElB+hB,GAAK8L,aAAa7tB,IAIrCmvC,iBAAkB,WAAA,GAELngC,GADL+S,EAAOhgB,KAAMqtC,IACjB,KAASpgC,IAAY+S,GAAK8L,aACtBuhB,EAAIlvC,KAAK8O,EAGb,OADAogC,GAAIjvC,OACGivC,GAEXC,mBAAoB,SAAUluC,EAAS8P,GAAnB,GAEZq+B,GACAC,EAFAC,EAAWjwC,EAAE4B,GAASyS,KAAK,WAG/BrU,GAAE4B,GAASovB,YAAY7S,IAASnN,QAAQ,SAASk/B,WAAW,yBACxDD,GACAA,EAAWA,EAAS7vC,QAAQoC,KAAKmvB,QAAS,IAC1C3xB,EAAE4B,GAAS0D,KAAK,KAAM2qC,IAEtBjwC,EAAE4B,GAASsuC,WAAW,MAE1BH,EAASr+B,EAAKpM,KAAK,MACfyqC,GAAUvtC,KAAKmvB,SACfjgB,EAAK2C,KAAK,WAAY07B,GAEtBr+B,EAAKkB,GAAG,MACRo9B,EAASD,EAETr+B,EAAKpM,KAAK,KAAM9C,KAAKmvB,SAEzBjgB,EAAKia,SAASxN,IAASnN,QAAQ,SAAS1L,KAAK,wBAAyB0qC,GAAUxtC,KAAKmvB,SACrFnvB,KAAK2tC,SAAWz+B,GAEpB0+B,eAAgB,WAAA,GAMRnjC,GACAojC,EACAC,EACAC,EACAC,EAGQrhC,EAZRvN,EAAUY,KAAK2tC,SACfnkB,EAAaxpB,KAAKiB,QAAQuoB,UACzBpqB,IAAYoqB,IAGb/e,EAAMrL,EAAQmM,SACdsiC,EAAiBpjC,EAAI+D,QAAQ,SAASjD,SACtCuiC,EAAsBD,EAAez9B,GAAG,gDACxC29B,EAAcF,EAAez9B,GAAG,qEAChC49B,EAAsBxwC,EAAEwC,KAAKqE,SAASE,KAAK,+BAA+B0pC,UAAUrkC,OAAO,GAC3FmkC,IACI/tC,KAAKq2B,eACD1pB,EAAWkC,KAAKlE,IAAIe,GAAQjB,EAAI,GAAIzK,KAAK0uB,OAAOjkB,EAAIc,WAAY,GAChEvL,KAAKq2B,cAAc9sB,MACnBvJ,KAAKkuC,iBAAmBluC,KAAK0pB,kBAAkB7E,UAAUlY,GACzD3M,KAAK0pB,kBAAkB3E,eAAeta,KAEtCzK,KAAKkuC,iBAAmBvhC,EACxB3M,KAAKikB,UAAUjkB,KAAK65B,YAAYpvB,GAAK,GAAIujC,KAG7ChuC,KAAKikB,UAAUjkB,KAAK65B,YAAYpvB,GAAK,GAAIujC,IAG7ChuC,KAAKoE,gBACLpE,KAAKoE,cAAc,GAAGge,UAAY4rB,EAAoB5rB,WAErD0rB,GACD9tC,KAAKikB,UAAU7kB,EAAQ,GAAI4uC,KAGnC5uC,QAAS,SAAU8P,GACf,MAAOlP,MAAK+U,YAAY7F,GAAM,IAElC6F,YAAa,SAAU7F,EAAMi/B,EAAgBv5B,GAAhC,GAKGrJ,GACA6iC,EACAx3B,EANRxX,EAAUY,KAAK2tC,QAsBnB,OArBAz+B,GAAO1R,EAAE0R,GACLA,EAAKxQ,SACAU,GAAWA,EAAQ,KAAO8P,EAAK,KAC5B3D,EAAS2D,EAAK3D,SACd6iC,EAAW7iC,EAAO7B,SAAS4P,IAC3B1C,EAAU1K,SAASX,EAAO7B,WAAW+X,QAAQ3e,KAAK,WAAY,IAC9D9C,KAAKg1B,uBACLh1B,KAAKquC,mBAAqBz3B,EAAU,EAAIA,EAAU,GAAKw3B,EAASljC,MAAMgE,IAE1ElP,KAAKstC,mBAAmBluC,EAAS8P,GAC5B0F,GACD5U,KAAK4tC,iBAEJO,GACDnuC,KAAK6jB,QAAQ5G,IAAYrV,QAASsH,MAI1CA,GAAQA,EAAKxQ,SACbsB,KAAKsuC,eAAiBp/B,EAAK3D,SAAS7B,SAAS4P,IAAWpO,MAAMgE,IAE3DlP,KAAK2tC,UAEhB7N,eAAgB,WACR9/B,KAAK2tC,WACL3tC,KAAK2tC,SAASnf,YAAY7S,IAC1B3b,KAAK2tC,SAAW,OAGxB1pB,UAAW,SAAUrc,EAASnD,GAAnB,GACH8pC,GAAqB3mC,EAAQ4mC,QAAQ54B,cACrC64B,EAAsC,OAAvBF,GAAsD,OAAvBA,EAC9Cl/B,EAAQ7R,EAAEoK,GAAS4G,QAAQ,SAAS,GACpCkgC,EAAmB9mC,EAAQ6mC,EAAe,cAAgB,gBAC1DxpB,EAAkBxgB,EAAUgqC,EAAe,aAAe,aAC1DE,EAAqBlqC,EAAUgqC,EAAe,cAAgB,gBAC9DvpB,EAA+C,aAA/B1nB,EAAEoK,GAASnE,IAAI,aAA8Bub,IAASyvB,EAAe5/B,KAAKsH,IAAI9G,EAAMu/B,WAAahnC,EAAQgnC,YAAchnC,EAAQ6mC,EAAe,aAAe,aAC7KI,EAAiB3pB,EAAgBwpB,EACjCtrC,EAAS,EACTmsB,EAAe,EACfC,EAAoB,CACpBxQ,KAASyvB,IACLj5B,GAAQ0J,MAAQ1J,GAAQs5B,KACxBvf,EAAelgB,EAAMu/B,YACdp5B,GAAQua,SAAWva,GAAQC,QAAUD,GAAQ2J,QAAU,MAC9DqQ,EAAoBngB,EAAMu/B,WAAalvC,GAAM2V,QAAQkM,cAG7D0D,EAAkBpW,KAAKsH,IAAI8O,EAAkBsK,EAAeC,GAExDpsB,EADA6hB,EAAkBC,EACTA,EACF2pB,EAAiB5pB,EAAkB0pB,EACtCD,GAAoBC,EACXE,EAAiBF,EAEjBzpB,EAGJD,EAEb7hB,EAASyL,KAAKsH,IAAI/S,EAASmsB,GAAgBC,EAC3C/qB,EAAUgqC,EAAe,aAAe,aAAerrC,GAE3DklB,aAAc,WAAA,GAKNymB,GACAC,EACArZ,EANA3V,EAAOhgB,IACNggB,GAAK/e,QAAQ+T,cAGd+5B,EAAa/uB,EAAK3Q,MAAM7L,IAAIwc,EAAKxL,aACjCw6B,EAAehvB,EAAKhW,MAAMuB,SAAS/H,IAAIhG,EAAE,SAAUwiB,EAAKtL,eACxDihB,EAASoZ,EACT/uB,EAAK/e,QAAQuoB,aACbmM,EAASA,EAAOnyB,IAAIwrC,GACpBA,EAAalsC,KAAKsa,QAEtBpd,KAAKqrB,mBAAqBsK,EAC1B31B,KAAKsrB,cAAgB0jB,EACrBrZ,EAAOzU,IAAI,YAAc/b,GAAK,SAAWA,GAAK,YAAcA,GAAK,WAAaA;AAC9E6pC,EAAa/pC,GAAG,UAAYE,GAAIC,GAAM4a,EAAKivB,gBAAiBjvB,IAAOzb,KAAK,YAAYzB,KAAK,eACzFisC,EAAWjsC,KAAKsa,GAAUlH,GAAKvL,IAAIokC,EAAWjsC,KAAKsa,KAAa,EAAG,IAAInY,GAAG,UAAYE,GAAI,iBAAkB,SAAUyI,GAC9GA,EAAE1E,SAAW0E,EAAE0G,eACf1G,EAAEq3B,6BAGVtP,EAAO1wB,GAAGvF,GAAM2V,QAAQC,MAAQ,aAAenQ,GAAK,YAAcA,GAAIqU,GAAS,IAAMC,GAASrU,GAAMiP,GAAY2L,IAAO/a,GAAG,QAAUE,GAAIC,GAAM4a,EAAKkvB,YAAalvB,IAAO/a,GAAG,WAAaE,GAAIC,GAAM4a,EAAKmvB,WAAYnvB,IAAO/a,GAAG,UAAYE,GAAI6a,EAAM5a,GAAM4a,EAAKovB,cAAepvB,MAEhRivB,gBAAiB,SAAUrhC,GACnBA,EAAEyhC,QAAUzhC,EAAEy2B,SAAWvrB,GAAKgsB,OAC9B9kC,KAAKZ,UAAUmF,KAAK,yCAAyCQ,QAC7D6I,EAAEq3B,6BAGVqK,aAAc,SAAUjgC,GACpBrP,KAAKqrB,mBAAmBvoB,KAAKsa,OAC7B/N,EAAMvM,KAAKsa,GAAU,IAEzB8xB,YAAa,SAAUthC,GAAV,GACLxO,GAAUY,KAAKZ,UACfiQ,EAAQ7R,EAAEoQ,EAAE0G,cACZlV,IAAWA,EAAQgR,GAAG,YACtBhR,EAAQ+pB,SAASxN,IAEb3b,KAAK44B,kBACL54B,KAAK+U,YAAY1F,EAAM9K,KAAKuV,KAAe,GAAM,GAEjD9Z,KAAK+U,YAAY1F,EAAM9K,KAAKuV,KAGpC9Z,KAAKsvC,aAAajgC,IAEtB8/B,WAAY,WACR,GAAI/vC,GAAUY,KAAKZ,SACfA,IACAA,EAAQovB,YAAY7S,KAG5B4zB,eAAgB,SAAUjqC,EAASkqC,EAAYC,GAA/B,GACRlY,GACA/4B,CACJ,IAAIixC,EACA,IAAKjxC,EAAIgxC,EAAYhxC,GAAK,IACtB+4B,EAAY/4B,EACP8G,EAAQ9G,GAAGoH,QAFSpH,SAO7B,KAAKA,EAAIgxC,EAAYhxC,EAAI8G,EAAQ5G,SAC7B64B,EAAY/4B,EACP8G,EAAQ9G,GAAGoH,QAFqBpH,KAO7C,MAAO+4B,IAEXmY,gBAAiB,SAAUzxC,EAAK2P,GAAf,GAIToS,GACAuX,EACAyS,EACAzlB,EAUK/lB,CAhBT,IAAIwB,KAAKquC,oBAAsB3rC,EAC3B,OAAO,CAeX,KAbIsd,EAAOhgB,KACPu3B,EAAYvX,EAAKquB,kBACjBrE,EAAY3/B,GAAYzB,EAAiBoX,EAAK1a,UAC9Cif,EAAc,EACdtmB,IAAQ+gB,GAAQlG,GAAK6rB,KAAO7rB,GAAK8rB,QAAUrN,IAAcyS,EAAUtrC,OAAS,EAC5E64B,EAAYvX,EAAKuvB,eAAevF,EAAWzS,EAAY,GAChDt5B,IAAQ+gB,GAAQlG,GAAK8rB,MAAQ9rB,GAAK6rB,OAASpN,EAClDA,EAAYvX,EAAKuvB,eAAevF,EAAWzS,EAAY,GAAG,GACnDt5B,GAAO6a,GAAK62B,KACnBpY,EAAYvX,EAAKuvB,eAAevF,EAAW,GACpC/rC,GAAO6a,GAAK82B,MACnBrY,EAAYvX,EAAKuvB,eAAevF,EAAWA,EAAUtrC,OAAS,GAAG,IAE5DF,EAAI,EAAGA,EAAI+4B,EAAW/4B,IAC3B+lB,GAAeylB,EAAUxrC,GAAGK,KAQhC,OANAmhB,GAAKquB,kBAAoB9W,EACrB3pB,IACAA,EAAE8F,iBACF9F,EAAEorB,mBAENt5B,GAAM6T,WAAWyM,EAAK3b,QAASkgB,IACxB,GAEX6qB,cAAe,SAAUxhC,GAAV,GAmBPiiC,GAlBAzwC,EAAUY,KAAKZ,UACfi3B,EAAgBr2B,KAAKq2B,kBACrByZ,EAAoB9vC,KAAK0pB,mBAAqB1pB,KAAK0pB,kBAAkBpE,WACrEpc,EAAS1L,EAAEoQ,EAAE1E,QACb6mC,GAAaniC,EAAEoiC,uBAAyB9mC,EAAOkH,GAAG,6BACtD,OAAI0/B,IACAliC,EAAE8F,iBACF,MAEA2iB,EAAc/wB,SAAalG,GAAY0B,SAASe,KAAKuT,SAAShW,EAAQ,MAAQY,KAAK0vC,gBAAgB9hC,EAAEy2B,QAASz2B,MAG7GxO,IACDA,EAAU5B,EAAEwC,KAAKwU,aAAahR,IAAIxD,KAAKiB,QAAQuoB,WAAaxpB,KAAKqP,MAAQrP,KAAKoP,OAAO7K,KAAKuV,IAAc2H,SAEvGriB,EAAQV,SAGTmxC,GAAU,EACVE,GAAaniC,EAAEy2B,SAAWvrB,GAAK+rB,KAC/BgL,EAAU7vC,KAAKiwC,QAAQ7wC,EAASwO,EAAE22B,WAElCwL,GAAaniC,EAAEy2B,SAAWvrB,GAAKgsB,OAC/B+K,EAAU7vC,KAAKkwC,UAAU9wC,EAASwO,EAAE22B,WAEpCwL,GAAaniC,EAAEy2B,UAAYrlB,GAAQlG,GAAK6rB,KAAO7rB,GAAK8rB,SACpDiL,EAAU7vC,KAAKmwC,WAAW/wC,EAASwO,EAAEyhC,OAAQzhC,EAAE22B,SAAU32B,EAAE8U,QAAS9U,EAAE0G,gBAEtEy7B,GAAaniC,EAAEy2B,UAAYrlB,GAAQlG,GAAK8rB,MAAQ9rB,GAAK6rB,QACrDkL,EAAU7vC,KAAKowC,UAAUhxC,EAASwO,EAAEyhC,OAAQzhC,EAAE22B,SAAU32B,EAAE8U,QAAS9U,EAAE0G,gBAErEy7B,GAAaniC,EAAEy2B,SAAWvrB,GAAKu3B,WAC/BR,EAAU7vC,KAAKswC,mBAEfP,GAAaniC,EAAEy2B,SAAWvrB,GAAKy3B,SAC/BV,EAAU7vC,KAAKwwC,iBAEfT,GAAaniC,EAAEy2B,SAAWvrB,GAAK62B,OAC/BE,EAAU7vC,KAAKywC,YAAYrxC,EAASwO,EAAE8U,UAEtCqtB,GAAaniC,EAAEy2B,SAAWvrB,GAAK82B,MAC/BC,EAAU7vC,KAAK0wC,WAAWtxC,EAASwO,EAAE8U,UAErCqtB,GAAaniC,EAAEy2B,SAAWvrB,GAAKwrB,WAC/BuL,EAAU7vC,KAAK2wC,gBAAgBvxC,EAASwO,EAAE8U,UAE1C9U,EAAEy2B,SAAWvrB,GAAK83B,OAAShjC,EAAEy2B,SAAWvrB,GAAK+3B,KAC7ChB,EAAU7vC,KAAK8wC,gBAAgB1xC,EAASwO,EAAE0G,cAAepL,IAEzD0E,EAAEy2B,SAAWvrB,GAAKi4B,MAClBlB,EAAU7vC,KAAKgxC,cAAc5xC,EAASwO,EAAE0G,gBAExC1G,EAAEy2B,SAAWvrB,GAAKm4B,MAClBpB,EAAU7vC,KAAKkxC,cAAc9xC,EAASwO,EAAE0G,cAAe1G,EAAE22B,SAAUr7B,IAEnE2mC,IACAjiC,EAAE8F,iBACF9F,EAAEorB,qBAhDN,IAmDJoX,UAAW,SAAUhxC,EAASiwC,EAAQ9K,EAAU7hB,EAAS7N,GAA9C,GACH3F,GAAMhE,EACNT,EAAMrL,EAAQmM,SACd9G,EAAYgG,EAAIc,QA6BpB,OA5BI8jC,GACArvC,KAAKmxC,YAAY1mC,GACViY,GAAWtjB,EAAQgR,GAAG,cAAgBpQ,KAAKiB,QAAQqpB,YAC1DtqB,KAAKoxC,YAAYhyC,GAAS,IAE1B8L,EAAQzG,EAAUF,KAAKiV,IAAQtO,MAAMT,GACrCyE,EAAOlP,KAAKqxC,oBAAoB5sC,EAAWrF,EAAS8L,GAC/CgE,EAAK,KACFq1B,EACIvkC,KAAKwU,aACLtF,EAAOlP,KAAK65B,YAAYpvB,GACpBjN,EAAE4X,SAASpV,KAAKwU,YAAY,GAAI/J,EAAI,MACpCyE,EAAOA,EAAKP,QAAQ+K,GAAU,WAElCxK,EAAOA,EAAKxF,SAAS4P,GAAY,UAEjCpK,EAAOlP,KAAKsxC,SAASlyC,EAASyV,GAAc,IAGhDpQ,EAAYzE,KAAKuxC,qBAAqB9sC,GACtCyK,EAAOlP,KAAKqxC,oBAAoB5sC,EAAWrF,EAAS8L,GAChDgE,EAAK,KAAO9P,EAAQ,IACpBiU,GAAW5O,EAAU8G,UAAU,KAI3CvL,KAAK+U,YAAY7F,KAEd,GAEXihC,WAAY,SAAU/wC,EAASiwC,EAAQ9K,EAAU7hB,EAAS7N,GAA9C,GACJ3F,GAAMhE,EACNT,EAAMrL,EAAQmM,SACd9G,EAAYgG,EAAIc,QA6BpB,OA5BI8jC,GACArvC,KAAKwxC,UAAU/mC,GACRiY,GAAWtjB,EAAQgR,GAAG,cAAgBpQ,KAAKiB,QAAQqpB,YAC1DtqB,KAAKoxC,YAAYhyC,GAAS,IAE1B8L,EAAQzG,EAAUF,KAAKiV,IAAQtO,MAAMT,GACrCyE,EAAOlP,KAAKyxC,oBAAoBhtC,EAAWrF,EAAS8L,GAC/CgE,EAAK,KACFq1B,EACIvkC,KAAKwU,aACLtF,EAAOlP,KAAK65B,YAAYpvB,GACpBjN,EAAE4X,SAASpV,KAAKqP,MAAM,GAAI5E,EAAI,MAC9ByE,EAAOA,EAAKwiC,QAAQh4B,GAAU,WAElCxK,EAAOA,EAAKxF,SAAS4P,GAAY,WAEjCpK,EAAOlP,KAAKsxC,SAASlyC,EAASyV,GAAc,IAGhDpQ,EAAYzE,KAAKuxC,qBAAqB9sC,GAAW,GACjDyK,EAAOlP,KAAKyxC,oBAAoBhtC,EAAWrF,EAAS8L,GAChDgE,EAAK,KAAO9P,EAAQ,IACpBiU,GAAW5O,EAAU8G,UAAU,KAI3CvL,KAAK+U,YAAY7F,KAEd,GAEX+gC,QAAS,SAAU7wC,EAASmlC,GAAnB,GAEDr1B,GAgBAO,EAjBAhL,EAAYrF,EAAQmM,SAASA,QAoBjC,OAlBIg5B,IACAr1B,EAAO9P,EAAQmM,SACf2D,EAAOA,EAAKP,QAAQ+K,GAAU,UAC9BxK,EAAO9P,EAAQmM,SAAS6E,GAAGsJ,IAAWxK,EAAKxF,WAAWzF,GAAG7E,EAAQ8L,SAAWgE,EAAKxF,SAAS4P,GAAY,WAEtGpK,EAAOlP,KAAK2xC,kBAAkBltC,EAAWrF,GACpC8P,EAAK,KACNlP,KAAKsuC,eAAiB,EACtB7pC,EAAYzE,KAAK4xC,mBAAmBntC,GAAW,GAC/CyK,EAAOlP,KAAK2xC,kBAAkBltC,EAAWrF,GACrC8P,EAAK,IACLmE,GAAW5O,EAAU8G,UAAU,KAIvCkE,EAAMzP,KAAKsuC,gBAAkB,EACjCtuC,KAAK+U,YAAY7F,GACjBlP,KAAKsuC,eAAiB7+B,GACf,GAEXygC,UAAW,SAAU9wC,EAASmlC,GAAnB,GAEHr1B,GAgBAO,EAjBAhL,EAAYrF,EAAQmM,SAASA,QAoBjC,OAlBIg5B,IACAr1B,EAAO9P,EAAQmM,SACf2D,EAAOA,EAAKwiC,QAAQh4B,GAAU,UAC9BxK,EAAO9P,EAAQmM,SAAS6E,GAAGsJ,IAAWxK,EAAKxF,WAAWzF,GAAG7E,EAAQ8L,SAAWgE,EAAKxF,SAAS4P,GAAY,YAEtGpK,EAAOlP,KAAK6xC,kBAAkBptC,EAAWrF,GACpC8P,EAAK,KACNlP,KAAKsuC,eAAiB,EACtB7pC,EAAYzE,KAAK4xC,mBAAmBntC,GACpCyK,EAAOlP,KAAK6xC,kBAAkBptC,EAAWrF,GACrC8P,EAAK,IACLmE,GAAW5O,EAAU8G,UAAU,KAIvCkE,EAAMzP,KAAKsuC,gBAAkB,EACjCtuC,KAAK+U,YAAY7F,GACjBlP,KAAKsuC,eAAiB7+B,GACf,GAEX2hC,YAAa,SAAUhyC,EAAS0yC,GAAnB,GACL3tC,GAAWnE,KAAK8V,QAAQjE,OAAOuhB,iBAAiBxrB,QAAQrD,KAAKvE,KAAKgtB,mBAAmB/rB,QAAQqD,OAAS,YACtGgB,EAAUuC,EAAe8D,EAAsB3L,KAAKsF,UACpDouB,EAAWvvB,EAAS+G,MAAM1N,EAAE4B,IAC5B6K,EAAS6nC,KAAc,EACvBnsC,EAASL,EAAQouB,GACjBC,EAAW9nB,EAA2BvG,EAAStF,KAAKsF,QAASouB,EAAUA,EAAWzpB,EAClF0pB,IAAY,IACZ3zB,KAAK4zB,cAAcD,EAAUhuB,EAAQmsC,GACrC9xC,KAAK6jB,QAAQjH,IACT+W,SAAUA,EACVD,SAAUA,EACV/tB,OAAQA,MAIpB8qC,YAAa,SAAUrxC,EAAS2yC,GAAnB,GAKLjd,GAJArqB,EAAMrL,EAAQmM,SACdymC,EAAevnC,EAAIc,SACnB0mC,EAAkBjyC,KAAKwU,aAAexU,KAAKwU,YAAY9K,SAAS,SAAS,KAAOsoC,EAAa,GAC7FE,EAAWF,EAAa,KAAOhyC,KAAKoP,MAAM,EAE9C,OAAIpP,MAAKg1B,sBACLh1B,KAAK0vC,gBAAgBhwC,GAAMoZ,KAAK62B,OACzB,IAEPoC,EAEIjd,EADA90B,KAAKwU,YACExU,KAAKwU,YAAYjQ,KAAKqV,GAAe,IAAMH,GAAU,UAErDzZ,KAAKqP,MAAM9K,KAAKqV,GAAe,IAAMH,GAAU,WAEnDy4B,GAAYD,KACfC,GAAYlyC,KAAKwU,cACjB/J,EAAMzK,KAAK65B,YAAYpvB,IAE3BqqB,EAAOrqB,EAAIf,SAAS4P,GAAY,WAEhCwb,GAAQA,EAAKp2B,QACbsB,KAAK+U,YAAY+f,IACV,GAFX,IAKJ4b,WAAY,SAAUtxC,EAAS2yC,GAAnB,GAKJ7iC,GAJAzE,EAAMrL,EAAQmM,SACdymC,EAAevnC,EAAIc,SACnB0mC,EAAkBjyC,KAAKwU,aAAexU,KAAKwU,YAAY9K,SAAS,SAAS,KAAOsoC,EAAa,GAC7FE,EAAWF,EAAa,KAAOhyC,KAAKoP,MAAM,EAE9C,OAAIpP,MAAKg1B,sBACLh1B,KAAK0vC,gBAAgBhwC,GAAMoZ,KAAK82B,MACzB,IAEPmC,EACA7iC,EAAOlP,KAAKqP,MAAM9K,KAAKsV,GAAc,IAAMJ,GAAU,UAC9Cy4B,GAAYD,MACdC,GAAYlyC,KAAKwU,cAClB/J,EAAMzK,KAAK65B,YAAYpvB,IAE3ByE,EAAOzE,EAAIf,SAAS4P,GAAY,UAEhCpK,GAAQA,EAAKxQ,QACbsB,KAAK+U,YAAY7F,IACV,GAFX,IAKJohC,gBAAiB,WACb,QAAKtwC,KAAKiB,QAAQ8oB,WAGlB/pB,KAAK4X,WAAW8O,KAAK1mB,KAAK4X,WAAW8O,OAAS,IACvC,IAEX8pB,cAAe,WACX,QAAKxwC,KAAKiB,QAAQ8oB,WAGlB/pB,KAAK4X,WAAW8O,KAAK1mB,KAAK4X,WAAW8O,OAAS,IACvC,IAEXwqB,cAAe,SAAU9xC,EAASyV,EAAc0vB,EAAUr7B,GAA3C,GAEPZ,GADA6pC,EAAWnyC,KAAKiB,QAAQkT,UAAgC,UAApBnU,KAAK23B,WAE7C,UAAKwa,GAAY/yC,EAAQgR,GAAG,QAAUpQ,KAAKiB,QAAQuoB,WAAaxpB,KAAKsrB,cAAchnB,OAAOuQ,GAAcnW,OAASsB,KAAKgK,MAAM1F,OAAO4E,GAAQxK,WAG3I4J,EAAO9K,EAAEib,MAAiBjK,QAAQ,gBAC9BlG,EAAK,IAAMA,EAAK,KAAOlJ,EAAQ,KAC/BA,EAAUkJ,GAEdA,EAAOtI,KAAKsxC,SAASlyC,EAASyV,EAAc0vB,GACxCj8B,EAAK,KAAOlJ,EAAQ,OAGpBkJ,EAAK5J,SACLsB,KAAKoyC,eAAehzC,EAASkJ,EAAMA,EAAKkG,QAAQ,WACzC,MAIfwiC,cAAe,SAAU5xC,EAASyV,GAAnB,GAaH0nB,GAZJ8V,EAAS55B,KACT05B,EAA+B,UAApBnyC,KAAK23B,WACpB,OAAKthB,IAASjX,IAOV+yC,EACAnyC,KAAKk4B,WAAU,IAEXqE,EAAe/+B,EAAE4B,GAASmM,SAASL,QACnCmnC,GACAA,EAAO5Z,OAEXz4B,KAAK87B,WAAU,GACXS,GAAgB,GAChBv8B,KAAK+U,YAAY/U,KAAK+R,QAAQ9N,GAAGs4B,GAAc7yB,SAAS+P,IAASgI,UAGzEpO,GAAWwB,GAAc,IAClB,KAnBCzV,EAAQo5B,IAAI6Z,GAAQ3zC,SACpB2U,GAAWwB,GAAc,IAClB,IAmBnBy9B,eAAgB,SAAUlzC,EAAS+U,EAAUlE,GACzC,GAAIxF,GAAMrL,EAAQmM,QAClB,QAAInM,EAAQgR,GAAG,qBAGX3F,EAAI2F,GAAG,oBACP3F,EAAIlG,KAAK,iBAAiBQ,SACnB,KAENoP,IAAYlE,KACbxF,EAAIlG,KAAK,iBAAiBQ,SACnB,KAIf4rC,gBAAiB,SAAUvxC,EAASsjB,GAAnB,GAKT6vB,GACAzsC,EACAmM,EACAugC,EAPAxyB,EAAOhgB,IACX,IAAK0iB,GAAY1C,EAAKlM,WAAc1U,EAAQmL,SAAS,YAsBrD,MAnBIgoC,GAAcvyB,EAAKlM,UAAUy+B,cAC7BzsC,EAAQ1G,EAAQ0D,KAAKpD,GAAMoD,KAAK,UAChCmP,EAAa+N,EAAKlM,UAAU7B,aAC5BugC,EAAQpzC,EAAQ0D,KAAKpD,GAAMoD,KAAK,WAAagD,EAC7Cka,EAAKlM,UAAU2+B,SAASrzC,IACxBmzC,EAAYp0C,MACR2H,MAAOA,EACP4sC,IAAK,MACLzgC,WAAYA,QAEhBugC,GAAS,IAAMxyB,EAAK/e,QAAQ2pB,SAASM,gBAErCqnB,EAAc/0C,EAAEsK,KAAKyqC,EAAa,SAAUzhC,GACxC,MAAOA,GAAKhL,QAAUA,IAE1B0sC,GAAS,IAAMxyB,EAAK/e,QAAQ2pB,SAASK,aAEzC7rB,EAAQ0D,KAAK,aAAc0vC,GAC3BxyB,EAAKpI,WAAWoW,MAAMukB,IACf,GAEXzB,gBAAiB,SAAU1xC,EAASyV,EAAc3L,GAAjC,GAITypC,GAgBAC,EAnBAz+B,EAAWnU,KAAKiB,QAAQkT,UAAYnU,KAAKiB,QAAQkT,SAAS4S,UAAW,EACrEtiB,EAAYyE,EAAOsF,QAAQ,mBAC3ByB,EAAajQ,KAAKovB,aAKtB,OAHKlmB,GAAOkH,GAAG,UAAa5S,EAAE4X,SAAShW,EAAQ,GAAI8J,EAAO,MACtD9J,EAAUqF,GAEVrF,EAAQgR,GAAG,OACXuiC,EAAOvzC,EAAQmF,KAAK,WAChBouC,EAAKj0C,OACLi0C,EAAK5tC,QAEL3F,EAAQmF,KAAK4Q,IAAexB,SAEzB,KAEP3T,KAAKsyC,eAAelzC,EAAS+U,EAAUlE,KAGvC2iC,EAAYxzC,EAAQmF,KAAK,yBACzBquC,EAAU,KAAOxzC,EAAQmL,SAAS,gBAAkBnL,EAAQmL,SAAS,oBACrEqoC,EAAUj/B,SACH,MAEPQ,GAAajL,EAAOkH,GAAG,iCAClB3L,EAAU,KACXA,EAAYrF,GAEhBY,KAAKoyC,eAAe3tC,GAAW,EAAOoQ,IAC/B,KAIf48B,oBAAqB,SAAUpiC,EAAOjQ,EAASyzC,GAA1B,GAGTtpC,GACAoD,EAGQ8B,EANZrE,EAAQhL,EAAQsyC,QAAQp4B,GAC5B,OAAKlP,GAAM1L,SACH6K,EAAO8F,EAAM9K,KAAKiV,IAClB7M,EAAWpD,EAAK2B,MAAM9L,EAAQmM,UAC9BoB,OAeDvC,EAAMqX,QAdDriB,EAAQmL,SAAS,aACbkE,KACJ/B,GAAqBhE,EAAc1I,KAAKsF,SAAS,IAAKyJ,GAAkBxF,EAAKtF,GAAG,GAAGyF,SAAS,YAAY+X,SAAUhT,EAAY,EAAG,GAC7HA,EAAWokC,GACJpkC,EAAWokC,GAAe,GAE9BzzC,GAEPA,EAAQmM,SAAShB,SAAS,gBACnBhB,EAAKK,OAAOF,SAAS4P,IAAWmI,QAEpClY,EAAKtF,GAAG4uC,GAAenpC,SAAS4P,IAAWmI,SAK9D4vB,oBAAqB,SAAUhiC,EAAOjQ,EAASyzC,GAA1B,GAGTtpC,GACAoD,EAGQ8B,EACAnJ,EAPZ8E,EAAQhL,EAAQuP,QAAQ2K,GAC5B,OAAKlP,GAAM1L,SACH6K,EAAO8F,EAAM9K,KAAKiV,IAClB7M,EAAWpD,EAAK2B,MAAM9L,EAAQmM,UAC9BoB,OAgBDvC,EAAMqX,QAfDriB,EAAQmL,SAAS,aACbkE,KACAnJ,EAAUoD,EAAc1I,KAAKsF,SACjCoH,GAAqBpH,EAAQA,EAAQ5G,OAAS,IAAKqQ,GAAkBxF,EAAKtF,GAAG,GAAGyF,WAAWE,QAAS6E,EAAY,EAAG,GAC/GA,EAAWokC,GACJpkC,EAAWokC,GAAe,GAE9BzzC,GAEPA,EAAQmM,SAAShB,SAAS,gBACnBhB,EAAKK,OAAOF,SAAS4P,IAAW1P,OAEpCL,EAAKtF,GAAG4uC,GAAenpC,SAAS4P,IAAW1P,QAK9DkpC,kBAAmB,SAAUzjC,EAAOjQ,GAAjB,GAKX2zC,GAJA7nC,EAAQ9L,EAAQ0D,KAAK,aACzB,OAAKoI,IAGD6nC,EAAqBrqC,EAAc1I,KAAKsF,SAAS5G,OACjDq0C,IAAuB1jC,EAAMb,QAAQ,OAAOjE,SAAS,yBAAyB,GACvEW,EAAQ6nC,EAEZ7nC,GANIxI,GAQfivC,kBAAmB,SAAUltC,EAAWrF,GAArB,GACXgL,GACAK,EAAMrL,EAAQmM,SACdhC,EAAO9E,EAAUiF,SAAS8P,IAC1B7M,EAAWpD,EAAK2B,MAAMT,GACtBS,EAAQlL,KAAK8yC,kBAAkBruC,EAAWrF,EAC9C,IAAI8L,GAAS9L,EAAQmL,SAAS,YAE1B,MADAH,GAAQgE,GAAmBhP,GACpBgL,EAAMnG,GAAGmG,EAAM1L,OAAS,EAGnC,IADAwM,EAAQ2D,KAAKlE,IAAIF,EAAIf,SAAS4P,IAAWpO,MAAM9L,GAAUY,KAAKsuC,gBAAkB,GAC5E7jC,EAAIF,SAAS,gBACb,MAAOuD,IAAcrJ,GAAWH,OAAOmD,GAAexD,GAAGiH,EAE7D,IAAIyB,OAKA,GAJI3M,KAAKg1B,uBACL9pB,EAAQlL,KAAKquC,mBAEjB5jC,EAAMhG,EAAUF,KAAK,4BAChBkG,EAAI,GAIL,OAHKzK,KAAKovB,eAAiBhwB,EAAQmM,SAAShH,KAAK,qBAAqB7F,SAAWwM,GAC7EA,IAEG4C,GAAcrJ,GAAWH,OAAOmD,GAAexD,GAAGiH,OAG7DT,GAAmB,IAAbkC,EAAiBnP,IAAM+L,EAAKtF,GAAG0I,EAAW,EAGpD,OADAvC,GAAQK,EAAIf,SAAS4P,IAEVlP,EAAMnG,GADbmG,EAAM1L,OAASwM,EACCA,EAEJ,IAEpB2mC,kBAAmB,SAAUptC,EAAWrF,GAArB,GACXgL,GAMAwM,EAkBAo8B,EAEIC,EACAC,EACKnvC,EAASrF,EA3BlB+L,EAAMrL,EAAQmM,SACdhC,EAAO9E,EAAUiF,SAAS8P,IAC1B7M,EAAWpD,EAAK2B,MAAMT,GACtBS,EAAQlL,KAAK8yC,kBAAkBruC,EAAWrF,GAC1Ci3B,EAAgBr2B,KAAKq2B,iBAEzB,IAAI1pB,OAAkBzB,IAAUxI,GAAatD,EAAQmL,SAAS,YAC1D,MAAOwE,IAAkB3P,GAAS6E,GAAG,EAiBzC,IAfAiH,EAAQA,EAAQgB,SAAShB,EAAO,IAAMT,EAAIf,SAAS4P,IAAWpO,MAAM9L,GACpE8L,EAAQ2D,KAAKlE,IAAIO,EAAOlL,KAAKsuC,gBAAkB,GAC3C3hC,OACAlC,EAAMlB,EAAKtF,GAAG,GACVoyB,EAAc/wB,UACdsR,EAAU1K,SAASzB,EAAIf,WAAW+X,QAAQ3e,KAAK,WAAY,IAC3DoI,EAAQlL,KAAKquC,mBAAqBz3B,EAAU,EAAIA,EAAU,KAE1D5W,KAAKovB,eAAiB3kB,EAAIlG,KAAK,qBAAqB7F,SACpDwM,KAGJT,EAAMlB,EAAKtF,GAAG0I,EAAWvN,EAAQ,GAAGyJ,SAEpCmqC,EAAW9nC,EACXlL,KAAK8yC,kBAAkBruC,EAAWrF,KAAasD,EAG/C,IAFIuwC,EAAkBxoC,EAAIf,SAAS,8CAC/BwpC,EAAgBD,EAAgB3uC,OAAO,WAClCP,EAAM,EAAGrF,EAASw0C,EAAcx0C,OAAQqF,EAAMrF,EAAQqF,IACvDkvC,EAAgB/nC,MAAMgoC,EAAcnvC,IAAQmH,GAC5C8nC,GAMZ,OAFA9nC,GAAQ8nC,EACR5oC,EAAQK,EAAIf,SAAS4P,IAEVlP,EAAMnG,GADbmG,EAAM1L,OAASwM,EACCA,EAEJ,IAEpB0mC,mBAAoB,SAAUntC,EAAW0uC,GAArB,GACZ9jC,GAAQ5K,EAAU8G,SAClB7M,EAASsB,KAAKqrB,mBAAmB3sB,OACjC00C,EAAOvkC,KAAKuH,MAAM1X,EAAS,GAC3BwM,EAAQQ,GAAQ2D,EAAM,GAAIrP,KAAKqrB,mBAQnC,OAPI8nB,KACAC,OAEJloC,GAASkoC,GACLloC,GAAS,GAAKA,EAAQxM,KACtB2Q,EAAQrP,KAAKqrB,mBAAmBpnB,GAAGiH,IAEhCmE,EAAM9K,KAAK4uC,EAAK,SAAW,WAEtC5B,qBAAsB,SAAU9sC,EAAWqI,GAArB,GAKduC,GACAnE,EALAxM,EAASsB,KAAKqrB,mBAAmB3sB,MACrC,OAAIA,IAAU,EACH+F,GAEP4K,EAAQ5K,EAAU8G,SAClBL,EAAQQ,GAAQ2D,EAAM,GAAIrP,KAAKqrB,oBACnCngB,GAAS4B,EAAQ,MACbA,GAAmB,GAAT5B,GAAcA,GAASxM,GAGhCoO,IAAmB,GAAT5B,GAAcA,EAAQ,GAC1BzG,EAEJzE,KAAKqrB,mBAAmBpnB,GAAGiH,GAAO3G,KAAK,gBALnCE,IAOf6sC,SAAU,SAAUlyC,EAASyV,EAAcw+B,GAAjC,GACFC,IAAY,EACZpkC,EAAOmkC,EAAOj0C,EAAQuP,QAAQ2K,GAAY,UAAYla,EAAQsyC,QAAQ,iBAC1E,KAAKxiC,EAAKxQ,OAAQ,CAMd,GALAwQ,EAAO9P,EAAQmM,SACXvL,KAAKwU,cACL8+B,EAAYD,GAAQx+B,GAAgB7U,KAAKwU,YAAY,KAAO6+B,GAAQx+B,GAAgB7U,KAAKqP,MAAM,GAC/FH,EAAOlP,KAAK65B,YAAY3qB,IAExBokC,EAAW,CACX,GAAItzC,KAAKg1B,qBACL,MAAO51B,EAEX8P,GAAOA,EAAKmkC,EAAO,UAAY,WAAW,4DAE9CnkC,EAAOA,EAAKxF,SAAS4P,IAAa+5B,EAAO,QAAU,WAEvD,MAAOnkC,IAEXkjC,eAAgB,SAAUhzC,EAAS8P,EAAMG,GACrC,GAAiIujC,GAAuFW,EAApNvzB,EAAOhgB,KAAMqyC,EAAS70C,EAAEib,MAAkBqf,EAAO9X,EAAK2X,YAAa6b,EAAOh+B,GAAQ0J,KAAMkZ,EAAgBpY,EAAKgY,eAA2B7jB,EAAW6L,EAAK/e,QAAQkT,UAAY6L,EAAK/e,QAAQkT,SAAS4S,UAAW,CAOjN,IANA1X,EAAQ7R,EAAE6R,GAENkkC,EADQ,UAARzb,EACW14B,EAAQmL,SAAS,eAEjBnL,EAAQmM,SAAShB,SAAS,mBAErCyV,EAAK7L,SAAU,CAOf,GANI3W,EAAE4X,SAASgjB,EAAc,GAAIia,EAAO,MACpCA,EAAO5Z,OACH+a,GACAnB,EAAO5Z,SAGVzY,EAAK7L,SAEN,MADAd,IAAWhE,GACX,CAEJ,KAAI2Q,EAAK7L,SAAS8jB,MAiBd,MARIjY,GAAKjL,YADG,UAAR+iB,EACiBM,EAEAA,EAAc1uB,WAAWpF,OAAOgV,IAAWmI,SAEhEmxB,EAAYxa,EAAc7zB,KAAK,yBAAyB,GACpDquC,GACAA,EAAUj/B,QAEd,CAhBY,WAARmkB,EACA9X,EAAKkY,aAELlY,EAAKsc,UACLiX,GAAW,GAenBrkC,GACA8Q,EAAKjL,YAAY7F,GAErBmE,GAAWhE,GAAO,GACb8E,KAGAo/B,IAAarkC,GAAQA,KAClB4oB,IAASpa,GACJlgB,EAAEwiB,EAAK5gB,WAAWmL,SAAS8O,KAC5B2G,EAAK0Y,SAAS1Y,EAAK5gB,WAGvB4gB,EAAK8Y,QAAQ9Y,EAAK5gB,UAAUmM,YAIxCoW,SAAU,WACN,GAAI3B,GAAOhgB,KAAMqP,EAAQ2Q,EAAK3Q,MAAOvQ,EAASkhB,EAAK/e,QAAQnC,OAAQD,EAAQmhB,EAAK/e,QAAQpC,MAAOiX,EAAUkK,EAAKpY,OACzGkO,GAAQ1F,GAAG,SACZ0F,EAAUA,EAAQ0K,KAAK,UAAUjV,UAErCyU,EAAKlK,QAAUA,EAAQqT,SAAS,wCAC5BrqB,IACAkhB,EAAKlK,QAAQrS,IAAI0Z,GAAQre,GACzBuQ,EAAM5L,IAAI0Z,GAAQ,SAElBte,GACAmhB,EAAKlK,QAAQrS,IAAI,QAAS5E,GAE9BmhB,EAAKyzB,eAETA,YAAa,WAAA,GAKDnkC,GAJJrO,EAAUjB,KAAKiB,QACf+e,EAAOhgB,IACXA,MAAK6sB,UAAY5rB,EAAQypB,UAAW,GAAQhrB,GAAM2V,QAAQgc,UAA+B,UAAnBpwB,EAAQypB,QAAyC,WAAnBzpB,EAAQypB,OACxG1qB,KAAK6sB,YACDvd,EAAOtP,KAAK8V,QAAQqT,SAAS,iBAAiB3I,KAAK,aAAe9gB,GAAMw7B,GAAK,uBAAyBx7B,GAAMw7B,GAAK,oBAA2Bx7B,GAAMw7B,GAAK,+BAA+B3vB,SAC1LvL,KAAK4sB,KAAO5sB,KAAK0zC,YAAYpkC,GAC7BtP,KAAK0/B,KAAO1/B,KAAK4sB,KAAK8S,OAClBz+B,EAAQnC,OACRkB,KAAK4sB,KAAKhlB,QAAQ2D,SAAS9H,IAAI0Z,GAAQlc,EAAQnC,QAE/CkB,KAAK4sB,KAAKhlB,QAAQ2D,SAAS9H,IAAI0Z,GAAQnd,KAAK8V,QAAQ,GAAG7W,MAAMH,QAEjEkB,KAAKu9B,eAAiB,QACtBvd,EAAKlK,QAAQ7Q,GAAG,gBAAkBE,GAAI,SAAUyI,GAC5CA,EAAEorB,oBAENhZ,EAAKlK,QAAQ7Q,GAAG,cAAgBE,GAAI,OAAQ,SAAUyI,GAElD,MADAA,GAAE8F,kBACK,IAEX1T,KAAK0/B,KAAKhf,KAAK,YAAa,WACpBV,EAAK4hB,cACL5hB,EAAK6W,qBACL7W,EAAK6R,8BACL7R,EAAK8R,2BACL9R,EAAK+R,0BACL/R,EAAKka,+BAKrBwZ,YAAa,SAAUpkC,GACnB,GAAIsd,GAAOltB,GAAMi0C,KAAKnzB,KAAKlR,GACvBskC,YACIC,aACIC,cAAc,EACdtzB,MAAM,EACNuzB,gBAAgB,EAChBC,cAAc,EACdC,iBAAiB,KAI7B,OAAOrnB,IAEX7E,OAAQ,WACJ,GAAqC3Y,GAAjC4Q,EAAOhgB,KAAMqP,EAAQ2Q,EAAK3Q,KAC9BD,GAAQC,EAAM9K,KAAK,UACd6K,EAAM1Q,SACP0Q,EAAQ5R,EAAE,YAAY0G,SAASmL,IAEnC2Q,EAAK5Q,MAAQA,EAAMtM,KAAK,OAAQ,aAEpCoxC,YAAa,WAAA,GACQ3iB,GAAQliB,EAAyUigB,EA2B1V9B,EAsBI0T,EACAiT,EA4BAna,EA9ERha,EAAOhgB,KAAqBiB,EAAU+e,EAAK/e,QAASuoB,EAAavoB,EAAQuoB,WAAY4qB,EAAmB5qB,KAAe,GAAQA,EAAWC,QAAS4M,EAAgB+d,EAAmB1+B,GAAqB8T,EAAWC,SAAW,KAAMlI,GAAa7hB,GAAM2V,QAAQuM,qBAAuByU,GAAiBA,EAAc9sB,KAAO7J,GAAM2V,QAAQkM,YAAc,CAC3ViI,KACA+H,EAASvR,EAAKlK,QAAQpM,SAAS,kBAC1B6nB,EAAO,KACRA,EAAS/zB,EAAE,iCAAiCmT,aAAaqP,EAAK3Q,QAElEkiB,EAAO9tB,IAAIub,GAAQ,eAAiB,gBAAiBwK,EAAWC,QAAUlI,EAAY,EAAIA,GAC1FlS,EAAQ7R,EAAE,yBACV6R,EAAMxQ,MAAMmhB,EAAK3Q,MAAM,GAAGpQ,MAAMJ,OAChCwQ,EAAMgB,OAAO2P,EAAKhW,OAClBunB,EAAOhiB,QAAQc,OAAO7S,EAAE,wDAAwD6S,OAAOhB,IACvF2Q,EAAK3b,QAAU2b,EAAK3Q,MAAM9D,SAC1ByU,EAAKqW,cAAgBA,EACjBrW,EAAK3b,QAAQ+L,GAAG,+BAAiC8I,GAAMqG,GAAWE,mBAClEO,EAAK3b,QAAU2b,EAAK3b,QAAQkH,UAE3ByU,EAAK3b,QAAQ+L,GAAG,iDACjB4P,EAAK3b,QAAU2b,EAAK3Q,MAAMmR,KAAK,oDAAoDjV,UAEnF8qB,GAAiBA,EAAc9sB,OAASyW,EAAK0J,mBAC7C1J,EAAKq0B,2BAELhe,GAAiBA,EAAc/wB,SAC/B0a,EAAK3Q,MAAM5L,KAAM5E,MAAOmN,EAAUyB,GAAmBF,EAAwByS,EAAK1a,aAEtFgqB,EAAaiC,EAAO7nB,SAAS,uBAC7BsW,EAAKuN,YAAc+B,EAAW9rB,IAAIwc,EAAK3b,SACnCmpB,EAASxN,EAAKlK,QAAQvR,KAAK,kBAC3BipB,EAAO9uB,SACPshB,EAAKuN,YAAcvN,EAAKuN,YAAY/pB,IAAIgqB,EAAO9jB,SAAS,yBAE5D4lB,EAAW7O,OAAO,SAAWtb,IAAIub,KAAK,SAAWvb,GAAI,SAAUyI,GACvDoS,EAAKs0B,cAAgBt0C,KAAKuT,YAC1B7T,GAAM6T,WAAWyM,EAAKuN,YAAY0F,IAAIrlB,EAAE0G,eAAgBtU,KAAKuT,cAGjE8iB,GAAiBA,EAAc9sB,KAC/ByW,EAAK3b,QAAQE,KAAK,+BAA+Bkc,OAAO,SAAWtb,IAAIub,KAAK,SAAWvb,GAAI,WACvF,GAAIovC,GAAkBv0C,KAAKuT,YAAcyM,EAAKs0B,WAC9Ct0B,GAAKs0B,YAAct0C,KAAKuT,WACxB7T,GAAM6T,WAAWyM,EAAKuN,YAAavtB,KAAKuT,YACpCyM,EAAK5b,gBACL4b,EAAK5b,cAAc,GAAGge,UAAYpiB,KAAKoiB,WAEvCiU,EAAc/wB,SAAWivC,GACzBv0B,EAAKM,aAIT4gB,EAAU1X,EAAW0X,QACrBiT,EAAmBn0B,EAAKpI,WAAW3W,QAAQkf,SAC3C+gB,IACAlhB,EAAKmhB,iBAAmBgT,GAE5Bn0B,EAAK3b,QAAQoc,OAAO,SAAWtb,IAAIub,KAAK,SAAWvb,GAAI,SAAUyI,GAC7D,GAAI2mC,GAAkBv0C,KAAKuT,YAAcyM,EAAKs0B,WAC9Ct0B,GAAKs0B,YAAct0C,KAAKuT,WACxB7T,GAAM6T,WAAWyM,EAAKuN,YAAY0F,IAAIrlB,EAAE0G,eAAgB0L,EAAKs0B,aACzDt0B,EAAK5b,eAAiBwJ,EAAE0G,eAAiB0L,EAAK3b,QAAQ,KACtD2b,EAAK5b,cAAc,GAAGge,UAAYpiB,KAAKoiB,WAEvC8e,GACIlhC,KAAKoiB,UAAYpiB,KAAK4iB,aAAe5iB,KAAK6iB,oBAAwB7C,EAAKw0B,yBAA2Bx0B,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW6N,UAC1IzF,EAAKy0B,wBAA0Bz0B,EAAKmhB,iBACpCnhB,EAAKmhB,iBAAmBnhB,EAAKmhB,iBAAmBgT,EAChDn0B,EAAKpI,WAAW3W,QAAQigC,SAAU,EAClClhB,EAAKw0B,yBAA0B,EAC/Bx0B,EAAKpI,WAAWuI,SAASH,EAAKmhB,mBAGlC9K,GAAiBA,EAAc/wB,SAAWivC,IAC1Cv0B,EAAK4Y,mBAAoB,EACzB5Y,EAAK00B,sBACL10B,EAAKM,UACLN,EAAK20B,wBACL30B,EAAK4Y,mBAAoB,KAG7BoB,EAAgBha,EAAK3b,QAAQwN,KAAK,sBAClCmoB,GACAA,EAAchZ,UAElBgZ,EAAgBt6B,GAAMs6B,cAAcha,EAAK3b,SACrC21B,GAAiBA,EAAc4a,UAC/B50B,EAAKga,cAAgBA,EACrBA,EAAc4a,QAAQl0B,KAAK,SAAU,SAAU9S,GAC3ClO,GAAM6T,WAAWyM,EAAKuN,aAAc3f,EAAEqU,OAAOM,GACzCvC,EAAK5b,eACL4b,EAAK5b,cAAcge,WAAWxU,EAAEqU,OAAOI,KAG/CrC,EAAKvM,IAAIwH,GAAW,SAAUrN,GAC1BA,EAAEqU,OAAOnM,QAAQqT,SAAS,yBAM9CkrB,yBAA0B,WACtB,GAAIr0B,GAAOhgB,IACPggB,GAAK0J,mBACL1J,EAAK0J,kBAAkB1I,UAE3BhB,EAAK0J,kBAAoB,GAAIxR,IAAkB8H,EAAK3b,SAChDuT,WAAYoI,EAAKpI,WACjB+I,WAAY,WACR,MAAOX,GAAK60B,qBAEhBnuB,KAAM,WACF1G,EAAK20B,yBAETG,OAAQ,WACJ90B,EAAK+0B,kBAETC,UAAW,WACPh1B,EAAKi1B,WAAU,IAEnBC,QAAS,WACLl1B,EAAKi1B,WAAU,MAGvBj1B,EAAK0J,kBAAkBhJ,KAAKpF,GAAQlW,GAAM4a,EAAKm1B,iBAAkBn1B,KAErEm1B,iBAAkB,WACd,GAAIn1B,GAAOhgB,IACXggB,GAAK00B,sBACD10B,EAAK2Z,6BACL3Z,EAAKoZ,2BAA4B,EACjCpZ,EAAKkY,YACLlY,EAAKoZ,2BAA4B,IAGzCiG,mBAAoB,WAChB,MAAOr/B,MAAK25B,4BAA8B35B,KAAK+4B,4BAA8B/4B,KAAKo1C,2BAEtFrc,yBAA0B,WACtB,MAAO/4B,MAAK0pB,mBAAqB1pB,KAAK23B,cAAgBha,IAE1Dgc,yBAA0B,WACtB,MAAO35B,MAAK0pB,mBAAqB1pB,KAAK23B,cAAgBja,IAE1D03B,wBAAyB,WACrB,MAAOp1C,MAAK0pB,mBAA0C,UAArB1pB,KAAK23B,aAE1C3C,mBAAoB,WAChB,SAAQh1B,KAAKq2B,mBAAqB/wB,SAEtC6yB,sBAAuB,WAAA,GACfnY,GAAOhgB,KACPwpB,EAAaxJ,EAAK0J,mBAClB1J,EAAK+Y,4BAA8B/Y,EAAK2Z,8BACpCnQ,EAAW9E,sBACX8E,EAAWpF,yBACJoF,EAAW5E,oBAClB4E,EAAWrF,wBAIvByN,oCAAqC,WACjC,GAAIlI,GAAoB1pB,KAAK0pB,iBACzBA,IACAA,EAAkBrF,gCAG1BswB,sBAAuB,WAAA,GAQflqC,GACAnC,EARA0X,EAAOhgB,KACPq1C,EAAgBr1B,EAAK4Z,mBACrB0b,EAAcD,EAAcphC,MAC5B2D,EAAaoI,EAAKpI,WAClB29B,EAAav1B,EAAK+Y,2BAClByc,EAAax1B,EAAK2Z,2BAClB8b,EAAiBz1B,EAAKgV,sBAGrBugB,GAAcC,GAAcC,IAAmBH,GAAe19B,EAAW89B,UAAUJ,EAAYzvC,IAAK+R,EAAW8nB,UAC5G1f,EAAK2X,cAAgBha,IACrBqC,EAAKoZ,2BAA4B,EACjCpZ,EAAK8Y,QAAQwc,GACRG,GACDz1B,EAAK+0B,kBAEF/0B,EAAK2X,cAAgBja,KAC5BjT,EAAMuV,EAAK5Q,MAAM1F,SAAS/G,EAAWib,GAAW03B,EAAYzvC,MAC5DyC,EAAO9K,EAAEiN,GAAKf,SAAS/G,EAAW6a,GAAO63B,EAAcvvC,QACnDwC,EAAK,KACL0X,EAAKoZ,2BAA4B,EACjCpZ,EAAK0Y,SAASpwB,GACTmtC,GACDz1B,EAAK+0B,oBAKrB/0B,EAAKoZ,2BAA4B,GAErC2b,eAAgB,WAAA,GACR/0B,GAAOhgB,KACP21C,GAAe31B,EAAK4Z,oBAAsB9zB,MAC1CsyB,EAAgBpY,EAAKgY,cACrBI,IAAiBA,EAAc15B,SAAW0W,GAASgjB,EAAc,GAAI3f,OAAoBuH,EAAK41B,sBAC1F51B,EAAK+Y,4BAA8B/Y,EAAKgV,qBACxCoD,EAAc7zB,KAAK5B,EAAW4a,GAAeo4B,IAAcpxC,KAAKqX,IAAW3X,GAAG,GAAG0P,SAC1EqM,EAAK2Z,4BAA8B3Z,EAAKgV,uBAC/CoD,EAAc7zB,KAAKqX,IAAW3X,GAAG,GAAG0P,UAIhDiiC,kBAAmB,WAAA,GACX51B,GAAOhgB,KACPoD,GAAU4c,EAAK2Z,4BAA8B3Z,EAAK+Y,4BAA8B/Y,EAAKgV,wBAA0Bnf,IAA2BmK,EAAK0J,uBAAyB5T,QAASkK,EAAKgY,iBAAmBniB,GAA0BmK,EAAK3b,QAAS2b,EAAKgY,gBAC1P,OAAO50B,IAEXsxC,oBAAqB,WAAA,GAObrC,GACA7yB,EAPAQ,EAAOhgB,KACPo4B,EAAgBpY,EAAKgY,eACrBsd,EAAcld,EAAgBpY,EAAK0X,mBAAmBU,GAAiB,KACvEmd,EAAav1B,EAAK+Y,2BAClByc,EAAax1B,EAAK2Z,2BAClB8b,EAAiBz1B,EAAKgV,sBAGrBugB,GAAcC,GAAcC,IAAmBH,IAChDt1B,EAAKqZ,sBACLgZ,EAAS70C,EAAEib,MACP2f,GAAiBia,EAAO,IAAMj9B,GAASgjB,EAAc,GAAIia,EAAO,MAChEA,EAAO5e,SACPjU,EAAS9f,GAAMm2C,eAAexD,EAAQ3yC,GAAM2Y,IACxCmH,GAAUxG,GAAWwG,EAAOnf,QAAUgyC,EAAOjiC,GAAGqN,MAChD+B,EAAOnf,MAAMgyC,EAAOjN,OACpB5lB,EAAOqE,QAAQhJ,MAGnBmF,EAAK2X,cAAgBha,GACrBqC,EAAK4Z,gBACD3lB,MAAOqhC,EACPxvC,MAAOusC,EAAO7jC,QAAQ,IAAM9O,GAAMoD,KAAKya,IAAiB,KAAKza,KAAKpD,GAAMoD,KAAKya,MAE1EyC,EAAK2X,cAAgBja,KAC5BsC,EAAK4Z,gBACD3lB,MAAOqhC,EACPxvC,MAAOsyB,EAAct1B,KAAKpD,GAAMoD,KAAK0a,SAKrDkP,kBAAmB,WACf,GAAI1M,GAAOhgB,KAAMqE,EAAU2b,EAAK3b,SAAW2b,EAAK3Q,MAAOjL,EAAgB4b,EAAK5b,aACxEC,IACAA,EAAQE,KAAKoV,IAAU6U,YAAYrS,IAEnC/X,GACAA,EAAcG,KAAKoV,IAAU6U,YAAYrS,KAGjDkd,oBAAqB,WACjB,GAAIrZ,GAAOhgB,MACPggB,EAAK0J,mBAAqB1J,EAAKqW,eAAiBrW,EAAKgV,wBACrDhV,EAAK4Z,eAAiB,OAG9BxN,0BAA2B,WACvB,GAAIpM,GAAOhgB,IACXggB,GAAKqZ,sBACDrZ,EAAK0J,mBAAqB1J,EAAK0J,kBAAkB9hB,SACjDoY,EAAK0J,kBAAkB1I,UAE3BhB,EAAK0J,kBAAoB,MAE7BosB,wBAAyB,WAAA,GAGbC,GAFJ/1B,EAAOhgB,IACPggB,GAAK/e,QAAQmpB,YACT2rB,EAAmB/1B,EAAK3Q,MAAM9D,SAAS7B,SAAS,IAAMqS,IACtDg6B,EAAiBr3C,SACjBshB,EAAKgP,QAAQ,UAAW,WACpB,OAAS7qB,SAAU4xC,EAAiBn1C,SAExCm1C,EAAiBtpC,UAEhBuT,EAAKpI,YAAeoI,EAAKpI,WAAW8nB,OAAOhhC,SAC5Cq3C,EAAmBv4C,EAAEwiB,EAAKsN,uBAAuB3jB,YAAYqW,EAAK3Q,OAClE2Q,EAAKgP,QAAQ,UAAW,WACpB,OACI7qB,SAAU4xC,EAAiBn1C,MAC3BiR,gBAMpBmkC,iBAAkB,SAAUziC,GACxB,GAAmJ0iC,GAA/Ij2B,EAAOhgB,KAAMk2C,EAAiB,0BAA2BC,EAAY,eAAiBD,EAAiB,WAAY7rB,EAAYrK,EAAKqK,SACpIrK,GAAK/e,QAAQuoB,YAAcxJ,EAAKlK,QAAQ1F,GAAG,cAC3C6lC,EAAWj2B,EAAK3Q,MAAM9D,SAAS7B,SAAS,IAAMwsC,GAC9Cl2B,EAAK4N,wBAA0BxoB,GAAM4a,EAAKg2B,iBAAkBh2B,GACvDA,EAAKpI,YAAeoI,EAAKpI,WAAW8nB,OAAOhhC,OAarCu3C,EAAS,KAChBA,EAASxpC,SACL4d,GACAA,EAAU5J,OAAO,SAAUT,EAAK4N,2BAf/BqoB,EAAS,KACVA,EAAWz4C,EAAE24C,GAAWjyC,SAAS8b,EAAK3Q,MAAM9D,UACxC8e,GACAA,EAAU3J,KAAK,SAAUV,EAAK4N,0BAGlC5N,EAAKhW,QACLisC,EAASp3C,MAAMmhB,EAAKhW,MAAMnL,SACrBu3C,MAAMpmB,WAAWzc,EAAY,MAC9B7T,GAAM6T,WAAWyM,EAAK3b,QAASkP,KAS3CyM,EAAK6R,8BACL7R,EAAK8R,2BACD9R,EAAKtL,cAA8C,IAA9BsL,EAAK3Q,MAAM,GAAGmV,cACnCxE,EAAK3Q,MAAM,GAAGpQ,MAAMJ,MAAQ,SAIxCgzB,4BAA6B,WACzB,GAAI7xB,KAAKiB,QAAQuoB,YAAcxpB,KAAK0U,aAAc,CAC9C,GAAqb2hC,GAAjb5hC,EAAczU,KAAKgK,MAAMuB,SAAU+jB,EAAa7a,EAAYlJ,SAAU+qC,EAAet2C,KAAK8V,QAAQ,GAAG0O,YAAanb,EAASrJ,KAAKipB,UAAW1H,EAAY7hB,GAAM2V,QAAQkM,YAAatV,EAAOjM,KAAK0U,aAAanQ,KAAK,2DAA4DgyC,EAAgB9hC,EAAYlQ,KAAK,qDAAsD1F,EAAQsN,EAAaF,GAAOuqC,EAAqBrqC,EAAaoqC,EACjaltC,GAAS,IACTxK,GAAS8Z,GAAW3Y,KAAK0U,aAAanQ,KAAK,wBAA0B8E,GAErExK,GAASy3C,IACTz3C,EAAQy3C,EAAe,EAAI/0B,GAE/BvhB,KAAK0U,aAAalR,IAAIxD,KAAKoE,eAAevF,MAAMA,GAChDywB,EAAW,GAAGrwB,MAAMJ,MAAQywB,EAAW/jB,SAAS1M,QAAUA,EAAQ,EAAI,KACtE4V,EAAYjR,IAAIxD,KAAKqP,OAAOxQ,MAAM23C,GAC9Bx2C,KAAK0pB,oBAAsBzK,KAC3Bq3B,GAAgB/0B,GAEpBvhB,KAAKqE,QAAQ,GAAGpF,MAAMJ,MAAQy3C,EAAez3C,EAAQ,EAAI,KACrDmB,KAAKytB,cAAgBztB,KAAKytB,aAAa/uB,SACvCsB,KAAKytB,aAAa5uB,MAAMA,GACxBw3C,EAAar2C,KAAKwtB,OAAOjpB,KAAK,uBAC9B8xC,EAAW,GAAGp3C,MAAMJ,MAAQywB,EAAW,GAAG9K,YAAc,KACxD6xB,EAAW3sC,WAAW+X,QAAQ5iB,MAAM23C,MAIhDpuB,kBAAmB,WAAA,GAC0BtpB,GAoBjC23C,EApBJz2B,EAAOhgB,KAAMiB,EAAU+e,EAAK/e,QAAiBswB,EAASvR,EAAKlK,QAAQpM,SAAS,kBAAmB6X,EAAY7hB,GAAM2V,QAAQkM,YACzHm1B,GAAoBz1C,EAAQuoB,gBAAkB1qB,MAC9CmC,GAAQuoB,YAAcxJ,EAAKlK,QAAQ1F,GAAG,cAClCsmC,GAAqD,KAAjC12B,EAAK3b,QAAQ,GAAGpF,MAAMH,SAC1CkhB,EAAK3b,QAAQ,GAAGpF,MAAMH,OAAS43C,GAEnC53C,EAASkhB,EAAKlK,QAAQoN,cACtBpkB,GAAUmX,GAAYsb,GAClBvR,EAAKuL,OAASvL,EAAKuL,MAAM3jB,QAAQwI,GAAG,cACpCtR,GAAUmX,GAAY+J,EAAKuL,MAAM3jB,UAEjC3G,EAAQ6S,YACRhV,GAAUmX,GAAY+J,EAAKlK,QAAQpM,SAAS,wBAE5CzI,EAAQ0oB,UACR7qB,GAAUmX,GAAY+J,EAAKlK,QAAQpM,SAAS,qBAE5CsW,EAAKmN,iBACLruB,GAAUmX,GAAY+J,EAAKlK,QAAQpM,SAAS,oBAE5C+sC,EAAkB,SAAUnsC,GAC5B,GAAIqsC,GAAeC,CACnB,SAAItsC,EAAG,GAAGrL,MAAMH,SAGZ63C,EAAgBrsC,EAAGxL,SAEvBwL,EAAGxL,OAAO,QACV83C,EAAYtsC,EAAGxL,SACX63C,GAAiBC,GACjBtsC,EAAGxL,OAAO,KACH,IAEXwL,EAAGxL,OAAO,KACH,KAEP23C,EAAgBz2B,EAAKlK,WACjBhX,EAAqB,EAAZyiB,GACLvB,EAAK5b,gBACLmd,EAAYvB,EAAK3Q,MAAM,GAAGvN,YAAcke,EAAK3Q,MAAM9D,SAAS,GAAGiZ,YAAcjD,EAAY,EACzFvB,EAAK5b,cAActF,OAAOA,EAASyiB,IAEvCvB,EAAK3b,QAAQvF,OAAOA,IAEpBkhB,EAAK3b,QAAQvF,OAAmB,EAAZyiB,EAAgB,MAKpDszB,kBAAmB,WAAA,GAUXgC,GATA72B,EAAOhgB,KAAM82C,EAAa92B,EAAK0O,OAAO1O,EAAK5Q,OAAO,GAAM1Q,OAAQqkB,EAAY/C,EAAK+2B,UACrF,OAAmB,KAAfD,EACO/zB,GAEN/C,EAAK+2B,aACN/2B,EAAK+2B,WAAah0B,EAAY9M,GAAY+J,EAAK3Q,OAASynC,EACxD92B,EAAKg3B,KAAOj0B,EACZ/C,EAAKi3B,UAAY,GAEjBJ,EAAmB5gC,GAAY+J,EAAK3Q,OAASynC,EAC7C/zB,IAAc8zB,IACd72B,EAAKi3B,YACLj3B,EAAKg3B,MAAQH,EACb72B,EAAK+2B,WAAa/2B,EAAKg3B,KAAOh3B,EAAKi3B,WAEhCl0B,IAEX8E,YAAa,WACT,GAAyCkC,GAArC/J,EAAOhgB,KAAMiB,EAAU+e,EAAK/e,QAAmB2W,EAAa3W,EAAQ2W,UACxEA,GAAa/S,GAAQ+S,IAAgB/F,KAAM+F,GAAeA,EACtD9S,GAAc8S,KACd/X,GAAO+X,GACHvI,MAAO2Q,EAAK3Q,MACZkqB,OAAQvZ,EAAK1a,UAEjBykB,EAAW9oB,EAAQ8oB,SACfjlB,GAAcilB,IAAaA,EAAS5J,WAAazd,IACjDkV,EAAWuI,SAAW4J,EAAS5J,WAGnCH,EAAKpI,YAAcoI,EAAKK,gBACxBL,EAAKpI,WAAW6I,OAAO5F,GAAQmF,EAAKK,iBAAiBI,OAAOtH,GAAU6G,EAAKwM,kBAAkB/L,OAAOrH,GAAO4G,EAAKyM,eAAehM,OAAOxC,GAAM+B,EAAKk3B,eAEjJl3B,EAAKK,gBAAkBjb,GAAM4a,EAAKM,QAASN,GAC3CA,EAAKwM,iBAAmBpnB,GAAM4a,EAAKm3B,cAAen3B,GAClDA,EAAKyM,cAAgBrnB,GAAM4a,EAAKo3B,OAAQp3B,GACxCA,EAAKk3B,aAAe9xC,GAAM4a,EAAK0M,kBAAmB1M,IAEtDA,EAAKpI,WAAaU,GAAWqO,OAAO/O,GAAY8I,KAAK7F,GAAQmF,EAAKK,iBAAiBK,KAAKvH,GAAU6G,EAAKwM,kBAAkB9L,KAAKtH,GAAO4G,EAAKyM,eAAe/L,KAAKzC,GAAM+B,EAAKk3B,eAE7KE,OAAQ,WACJp3C,KAAKi1C,WAAU,IAEnBkC,cAAe,WACXn3C,KAAKi1C,WAAU,IAEnBna,aAAc,SAAUltB,GAAV,GACsHypC,GAAY/uC,EAAM3C,EAAuC8J,EAAyEyE,EAAYojC,EAAeC,EAAYC,EAAe94C,EA6BhT6/B,EA7BJve,EAAOhgB,KAAMoP,EAAQ4Q,EAAK5Q,MAAO6E,EAAQrG,EAAEqG,MAAOxJ,EAAMuV,EAAK5Q,MAAM7K,KAAK,MAAQ7E,GAAMoD,KAAK,OAAS,IAAMmR,EAAMpO,IAAM,KAAgC44B,EAAQh0B,EAAIF,SAAS,SAAexG,EAAMic,EAAK0O,OAAOtf,GAAOlE,MAAMT,GAAM0mB,EAAWnR,EAAK5b,aAInP,IAHI+sB,IACAkmB,EAAar3B,EAAK6Z,YAAYpvB,IAE9BA,EAAIjH,IAAI6zC,GAAY3tC,SAAS,gBAAgBhL,SAAWshB,EAAK/e,QAAQipB,YACrEzf,EAAIjH,IAAI6zC,GAAY3tC,SAAS,yCAAyCulB,KAAK,WACvE3mB,EAAO9K,EAAEwC,MACT2F,EAAS0E,GAAY2V,EAAK1a,SAAS0a,EAAK4X,sBAAsBtvB,IAC1D3C,EAAOG,QAAU8H,EAAE9H,QACdwC,EAAKiC,SAAS,eAGfjC,EAAK6gB,SAAS,gBAFdnJ,EAAKib,aAAa3yB,EAAM3C,EAAQsO,UAMzC,KAAKxJ,EAAIF,SAAS,mBAAoB,CAiCzC,IAhCA+sC,EAAgB95C,IAAIgG,IAAIiH,GACpB0mB,IACA1hB,GAAOgvB,EAAQze,EAAKkN,qBAAuBlN,EAAKiN,mBAAmBhZ,GACnEqjC,EAAgBA,EAAc9zC,IAAI6zC,GAClCA,EAAW3Y,YAAYjvB,IAE3BuQ,EAAKgP,QAAQ,UAAW,WACpB,OAAS7qB,SAAUmzC,EAAc12C,SAErC6O,GAAOgvB,EAAQze,EAAKmK,eAAiBnK,EAAKkK,aAAajW,GACvDxJ,EAAIi0B,YAAYjvB,GAChBA,EAAMuQ,EAAK0O,OAAOtf,GAAOnL,GAAGF,GACxBw6B,IAAiBpD,SAAUlnB,IAC3Bkd,IACA1mB,EAAMA,EAAIjH,IAAI6zC,GACdA,EAAar3B,EAAK6Z,YAAYpqB,GAAK,GACnCsD,GAAgBtD,EAAI,GAAI4nC,GACxB5nC,EAAMA,EAAIjM,IAAI6zC,GACd9Y,EAAYpgC,MAAOg9B,SAAUlnB,KAEjC+L,EAAKgP,QAAQ,UAAW,WACpB,OACI7qB,SAAUsL,EAAI7O,MACdiR,KAAM0sB,KAGdrqB,EAAa8L,EAAK/e,QAAQiT,YACrBA,GAAc8L,EAAK2e,qBAAuBl0B,EAAIF,SAAS,qBACxDyV,EAAK4e,OAAOnvB,GAEhB+nC,EAAgBF,EAAc5tC,SAAS,yCACvC6tC,EAAa9nC,EAAI/F,SAAS,yCACrB3F,EAAM,EAAGrF,EAASshB,EAAK1a,QAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACtD4B,EAASqa,EAAK1a,QAAQvB,GACtBuE,EAAOivC,EAAWtzC,GAAGF,GACjBmQ,GAAcsjC,EAAcvzC,GAAGF,GAAKwG,SAAS,qBAC7CjC,EAAK6gB,SAAS,mBAGtBnJ,GAAK6D,QAAQ,cACT/S,KAAMrB,EACNoC,KAAMoC,EACNinB,GAAI7iB,OAIhB8P,UAAW,WACP,GAAiBsvB,GAAbz3B,EAAOhgB,KAAiB+pB,EAAW/J,EAAK/e,QAAQ8oB,QAChDA,KACA0tB,EAAYz3B,EAAKlK,QAAQpM,SAAS,oBAC7B+tC,EAAU/4C,SACX+4C,EAAYj6C,EAAE,6CAEQ,QAAtBusB,EAAS7f,SACTutC,EAAUhX,UAAUzgB,EAAKlK,SAASqT,SAAS,oBAE3CsuB,EAAUvzC,SAAS8b,EAAKlK,SAExBkK,EAAKuL,OACLvL,EAAKuL,MAAMvK,UAGXhB,EAAKuL,MADe,gBAAbxB,IAAyBA,YAAoBrqB,IAAM2Y,GAAGqH,MAChDqK,EAET/J,EAAKpI,WAAW8/B,aACH,GAAIz/B,IAAYw/B,EAAW53C,MAAWkqB,GAAYnS,WAAYoI,EAAKpI,cAEnE,GAAIlY,IAAM2Y,GAAGqH,MAAM+3B,EAAW53C,MAAWkqB,GAAYnS,WAAYoI,EAAKpI,cAG3FoI,EAAKuL,MAAM7K,KAAK,aAAc,SAAU9S,GAChCoS,EAAK6D,QAAQ,QAAU6C,KAAM9Y,EAAE1C,SAC/B0C,EAAE8F,mBAGVsM,EAAK23B,2BAGbzuB,QAAS,WAAA,GACgImtB,GAIzH5mC,EAsCAxF,EA1CR+V,EAAOhgB,KAAMiS,EAAa+N,EAAKpI,WAAW3F,aAAc3C,EAAO,GAAI6d,EAAiBnN,EAAKmN,eAAgBlsB,EAAU+e,EAAK/e,QAAqBusB,EAASxN,EAAKwN,QAAUxN,EAAKlK,QAAQvR,KAAK,iBACvL4oB,IACA7d,EAAO9R,EAAEwiB,EAAK43B,YAAYzqB,EAAelb,KACrCub,EAAO9uB,QACH+Q,EAAMH,EACV0Q,EAAKgP,QAAQ,UAAW,WACpB,OAAS7qB,SAAUqpB,EAAO5sB,SAE9B4sB,EAAOkR,YAAYjvB,GACnB+d,EAASxN,EAAKwN,OAAS/d,GAGnB+d,EAASxN,EAAKwN,OADdvsB,EAAQuoB,WACevoB,EAAQ8oB,UAA0C,QAA9B9oB,EAAQ8oB,SAAS7f,SAAqBoF,EAAKqB,aAAaqP,EAAKlK,QAAQpM,SAAS,qBAAuB4F,EAAKpL,SAAS8b,EAAKlK,SAE5IxG,EAAKqB,aAAaqP,EAAK5Q,OAGtD4Q,EAAKgP,QAAQ,UAAW,WACpB,OACI7qB,SAAUqpB,EAAOjpB,KAAK,4CAA4C3D,MAClEiR,KAAMvR,GAAI0f,EAAK1a,QAAS,SAAUmS,GAC9B,OACI9R,OAAQ8R,EACRwW,UAAWhc,EAAWwF,EAAI3R,cAKnC0nB,IAAWxN,EAAKwN,SACvBxN,EAAKwN,OAASA,GAEdA,EAAO9uB,SACHuC,EAAQuoB,aACR6sB,EAAa7oB,EAAO1qB,KAAK,eAAgB4G,SAAS,uBAClDsW,EAAKuN,YAAc/vB,EAAEwiB,EAAKuN,YAAYjpB,OAAO,WACzC,OAAQ9G,EAAEwC,MAAMoQ,GAAG,yBACpBhI,WAAW5E,IAAI6yC,IAElBr2B,EAAK2R,cACLnE,EAAOjpB,KAAK,SAASd,IAAI,QAASuc,EAAK2R,cAEvC0kB,IACIpsC,EAASvK,GAAM6T,WAAWyM,EAAK3b,SAC/BpD,EAAQuoB,cAAe,GAAQxJ,EAAKqW,eAAiBrW,EAAKqW,cAAc9sB,OACxEU,EAASvK,GAAM6T,WAAWyM,EAAKlK,QAAQvR,KAAK,gCAEhD7E,GAAM6T,WAAW8iC,EAAYpsC,KAGjC+V,EAAK5b,gBACL4b,EAAK63B,4BACL73B,EAAK6R,8BACL7R,EAAKka,4BAGb0d,YAAa,SAAUE,GACnB,GAAI93B,GAAOhgB,KAAMsP,EAAO,GAAIiS,EAAa7hB,GAAM2V,QAAQgc,SAAuC,EAA5B3xB,GAAM2V,QAAQkM,WAChF,OAAIvB,GAAK/e,QAAQuoB,YACbla,EAAO9R,EAAE,4EAA8Es6C,EAAY,gCACnG93B,EAAK+3B,YAAYzoC,EAAK/K,KAAK,UAC3B+K,EAAK7L,IAAIub,GAAQ,eAAiB,gBAAiBuC,GAC5CjS,GAEJ,gCAAkCwoC,EAAY,YAEzDE,YAAa,WAAA,GACQziB,GAA2C5vB,EAAiEsyC,EAAapuB,EAAUD,EAAYxf,EAsDnJrG,EAASrF,EAEV4J,EAxDR0X,EAAOhgB,KAAYsF,EAAU+E,GAAY2V,EAAK1a,SAAkBrE,EAAU+e,EAAK/e,QAASspB,EAAatpB,EAAQspB,WAAsD2tB,EAAwBpwC,GAAKkY,EAAK1a,QAAS,SAAUwL,GACpN,MAAOA,GAAKxL,UAAY5C,IACzBhE,OAAS,EAAGy5C,EAAqBrwC,GAAKkY,EAAK1a,QAAS,SAAUwL,GAC7D,MAAOA,GAAKyiB,YAAa,IAC1B70B,OAAS,EAAG05C,EAAsBtwC,GAAKkY,EAAK1a,QAAS,SAAUwL,GAC9D,MAAOA,GAAKunC,aAAc,IAC3B35C,OAAS,EAAGyzB,EAAWnyB,KAAK6sB,UAAWyrB,EAAe,SAAU1qC,GAC/DoS,EAAK6D,QAAQpJ,IACT3U,MAAO8H,EAAE9H,MACTrB,UAAWmJ,EAAEnJ,aAElB8zC,EAAe,SAAU3qC,GACxBoS,EAAK6D,QAAQlJ,IACT7U,MAAO8H,EAAE9H,MACTrB,UAAWmJ,EAAEnJ,aAElB+zC,EAAgB,SAAU5wC,GACzByL,GAAWzL,EAAQ4G,QAAQ,UAAU,IACtCiqC,EAAgB,SAAU7qC,GACzBoS,EAAK6D,QAAQ9G,IAAepX,OAAQiI,EAAEjI,UACvC+yC,EAAkB,SAAU9qC,GAC3BoS,EAAK6D,QAAQ7G,IAAiBrX,OAAQiI,EAAEjI,UACzColC,EAAc,SAAUn9B,GACnBoS,EAAK6D,QAAQ,QAAUzlB,KAAMwP,EAAExP,OAC/BwP,EAAE8F,kBAEFsM,EAAKqZ,sBACDrZ,EAAKpI,WAAW3W,QAAQigC,UACxBlhB,EAAKpI,WAAW3W,QAAQigC,QAAU,KAClClhB,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW3W,QAAQkf,SAChDH,EAAKpI,WAAWuI,SAASH,EAAKpI,WAAW3W,QAAQkf,aAG1Dw4B,EAAgB,SAAU/qC,GACrBoS,EAAK6D,QAAQ,UACTvf,OAAQsJ,EAAEtJ,OACVwB,MAAO8H,EAAE9H,QAEb8H,EAAE8F,kBAEFsM,EAAKqZ,sBACDrZ,EAAKpI,WAAW3W,QAAQigC,UACxBlhB,EAAKpI,WAAW3W,QAAQigC,QAAU,KAClClhB,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW3W,QAAQkf,SAChDH,EAAKpI,WAAWuI,SAASH,EAAKpI,WAAW3W,QAAQkf,aAG1DgO,EAAWltB,EAAQktB,QAC1B,IAAI5D,EAMA,IALyB,iBAAdA,KACPA,MAEJvK,EAAK2mB,2BAA2BrhC,GAChC8E,EAAQ0D,GAAckS,EAAKhW,OAClBjG,EAAM,EAAGrF,EAAS0L,EAAM1L,OAAQqF,EAAMrF,EAAQqF,IACnD4B,EAASL,EAAQvB,GACbuE,EAAO8B,EAAMnG,GAAGF,GACf4B,EAAOhB,UAAYgB,EAAOG,QAASwC,EAAKxF,KAAK,QAAUpD,GAAMw7B,GAAK,WACnE3F,EAAOjtB,EAAKuJ,KAAK,mBACb0jB,GACAA,EAAKvU,UAET6I,EAAWlkB,EAAOkkB,YAAa,GAASU,EAAWV,YAAa,GAAS5oB,EAAQ4oB,YAAa,GAAQhqB,MAAWoB,EAAQ4oB,UAAY+uB,SAAUjzC,EAAOkkB,cAAgB+uB,UACtKhvB,KAAa3oB,EAAQ2oB,YAAcjkB,EAAOikB,cAAe,GAASW,EAAWX,cAAe,IAAQ/pB,IAAS+sB,KAAM5M,EAAK4M,MAAQ3rB,EAAQ2oB,WAAYjkB,EAAOikB,YACvJjkB,EAAOikB,YAAcjkB,EAAOikB,WAAWhS,aACvCgS,EAAWivB,aAAc,EACzBjvB,EAAWkvB,YAAcnzC,EAAOikB,WAAWhS,YAE3CgS,IACAA,EAAWzZ,OAASxK,EAAOwK,QAE/B8nC,GACIrgC,WAAYoI,EAAKpI,WACjB6hB,OAAQ9zB,EAAO8zB,OACfn0B,QAASilB,EAAWjlB,QACpBukB,SAAUA,EACVD,WAAYA,EACZgB,SAAUL,EAAWK,SACrBmuB,MAAO/4B,EACPw4B,cAAeA,EACf14C,KAAMw4C,EACN7a,KAAM8a,EACNS,MAAOP,EACPQ,QAASP,EACT9rB,KAAM5M,EAAK4M,KACXxuB,KAAM2sC,EACNmO,UAAWP,EACXr0C,OAAQ6tB,EAAW,yBAA2B,GAC9CgmB,mBAAoBzvC,EAAcpD,GAAS5G,OAAS,GAAKy5C,IAAuBD,EAChFE,oBAAqBA,IAAwBF,EAC7CjuB,aAAcjK,EAAK/e,QAAQgpB,aAC3BkvB,cAAe5uB,EAAW4uB,eAE1BhrB,IACA8pB,EAAY9pB,SAAWA,GAE3B7lB,EAAK8wC,gBAAgBnB,KAKrCpV,aAAc,WACV,MAAOrlC,GAAEwC,KAAKgK,OAAOzF,KAAK,MAAMD,OAAO,WACnC,GAAIoM,GAAKlT,EAAEwC,KACX,QAAQ0Q,EAAGnG,SAAS,kBAAoBmG,EAAGnG,SAAS,uBAG5D8uC,YAAa,WAAA,GAC6CnqB,GAAY9kB,EAAO9B,EAgC5DvE,EAASrF,EAWN46C,EACAr4C,EA5CZ+e,EAAOhgB,KAAMsF,EAAU+E,GAAY2V,EAAK1a,SAAmCi0C,EAAa,SAAU3rC,GAC9FoS,EAAK6D,QAAQrJ,IACT1U,MAAO8H,EAAE9H,MACTrB,UAAWmJ,EAAEnJ,aAElB+zC,EAAgB,SAAU5wC,GACzByL,GAAWzL,EAAQ4G,QAAQ,UAAU,IACtCmqC,EAAgB,SAAU/qC,GACrBoS,EAAK6D,QAAQ,UACTvf,OAAQsJ,EAAEtJ,OACVwB,MAAO8H,EAAE9H,QAEb8H,EAAE8F,kBAEFsM,EAAKqZ,sBACDrZ,EAAKpI,WAAW3W,QAAQigC,UACxBlhB,EAAKpI,WAAW3W,QAAQigC,QAAU,KAClClhB,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW3W,QAAQkf,SAChDH,EAAKpI,WAAWuI,SAASH,EAAKpI,WAAW3W,QAAQkf,aAG1Dq5B,EAAa,SAAU5rC,GACtBoS,EAAK6D,QAAQnJ,IACT5U,MAAO8H,EAAE9H,MACTrB,UAAWmJ,EAAEnJ,aAElBmlB,EAAa5J,EAAK/e,QAAQ2oB,UAIjC,IAHIA,SAAqBA,GAAWkO,MAAQz0B,IAAUumB,EAAWkO,KAAKzrB,QAAQ,cAC1Eud,GAAa,GAEbA,IAAe5J,EAAK/e,QAAQspB,WAE5B,IADAngB,EAAQ0D,GAAckS,EAAKhW,OAClBjG,EAAM,EAAGrF,EAAS0L,EAAM1L,OAAQqF,EAAMrF,EAAQqF,IACnDuE,EAAO8B,EAAMnG,GAAGF,GACZuB,EAAQvB,GAAK6lB,cAAe,GAAUtkB,EAAQvB,GAAKY,UAAYW,EAAQvB,GAAK+B,QAASwC,EAAKxF,KAAK,QAAUpD,GAAMw7B,GAAK,WACpHhM,EAAa5mB,EAAKuJ,KAAK,mBACnBqd,GACAA,EAAWlO,UAEfkO,EAAa5mB,EAAKuJ,KAAK,yBACnBqd,GACAA,EAAWlO,UAEXs4B,EAAmBh0C,EAAQvB,GAAK6lB,WAChC3oB,EAAUpB,MAAW+pB,EAAY0vB,GACjC1hC,WAAYoI,EAAKpI,WACjB6hB,OAAQn0B,EAAQvB,GAAK01B,OACrBtpB,OAAQ7K,EAAQvB,GAAKoM,OACrBqoC,cAAeA,EACf9gC,MAAOpS,EAAQvB,GAAK2T,OAASpS,EAAQvB,GAAK+B,MAC1ChG,KAAMy5C,EACN9b,KAAM+b,EACN5sB,KAAM5M,EAAK4M,KACX6G,OAAQklB,IAERW,GAAoBA,EAAiB1uB,WACrC3pB,EAAQ2pB,SAAW/qB,IAAO,KAAU+pB,EAAWgB,SAAU0uB,EAAiB1uB,WAE1E0uB,GAAoBA,EAAiB1hC,aACrC3W,EAAQ43C,aAAc,EACtB53C,EAAQ63C,YAAcQ,EAAiB1hC,YAEvC0hC,GAAoBA,EAAiBjW,MACrC/6B,EAAKmxC,sBAAsBx4C,GAE3BqH,EAAKoxC,gBAAgBz4C,KAMzC04C,WAAY,WAAA,GAKJte,GACAlN,EACA7oB,EAAqCskB,EAAsCgwB,EAA8CjB,EAgBpHn6C,EACDq7C,EAAmBpiC,EAAkBqiC,EAA+CC,EAA0BrpC,EAAiB5K,EAM3Hk0C,EAKApvB,EAlCR5K,EAAOhgB,IACX,IAAKggB,EAAK+U,gBAqBV,IAjBI5G,EAAWnO,EAAK/e,QAAQktB,SACxB7oB,EAAU+E,GAAY2V,EAAK1a,SAAUskB,EAAa5J,EAAK/e,QAAQ2oB,WAAYgwB,EAAY55B,EAAKhW,MAAMzF,KAAK,iBAAkBo0C,EAAgB,SAAU/qC,GAC3IoS,EAAK6D,QAAQ,UACTvf,OAAQsJ,EAAEtJ,OACVwB,MAAO8H,EAAE9H,QAEb8H,EAAE8F,kBAEFsM,EAAKqZ,sBACDrZ,EAAKpI,WAAW3W,QAAQigC,UACxBlhB,EAAKpI,WAAW3W,QAAQigC,QAAU,KAClClhB,EAAKmhB,iBAAmBnhB,EAAKpI,WAAW3W,QAAQkf,SAChDH,EAAKpI,WAAWuI,SAASH,EAAKpI,WAAW3W,QAAQkf,aAIjEngB,KAAKi6C,cAAcj6C,KAAK4X,WAAWoW,QAAQtvB,QAClCF,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAMhC,GALuBiZ,EAAMnS,EAAQ9G,GAAIs7C,EAAY95B,EAAK/e,QAAQ2oB,WAAWkwB,UAAWC,GAAmB,EAAOrpC,EAAKlT,EAAE,SAAUsI,EAAQ2R,EAAI3R,MAC3I2R,EAAI7R,QACJ8K,EAAGlL,OAEPo0C,EAAUvpC,OAAOK,GACb5K,GAAS2R,EAAImS,cAAe,EAAO,CAUnC,GATIowB,EAAcviC,EAAImS,YAAcnS,EAAImS,WAAWthB,SACnDuxC,EAAoB75B,EAAK/e,QAAQ2W,WAC7BiiC,YAA6BvhC,MAC7BuhC,EAAoB75B,EAAK/e,QAAQ2W,WAAW3W,SAE5C2pB,EAAW/qB,IAAO,KAAU+pB,EAAWgB,UACvCnT,EAAImS,YACJ/pB,IAAO,EAAM+qB,EAAUnT,EAAImS,WAAWgB,UAEtCovB,EAAYjY,WAAY,EAAO,CAC/BrxB,EAAGpB,KAAK,SACR,UAEA0qC,EAAYpiC,aACZiiC,EAAoBG,EAAYpiC,WAChCmiC,GAAmB,GAEnBtiC,EAAImS,YAAcnS,EAAImS,WAAWkwB,YACjCA,EAAYriC,EAAImS,WAAWkwB,WAE/Bze,GACI11B,OAAQ8R,EACRG,WAAYoI,EAAKpI,WACjBiiC,kBAAmBA,EACnBE,iBAAkBA,EAClBj0C,MAAOA,EACP8kB,SAAUA,EACV6O,OAAQhiB,EAAIgiB,OACZgC,SAAUue,EAAYve,SACtBye,MAAOF,EAAYE,MACnBC,WAAYH,EAAYG,WACxBC,mBAAoBJ,EAAYI,mBAChCC,UAAWL,EAAYK,UACvBC,cAAeN,EAAYM,cAC3BlZ,SAAU4Y,EAAY5Y,SACtB0Y,UAAWA,EACXS,cAAeP,EAAYO,cAC3B9mB,OAAQklB,GAERxqB,IACAkN,EAASlN,SAAWA,GAExB3wB,EAAE,WAAWsF,KAAKpD,GAAMoD,KAAK,SAAUgD,GAAO5B,SAASwM,GAAI8pC,gBAAgBnf,OAE3E3qB,GAAGpB,KAAK,WAIpBmrC,UAAW,WAAA,GAC+C90C,GAAQ+0C,EAAgBpyC,EAQtE8B,EACKrG,EAASrF,EATlBshB,EAAOhgB,KAAMsF,EAAU+E,GAAY2V,EAAK1a,SAAwCukB,EAAW7J,EAAK/e,QAAQ4oB,SAAUkhB,EAAc,SAAUn9B,GAClIoS,EAAK6D,QAAQ,QAAUzlB,KAAMwP,EAAExP,OAC/BwP,EAAE8F,iBAEFsM,EAAKqZ,sBAGjB,IAAIxP,EAAU,CAEV,IADIzf,EAAQ0D,GAAckS,EAAKhW,OACtBjG,EAAM,EAAGrF,EAAS0L,EAAM1L,OAAQqF,EAAMrF,EAAQqF,IACnD4B,EAASL,EAAQvB,GACb4B,EAAOkkB,YAAa,IAAUlkB,EAAOhB,SAAWgB,EAAOG,QACvDwC,EAAO8B,EAAMnG,GAAGF,GAChB22C,EAAiBpyC,EAAKuJ,KAAK,qBACvB6oC,GACAA,EAAe15B,UAEnB1Y,EAAKxF,KAAK,QAAUpD,GAAMw7B,GAAK,QAASv1B,EAAOG,OAAO60C,kBAAkB96C,MAAWgqB,EAAUlkB,EAAOkkB,UAChGjS,WAAYoI,EAAKpI,WACjB8rB,MAAM,EACNp/B,OAAQ,yBACRmvB,OAAQsX,KAIpB3gC,GAAQ,OAGhBmd,SAAU,SAAUjiB,GAAV,GAC+BC,GAAmC0gC,EAqBhE2U,EArBJ56B,EAAOhgB,KAAMqP,EAAQ2Q,EAAK3Q,MAAgBpD,EAAOoD,EAAM9K,KAAK,OAAoBkK,EAAauR,EAAKpY,QAAQrD,KAAK,YAAaqT,EAAaoI,EAAK/e,QAAQ2W,UAoB1J,IAnBAtS,EAAUA,EAAQ5G,OAAS4G,EAAUhF,GAAI+O,EAAM9K,KAAK,gDAAiD,SAAUmM,EAAI3M,GAC/G2M,EAAKlT,EAAEkT,EACP,IAAImZ,GAAWnZ,EAAG5N,KAAKpD,GAAMoD,KAAK,aAAc8mB,EAAalZ,EAAG5N,KAAKpD,GAAMoD,KAAK,eAAgBk4B,EAAOtqB,EAAG5N,KAAKpD,GAAMoD,KAAK,SAAUgR,EAAYpD,EAAG5N,KAAKpD,GAAMoD,KAAK,cAAegD,EAAQ4K,EAAG5N,KAAKpD,GAAMoD,KAAK,UAAW4U,EAAQhH,EAAG5N,KAAKpD,GAAMoD,KAAK,UAAWyyB,EAAO7kB,EAAG5N,KAAKpD,GAAMoD,KAAK,QAIxR,OAHKgD,KACDA,EAAQ4K,EAAGhT,OAAOE,QAAQ,gBAAiB,MAG3CkI,MAAOA,EACPk1B,KAAMA,EACNtjB,MAAOA,EACPmS,SAAuB,UAAbA,EACVD,WAA2B,UAAfA,EACZ9V,UAAyB,UAAdA;AACXyhB,KAAe,UAATA,EACNkG,SAAU/qB,EAAG5N,KAAKpD,GAAMoD,KAAK,aAC7BjE,MAAOoN,EAAKhI,GAAGF,GAAKN,IAAI,YAGhC8B,IAAYya,EAAK3Q,MAAM9K,KAAK,YAAY7F,OAAS,KAAOkZ,IAAeA,EAAWsW,YAC9ElO,EAAK/e,QAAQuoB,WAAY,CAIzB,GAHIoxB,EAAiBt1C,EACrB2gC,EAAav9B,EAAcpD,GAC3BA,EAAUsD,EAAiBtD,GACvB2gC,EAAWvnC,OAAS,GAAwB,IAAnB4G,EAAQ5G,OACjC,KAAUuJ,OAAM,iDAEpBsI,IAAqByP,EAAKpY,QAAQrD,KAAK,oBAAqBq2C,GAC5Dt1C,EAAU2gC,EAAW/9B,OAAO5C,GAE5BmJ,EAAW/P,QAAU4G,EAAQ5G,QAC7BshB,EAAK66B,iBAAiBv1C,EAASmJ,EAAWgT,SAE9CzB,EAAK1a,QAAUD,EAAiBC,EAASC,GACrC/H,EAAEsK,KAAKuC,GAAY2V,EAAK1a,SAAU,SAAUmS,GACxC,MAAOA,GAAIvD,aACZxV,SACHshB,EAAK8L,gBACL9L,EAAK2e,oBAAqB,EAC1B3e,EAAKlK,QAAQ7Q,GAAGC,GAAQC,GAAI,cAAgBgQ,GAAe/P,GAAM4a,EAAK86B,eAAgB96B,IACtFA,EAAKlK,QAAQ7Q,GAAGC,GAAQC,GAAI,cAAgBgQ,GAAe/P,GAAM4a,EAAK+6B,qBAAsB/6B,KAEhGA,EAAKg7B,oBAAoBh7B,EAAK1a,UAElC01C,oBAAqB,SAAU11C,GAAV,GAGbK,GACKnH,EAHLwhB,EAAOhgB,KACPtB,EAAS4G,EAAQ5G,MAErB,KAASF,EAAI,EAAGA,EAAIE,EAAQF,IACxBmH,EAASL,EAAQ9G,GACbmH,EAAOiS,YACPoI,EAAKi7B,uBAAuBt1C,IAIxCs1C,uBAAwB,SAAUt1C,GAAV,GAChBqa,GAAOhgB,KACPi+B,EAAUzgC,EAAEugC,UAChB/d,GAAKk7B,qBAAsB,EAC3Bv1C,EAAOiS,WAAaU,GAAWqO,OAAOhhB,EAAOiS,YACxCoI,EAAKwH,sBACNxH,EAAKwH,wBAETxH,EAAKwH,oBAAoBrpB,KAAK8/B,GAC9Bt4B,EAAOiS,WAAWmR,QAAQpB,KAAK,WAC3B,GAAI9V,GAAOlM,EAAOiS,WAAW/F,MAC7BlM,GAAO8zB,OAAS5nB,EAAKvR,IAAI,SAAUwQ,GAC/B,OACIzQ,MAAOyQ,EAAKnL,EAAOw1C,gBACnBz9C,KAAMoT,EAAKnL,EAAO20C,kBAG1Brc,EAAQC,aAGhB2c,iBAAkB,SAAUv1C,EAASspB,GAAnB,GAIV9jB,GACAzE,EACK7H,CALT,IAAK8G,EAAQ5G,OAAb,CAKA,IAFIoM,EAAM8jB,EAAGrqB,KAAK,gDAET/F,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAChC6H,EAAKyE,EAAI7G,GAAGzF,GAAGsE,KAAK,MAChBuD,IACAf,EAAQ9G,GAAG0H,iBAAmBrG,GAAOyF,EAAQ9G,GAAG0H,kBAAoBG,GAAIA,IAGhFrG,MAAK66C,iBAAiBntC,GAAapI,GAAUspB,EAAG1f,UAEpD6rC,qBAAsB,SAAUntC,GAC5B,GAAIoS,GAAOhgB,KAAMo7C,EAAW59C,EAAEoQ,EAAE1E,QAAS6jC,EAAUqO,EAASpO,KAAK,UAC5DhtB,GAAK6Y,eAAeuiB,KAGrBrO,EACA/sB,EAAK4e,OAAO5e,EAAKjO,SAEjBiO,EAAK6sB,mBAGbiO,eAAgB,SAAUltC,GACtB,GAAIoS,GAAOhgB,KAAMyK,EAAMjN,EAAEoQ,EAAE1E,QAAQsF,QAAQ,MAAO6sC,GAAe5wC,EAAIF,SAASsR,GACzEmE,GAAK6Y,eAAepuB,KAGrB4wC,EACAr7B,EAAK4e,OAAOn0B,GAEZuV,EAAKwkB,mBAAmB/5B,KAGhCwe,QAAS,WACL,GAAI+E,GAAQhuB,KAAK4X,WAAWoW,OAC5B,OAAOA,GAAQA,EAAMtvB,OAAS,GAElC48C,MAAO,SAAUpxB,EAAa5kB,EAASi2C,EAAKC,GAArC,GACoHz3C,GAA8B03B,EAG9I91B,EAAQq1B,EAEXl1B,EALAka,EAAOhgB,KAAMq7B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBkgB,EAAYpgB,EAASogB,UAAgB/8C,EAAS4G,EAAQ5G,OAAkB2S,GACvJ+pB,WACAp4B,MAAO,GACMiN,EAAa+P,EAAKoP,cAAe3d,KAAgBpI,EAAS2W,EAAKiJ,UAAWjU,EAAcgL,EAAK/e,QAAQ+T,YACtH23B,EAAYjtC,GAAMoD,KAAK,SAEvB44C,EAAoB,EACxB,KAAKxxB,EAAa,CAmBd,IAlBAA,EAAc,MACVqxB,GACA9pC,EAAUtT,KAAK,SAEnBsT,EAAUtT,KAAK,gBACXsT,EAAU/S,SACVwrB,GAAe,WAAazY,EAAUpT,KAAK,KAAO,KAElDK,IACAwrB,GAAe,IAAMxqB,GAAMoD,KAAK,OAAS,OAASpD,GAAMi8C,KAAK,MAAOtgB,EAASogB,WAAa,MAE9FvxB,GAAe,eACX7gB,EAAS,IAAMmyC,IACftxB,GAAennB,EAAWsG,IAE1B4G,IACAia,GAAe,8FAAgG1T,GAAY,KAAOO,GAAS,6BAE1IhT,EAAM,EAAGA,EAAMrF,EAAQqF,IACxB4B,EAASL,EAAQvB,GACjB03B,EAAW91B,EAAO81B,SAClBT,QAAcS,GACd31B,EAAQH,EAAOG,MACXka,EAAK2X,cAAgBja,IAAU5X,IAC/BH,EAAOxC,WAAawC,EAAOxC,eACvB6c,EAAKqW,gBACL1wB,EAAOxC,WAAWwpC,GAAa7mC,GAEnC41C,EAAoB17B,EAAK47B,mBAAmB91C,EAAO21C,GACnD91C,EAAOxC,WAAW,SAAWwC,EAAOxC,WAAW,UAAY,GACvDwC,EAAOxC,WAAW,SAASkJ,QAAQqvC,GAAqB,IACxD/1C,EAAOxC,WAAW,UAAYu4C,IAGlC/1C,EAAOiJ,SAAWjJ,EAAOiJ,QAAU,GAAKmB,GAAepK,EAAOxC,YAC9DwC,EAAOxC,WAAa6D,GAAkBrB,EAAOxC,aACrCwC,EAAOiJ,SAAWjJ,EAAOC,SACjCD,EAAOxC,WAAa6C,GAAeL,EAAOxC,aAE1CwC,EAAOhB,UACPgB,EAAOxC,WAAawC,EAAOxC,eACe,IAA/BwC,EAAOxC,WAAW,SACzBwC,EAAOxC,WAAW,UAAY,kBAE9BwC,EAAOxC,WAAW,SAAW,kBAGrC+mB,GAAe,MAAQhnB,EAAoByC,EAAOxC,YAC9C6R,IACAkV,GAAe,sBAAyBvkB,EAAOO,iBAAiBG,GAAK,KAErEV,EAAOiJ,UACHjJ,EAAOiJ,QAAU,IACjBsb,GAAe,IAAMxqB,GAAMoD,KAAK,YAEpConB,GAAe,aAAgBvkB,EAAOiJ,QAAU,KAEpDsb,GAAe,oBACfA,GAAelK,EAAK0b,UAAU/1B,EAAQ0L,GACtC6Y,GAAe,OAEnBA,IAAe,QAGnB,MADAA,GAAcxqB,GAAM+7B,SAASvR,EAAamR,GACtChqB,EAAMrO,MAAQ,EACPoC,GAAM8kB,EAAa7Y,EAAM+pB,SAE7BlR,GAEX0xB,mBAAoB,SAAU91C,EAAO21C,GACjC,GAAII,EACJ,OAAI/1C,IAAS21C,GACTI,EAAiC,MAApB/1C,EAAMg2C,OAAO,GAAap8C,GAAMi8C,KAAK71C,EAAO21C,EAAY,gBAAkBA,EAAY,iBAAoB31C,EAAQ,KACxH,MAAQ21C,EAAY,OAASA,EAAY,aAAeA,EAAY,mBAAqBI,EAAa,6BAE1G,IAEXE,gBAAiB,SAAUp2C,GACvB,GAAIqa,GAAOhgB,KAAMq7B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBE,EAAW91B,EAAOq2C,eAAgBhhB,QAAcS,GAAU/9B,EAAOiI,EAAO+R,QAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWxL,EAAO+R,OAAS/R,EAAO+R,QAAU/R,EAAOG,OAAS,EAMjQ,OALIk1B,KAAS3d,GACT3f,EAAOgC,GAAM+7B,SAASA,EAAUJ,OACzBL,IAAS33B,KAChB3F,EAAO+9B,GAEJ/9B,GAEXg+B,UAAW,SAAU/1B,EAAQ0L,GACzB,GAAoLtN,GAAKrF,EAArLshB,EAAOhgB,KAAMq7B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBE,EAAW91B,EAAO81B,SAAUggB,EAAYpgB,EAASogB,UAAW31C,EAAQH,EAAOG,MAAOwJ,EAAO,GAAiBa,EAASxK,EAAOwK,OAAQ6qB,QAAcS,GAAUzqB,EAAerL,EAAO8zB,MACvQ,IAAI9zB,EAAOhB,QAAS,CAChB,GAAIE,GAAQc,EAAOhB,SAAU,CACzB,IAAKZ,EAAM,EAAGrF,EAASiH,EAAOhB,QAAQjG,OAAQqF,EAAMrF,EAAQqF,IAEpDuL,GADA3J,EAAOhB,QAAQZ,GAAK6C,QACZlH,GAAMyQ,OAAO,2BAAgCxK,EAAOhB,QAAQZ,GAAK6C,QAASoZ,EAAK+c,cAAcp3B,EAAOhB,QAAQZ,IAAMnG,QAAQ4gB,GAAoB,OAAO5gB,QAAQ,MAAO,QAEpKoiB,EAAK+c,cAAcp3B,EAAOhB,QAAQZ,IAAMnG,QAAQ4gB,GAAoB,MAGpF,OAAOlP,GAEX,MAAO0Q,GAAK+c,cAAcp3B,EAAOhB,SAAS/G,QAAQ4gB,GAAoB,OAE1E,MAAI7Y,GAAOuO,WACA4K,IAEXxP,GAAQ0Q,EAAKi8B,wBAAwBn2C,EAAO21C,GACxCzgB,IAAS3d,IACThM,EAAM+pB,QAAQ,OAAS/pB,EAAMrO,OAASy4B,EACtCnsB,GAAQ,cAAgB+B,EAAMrO,MAAQ,IAAMy4C,EAAY,KACxDpqC,EAAMrO,SACCg4B,IAAS33B,GAChBiM,GAAQmsB,EACDzqB,GAAgBA,EAAatS,QAAUoG,GAAckM,EAAa,KAAO,SAAWA,GAAa,IAAMlL,GAC9GwJ,GAAQ,WAAa5P,GAAMw8C,UAAUtrC,GAAgBI,IAAepT,QAAQ4gB,GAAoB,OAAS,IACzGlP,GAAQ,cACH+rB,EAAS8gB,eACV7sC,GAAQmsC,EAAY,KAExBnsC,GAAQxJ,EAAQ,KAChBwJ,GAAQ,0BAERA,GAAQ3J,EAAOJ,QAAU,KAAO,KAC5B4K,IACAb,GAAQ,iBAAmBa,EAAOvS,QAAQ2gB,GAAc,QAAU,MAElEzY,GACAA,EAAQpG,GAAMi8C,KAAK71C,EAAO21C,GAC1BnsC,GAAQxJ,EAAQ,aAAiBA,GAEjCwJ,GAAQ,KAERa,IACAb,GAAQ,KAEZA,GAAQ,KAELA,IAEX2sC,wBAAyB,SAAUn2C,EAAO21C,GACtC,GAAII,EACJ,OAAI/1C,IAAS21C,GACTI,EAAiC,MAApB/1C,EAAMg2C,OAAO,GAAap8C,GAAMi8C,KAAK71C,EAAO21C,EAAY,gBAAkBA,EAAY,iBAAoB31C,EAAQ,KACxH,MAAQ21C,EAAY,OAASA,EAAY,aAAeA,EAAY,mBAAqBI,EAAa,+CAE1G,IAEXO,aAAc,SAAU92C,GAAV,GAcN+2C,GAeK79C,EAQQk3B,EApCb1V,EAAOhgB,KACPs8C,EAAS9+C,EAAE8C,IAAIgF,EAAS,SAAUi3C,GAClC,MAAOA,GAAE32C,OAAS,EAAIsG,SAASqwC,EAAE19C,MAAO,MAExC0U,EAAsC7T,GAAM6T,WAA/ByM,EAAK0J,kBAAqC1J,EAAK3b,QAAQE,KAAK,+BAAmDyb,EAAK3b,SACjIkO,EAAaoG,GAAWqH,EAAK3b,SAC7Bm4C,EAAcxwC,EAAU1G,GACxBm3C,KACAC,EAAe,EACfC,EAAc,EACdzJ,EAAgB,EAChBnvC,EAAM,EACN64C,EAAuB,CAE3B,KAAK74C,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CAEvC,GADAs4C,EAAet4C,EAAMu4C,EAAO59C,OAAS,EAAI49C,EAAOv4C,EAAM,GAAK,IACvD64C,EAAuBN,EAAOv4C,GAAO,EAAIs4C,EAAe9oC,GAKrD,CACHmpC,EAAe,EAAIxJ,CACnB,OANIoJ,EAAOv4C,IACPmvC,IAEJ0J,GAAwBN,EAAOv4C,GAQvC,IAFAmvC,EAAgB,EAChB0J,EAAuB,EACdp+C,EAAI8G,EAAQ5G,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC1C,KAAIo+C,EAAuB,EAAIN,EAAO99C,GAAKg+C,EAAcjqC,EAAagB,GAK/D,CAEH,IADAopC,EAAc,EAAIzJ,EACTxd,EAAI3xB,EAAK2xB,GAAKl3B,EAAGk3B,IAClBpwB,EAAQowB,GAAGjwB,SAGfg3C,EAAat+C,KAAKmH,EAAQowB,IACtBpwB,EAAQowB,GAAG9mB,eACJtJ,GAAQowB,GAAG9mB,QAG1B6tC,GAAa,GAAG7tC,QAAU8tC,EAC1BD,EAAaA,EAAa/9C,OAAS,GAAGkQ,QAAU+tC,CAChD,OAjBIL,EAAO99C,IACP00C,IAEJ0J,GAAwBN,EAAO99C,GAqBvC,MAJIi+C,GAAa,GAAG72C,QAChB62C,EAAa,GAAG7tC,UAEpBoR,EAAK68B,YAAcJ,EACZA,GAEXp0B,WAAY,WACR,GAAIrI,GAAOhgB,KAAMiB,EAAU+e,EAAK/e,QAAS2W,EAAaoI,EAAKpI,WAAYvO,EAASuO,EAAWoW,QAASR,EAASxN,EAAKwN,QAAUxN,EAAKlK,QAAQvR,KAAK,kBAAmB0N,EAAa2F,EAAWqW,YAAa6uB,EAAczyC,GAAY2V,EAAK1a,SAAUy3C,EAAgB1yC,GAAY3B,EAAcsX,EAAK1a,UAAW0kC,EAAY/oC,EAAQuoB,WAAanf,GAAYzB,EAAiBoX,EAAK1a,UAAYw3C,EAAax3C,GAAW0a,EAAKqW,mBAAqB/wB,QAAU0a,EAAKo8B,aAAapS,GAAaA,EAAWgT,EAAyCl1C,GAAKD,EAAek1C,GAAgB,SAAUp3C,EAAQuF,GACrjB,MAAOvF,GAAO4wB,2BAAuC,IAAVrrB,IAC3C+xC,EAA4Cn1C,GAAKD,EAAevC,GAAU,SAAUK,GACpF,MAAOA,GAAO4wB,2BAEtB,IAAIt1B,EAAQuoB,YAAcuzB,EAAcr+C,OAAQ,CAC5C,GAAIuC,EAAQipB,aAAejpB,EAAQkpB,eAC/B,KAAUliB,OAAM,+DAEpB+X,GAAKkK,YAAclK,EAAKs7B,MAAMr6C,EAAQipB,YAAa5kB,GAAS,GAAO,GACnE0a,EAAKmK,eAAiBnK,EAAKs7B,MAAMr6C,EAAQkpB,gBAAkBlpB,EAAQipB,YAAa5kB,GAAS,GAAM,GAC/F0a,EAAKiN,kBAAoBjN,EAAKs7B,MAAMr6C,EAAQipB,YAAa6yB,GACzD/8B,EAAKkN,qBAAuBlN,EAAKs7B,MAAMr6C,EAAQkpB,gBAAkBlpB,EAAQipB,YAAa6yB,GAAe,OAErG/8B,GAAKkK,YAAclK,EAAKs7B,MAAMr6C,EAAQipB,YAAa5kB,GACnD0a,EAAKmK,eAAiBnK,EAAKs7B,MAAMr6C,EAAQkpB,gBAAkBlpB,EAAQipB,YAAa5kB,GAAS,EAEzF0a,GAAKoP,gBACLpP,EAAKwK,eAAiBxK,EAAKk9B,YAAYj8C,EAAQupB,gBAAkB,MAEjExK,EAAKgJ,SAAW/P,GAAchH,KAAgBgH,GAAchH,KAAgBub,EAAO9uB,QAAUoJ,GAAKg1C,EAAa,SAAUn3C,GACrH,MAAOA,GAAOwnB,iBACfzuB,UACHshB,EAAKmN,eAAiBnN,EAAKm9B,YAAYL,EAAa7qC,EAAY,iBAAkB,sBAElF5I,GAAUvB,GAAKg1C,EAAa,SAAUn3C,GAClC,MAAOA,GAAOynB,sBACf1uB,SACHuT,EAAazU,EAAE8C,IAAI+I,EAAQ,SAAU+zC,GACjC,MAAOA,GAAEnrC,aAEb+N,EAAKoN,oBAAsBpN,EAAKm9B,YAAY73C,EAAS2M,EAAY,sBAAuB,iBAAkB8qC,EAAcr+C,QACpHuC,EAAQuoB,YAAcuzB,EAAcr+C,SACpCshB,EAAKqN,0BAA4BrN,EAAKm9B,YAAYJ,EAAe9qC,EAAY,sBAAuB,oBAGxG5I,IAAW2zC,EAAuCt+C,QAAUu+C,EAA0Cv+C,SACtGuT,EAAazU,EAAE8C,IAAI+I,EAAQ,SAAU+zC,GACjC,MAAOA,GAAEnrC,aAEb+N,EAAKuW,0BAA4BvW,EAAKq9B,iBAAiBx1C,EAAevC,GAAU2M,EAAY,4BAA6B,iBAAkB8qC,EAAcr+C,OAAQu+C,GAC7Jh8C,EAAQuoB,YAAcuzB,EAAcr+C,SACpCshB,EAAKs9B,gCAAkCt9B,EAAKq9B,iBAAiBx1C,EAAek1C,GAAgB9qC,EAAY,4BAA6B,iBAAkB,EAAG+qC,MAG9Jh9B,EAAKuW,0BAA4B,KACjCvW,EAAKs9B,gCAAkC,MAEvCt9B,EAAK/e,QAAQmpB,YACbpK,EAAKsN,kBAAoBtN,EAAKu9B,mBAGtCA,eAAgB,WAAA,GAUR9hB,GAEAT,EACAQ,EAZA1lB,EAAU,6BACV0nC,EAAkB,sDAClBC,EAA+Bz9C,KAAKiB,QAAQuoB,aAAexpB,KAAK8V,QAAQ,GAAG7W,MAAMH,OAAS,0CAA4C,GACtIuS,GACA+pB,WACAp4B,MAAO,GAEPq4B,EAAW79B,EAAEqC,UAAWH,GAAM47B,SAAUt7B,KAAKiB,QAAQs6B,kBACrDkgB,EAAYpgB,EAASogB,UAErBnsC,EAAO,EAoBX,OAhBImsB,GADAz7B,KAAKiB,QAAQmpB,UAAUqR,SACZz7B,KAAKiB,QAAQmpB,UAAUqR,SAEvB/7B,GAAMyQ,OAAOqtC,EAAiBx9C,KAAKiB,QAAQ2pB,SAASR,UAAWqzB,GAE9EziB,QAAcS,GACD,aAATT,GACA3pB,EAAM+pB,QAAQ,OAAS/pB,EAAMrO,OAASy4B,EACtCnsB,GAAQ,cAAgB+B,EAAMrO,MAAQ,IAAMy4C,EAAY,KACxDpqC,EAAMrO,SACU,WAATg4B,IACP1rB,GAAQmsB,GAEZD,EAAO97B,GAAM+7B,SAAS/7B,GAAMyQ,OAAO2F,EAASiG,GAAgBzM,GAAO+rB,GAC/DhqB,EAAMrO,MAAQ,IACdw4B,EAAOh+B,EAAE4H,MAAMo2B,EAAMnqB,EAAM+pB,UAExBI,GAEX2hB,YAAa,SAAU73C,EAAS2M,EAAYyrC,EAAcC,EAAUnC,GAChE,GAAkIz3C,GAAKrF,EAAQ+8B,EAAUT,EAA8Hr1B,EAAnRqa,EAAOhgB,KAAMq7B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBkgB,EAAYpgB,EAASogB,UAAWnsC,EAAO,GAAiC8rB,KAAcp4B,EAAQ,EAAG46C,KAAYv0C,EAAS2W,EAAKiJ,UAAW40B,EAAY79B,EAAKpI,WAAWkmC,iBAAiB7rC,EAQ1Q,KAPA3C,GAAQ,cAAgBquC,EAAW,KAC/Bt0C,EAAS,IAAMmyC,IACflsC,GAAQvM,EAAWsG,IAEnB2W,EAAKoP,gBACL9f,GAAQ,4CAEPvL,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD4B,EAASL,EAAQvB,GACjB03B,EAAW91B,EAAO+3C,GAClB1iB,QAAcS,GACdnsB,GAAQ,MAAQpM,EAAoByC,EAAOM,kBAAoB,IAC3Dw1B,GACIT,IAAS3d,KACTugC,EAAQC,EAAUl4C,EAAOG,OAASjG,MAAWw7B,GAAYogB,UAAWA,EAAY,KAAQ91C,EAAOG,MAAQ,UACvG21B,EAAW/7B,GAAM+7B,SAASA,EAAUmiB,IAExCxiB,EAAQ,OAASp4B,GAASy4B,EAC1BnsB,GAAQ,cAAgBtM,EAAQ,IAAMy4C,EAAY,KAClDz4C,KAEAsM,GAAQ,SAEZA,GAAQ,OAIZ,OAFAA,IAAQ,QACRA,EAAO5P,GAAM+7B,SAASnsB,EAAM+rB,GACxBr4B,EAAQ,EACDoC,GAAMkK,EAAM8rB,GAEhB9rB,GAEX+tC,iBAAkB,SAAU/3C,EAAS2M,EAAYyrC,EAAcC,EAAUnC,EAAgBllB,GACrF,GAAkIvyB,GAAKrF,EAAQ+8B,EAAUT,EAAqGr1B,EAAoIukC,EAA9XlqB,EAAOhgB,KAAMq7B,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBkgB,EAAYpgB,EAASogB,UAAWnsC,EAAO,GAAiC8rB,KAAcp4B,EAAQ,EAAG46C,KAAYC,EAAY79B,EAAKpI,WAAWkmC,iBAAiB7rC,GAAqBsE,EAAsB+f,EAAiC53B,OAASgN,GAAQ4qB,EAAiC,GAAIhxB,KAQnX,IAPAgK,GAAQ,yBAA2BquC,EAAW,KACzCnC,IACDlsC,GAAQ,4FAER0Q,EAAKoP,gBACL9f,GAAQ,4CAERiH,EAAsB,EAEtB,MADAjH,IAASksC,EAAoD,GAAnCllC,GAAiBhR,EAAQ5G,QACnD,CAEJ,IAAI6X,EAAsBsH,IAAmByY,EAAiC53B,QAAU,IAAM88C,EAE1F,MADAlsC,IAASksC,EAAoD,GAAnCllC,GAAiBhR,EAAQ5G,QAC5CgB,GAAM+7B,SAASnsB,EAAM+rB,EAQhC,KANI9kB,EAAsBsH,IACtBtH,EAAuBilC,EAAqB,EAAJ,EACxClsC,GAASksC,EAAyD,GAAxCllC,GAAiBC,IAE3CjH,GAASksC,EAAyD9kC,GAA8BH,GAAtED,GAAiBC,GAE1CxS,EAAMwS,EAAqB7X,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACnE4B,EAASL,EAAQvB,GACjB03B,EAAW91B,EAAO+3C,GAClB1iB,QAAcS,GACV91B,EAAO0H,QACP68B,EAAiCvkC,EAAOukC,gCAAkC,GACrEA,IACDA,EAAiCvkC,EAAOukC,+BAAiC,gCAAkCxqC,GAAMyG,QAErHmJ,GAAQ,cAAiBgN,GAAoB,IAAM4tB,EAAiC,aAAiBvkC,EAAO+iC,aAAe,IAAM,MAEjIp5B,GAAQ,OAERmsB,GACIT,IAAS3d,KACTugC,EAAQC,EAAUl4C,EAAOG,OAASjG,MAAWw7B,GAAYogB,UAAWA,EAAY,KAAQ91C,EAAOG,MAAQ,UACvG21B,EAAW/7B,GAAM+7B,SAASA,EAAUmiB,IAExCxiB,EAAQ,OAASp4B,GAASy4B,EAC1BnsB,GAAQ,cAAgBtM,EAAQ,IAAMy4C,EAAY,KAClDz4C,KAEAsM,GAAQ,SAEZA,GAAQ,OAIZ,OAFAA,IAAQ,QACRA,EAAO5P,GAAM+7B,SAASnsB,EAAM+rB,GACxBr4B,EAAQ,EACDoC,GAAMkK,EAAM8rB,GAEhB9rB,GAEX4tC,YAAa,SAAUzhB,GACnB,GAAIzb,GAAOhgB,KAAMsP,EAAO,GAAI+rB,EAAWx7B,MAAWH,GAAM47B,SAAUtb,EAAK/e,QAAQs6B,kBAAmBkgB,EAAYpgB,EAASogB,UAAWsC,KAA8BC,EAAwB,EAAG30C,EAAS2W,EAAKiJ,UAAWrS,EAAU/O,EAAewC,GAAY2V,EAAK1a,UAAU5G,OAAQs8B,QAAcS,EAe9R,OAdAnsB,IAAQ,4BACJjG,EAAS,IACTiG,GAAQvM,EAAWsG,IAEvBiG,GAAQ,+DAAiEsH,EAAU,aAAeA,EAAU,IAAM,IAAM,IACpHokB,IAAS3d,IACT0gC,EAAwB,OAASC,GAAyBviB,EAC1DnsB,GAAQ,cAAgB0uC,EAAwB,IAAMvC,EAAY,KAClEuC,KAEA1uC,GAAQmsB,EAEZnsB,GAAQ,aACRA,EAAO5P,GAAM+7B,SAASnsB,EAAM+rB,GACxB2iB,EAAwB,EACjB54C,GAAMkK,EAAMyuC,GAEhBzuC,GAEX8f,YAAa,WACT,GAAIpP,GAAOhgB,IACX,OAAuC,QAAhCggB,EAAK/e,QAAQupB,iBAA4BxK,EAAKoH,QAAQ7M,SAAmB7b,QAEpFq2B,cAAe,WAAA,GACPnL,GAAa5pB,KAAKiB,QAAQ2oB,WAC1Bq0B,EAAer0B,SAAqBA,GAAWkO,MAAQz0B,IAAUumB,EAAWkO,KAAKzrB,QAAQ,WACzF/G,EAAUtF,KAAKsF,QACf44C,EAA0B1gD,EAAEsK,KAAKxC,EAAS,SAAUmS,GACpD,MAAOA,GAAImS,cAAe,GAK9B,OAHItkB,GAAQ5G,QAAUw/C,EAAwBx/C,QAAU4G,EAAQ5G,SAC5Du/C,GAAe,GAEZA,GAEXx1B,SAAU,WACN,GAAIzI,GAAOhgB,IACX,IAAIggB,EAAK/e,QAAQuoB,YAAcxJ,EAAKoP,eAAiB1mB,EAAcsX,EAAK1a,SAAS5G,OAC7E,KAAUuJ,OAAM,kEAEpB+X,GAAK3Q,MAAMpK,GAAGC,GAAQC,GAAI,iEAAkE,SAAUyI,GAClG,GAAIwiB,GAAS5yB,EAAEwC,KAGf,OAFAggB,GAAKm+B,eAAe/tB,GACpBxiB,EAAE8F,kBACK,KAGfyqC,eAAgB,SAAU/tB,EAAQguB,GAC9B,GAAyJC,GAAiDxsC,EAAtMmO,EAAOhgB,KAAMsI,EAAO8nB,EAAO5hB,QAAQ,uBAAwB8vC,EAAYluB,EAAO7lB,SAAS,cAAeg0C,EAAYnuB,EAAO5hB,QAAQ,mBAA+Bgc,EAAiBxK,EAAKwK,eAAsBva,EAAa+P,EAAKoP,cAAeovB,EAAgBF,EAAY7nC,GAAWM,GAAQ0nC,IAAiBH,CACjTluB,GAAOsuB,YAAY,cAAeJ,GAAWI,YAAY,eAAgBJ,GAAWx7C,KAAK0T,GAAWgoC,GACpGl2C,EAAKxF,KAAK,gBAAiB27C,GAC3BJ,EAAYE,EAAUrvC,OAClBe,IAAeouC,EAAU9zC,SAAS,kBAClCsH,EAAOmO,EAAKmb,SAASojB,GACrBF,EAAY7gD,EAAEgtB,EAAe3Y,IAAOsX,SAASo1B,EAAUh0C,SAAS,SAAW,QAAU,IAAIZ,YAAY40C,GACrGv+B,EAAKgP,QAAQ,UAAW,WACpB,OACI7qB,SAAUk6C,EAAUz9C,MACpBiR,OAASspB,SAAUtpB,OAG3BmO,EAAK6D,QAAQtJ,IACTgkC,UAAWA,EACXF,UAAWA,EACXxsC,KAAMA,EACN8sC,WAAYN,EAAU95C,KAAK,qBAGnCyb,EAAK6D,QAAQy6B,EAAYpjC,GAAeC,IACpCojC,UAAWA,EACXF,UAAWA,IAEXD,EACAnnC,GAAUonC,EAAWC,GAErBD,EAAUO,OAAON,IAGzBnjB,SAAU,SAAUvM,GAEhB,GADAA,EAAKpxB,EAAEoxB,GAAI,IACNA,EACD,MAAO,KAEX,IAAyH8G,GAAGmpB,EAAxHt1C,EAAOvJ,KAAKoP,MAAM1F,WAAYo1C,EAAe,6CAA8C/6C,EAAM6qB,EAAGmwB,eAExG,KADAF,EAAa96C,EACR2xB,EAAI,EAAGA,EAAI3xB,EAAK2xB,IACbopB,EAAattC,KAAKjI,EAAKmsB,GAAGjkB,YAC1BotC,GAGR,OAAO7+C,MAAK+tB,MAAM8wB,IAEtBrN,UAAW,SAAU5iB,EAAIwvB,GACrB,GAAIhuB,GAAS5yB,EAAEoxB,GAAIrqB,KAAK,mBACpB6rB,GAAO1xB,QACPsB,KAAKm+C,eAAe/tB,EAAQguB,IAGpCjN,YAAa,SAAUviB,EAAIwvB,GACvB,GAAIhuB,GAAS5yB,EAAEoxB,GAAIrqB,KAAK,qBACpB6rB,GAAO1xB,QACPsB,KAAKm+C,eAAe/tB,EAAQguB,IAGpCY,mBAAoB,SAAU15C,EAASuD,GAAnB,GACC9E,GAAK2M,EAAIhT,EAAiBgB,EAAQgZ,EAA8G5R,EAMzJoF,EANJ8U,EAAOhgB,KAAqBsP,EAAO,GAAmBsb,EAAW5K,EAAK/e,QAAQ2pB,SAAUzhB,EAAQkB,GAAY2V,EAAK1a,SAAU+D,EAAS2W,EAAKpI,WAAWoW,OACxJ,KAAKjqB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD2M,EAAKpL,EAAQvB,GAAK4B,QAAUL,EAAQvB,GACpCrG,EAAOsiB,EAAK+7B,gBAAgBrrC,GAC5BgH,EAAQhH,EAAGgH,MACX5R,EAAQ,GACJoF,EAAQQ,GAAQgF,EAAIvH,GACpBuH,EAAGwD,YACH5E,GAAQ,kBAAsBpM,EAAoBwN,EAAGxK,kBACjD2C,IAAYvD,EAAQvB,GAAK6K,UACzBU,GAAQ,aAAgBzG,EAAU,KAElCqC,OACAoE,GAAQ5P,GAAMoD,KAAK,SAAW,KAAQoI,EAAQ,KAElDxN,EAAOgT,EAAGsrC,eAAiBt+C,EAAOgC,GAAM+7B,SAAS1c,QACjDzP,GAAQ,IAAM5R,EAAO,SACdgT,EAAG/L,SACV2K,GAAQ,kBAAsBpM,EAAoBwN,EAAGxK,kBACjD2C,IAAYvD,EAAQvB,GAAK6K,UACzBU,GAAQ,aAAgBzG,EAAU,KAElCqC,OACAoE,GAAQ5P,GAAMoD,KAAK,SAAW,KAAQoI,EAAQ,KAElDoE,GAAQ,IAAM5R,EAAO,UAEjBgT,EAAG5K,QACHA,EAAQpG,GAAMoD,KAAK,SAAW,KAAQ4N,EAAG5K,MAAQ,MAErDwJ,GAAQ,uCAA6CxJ,EACrDwJ,GAAQ,wBACJzG,IAAYvD,EAAQvB,GAAK6K,UACzBU,GAAQ,aAAgBzG,EAAU,KAElCvD,EAAQvB,GAAK6K,QAAU,GACvBU,GAAQ,aAAehK,EAAQvB,GAAK6K,QAAU9C,EAAuB4E,EAAGpL,UAAY,KACpFgK,GAAQ5P,GAAMoD,KAAK,WAAa,KAAQwC,EAAQvB,GAAK6K,QAAU,KAC/B,IAAzBtJ,EAAQvB,GAAK6K,UACpBU,GAAQ5P,GAAMoD,KAAK,WAAa,KAAQwC,EAAQvB,GAAK6K,QAAU,KAE/D8I,IACAA,EAAQA,IAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWuG,GAAO,GAAQA,GACxEpI,GAAQ5P,GAAMoD,KAAK,SAAW,KAAO4U,EAAQ,MAE7ChH,EAAGoD,YAAcpR,IACjB4M,GAAQ5P,GAAMoD,KAAK,aAAe,KAAQ4N,EAAGoD,UAAY,MAEzDF,GAAkBoM,EAAMtP,KACxBpB,GAAQ,gBAAmBoI,GAAShH,EAAG5K,OAAS,IAChDwJ,GAAQyE,GAAY1K,EAAQqH,EAAG5K,OAAS8kB,EAASM,cAAgBN,EAASK,YAC1E3b,GAAQ,MAERoB,EAAGuB,YAAcvB,EAAGuB,WAAWvT,SAC/B4Q,GAAQ5P,GAAMoD,KAAK,cAAgB,KAAQ4N,EAAGuB,WAAa,KAE3D/G,OACAoE,GAAQ5P,GAAMoD,KAAK,SAAW,KAAQoI,EAAQ,KAElDoE,GAAQpM,EAAoBwN,EAAGxK,kBAC/BoJ,GAAQ,IAAM5R,EAAO,QAG7B,OAAO4R,IAEX2vC,2BAA4B,WACxB,GAA4Bl7C,GAA6ErF,EAA+C+F,EAAWmK,EAASswC,EAAxK55C,EAAUtF,KAAKsF,QAAc4K,EAAWlQ,KAAKqP,MAAM9K,KAAK,YAAa0H,EAAOiE,EAAS3L,KAAKoV,IAAmBssB,EAAazoC,IAAK2hD,EAAkB,EAAgCC,EAAY,CACjM,KAAKr7C,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD,GAAIuB,EAAQvB,GAAK0B,OACb,GAAIM,EAAUT,EAAQvB,IAAO,CAMzB,IALA6K,EAAU,EACNtJ,EAAQvB,GAAKuB,UACbsJ,EAAUvE,GAAY/E,EAAQvB,GAAKuB,SAAS5G,OAASoN,EAAuBxG,EAAQvB,GAAKuB,UAE7FsJ,EAAUA,GAAW,EAChBswC,EAAU,EAAGA,EAAUtwC,EAASswC,IACjCjZ,EAAaA,EAAWziC,IAAIyI,EAAKhI,GAAGF,EAAMq7C,EAAYF,EAAUC,GAEpEC,IAAaxwC,EAAU,MAEvBuwC,IAIZ16C,GAAYjH,EAAE,gGACd0S,EAASmvC,SACT56C,EAAUF,KAAK,YAAY8L,OAAO41B,GAClC/1B,EAASS,aAAa3Q,KAAKqP,MAAM9K,KAAK,UACtCvE,KAAKoE,cAAgBK,EAAUkM,aAAa3Q,KAAKqE,SACjDrE,KAAKwU,YAAc/P,EAAUiF,SAAS,UAE1CmuC,0BAA2B,WAAA,GAMnB9zC,GAAKrF,EALLshB,EAAOhgB,KACPwtB,EAASxN,EAAKwN,OACdpjB,EAAQojB,EAAOjpB,KAAK,yBACpB0H,EAAOuhB,EAAOjpB,KAAK,0CACnB+K,EAAO9R,EAAE,kIAET6L,EAAS2W,EAAKiJ,UACdq2B,EAAc9hD,IAAKyoC,EAAazoC,GAEpC,KADA8hD,EAAcA,EAAY97C,IAAI4G,EAAM9F,OAAO,kBACtCP,EAAM,EAAGrF,EAAS2L,GAAY3B,EAAcsX,EAAK1a,UAAU5G,OAAQqF,EAAMrF,EAAQqF,IAClFu7C,EAAcA,EAAY97C,IAAI4G,EAAMnG,GAAGF,EAAMsF,GAGjD,KADA48B,EAAaA,EAAWziC,IAAIyI,EAAK3H,OAAO,iBACnCP,EAAM,EAAGrF,EAASmJ,EAAewC,GAAYmD,GAAqBwS,EAAK1a,WAAW5G,OAAQqF,EAAMrF,EAAQqF,IACzGkiC,EAAaA,EAAWziC,IAAIyI,EAAKhI,GAAGF,EAAMsF,GAE9Ci2C,GAAYp7C,SAASoL,EAAK/K,KAAK,OAC/B0hC,EAAW/hC,SAASoL,EAAK/K,KAAK,aAC9Byb,EAAKyN,aAAene,EAAKmxB,UAAUjT,IAEvC+xB,0BAA2B,SAAU96C,GAAV,GACkBV,GAAKuL,EAAM5Q,EAAkBkwB,EAAI4wB,EAAUnwC,EAA0J/G,EAU9NsG,EAKKswC,EAOJxpB,EAwBT1yB,EA9CJgd,EAAOhgB,KAAMsF,EAAUtF,KAAKsF,QAAoFiE,KAAW41C,EAAkB,EAAGlzC,EAAOzO,IAAKiiD,EAAez/B,EAAK+U,gBAAiB2qB,EAAmB,EAAGnX,EAAc/qC,IAAWmiD,EAAmB,EAAGv1C,EAAQ5M,IAAtN0S,EACjD8P,EAAKhW,MAAM8qB,OAAOvwB,KAAKoV,IADyD4X,EAElFvR,EAAKhW,MAAMzF,KAAK,2DAF0Eq7C,EAGjF5/B,EAAKhW,MAAMzF,KAAK,iBAAiBA,KAAK,2CACpD66C,EAAY,CAChB,KAAKr7C,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IAAO,CACxD,GAAIuB,EAAQvB,GAAK0B,OAAQ,CAGrB,GAFA6C,EAAOipB,EAAOttB,GAAGF,GACjB47C,EAAmBt1C,GAAY/E,EAAQvB,GAAKuB,aAAe5G,OACvDqH,EAAUT,EAAQvB,IAAO,CAMzB,IALI6K,EAAU,KACVtJ,EAAQvB,GAAKuB,UACbsJ,EAAU+wC,EAAmB7zC,EAAuBxG,EAAQvB,GAAKuB,UAErEsJ,EAAUA,GAAW,EACZswC,EAAU,EAAGA,EAAUtwC,EAASswC,IACrCjzC,EAAOA,EAAKzI,IAAI0M,EAASjM,GAAGF,EAAMq7C,EAAYF,EAAUC,GAE5DC,IAAaxwC,EAAU,EAI3B,IAFAlC,GAAqBpH,EAAQvB,IAAOgL,GAAkBzG,GAAOiB,EAAM,EAAG,GACtEo2C,EAAmBA,GAAoB,EAC9BjqB,EAAI,EAAGA,EAAIiqB,EAAkBjqB,IAClC6S,EAAcA,EAAY/kC,IAAIo8C,EAAgB37C,GAAGy7C,EAAmBhqB,GAExEgqB,IAAoBC,EAEpBr6C,EAAQvB,GAAKuB,UACb65C,GAAmBrzC,EAAuBxG,EAAQvB,GAAKuB,UAEtDS,EAAUT,EAAQvB,KACnBo7C,IAGR,GAAI51C,EAAK7K,OAAQ,CAQb,IAPA4Q,EAAO,0FACPA,GAAYrM,MAAMsG,EAAK7K,OAAS,GAAGL,KAAK,aACxCiR,IAASmwC,EAAe,iCAAmC,IAAM,yBACjEpwC,EAAQ7R,EAAE8R,GACVY,EAAWb,EAAM9K,KAAK,YACtB2L,EAASG,OAAO2P,EAAKhW,MAAM8qB,OAAOvwB,KAAK,mBAAmBf,IAAIyI,IAC9D2iB,EAAKvf,EAAM9K,KAAK,+BACXR,EAAM,EAAGrF,EAAS6K,EAAK7K,OAAQqF,EAAMrF,EAAQqF,IAC9CqG,EAAQjC,EAASoB,EAAKxF,IACtB6qB,EAAG3qB,GAAGF,GAAKsM,OAAO2P,EAAKhW,MAAMzF,KAAK,SAAWR,EAAM,mBAAmBP,IAAI4G,GAU9E,OARIpH,GAAQuJ,EAAgBvM,KAAKgK,OAC7BT,EAAK7K,OAASsE,GACdsJ,EAAmB+C,EAAOrM,EAAQuG,EAAK7K,QAE3C8gD,EAAWnwC,EAAM9K,KAAK,iBACtBi7C,EAASnvC,OAAO2P,EAAKhW,MAAMzF,KAAK,+BAA+Bf,IAAI+kC,IACnEvoC,KAAK0U,aAAerF,EAAMoxB,UAAUh8B,GACpCzE,KAAKgK,MAAMzF,KAAK,iBAAiBkI,UAC1B,EAEX,OAAO,GAEXkgB,wBAAyB,WACrB,GAAIxoB,GAAWnE,KAAK0U,aAAalR,IAAIxD,KAAKoE,eAAeZ,IAAIxD,KAAKytB,aAClE/tB,IAAMshB,QAAQ7c,GACdA,EAAS+c,IAAI/b,IAAIsH,SACjBzM,KAAK0U,aAAe1U,KAAKoE,cAAgBpE,KAAKytB,aAAe,KAC7DztB,KAAKkU,WAAa,MAEtB8T,OAAQ,WAAA,GAC6HjkB,GAA6K6qB,EAiBlSrlB,EAkBAoI,EACArJ,EAQJu3C,EAKAC,EA0CJC,EACAC,EA5FAhgC,EAAOhgB,KAAMsF,EAAU0a,EAAK1a,QAAS2K,EAAa+P,EAAKoP,eAAiB9pB,EAAQ5G,OAAQ+gD,EAAez/B,EAAK+U,gBAAsBzlB,EAAO,GAAItF,EAAQgW,EAAK3Q,MAAM9K,KAAK,UAAW07C,EAAWjgC,EAAKpY,QAAQrD,KAAK,eAAe7F,OAAS,EAAGwhD,EAAgBlgC,EAAK/e,QAAQ2pB,SAASI,0BAclR,IAbKhhB,EAAMtL,SACPsL,EAAQxM,EAAE,YAAYmT,aAAaqP,EAAK5Q,QAExC4Q,EAAKtL,cAAgBsL,EAAKhW,OAC1B4kB,EAAK5O,EAAKhW,MAAMzF,KAAK,iCAAiC+K,KAAK,IAC3Dsf,EAAGniB,SACHmiB,EAAKpxB,IACLwiB,EAAK2M,2BAELiC,EAAK5O,EAAKpY,QAAQrD,KADX07C,EACgB,4CAEA,oBAEtBrxB,EAAGlwB,OAmBD,CACH,IAAKqF,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAC5B4N,EAAcjG,GAAQpG,EAAQvB,GAAMsG,GAAY/E,IAChDgD,EAAOwF,GAAc8gB,EAAGrjB,UAAUjH,OAAO,gDAAgDL,GAAG0N,GAC5FrM,EAAQvB,GAAK6B,QAAU+L,GAAe,IACtCrJ,EAAK,GAAGrJ,MAAMyI,QAAU,OAGhCsY,GAAKmgC,mBAAmBzyC,GAAapI,QAzBrC,IADAspB,EAAK5kB,EAAMN,WAAW+X,SACjBmN,EAAGlwB,OAAQ,CAOZ,IANI6K,IACIV,QAAS,EACTuB,SACAc,MAAO,IAEf8U,EAAKogC,gBAAgB72C,EAAMjE,GACtBvB,EAAM,EAAGA,EAAMwF,EAAK7K,OAAQqF,IAC7BuL,GAAQ,OACJW,IACAX,GAAQ,4CAA8C4wC,EAAgB,SAE1E5wC,GAAQ0Q,EAAKg/B,mBAAmBz1C,EAAKxF,GAAKqG,MAAOb,EAAKxF,GAAK8E,SAC3DyG,GAAQ,OAEZsf,GAAKpxB,EAAE8R,GAYXmwC,IACII,EAAYriD,EAAE,SAClBqiD,EAAU12B,SAAS,iBACflZ,GAAc2e,EAAGrqB,KAAK,qBAAqB7F,SAC3CmhD,EAAUvvC,QAAQ,wDAElBwvC,GAAqB9/B,EAAKhW,OAASA,GAAOzF,KAAK,iBAC/Cu7C,EAAkBphD,SAClBgB,GAAMshB,QAAQ8+B,GACdA,EAAkBrzC,UAEtBzC,EAAMqG,OAAOwvC,IAEZjxB,EAAGllB,WAAWhL,OAORuR,IAAe2e,EAAGrqB,KAAK,qBAAqB,IACnDqqB,EAAGte,QAAQ,6CAA+C4vC,EAAgBA,EAAgB,UAAY,UAPtG5wC,EAAO,GACHW,IACAX,GAAQ,wDAEZA,GAAQ0Q,EAAKg/B,mBAAmB15C,GAChCspB,EAAGtf,KAAKA,IAIZsf,EAAG9rB,KAAK,OAAQ,OAAOyB,KAAK,MAAM4kB,SAAS,YACtCnJ,EAAK/e,QAAQuoB,YACdxf,EAAMmf,SAAS,iBAEnByF,EAAGrqB,KAAK,UAAUkI,SAASwrB,MAAMwI,UAAUz2B,GACvCgW,EAAKhW,OACLgW,EAAKoL,4BAETprB,KAAKgvB,QAAQ,UAAW,WACpB,OAAS7qB,SAAU6F,EAAMzF,KAAK,KAAOkV,IAAS7Y,SAElDZ,KAAKgvB,QAAQ,UAAW,WACpB,OACI7qB,SAAU6F,EAAMzF,KAAKwV,IAAanZ,MAClCiR,KAAMvR,GAAIgF,EAAS,SAAUmS,GACzB,OAAS9R,OAAQ8R,QAI7BuI,EAAKhW,MAAQA,EAAMlH,KAAK,OAAQ,YAChCkd,EAAKy6B,YACLz6B,EAAKq5B,cACLr5B,EAAK25B,aACL35B,EAAKk0B,cACLl0B,EAAKg4B,cAEDgI,EAAmBhgD,KAAKiB,QAAQuoB,YAAc9gB,EAAc1I,KAAKsF,SAAS5G,OAC1EshD,IACAD,EAAa//B,EAAKu/B,0BAA0Bv/B,EAAKhW,MAAMwE,QAAQ,mBAC/DwR,EAAKi/B,6BACLj/B,EAAK5b,cAAcsc,KAAK,iBAAmBvb,GAAK,cAAgBA,GAAIC,GAAM4a,EAAK0B,aAAc1B,IACzFtgB,GAAM2V,QAAQC,QACd0K,EAAKsM,yBAA2B,GAAI5sB,IAAMmiB,WAAW7B,EAAK5b,eACtD+d,KAAM,SAAUvU,GACZoS,EAAK3b,QAAQ+d,UAAUpC,EAAK3b,QAAQ+d,aAAexU,EAAEyU,EAAEC,OACvD1U,EAAE8F,qBAIdsM,EAAKwW,qBAETxW,EAAKyW,cACLzW,EAAK0W,yBACL1W,EAAK8W,0BACL9W,EAAKiS,aACLjS,EAAK6S,aACL7S,EAAKmT,eACLnT,EAAKi6B,cAAcj6B,EAAKiJ,WACxBjJ,EAAKgS,uBACDguB,IACID,GACA//B,EAAK+R,0BAET/R,EAAK6R,+BAEL7R,EAAKlM,WACLkM,EAAK6hB,oBAGbwe,qBAAsB,SAAU/6C,EAASiE,GAAnB,GAGV5D,GAFJvC,EAAS5F,GACb,IAAI+L,EAAK7K,QAAU4G,EAAQ,GAAI,CAE3B,IADIK,EAASL,EAAQ,GACdK,EAAOL,SAAWK,EAAOL,QAAQ5G,QACpCiH,EAASA,EAAOL,QAAQ,GACxBiE,EAAOA,EAAKjF,OAAO,iBAEvBlB,GAASA,EAAOI,IAAI+F,GAExB,MAAOnG,IAEX0zB,wBAAyB,WAAA,GAGblI,GAEArlB,EAJJyW,EAAOhgB,KAAMsF,EAAU0a,EAAK1a,YAAe2K,EAAa+P,EAAKoP,eAAiB9pB,EAAQ5G,MACrFuR,IAAe+P,EAAKiJ,YACjB2F,EAAK5O,EAAKhW,MAAMzF,KAAK,sCACzBe,EAAUsD,EAAiBtD,GACvBiE,EAAOyW,EAAKqgC,qBAAqB/6C,EAASspB,GAC1C5O,EAAK4hB,cACLhT,EAAK5O,EAAKtL,aAAanQ,KAAK,2CAC5Be,EAAUoD,EAAcsX,EAAK1a,SAC7BiE,EAAOA,EAAK/F,IAAIwc,EAAKqgC,qBAAqB/6C,EAASspB,KAEvDrlB,EAAK0lB,KAAK,WACN,GAAInkB,GAAMtN,EAAEwC,MAAMuE,KAAK,KACvBuG,GAAI0jB,YAAY,WAChB1jB,EAAI7G,GAAG,GAAGklB,SAAS,eAI/Bi3B,gBAAiB,SAAU72C,EAAMjE,EAASiJ,EAAY+xC,GAArC,GAIJv8C,GACDuE,EAJJmC,EAAM61C,GAAa/2C,EAAKA,EAAK7K,OAAS,GACtC6hD,EAAWh3C,EAAKkB,EAAIS,MAAQ,GAC5Bs1C,EAAe,CACnB,KAASz8C,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuE,GACA3C,OAAQL,EAAQvB,GAChB6K,QAAS,GAEbnE,EAAIL,MAAMjM,KAAKmK,GACXhD,EAAQvB,GAAKuB,SAAWA,EAAQvB,GAAKuB,QAAQ5G,SACxC6hD,IACDA,GACI13C,QAAS,EACTuB,SACAc,MAAO3B,EAAK7K,QAEhB6K,EAAKpL,KAAKoiD,IAEdj4C,EAAKsG,QAAUtJ,EAAQvB,GAAKuB,QAAQ5G,OACpCsB,KAAKogD,gBAAgB72C,EAAMjE,EAAQvB,GAAKuB,QAASgD,EAAMi4C,GACvDC,GAAgBl4C,EAAKsG,QAAU,EAC/BnE,EAAI5B,QAAUU,EAAK7K,OAAS+L,EAAIS,MAGpCqD,KACAA,EAAWK,SAAW4xC,IAG9B9+B,aAAc,SAAU9T,GAAV,GAINvJ,GAIA+d,EAAiCE,CAPjC1U,GAAE8U,UAGFre,EAAUrE,KAAKqE,QACfrE,KAAKq2B,eAAiBr2B,KAAKq2B,cAAc9sB,OACzClF,EAAUrE,KAAK0pB,kBAAkBzI,mBAEjCmB,EAAY/d,EAAQ+d,YAAaE,EAAQ5iB,GAAMijB,YAAY/U,GAC3D0U,IACIje,EAAQ,GAAGwe,aAAexe,EAAQ,GAAGue,eAAiBve,EAAQ,GAAG+d,UAAY/d,EAAQ,GAAGwe,aAAexe,EAAQ,GAAGue,cAAgBN,EAAQ,GAAKje,EAAQ,GAAG+d,UAAY,GAAKE,EAAQ,IACnL1U,EAAE8F,iBAENrP,EAAQ+d,UAAUA,GAAaE,MAGvCsf,UAAW,WACP,MAA4B,OAArB5hC,KAAK0U,cAEhB+rC,kBAAmB,WACf,GAAIpxC,GAAQrP,KAAKgK,MAAMuB,SAAS/H,IAAIxD,KAAKqP,MACrCrP,MAAK4hC,YACL5xB,GAAcX,EAAO5B,GAAmBF,EAAwBvN,KAAKsF,UAAWtF,KAAKovB,cAAe,GAEpGpf,GAAcX,EAAO5B,GAAmB5F,EAAe7H,KAAKsF,UAAWtF,KAAKovB,cAAe,IAGnGuH,qBAAsB,WAAA,GAIdhxB,GACA2C,EACAoyC,EAIK32C,EAASrF,EATdshB,EAAOhgB,KACPoK,EAAQ0D,GAAckS,EAAKhW,OAC3B1E,EAAU+E,GAAY2V,EAAK1a,QAI/B,IAAK0a,EAAK/e,QAAQ4oB,SAGlB,IAAS9lB,EAAM,EAAGrF,EAAS0L,EAAM1L,OAAQqF,EAAMrF,EAAQqF,IACnD4B,EAASL,EAAQvB,GACb4B,EAAOkkB,YAAa,IAAUlkB,EAAOhB,SAAWgB,EAAOG,QACvDwC,EAAO8B,EAAMnG,GAAGF,GAChB22C,EAAiBpyC,EAAKuJ,KAAK,qBACvB6oC,GACAA,EAAep6B,YAK/B6/B,mBAAoB,SAAU76C,GAAV,GAIZ0a,GACKxhB,EAEGkS,CANZ,IAAKpL,EAAQ5G,OAAb,CAIA,IADIshB,EAAOhgB,KACFxB,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5B8G,EAAQ9G,GAAG0H,mBACPwK,EAAKsP,EAAKpY,QAAQrD,KAAK,QAAWe,EAAQ9G,GAAG0H,iBAAiBG,GAAK,MACvEqK,EAAG5N,KAAK,UAAWwC,EAAQ9G,GAAG0H,iBAAiBE,SAGvD4Z,GAAKmgC,mBAAmBzyC,GAAapI,MAEzCmxB,YAAa,SAAUpnB,GACnBA,EAAQA,GAASrP,KAAKgK,MAAMuB,SAAS/H,IAAIxD,KAAKqP,OAC9CrP,KAAK+3C,YAAY1oC,EAAOrP,KAAK4hC,cAEjCpL,kBAAmB,SAAUnnB,GACrBrP,KAAK4hC,cACLvyB,EAAQA,GAASrP,KAAK0U,aAAanQ,KAAK,SAASf,IAAIxD,KAAKwU,aAC1DxE,GAAcX,EAAO5B,GAAmBD,GAAqBxN,KAAKsF,UAAWtF,KAAKovB,cAAepvB,KAAKipB,aAG9G8uB,YAAa,SAAU1oC,EAAO5J,GACtBA,EACAuK,GAAcX,EAAO5B,GAAmBF,EAAwBvN,KAAKsF,UAAWtF,KAAKovB,cAAe,GAEpGpf,GAAcX,EAAO5B,GAAmB5F,EAAe7H,KAAKsF,UAAWtF,KAAKovB,cAAepvB,KAAKipB,YAGxGy3B,aAAc,SAAU7kB,GACpB,GAAIA,GAAUA,EAAO8kB,OAAQ,CACzB,GAAiB76C,GAAOP,EAApBya,EAAOhgB,IACX67B,GAASA,EAAO8kB,SAChBp7C,IAAYya,EAAK3Q,MAAM9K,KAAK,YAAY7F,OAAS,KAAOshB,EAAKpI,aAAeoI,EAAKpI,WAAWsW,WAC5F,KAAKpoB,IAAS+1B,GACV7b,EAAK1a,QAAQnH,MACT2H,MAAOA,EACPP,QAASA,EACTW,kBAAoBG,GAAI3G,GAAMyG,SAGtC6Z,GAAKgI,SACLhI,EAAKqI,eAGbu4B,UAAW,SAAU/uC,EAAMgvC,GACvB,GAA4B98C,GAAqFrF,EAA7GshB,EAAOhgB,KAAMsP,EAAO,GAAS4a,EAAc22B,EAAU32B,YAAaC,EAAiB02B,EAAU12B,cACjG,KAAKpmB,EAAM,EAAGrF,EAASmT,EAAKnT,OAAQqF,EAAMrF,EAAQqF,IAC1Cic,EAAKy0B,wBAA0B,EAC/Bz0B,EAAKy0B,0BAGDnlC,GADAvL,EAAM,EACEomB,EAAetY,EAAK9N,IAEpBmmB,EAAYrY,EAAK9N,IAGjCic,EAAK+N,MAAM5vB,KAAK0T,EAAK9N,GAEzB,OAAOuL,IAEXwxC,WAAY,SAAU9yB,EAAO+yB,EAAYC,GAA7B,GAQK/yB,GAPTjO,EAAOhgB,KAAMihD,EAAiBjhC,EAAKkhC,kCAAqCC,EAAanzB,EAAMjc,MAAOE,EAAapS,MAAWohD,EAAgBjzB,EAAM/b,YAAamvC,EAAavhD,OACtKiG,MAAOkoB,EAAMloB,MACbzF,MAAO2tB,EAAM3tB,MACb0R,MAAOovC,EACPlvC,WAAYA,GACb+b,EAAM/b,WAAW+uC,EAAcA,EAAYl7C,MAAQkoB,EAAMloB,QAASu7C,IACzE,KAAKN,EACD,IAAS9yB,IAAahc,GAClBovC,EAAWpzB,GAAapuB,MAAWoS,EAAWgc,IAC1CD,OACIloB,MAAOkoB,EAAMloB,MACbzF,MAAO2tB,EAAM3tB,MACb0R,MAAOovC,IAKvB,OAAOthD,OAAWwhD,EAAYD,IAElCrlB,oBAAqB,SAAUtxB,GAAV,GACAqsC,GAAYwK,EACpB9iD,EADLwhB,EAAOhgB,KAAkCtB,EAASshB,EAAKpI,WAAWoR,OAAOtqB,MAC7E,KAASF,EAAI,EAAGA,EAAIE,EAAQF,IACxBiM,EAAMA,EAAIqqB,OACVgiB,GAAcrsC,EAAI3H,KAAK,yBACvBw+C,GAAkB72C,EAAI3H,KAAK,wBACT,GAAdg0C,GAAqC,GAAlBwK,GACnB72C,EAAIjF,QAIhB+7C,cAAe,SAAUvzB,EAAOpX,EAASlI,EAAO8yC,EAAoBX,EAAWY,EAAaC,GACxF,GAA4B39C,GAAKrF,EAEknBijD,EAF/oB3hC,EAAOhgB,KAAMsP,EAAO,GAAiBxJ,EAAQkoB,EAAMloB,MAAOH,EAASmC,GAAKuC,GAAY2V,EAAK1a,SAAU,SAAUK,GACzG,MAAOA,GAAOG,OAASA,IACxB,OAAUk7C,EAAcn5C,EAAemY,EAAK1a,SAAS,GAAIs8C,EAAwCZ,EAAcA,EAAYzqB,0BAA4B,KAAMkF,EAAW91B,EAAOk8C,oBAAsBl8C,EAAOk8C,oBAAsBD,EAAuClkD,GAAQiI,EAAO+R,QAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWxL,EAAO+R,OAAO,GAAQ/R,EAAO+R,QAAU5R,GAAS,KAAOiL,GAAiBid,EAAM3tB,MAAOsF,EAAOwK,OAAQxK,EAAO8zB,OAAQ9zB,EAAOJ,SAAU47C,EAAanzB,EAAM8zB,cAAgB9zB,EAAMjc,MAAO1I,EAAS2W,EAAKiJ,UAAWmE,EAAsByzB,EAAUzzB,oBAAqBmJ,EAA4BsqB,EAAUtqB,0BAAsC1f,GAAWmJ,EAAKpI,WAAW8N,iBAAkB1F,EAAKpI,WAAWmqC,aAAa/zB,EAAMnoB,IA+B9uB,IA9BIma,EAAK/e,QAAQkT,UAAY6Z,EAAMjc,OAASic,EAAMjc,MAAM,IAAMic,EAAMjc,MAAM,GAAGiwC,OAASh0B,EAAMjc,MAAM,GAAGiwC,UACjGnrC,GAAW,IAEXgqC,EAAUzzB,qBAAuByzB,EAAUtqB,2BAA6B5wB,EAAOk8C,uBAC/EF,EAAY3hC,EAAK8gC,WAAW9yB,GAAO,IAAQroB,EAAOk8C,sBAAuBh6C,EAAemY,EAAK1a,SAAS,GAAGixB,4BAA4B1uB,EAAemY,EAAK1a,SAAS,KAElKm2B,IAAagmB,IACb/jD,QAAc+9B,KAAape,GAAWoe,EAASkmB,GAAajiD,GAAM+7B,SAASA,GAAUkmB,IAEpF3hC,EAAKy0B,wBAmBN+M,EAAmB5qC,EAASlI,EAAOhR,EAAMmZ,EAAUmX,EAAMnoB,IAAKma,EAAKpI,WAAW8N,iBAlB1E6Q,EACKvI,EAAMi0B,cAOPj0B,EAAMi0B,eAAgB,EANtB3yC,GAAQinB,EAA0B12B,MAAW8hD,GACzC5+C,WAAY2L,EACZkI,QAASvN,EAASqF,EAClBhR,KAAMA,KAMTswB,EAAMi0B,cAGPj0B,EAAMi0B,eAAgB,EAFtB3yC,GAAQkyC,EAAmB5qC,EAASlI,EAAOhR,EAAMmZ,EAAUmX,EAAMnoB,IAAKma,EAAKpI,WAAW8N,iBAQ9F7O,EACA,GAAImX,EAAMlc,aACN,IAAK/N,EAAM,EAAGrF,EAASyiD,EAAWziD,OAAQqF,EAAMrF,EAAQqF,IACpDuL,GAAQ0Q,EAAKuhC,cAAcJ,EAAWp9C,GAAM09C,EAAc7qC,EAAUA,EAAU,EAAGlI,EAAQ,EAAG8yC,EAAoBX,EAAWY,EAAaC,GAAiB39C,IAAQo9C,EAAWziD,OAAS,OAGzL4Q,IAAQ0Q,EAAK4gC,UAAUO,EAAYN,EAiB3C,OAdIzzB,KACIs0B,EACKh2C,GAAQsiB,EAAM3tB,MAAO2f,EAAKkiC,iBAC3BliC,EAAKkiC,eAAe/jD,KAAK6vB,EAAM3tB,QAG/B2f,EAAKkiC,eAAexjD,QAAUshB,EAAKkiC,eAAe,KAAOl0B,EAAM3tB,OAC/D2f,EAAKkiC,eAAeC,QAEnBniC,EAAKy0B,0BACNnlC,GAAQ8d,EAAoBu0B,MAIjCryC,GAEXoyB,cAAe,SAAU1T,GAAV,GACPtf,GAAsJzE,EAA4BlG,EAAKrF,EAAQkwB,EAI3LwzB,EACAC,EACAC,EACAC,EAqBJC,EA5BOxiC,EAAOhgB,KAAMyiD,EAAkBz0B,EAAOla,EAAY9T,KAAKiB,QAAQ6S,UAAW4uC,EAAa5uC,EAAU4uC,WAAYC,EAAcD,EAAa,EAAI,EAAWE,EAAeplD,GAGjL,IAFAwwB,EAAQxwB,EAAEwwB,GACVtf,EAAQsf,EAAMzpB,KAAK,iBAAiB7F,OAChCsB,KAAK4X,WAAW8N,gBAYhB,MAXI08B,GAAWp0B,EAAMlrB,KAAK,kBACtBu/C,EAAcriC,EAAKpI,WAAWirC,eAAeT,GAC7CE,EAAoBtiC,EAAKpI,WAAWkrC,uBAAuBT,IAAc,GAE7EriC,EAAKpI,WAAWmqC,aAAaK,IAAY,EACzCG,EAA0BviC,EAAKpI,WAAWkrC,uBAAuBT,IAAc,GAC/EriC,EAAKpI,WAAWmrC,oBAAsBT,EAAoBC,EAC1DviC,EAAKi1B,WAAU,GACfj1B,EAAKpI,WAAWqO,MAAMjG,EAAKpI,WAAWorC,mBAAoBhjC,EAAKpI,WAAWmM,OAAQ,WAC9E/D,EAAKi1B,WAAU,IAChB,iBACH,CAcJ,KAZIj1C,KAAK4hC,cACA5T,EAAMxf,QAAQ,OAAOjE,SAAS,yBAI/Bq4C,EAAe5iD,KAAKoP,MAAM1F,SAAS,SAAWskB,EAAM9iB,QAAU,KAAKwmC,QAAQ,OAH3EkR,EAAe50B,EAAM0jB,QAAQ,MAC7B1jB,EAAQhuB,KAAKwU,YAAYjQ,KAAK,gBAAkBypB,EAAM9iB,QAAU,OAKxE8iB,EAAMzpB,KAAK,iBAAiB4kB,SAAS,cAAcqF,YAAY,gBAC/DR,EAAMzpB,KAAK,kCAAoCzB,KAAK,iBAAiB,GAAOyB,KAAK,KAAKzB,KAAK0T,GAAWO,IACtGiX,EAAQA,EAAM0jB,QAAQ,MAClB8Q,KACCz+C,EAAM,EAAGrF,EAASsvB,EAAMtvB,OAAQqF,EAAMrF,IACvCkwB,EAAKZ,EAAM/pB,GAAGF,GACdkG,EAAS2kB,EAAGrqB,KAAK,iBAAiB7F,OAC9BkwB,EAAGrkB,SAAS,kBACZo4C,IACO/zB,EAAGrkB,SAAS,mBACnBo4C,MAEA14C,GAAUyE,GAASkgB,EAAGrkB,SAAS,mBAAqBo4C,EAAc,IARvB5+C,IAW3C6+C,EAAalkD,QACb8jD,EAAOrkD,KAAKykD,EAAa7+C,IAE7By+C,EAAOrkD,KAAKywB,EAAG,GAEnBpxB,GAAEglD,GAAQh9C,OACNxF,KAAKiB,QAAQuoB,WAAW0X,SAAWlhC,KAAKqE,UACxC8c,aAAanB,EAAK0L,wBAClB1L,EAAK0L,uBAAyBzW,WAAW,WACrC+K,EAAK3b,QAAQywC,SACb90B,EAAKijC,iBAAmBR,MAIpC9gB,YAAa,SAAU3T,GAAV,GAELhO,GAAa0iC,EAAgDh0C,EAAOkgB,EAAI3kB,EAAQ24C,EAAoB7+C,EAAKrF,EAAQwkD,EAAwBC,EAGrIf,EACAC,EACAe,EACAC,EAgDQC,CApDhB,IAHAt1B,EAAQxwB,EAAEwwB,GACNhO,EAAOhgB,KAAM0iD,EAAa1iC,EAAK/e,QAAQ6S,UAAU4uC,WAA+BE,EAAeplD,IAAkB0lD,KAAwBC,EAAc,EAC3Jz0C,EAAQsf,EAAMzpB,KAAK,iBAAiB7F,OAChCsB,KAAK4X,WAAW8N,gBAchB,MAbI08B,GAAWp0B,EAAMlrB,KAAK,kBACtBu/C,EAAcriC,EAAKpI,WAAWirC,eAAeT,GAC7CgB,EAAapjC,EAAKpI,WAAWkrC,uBAAuBT,IAAc,GAEtEriC,EAAKpI,WAAWmqC,aAAaK,IAAY,EACrCC,EAAYtwC,OAASswC,EAAYtwC,MAAMrT,SACvC2kD,EAAwBrjC,EAAKpI,WAAWkrC,uBAAuBT,IAAc,GAC7EriC,EAAKpI,WAAWmrC,oBAAsBM,EAAwBD,GAElEpjC,EAAKi1B,WAAU,GACfj1B,EAAKpI,WAAWqO,MAAMjG,EAAKpI,WAAWorC,mBAAoBhjC,EAAKpI,WAAWmM,OAAQ,WAC9E/D,EAAKi1B,WAAU,IAChB,eACH,CAaJ,KAXIj1C,KAAK4hC,cACA5T,EAAMxf,QAAQ,OAAOjE,SAAS,yBAI/Bq4C,EAAe5iD,KAAKoP,MAAM1F,SAAS,SAAWskB,EAAM9iB,QAAU,KAAKwmC,QAAQ,OAH3EkR,EAAe50B,EAAM0jB,QAAQ,MAC7B1jB,EAAQhuB,KAAKwU,YAAYjQ,KAAK,gBAAkBypB,EAAM9iB,QAAU,OAKxE8iB,EAAMzpB,KAAK,eAAe4kB,SAAS,gBAAgBqF,YAAY,cAC/DR,EAAMzpB,KAAK,mCAAqCzB,KAAK,iBAAiB,GAAMyB,KAAK,KAAKzB,KAAK0T,GAAWC,IACtGuX,EAAQA,EAAM0jB,QAAQ,MACjB3tC,EAAM,EAAGrF,EAASsvB,EAAMtvB,OAAQqF,EAAMrF,IACvCkwB,EAAKZ,EAAM/pB,GAAGF,GACdkG,EAAS2kB,EAAGrqB,KAAK,iBAAiB7F,SAC9BuL,GAAUyE,IAHiC3K,IAM3CkG,GAAUyE,EAAQ,GAAMkgB,EAAGrkB,SAAS,kBACpCqkB,EAAG9nB,OACH87C,EAAa3+C,GAAGF,GAAK+C,OACjB8nB,EAAGrkB,SAAS,mBAAqBqkB,EAAGrqB,KAAK,WAAWgG,SAAS,iBAC7DyV,EAAK2hB,YAAY/S,GAEjBA,EAAGrkB,SAAS,iBAAmBqkB,EAAGrqB,KAAK,WAAWgG,SAAS,kBAC3DqkB,EAAG1f,OAAOpI,OACV87C,EAAa3+C,GAAGF,EAAM,GAAG+C,SAG7B8nB,EAAGrkB,SAAS,oBACRm4C,GACAQ,EAAkB/kD,KAAKywB,EAAGxe,GAAG,aAEjC+yC,KAEAv0B,EAAGrkB,SAAS,oBACRm4C,IACIY,EAAmBJ,EAAkBK,MACzC30B,EAAGgwB,OAAO0E,GACVV,EAAa3+C,GAAGF,GAAK66C,OAAO0E,IAEb,GAAfH,GACAv0B,EAAG9nB,OACH87C,EAAa3+C,GAAGF,GAAK+C,QAErBq8C,IAIE,KAAVz0C,GAAesR,EAAK/e,QAAQuoB,WAAW0X,SAAWlhC,KAAK4hC,aACvD5hB,EAAK8R,4BAGbmoB,cAAe,SAAU5wC,GACrB,GAAI2W,GAAOhgB,KAAMyE,EAAYub,EAAK4hB,YAAc5hB,EAAKtL,aAAanQ,KAAK,SAAWyb,EAAKhW,MAAOu+B,EAAc9jC,EAAUF,KAAK,mBAAmBA,KAAK,mBAAmB7F,OAAQA,EAAS+F,EAAUF,KAAK,YAAYA,KAAK,mBAAmB7F,OAAQ6K,EAAO9E,EAAUiF,SAAS,kBAAkBpF,OAAO,WAC7R,OAAQ9G,EAAEwC,MAAM0J,SAAS,YAAYhL,QAEzC2K,GAAS3K,GACTlB,EAAMyF,MAAMoG,EAAS3K,EAAS,GAAGL,KAAK,iDAAmD2hB,EAAK/e,QAAQ2pB,SAASI,2BAA6B,UAAUyV,UAAUh8B,EAAUiF,SAAS,0BAC/KsW,EAAKpY,QAAQwI,GAAG,aAChB7G,EAAKhF,KAAK,mBAAmBiB,QAE1B6D,EAAS3K,GAChB+F,EAAUF,KAAK,MAAM0qB,KAAK,WACtBzxB,EAAEwC,MAAMuE,KAAK,mBAAmBD,OAAO,OAAS+E,EAAS,SAAgBA,EAAS,KAAKoD,WAG3FpD,EAASk/B,GACT/qC,EAAMyF,MAAMoG,EAASk/B,EAAc,GAAGlqC,KAAK,8DAA8DoiC,UAAUh8B,EAAUF,KAAK,mBAG1Ii/C,eAAgB,SAAU3xC,EAAM4xC,GAQ5B,MAPI5xC,IAAQ4xC,IAEJ5xC,EADAA,EAAKC,aACE9R,KAAKwjD,eAAe3xC,EAAKE,MAAM,GAAI0xC,GAEnC5xC,EAAKE,MAAM,IAGnBF,GAEXglB,mBAAoB,WAChB,GAAiBlB,GAAb3V,EAAOhgB,IACNggB,GAAK4hB,cAGVjM,EAASn4B,EAAE,4CAA6CwiB,EAAKlK,SAAStS,IAAIwc,EAAKhW,MAAMuB,UAAU/H,IAAIwc,EAAK3Q,OACxG2Q,EAAK2R,aAAepf,GAAWojB,EAAO1xB,GAAG,IACzC0xB,EAAO92B,MAAMmhB,EAAK2R,cAClBgE,EAASn4B,EAAE,8CAA+CwiB,EAAKlK,SAAStS,IAAIwc,EAAKtL,aAAanQ,KAAK,WAAWf,IAAIwc,EAAKxL,aACvHmhB,EAAO92B,MAAM0T,GAAWojB,EAAO1xB,GAAG,OAEtCqjC,WAAY,SAAU3hC,GAAV,GACS2C,GAAMqtB,EAAQ5xB,EAAKkI,EAAMG,EAAUlC,EAAqBw5C,EAAiBhlD,EAAmQiT,EAiBzVhL,EAiBAlC,EAlCAub,EAAOhgB,KAAmDnB,EAAQ,EAA4B2uB,EAASxN,EAAKwN,QAAUxN,EAAKlK,QAAQvR,KAAK,kBAAmB8xB,EAAgBrW,EAAKqW,kBAAqB/wB,EAAU0a,EAAK1a,QAASwwB,EAAgB9V,EAAKtL,aAAe5G,GAAckS,EAAKtL,aAAanQ,KAAK,iBAAiBD,OAAOmD,GAAe/I,OAAS,EAAgB43B,EAAmCxuB,GAAKuC,GAAY2V,EAAK1a,SAAU,SAAUK,GAC/a,MAAOA,GAAO4wB,2BAatB,IAVI5wB,EADiB,gBAAVA,GACEL,EAAQK,GACVb,GAAca,GACZmC,GAAK8D,EAAYtG,GAAU,SAAUwL,GAC1C,MAAOA,KAASnL,IACjB,GAEMmC,GAAK8D,EAAYtG,GAAU,SAAUwL,GAC1C,MAAOA,GAAKhL,QAAUH,IACvB,GAEFA,GAAWI,EAAUJ,GAA1B,CAIA,GADIgB,EAAsBqZ,EAAK2jC,wBAAwBh+C,GACnDA,EAAOL,SAAWK,EAAOL,QAAQ5G,OAAQ,CAIzC,IAHAwL,EAAWW,EAAsBlF,EAAQL,GACzCqB,EAAoBhB,GAAQ,GAC5ByL,GAAkBjN,EAAS3G,EAAE,eAAgBwiB,EAAKtL,cAAesL,EAAKhW,MAAO,UAAYE,EAASO,IAAM,QAASP,EAAS5B,MAAM,GAC3HvE,EAAM,EAAGA,EAAM4B,EAAOL,QAAQ5G,OAAQqF,IACvC/D,KAAKsnC,WAAW3hC,EAAOL,QAAQvB,GAGnC,OADAic,GAAK6D,QAAQ/I,IAAcnV,OAAQA,IACnC,EAuBJ,GArBAgM,EAAcjG,GAAQ/F,EAAQkC,EAAewC,GAAY/E,KACzDqB,EAAoBhB,GAAQ,GAC5Bqa,EAAK4jC,sBAAsBj+C,GAAQ,GACnCqa,EAAKqI,aACLrI,EAAKyW,cACLzW,EAAKwW,oBACD/xB,EAAYub,EAAKhW,MACrB05C,EAAkB/xC,EACdqO,EAAKtL,cAAgBohB,EAAgBnkB,EACrClN,EAAYub,EAAKtL,aAAanQ,KAAK,gBAEnCm/C,GAAmB5tB,EAEvBxtB,EAAOwF,GAAcrJ,GAAWH,OAAOmD,GAAexD,GAAGy/C,GACzDp7C,EAAK,GAAGrJ,MAAMyI,QAAU,OACxB0J,GAAkBjN,EAAS3G,EAAE,eAAgBwiB,EAAKtL,cAAesL,EAAKhW,MAAO,uBAAwB2H,GAAa,GAC9G6b,EAAO,KACPxN,EAAKyW,YAAYjJ,EAAOjpB,KAAK,+BAC7Byb,EAAKwW,kBAAkBhJ,EAAOjpB,KAAK,iCACnC6M,GAAkBoc,EAAOjpB,KAAK,yBAA0BoN,GAAa,IAErE0kB,EAAc/wB,UAAYK,EAAOF,OAGjC,MAFAua,GAAK6jC,sBACL7jC,EAAK6D,QAAQ/I,IAAcnV,OAAQA,IACnC,CAOJ,IALIqa,EAAKxL,aAAeshB,EAAgBnkB,EACpCD,GAAgBsO,EAAKxL,YAAYjQ,KAAK,aAAcoN,GAEpDD,GAAgBsO,EAAK5Q,MAAM1F,WAAYiI,EAAcmkB,GAErD9V,EAAKxL,YACLwL,EAAK6W,qBACL7W,EAAK6R,8BACL7R,EAAK8R,2BACL9R,EAAK+R,0BACL/R,EAAKka,8BACF,CAEH,IADAjuB,EAAO+T,EAAKhW,MAAM8qB,OAAOvwB,KAAK,OACzBR,EAAM,EAAGrF,EAASuN,EAAKvN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAErD,GADAqI,EAAWH,EAAKlI,GAAK9E,MAAMJ,MACvBoN,EAAKlI,GAAK0N,UAAUpF,QAAQ,sBAC5BxN,GAAS8Z,GAAW1M,EAAKlI,QAG7B,IAAIkI,EAAKlI,GAAK0N,UAAUpF,QAAQ,kBAC5BxN,GAAS8Z,GAAW1M,EAAKlI,QAD7B,CAIA,IAAIqI,GAAYA,EAASC,QAAQ,SAE1B,CACHxN,EAAQ,CACR,OAHAA,GAASqN,SAASE,EAAU,IAMpCupB,EAASn4B,EAAE,0DAA2DwiB,EAAKlK,SAAStS,IAAIwc,EAAK3Q,OAC7F2Q,EAAK2R,aAAe,KAChB9yB,IACA82B,EAAO1G,KAAK,WACRjvB,KAAKf,MAAMJ,MAAQA,EAAQ,OAE/BmhB,EAAK2R,aAAe9yB,EACpBmhB,EAAKg2B,oBAGbh2B,EAAK8W,0BACL9W,EAAKgS,uBACDsE,EAAiC53B,OAAS,GAC1CshB,EAAK4W,mBAET5W,EAAK6D,QAAQ/I,IAAcnV,OAAQA,MAEvCi+C,sBAAuB,SAAUj+C,EAAQiB,GAAlB,GAGf7C,GAEAwH,EACArB,EACA5B,EACAsG,EAPAoR,EAAOhgB,KACPsF,EAAU0a,EAAK1a,QAEfiB,KAKAI,EAAsBqZ,EAAK2jC,wBAAwBh+C,GACnDm+C,EAAYl9C,EAAU,SAAUm9C,GAChC,MAAOl8C,GAAek8C,EAAEz+C,SAAS5G,QAAUqlD,EAAEn+C,QAC7C,SAAUm+C,GACV,OAAQl8C,EAAek8C,EAAEz+C,SAAS5G,SAAWqlD,EAAEn+C,OAEnD,IAAIY,EAAcb,EAAQL,EAASiB,IAAYA,EAAQ7H,OACnD,IAAKqF,EAAMwC,EAAQ7H,OAAS,EAAGqF,GAAO,EAAGA,IACrCwH,EAAShF,EAAQxC,GACjBmG,EAAWM,EAAee,EAAQjG,GAClCgD,EAAOnE,EAAS3G,EAAE,eAAgBwC,KAAK0U,cAAe1U,KAAKgK,MAAO,UAAYE,EAASO,IAAM,kDAAkDxG,GAAGiG,EAAS5B,MACvJw7C,EAAUv4C,KACV5E,EAAoB4E,EAAQ3E,GAC5B0B,EAAK,GAAGrJ,MAAMyI,QAAUd,EAAU,GAAK,QAEvC0B,EAAKhE,OAAO,IAAM5E,GAAMoD,KAAK,WAAa,KAAKpE,SAC/CkQ,EAAU1C,SAAS5D,EAAKxF,KAAKpD,GAAMoD,KAAK,YAAa,IACrDwF,EAAK,GAAGsG,QAAUA,EAAU9C,EAAuBP,EAAOjG,UAAY,IAKtFu+C,oBAAqB,WAAA,GACb7jC,GAAOhgB,KACP21B,EAAS3V,EAAK3Q,MAAM7L,IAAIwc,EAAKhW,MAAMuB,SACvCoqB,GAAOlyB,KAAM5E,MAAOmN,EAAUyB,GAAmBF,EAAwByS,EAAK1a,aAC9E0a,EAAKM,WAET8mB,WAAY,SAAUzhC,GAAV,GACS5B,GAAKrF,EAAQ4J,EAAMqtB,EAAQ92B,EAAO6kD,EAAiBx5C,EAAUkC,EAAUH,EAAgP0F,EAAaqyC,EAAgBC,EA0BjWt9C,EAoBAlC,EA9CAub,EAAOhgB,KAAmFsF,EAAU0a,EAAK1a,QAAS+wB,EAAgBrW,EAAKqW,kBAAqB7I,EAASxN,EAAKwN,QAAUxN,EAAKlK,QAAQvR,KAAK,kBAAmBwuC,EAAqB/yB,EAAKtL,aAAe5G,GAAckS,EAAKtL,aAAanQ,KAAK,iBAAiB7F,OAAS,EAAiD43B,EAAmCxuB,GAAKuC,GAAY2V,EAAK1a,SAAU,SAAUK,GAC3b,MAAOA,GAAO4wB,2BAsBtB,IApBqB,gBAAV5wB,IACPgM,EAAchM,EACdA,EAASL,EAAQK,IACVb,GAAca,GACrBnI,EAAEyxB,KAAKrjB,EAAYtG,GAAU,SAAU4F,EAAO4F,GAC1C,GAAIA,IAASnL,EAGT,MAFAA,GAASmL,EACTa,EAAczG,GACP,IAIf1N,EAAEyxB,KAAKrjB,EAAYtG,GAAU,SAAU4F,EAAO4F,GAC1C,GAAIA,EAAKhL,QAAUH,EAGf,MAFAA,GAASmL,EACTa,EAAczG,GACP,IAIdvF,IAAUI,EAAUJ,GAAzB,CAIA,GADIgB,EAAsBqZ,EAAK2jC,wBAAwBh+C,GACnDA,EAAOL,SAAWK,EAAOL,QAAQ5G,OAAQ,CAKzC,IAJAwL,EAAWM,EAAe7E,EAAQL,GAClC0+C,EAAiBp4C,EAAYoU,EAAK/e,QAAQqE,SAASqM,GACnDhL,EAAoBhB,GAAQ,GAC5ByL,GAAkBjN,EAAS3G,EAAE,eAAgBwiB,EAAKtL,cAAesL,EAAKhW,MAAO,UAAYE,EAASO,IAAM,QAASP,EAAS5B,MAAM,GAC3HvE,EAAM,EAAGA,EAAM4B,EAAOL,QAAQ5G,OAAQqF,IAClCigD,EAAe1+C,QAAQvB,GAAK6B,QAC7B5F,KAAKonC,WAAWzhC,EAAOL,QAAQvB,GAIvC,OADAic,GAAK6D,QAAQ9I,IAAcpV,OAAQA,IACnC,EAuBJ,GArBAs+C,EAAkBv4C,GAAQ/F,EAAQ0E,GAAY/E,IAC9CqB,EAAoBhB,GAAQ,GAC5Bqa,EAAK4jC,sBAAsBj+C,GAAQ,GACnCqa,EAAKqI,aACLrI,EAAKyW,cACLzW,EAAKwW,oBACD/xB,EAAYub,EAAKhW,MACrB05C,EAAkBO,EACdjkC,EAAKtL,cAAgBq+B,EAAqBkR,EAC1Cx/C,EAAYub,EAAKtL,aAAanQ,KAAK,gBAEnCm/C,GAAmB3Q,EAEvBzqC,EAAOwF,GAAcrJ,GAAWR,GAAGy/C,GACnCp7C,EAAK,GAAGrJ,MAAMyI,QAAU,GACxB0J,GAAkBjN,EAAS3G,EAAE,eAAgBwiB,EAAKtL,cAAesL,EAAKhW,MAAO,uBAAwBi6C,GAAiB,GAClHz2B,EAAO,KACPxN,EAAKyW,YAAYjJ,EAAOjpB,KAAK,+BAC7Byb,EAAKwW,kBAAkBhJ,EAAOjpB,KAAK,iCACnC6M,GAAkBoc,EAAOjpB,KAAK,yBAA0B0/C,GAAiB,IAEzE5tB,EAAc/wB,UAAYK,EAAOF,OAGjC,MAFAua,GAAK6jC,sBACL7jC,EAAK6D,QAAQ9I,IAAcpV,OAAQA,IACnC,CAOJ,IALIqa,EAAKxL,aAAeu+B,EAAqBkR,EACzC/xC,GAAgB8N,EAAKxL,YAAYjQ,KAAK,aAAc0/C,GAEpD/xC,GAAgB8N,EAAK5Q,MAAM1F,WAAYu6C,EAAkBlR,GAEzD/yB,EAAKxL,YACLwL,EAAK6W,qBACL7W,EAAK6R,8BACL7R,EAAK8R,2BACL9R,EAAK+R,8BAGL,IADA4D,EAASn4B,EAAE,0DAA2DwiB,EAAKlK,SAAStS,IAAIwc,EAAK3Q,OACxF1J,EAAO9G,MAEL,CAGH,IAFAA,EAAQ,EACRoN,EAAO+T,EAAKhW,MAAM8qB,OAAOvwB,KAAK,OACzBR,EAAM,EAAGrF,EAASuN,EAAKvN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAErD,GADAqI,EAAWH,EAAKlI,GAAK9E,MAAMJ,MACvBoN,EAAKlI,GAAK0N,UAAUpF,QAAQ,sBAC5BxN,GAAS8Z,GAAW1M,EAAKlI,QAG7B,IAAIkI,EAAKlI,GAAK0N,UAAUpF,QAAQ,kBAC5BxN,GAAS8Z,GAAW1M,EAAKlI,QAD7B,CAIA,GAAIqI,EAASC,QAAQ,QAAW,CAC5BxN,EAAQ,CACR,OAEJA,GAASqN,SAASE,EAAU,IAEhC4T,EAAK2R,aAAe,KAChB9yB,IACA82B,EAAO1G,KAAK,WACRjvB,KAAKf,MAAMJ,MAAQA,EAAQ,OAE/BmhB,EAAK2R,aAAe9yB,EACpBmhB,EAAKg2B,wBA1BTrgB,GAAO92B,MAAM,GA8BrBmhB,GAAK8W,0BACL9W,EAAKgS,uBACDsE,EAAiC53B,OAAS,GAC1CshB,EAAK4W;AAET5W,EAAK6D,QAAQ9I,IAAcpV,OAAQA,MAEvCg+C,wBAAyB,SAAUh+C,GAC/B,GAAI8R,GAAM9R,KACV,OAAI4B,GAAYkQ,EAAIjQ,OACTb,EAEAM,GAGfi9C,eAAgB,WAAA,GAIRttC,GAIKpY,EAEIk3B,EATT7tB,EAAiB7H,KAAK68C,YAAc78C,KAAK68C,YAAcpvC,GAAmBzN,KAAKsF,SAC/E6a,EAAWngB,KAAK4X,WAAWuI,YAAcngB,KAAK4X,WAAW6N,QACzD0+B,EAAa,EAKjB,KAHInkD,KAAKg1B,uBACLpe,EAAU1K,SAASlM,KAAKqE,QAAQE,KAAK,qBAAqBzB,KAAK,WAAY,KAEtEtE,EAAI,EAAGA,EAAI2hB,EAAU3hB,IAAK,CAE/B,IADA2lD,GAAc,OACLzuB,EAAI,EAAGA,EAAI7tB,EAAenJ,OAAQg3B,IAEnCyuB,GADAvtC,IAAY8e,EACE,gBAAmB9e,EAAU,2EAE7B,4EAGtButC,IAAc,QAElB,MAAOA,IAEXlP,UAAW,SAAU2J,GAAV,GAKHwF,GAJAx8C,EAAU5H,KAAK4H,QACfs5B,EAAUlhC,KAAKiB,QAAQuoB,YAAcxpB,KAAKiB,QAAQuoB,WAAW0X,QAC7DvW,EAAa3qB,KAAKiB,QAAQ0pB,WAC1B05B,EAAmBrkD,KAAKiB,QAAQuoB,YAAcxpB,KAAKiB,QAAQuoB,WAAWC,OAEtE46B,GACAz8C,EAAU5H,KAAKqE,QACRrE,KAAKg4B,gBAAuC,UAArBh4B,KAAK23B,YACnC/vB,EAAU5H,KAAKg4B,eACRh4B,KAAKoE,eAAiB88B,EAC7Bt5B,EAAU5H,KAAK8V,QACR9V,KAAK4H,QAAQwI,GAAG,SACvBxI,EAAU5H,KAAK4H,QAAQ2D,SAChBvL,KAAKqE,SAAWrE,KAAKqE,QAAQ3F,SACpCkJ,EAAU5H,KAAKqE,SAED,YAAdsmB,EACIi0B,GACAwF,EAAWpkD,KAAKkkD,iBAChBt8C,EAAQrD,KAAK,SAASgL,QAAQc,OAAO+zC,IAErCx8C,EAAQrD,KAAK,eAAeiK,QAAQ,SAASe,QAG7C2xB,GAAW0d,EACXl/C,GAAM2Y,GAAGisC,SAAS18C,EAASg3C,GACvB9/C,OAAQkB,KAAKqE,QAAQvF,SACrBkX,IAAKhW,KAAKqE,QAAQ,GAAGrC,UACrB+jC,SAAS,IAGbrmC,GAAM2Y,GAAGisC,SAAS18C,EAASg3C,IAIvC2F,QAAS,SAAUxkD,EAAMykD,GACrBxkD,KAAK8xB,2BACL9xB,KAAK+xB,0BACD/xB,KAAKqE,UACLrE,KAAKg2C,mBACLh2C,KAAKooB,qBAELpoB,KAAKwU,aACLxU,KAAK85B,oBAEL95B,KAAK0pB,oBAAsB86B,GAASxkD,KAAK+2C,cACrCyN,IACAxkD,KAAK+2C,WAAa,MAEtB/2C,KAAK0pB,kBAAkBxD,oBAEvBlmB,KAAKurB,OAASvrB,KAAKurB,MAAM3jB,SACzB5H,KAAKurB,MAAMlC,OAAOm7B,GAElBxkD,KAAKq3B,qBACLr3B,KAAKgyB,sBAAqB,IAGlCyyB,iBAAkB,WACd,GAAIpS,GAAS55B,IACb,SAAK45B,IAGEryC,KAAKqP,MAAM,KAAOgjC,GAAU70C,EAAE4X,SAASpV,KAAKqP,MAAM,GAAIgjC,IAAWryC,KAAK4hC,cAAgB5hC,KAAKwU,YAAY,KAAO69B,GAAU70C,EAAE4X,SAASpV,KAAKwU,YAAY,GAAI69B,MAEnK/xB,QAAS,SAAU1S,GACf,GAAkI2uB,GAAmMmoB,EAAmBC,EAApV3kC,EAAOhgB,KAAM6R,EAAOmO,EAAKpI,WAAW8nB,OAAQ1qB,EAAcgL,EAAK/e,QAAQ+T,YAAaqhB,EAAgBrW,EAAKqW,kBAAmCj3B,EAAU5B,EAAEwiB,EAAK5gB,WAAYwlD,GAAoB,EAAOv7C,GAAU2W,EAAKpI,WAAWoW,aAAetvB,OAAQkY,EAAUvN,EAASoE,GAAmB5F,EAAemY,EAAK1a,UAAU5G,MACzTkP,IAAkB,eAAbA,EAAEtE,SAA4B0W,EAAK7L,UAAY6L,EAAK/e,QAAQuoB,WAAW0X,WACpD,SAApBlhC,KAAK23B,aAA+C,UAArB33B,KAAK23B,cAA4B3X,EAAKwa,sBAIzEnE,EAAc/wB,SACd0a,EAAKqI,aAELza,GAAkB,WAAbA,EAAEtE,QAAuB0W,EAAK7L,UAAY6L,EAAK7L,SAASlT,QAAQgT,OAASvI,GAAQsU,EAAK7L,SAASlT,QAAQgT,MAAOrG,EAAEmE,WACrHiO,EAAK7L,SAASlT,QAAQgT,MAAMwM,OAAO5F,GAAQmF,EAAK6a,qBAEpDjtB,EAAIA,MACAoS,EAAK6D,QAAQ,eACTva,OAAQsE,EAAEtE,QAAU,SACpB4B,MAAO0C,EAAE1C,MACT6G,MAAOnE,EAAEmE,UAIbnE,EAAEtE,SAAWkS,IAAQwE,EAAKqf,uBAC1Brf,EAAKuM,mBACLvM,EAAKqZ,uBAETrZ,EAAKmL,cAAc,WACdnL,EAAKw0B,0BACFx/B,IAAgBgL,EAAKykC,oBAAsBzkC,EAAKgY,gBAAkBhY,EAAKgY,eAAenmB,KAAK,kBAC3F+yC,EAAoBxlD,EAAQgR,GAAG,MAC/BmsB,EAAeqoB,EAAoBxlD,EAAQmM,SAAS7B,SAAS,uBAAuBwB,MAAM9L,EAAQ,IAAMyP,KAAKlE,IAAIqV,EAAKuX,UAAUn4B,GAAU,IAE9I4gB,EAAKuM,oBAELvM,EAAK/e,QAAQuoB,YAAcxJ,EAAK/e,QAAQuoB,WAAW0X,SACnD/f,aAAanB,EAAKyL,kBAClBzL,EAAKyL,iBAAmBxW,WAAW,WAC1B+K,EAAKw0B,yBACNx0B,EAAKi1B,WAAU,IAEpB,MAEHj1B,EAAKi1B,WAAU,GAEnBj1B,EAAK0Q,oBACL1Q,EAAK+N,SACA/N,EAAK1a,QAAQ5G,SACdshB,EAAK0gC,aAAa1gC,EAAKwjC,eAAe3xC,EAAK,GAAIxI,IAC/CuN,EAAUvN,EAAS2W,EAAK1a,QAAQ5G,QAEpCshB,EAAKgJ,OAAS3f,EAAS,GAAK2W,EAAKgJ,OAC7BhJ,EAAKgJ,SACLhJ,EAAKqI,aACLrI,EAAKyW,cACLzW,EAAKwW,oBACAxW,EAAK4Y,mBACN5Y,EAAKi6B,cAAc5wC,GAEvB2W,EAAKgJ,OAAS3f,EAAS,EACvB2W,EAAK2N,WAAa/b,GAAUC,IAE5BmO,EAAK3b,UACLqgD,EAAoBhlD,GAAM6T,WAAWyM,EAAK3b,UAE9CsgD,EAAoB3kC,EAAKy0B,wBACzBz0B,EAAK6kC,eAAehzC,EAAM+E,EAASvN,GAC/B2W,EAAK/e,QAAQuoB,YAAcxJ,EAAK/e,QAAQuoB,WAAW0X,SAAWlhC,KAAKoE,gBACnE4b,EAAKy0B,wBAA0BkQ,GAEnC3kC,EAAK8kC,qBAAqBjzC,EAAM+E,EAASvN,GACpC2W,EAAK4Y,oBACN5Y,EAAKkJ,UACLlJ,EAAK81B,0BACL91B,EAAK23B,yBACL33B,EAAKoI,oBACLpI,EAAKg2B,iBAAiBh2B,EAAK3b,SAAWqgD,IAEtC1kC,EAAKxL,cACD6hB,EAAc9sB,KACdyW,EAAK3b,QAAQE,KAAK,+BAA+Bsf,QAAQ,UAClD7D,EAAKga,cACZha,EAAKga,cAAc4a,QAAQ/wB,QAAQ,WAEnC7D,EAAKlK,QAAQrC,IAAI,SAAU,SAAU7F,GACjCA,EAAEorB,oBAENhZ,EAAK3b,QAAQwf,QAAQ,YAGxB7D,EAAKw0B,yBACNx0B,EAAK+kC,gBAAgBxoB,EAAcqoB,GAEnC5kC,EAAKga,eACLha,EAAKga,cAAcgrB,iBAEnBhlC,EAAK9L,YACL8L,EAAK9L,WAAW+wC,mBAEpBjlC,EAAKklC,mBAAmB,WACpBllC,EAAKmL,cAAc,aAEnBnL,EAAK2e,oBACL3e,EAAK+jB,yBAAwB,GAE7B/jB,EAAK/e,QAAQ+oB,mBAAqBhK,EAAK9L,aAAexU,GAAM2Y,GAAGkrB,WAAWC,aAAaxjB,EAAK/e,QAAQiT,YAAY5L,MAAQ0X,EAAK2e,sBAAwB3e,EAAKjO,QAAQrT,QAAUshB,EAAKpI,WAAW8N,kBAC5L1F,EAAKmlC,oBAETnlC,EAAK6D,QAAQ5I,OAEjB8pC,gBAAiB,SAAUxoB,EAAcqoB,GAAxB,GAQLj4C,GACA0pB,EAUA5rB,EACAmM,EASA4gB,CA5BR,MAAI+E,IAAiB75B,GAAa65B,EAAe,GAAjD,CAIA,GADAv8B,KAAK8/B,iBACD8kB,EACA5kD,KAAK+U,YAAY/U,KAAKgK,MAAMzF,KAAK,yBAAyBN,GAAGs4B,QAC1D,CAuBH,GAtBI5vB,EAAW,EACX0pB,EAAgBr2B,KAAKq2B,kBACrBr2B,KAAKkuC,iBAEDvhC,EADA0pB,EAAc9sB,KACHvJ,KAAK0pB,kBAAkBxf,SAASlK,KAAKkuC,kBAErCluC,KAAKkuC,iBAGpB3R,EAAe,EAEf9xB,EAAMjN,IAENwC,KAAKwU,cACL/J,EAAMzK,KAAKwU,YAAYjQ,KAAK,aAAaN,GAAG0I,IAEhDlC,EAAMA,EAAIjH,IAAIxD,KAAKoP,MAAM1F,WAAWzF,GAAG0I,IACnC3M,KAAKg1B,uBACLpe,EAAU1K,SAASzB,EAAIlG,KAAK,YAAYzB,KAAK,WAAY,IACzDy5B,EAAev8B,KAAKquC,mBAAqBz3B,EAAU,EAAIA,EAAU,EAAI,IAErE4gB,EAAK/sB,EAAIlG,KAAK,iDAAiDN,GAAGs4B,IACjE/E,EAAG94B,QAAU69B,EAAe,EAC7B,MAEAv8B,MAAKg1B,qBACLh1B,KAAK+U,YAAYyiB,GAAI,GAAM,GAE3Bx3B,KAAK+U,YAAYyiB,GAGrBx3B,KAAK2tC,UACLt6B,GAAWrT,KAAK2tC,SAASn/B,QAAQ,SAAS,IAAI,KAGtD22C,kBAAmB,WACf,GAAyCC,GAArCplC,EAAOhgB,KAAMitC,EAAUjtB,EAAKjO,QAAuB1L,EAAK2S,GAAWgH,EAAKpI,WAAW3W,QAAQ46B,OAAO5nB,OAAS+L,EAAKpI,WAAW3W,QAAQ46B,OAAO5nB,MAAM0L,GAAGqc,QAAUhc,EAAKpI,WAAW3W,QAAQ46B,OAAO5nB,MAAM5N,EACtM++C,GAAet9C,GAAKmlC,EAAS,SAAUxiC,GACnC,GAAI46C,GAAcrlC,EAAKmb,SAAS1wB,GAAKpE,EACrC,IAAI2Z,EAAK8L,aAAau5B,GAClB,MAAO56C,KAGfuV,EAAK4e,OAAOwmB,IAEhBj6B,cAAe,SAAUm6B,GACrB5lD,GAAM2Y,GAAG8O,gBAAgBxH,GAAGwL,cAAcvL,KAAK5f,KAAMslD,GACzC,YAARA,GAAuBtlD,KAAK4X,YAAe5X,KAAK4X,WAAW3W,QAAQigC,SACnElhC,KAAKulD,sBAETvlD,KAAKwlD,mBAAmBF,GACxBtlD,KAAKylD,yBAAyBH,IAElCC,oBAAqB,WACjB,GAAIvlC,GAAOhgB,IACPggB,GAAKoP,gBACLpP,EAAKgP,QAAQ,UAAW,WACpB,OAAS7qB,SAAU6b,EAAK5Q,MAAM1F,SAAS,oBAE3CsW,EAAK5Q,MAAM7K,KAAK,kBAAkBgL,UAG1Ci2C,mBAAoB,SAAUF,GAC1B,GAAItlC,GAAOhgB,KAAMyE,EAAYub,EAAK5Q,KAC9B4Q,GAAK5b,gBACLK,EAAYub,EAAKxL,YAAYjQ,KAAK,UAElCyb,EAAKgJ,QACLhJ,EAAKgP,QAAQs2B,EAAK,WACd,OACInhD,SAAUM,EAAUiF,SAAS,mBAC7BmI,KAAMrU,EAAE8C,IAAIsR,GAAUoO,EAAKpI,WAAW8nB,QAAS,SAAUvE,GACrD,OAASA,SAAUA,SAMvCsqB,yBAA0B,SAAUH,GAChC,GAAItlC,GAAOhgB,KAAMyE,EAAYub,EAAK5Q,KAC9B4Q,GAAK5b,gBACLK,EAAYub,EAAKpY,SAEjBoY,EAAKgJ,QAAUhJ,EAAKoN,qBACpBpN,EAAKgP,QAAQs2B,EAAK,WACd,OACInhD,SAAUM,EAAUF,KAAK,mBACzBsN,KAAMrU,EAAE8C,IAAI0R,GAAagO,EAAKpI,WAAW8nB,QAAS,SAAUvE,GACxD,OAASA,SAAUA,SAMvC0pB,eAAgB,SAAUhzC,EAAM+E,EAASvN,GACrC,GAAiBtF,GAAKrF,EAAgFgjD,EAAegE,EAAjH1lC,EAAOhgB,KAAmBsP,EAAO,GAAI6hB,EAAiC,MAAtBnR,EAAK5b,cAAuBuhD,EAAgB,KAAqCn8B,EAAaxJ,EAAK/e,QAAQuoB,WAAYq3B,GACnK32B,YAAalK,EAAKkK,YAClBC,eAAgBnK,EAAKmK,eACrBiD,oBAAqBpN,EAAKoN,oBAC1BmJ,0BAA2BvW,EAAKuW,0BAUxC,IARI/M,GAAcA,EAAW0X,UAAYlhB,EAAKpI,WAAW3W,QAAQigC,UAC7DlhB,EAAKy0B,wBAA0B,EAC3Bz0B,EAAK3b,UACL2b,EAAK3b,QAAQ,GAAG+d,UAAY,IAGpCujC,EAAgB3lC,EAAKy0B,wBAA0B,EAC/C79B,EAAUua,EAAWva,EAAUnJ,GAAmBD,GAAqBwS,EAAK1a,UAAU5G,OAASkY,EAC3FvN,EAAS,EAWT,IAVAuN,EAAUua,EAAWva,EAAUvN,EAASuN,EACpCoJ,EAAKwK,gBACL5T,IAEAoJ,EAAKoN,sBACLpN,EAAKkhC,8BAAgClhC,EAAKpI,WAAW3F,cAErD+N,EAAK/e,QAAQuoB,WAAW0X,UACxBwkB,EAAiB1lC,EAAKpI,WAAWguC,WAAWlnD,QAE3CqF,EAAM,EAAGrF,EAASmT,EAAKnT,OAAQqF,EAAMrF,EAAQqF,IACzCic,EAAKkiC,iBACNliC,EAAKkiC,mBAETR,EAAgBgE,GAAkB3hD,IAAQ8N,EAAKnT,OAAS,GAAKgnD,IAAmB1lC,EAAKpI,WAAW6N,QAChGnW,GAAQ0Q,EAAKuhC,cAAc1vC,EAAK9N,GAAM6S,EAAS,EAAGua,EAAWna,GAA+BL,GAAiBkqC,EAAW1vB,EAAUuwB,OAGtIpyC,IAAQ0Q,EAAK4gC,UAAU/uC,EAAMgvC,EAE7B8E,IACA3lC,EAAK5Q,MAAMiB,OAAOf,GAClB6R,aAAanB,EAAK2L,sBAClB3L,EAAK2L,qBAAuB1W,WAAW,WAC/B+K,EAAKijC,mBACLjjC,EAAK0hB,cAAc1hB,EAAKijC,kBACxBjjC,EAAKijC,iBAAmB,QAGhCjjC,EAAKw0B,wBAA0B,MAE/Bx0B,EAAK5Q,MAAQD,GAAc6Q,EAAK5Q,MAAO4Q,EAAK3Q,MAAOC,EAAMtP,KAAKiB,QAAQktB,WAG9EyI,iBAAkB,WACd,GAAoHivB,GAA4DvgD,EAASsR,EAASoX,EAAOloB,EAAOH,EAAQ81B,EAAU/9B,EAAMooD,EAAiBjY,EAAgBC,EAAqBiY,EAAaC,EAAoBC,EAAYv3C,EAAO6nB,EAA2B2vB,EAAzWlmC,EAAOhgB,KAAM6R,EAAOmO,EAAK2N,WAAY/b,EAAYoO,EAAKlK,QAAQvR,KAAK,mBAAoB8E,EAAS2W,EAAKiJ,UAAgCkI,EAAiC,MAAtBnR,EAAK5b,aACzJwN,GAAUqd,KAAK,SAAU/jB,EAAOT,GAC5Bw7C,EAAazoD,EAAEiN,GACfojC,EAAiBoY,EAAWz3C,QAAQ,SAASjD,SAC7CuiC,EAAsBD,EAAez9B,GAAG,IAAM6J,IAC9C3U,EAAgCmI,GAAtBqgC,EAAyCjmC,EAAea,EAAcsX,EAAK1a,UAAgCuC,EAAee,EAAiBoX,EAAK1a,WAC1JoJ,EAAQu3C,EAAW1hD,KAAK,IAAM2V,IAAgBxb,OAC1CyyB,GACA00B,EAAsB/X,EAAsBn3B,GAAkBK,GAC9DJ,EAAUk3B,EAAsBxoC,EAAQ5G,OAAS2K,EAASqF,EAAQpJ,EAAQ5G,SAE1EmnD,EAAsBlvC,GACtBC,EAAUtR,EAAQ5G,OAAS2K,EAASqF,GAExCsf,EAAQ9iB,GAAS2G,EAAKnT,OAASmT,EAAK3G,EAAQ2G,EAAKnT,QAAUmT,EAAK3G,GAChEpF,EAAQkoB,EAAMloB,MACdH,EAASmC,GAAKuC,GAAY2V,EAAK1a,SAAU,SAAUK,GAC/C,MAAOA,GAAOG,OAASA,IACxB,OACHogD,IAAwBvgD,EAAOk8C,sBAAuBh6C,EAAemY,EAAK1a,SAAS,GAAGixB,4BAA4B1uB,EAAemY,EAAK1a,SAAS,GAC/Im2B,EAAW91B,EAAOk8C,oBAAsBl8C,EAAOk8C,oBAAsBh6C,EAAemY,EAAK1a,SAAS,GAAGixB,0BACrG74B,GAAQiI,EAAO+R,QAAUsI,EAAK/e,QAAQgpB,aAAe9Y,GAAWxL,EAAO+R,OAAO,GAAQ/R,EAAO+R,QAAU5R,GAAS,KAAOiL,GAAiBid,EAAM3tB,MAAOsF,EAAOwK,OAAQxK,EAAO8zB,OAAQ9zB,EAAOJ,SAC1L8D,EAASA,EACTy8C,EAAkB9lC,EAAK8gC,WAAW9yB,GAAO,EAAOk4B,GAChD3vB,EAA4BuX,EAAsB9tB,EAAKs9B,gCAAkCt9B,EAAKuW,0BAC1FkF,IACA/9B,QAAc+9B,KAAape,GAAWoe,EAASqqB,GAAmBpmD,GAAM+7B,SAASA,GAAUqqB,IAE/FC,EAAcE,EAAWnxB,OAAOp2B,OAASunD,EAAWnxB,OAASmxB,EAAW16C,SACxEy6C,EAAqBxoD,EAAE+4B,EAA4BA,EAA0B12B,MAAWimD,GACpF/iD,WAAY2L,EACZkI,QAASvN,EAASqF,EAClBhR,KAAMA,KACJmoD,EAAoBjvC,EAASlI,EAAOhR,IACtCqoD,EAAY31C,GAAG,SACf21C,EAAYz1C,QAAQ01C,GAEpBD,EAAYx3B,MAAMy3B,GAEtBC,EAAWx5C,YAGnBq4C,qBAAsB,SAAUjzC,EAAM+E,EAASvN,GAAzB,GACHtF,GAAKrF,EAOZ2Q,EAPJC,EAAO,GAAiBq2C,EAAgB,KAAM9E,GAC1C32B,YAAalqB,KAAKitB,kBAClB9C,eAAgBnqB,KAAKktB,qBACrBE,oBAAqBptB,KAAKqtB,0BAC1BkJ,0BAA2Bv2B,KAAKs9C,gCAExC,IAAIt9C,KAAKoE,cAAe,CAGpB,GAFIiL,EAAQrP,KAAKwU,YACjBmxC,EAAgB3lD,KAAKy0C,wBAA0B,EAC3CprC,EAAS,EAET,IADAuN,GAAoB/O,EAAewC,GAAYzB,EAAiB5I,KAAKsF,WAAW5G,OAC3EqF,EAAM,EAAGrF,EAASmT,EAAKnT,OAAQqF,EAAMrF,EAAQqF,IAC9CuL,GAAQtP,KAAKuhD,cAAc1vC,EAAK9N,GAAM6S,EAAS,EAAGD,GAAiBkqC,GAAW,EAAO7gD,KAAKiB,QAAQuoB,WAAW0X,SAAWn9B,IAAQ8N,EAAKnT,OAAS,OAGlJ4Q,GAAOtP,KAAK4gD,UAAU/uC,EAAMgvC,EAE5B8E,GACAt2C,EAAM3F,SAAS,SAAS2G,OAAOf,GAE/BH,GAAcE,EAAM3F,SAAS,SAAU2F,EAAOC,EAAMtP,KAAKiB,QAAQktB,UAErEnuB,KAAK8xB,6BAGb6lB,uBAAwB,WAChB33C,KAAKiB,QAAQ8oB,SAASo8B,iBAAkB,GACxCnmD,KAAK8V,QAAQvR,KAAK,iBAAiBq6C,OAAO5+C,KAAK4X,WAAW6N,SAAWzlB,KAAK4X,WAAWuI,aAG7F8Z,kBAAmB,SAAUxnB,EAAQC,GAAlB,GACkC3O,GAazCmP,EACAC,EACArU,EAfJyK,EAAOkJ,EAAO,GAAGlJ,KAAM7K,EAAS6K,EAAK7K,OAAa0nD,EAAQ1zC,EAAO,GAAGnJ,KAAM88C,EAAa5zC,EAAOjP,IAAIkP,GAAS4zC,EAAmBD,EAAW3nD,OAAQ6nD,IACrJ,KAAKxiD,EAAM,EAAGA,EAAMrF,GACX0nD,EAAMriD,GADaA,IAIpBwF,EAAKxF,GAAK9E,MAAMH,SAChByK,EAAKxF,GAAK9E,MAAMH,OAASsnD,EAAMriD,GAAK9E,MAAMH,OAAS,GAG3D,KAAKiF,EAAM,EAAGA,EAAMrF,GACX0nD,EAAMriD,GADaA,IAIpBmP,EAAgB3J,EAAKxF,GAAKhC,aAC1BoR,EAAgBizC,EAAMriD,GAAKhC,aAC3BjD,EAAS,EACToU,EAAgBC,EAChBrU,EAASoU,EACFA,EAAgBC,IACvBrU,EAASqU,GAEbozC,EAAQpoD,KAAKW,EAEjB,KAAKiF,EAAM,EAAGA,EAAMuiD,EAAkBviD,IAClCsiD,EAAWtiD,GAAK9E,MAAMyI,QAAU,MAEpC,KAAK3D,EAAM,EAAGA,EAAMrF,EAAQqF,IACpBwiD,EAAQxiD,KACRwF,EAAKxF,GAAK9E,MAAMH,OAASsnD,EAAMriD,GAAK9E,MAAMH,OAASynD,EAAQxiD,GAAO,EAAI,KAG9E,KAAKA,EAAM,EAAGA,EAAMuiD,EAAkBviD,IAClCsiD,EAAWtiD,GAAK9E,MAAMyI,QAAU,MAIxChI,GAAM8mD,YACN9mD,GAAM8mD,WAAW3mD,OAAOuY,GAAKW,WAE7BrZ,GAAM+mD,WACN/mD,GAAM+mD,SAAS5mD,OAAOuY,GAAKW,WAC3BX,GAAKW,UAAU2tC,uBAAyB,SAAUpC,GAgC9C,QAASpmB,KACDyoB,GAAYC,IAAiBlkD,GAC7BkV,EAAWnE,IAAI,SAAUozC,GACzBjvC,EAAW8O,KAAKkgC,KAEhB/yC,EAAKyM,UACLumC,KAGR,QAASA,KACLC,EAAK5iD,SAASpD,SAASe,KACvB,IAAIZ,GAAUzD,EAAEqC,UAAWgU,EAAK5S,QAAQgmB,KACpC8/B,cAAc,EACdzC,SAAU,SAAUP,GAChBO,EAASh7B,QACL5C,KAAMq9B,EAAEr9B,KACRsgC,WAAYjD,EAAEkD,QACd3C,SAAU,GAAMP,EAAEkD,QAAUlD,EAAEhkC,WAAa,EAC3CA,WAAYgkC,EAAEhkC,eAI1BrgB,IAAMwnD,QAAQC,QAAQC,EAAOnmD,GAASomD,OAAO,WACzCP,EAAKr6C,WACNkb,KAAK,SAAUqG,GACd5qB,EAAO86B,QAAQlQ,GACfna,EAAKyzC,0BAA0BzzC,EAAKvO,SAAS,KAC9C65B,KAAK,SAAUooB,GACdnkD,EAAO46B,OAAOupB,KAGtB,QAASC,KAAT,GACQP,GAAUrvC,EAAW8O,OACrB3G,EAAa4mC,EAAW/uC,EAAWmI,aAAe,CACtDle,GAAKwO,OAAOo3C,EAAS/9C,SAAS,0BAC1Bu9C,EAAUlnC,EACVnI,EAAW8O,KAAKugC,EAAU,IAE1BrvC,EAAW6I,OAAO,SAAU+mC,GAC5BtpB,KAvE4B,GAWhCkpB,GAmBAvlD,EACA+kD,EA9BA/yC,EAAO7T,KACPoD,EAAS,GAAI5F,GAAEugC,SACfnmB,EAAa/D,EAAK+D,WAClB+uC,EAAW9yC,EAAK5S,QAAQgmB,IAAI0/B,SAC5Bc,EAAW5zC,EAAKiC,QAAQvR,KAAK,+BAA+Bkd,QAC5DqlC,EAAOtpD,EAAE,SAASiG,KAClByG,SAAU,WACV2C,UACAmJ,UAuEJ,OApEAnC,GAAKyzC,0BAA0BzzC,EAAKvO,SACpC8hD,EAAQvzC,EAAKiC,QAAQsxC,QAAQ3jD,KACzB3E,OAAQ,OACRD,MAAO,SACRqF,SAAS4iD,GACZM,EAAM7iD,KAAK,mBAAmBd,KAC1B3E,OAAQ,OACRD,MAAO,OACP2iB,SAAU,YAEd4lC,EAAM7iD,KAAK,6CAA6Cd,KACpD3E,OAAQ,OACRD,MAAO,OACP2iB,SAAU,YAEd4lC,EAAM7iD,KAAK,sDAAsDkI,SACjE26C,EAAM7iD,KAAK,sDAAsDd,KAAMikD,aAAc,IACrF1nD,KAAK2nD,iBAAiBrD,GAClBziD,EAAOulD,EAAM7iD,KAAK,+BAA+Bkd,QAAQlS,QACzDq3C,EAAehvC,EAAW8O,OA2C1BigC,GACA/uC,EAAW8I,KAAK,SAAU8mC,GAC1B5vC,EAAW8O,KAAK,IAEhB8gC,IAEGpkD,EAAO66B,WAElB7lB,GAAKW,UAAUuuC,0BAA4B,SAAUhiD,EAASsiD,GAAnB,GAEnCjiD,GACAoS,EACA8vC,EACAC,EACKtpD,EALLE,EAAS4G,EAAQ5G,MAKrB,KAASF,EAAI,EAAGA,EAAIE,EAAQF,IACxBmH,EAASL,EAAQ9G,GACjBuZ,EAAapS,EAAOoS,WACf6vC,EAiBGjiD,EAAOoiD,sBACPpiD,EAAOoiD,sBAAuB,EAC1BpiD,EAAOC,OACP5F,KAAKonC,WAAWzhC,GAEhB3F,KAAKsnC,WAAW3hC,IAEbA,EAAOL,SACdtF,KAAKsnD,0BAA0B3hD,EAAOL,QAASsiD,IAxBlB,gBAAtBjiD,GAAOoS,aACdA,EAAapS,EAAOoS,WAAWkP,KAEnC4gC,GAAmBliD,EAAOC,QAAUmS,KAAe,EACnD+vC,EAAsBniD,EAAOC,QAAUmS,KAAe,EACtDA,EAAa8vC,GAAmBC,EAC3B/vC,GAAepS,EAAOC,OAGhBmS,GAAcpS,EAAOC,QAC5BD,EAAOoiD,sBAAuB,EAC9B/nD,KAAKonC,WAAWzhC,IACToS,GAAcpS,EAAOL,SAC5BtF,KAAKsnD,0BAA0B3hD,EAAOL,UANtCK,EAAOoiD,sBAAuB,EAC9B/nD,KAAKsnC,WAAW3hC,MAqBhCyS,GAAKW,UAAUivC,SAAW,SAAU1D,GAWhC,QAASpmB,KACDyoB,GAAYC,IAAiBlkD,GAC7BkV,EAAW6I,OAAO,SAAUwnC,GAC5BrwC,EAAWnE,IAAI,SAAU,WACrBrQ,EAAO86B,QAAQgqB,KAEnBtwC,EAAW8O,KAAKkgC,IAEhBxjD,EAAO86B,QAAQgqB,GAGvB,QAASD,KACLp0C,EAAKyzC,0BAA0BzzC,EAAKvO,SACpCuO,EAAKs0C,gBAAiBtpD,MAAOgV,EAAKiC,QAAQjX,UAAaupD,WAAYv0C,EAAK5S,QAAQgmB,IAAImhC,aAAclpB,KAAK,SAAUlR,GAAV,GAC/Fi5B,GAAUrvC,EAAW8O,OACrB3G,EAAa4mC,EAAW/uC,EAAWmI,aAAe,EAClDsoC,GACA3hC,KAAMsH,EACNg5B,WAAYC,EACZ3C,SAAU2C,EAAUlnC,EACpBA,WAAYA,EAEhBlM,GAAKyzC,0BAA0BzzC,EAAKvO,SAAS,GAC7Cg/C,EAASh7B,OAAO++B,GAChBH,EAAI73C,OAAOg4C,EAAK3hC,MACZugC,EAAUlnC,EACVnI,EAAW8O,KAAKugC,EAAU,GAE1B/oB,MAELiB,KAAK,SAAUooB,GACdnkD,EAAO46B,OAAOupB,KA1CA,GAKlBnkD,GACAwU,EACA+uC,EAEAuB,EACAtB,EATA/yC,EAAO7T,IACX,OAAI6T,GAAK5S,QAAQgmB,IAAIqhC,WAA2C,QAA9Bz0C,EAAK5S,QAAQgmB,IAAIqhC,UACxCz0C,EAAK6yC,uBAAuBpC,IAEnClhD,EAAS,GAAI5F,GAAEugC,SACfnmB,EAAa/D,EAAK+D,WAClB+uC,EAAW9yC,EAAK5S,QAAQgmB,IAAI0/B,SAChC3mD,KAAK2nD,iBAAiBrD,GAClB4D,EAAM,GAAIxoD,IAAMwnD,QAAQqB,MACxB3B,EAAehvC,EAAW8O,OAmC1BigC,GACA/uC,EAAW8I,KAAK,SAAUunC,GAC1BrwC,EAAW8O,KAAK,IAEhBuhC,IAEG7kD,EAAO66B,YAElB7lB,GAAKW,UAAU4uC,iBAAmB,SAAU7pB,GAAV,GAQ1B0qB,GAPAC,EAAUjrD,EAAE,4EAChBirD,GAAQn4C,QAAQtQ,KAAK8V,QAAQsxC,QAAQ3jD,KACjCyG,SAAU,WACV8L,IAAK,EACLnJ,KAAM,KAEV7M,KAAK8V,QAAQzF,OAAOo4C,GAChBD,EAAKhrD,EAAE,wCAA0C0G,SAASukD,GAASC,kBACnE1tB,KAAM,QACN2tB,WAAY,GACZhjC,IAAK,EACLhb,IAAK,EACLtK,MAAO,IACRwR,KAAK,oBACRisB,EAASwmB,SAAS,SAAU12C,GACxB46C,EAAGnoD,MAAMuN,EAAE02C,YACZ+C,OAAO,WACN3nD,GAAMshB,QAAQynC,GACdA,EAAQh8C,aAgNpB4L,GAAGuwC,OAAOxwC,IACVC,GAAGuwC,OAAO1wC,KACZzY,OAAOC,MAAM2C,QACR5C,OAAOC,OACE,kBAAVnC,SAAwBA,OAAO+E,IAAM/E,OAAS,SAAUgF,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.grid.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/text-metrics', ['kendo.core'], f);\n}(function () {\n (function ($) {\n window.kendo.util = window.kendo.util || {};\n var LRUCache = kendo.Class.extend({\n init: function (size) {\n this._size = size;\n this._length = 0;\n this._map = {};\n },\n put: function (key, value) {\n var map = this._map;\n var entry = {\n key: key,\n value: value\n };\n map[key] = entry;\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n },\n get: function (key) {\n var entry = this._map[key];\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n entry.older = this._tail;\n entry.newer = null;\n this._tail.newer = entry;\n this._tail = entry;\n }\n return entry.value;\n }\n }\n });\n var REPLACE_REGEX = /\\r?\\n|\\r|\\t/g;\n var SPACE = ' ';\n function normalizeText(text) {\n return String(text).replace(REPLACE_REGEX, SPACE);\n }\n function objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n return parts.sort().join('');\n }\n function hashKey(str) {\n var hash = 2166136261;\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n return hash >>> 0;\n }\n function zeroSize() {\n return {\n width: 0,\n height: 0,\n baseline: 0\n };\n }\n var DEFAULT_OPTIONS = { baselineMarkerSize: 1 };\n var defaultMeasureBox;\n if (typeof document !== 'undefined') {\n defaultMeasureBox = document.createElement('div');\n defaultMeasureBox.style.cssText = 'position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;' + 'padding: 0 !important; margin: 0 !important; border: 0 !important;' + 'line-height: normal !important; visibility: hidden !important; white-space: pre!important;';\n }\n var TextMetrics = kendo.Class.extend({\n init: function (options) {\n this._cache = new LRUCache(1000);\n this.options = $.extend({}, DEFAULT_OPTIONS, options);\n },\n measure: function (text, style, options) {\n if (options === void 0) {\n options = {};\n }\n if (typeof text === 'undefined' || text === null) {\n return zeroSize();\n }\n var styleKey = objectKey(style);\n var cacheKey = hashKey(text + styleKey);\n var cachedResult = this._cache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n var size = zeroSize();\n var measureBox = options.box || defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n for (var key in style) {\n var value = style[key];\n if (typeof value !== 'undefined') {\n measureBox.style[key] = value;\n }\n }\n var textStr = options.normalizeText !== false ? normalizeText(text) : String(text);\n measureBox.textContent = textStr;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n if (textStr.length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n measureBox.parentNode.removeChild(measureBox);\n return size;\n },\n _baselineMarker: function () {\n var marker = document.createElement('div');\n marker.style.cssText = 'display: inline-block; vertical-align: baseline;width: ' + this.options.baselineMarkerSize + 'px; height: ' + this.options.baselineMarkerSize + 'px;overflow: hidden;';\n return marker;\n }\n });\n TextMetrics.current = new TextMetrics();\n function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n }\n kendo.deepExtend(kendo.util, {\n LRUCache: LRUCache,\n TextMetrics: TextMetrics,\n measureText: measureText,\n objectKey: objectKey,\n hashKey: hashKey,\n normalizeText: normalizeText\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.grid', [\n 'kendo.data',\n 'kendo.columnsorter',\n 'kendo.editable',\n 'kendo.window',\n 'kendo.filtermenu',\n 'kendo.columnmenu',\n 'kendo.groupable',\n 'kendo.pager',\n 'kendo.selectable',\n 'kendo.sortable',\n 'kendo.reorderable',\n 'kendo.resizable',\n 'kendo.ooxml',\n 'kendo.excel',\n 'kendo.pane',\n 'kendo.progressbar',\n 'kendo.pdf',\n 'kendo.dialog',\n 'kendo.pane',\n 'kendo.switch'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'grid',\n name: 'Grid',\n category: 'web',\n description: 'The Grid widget displays tabular data and offers rich support for interacting with data,including paging, sorting, grouping, and selection.',\n depends: [\n 'data',\n 'columnsorter',\n 'sortable'\n ],\n features: [\n {\n id: 'grid-editing',\n name: 'Editing',\n description: 'Support for record editing',\n depends: [\n 'editable',\n 'window'\n ]\n },\n {\n id: 'grid-filtering',\n name: 'Filtering',\n description: 'Support for record filtering',\n depends: ['filtermenu']\n },\n {\n id: 'grid-columnmenu',\n name: 'Column menu',\n description: 'Support for header column menu',\n depends: ['columnmenu']\n },\n {\n id: 'grid-grouping',\n name: 'Grouping',\n description: 'Support for grid grouping',\n depends: ['groupable']\n },\n {\n id: 'grid-filtercell',\n name: 'Row filter',\n description: 'Support for grid header filtering',\n depends: ['filtercell']\n },\n {\n id: 'grid-paging',\n name: 'Paging',\n description: 'Support for grid paging',\n depends: ['pager']\n },\n {\n id: 'grid-selection',\n name: 'Selection',\n description: 'Support for row selection',\n depends: ['selectable']\n },\n {\n id: 'grid-column-reorder',\n name: 'Column reordering',\n description: 'Support for column reordering',\n depends: ['reorderable']\n },\n {\n id: 'grid-column-resize',\n name: 'Column resizing',\n description: 'Support for column resizing',\n depends: ['resizable']\n },\n {\n id: 'grid-mobile',\n name: 'Grid adaptive rendering',\n description: 'Support for adaptive rendering',\n depends: [\n 'dialog',\n 'pane',\n 'switch'\n ]\n },\n {\n id: 'grid-excel-export',\n name: 'Excel export',\n description: 'Export grid data as Excel spreadsheet',\n depends: ['excel']\n },\n {\n id: 'grid-pdf-export',\n name: 'PDF export',\n description: 'Export grid data as PDF',\n depends: [\n 'pdf',\n 'drawing',\n 'progressbar'\n ]\n }\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, DataSource = kendo.data.DataSource, ObservableObject = kendo.data.ObservableObject, tbodySupportsInnerHtml = kendo.support.tbodyInnerHtml, activeElement = kendo._activeElement, Widget = ui.Widget, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, keys = kendo.keys, isPlainObject = $.isPlainObject, extend = $.extend, map = $.map, grep = $.grep, isArray = $.isArray, inArray = $.inArray, push = Array.prototype.push, proxy = $.proxy, isFunction = kendo.isFunction, isEmptyObject = $.isEmptyObject, contains = $.contains, math = Math, DOT = '.', PROGRESS = 'progress', ERROR = 'error', HIERARCHY_CELL_CLASS = 'k-hierarchy-cell', DATA_CELL = ':not(.k-group-cell):not([' + kendo.attr('virtual') + ']):not(.k-hierarchy-cell:not(:has(.k-icon.k-i-collapse,.k-icon.k-i-expand))):visible', SELECTION_CELL_SELECTOR = 'tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer) > td:not(.k-group-cell):not(.k-hierarchy-cell)', NAVROW = 'tr:not(.k-footer-template):visible', NAVCELL = ':not(.k-group-cell):not(.k-detail-cell):not(.k-hierarchy-cell):visible', ITEMROW = 'tr:not(.k-grouping-row):not(.k-detail-row):not(.k-footer-template):not(.k-group-footer):visible', COLGROUP = 'col:not(.k-group-col, .k-hierarchy-col)', FIRSTITEMROW = ITEMROW + ':first', LASTITEMROW = ITEMROW + ':last', FIRSTNAVITEM = NAVROW + ':first>' + NAVCELL + ':first', HEADERCELLS = 'th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)', WRAPPER = '.k-grid.k-widget', NS = '.kendoGrid', CONTENTRLOCKEDCONTAINER = 'k-grid-content-locked', GROUPCELLCLASS = 'k-group-cell', EDIT = 'edit', BEFOREEDIT = 'beforeEdit', SAVE = 'save', REMOVE = 'remove', DETAILINIT = 'detailInit', FILTERMENUINIT = 'filterMenuInit', COLUMNMENUINIT = 'columnMenuInit', FILTERMENUOPEN = 'filterMenuOpen', COLUMNMENUOPEN = 'columnMenuOpen', CELLCLOSE = 'cellClose', CHANGE = 'change', COLUMNHIDE = 'columnHide', COLUMNSHOW = 'columnShow', SAVECHANGES = 'saveChanges', DATABOUND = 'dataBound', DETAILEXPAND = 'detailExpand', DETAILCOLLAPSE = 'detailCollapse', ITEM_CHANGE = 'itemchange', PAGE = 'page', PAGING = 'paging', SCROLL = 'scroll', SYNC = 'sync', LOAD_START = 'loadStart', LOAD_END = 'loadEnd', FOCUSED = 'k-state-focused', FOCUSABLE = ':kendoFocusable', SELECTED = 'k-state-selected', CHECKBOX = 'k-checkbox', CHECKBOXINPUT = 'input[data-role=\\'checkbox\\'].' + CHECKBOX, NORECORDSCLASS = 'k-grid-norecords', LINK_CLASS = 'k-link', ICON_CLASS = 'k-icon', ORDER_CLASS = 'k-sort-order', SORTED_CLASS = 'k-sorted', HEADER_COLUMN_MENU_CLASS = 'k-header-column-menu', FILTER_MENU_CLASS = 'k-grid-filter', STICKY_CELL_CLASS = 'k-grid-content-sticky', STICKY_HEADER_CLASS = 'k-grid-header-sticky', STICKY_FOOTER_CLASS = 'k-grid-footer-sticky', STICKY_HEADER_NO_BORDER_CLASS = 'k-grid-no-left-border', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', COLUMNSTICK = 'columnStick', COLUMNUNSTICK = 'columnUnstick', NAVIGATE = 'navigate', CLICK = 'click', MOUSEDOWN = 'mousedown', HEIGHT = 'height', TABINDEX = 'tabIndex', FUNCTION = 'function', STRING = 'string', BOTTOM = 'bottom', CONTAINER_FOR = 'container-for', FIELD = 'field', INPUT = 'input', INCELL = 'incell', INLINE = 'inline', UNIQUE_ID = 'uid', MINCOLSPANVALUE = 1, COLSPAN = 'colSpan', OVERFLOW = 'overflow', HIDDEN = 'hidden', SORT = 'sort', GROUP_SORT = 'group-sort', DELETECONFIRM = 'Are you sure you want to delete this record?', NORECORDS = 'No records available.', CONFIRMDELETE = 'Delete', CANCELDELETE = 'Cancel', COLLAPSE = 'Collapse', EXPAND = 'Expand', ARIALABEL = 'aria-label', formatRegExp = /(\\}|\\#)/gi, templateHashRegExp = /#/gi, whitespaceRegExp = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]', leftRegExp = new RegExp('(\\\\s*left\\\\s*:\\\\s*\\\\d*px;?)*', 'ig'), rightRegExp = new RegExp('(\\\\s*right\\\\s*:\\\\s*\\\\d*px;?)*', 'ig'), nonDataCellsRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-group-cell|k-hierarchy-cell)' + '(' + whitespaceRegExp + '|$)'), filterRowRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-filter-row)' + '(' + whitespaceRegExp + '|$)'), COMMANDBUTTONTMPL = '# if (iconClass) {#' + '#=text#' + '# } else { #' + '#=text#' + '# } #', SELECTCOLUMNTMPL = '', SELECTCOLUMNHEADERTMPL = '', isRtl = false, browser = kendo.support.browser;\n var isIE11 = browser.msie && browser.version === 11;\n var isMac = /Mac OS/.test(navigator.userAgent);\n var classNames = {\n content: 'k-content',\n widget: 'k-widget',\n scrollContainer: 'k-scroll-container'\n };\n var GroupsPager;\n if (ui.Pager) {\n GroupsPager = ui.Pager.extend({\n init: function (element, options) {\n ui.Pager.fn.init.call(this, element, extend(true, {}, options));\n this.dataSource.options.useRanges = true;\n this.dataSource._omitPrefetch = true;\n },\n options: { name: 'GroupsPager' },\n totalPages: function () {\n var that = this;\n return Math.ceil((that._collapsedTotal() || 0) / (that.pageSize() || 1));\n },\n _collapsedTotal: function () {\n var dataSource = this.dataSource;\n return dataSource ? dataSource.groupsTotal(true) || 0 : 0;\n }\n });\n }\n var VirtualScrollable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._refreshHandler = proxy(that.refresh, that);\n that.setDataSource(options.dataSource);\n that.wrap();\n },\n setDataSource: function (dataSource) {\n var that = this;\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n }\n that.dataSource = dataSource;\n that.dataSource.bind(CHANGE, that._refreshHandler);\n that.dataSource.options.useRanges = true;\n },\n options: {\n name: 'VirtualScrollable',\n itemHeight: $.noop,\n prefetch: true,\n maxScrollHeight: 250000\n },\n events: [\n PAGING,\n PAGE,\n SCROLL,\n LOAD_START,\n LOAD_END\n ],\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n that.wrapper.add(that.verticalScrollbar).off(NS);\n clearTimeout(that._timeout);\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n if (that.drag) {\n that.drag.destroy();\n that.drag = null;\n }\n that.wrapper = that.element = that.verticalScrollbar = null;\n that._refreshHandler = null;\n },\n wrap: function () {\n var that = this, scrollbar = kendo.support.scrollbar() + 1, element = that.element, wrapper;\n element.css({\n width: 'auto',\n overflow: 'hidden'\n }).css(isRtl ? 'padding-left' : 'padding-right', scrollbar);\n that.content = element.children().first();\n wrapper = that.wrapper = that.content.wrap('
').parent().bind('DOMMouseScroll' + NS + ' mousewheel' + NS, proxy(that._wheelScroll, that));\n that._wrapper();\n if (kendo.support.kineticScrollNeeded || kendo.support.touch) {\n that.wrapper.css('touch-action', 'none');\n that.drag = new kendo.UserEvents(that.wrapper, {\n global: true,\n allowSelection: true,\n start: function (e) {\n e.sender.capture();\n },\n move: function (e) {\n that.verticalScrollbar.scrollTop(that.verticalScrollbar.scrollTop() - e.y.delta);\n kendo.scrollLeft(wrapper, kendo.scrollLeft(wrapper) - e.x.delta);\n e.preventDefault();\n }\n });\n }\n that.verticalScrollbar = $('
').css({ width: scrollbar }).appendTo(element).bind('scroll' + NS, proxy(that._scroll, that));\n },\n _wrapper: function () {\n var that = this;\n if (isIE11) {\n that.wrapper.css({ 'overflow-y': SCROLL });\n that.element.css(isRtl ? 'padding-left' : 'padding-right', 0);\n }\n },\n _wheelScroll: function (e) {\n if (e.ctrlKey) {\n return;\n }\n var scrollbar = this.verticalScrollbar, scrollTop = scrollbar.scrollTop(), delta = kendo.wheelDeltaY(e);\n if (delta && !(delta > 0 && scrollTop === 0) && !(delta < 0 && scrollTop + scrollbar[0].clientHeight == scrollbar[0].scrollHeight)) {\n e.preventDefault();\n this.verticalScrollbar.scrollTop(scrollTop + -delta);\n }\n },\n _scroll: function (e) {\n var that = this, delayLoading = !that.options.prefetch, scrollTop = e.currentTarget.scrollTop, dataSource = that.dataSource, rowHeight = that.itemHeight, skip = dataSource.skip() || 0, start = that._rangeStart || skip, height = that.element.innerHeight(), isScrollingUp = !!(that._scrollbarTop && that._scrollbarTop > scrollTop), firstItemIndex = math.max(math.floor(scrollTop / rowHeight), 0), lastItemOffset = isScrollingUp ? math.ceil(height / rowHeight) : math.floor(height / rowHeight), lastItemIndex = math.max(firstItemIndex + lastItemOffset, 0);\n if (that._preventScroll) {\n that._preventScroll = false;\n return;\n }\n that._prevScrollTop = that._scrollTop;\n that._scrollTop = scrollTop - start * rowHeight;\n that._scrollbarTop = scrollTop;\n that._scrolling = delayLoading;\n if (!that._fetch(firstItemIndex, lastItemIndex, isScrollingUp)) {\n that.wrapper[0].scrollTop = that._scrollTop;\n }\n that.trigger(SCROLL);\n if (delayLoading) {\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n that._scrollingTimeout = setTimeout(function () {\n that._scrolling = false;\n that._page(that._rangeStart, that.dataSource.take());\n }, 100);\n }\n },\n scrollToTop: function () {\n this._scrollTo(0);\n },\n scrollToBottom: function () {\n var scrollbar = this.verticalScrollbar;\n this._scrollTo(scrollbar[0].scrollHeight - scrollbar.height());\n },\n _scrollWrapperToTop: function () {\n this.wrapper.scrollTop(0);\n },\n _scrollWrapperToBottom: function () {\n this.wrapper.scrollTop(this.wrapper[0].scrollHeight);\n },\n _scrollWrapperOnColumnResize: function () {\n var that = this;\n var wrapper = this.wrapper;\n var initialScrollTop = wrapper.scrollTop();\n if (wrapper[0].scrollWidth > wrapper[0].clientWidth) {\n if (!that._wrapperScrolled && initialScrollTop || that._isScrolledToBottom()) {\n wrapper.scrollTop(initialScrollTop + kendo.support.scrollbar());\n that._scrollTop = wrapper.scrollTop();\n that._wrapperScrolled = true;\n }\n } else if (that._wrapperScrolled) {\n if (!that._isWrapperScrolledToBottom()) {\n wrapper.scrollTop(initialScrollTop - kendo.support.scrollbar());\n that._scrollTop = wrapper.scrollTop();\n }\n that._wrapperScrolled = false;\n }\n },\n _scrollTo: function (scrollTop) {\n var that = this;\n var scrollbar = that.verticalScrollbar;\n if (scrollbar.scrollTop() !== scrollTop) {\n that._preventScroll = true;\n }\n that.wrapper.scrollTop(scrollTop);\n that._scrollTop = that.wrapper.scrollTop();\n scrollbar.scrollTop(scrollTop);\n that._scrollbarTop = scrollbar.scrollTop();\n },\n _isScrolledToTop: function () {\n return this.verticalScrollbar.scrollTop() === 0;\n },\n _isScrolledToBottom: function () {\n var scrollbar = this.verticalScrollbar;\n var scrollTop = scrollbar.scrollTop();\n return scrollTop > 0 && scrollTop >= parseInt(scrollbar[0].scrollHeight - scrollbar.height(), 10);\n },\n _isWrapperScrolledToBottom: function () {\n var wrapper = this.wrapper;\n return wrapper.scrollTop() >= parseInt(wrapper[0].scrollHeight - wrapper.height(), 10);\n },\n itemIndex: function (rowIndex) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n return rangeStart + rowIndex;\n },\n position: function (index) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n var pageSize = this.dataSource.pageSize();\n var result;\n if (index > rangeStart) {\n result = index - rangeStart;\n } else {\n result = rangeStart - index - 1;\n }\n return result > pageSize ? pageSize : result;\n },\n scrollIntoView: function (row) {\n var container = this.wrapper[0];\n var containerHeight = container.clientHeight;\n var containerScroll = !this._isScrolledToBottom() ? this._scrollTop || container.scrollTop : container.scrollTop;\n var elementOffset = row[0].offsetTop;\n var elementHeight = row[0].offsetHeight;\n if (containerScroll > elementOffset) {\n this.verticalScrollbar[0].scrollTop -= containerHeight / 2;\n } else if (elementOffset + elementHeight >= containerScroll + containerHeight) {\n this.verticalScrollbar[0].scrollTop += containerHeight / 2;\n }\n },\n _fetch: function (firstItemIndex, lastItemIndex, scrollingUp) {\n var that = this, dataSource = that.dataSource, itemHeight = that.itemHeight, take = dataSource.take(), rangeStart = that._rangeStart || dataSource.skip() || 0, currentSkip = math.floor(firstItemIndex / take) * take, fetching = false, prefetchAt = 0.33;\n var scrollbar = that.verticalScrollbar;\n var webkitCorrection = browser.webkit ? 1 : 0;\n var total = dataSource._isGroupPaged() ? dataSource.groupsTotal(true) : dataSource.total();\n if (firstItemIndex < rangeStart) {\n fetching = true;\n rangeStart = math.max(0, lastItemIndex - take);\n that._scrollTop = scrollbar.scrollTop() - rangeStart * itemHeight;\n that._page(rangeStart, take);\n } else if (lastItemIndex >= rangeStart + take && !scrollingUp) {\n fetching = true;\n rangeStart = math.min(firstItemIndex, total - take);\n if (scrollbar.scrollTop() >= scrollbar[0].scrollHeight - scrollbar[0].offsetHeight - webkitCorrection) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper[0].offsetHeight;\n } else if (that.dataSource._isGroupPaged() && firstItemIndex >= total - take) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper[0].offsetHeight - (that._scrollTop - that._prevScrollTop);\n } else {\n that._scrollTop = itemHeight;\n }\n that._page(rangeStart, take);\n } else if (!that._fetching && that.options.prefetch) {\n if (firstItemIndex < currentSkip + take - take * prefetchAt && firstItemIndex > take) {\n dataSource.prefetch(currentSkip - take, take, $.noop);\n }\n if (lastItemIndex > currentSkip + take * prefetchAt) {\n dataSource.prefetch(currentSkip + take, take, $.noop);\n }\n }\n return fetching;\n },\n fetching: function () {\n return this._fetching;\n },\n _page: function (skip, take, callback) {\n var that = this, delayLoading = !that.options.prefetch, dataSource = that.dataSource, isGroupPaged = dataSource._isGroupPaged();\n callback = isFunction(callback) ? callback : $.noop;\n if (that.trigger(PAGING, {\n skip: skip,\n take: take\n })) {\n return;\n }\n clearTimeout(that._timeout);\n that._fetching = true;\n that._rangeStart = skip;\n if (isGroupPaged && dataSource._groupRangeExists(skip, skip + take) || !isGroupPaged && dataSource.inRange(skip, take)) {\n that.trigger(LOAD_START);\n dataSource.range(skip, take, function () {\n that.trigger(LOAD_END);\n callback();\n that.trigger(PAGE);\n }, 'page');\n } else {\n if (!delayLoading) {\n that.trigger(LOAD_START);\n }\n that._timeout = setTimeout(function () {\n if (!that._scrolling) {\n if (delayLoading) {\n that.trigger(LOAD_START);\n }\n dataSource.range(skip, take, function () {\n that.trigger(LOAD_END);\n callback();\n that.trigger(PAGE);\n });\n }\n }, 100);\n }\n },\n repaintScrollbar: function (shouldScrollWrapper) {\n var that = this, html = '', maxHeight = that.options.maxScrollHeight, dataSource = that.dataSource, scrollbar = !kendo.support.kineticScrollNeeded ? kendo.support.scrollbar() : 0, wrapperElement = that.wrapper[0], totalHeight, idx, itemHeight;\n var wasScrolledToBottom = that._isScrolledToBottom();\n itemHeight = that.itemHeight = that.options.itemHeight() || 0;\n var addScrollBarHeight = wrapperElement.scrollWidth > wrapperElement.offsetWidth ? scrollbar : 0;\n totalHeight = (dataSource._isGroupPaged() ? dataSource.groupsTotal(true) : dataSource.total()) * itemHeight + addScrollBarHeight;\n for (idx = 0; idx < math.floor(totalHeight / maxHeight); idx++) {\n html += '
';\n }\n if (totalHeight % maxHeight) {\n html += '
';\n }\n that.verticalScrollbar.html(html);\n if (wasScrolledToBottom && !that._isScrolledToBottom() && !that.dataSource._isGroupPaged()) {\n that.scrollToBottom();\n }\n if (typeof that._scrollTop !== 'undefined' && !!shouldScrollWrapper) {\n wrapperElement.scrollTop = that._scrollTop;\n that._scrollWrapperOnColumnResize();\n }\n },\n refresh: function (e) {\n var that = this, dataSource = that.dataSource, rangeStart = that._rangeStart;\n var action = (e || {}).action;\n var shouldScrollWrapper = that._isScrolledToBottom() || !action || action !== ITEM_CHANGE && action !== REMOVE && action !== SYNC;\n that.trigger(LOAD_END);\n clearTimeout(that._timeout);\n that.repaintScrollbar(shouldScrollWrapper);\n if (that.drag) {\n that.drag.cancel();\n }\n if (typeof rangeStart !== 'undefined' && !that._fetching) {\n if (!action || action !== SYNC && action !== ITEM_CHANGE && action !== 'expandGroup') {\n that._rangeStart = dataSource.skip();\n }\n if (dataSource.page() === 1 && (!action || action !== SYNC && action !== ITEM_CHANGE && action !== 'expandGroup' && action !== 'collapseGroup')) {\n that.verticalScrollbar[0].scrollTop = 0;\n }\n }\n that._fetching = false;\n }\n });\n function attrEquals(attrName, attrValue) {\n return '[' + kendo.attr(attrName) + '=' + attrValue + ']';\n }\n function groupCells(count) {\n return new Array(count + 1).join(' ');\n }\n function stringifyAttributes(attributes) {\n var attr, result = ' ';\n if (attributes) {\n if (typeof attributes === STRING) {\n return attributes;\n }\n for (attr in attributes) {\n if (attributes[attr] !== '') {\n result += attr + '=\"' + attributes[attr] + '\"';\n }\n }\n }\n return result;\n }\n var defaultCommands = {\n create: {\n text: 'Add new record',\n className: 'k-grid-add',\n iconClass: 'k-icon k-i-plus'\n },\n cancel: {\n text: 'Cancel changes',\n className: 'k-grid-cancel-changes',\n iconClass: 'k-icon k-i-cancel'\n },\n save: {\n text: 'Save changes',\n className: 'k-grid-save-changes',\n iconClass: 'k-icon k-i-check'\n },\n destroy: {\n text: 'Delete',\n className: 'k-grid-delete',\n iconClass: 'k-icon k-i-close'\n },\n edit: {\n text: 'Edit',\n className: 'k-grid-edit',\n iconClass: 'k-icon k-i-edit'\n },\n update: {\n text: 'Update',\n className: 'k-primary k-grid-update',\n iconClass: 'k-icon k-i-check'\n },\n canceledit: {\n text: 'Cancel',\n className: 'k-grid-cancel',\n iconClass: 'k-icon k-i-cancel'\n },\n excel: {\n text: 'Export to Excel',\n className: 'k-grid-excel',\n iconClass: 'k-icon k-i-file-excel'\n },\n pdf: {\n text: 'Export to PDF',\n className: 'k-grid-pdf',\n iconClass: 'k-icon k-i-file-pdf'\n },\n search: {\n text: 'Search...',\n className: 'k-grid-search'\n }\n };\n function cursor(context, value) {\n $('th, th .k-grid-filter, th .k-link', context).add(document.body).css('cursor', value);\n }\n function reorder(selector, source, dest, before, count) {\n var sourceIndex = source;\n source = $();\n count = count || 1;\n for (var idx = 0; idx < count; idx++) {\n source = source.add(selector.eq(sourceIndex + idx));\n }\n if (typeof dest == 'number') {\n source[before ? 'insertBefore' : 'insertAfter'](selector.eq(dest));\n } else {\n source.appendTo(dest);\n }\n }\n function elements(lockedContent, content, filter) {\n return $(lockedContent).add(content).find(filter);\n }\n function attachCustomCommandEvent(context, container, commands) {\n var idx, length, command, commandName;\n commands = !isArray(commands) ? [commands] : commands;\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = commands[idx];\n if (isPlainObject(command) && command.click) {\n commandName = command.name || command.text;\n container.on(CLICK + NS, 'a.k-grid-' + (commandName || '').replace(/\\s/g, ''), { commandName: commandName }, proxy(command.click, context));\n }\n }\n }\n function normalizeColumns(columns, encoded, hide, locked, parentIds) {\n return map(columns, function (column) {\n column = typeof column === STRING ? { field: column } : column;\n var hidden;\n column.parentIds = parentIds;\n if (!isVisible(column) || hide) {\n column.attributes = addHiddenStyle(column.attributes);\n column.footerAttributes = addHiddenStyle(column.footerAttributes);\n column.headerAttributes = addHiddenStyle(column.headerAttributes);\n hidden = true;\n }\n var uid = kendo.guid();\n if (locked && !column.locked) {\n column.locked = locked;\n }\n column.headerAttributes = extend({ headers: parentIds }, column.headerAttributes);\n if (!column.headerAttributes.id) {\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n column.uid = uid;\n } else {\n uid = column.headerAttributes.id;\n }\n if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden, column.locked, parentIds ? parentIds + ' ' + uid : uid);\n }\n return extend({\n encoded: encoded,\n hidden: hidden,\n locked: locked\n }, column);\n });\n }\n function columnParent(column, columns) {\n var parents = [];\n columnParents(column, columns, parents);\n return parents[parents.length - 1];\n }\n function columnParents(column, columns, parents) {\n parents = parents || [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (column === columns[idx]) {\n return true;\n } else if (columns[idx].columns) {\n var inserted = parents.length;\n parents.push(columns[idx]);\n if (!columnParents(column, columns[idx].columns, parents)) {\n parents.splice(inserted, parents.length - inserted);\n } else {\n return true;\n }\n }\n }\n return false;\n }\n function setColumnVisibility(column, visible) {\n setVisibility(column, visible, visible);\n }\n function setVisibility(column, visible, show) {\n var method = show ? removeHiddenStyle : addHiddenStyle;\n column.hidden = !visible;\n column.attributes = method(column.attributes);\n column.footerAttributes = method(column.footerAttributes);\n column.headerAttributes = method(column.headerAttributes);\n }\n function setColumnMediaVisibility(column, visible) {\n setColumnMatchesMedia(column);\n var hideByMedia = column._hideByMedia;\n setVisibility(column, visible, hideByMedia ? column.matchesMedia : visible);\n }\n function setColumnMatchesMedia(column) {\n column.matchesMedia = columnMatchesMedia(column);\n }\n function columnMatchesMedia(column) {\n return column && (isUndefined(column.media) || !isUndefined(column.media) && kendo.matchesMedia(column.media));\n }\n function isCellVisible() {\n return this.style.display !== 'none';\n }\n function isElementVisible(element) {\n return $(element)[0].style.display !== 'none';\n }\n function isVisible(column) {\n return visibleColumns([column]).length > 0;\n }\n function visibleColumns(columns) {\n return grep(columns, function (column) {\n var result = !column.hidden && column.matchesMedia !== false;\n if (result && column.columns) {\n result = visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n }\n function columnsWithMedia(columns) {\n var result = [];\n var column;\n for (var i = 0; i < columns.length; i++) {\n column = columns[i];\n if (!isUndefined(column.media)) {\n if (!isUndefined(column.minScreenWidth)) {\n throw new Error('Using \\'media\\' and \\'minScreenWidth\\' options at the same time is not supported.');\n }\n result.push(column);\n }\n if (column.columns) {\n result = result.concat(columnsWithMedia(column.columns));\n }\n }\n return result;\n }\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n function toJQuery(elements) {\n return $(elements).map(function () {\n return this.toArray();\n });\n }\n function updateCellRowSpan(cell, columns, sourceLockedColumnsCount) {\n var lockedColumnDepth = depth(lockedColumns(columns));\n var nonLockedColumnDepth = depth(nonLockedColumns(columns));\n var rowSpan = cell.rowSpan;\n if (sourceLockedColumnsCount) {\n if (lockedColumnDepth > nonLockedColumnDepth) {\n cell.rowSpan = rowSpan - (lockedColumnDepth - nonLockedColumnDepth) || 1;\n } else {\n cell.rowSpan = rowSpan + (nonLockedColumnDepth - lockedColumnDepth);\n }\n } else {\n if (lockedColumnDepth > nonLockedColumnDepth) {\n cell.rowSpan = rowSpan + (lockedColumnDepth - nonLockedColumnDepth);\n } else {\n cell.rowSpan = rowSpan - (nonLockedColumnDepth - lockedColumnDepth) || 1;\n }\n }\n }\n function findColumnByUID(columns, uid) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].uid == uid) {\n return columns[i];\n }\n }\n }\n function findColumnByField(columns, field) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].field == field) {\n return columns[i];\n }\n }\n }\n function moveCellsBetweenContainers(sources, target, leafs, columns, container, destination, groups, action) {\n var sourcesDepth = depth(sources);\n var targetDepth = depth([target]);\n if (sourcesDepth > targetDepth) {\n var groupCells = new Array(groups + 1).join(' ');\n var rows = destination.children(':not(.k-filter-row)');\n $(new Array(sourcesDepth - targetDepth + 1).join('' + groupCells + '')).insertAfter(rows.last());\n }\n addRowSpanValue(destination, sourcesDepth - targetDepth);\n moveCells(leafs, columns, container, destination, action);\n }\n function updateCellIndex(thead, columns, offset) {\n offset = offset || 0;\n var position;\n var cell;\n var allColumns = columns;\n columns = leafColumns(columns);\n var cells = {};\n var rows = thead.find('>tr:not(.k-filter-row)');\n var filter = function () {\n var el = $(this);\n return !el.hasClass('k-group-cell') && !el.hasClass('k-hierarchy-cell');\n };\n for (var idx = 0, length = columns.length; idx < length; idx++) {\n position = columnPosition(columns[idx], allColumns);\n if (!cells[position.row]) {\n cells[position.row] = rows.eq(position.row).find('.k-header').filter(filter);\n }\n cell = cells[position.row].eq(position.cell);\n cell.attr(kendo.attr('index'), offset + idx);\n }\n return columns.length;\n }\n function depth(columns) {\n var result = 1;\n var max = 0;\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n var temp = depth(columns[idx].columns);\n if (temp > max) {\n max = temp;\n }\n }\n }\n return result + max;\n }\n function moveCells(leafs, columns, container, destination, action) {\n var sourcePosition = columnVisiblePosition(leafs[0], columns);\n var ths = container.find('>tr:not(.k-filter-row):eq(' + sourcePosition.row + ')>th.k-header');\n var t = $();\n var sourceIndex = sourcePosition.cell;\n var idx;\n for (idx = 0; idx < leafs.length; idx++) {\n t = t.add(ths.eq(sourceIndex + idx));\n }\n destination.find('>tr:not(.k-filter-row)').eq(sourcePosition.row)[action](t);\n var children = [];\n for (idx = 0; idx < leafs.length; idx++) {\n if (leafs[idx].columns) {\n children = children.concat(leafs[idx].columns);\n }\n }\n if (children.length) {\n moveCells(children, columns, container, destination, action);\n }\n }\n function columnPosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = {\n cell: cellCounts[row],\n row: row\n };\n break;\n } else if (columns[idx].columns) {\n result = columnPosition(column, columns[idx].columns, row + 1, cellCounts);\n if (result) {\n break;\n }\n }\n cellCounts[row]++;\n }\n return result;\n }\n function findParentColumnWithChildren(columns, index, source, rtl) {\n var target;\n var locked = !!source.locked;\n var targetLocked;\n do {\n target = columns[index];\n index += rtl ? 1 : -1;\n targetLocked = !!target.locked;\n } while (target && index > -1 && index < columns.length && target != source && !target.columns && targetLocked === locked);\n return target;\n }\n function findReorderTarget(columns, target, source, before, masterColumns) {\n if (target.columns) {\n target = target.columns;\n return target[before ? 0 : target.length - 1];\n } else {\n var parent = columnParent(target, columns);\n var parentColumns;\n if (parent) {\n parentColumns = parent.columns;\n } else {\n parentColumns = columns;\n }\n var index = inArray(target, parentColumns);\n if (index === 0 && before) {\n index++;\n } else if (index == parentColumns.length - 1 && !before || !source.locked && !target.columns && !before) {\n index--;\n } else if (index > 0 || index === 0 && !before) {\n index++;\n }\n var sourceIndex = inArray(source, parentColumns);\n target = findParentColumnWithChildren(parentColumns, index, source, sourceIndex > index);\n var targetIndex = inArray(target, masterColumns);\n if (target.columns && (!targetIndex || targetIndex === parentColumns.length - 1)) {\n return null;\n }\n if (target && target != source && target.columns) {\n return findReorderTarget(columns, target, source, before, masterColumns);\n }\n }\n return null;\n }\n function columnVisiblePosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = {\n cell: cellCounts[row],\n row: row\n };\n break;\n } else if (columns[idx].columns) {\n result = columnVisiblePosition(column, columns[idx].columns, row + 1, cellCounts);\n if (result) {\n break;\n }\n }\n if (!columns[idx].hidden) {\n cellCounts[row]++;\n }\n }\n return result;\n }\n function flatColumnsInDomOrder(columns) {\n var result = flatColumns(lockedColumns(columns));\n return result.concat(flatColumns(nonLockedColumns(columns)));\n }\n function targetParentContainerIndex(flatColumns, columns, sourceIndex, targetIndex) {\n var column = flatColumns[sourceIndex];\n var target = flatColumns[targetIndex];\n var parent = columnParent(column, columns);\n columns = parent ? parent.columns : columns;\n return inArray(target, columns);\n }\n function flatColumns(columns) {\n var result = [];\n var children = [];\n for (var idx = 0; idx < columns.length; idx++) {\n result.push(columns[idx]);\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n if (children.length) {\n result = result.concat(flatColumns(children));\n }\n return result;\n }\n function hiddenLeafColumnsCount(columns) {\n var counter = 0;\n var column;\n for (var idx = 0; idx < columns.length; idx++) {\n column = columns[idx];\n if (column.columns) {\n counter += hiddenLeafColumnsCount(column.columns);\n } else if (column.hidden) {\n counter++;\n }\n }\n return counter;\n }\n function sumWidths(cols) {\n var width = 0;\n for (var idx = 0, length = cols.length; idx < length; idx++) {\n if (!cols[idx].hidden) {\n width += parseInt(cols[idx].width, 10);\n }\n }\n return width;\n }\n function columnsWidth(cols) {\n var colWidth, width = 0;\n for (var idx = 0, length = cols.length; idx < length; idx++) {\n colWidth = cols[idx].style.width;\n if (colWidth && colWidth.indexOf('%') == -1) {\n width += parseInt(colWidth, 10);\n }\n }\n return width;\n }\n function removeRowSpanValue(container, count) {\n var cells = container.find('tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)');\n var rowSpan;\n for (var idx = 0; idx < cells.length; idx++) {\n rowSpan = cells[idx].rowSpan;\n if (rowSpan > 1) {\n cells[idx].rowSpan = rowSpan - count || 1;\n }\n }\n }\n function addRowSpanValue(container, count) {\n var cells = container.find('tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)');\n for (var idx = 0; idx < cells.length; idx++) {\n cells[idx].rowSpan += count;\n }\n }\n function removeEmptyRows(container) {\n var rows = container.find('tr:not(.k-filter-row)');\n var emptyRowsCount = rows.filter(function () {\n return !$(this).children().length;\n }).remove().length;\n var cells = rows.find('th:not(.k-group-cell,.k-hierarchy-cell)');\n for (var idx = 0; idx < cells.length; idx++) {\n if (cells[idx].rowSpan > 1) {\n cells[idx].rowSpan -= emptyRowsCount;\n }\n }\n return rows.length - emptyRowsCount;\n }\n function mapColumnToCellRows(columns, cells, rows, rowIndex, offset) {\n var idx, row, length, children = [];\n for (idx = 0, length = columns.length; idx < length; idx++) {\n row = rows[rowIndex] || [];\n row.push(cells.eq(offset + idx));\n rows[rowIndex] = row;\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n if (children.length) {\n mapColumnToCellRows(children, cells, rows, rowIndex + 1, offset + columns.length);\n }\n }\n function setLeftAndRightStyles(element, left, right) {\n element.css({\n 'left': left,\n 'right': right\n });\n }\n function createColumnAttribute(column, attribute, property) {\n column[attribute] = column[attribute] || {};\n column[attribute][property] = column[attribute][property] || '';\n }\n function addColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n if (column[attribute][property] !== '') {\n column[attribute][property] += ' ' + value;\n } else {\n column[attribute][property] = value;\n }\n }\n function removeColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n column[attribute][property] = column[attribute][property].replace(value, '');\n }\n function lockedColumns(columns) {\n return grep(columns, function (column) {\n return column.locked;\n });\n }\n function nonLockedColumns(columns) {\n return grep(columns, function (column) {\n return !column.locked;\n });\n }\n function stickyColumns(columns) {\n return grep(columns, function (column) {\n return column.sticky && !column.locked;\n });\n }\n function visibleStickyColumns(columns) {\n return grep(columns, function (column) {\n return column.sticky && !column.locked && isVisible(column);\n });\n }\n function visibleNonLockedColumns(columns) {\n return grep(columns, function (column) {\n return !column.locked && isVisible(column);\n });\n }\n function visibleLockedColumns(columns) {\n return grep(columns, function (column) {\n return column.locked && isVisible(column);\n });\n }\n function visibleLeafColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].hidden) {\n continue;\n }\n if (columns[idx].columns) {\n result = result.concat(visibleLeafColumns(columns[idx].columns));\n } else {\n result.push(columns[idx]);\n }\n }\n return result;\n }\n function childColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n result = result.concat(columns[idx].columns);\n }\n }\n return result;\n }\n function visibleChildColumns(columns) {\n var result = childColumns(columns);\n result = result.filter(function (e) {\n return !e.hidden;\n });\n return result;\n }\n function leafColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (!columns[idx].columns) {\n result.push(columns[idx]);\n continue;\n }\n result = result.concat(leafColumns(columns[idx].columns));\n }\n return result;\n }\n function getColumnsFields(columns) {\n var result = [];\n columns = leafColumns(columns);\n for (var idx = 0; idx < columns.length; idx++) {\n if (typeof columns[idx] === 'string') {\n result.push(columns[idx]);\n } else if (columns[idx].field) {\n result.push(columns[idx].field);\n }\n }\n return result;\n }\n function leafDataCells(container) {\n var rows = container.find('>tr:not(.k-filter-row)');\n var filter = function () {\n var el = $(this);\n return !el.hasClass('k-group-cell') && !el.hasClass('k-hierarchy-cell');\n };\n var cells = $();\n if (rows.length > 1) {\n cells = rows.find('th').filter(filter).filter(function () {\n return this.rowSpan > 1;\n });\n }\n cells = cells.add(rows.last().find('th').filter(filter));\n var indexAttr = kendo.attr('index');\n cells.sort(function (a, b) {\n a = $(a);\n b = $(b);\n var indexA = a.attr(indexAttr);\n var indexB = b.attr(indexAttr);\n if (indexA === undefined) {\n indexA = $(a).index();\n }\n if (indexB === undefined) {\n indexB = $(b).index();\n }\n indexA = parseInt(indexA, 10);\n indexB = parseInt(indexB, 10);\n return indexA > indexB ? 1 : indexA < indexB ? -1 : 0;\n });\n return cells;\n }\n function parentColumnsCells(cell) {\n var container = cell.closest('table');\n var result = $().add(cell);\n var row = cell.closest('tr');\n var headerRows = container.find('tr:not(.k-filter-row)');\n var level = headerRows.index(row);\n if (level > 0) {\n var parent = headerRows.eq(level - 1);\n var parentCellsWithChildren = parent.find('th:not(.k-group-cell,.k-hierarchy-cell)').filter(function () {\n return !$(this).attr('rowspan');\n });\n var offset = 0;\n var index = row.find('th:not(.k-group-cell,.k-hierarchy-cell)').index(cell);\n var prevCells = cell.prevAll(':not(.k-group-cell,.k-hierarchy-cell)').filter(function () {\n return this.colSpan > 1;\n });\n for (var idx = 0; idx < prevCells.length; idx++) {\n offset += prevCells[idx].colSpan || 1;\n }\n index += Math.max(offset - 1, 0);\n offset = 0;\n for (idx = 0; idx < parentCellsWithChildren.length; idx++) {\n var parentCell = parentCellsWithChildren.eq(idx);\n if (parentCell.attr('data-colspan')) {\n offset += parentCell[0].getAttribute('data-colspan');\n } else {\n offset += 1;\n }\n if (index >= idx && index < offset) {\n result = parentColumnsCells(parentCell).add(result);\n break;\n }\n }\n }\n return result;\n }\n function childColumnsCells(cell) {\n var container = cell.closest('thead');\n var result = $().add(cell);\n var row = cell.closest('tr');\n var headerRows = container.find('tr:not(.k-filter-row)');\n var level = headerRows.index(row) + cell[0].rowSpan;\n var colSpanAttr = kendo.attr('colspan');\n if (level <= headerRows.length - 1) {\n var child = row.next();\n var prevCells = cell.prevAll(':not(.k-group-cell,.k-hierarchy-cell)');\n var idx;\n prevCells = prevCells.filter(function () {\n return !this.rowSpan || this.rowSpan === 1;\n });\n var offset = 0;\n for (idx = 0; idx < prevCells.length; idx++) {\n offset += parseInt(prevCells.eq(idx).attr(colSpanAttr), 10) || 1;\n }\n var cells = child.find('th:not(.k-group-cell,.k-hierarchy-cell)');\n var colSpan = parseInt(cell.attr(colSpanAttr), 10) || 1;\n idx = 0;\n while (idx < colSpan) {\n child = cells.eq(idx + offset);\n result = result.add(childColumnsCells(child));\n var value = parseInt(child.attr(colSpanAttr), 10);\n if (value > 1) {\n colSpan -= value - 1;\n }\n idx++;\n }\n }\n return result;\n }\n function appendContent(tbody, table, html, empty) {\n var placeholder, tmp = tbody;\n if (empty) {\n tbody.empty();\n }\n if (tbodySupportsInnerHtml) {\n tbody[0].innerHTML = html;\n } else {\n placeholder = document.createElement('div');\n placeholder.innerHTML = '' + html + '
';\n tbody = placeholder.firstChild.firstChild;\n table[0].replaceChild(tbody, tmp[0]);\n tbody = $(tbody);\n }\n return tbody;\n }\n function addHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n if (!style) {\n style = 'display:none';\n } else {\n style = style.replace(/display:[^;]*/i, 'display:none');\n if (!style.match(/display:/i)) {\n style = style.replace(/(.*)?/i, 'display:none;$1');\n }\n }\n return extend({}, attr, { style: style });\n }\n function hasHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style || '';\n return style.indexOf('display:none') !== -1;\n }\n function removeHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n if (style) {\n attr.style = style.replace(/(display\\s*:\\s*none\\s*;?)*/gi, '');\n }\n return attr;\n }\n function normalizeCols(table, visibleColumns, hasDetails, groups) {\n var colgroup = table.find('>colgroup'), width, cols = map(visibleColumns, function (column) {\n width = column.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', typeof width === STRING ? width : width + 'px');\n }\n return '';\n });\n if (hasDetails || colgroup.find('.k-hierarchy-col').length) {\n cols.splice(0, 0, '');\n }\n if (colgroup.length) {\n colgroup.remove();\n }\n colgroup = $(new Array(groups + 1).join('') + cols.join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n table.prepend(colgroup);\n }\n function normalizeHeaderCells(container, columns) {\n var lastIndex = 0;\n var idx, len;\n var th = container.find('th:not(.k-group-cell)');\n for (idx = 0, len = columns.length; idx < len; idx++) {\n if (columns[idx].locked) {\n th.eq(idx).insertBefore(th.eq(lastIndex));\n th = container.find('th:not(.k-group-cell)');\n lastIndex++;\n }\n }\n }\n function convertToObject(array) {\n var result = {}, item, idx, length;\n for (idx = 0, length = array.length; idx < length; idx++) {\n item = array[idx];\n result[item.value] = item.text;\n }\n return result;\n }\n function formatGroupValue(value, format, columnValues, encoded) {\n var isForeignKey = columnValues && columnValues.length && isPlainObject(columnValues[0]) && 'value' in columnValues[0], groupValue = isForeignKey ? convertToObject(columnValues)[value] : value;\n groupValue = groupValue != null ? groupValue : '';\n return format ? kendo.format(format, groupValue) : encoded === false ? groupValue : kendo.htmlEncode(groupValue);\n }\n function setCellVisibility(cells, index, visible) {\n var pad = 0, state, cell = cells[pad];\n while (cell) {\n state = visible ? true : cell.style.display !== 'none';\n if (state && !nonDataCellsRegExp.test(cell.className) && --index < 0) {\n cell.style.display = visible ? '' : 'none';\n break;\n }\n cell = cells[++pad];\n }\n }\n function hideColumnCells(rows, columnIndex) {\n var idx = 0, length = rows.length, cell, row;\n for (; idx < length; idx += 1) {\n row = rows.eq(idx);\n if (row.is('.k-grouping-row,.k-detail-row')) {\n cell = row.children(':not(.k-group-cell):first,.k-detail-cell').last();\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) - 1);\n } else {\n if (row.hasClass('k-grid-edit-row') && (cell = row.children('.k-edit-container')[0])) {\n cell = $(cell);\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) - 1);\n cell.find('col').eq(columnIndex).remove();\n row = cell.find('tr:first');\n }\n setCellVisibility(row[0].cells, columnIndex, false);\n }\n }\n }\n function groupRows(data) {\n var result = [];\n var item;\n for (var idx = 0; idx < data.length; idx++) {\n item = data[idx];\n if (!('field' in item && 'value' in item && 'items' in item)) {\n break;\n }\n result.push(item);\n if (item.hasSubgroups) {\n result = result.concat(groupRows(item.items));\n }\n }\n return result;\n }\n function groupFooters(data) {\n var result = [];\n var item;\n for (var idx = 0; idx < data.length; idx++) {\n item = data[idx];\n if (!('field' in item && 'value' in item && 'items' in item)) {\n break;\n }\n if (item.hasSubgroups) {\n result = result.concat(groupFooters(item.items));\n }\n result.push(item.aggregates);\n }\n return result;\n }\n function showColumnCells(rows, columnIndex) {\n var idx = 0, length = rows.length, cell, row, columns;\n for (; idx < length; idx += 1) {\n row = rows.eq(idx);\n if (row.is('.k-grouping-row,.k-detail-row')) {\n cell = row.children(':not(.k-group-cell):first,.k-detail-cell').last();\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) + 1);\n } else {\n if (row.hasClass('k-grid-edit-row') && (cell = row.children('.k-edit-container')[0])) {\n cell = $(cell);\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) + 1);\n normalizeCols(cell.find('>form>table'), visibleColumns(columns), false, 0);\n row = cell.find('tr:first');\n }\n setCellVisibility(row[0].cells, columnIndex, true);\n }\n }\n }\n function updateColspan(toAdd, toRemove, num) {\n num = num || 1;\n var item, idx, length;\n for (idx = 0, length = toAdd.length; idx < length; idx++) {\n item = toAdd.eq(idx).children().last();\n item.attr('colspan', parseInt(item.attr('colspan'), 10) + num);\n item = toRemove.eq(idx).children().last();\n item.attr('colspan', parseInt(item.attr('colspan'), 10) - num);\n }\n }\n function tableWidth(table) {\n var idx, length, width = 0;\n var cols = table.find('>colgroup>col');\n for (idx = 0, length = cols.length; idx < length; idx += 1) {\n width += parseInt(cols[idx].style.width, 10);\n }\n return width;\n }\n var Grid = kendo.ui.DataBoundWidget.extend({\n init: function (element, options, events) {\n var that = this;\n options = isArray(options) ? { dataSource: options } : options;\n Widget.fn.init.call(that, element, options);\n if (events) {\n that._events = events;\n }\n isRtl = kendo.support.isRtl(element);\n that._element();\n that._aria();\n that._columns($.extend(true, [], that.options.columns));\n if (that._foreignKeyPromises) {\n $.when.apply(null, that._foreignKeyPromises).then(function () {\n that._foreignKeyPromises = null;\n that._continueInit();\n });\n } else {\n that._continueInit();\n }\n },\n _continueInit: function () {\n var that = this;\n that._dataSource();\n that._stickyColumns();\n that._tbody();\n that._thead();\n that._groupable();\n that._toolbar();\n that._pageable();\n that._setContentHeight();\n that._templates();\n that._navigatable();\n that._selectable();\n that._clipboard();\n that._details();\n that._editable();\n that._attachCustomCommandsEvent();\n that._adaptiveColumns();\n that._minScreenSupport();\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._group = that._groups() > 0;\n that._footer();\n }\n if (that.lockedContent) {\n that.wrapper.addClass('k-grid-lockedcolumns');\n that._resizeHandler = function () {\n that.resize();\n };\n $(window).on('resize' + NS, that._resizeHandler);\n }\n kendo.notify(that);\n },\n events: [\n CHANGE,\n 'dataBinding',\n 'cancel',\n DATABOUND,\n DETAILEXPAND,\n DETAILCOLLAPSE,\n DETAILINIT,\n FILTERMENUINIT,\n FILTERMENUOPEN,\n COLUMNMENUINIT,\n COLUMNMENUOPEN,\n EDIT,\n BEFOREEDIT,\n SAVE,\n REMOVE,\n SAVECHANGES,\n CELLCLOSE,\n COLUMNRESIZE,\n COLUMNREORDER,\n COLUMNSHOW,\n COLUMNHIDE,\n COLUMNLOCK,\n COLUMNUNLOCK,\n COLUMNSTICK,\n COLUMNUNSTICK,\n NAVIGATE,\n 'page',\n 'sort',\n 'filter',\n 'group',\n 'groupExpand',\n 'groupCollapse',\n 'kendoKeydown'\n ],\n setDataSource: function (dataSource) {\n var that = this;\n var scrollable = that.options.scrollable;\n var scrollableContent;\n that.options.dataSource = dataSource;\n that._dataSource();\n that._pageable();\n that._thead();\n if (scrollable) {\n if (scrollable.virtual) {\n scrollableContent = that.content.find('>.k-virtual-scrollable-wrap');\n kendo.scrollLeft(scrollableContent, leftMostPosition(scrollableContent, isRtl));\n } else {\n scrollableContent = that.tbody;\n kendo.scrollLeft(that.content, leftMostPosition(scrollableContent, isRtl));\n }\n }\n if (that.options.groupable) {\n that._groupable();\n }\n if (that.virtualScrollable) {\n that.virtualScrollable.setDataSource(that.options.dataSource);\n }\n if (that.options.navigatable) {\n that._navigatable();\n }\n if (that.options.selectable) {\n that._selectable();\n }\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._footer();\n }\n },\n options: {\n name: 'Grid',\n columns: [],\n toolbar: null,\n autoBind: true,\n filterable: false,\n scrollable: true,\n sortable: false,\n selectable: false,\n allowCopy: false,\n navigatable: false,\n pageable: false,\n persistSelection: false,\n editable: false,\n encodeTitles: false,\n groupable: false,\n rowTemplate: '',\n altRowTemplate: '',\n search: false,\n noRecords: false,\n dataSource: {},\n height: null,\n resizable: false,\n reorderable: false,\n columnMenu: false,\n detailTemplate: null,\n columnResizeHandleWidth: 3,\n mobile: '',\n loaderType: 'loadingPanel',\n messages: {\n editable: {\n cancelDelete: CANCELDELETE,\n confirmation: DELETECONFIRM,\n confirmDelete: CONFIRMDELETE\n },\n commands: {\n create: defaultCommands.create.text,\n cancel: defaultCommands.cancel.text,\n save: defaultCommands.save.text,\n destroy: defaultCommands.destroy.text,\n edit: defaultCommands.edit.text,\n update: defaultCommands.update.text,\n canceledit: defaultCommands.canceledit.text,\n excel: defaultCommands.excel.text,\n pdf: defaultCommands.pdf.text,\n search: defaultCommands.search.text\n },\n noRecords: NORECORDS,\n expandCollapseColumnHeader: '',\n groupHeader: 'Press ctrl + space to group',\n ungroupHeader: 'Press ctrl + space to ungroup'\n },\n width: null\n },\n destroy: function () {\n var that = this, element;\n that._angularItems('cleanup');\n that._destroyColumnAttachments();\n Widget.fn.destroy.call(that);\n if (this._navigatableTables) {\n this._navigatableTables.off(NS);\n this._navigatableTables = null;\n this._headertables = null;\n }\n if (that._resizeHandler) {\n $(window).off('resize' + NS, that._resizeHandler);\n }\n if (that.pager && that.pager.element) {\n that.pager.destroy();\n }\n if (that.timer) {\n clearTimeout(that.timer);\n }\n if (that._progressTimeOut) {\n clearTimeout(that._progressTimeOut);\n }\n if (that._collapseGroupsTimeOut) {\n clearTimeout(that._collapseGroupsTimeOut);\n }\n if (that._endlessFetchTimeOut) {\n clearTimeout(that._endlessFetchTimeOut);\n }\n that.pager = null;\n that._destroyGroupable();\n if (that.options.reorderable) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n if (that.selectable && that.selectable.element) {\n that.selectable.destroy();\n that.clearArea();\n that._selectedIds = null;\n if (that.copyHandler) {\n that.wrapper.off('keydown', that.copyHandler);\n that.unbind(that.copyHandler);\n }\n if (that.updateClipBoardState) {\n that.unbind(that.updateClipBoardState);\n that.updateClipBoardState = null;\n }\n if (that.clearAreaHandler) {\n that.wrapper.off('keyup', that.clearAreaHandler);\n }\n }\n that.selectable = null;\n if (that.resizable) {\n that.resizable.destroy();\n if (that._resizeUserEvents) {\n if (that._resizeHandleDocumentClickHandler) {\n $(document).off('click', that._resizeHandleDocumentClickHandler);\n }\n that._resizeUserEvents.destroy();\n that._resizeUserEvents = null;\n }\n that.resizable = null;\n }\n that._destroyVirtualScrollable();\n if (that.editableUserEvents) {\n that.editableUserEvents.destroy();\n that.editableUserEvents = null;\n }\n if (that._lockedContentUserEvents) {\n that._lockedContentUserEvents.destroy();\n that._lockedContentUserEvents = null;\n }\n that._destroyEditable();\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler).unbind(SORT, that._clearSortClasses);\n that._refreshHandler = that._progressHandler = that._errorHandler = that._clearSortClasses = null;\n }\n element = that.element.add(that.wrapper).add(that.table).add(that.thead).add(that.wrapper.find('>.k-grid-toolbar'));\n if (that.content) {\n element = element.add(that.content).add(that.content.find('>.k-virtual-scrollable-wrap'));\n }\n if (that.lockedHeader) {\n that._removeLockedContainers();\n }\n if (that.pane) {\n that.pane.destroy();\n }\n if (that._isMobile) {\n that.wrapper.off('transitionend' + NS);\n that.wrapper.off('contextmenu' + NS);\n }\n if (that.minScreenResizeHandler) {\n $(window).off('resize', that.minScreenResizeHandler);\n }\n that._detachColumnMediaResizeHandler();\n if (that._draggableInstance && that._draggableInstance.element) {\n that._draggableInstance.destroy();\n }\n that._draggableInstance = null;\n element.off(NS);\n kendo.destroy(that.wrapper);\n that.rowTemplate = that.altRowTemplate = that.lockedRowTemplate = that.lockedAltRowTemplate = that.detailTemplate = that.footerTemplate = that.groupFooterTemplate = that.lockedGroupFooterTemplate = that.noRecordsTemplate = null;\n that.scrollables = that.thead = that.tbody = that.element = that.table = that.content = that.footer = that.wrapper = that.lockedTable = that.lockedContent = that.lockedHeader = that.lockedFooter = that._groupableClickHandler = that._groupRows = that._setContentWidthHandler = null;\n },\n getOptions: function () {\n var options = this.options;\n options.dataSource = null;\n var result = extend(true, {}, this.options);\n result.columns = kendo.deepExtend([], this.columns);\n var dataSource = this.dataSource;\n var initialData = dataSource.options.data && dataSource._data;\n dataSource.options.data = null;\n result.dataSource = $.extend(true, {}, dataSource.options);\n dataSource.options.data = initialData;\n result.dataSource.data = initialData;\n result.dataSource.page = dataSource.page();\n result.dataSource.filter = $.extend(true, {}, dataSource.filter());\n result.dataSource.pageSize = dataSource.pageSize();\n result.dataSource.sort = dataSource.sort();\n result.dataSource.group = dataSource.group();\n result.dataSource.aggregate = dataSource.aggregate();\n if (result.dataSource.transport) {\n result.dataSource.transport.dataSource = null;\n }\n if (result.pageable && result.pageable.pageSize) {\n result.pageable.pageSize = dataSource.pageSize();\n }\n result.$angular = undefined;\n return result;\n },\n setOptions: function (options) {\n var currentOptions = this.getOptions();\n kendo.deepExtend(currentOptions, options);\n if (!options.dataSource) {\n currentOptions.dataSource = this.dataSource;\n } else {\n if (options.dataSource.filter) {\n currentOptions.dataSource.filter = options.dataSource.filter;\n }\n }\n var wrapper = this.wrapper;\n var events = this._events;\n var element = this.element;\n this.destroy();\n this.options = null;\n if (this._isMobile) {\n var mobileWrapper = wrapper.closest(kendo.roleSelector('pane')).parent();\n mobileWrapper.after(wrapper);\n mobileWrapper.remove();\n wrapper.removeClass('k-grid-mobile');\n }\n if (wrapper[0] !== element[0]) {\n wrapper.before(element);\n wrapper.remove();\n }\n element.empty();\n this.init(element, currentOptions, events);\n this._setEvents(currentOptions);\n },\n items: function () {\n if (this.lockedContent) {\n return this._items(this.tbody).add(this._items(this.lockedTable.children('tbody')));\n } else {\n return this._items(this.tbody);\n }\n },\n _items: function (container, includeGroupRows) {\n return container.children().filter(function () {\n var tr = $(this);\n return (includeGroupRows ? !tr.hasClass('k-detail-row') : !tr.hasClass('k-grouping-row')) && !tr.hasClass('k-detail-row') && !tr.hasClass('k-group-footer');\n });\n },\n dataItems: function () {\n var dataItems = kendo.ui.DataBoundWidget.fn.dataItems.call(this);\n if (this.lockedContent) {\n var n = dataItems.length, tmp = new Array(2 * n);\n for (var i = n; --i >= 0;) {\n tmp[i] = tmp[i + n] = dataItems[i];\n }\n dataItems = tmp;\n }\n return dataItems;\n },\n _destroyColumnAttachments: function () {\n var that = this;\n that.resizeHandle = null;\n if (!that.thead) {\n return;\n }\n this.angular('cleanup', function () {\n return { elements: that.thead.get() };\n });\n that.thead.add(that.lockedHeader).find('th').each(function () {\n var th = $(this), filterMenu = th.data('kendoFilterMenu'), sortable = th.data('kendoColumnSorter'), columnMenu = th.data('kendoColumnMenu');\n if (filterMenu) {\n filterMenu.destroy();\n }\n if (sortable) {\n sortable.destroy();\n }\n if (columnMenu) {\n columnMenu.destroy();\n }\n });\n },\n _attachCustomCommandsEvent: function () {\n var that = this, columns = leafColumns(that.columns || []), command, idx, length;\n for (idx = 0, length = columns.length; idx < length; idx++) {\n command = columns[idx].command;\n if (command) {\n attachCustomCommandEvent(that, that.wrapper, command);\n }\n }\n },\n _aria: function () {\n var id = this.element.attr('id') || 'aria';\n if (id) {\n this._cellId = id + '_active_cell';\n }\n },\n _element: function () {\n var that = this, table = that.element;\n if (!table.is('table')) {\n if (that.options.scrollable) {\n table = that.element.find('> .k-grid-content > table');\n } else {\n table = that.element.children('table');\n }\n if (!table.length) {\n table = $('').appendTo(that.element);\n }\n }\n that.table = table.attr('role', that._hasDetails() ? 'treegrid' : 'grid');\n that._wrapper();\n },\n _createResizeHandle: function (container, th) {\n var that = this;\n var indicatorWidth = that.options.columnResizeHandleWidth;\n var scrollable = that.options.scrollable;\n var resizeHandle = that.resizeHandle;\n var halfResizeHandle = indicatorWidth * 3 / 2;\n var rtlCorrection = 0;\n var headerWrap;\n var ieCorrection;\n var webkitCorrection;\n var firefoxCorrection;\n var leftMargin;\n var invisibleSpace;\n var leftBorderWidth;\n var scrollLeft;\n var left;\n var top;\n if (resizeHandle && that.lockedContent && resizeHandle.data('th')[0] !== th[0]) {\n resizeHandle.off(NS).remove();\n resizeHandle = null;\n }\n if (!resizeHandle) {\n resizeHandle = that.resizeHandle = $('
');\n container.append(resizeHandle);\n }\n scrollLeft = kendo.scrollLeft(container);\n if (isRtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeft = scrollLeft * -1;\n }\n leftBorderWidth = parseFloat(container.css('borderLeftWidth'));\n left = th.offset().left + scrollLeft - parseFloat(th.css('marginLeft')) - (container.offset().left + leftBorderWidth);\n if (!isRtl) {\n left += th[0].offsetWidth;\n } else {\n if (scrollable) {\n rtlCorrection = left <= scrollLeft ? halfResizeHandle : 0;\n headerWrap = th.closest('.k-grid-header-wrap, .k-grid-header-locked');\n invisibleSpace = headerWrap[0].scrollWidth - headerWrap[0].offsetWidth;\n leftMargin = parseFloat(headerWrap.css('marginLeft'));\n ieCorrection = browser.msie ? 2 * kendo.scrollLeft(headerWrap) + leftBorderWidth - leftMargin - rtlCorrection : 0;\n webkitCorrection = -rtlCorrection;\n firefoxCorrection = browser.mozilla ? leftBorderWidth - leftMargin - rtlCorrection : 0;\n left -= webkitCorrection + firefoxCorrection + ieCorrection;\n }\n }\n top = th.offset().top - parseFloat(th.css('marginTop')) - (container.offset().top + parseFloat(container.css('borderTopWidth')));\n resizeHandle.css({\n top: top,\n left: left - halfResizeHandle,\n height: outerHeight(th),\n width: indicatorWidth * 3 - rtlCorrection\n }).data('th', th).show();\n resizeHandle.off('dblclick' + NS).on('dblclick' + NS, function () {\n that._autoFitLeafColumn(parseInt(th.attr(kendo.attr('index')), 10));\n });\n },\n _positionColumnResizeHandle: function () {\n var that = this, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that.thead.add(lockedHead).on('mousemove' + NS, 'tr:not(.k-filter-row) > th', function (e) {\n var button = typeof e.buttons !== 'undefined' ? e.buttons : e.which || e.button;\n var th = $(this);\n if (th.hasClass('k-group-cell') || th.hasClass('k-hierarchy-cell')) {\n return;\n }\n if (typeof button !== 'undefined' && button !== 0) {\n return;\n }\n if (th[0].hasAttribute(kendo.attr(COLSPAN))) {\n return;\n }\n that._createResizeHandle(th.closest('div'), th);\n });\n },\n _resizeHandleDocumentClick: function (e) {\n if ($(e.target).closest('.k-column-active').length) {\n return;\n }\n $(document).off(e);\n this._resetResizeHandleHeader();\n this._hideResizeHandle();\n },\n _resetResizeHandleHeader: function () {\n var th;\n if (!this.resizeHandle) {\n return;\n }\n th = $(this.resizeHandle).data('th');\n if (th) {\n th.find(DOT + LINK_CLASS).find(DOT + ICON_CLASS).show();\n th.find(DOT + ORDER_CLASS).show();\n th.find(DOT + HEADER_COLUMN_MENU_CLASS).show();\n th.find(DOT + FILTER_MENU_CLASS).show();\n }\n },\n _hideResizeHandle: function () {\n if (this.resizeHandle) {\n this.resizeHandle.data('th').removeClass('k-column-active');\n if (this.lockedContent && !this._isMobile) {\n this.resizeHandle.off(NS).remove();\n this.resizeHandle = null;\n } else {\n this.resizeHandle.hide();\n }\n }\n },\n _positionColumnResizeHandleTouch: function () {\n var that = this, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that._resizeUserEvents = new kendo.UserEvents(lockedHead.add(that.thead), {\n filter: 'th:not(.k-group-cell):not(.k-hierarchy-cell)',\n threshold: 10,\n minHold: 500,\n hold: function (e) {\n var th = $(e.target);\n e.preventDefault();\n if (that.resizeHandle) {\n that.resizeHandle.data('th').removeClass('k-column-active');\n that._resetResizeHandleHeader();\n }\n th.addClass('k-column-active');\n th.find(DOT + LINK_CLASS).find(DOT + ICON_CLASS).hide();\n th.find(DOT + ORDER_CLASS).hide();\n th.find(DOT + HEADER_COLUMN_MENU_CLASS).hide();\n th.find(DOT + FILTER_MENU_CLASS).hide();\n that._createResizeHandle(th.closest('div'), th);\n if (!that._resizeHandleDocumentClickHandler) {\n that._resizeHandleDocumentClickHandler = proxy(that._resizeHandleDocumentClick, that);\n }\n $(document).on('click', that._resizeHandleDocumentClickHandler);\n }\n });\n },\n resizeColumn: function (column, columnWidth) {\n var that = this;\n var isLocked = !!column.locked;\n var isHidden = !!column.hidden;\n var options = this.options;\n var scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0;\n var index = isLocked ? inArray(column, visibleLockedColumns(visibleLeafColumns(that.columns))) : inArray(column, visibleNonLockedColumns(visibleLeafColumns(that.columns)));\n var contentTable = isLocked ? that.lockedTable : that.table;\n var footer = that.footer || $();\n var header = isLocked ? that.lockedHeader.find('table') : that.thead.closest('table');\n var columnMinWidth = column.minResizableWidth || 10;\n var gridWidth = isLocked ? outerWidth(contentTable.find('tbody')) : outerWidth(that.tbody);\n var col;\n if (isHidden) {\n column.width = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n return;\n }\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n if (options.scrollable) {\n col = header.find('col:not(.k-group-col,.k-hierarchy-col):eq(' + index + ')').add(contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')')).add(footer.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')'));\n } else {\n col = contentTable.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')');\n }\n if (options.scrollable) {\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = columnWidth = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n if (isLocked && gridWidth - columnWidth + width > totalWidth) {\n width = columnWidth + (totalWidth - gridWidth - scrollbar * 2);\n if (width < 0) {\n width = columnWidth;\n }\n constrain = true;\n }\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + (columnWidth - column.width);\n }\n contentTable.add(header).add(footer).css('width', width);\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n that._scrollVirtualWrapperOnColumnResize();\n } else if (columnWidth > 10 && columnWidth >= columnMinWidth) {\n col.css('width', columnWidth);\n }\n column.width = columnWidth;\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n },\n _resizable: function () {\n var that = this, options = that.options, container, columnStart, columnWidth, columnMinWidth, gridWidth, isMobile = this._isMobile, scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0, isLocked, col, th;\n if (options.resizable) {\n container = options.scrollable ? that.wrapper.find('.k-grid-header-wrap:first') : that.wrapper;\n if (isMobile) {\n that._positionColumnResizeHandleTouch(container);\n } else {\n that._positionColumnResizeHandle(container);\n }\n if (that.resizable) {\n that.resizable.destroy();\n }\n that.resizable = new ui.Resizable(container.add(that.lockedHeader), {\n handle: (!!options.scrollable ? '' : '>') + '.k-resize-handle',\n hint: function (handle) {\n return $('
').css({ height: outerHeight(handle.data('th')) + that.tbody.attr('clientHeight') });\n },\n start: function (e) {\n th = $(e.currentTarget).data('th');\n if (isMobile) {\n that._hideResizeHandle();\n }\n var header = th.closest('table'), index = $.inArray(th[0], leafDataCells(th.closest('thead')).filter(':visible'));\n isLocked = header.parent().hasClass('k-grid-header-locked');\n var contentTable = isLocked ? that.lockedTable : that.table, footer = that.footer || $();\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n cursor(that.wrapper, 'col-resize');\n if (options.scrollable) {\n col = header.find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')').add(contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')')).add(footer.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')'));\n } else {\n col = contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')');\n }\n var columns = $.map(that.columns, function (a) {\n return !a.hidden && (isLocked && a.locked || !isLocked && !a.locked) ? a : null;\n });\n columnStart = e.x.location;\n columnWidth = outerWidth(th);\n columnMinWidth = leafColumns(columns)[index].minResizableWidth || 10;\n gridWidth = isLocked ? outerWidth(contentTable.children('tbody')) : outerWidth(that.tbody);\n if (browser.webkit) {\n that.wrapper.addClass('k-grid-column-resizing');\n }\n },\n resize: function (e) {\n var rtlMultiplier = isRtl ? -1 : 1, currentWidth = columnWidth + e.x.location * rtlMultiplier - columnStart * rtlMultiplier;\n if (options.scrollable) {\n var footer;\n if (isLocked && that.lockedFooter) {\n footer = that.lockedFooter.children('table');\n } else if (that.footer) {\n footer = that.footer.find('>.k-grid-footer-wrap>table');\n }\n if (!footer || !footer[0]) {\n footer = $();\n }\n var header = th.closest('table');\n var contentTable = isLocked ? that.lockedTable : that.table;\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = currentWidth;\n if (isLocked && gridWidth - columnWidth + width > totalWidth) {\n width = columnWidth + (totalWidth - gridWidth - scrollbar * 2);\n if (width < 0) {\n width = currentWidth;\n }\n constrain = true;\n }\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + e.x.location * rtlMultiplier - columnStart * rtlMultiplier;\n }\n contentTable.add(header).add(footer).css('width', width);\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n that._scrollVirtualWrapperOnColumnResize();\n } else if (currentWidth > 10 && currentWidth >= columnMinWidth) {\n col.css('width', currentWidth);\n }\n },\n resizeend: function () {\n var newWidth = outerWidth(th), column, header;\n cursor(that.wrapper, '');\n if (browser.webkit) {\n that.wrapper.removeClass('k-grid-column-resizing');\n }\n if (columnWidth != newWidth) {\n header = that.lockedHeader ? that.lockedHeader.find('thead:first tr:first').add(that.thead.find('tr:first')) : th.parent();\n var index = th.attr(kendo.attr('index'));\n if (!index) {\n index = header.find('th:not(.k-group-cell):not(.k-hierarchy-cell)').index(th);\n }\n column = leafColumns(that.columns)[index];\n column.width = newWidth;\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: columnWidth,\n newWidth: newWidth\n });\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n }\n that._resetResizeHandleHeader();\n that._hideResizeHandle();\n th = null;\n }\n });\n }\n },\n _draggable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that._draggableInstance) {\n that._draggableInstance.destroy();\n }\n var header = that.wrapper.children('.k-grid-header');\n that._draggableInstance = that.wrapper.kendoDraggable({\n group: kendo.guid(),\n autoScroll: true,\n filter: that.content ? '.k-grid-header:first ' + HEADERCELLS : 'table:first>.k-grid-header ' + HEADERCELLS,\n dragstart: function () {\n header.children('.k-grid-header-wrap').unbind('scroll' + NS + 'scrolling').bind('scroll' + NS + 'scrolling', function (e) {\n if (that.virtualScrollable) {\n kendo.scrollLeft(that.content.find('>.k-virtual-scrollable-wrap'), this.scrollLeft);\n } else {\n kendo.scrollLeft(that.scrollables.not(e.currentTarget), this.scrollLeft);\n }\n });\n },\n dragend: function () {\n that._resetResizeHandleHeader();\n header.children('.k-grid-header-wrap').unbind('scroll' + NS + 'scrolling');\n },\n drag: function () {\n that._hideResizeHandle();\n },\n hint: function (target) {\n var title = target.attr(kendo.attr('title'));\n if (title) {\n title = kendo.htmlEncode(title);\n }\n return $('
').html(title || target.attr(kendo.attr('field')) || target.text()).prepend('');\n }\n }).data('kendoDraggable');\n }\n },\n _reorderable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that.wrapper.data('kendoReorderable')) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n that.wrapper.kendoReorderable({\n draggable: that._draggableInstance,\n dragOverContainers: function (sourceIndex, targetIndex) {\n var columns = flatColumnsInDomOrder(that.columns);\n return columns[sourceIndex].lockable !== false && targetParentContainerIndex(columns, that.columns, sourceIndex, targetIndex) > -1;\n },\n inSameContainer: function (e) {\n return $(e.source).parent()[0] === $(e.target).parent()[0] && targetParentContainerIndex(flatColumnsInDomOrder(that.columns), that.columns, e.sourceIndex, e.targetIndex) > -1;\n },\n change: function (e) {\n var columns = flatColumnsInDomOrder(that.columns);\n var column = columns[e.oldIndex];\n var newIndex = targetParentContainerIndex(columns, that.columns, e.oldIndex, e.newIndex);\n that.trigger(COLUMNREORDER, {\n newIndex: newIndex,\n oldIndex: inArray(column, columns),\n column: column\n });\n that.reorderColumn(newIndex, column, e.position === 'before');\n }\n });\n }\n },\n _reorderHeader: function (sources, target, before, container) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\n var action;\n var ths;\n var leafs = [];\n for (var idx = 0; idx < sources.length; idx++) {\n if (sources[idx].columns) {\n leafs = leafs.concat(sources[idx].columns);\n }\n }\n if (container) {\n ths = elements(container, container, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n } else {\n ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n }\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n action = 'prepend';\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups(), action);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n action = destPosition.cell === 0 && sources[0].columns && !target.columns && !that._group ? 'prepend' : 'append';\n moveCellsBetweenContainers(sources, target, leafs, nonLockedColumns(that.columns), that.thead, that.lockedHeader.find('thead'), this._groups(), action);\n }\n if (target.columns || sourcePosition.cell - destPosition.cell > 1 || destPosition.cell - sourcePosition.cell > 1) {\n target = findReorderTarget(that.columns, target, sources[0], before, that.columns);\n if (target) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n that._reorderHeader(leafs, target, before, that.thead);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n that._reorderHeader(leafs, target, before, that.lockedHead);\n } else {\n that._reorderHeader(leafs, target, before);\n }\n }\n }\n } else if (sourceLockedColumns !== targetLockedColumns) {\n updateCellRowSpan(ths[sourcePosition.cell], that.columns, sourceLockedColumns);\n }\n reorder(ths, sourcePosition.cell, destPosition.cell, before, sources.length);\n },\n _reorderContent: function (sources, destination, before) {\n var that = this;\n var lockedRows = $();\n var source = sources[0];\n var visibleSources = visibleColumns(sources);\n var sourceIndex = inArray(source, leafColumns(that.columns));\n var destIndex = inArray(destination, leafColumns(that.columns));\n var colSourceIndex = inArray(visibleSources[0], visibleLeafColumns(that.columns));\n var colDest = inArray(destination, visibleLeafColumns(that.columns));\n var lockedCount = lockedColumns(that.columns).length;\n var isLocked = !!destination.locked;\n var footer = that.footer || that.wrapper.find('.k-grid-footer');\n var headerCol, footerCol, beforeVisibleColumn;\n headerCol = footerCol = colDest;\n if (destination.hidden) {\n var columnsArray = isLocked ? lockedColumns(that.columns) : nonLockedColumns(that.columns);\n if (visibleColumns(columnsArray).length > 0) {\n headerCol = footerCol = colDest = this._findClosestVisibleColumnIndex(columnsArray, destIndex);\n beforeVisibleColumn = visibleColumns(columnsArray.slice(destIndex)).length > 0;\n } else {\n if (isLocked) {\n colDest = that.lockedTable.find('colgroup');\n headerCol = that.lockedHeader.find('colgroup');\n footerCol = $(that.lockedFooter).find('>table>colgroup');\n } else {\n colDest = that.tbody.prev();\n headerCol = that.thead.prev();\n footerCol = footer.find('.k-grid-footer-wrap').find('>table>colgroup');\n }\n }\n }\n if (that._hasFilterRow()) {\n reorder(that.wrapper.find('.k-filter-row th:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedHeader, that.thead.prev(), COLGROUP), colSourceIndex, headerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n if (that.options.scrollable) {\n if (colSourceIndex >= 0 && !that._hasVirtualColumns()) {\n reorder(elements(that.lockedTable, that.tbody.prev(), COLGROUP), colSourceIndex, colDest, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n }\n if (footer && footer.length) {\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedFooter, footer.find('.k-grid-footer-wrap'), '>table>colgroup>col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, footerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n reorder(footer.find('.k-footer-template>td:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n var rows = that.tbody.children(':not(.k-grouping-row,.k-detail-row)');\n if (that.lockedTable) {\n if (lockedCount > destIndex) {\n if (lockedCount <= sourceIndex) {\n updateColspan(that.lockedTable.find('>tbody>tr.k-grouping-row'), that.table.find('>tbody>tr.k-grouping-row'), sources.length);\n }\n } else if (lockedCount > sourceIndex) {\n updateColspan(that.table.find('>tbody>tr.k-grouping-row'), that.lockedTable.find('>tbody>tr.k-grouping-row'), sources.length);\n }\n lockedRows = that.lockedTable.find('>tbody>tr:not(.k-grouping-row,.k-detail-row)');\n }\n for (var idx = 0, length = rows.length; idx < length; idx += 1) {\n reorder(elements(lockedRows[idx], rows[idx], '>td:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n },\n _findClosestVisibleColumnIndex: function (columns, columnIndex) {\n var columnsArray = visibleColumns(columns.slice(columnIndex)).length > 0 ? columns.slice(columnIndex) : columns.slice(0, columnIndex + 1).reverse(), closestVisibleColumn = visibleColumns(columnsArray)[0];\n return inArray(closestVisibleColumn, visibleColumns(this.columns));\n },\n _autoFitLeafColumn: function (leafIndex) {\n this.autoFitColumn(leafColumns(this.columns)[leafIndex]);\n },\n autoFitColumn: function (column) {\n var that = this, options = that.options, columns = that.columns, index, th, headerTable, isLocked, visibleLocked = that.lockedHeader ? leafDataCells(that.lockedHeader.find('>table>thead')).filter(isCellVisible).length : 0, col, minWidth, contentDiv, scrollLeft, notGroupOrHierarchyCol = 'col:not(.k-group-col):not(.k-hierarchy-col)', notGroupOrHierarchyVisibleCell = 'td:visible:not(.k-group-cell):not(.k-hierarchy-cell)', menu, thWidth;\n if (typeof column == 'number') {\n column = columns[column];\n } else if (isPlainObject(column)) {\n column = grep(flatColumns(columns), function (item) {\n return item === column;\n })[0];\n } else {\n column = grep(flatColumns(columns), function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !isVisible(column)) {\n return;\n }\n minWidth = column.minResizableWidth;\n index = inArray(column, leafColumns(columns));\n isLocked = column.locked;\n if (isLocked) {\n headerTable = that.lockedHeader.children('table');\n } else {\n headerTable = that.thead.parent();\n }\n th = headerTable.find('[data-index=\\'' + index + '\\']');\n menu = th.find('a.k-header-column-menu, a.k-grid-filter');\n var contentTable = isLocked ? that.lockedTable : that.table, footer = that.footer || $();\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n var footerTable = footer.find('table').first();\n if (that.lockedHeader && !isLocked) {\n index -= visibleLocked;\n }\n for (var j = 0; j < columns.length; j++) {\n if (columns[j] === column) {\n break;\n } else {\n if (columns[j].hidden) {\n index--;\n }\n }\n }\n if (options.scrollable) {\n col = headerTable.find(notGroupOrHierarchyCol).eq(index).add(contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index)).add(footerTable.find('colgroup').find(notGroupOrHierarchyCol).eq(index));\n if (!isLocked) {\n contentDiv = contentTable.parent();\n scrollLeft = kendo.scrollLeft(contentDiv);\n }\n } else {\n col = contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index);\n }\n var tables = headerTable.add(contentTable).add(footerTable);\n if (browser.safari) {\n th.css('white-space', 'initial');\n }\n var oldColumnWidth = outerWidth(th);\n col.width('');\n tables.css('table-layout', 'fixed');\n col.width('auto');\n tables.addClass('k-autofitting');\n tables.css('table-layout', '');\n thWidth = menu.length ? outerWidth(menu) + outerWidth(th) : outerWidth(th);\n var newColumnWidth = Math.ceil(Math.max(thWidth, outerWidth(contentTable.find('tr:not(.k-grouping-row)').eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)), outerWidth(footerTable.find('tr').eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)))) + 1;\n if (minWidth && minWidth > newColumnWidth) {\n newColumnWidth = minWidth;\n }\n col.width(newColumnWidth);\n column.width = newColumnWidth;\n if (browser.safari) {\n th.css('white-space', '');\n }\n if (options.scrollable) {\n var cols = headerTable.find('col'), colWidth, totalWidth = 0;\n for (var idx = 0, length = cols.length; idx < length; idx += 1) {\n colWidth = cols[idx].style.width;\n if (colWidth && colWidth.indexOf('%') == -1) {\n totalWidth += parseInt(colWidth, 10);\n } else if (cols.eq(idx).hasClass('k-group-col')) {\n totalWidth += parseInt(cols.eq(idx).width(), 10);\n } else {\n totalWidth = 0;\n break;\n }\n }\n if (totalWidth) {\n tables.each(function () {\n this.style.width = totalWidth + 'px';\n });\n }\n }\n tables.removeClass('k-autofitting');\n if (scrollLeft) {\n kendo.scrollLeft(contentDiv, scrollLeft);\n }\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: oldColumnWidth,\n newWidth: newColumnWidth\n });\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n },\n reorderColumn: function (destIndex, column, before) {\n var that = this, parent = columnParent(column, that.columns), columns = parent ? parent.columns : that.columns, sourceIndex = inArray(column, columns), destColumn = columns[destIndex], virtualScroll = that.virtualScroll || {}, lockChanged, isLocked = !!destColumn.locked, lockedCount = lockedColumns(that.columns).length, groupHeaderColumnTemplateColumns = grep(leafColumns(that.columns), function (column) {\n return column.groupHeaderColumnTemplate;\n });\n if (sourceIndex === destIndex) {\n return;\n }\n if (!column.locked && isLocked && nonLockedColumns(that.columns).length == 1) {\n return;\n }\n if (column.locked && !isLocked && lockedCount == 1) {\n return;\n }\n that._hideResizeHandle();\n if (before === undefined) {\n before = destIndex < sourceIndex;\n }\n var sourceColumns = [column];\n that._reorderHeader(sourceColumns, destColumn, before);\n if (that.lockedHeader) {\n removeEmptyRows(that.thead);\n removeEmptyRows(that.lockedHeader);\n }\n if (destColumn.columns) {\n destColumn = leafColumns(destColumn.columns);\n destColumn = destColumn[before ? 0 : destColumn.length - 1];\n }\n if (column.columns) {\n sourceColumns = leafColumns(column.columns);\n }\n that._reorderContent(sourceColumns, destColumn, before);\n lockChanged = !!column.locked;\n lockChanged = lockChanged != isLocked;\n column.locked = isLocked;\n columns.splice(before ? destIndex : destIndex + 1, 0, column);\n columns.splice(sourceIndex < destIndex ? sourceIndex : sourceIndex + 1, 1);\n that._updateLockedCols();\n that._updateCols();\n that._templates();\n that._updateColumnCellIndex();\n that._updateColumnSorters();\n if (groupHeaderColumnTemplateColumns.length > 0) {\n that._renderGroupRows();\n }\n that._updateTablesWidth();\n that._applyLockedContainersWidth();\n that._syncLockedHeaderHeight();\n that._syncLockedContentHeight();\n that._updateFirstColumnClass();\n that._updateStickyColumns();\n if (virtualScroll.columns) {\n that.refresh();\n }\n if (!lockChanged) {\n return;\n }\n if (isLocked) {\n that.trigger(COLUMNLOCK, { column: column });\n } else {\n that.trigger(COLUMNUNLOCK, { column: column });\n }\n },\n _updateColumnCellIndex: function () {\n var header;\n var offset = 0;\n if (this.lockedHeader) {\n header = this.lockedHeader.find('thead');\n offset = updateCellIndex(header, lockedColumns(this.columns));\n }\n updateCellIndex(this.thead, nonLockedColumns(this.columns), offset);\n },\n lockColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || column.locked || column.hidden) {\n return;\n }\n if (column.sticky) {\n this.unstickColumn(columns.indexOf(column));\n }\n var index = lockedColumns(columns).length - 1;\n this.reorderColumn(index, column, false);\n },\n unlockColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !column.locked || column.hidden) {\n return;\n }\n var index = lockedColumns(columns).length;\n this.reorderColumn(index, column, true);\n },\n stickColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || column.sticky || column.hidden) {\n return;\n }\n if (column.locked) {\n this.unlockColumn(columns.indexOf(column));\n if (column.locked) {\n return;\n }\n }\n column.sticky = true;\n this._updateStickyColumns();\n },\n unstickColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !column.sticky || column.locked || column.hidden) {\n return;\n }\n this._removeStickyAttributes([column]);\n this._removeStickyStyles(stickyColumns(columns));\n column.sticky = false;\n this._updateStickyColumns();\n if (this._anyStickyColumns() === 0) {\n this._templates();\n if (this._hasFilterRow()) {\n this._updateStickyFilterCells();\n }\n }\n },\n cellIndex: function (td) {\n var lockedColumnOffset = 0;\n if (this.lockedTable && !$.contains(this.lockedTable[0], td[0])) {\n lockedColumnOffset = leafColumns(lockedColumns(this.columns)).length;\n }\n return $(td).parent().children('td:not(.k-group-cell,.k-hierarchy-cell)').index(td) + lockedColumnOffset;\n },\n _modelForContainer: function (container) {\n container = $(container);\n if (!container.is('tr') && this._editMode() !== 'popup') {\n container = container.closest('tr');\n }\n var id = container.attr(kendo.attr('uid'));\n return this.dataSource.getByUid(id);\n },\n _calculateColumnIndex: function (cell) {\n var cellIndex = this.cellIndex(cell);\n var virtualOffset = 0;\n if (this._hasVirtualColumns()) {\n virtualOffset = parseInt($(cell).closest('tr').find('td:first').attr('colspan'), 10);\n virtualOffset = virtualOffset > 1 ? virtualOffset - 1 : 0;\n }\n return cellIndex + virtualOffset;\n },\n _editable: function () {\n var that = this, editable = that.options.editable, handler = function () {\n var target = activeElement(), cell = that._editContainer;\n if (cell && cell[0] && !$.contains(cell[0], target) && cell[0] !== target && !$(target).closest('.k-animation-container').length) {\n if (that.editable.end()) {\n that.closeCell();\n } else {\n that._scrollVirtualWrapper();\n }\n }\n };\n if (editable) {\n this.wrapper.addClass('k-editable');\n var mode = that._editMode();\n if (mode === 'incell') {\n that.table.add(that.lockedTable).on('mousedown' + NS, NAVROW + '>' + NAVCELL, function (e) {\n var target = $(e.target);\n if (that._editMode() === 'incell' && target.hasClass('k-checkbox') && target.prev().attr(kendo.attr('bind'))) {\n e.preventDefault();\n }\n });\n if (editable.update !== false) {\n if (isMac) {\n that.wrapper.on(CLICK + NS, '.k-edit-cell > input[type=\\'checkbox\\']', function (e) {\n $(e.target).focus();\n }).on(CLICK + NS, '.k-edit-cell', function (e) {\n if (!$(e.target).is('input')) {\n $(e.currentTarget).find('input[type=\\'checkbox\\']').focus();\n }\n }).on(MOUSEDOWN + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var editContainer = that._editContainer;\n if (editContainer && editContainer[0] && ($.contains(editContainer[0], e.target) || editContainer[0] === e.target)) {\n that._mousedownOnEditCell = true;\n } else {\n that._mousedownOnEditCell = false;\n }\n });\n }\n that.editableUserEvents = new kendo.UserEvents(that.wrapper, {\n filter: 'tr:not(.k-grouping-row) > td',\n allowSelection: true,\n tap: function (e) {\n var td = $(e.target), isLockedCell = that.lockedTable && td.closest('table')[0] === that.lockedTable[0];\n that._mousedownOnEditCell = false;\n if (td.hasClass('k-hierarchy-cell') || td.hasClass('k-detail-cell') || td.hasClass('k-group-cell') || td.hasClass('k-edit-cell') || td.has('a.k-grid-delete').length || td.has('button.k-grid-delete').length || td.closest('tbody')[0] !== that.tbody[0] && !isLockedCell || $(e.target).is(':input')) {\n return;\n }\n if (that.editable) {\n if (that.editable.end()) {\n $(activeElement()).blur();\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }\n });\n that.wrapper.on('focusin' + NS, function () {\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n }).on('focusout' + NS, function (e) {\n var shouldCloseCell = true;\n if (isMac && that._mousedownOnEditCell || that._virtualColScroll) {\n shouldCloseCell = false;\n }\n that._mousedownOnEditCell = false;\n if (shouldCloseCell) {\n that.timer = setTimeout(function () {\n handler(e);\n }, 1);\n }\n });\n }\n } else {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit', function (e) {\n var element = $(this);\n if (!that._belongsToGrid(element)) {\n return;\n }\n e.preventDefault();\n that.editRow(element.closest('tr'));\n });\n if (that._isVirtualInlineEditable()) {\n that.wrapper.on('focusout' + NS, 'tr:not(.k-grouping-row) > td', function () {\n if (that.editable && !that.editable.end()) {\n that._scrollVirtualWrapper();\n }\n });\n }\n }\n }\n if (editable.destroy !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete', function (e) {\n var element = $(this);\n if (!that._belongsToGrid(element)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n that.removeRow(element.closest('tr'));\n });\n } else {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete', function (e) {\n if (!that._belongsToGrid($(this))) {\n return;\n }\n e.stopPropagation();\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n editCell: function (cell) {\n cell = $(cell);\n var that = this, column = leafColumns(that.columns)[that._calculateColumnIndex(cell)], model = that._modelForContainer(cell);\n that.closeCell();\n if (model && isColumnEditable(column, model) && !column.command) {\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n that._attachModelChange(model);\n that._editContainer = cell;\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = cell.addClass('k-edit-cell').kendoEditable({\n fields: {\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n },\n model: model,\n target: that,\n change: function (e) {\n if (that.trigger(SAVE, {\n values: e.values,\n container: cell,\n model: model\n })) {\n e.preventDefault();\n }\n },\n skipFocus: (that._isVirtualIncellEditable() || that._hasVirtualColumns()) && that._editableState ? true : false\n }).data('kendoEditable');\n var tr = cell.parent().addClass('k-grid-edit-row');\n if (that.lockedContent) {\n adjustRowHeight(tr[0], that._relatedRow(tr).addClass('k-grid-edit-row')[0]);\n that._syncLockedScroll();\n }\n that.trigger(EDIT, {\n container: cell,\n model: model\n });\n }\n },\n _adjustLockedHorizontalScrollBar: function () {\n var table = this.table, content = table.parent();\n var scrollbar = table[0].offsetWidth > content[0].clientWidth ? kendo.support.scrollbar() : 0;\n this.lockedContent.height(content[0].offsetHeight - scrollbar);\n },\n _syncLockedScroll: function () {\n this.lockedContent[0].scrollTop = this.content[0].scrollTop;\n if (this.virtualScrollable) {\n this.lockedContent[0].scrollTop = this.wrapper.find('.k-virtual-scrollable-wrap')[0].scrollTop;\n }\n },\n _syncLockedContentHeight: function () {\n if (this.lockedTable) {\n if (!this.touchScroller) {\n this._adjustLockedHorizontalScrollBar();\n }\n this._adjustRowsHeight(this.table, this.lockedTable);\n }\n },\n _syncLockedHeaderHeight: function () {\n if (this.lockedHeader) {\n var lockedTable = this.lockedHeader.children('table');\n var table = this.thead.parent();\n this._adjustRowsHeight(lockedTable, table);\n syncTableHeight(lockedTable, table);\n }\n },\n _syncLockedFooterHeight: function () {\n if (this.lockedFooter && this.footer && this.footer.length) {\n this._adjustRowsHeight(this.lockedFooter.children('table'), this.footer.find('.k-grid-footer-wrap > table'));\n }\n },\n _destroyEditable: function () {\n var that = this;\n var destroy = function () {\n if (that.editable) {\n var container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n container.off(CLICK + NS, 'a.k-grid-cancel', that._editCancelClickHandler);\n container.off(CLICK + NS, 'a.k-grid-update', that._editUpdateClickHandler);\n }\n that._detachModelChange();\n that.editable.destroy();\n that.editable = null;\n that._editContainer = null;\n that._destroyEditView();\n that._editableIsClosing = null;\n }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n if (that._editableIsClosing) {\n that._editContainer.data('kendoWindow').bind('deactivate', destroy);\n } else {\n that._editableIsClosing = true;\n that._editContainer.data('kendoWindow').bind('deactivate', destroy).close();\n }\n } else {\n destroy();\n }\n }\n if (that._confirmDialog) {\n that._confirmDialog.close();\n that._confirmDialog.destroy();\n that._confirmDialog = null;\n }\n },\n _destroyEditView: function () {\n if (this.editView) {\n this.editView.purge();\n this.editView = null;\n this.pane.navigate('');\n }\n },\n _attachModelChange: function (model) {\n var that = this;\n that._modelChangeHandler = function (e) {\n that._modelChange({\n field: e.field,\n model: this\n });\n };\n model.bind('change', that._modelChangeHandler);\n },\n _detachModelChange: function () {\n var that = this, container = that._editContainer, model = that._modelForContainer(container);\n if (model) {\n model.unbind(CHANGE, that._modelChangeHandler);\n }\n },\n closeCell: function (isCancel) {\n var that = this, cell = that._editContainer, column, tr, model;\n if (!cell) {\n return;\n }\n model = that._modelForContainer(cell);\n if (isCancel && that.trigger('cancel', {\n container: cell,\n model: model\n })) {\n return;\n }\n that.trigger(CELLCLOSE, {\n type: isCancel ? 'cancel' : 'save',\n model: model,\n container: cell\n });\n cell.removeClass('k-edit-cell');\n column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n tr = cell.parent().removeClass('k-grid-edit-row');\n if (that.lockedContent) {\n that._relatedRow(tr).removeClass('k-grid-edit-row');\n }\n that._destroyEditable();\n that._displayCell(cell, column, model);\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.trigger('itemChange', {\n item: tr,\n data: model,\n ns: ui\n });\n if (that.lockedContent) {\n adjustRowHeight(tr.css('height', '')[0], that._relatedRow(tr).css('height', '')[0]);\n }\n },\n _displayCell: function (cell, column, dataItem) {\n var that = this, state = {\n storage: {},\n count: 0\n }, settings = extend({}, kendo.Template, that.options.templateSettings), tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n cell.empty().html(tmpl(dataItem));\n that.angular('compile', function () {\n return {\n elements: cell,\n data: [{ dataItem: dataItem }]\n };\n });\n },\n removeRow: function (row) {\n if (!this._confirmation(row)) {\n return;\n }\n this._removeRow(row);\n },\n _removeRow: function (row) {\n var that = this, model, modelId, key, schema, mode = that._editMode();\n if (mode !== 'incell') {\n that.cancelRow();\n }\n row = $(row);\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row = row.hide();\n if (that.dataSource._isGroupPaged()) {\n that._removeGroupIfEmpty(row);\n }\n model = that._modelForContainer(row);\n if (model && !that.trigger(REMOVE, {\n row: row,\n model: model\n })) {\n schema = that.dataSource.options.schema;\n if (that._selectedIds && schema && schema.model) {\n modelId = isFunction(that.dataSource.options.schema.model) ? that.dataSource.options.schema.model.fn.idField : that.dataSource.options.schema.model.id;\n key = model[modelId];\n delete that._selectedIds[key];\n }\n that.dataSource.remove(model);\n if (mode === 'inline' || mode === 'popup') {\n that.dataSource.sync();\n }\n } else if (mode === 'incell') {\n that._destroyEditable();\n }\n },\n _editMode: function () {\n var mode = 'incell', editable = this.options.editable;\n if (editable !== true) {\n if (typeof editable == 'string') {\n mode = editable;\n } else {\n mode = editable.mode || mode;\n }\n }\n return mode;\n },\n editRow: function (row) {\n var model;\n var that = this;\n if (row instanceof ObservableObject) {\n model = row;\n } else {\n row = $(row);\n model = that._modelForContainer(row);\n }\n var mode = that._editMode();\n var container;\n that.cancelRow();\n if (model) {\n row = that.tbody.children('[' + kendo.attr('uid') + '=' + model.uid + ']');\n that._attachModelChange(model);\n if (mode === 'popup') {\n that._createPopupEditor(model);\n } else if (mode === 'inline') {\n that._createInlineEditor(row, model);\n } else if (mode === 'incell') {\n $(row).children(DATA_CELL).each(function () {\n var cell = $(this);\n var column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n model = that._modelForContainer(cell);\n if (model && (!model.editable || model.editable(column.field)) && column.field && !column.selectable) {\n that.editCell(cell);\n return false;\n }\n });\n }\n container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n if (!this._editCancelClickHandler) {\n this._editCancelClickHandler = proxy(this._editCancelClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-cancel', this._editCancelClickHandler);\n if (!this._editUpdateClickHandler) {\n this._editUpdateClickHandler = proxy(this._editUpdateClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-update', this._editUpdateClickHandler);\n }\n }\n },\n _editUpdateClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.saveRow();\n },\n _editCancelClick: function (e) {\n var that = this;\n var navigatable = that.options.navigatable;\n var model = that.editable.options.model;\n var container = that.editView ? that.editView.element : that._editContainer;\n e.preventDefault();\n e.stopPropagation();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that.cancelRow();\n if (navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n },\n _createPopupEditor: function (model) {\n var that = this;\n var html = '
<' + (that._isMobile ? 'ul class=\"k-edit-form-container k-listgroup k-listgroup-flush\">' : 'div class=\"k-edit-form-container\">');\n var column;\n var command;\n var fields = [];\n var idx;\n var length;\n var tmpl;\n var updateText;\n var cancelText;\n var updateIconClass;\n var cancelIconClass;\n var tempCommand;\n var columns = leafColumns(that.columns);\n var attr;\n var editMenuGuid = kendo.guid();\n var editable = that.options.editable;\n var template = editable.template;\n var options = isPlainObject(editable) ? editable.window : {};\n var settings = extend({}, kendo.Template, that.options.templateSettings);\n var state;\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n options = options || {};\n if (template) {\n if (typeof template === STRING) {\n template = kendo.unescape(template);\n }\n html += kendo.template(template, settings)(model);\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n } else {\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (column.selectable) {\n continue;\n }\n if (!column.command) {\n if (!that._isMobile) {\n html += '
';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '
';\n } else {\n state = {\n storage: {},\n count: 0\n };\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n html += '
' + tmpl(model) + '
';\n }\n } else {\n html += '
  • ';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '';\n } else {\n state = {\n storage: {},\n count: 0\n };\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n html += '';\n }\n html += '
  • ';\n }\n } else if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n }\n if (command) {\n if (isPlainObject(command)) {\n if (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n }\n var container;\n if (!that._isMobile) {\n html += '
    ';\n html += that._createButton({\n name: 'update',\n text: updateText,\n attr: attr,\n iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\n });\n html += '
    ';\n container = that._editContainer = $(html).appendTo(that.wrapper).eq(0).kendoWindow(extend({\n modal: true,\n resizable: false,\n draggable: true,\n title: that.options.messages.commands.edit || 'Edit',\n visible: false,\n close: function (e) {\n if (e.userTriggered) {\n e.sender.element.focus();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n e.preventDefault();\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that._editableIsClosing = true;\n that.cancelRow();\n if (that.options.navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n }\n }\n }, options));\n } else {\n html += '
    ';\n that.editView = that.pane.append('
    ' + '
    ' + '' + (that.options.messages.commands.edit || 'Edit') + '' + '
    ' + '
    ' + html + '
    ' + '
    ');\n container = that._editContainer = that.editView.element.find('.k-popup-edit-form');\n }\n that.editable = that._editContainer.kendoEditable({\n fields: fields,\n model: model,\n clearContainer: false,\n target: that\n }).data('kendoEditable');\n that._openPopUpEditor();\n that.trigger(EDIT, {\n container: container,\n model: model\n });\n },\n _openPopUpEditor: function () {\n var that = this;\n var windowEditor = that._editContainer ? that._editContainer.data('kendoWindow') : null;\n var windowOptions = (that.options.editable || {}).window || {};\n if (!this._isMobile) {\n if (windowEditor) {\n if (!windowOptions.position) {\n windowEditor.center();\n }\n windowEditor.open();\n }\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n _createInlineEditor: function (row, model) {\n var that = this;\n var column;\n var cell;\n var command;\n var fields = [];\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row.children(':not(.k-group-cell,.k-hierarchy-cell)').each(function () {\n cell = $(this);\n column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n if (!column.command && isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n cell.attr(kendo.attr('container-for'), column.field);\n cell.empty();\n } else if (column.command) {\n command = getCommand(column.command, 'edit');\n if (command) {\n cell.empty();\n var updateText, cancelText, updateIconClass, cancelIconClass, attr;\n if (isPlainObject(command)) {\n if (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n $(that._createButton({\n name: 'update',\n text: updateText,\n attr: attr,\n iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\n })).appendTo(cell);\n }\n }\n });\n that._editContainer = row;\n that._editContainer.addClass('k-grid-edit-row');\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = new kendo.ui.Editable(that._editContainer, {\n target: that,\n fields: fields,\n model: model,\n skipFocus: that._isVirtualInlineEditable() && that._editableState && (that._editableState.field ? true : false) || that._hasVirtualColumns(),\n clearContainer: false\n });\n if (row.length > 1) {\n adjustRowHeight(row[0], row[1]);\n that._applyLockedContainersWidth();\n }\n that.trigger(EDIT, {\n container: row,\n model: model\n });\n },\n cancelRow: function (notify) {\n var that = this, container = that._editContainer, model;\n if (container) {\n model = that._modelForContainer(container);\n if (!model || notify && that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n that._destroyEditable();\n that.dataSource.cancelChanges(model);\n that._clearEditableState();\n if (that._editMode() !== 'popup') {\n that._displayRow(container);\n } else {\n that._displayRow(that.tbody.find('[' + kendo.attr('uid') + '=' + model.uid + ']'));\n }\n }\n },\n saveRow: function () {\n var that = this;\n var container = this._editContainer;\n var model = this._modelForContainer(container);\n var deferred = $.Deferred();\n var valid;\n if (!container || !this.editable) {\n return deferred.resolve().promise();\n }\n valid = that.editable && that.editable.end();\n if (!valid || this.trigger(SAVE, {\n container: container,\n model: model\n })) {\n if (!valid) {\n that._scrollVirtualWrapper();\n }\n return deferred.reject().promise();\n }\n that._clearEditableState();\n return this.dataSource.sync();\n },\n _displayRow: function (row) {\n var that = this, model = that._modelForContainer(row), related, newRow, nextRow, isSelected = row.hasClass('k-state-selected'), isAlt = row.hasClass('k-alt');\n if (model) {\n if (that.lockedContent) {\n related = $((isAlt ? that.lockedAltRowTemplate : that.lockedRowTemplate)(model));\n that._relatedRow(row.last()).replaceWith(related);\n }\n that.angular('cleanup', function () {\n return { elements: row.get() };\n });\n newRow = $((isAlt ? that.altRowTemplate : that.rowTemplate)(model));\n if (!row.is(':visible')) {\n newRow.hide();\n }\n row.replaceWith(newRow);\n that.trigger('itemChange', {\n item: newRow,\n data: model,\n ns: ui\n });\n if (related && related.length) {\n that.trigger('itemChange', {\n item: related,\n data: model,\n ns: ui\n });\n }\n var angularElements = newRow;\n var angularData = [{ dataItem: model }];\n if (related && related.length) {\n angularElements = newRow.add(related);\n angularData.push({ dataItem: model });\n }\n that.angular('compile', function () {\n return {\n elements: angularElements.get(),\n data: angularData\n };\n });\n if (isSelected && (that.options.selectable || that._checkBoxSelection)) {\n that.select(newRow.add(related));\n }\n if (related) {\n adjustRowHeight(newRow[0], related[0]);\n }\n nextRow = newRow.next();\n if (nextRow.hasClass('k-detail-row') && nextRow.is(':visible')) {\n newRow.find('.k-hierarchy-cell .k-icon').removeClass('k-i-expand').addClass('k-i-collapse');\n }\n }\n },\n _showMessage: function (messages, row) {\n var that = this;\n if (!that._isMobile) {\n return window.confirm(messages.title);\n }\n var confirmDialog = that._confirmDialog = new kendo.ui.Confirm($('
    ').appendTo(document.body), {\n modal: { preventScroll: true },\n closable: false,\n title: false,\n content: messages.title,\n messages: {\n okText: messages.confirmDelete,\n cancel: messages.cancelDelete\n },\n open: function () {\n if (that.content) {\n that.content.data(OVERFLOW, that.content.css(OVERFLOW));\n that.content.css(OVERFLOW, HIDDEN);\n }\n },\n close: function () {\n if (that.content) {\n that.content.css(OVERFLOW, that.content.data(OVERFLOW));\n }\n }\n });\n confirmDialog.result.done(function () {\n that._removeRow(row);\n }).fail(function () {\n var confirmDialog = that._confirmDialog;\n if (confirmDialog) {\n confirmDialog.close();\n confirmDialog.destroy();\n }\n });\n return false;\n },\n _confirmation: function (row) {\n var that = this, editable = that.options.editable, confirmation = editable === true || typeof editable === STRING ? that.options.messages.editable.confirmation : editable.confirmation;\n if (isPlainObject(editable) && typeof editable.mode === STRING && typeof confirmation !== FUNCTION && typeof confirmation !== STRING && confirmation !== false) {\n confirmation = that.options.messages.editable.confirmation;\n }\n if (confirmation !== false && confirmation != null) {\n if (typeof confirmation === FUNCTION) {\n confirmation = confirmation(that._modelForContainer(row));\n }\n return that._showMessage({\n confirmDelete: editable.confirmDelete || that.options.messages.editable.confirmDelete,\n cancelDelete: editable.cancelDelete || that.options.messages.editable.cancelDelete,\n title: confirmation === true ? that.options.messages.editable.confirmation : confirmation\n }, row);\n }\n return true;\n },\n cancelChanges: function () {\n var that = this;\n that.dataSource.cancelChanges();\n if (that._isVirtualEditable()) {\n that._virtualPageToTop(function () {\n that.virtualScrollable.scrollToTop();\n });\n }\n },\n saveChanges: function () {\n var that = this;\n var valid = that.editable && that.editable.end();\n if ((valid || !that.editable) && !that.trigger(SAVECHANGES)) {\n that.dataSource.sync();\n } else if (!valid) {\n that._scrollVirtualWrapper();\n }\n },\n addRow: function () {\n var that = this, index, dataSource = that.dataSource, mode = that._editMode(), createAt = that.options.editable.createAt || '', pageSize = dataSource.pageSize(), view = dataSource.view() || [];\n var createAtBottom = createAt.toLowerCase() === BOTTOM;\n var model;\n var virtualEditable = that._isVirtualEditable();\n if (that.editable && that.editable.end() || !that.editable) {\n if (mode != 'incell') {\n that.cancelRow();\n }\n index = dataSource.indexOf(view[0]);\n if (createAtBottom) {\n index += view.length;\n if (pageSize && !dataSource.options.serverPaging && pageSize <= view.length) {\n index -= 1;\n }\n }\n if (index < 0) {\n if (dataSource.page() > dataSource.totalPages()) {\n index = (dataSource.page() - 1) * pageSize;\n } else {\n index = 0;\n }\n }\n if (that.options.navigatable && mode == 'incell') {\n that._removeCurrent();\n }\n if (virtualEditable) {\n that._virtualAddRow();\n } else {\n model = dataSource.insert(index, {});\n that._editModel(model);\n }\n } else {\n that._scrollVirtualWrapper();\n }\n },\n _editModel: function (model) {\n var that = this;\n var createAt = that.options.editable.createAt || '';\n var mode = that._editMode();\n if (model) {\n var id = model.uid, table = that.lockedContent ? that.lockedTable : that.table, row = table.find('tr[' + kendo.attr('uid') + '=' + id + ']'), cell = row.children('td:not(.k-group-cell,.k-hierarchy-cell)').eq(that._firstEditableColumnIndex(row));\n if (mode === 'inline' && row.length) {\n that.editRow(row);\n } else if (mode === 'popup') {\n that.editRow(model);\n } else if (cell.length) {\n that.editCell(cell);\n }\n if (createAt.toLowerCase() == 'bottom' && that.lockedContent) {\n that.lockedContent[0].scrollTop = that.content[0].scrollTop = that.table[0].offsetHeight;\n }\n }\n },\n _virtualAddRow: function () {\n var that = this;\n var createAtBottom = (that.options.editable.createAt || '').toLowerCase() === BOTTOM;\n that._clearEditableState();\n if (createAtBottom) {\n that._virtualAddRowAtBottom();\n } else {\n that._virtualAddRowAtTop();\n }\n },\n _virtualAddRowAtTop: function () {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var model;\n if (dataSource.page() === 1) {\n model = dataSource.insert(0, {});\n that._editModel(model);\n virtualScrollable.scrollToTop();\n } else {\n that._virtualPageToTop(function () {\n model = dataSource.insert(0, {});\n that._editModel(model);\n virtualScrollable.scrollToTop();\n });\n }\n },\n _virtualAddRowAtBottom: function () {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var index = dataSource.total();\n var model;\n if (dataSource.at(index - 1) instanceof ObservableObject) {\n model = dataSource.insert(index, {});\n that._virtualPageToBottom(function () {\n that._editModel(model);\n virtualScrollable.scrollToBottom();\n });\n } else {\n that._virtualPageToBottom(function () {\n model = dataSource.insert(index, {});\n that._editModel(model);\n virtualScrollable.scrollToBottom();\n });\n }\n },\n _virtualPageToTop: function (callback) {\n var that = this;\n that._virtualPage(0, that.dataSource.take(), function () {\n callback();\n });\n },\n _virtualPageToBottom: function (callback) {\n var that = this;\n var dataSource = that.dataSource;\n var take = dataSource.take();\n var total = dataSource.total();\n var skip = total > take ? total - take : 0;\n that._virtualPage(skip, take, function () {\n callback();\n });\n },\n _virtualPage: function (skip, take, callback) {\n var that = this;\n if (that._isVirtualEditable()) {\n that.virtualScrollable._preventScroll = true;\n that.virtualScrollable._page(skip, take, callback);\n }\n },\n _firstEditableColumnIndex: function (container) {\n var that = this, column, columns = leafColumns(that.columns), idx, length, model = that._modelForContainer(container);\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (model && (!model.editable || model.editable(column.field)) && !column.command && column.field && column.hidden !== true) {\n return idx;\n }\n }\n return -1;\n },\n _toolbar: function () {\n var that = this, wrapper = that.wrapper, toolbar = that.options.toolbar, editable = that.options.editable, container;\n if (toolbar) {\n container = that.wrapper.find('.k-grid-toolbar');\n if (!container.length) {\n if (!isFunction(toolbar)) {\n toolbar = typeof toolbar === STRING ? toolbar : that._toolbarTmpl(toolbar).replace(templateHashRegExp, '\\\\#');\n toolbar = proxy(kendo.template(toolbar), that);\n }\n container = $('
    ').html(toolbar({})).prependTo(wrapper);\n that.angular('compile', function () {\n return { elements: container.get() };\n });\n }\n if (editable && editable.create !== false) {\n container.on(CLICK + NS, '.k-grid-add', function (e) {\n e.preventDefault();\n that.addRow();\n }).on(CLICK + NS, '.k-grid-cancel-changes', function (e) {\n e.preventDefault();\n that.cancelChanges();\n }).on(CLICK + NS, '.k-grid-save-changes', function (e) {\n e.preventDefault();\n that.saveChanges();\n });\n }\n container.on(CLICK + NS, '.k-grid-excel', function (e) {\n e.preventDefault();\n that.saveAsExcel();\n });\n container.on(CLICK + NS, '.k-grid-pdf', function (e) {\n e.preventDefault();\n that.saveAsPDF();\n });\n container.on(INPUT + NS, '.k-grid-search input', function (e) {\n var input = e.currentTarget;\n clearTimeout(that._searchTimeOut);\n that._searchTimeOut = setTimeout(function () {\n that._searchTimeOut = null;\n var options = that.options;\n var searchFields = options.search ? options.search.fields : null;\n var expression = {\n filters: [],\n logic: 'or'\n };\n var value = input.value;\n if (!searchFields) {\n searchFields = getColumnsFields(options.columns);\n }\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n }\n if (value) {\n for (var i = 0; i < searchFields.length; i++) {\n expression.filters.push({\n field: searchFields[i],\n operator: 'contains',\n value: value\n });\n }\n } else {\n expression = {};\n }\n that.dataSource.filter(expression);\n }, 300);\n });\n }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '', command, searchText = '', messages = that.options.messages.commands;\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = typeof commands[idx] === 'string' ? commands[idx].toLowerCase() : (commands[idx].name || '').toLowerCase();\n if (command === 'search') {\n if (typeof commands[idx] !== 'string') {\n searchText = commands[idx].text;\n }\n searchText = searchText || messages.search;\n html += '';\n html += '';\n html += '';\n html += '';\n } else {\n html += that._createButton(commands[idx]);\n }\n }\n }\n return html;\n },\n _createButton: function (command) {\n var template = command.template || COMMANDBUTTONTMPL, commandName = typeof command === STRING ? command : command.name || command.text, className = defaultCommands[commandName] ? defaultCommands[commandName].className : 'k-grid-' + (commandName || '').replace(/\\s/g, ''), options = {\n className: className,\n text: commandName,\n attr: '',\n iconClass: ''\n }, messages = this.options.messages.commands, attributeClassMatch;\n if (!commandName && !(isPlainObject(command) && command.template)) {\n throw new Error('Custom commands should have name specified');\n }\n if (isPlainObject(command)) {\n command = extend(true, {}, command);\n if (command.className && inArray(options.className, command.className.split(' ')) < 0) {\n command.className += ' ' + options.className;\n } else if (command.className === undefined) {\n command.className = options.className;\n }\n if (commandName === 'edit') {\n command = extend(true, {}, command);\n command.text = isPlainObject(command.text) ? command.text.edit : command.text;\n command.iconClass = isPlainObject(command.iconClass) ? command.iconClass.edit : command.iconClass;\n }\n if (command.attr) {\n if (isPlainObject(command.attr)) {\n command.attr = stringifyAttributes(command.attr);\n }\n if (typeof command.attr === STRING) {\n attributeClassMatch = command.attr.match(/class=\"(.+?)\"/);\n if (attributeClassMatch && inArray(attributeClassMatch[1], command.className.split(' ')) < 0) {\n command.className += ' ' + attributeClassMatch[1];\n }\n }\n }\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] }, command);\n } else {\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] });\n }\n return kendo.template(template)(options);\n },\n _hasFooters: function () {\n return !!this.footerTemplate || !!this.groupFooterTemplate || this.footer && this.footer.length > 0 || this.wrapper.find('.k-grid-footer').length > 0;\n },\n _groupable: function () {\n var that = this;\n if (that._groupableClickHandler) {\n that.table.add(that.lockedTable).off(CLICK + NS, that._groupableClickHandler);\n } else {\n that._groupableClickHandler = function (e) {\n var element = $(this), groupRow = element.closest('tr');\n var group = that._groupRows ? that._groupRows[that.wrapper.find('.k-grouping-row').index(groupRow)] : {};\n if (element.hasClass('k-i-collapse')) {\n if (!that.trigger('groupCollapse', {\n group: group,\n element: groupRow\n })) {\n that.collapseGroup(groupRow);\n }\n } else {\n if (!that.trigger('groupExpand', {\n group: group,\n element: groupRow\n })) {\n that.expandGroup(groupRow);\n }\n }\n e.preventDefault();\n e.stopPropagation();\n };\n }\n if (that._isLocked()) {\n that.lockedTable.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n } else {\n that.table.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n }\n that._attachGroupable();\n },\n _attachGroupable: function () {\n var that = this, wrapper = that.wrapper, groupable = that.options.groupable, draggables = HEADERCELLS + '[' + kendo.attr('field') + ']', filter = that.content ? '.k-grid-header:first ' + draggables : 'table:first>.k-grid-header ' + draggables;\n if (groupable && groupable.enabled !== false) {\n if (!wrapper.has('div.k-grouping-header')[0]) {\n $('
     
    ').addClass('k-grouping-header').prependTo(wrapper);\n }\n if (that.groupable) {\n that._destroyGroupable();\n }\n if (browser.chrome) {\n wrapper.find('div.k-grouping-header').css('touch-action', 'none');\n wrapper.find(filter).css('touch-action', 'none');\n }\n that.groupable = new ui.Groupable(wrapper, extend({}, groupable, {\n draggable: that._draggableInstance,\n groupContainer: '>div.k-grouping-header',\n dataSource: that.dataSource,\n draggableElements: filter,\n filter: filter,\n allowDrag: that.options.reorderable,\n change: function (e) {\n if (that.trigger('group', { groups: e.groups })) {\n e.preventDefault();\n } else {\n that._clearEditableState();\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n that.dataSource._skip = 0;\n that.dataSource._pageSize = that.dataSource._take = that._endlessPageSize;\n that.dataSource._page = 1;\n }\n }\n }\n }));\n that._addGroupableOptionsToHeader();\n }\n },\n _addGroupableOptionsToHeader: function () {\n var that = this;\n var columns = flatColumns(that.columns);\n var columnFieldMap = {};\n var field = '';\n var headerCells = that._headerCells();\n var cellFieldAttr = '';\n var headerCell;\n var columnOptions;\n var i;\n for (i = 0; i < columns.length; i++) {\n field = columns[i].field;\n columnFieldMap[columns[i].field] = columns[i];\n }\n for (i = 0; i < headerCells.length; i++) {\n headerCell = headerCells.eq(i);\n cellFieldAttr = headerCell.attr(kendo.attr(FIELD));\n columnOptions = columnFieldMap[cellFieldAttr];\n if (columnOptions && columnOptions.groupable && columnOptions.groupable.sort) {\n headerCell.data(GROUP_SORT, columnOptions.groupable.sort);\n }\n }\n },\n _destroyGroupable: function () {\n var that = this;\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable('destroy');\n }\n that.groupable = null;\n that._removeGroupableOptionsFromHeader();\n },\n _removeGroupableOptionsFromHeader: function () {\n var that = this;\n var headerCells = that._headerCells();\n for (var i = 0; i < headerCells.length; i++) {\n headerCells.eq(i).removeData(GROUP_SORT);\n }\n },\n _continuousItems: function (filter, cell) {\n if (!this.lockedContent) {\n return;\n }\n var that = this;\n var elements = that.table.add(that.lockedTable);\n var lockedItems = $(filter, elements[0]);\n var nonLockedItems = $(filter, elements[1]);\n var columns = cell ? lockedColumns(that.columns).length : 1;\n var nonLockedColumns = cell ? that.columns.length - columns : 1;\n var result = [];\n for (var idx = 0; idx < lockedItems.length; idx += columns) {\n push.apply(result, lockedItems.slice(idx, idx + columns));\n push.apply(result, nonLockedItems.splice(0, nonLockedColumns));\n }\n return result;\n },\n _selectable: function () {\n var that = this, multi, cell, notString = [], isLocked = that._isLocked(), selectable = that.options.selectable;\n if (selectable) {\n if (that.selectable) {\n that.selectable.destroy();\n }\n that._selectedIds = {};\n selectable = kendo.ui.Selectable.parseOptions(selectable);\n multi = selectable.multiple;\n cell = selectable.cell;\n if (that._hasDetails()) {\n notString[notString.length] = '.k-detail-row';\n }\n if (that.options.groupable || that._hasFooters() || that._groups()) {\n notString[notString.length] = '.k-grouping-row,.k-group-footer';\n }\n notString = notString.join(',');\n if (notString !== '') {\n notString = ':not(' + notString + ')';\n }\n var elements = that.table;\n if (isLocked) {\n elements = elements.add(that.lockedTable);\n }\n var filter = '>' + (cell ? SELECTION_CELL_SELECTOR : 'tbody>tr' + notString);\n that.selectable = new kendo.ui.Selectable(elements, {\n filter: filter,\n aria: true,\n multiple: multi,\n change: function () {\n var selectedValues;\n if (!cell) {\n that._persistSelectedRows();\n }\n if (that._checkBoxSelection) {\n selectedValues = that.selectable.value();\n that._uncheckCheckBoxes();\n that._checkRows(selectedValues);\n if (selectedValues.length && selectedValues.length === that.items().length) {\n that._toggleHeaderCheckState(true);\n } else {\n that._toggleHeaderCheckState(false);\n }\n }\n that.trigger(CHANGE);\n },\n useAllItems: isLocked && multi && cell,\n relatedTarget: function (items) {\n if (cell || !isLocked) {\n return;\n }\n var related;\n var result = $();\n for (var idx = 0, length = items.length; idx < length; idx++) {\n related = that._relatedRow(items[idx]);\n if (inArray(related[0], items) < 0) {\n result = result.add(related);\n }\n }\n return result;\n },\n continuousItems: function () {\n return that._continuousItems(filter, cell);\n },\n ignoreOverlapped: that.options.selectable && that.options.selectable.ignoreOverlapped,\n addIdToRanges: true\n });\n if (that.options.navigatable) {\n elements.on('keydown' + NS, function (e) {\n var current = that.current();\n var target = e.target;\n if (!current) {\n return;\n }\n if (e.keyCode === keys.SPACEBAR && !e.shiftKey && $.inArray(target, elements) > -1 && !current.is('.k-edit-cell,.k-header') && current.parent().is(':not(.k-grouping-row,.k-detail-row,.k-group-footer)')) {\n e.preventDefault();\n e.stopPropagation();\n current = cell ? current : current.parent();\n if (isLocked && !cell) {\n current = current.add(that._relatedRow(current));\n }\n if (multi) {\n if (!e.ctrlKey) {\n that.selectable.clear();\n } else {\n if (current.hasClass(SELECTED)) {\n that._deselectCheckRows(current);\n return;\n }\n }\n } else {\n that.selectable.clear();\n }\n if (!cell) {\n that.selectable._lastActive = current;\n }\n that.selectable.value(current);\n } else if (!cell && ($(target).is('td') || $(target).is('table') && inArray(target, this._navigatableTables)) && (e.shiftKey && e.keyCode == keys.LEFT || e.shiftKey && e.keyCode == keys.RIGHT || e.shiftKey && e.keyCode == keys.UP || e.shiftKey && e.keyCode == keys.DOWN || e.keyCode === keys.SPACEBAR && e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n current = current.parent();\n if (isLocked) {\n current = current.add(that._relatedRow(current));\n }\n if (multi) {\n if (!that.selectable._lastActive) {\n that.selectable._lastActive = current;\n }\n that.selectable.selectRange(that.selectable._firstSelectee(), current);\n } else {\n that.selectable.clear();\n that.selectable.value(current);\n }\n }\n });\n }\n }\n },\n _clipboard: function () {\n var options = this.options;\n var selectable = options.selectable;\n if (selectable && options.allowCopy) {\n var grid = this;\n if (!options.navigatable) {\n grid.table.add(grid.lockedTable).attr('tabindex', 0).on('mousedown' + NS + ' keydown' + NS, '.k-detail-cell', function (e) {\n if (e.target !== e.currentTarget) {\n e.stopImmediatePropagation();\n }\n }).on('mousedown' + NS, NAVROW + '>' + NAVCELL, proxy(tableClick, grid));\n }\n grid.copyHandler = proxy(grid.copySelection, grid);\n grid.updateClipBoardState = function () {\n if (grid.areaClipBoard) {\n grid.areaClipBoard.val(grid.getTSV()).focus().select();\n }\n };\n grid.bind('change', grid.updateClipBoardState);\n grid.wrapper.on('keydown', grid.copyHandler);\n grid.clearAreaHandler = proxy(grid.clearArea, grid);\n grid.wrapper.on('keyup', grid.clearAreaHandler);\n }\n },\n copySelectionToClipboard: function (includeHeaders) {\n this._createAreaClipBoard();\n this.areaClipBoard.val(this.getTSV(includeHeaders)).focus().select();\n document.execCommand('copy');\n },\n copySelection: function (e) {\n if (e instanceof jQuery.Event && !(e.ctrlKey || e.metaKey) || $(e.target).is('input:visible,textarea:visible') || window.getSelection && window.getSelection().toString() || document.selection && document.selection.createRange().text) {\n return;\n }\n this._createAreaClipBoard();\n this.areaClipBoard.val(this.getTSV()).focus().select();\n },\n _createAreaClipBoard: function () {\n if (!this.areaClipBoard) {\n this.areaClipBoard = $('