{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/primereact/core/core.esm.js","../node_modules/@fullcalendar/common/vdom.js","api/EventSourceApi.ts","util/dom-manip.ts","util/dom-event.ts","util/misc.ts","datelib/marker.ts","structs/event-instance.ts","util/object.ts","structs/recurring-event.ts","datelib/duration.ts","datelib/formatting-utils.ts","util/array.ts","util/memoize.ts","datelib/formatting-native.ts","datelib/zoned-marker.ts","datelib/DateFormatter.ts","datelib/formatting-cmd.ts","datelib/formatting-func.ts","datelib/formatting.ts","options.ts","structs/event-store.ts","util/html.ts","component/event-ui.ts","structs/constraint.ts","structs/event-parse.ts","util/date.ts","datelib/date-range.ts","component/event-rendering.ts","structs/date-span.ts","calendar-utils.ts","structs/event-mutation.ts","ViewApi.ts","structs/event-source-parse.ts","reducers/current-date.ts","CalendarApi.tsx","api/EventApi.ts","datelib/calendar-system.ts","datelib/parsing.ts","datelib/env.ts","global-locales.ts","datelib/locale.ts","structs/business-hours.ts","util/table-styling.tsx","util/geom.ts","component/event-splitting.ts","component/date-rendering.tsx","common/nav-link.ts","util/scrollbar-side.ts","util/scrollbar-width.ts","util/dom-geom.ts","common/Emitter.ts","common/PositionCache.ts","common/scroll-controller.ts","theme/Theme.ts","ScrollResponder.ts","ViewContext.ts","vdom-util.tsx","component/DateComponent.ts","plugin-system.ts","theme/StandardTheme.ts","structs/view-def.ts","common/render-hook.tsx","common/ViewRoot.tsx","structs/view-config.tsx","structs/view-spec.ts","DateProfileGenerator.ts","reducers/eventSources.ts","reducers/eventStore.ts","reducers/date-selection.ts","reducers/selected-event.ts","reducers/event-drag.ts","reducers/event-resize.ts","toolbar-parse.ts","event-sources/array-event-source.ts","event-sources/func-event-source.ts","util/promise.ts","util/requestJson.ts","option-change-handlers.ts","global-plugins.ts","event-sources/json-feed-event-source.ts","event-sources/json-feed-event-source-refiners.ts","structs/recurring-event-simple.ts","structs/recurring-event-simple-refiners.ts","dates-set.ts","event-crud.ts","util/DelayedRunner.ts","util/TaskRunner.ts","reducers/title-formatting.ts","reducers/CalendarDataManager.ts","reducers/options.ts","reducers/view-type.ts","reducers/date-profile.ts","component/CalendarDataProvider.ts","seg-hierarchy.ts","interactions/interaction.ts","interactions/ElementDragging.ts","global-config.ts","structs/drag-meta.ts","ToolbarSection.tsx","Toolbar.tsx","ViewContainer.tsx","interactions/EventClicking.ts","interactions/EventHovering.ts","CalendarContent.tsx","CalendarRoot.tsx","common/table-cell-util.tsx","common/TableDateCell.tsx","common/TableDowCell.tsx","NowTimer.ts","common/DayHeader.tsx","common/table-utils.ts","common/DaySeriesModel.ts","common/DayTableModel.ts","common/slicing-utils.ts","validation.ts","scrollgrid/Scroller.tsx","util/RefMap.ts","scrollgrid/util.tsx","scrollgrid/SimpleScrollGrid.tsx","common/EventRoot.tsx","common/StandardEvent.tsx","common/NowIndicatorRoot.tsx","common/DayCellContent.tsx","common/DayCellRoot.tsx","common/bg-fill.tsx","common/WeekNumberRoot.tsx","common/Popover.tsx","common/MorePopover.tsx","common/MoreLinkRoot.tsx","../node_modules/tslib/tslib.es6.js","../node_modules/primereact/button/button.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/primereact/inputtext/inputtext.esm.js","../node_modules/primereact/column/column.esm.js","../node_modules/primereact/api/api.esm.js","../node_modules/axios/index.js","../node_modules/classnames/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/primereact/checkbox/checkbox.esm.js","../node_modules/primereact/datatable/datatable.esm.js","../node_modules/primereact/dropdown/dropdown.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../modules/createNameContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/react-dom/index.js","../node_modules/primereact/radiobutton/radiobutton.esm.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/core-js/internals/is-callable.js","../node_modules/primereact/chip/chip.esm.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/define-well-known-symbol.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/primereact/inputtextarea/inputtextarea.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/primereact/tag/tag.esm.js","../node_modules/core-js/internals/global.js","../node_modules/primereact/badge/badge.esm.js","../node_modules/primereact/accordion/accordion.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/axios/lib/utils.js","../node_modules/primereact/toast/toast.esm.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/primereact/tabview/tabview.esm.js","../node_modules/core-js/internals/has.js","../node_modules/core-js/internals/fails.js","../node_modules/primereact/inputnumber/inputnumber.esm.js","../node_modules/primereact/calendar/calendar.esm.js","../node_modules/primereact/avatar/avatar.esm.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/an-object.js","../node_modules/primereact/progressbar/progressbar.esm.js","../node_modules/primereact/rating/rating.esm.js","../node_modules/primereact/dialog/dialog.esm.js","../node_modules/core-js/internals/descriptors.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/primereact/virtualscroller/virtualscroller.esm.js","../node_modules/primereact/splitbutton/splitbutton.esm.js","../node_modules/primereact/skeleton/skeleton.esm.js","../node_modules/primereact/splitter/splitter.esm.js","../node_modules/primereact/chart/chart.esm.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/to-object.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/primereact/paginator/paginator.esm.js","TableView.tsx","TableSeg.ts","TableCellTop.tsx","event-rendering.ts","TableBlockEvent.tsx","TableListItemEvent.tsx","TableCellMoreLink.tsx","TableCell.tsx","event-placement.ts","TableRow.tsx","Table.tsx","DayTableSlicer.tsx","DayTable.tsx","DayTableView.tsx","TableDateProfileGenerator.ts","main.ts","../node_modules/primereact/autocomplete/autocomplete.esm.js","../node_modules/primereact/chips/chips.esm.js","../node_modules/primereact/multiselect/multiselect.esm.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/primereact/panel/panel.esm.js","../node_modules/primereact/sidebar/sidebar.esm.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/redefine.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/iterators.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/primereact/messages/messages.esm.js","../node_modules/primereact/fileupload/fileupload.esm.js","../node_modules/webpack/buildin/global.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/object-create.js","../node_modules/object-assign/index.js","../node_modules/primereact/inputswitch/inputswitch.esm.js","AllDaySplitter.ts","TimeColsAxisCell.tsx","TimeBodyAxis.tsx","TimeColsView.tsx","TimeColsSlatsCoords.ts","TimeColsSlatsBody.tsx","TimeColsSlats.tsx","TimeColsSeg.ts","TimeColMoreLink.tsx","seg-web.ts","TimeColEvent.tsx","TimeColMisc.tsx","TimeCol.tsx","TimeColsContent.tsx","TimeCols.tsx","DayTimeColsSlicer.ts","DayTimeCols.tsx","time-slat-meta.ts","DayTimeColsView.tsx","dnd/PointerDragging.ts","dnd/ElementMirror.ts","ScrollGeomCache.ts","ElementScrollGeomCache.ts","WindowScrollGeomCache.ts","dnd/AutoScroller.ts","dnd/FeaturefulElementDragging.ts","OffsetTracker.ts","interactions/HitDragging.ts","utils.ts","interactions/DateClicking.ts","interactions/DateSelecting.ts","interactions/EventDragging.ts","interactions/EventResizing.ts","interactions/UnselectAuto.ts","interactions-external/ExternalElementDragging.ts","interactions-external/ExternalDraggable.ts","interactions-external/InferredElementDragging.ts","interactions-external/ThirdPartyDraggable.ts","../node_modules/primereact/inputmask/inputmask.esm.js","../node_modules/primereact/toolbar/toolbar.esm.js","../node_modules/primereact/card/card.esm.js","../node_modules/primereact/password/password.esm.js","../../src/vdom.ts","../../src/main.tsx","../node_modules/primereact/divider/divider.esm.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/native-symbol.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/set-global.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/to-integer.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/path-to-regexp/index.js","../node_modules/primereact/selectbutton/selectbutton.esm.js","../node_modules/primereact/dataview/dataview.esm.js","../node_modules/primereact/overlaypanel/overlaypanel.esm.js","../node_modules/primereact/menu/menu.esm.js","../node_modules/primereact/megamenu/megamenu.esm.js","../node_modules/primereact/message/message.esm.js","../node_modules/prismjs/components/prism-core.js","../node_modules/primereact/timeline/timeline.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/well-known-symbol-wrapped.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/define-iterator.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/promise/lib/core.js","../node_modules/react-is/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/primereact/ripple/ripple.esm.js","../node_modules/primereact/slider/slider.esm.js","../node_modules/primereact/knob/knob.esm.js","../node_modules/primereact/colorpicker/colorpicker.esm.js","../node_modules/primereact/listbox/listbox.esm.js","../node_modules/primereact/togglebutton/togglebutton.esm.js","../node_modules/primereact/picklist/picklist.esm.js","../node_modules/primereact/orderlist/orderlist.esm.js","../node_modules/primereact/tree/tree.esm.js","../node_modules/primereact/treetable/treetable.esm.js","../node_modules/primereact/fieldset/fieldset.esm.js","../node_modules/primereact/confirmpopup/confirmpopup.esm.js","../node_modules/primereact/carousel/carousel.esm.js","../node_modules/primereact/galleria/galleria.esm.js","../node_modules/primereact/menubar/menubar.esm.js","../node_modules/primereact/breadcrumb/breadcrumb.esm.js","../node_modules/primereact/steps/steps.esm.js","../node_modules/primereact/tabmenu/tabmenu.esm.js","../node_modules/primereact/tieredmenu/tieredmenu.esm.js","../node_modules/primereact/contextmenu/contextmenu.esm.js","../node_modules/primereact/panelmenu/panelmenu.esm.js","../node_modules/primereact/avatargroup/avatargroup.esm.js","../node_modules/primereact/scrollpanel/scrollpanel.esm.js","../node_modules/primereact/scrolltop/scrolltop.esm.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/react-app-polyfill/ie11.js","../node_modules/core-js/modules/es.symbol.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/native-weak-map.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/modules/es.symbol.description.js","../node_modules/core-js/modules/es.symbol.async-iterator.js","../node_modules/core-js/modules/es.symbol.has-instance.js","../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../node_modules/core-js/modules/es.symbol.iterator.js","../node_modules/core-js/modules/es.symbol.match.js","../node_modules/core-js/modules/es.symbol.replace.js","../node_modules/core-js/modules/es.symbol.search.js","../node_modules/core-js/modules/es.symbol.species.js","../node_modules/core-js/modules/es.symbol.split.js","../node_modules/core-js/modules/es.symbol.to-primitive.js","../node_modules/core-js/modules/es.symbol.to-string-tag.js","../node_modules/core-js/modules/es.symbol.unscopables.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/modules/es.array.from.js","../node_modules/core-js/internals/array-from.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/modules/es.json.to-string-tag.js","../node_modules/core-js/modules/es.math.to-string-tag.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/internals/create-iterator-constructor.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/modules/esnext.symbol.dispose.js","../node_modules/core-js/modules/esnext.symbol.observable.js","../node_modules/core-js/modules/esnext.symbol.pattern-match.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/prismjs/components/prism-clike.js","../node_modules/prismjs/components/prism-markup.js","../node_modules/prismjs/components/prism-jsx.js","../node_modules/prismjs/components/prism-javascript.js","../node_modules/prismjs/components/prism-css.js","../node_modules/prismjs/components/prism-scss.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js"],"names":["module","exports","require","_arrayLikeToArray$2","arr","len","length","i","arr2","Array","_slicedToArray","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","call","next","done","push","value","err","_iterableToArrayLimit","o","minLen","n","Object","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray$2","TypeError","_nonIterableRest","_typeof","obj","classNames","_len","arguments","args","_key","classes","className","type","_classes","entries","map","_ref","_ref2","key","concat","filter","c","join","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_createForOfIteratorHelper$1","allowArrayLike","it","_arrayLikeToArray$1","_unsupportedIterableToArray$1","F","s","e","f","normalCompletion","didErr","step","_e2","return","DomHandler","this","el","width","offsetWidth","style","getComputedStyle","parseFloat","paddingLeft","paddingRight","doc","document","documentElement","window","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","margin","marginLeft","marginRight","height","offsetHeight","marginTop","marginBottom","clientHeight","win","d","g","getElementsByTagName","innerWidth","clientWidth","innerHeight","rect","getBoundingClientRect","top","body","left","element","children","parentNode","childNodes","num","nodeType","classList","styles","split","add","_styles","remove","replace","RegExp","contains","selector","querySelectorAll","querySelector","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","overlay","appendTo","relativePosition","minWidth","getOuterWidth","absolutePosition","elementDimensions","offsetParent","getHiddenElementDimensions","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","targetOffset","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","transformOrigin","Math","max","targetHeight","_this","my","undefined","at","callback","myArr","atArr","getPositionValue","isOffset","substring","search","position","x","y","offsetX","offsetY","myOffset","getOuterHeight","alignWithAt","count","right","bottom","center","axis","isFunction","myXPosition","parents","getParents","scrollableParents","_step","overflowRegex","overflowCheck","node","styleDeclaration","getPropertyValue","_iterator","parent","scrollSelectors","dataset","_step2","_iterator2","findSingle","visibility","display","elementHeight","elementWidth","dimensions","duration","opacity","last","Date","tick","getTime","requestAnimationFrame","setTimeout","gap","fading","setInterval","clearInterval","navigator","userAgent","maxTouchPoints","msMaxTouchPoints","apply","isElement","appendChild","nativeElement","Error","removeChild","HTMLElement","nodeName","container","item","borderTopValue","borderTop","paddingTopValue","containerRect","offset","scroll","itemHeight","getSelection","empty","removeAllRanges","rangeCount","getRangeAt","getClientRects","error","calculatedScrollbarWidth","scrollDiv","createElement","scrollbarWidth","browser","matched","resolveUserAgent","version","ua","toLowerCase","match","exec","indexOf","_step3","visibleFocusableElements","_iterator3","find","focusableElement","focusableElements","getFocusableElements","prevText","nextText","currentText","ghostDiv","pointerEvents","overflow","padding","border","overflowWrap","whiteSpace","lineHeight","innerHTML","ghostSpan","textContent","text","createTextNode","offsetLeft","offsetTop","abs","ConnectedOverlayScrollHandler","listener","getScrollableParents","addEventListener","removeEventListener","unbindScrollListener","ObjectUtils","obj1","obj2","field","resolveFieldData","deepEquals","a","b","arrA","arrB","dateA","dateB","regexpA","regexpB","keys","hasOwnProperty","data","fields","reduce","result","current","to","splice","list","dataKey","findIndex","equals","params","str","isEmpty","_createForOfIteratorHelper","_arrayLikeToArray","_unsupportedIterableToArray","FilterUtils","filterValue","filterMatchMode","filterLocale","filteredItems","filterText","removeAccents","toLocaleLowerCase","fieldValue","String","trim","stringValue","_defineProperty","ownKeys$2","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread$2","source","forEach","getOwnPropertyDescriptors","defineProperties","mask","options","tests","partialPosition","firstNonMaskPos","defs","androidChrome","lastRequiredNonMaskPos","oldVal","focusText","caretTimeoutId","buffer","defaultBuffer","slotChar","autoClear","unmask","readOnly","onComplete","onChange","onFocus","onBlur","caret","first","range","begin","end","activeElement","setSelectionRange","selectionStart","selectionEnd","createRange","duplicate","moveStart","collapse","moveEnd","select","isCompleted","getPlaceholder","charAt","getValue","getUnmaskedValue","seekNext","pos","shiftL","j","writeBuffer","checkVal","updateModel","event","createEvent","initEvent","dispatchEvent","onKeyDown","k","which","keyCode","iPhone","getUserAgent","seekPrev","clearBuffer","preventDefault","onKeyPress","p","completed","ctrlKey","altKey","metaKey","fromCharCode","t","shiftR","originalEvent","start","allow","lastMatch","clearTimeout","onInput","curVal","handleAndroidInput","handleInputChange","unmaskedBuffer","val","bindEvents","init","maskTokens","_c","unbindEvents","lastId","UniqueComponentId","prefix","ZIndexUtils","zIndexes","getBaseZIndex","PrimeReact","zIndex","getLastZIndex","baseZIndex","reverse","autoZIndex","get","parseInt","set","lastZIndex","newZIndex","generateZIndex","clear","getBase","getCurrent","getCurrentZIndex","handler","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","_possibleConstructorReturn","_getPrototypeOf","getPrototypeOf","_createSuper$3","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct$3","Super","NewTarget","Ripple","_Component","_super","onMouseDown","bind","ink","parentElement","removeClass","getHeight","getWidth","getOffset","pageX","pageY","addClass","currentTarget","getTarget","_this2","ripple","React","ref","onAnimationEnd","Component","KeyFilter","getBrowser","safari","SAFARI_KEYS","KEYS","RETURN","TAB","ESC","opera","shiftKey","charCode","keyfilter","validateOnly","regex","DEFAULT_MASKS","getKey","mozilla","isNavKeyPress","BACKSPACE","DELETE","getCharCode","cc","isSpecialKey","validatePattern","_createSuper$2","_isNativeReflectConstruct$2","pint","int","pnum","money","hex","email","alpha","alphanum","Portal","state","mounted","visible","hasDOM","setState","onMounted","onUnmounted","ReactDOM","createPortal","_createSuper$1","_isNativeReflectConstruct$1","ownKeys$1","_objectSpread$1","tip","tooltipWrapper","createDocumentFragment","tooltipEl","Tooltip","render","updateTooltip","newProps","cloneElement","destroy","unmountComponentAtNode","updateContent","newContent","console","warn","content","update","show","hide","onMouseEnter","onMouseLeave","getTargetOption","mouseTrack","hasTargetOption","disabled","autoHide","option","getAttribute","hasAttribute","showEvent","hideEvent","isMouseTrack","mouseTrackTop","mouseTrackLeft","tooltipTextEl","isContentEmpty","isDisabled","updateTooltipState","updateText","containerEl","containerSize","align","applyDelay","sendCallback","onBeforeShow","getPosition","onShow","bindDocumentResizeListener","bindScrollListener","_this3","clearTimeouts","onBeforeHide","isAutoHide","allowHide","unbindDocumentResizeListener","scrollHandler","onHide","coordinate","_this4","_this$getMouseTrackPo","getMouseTrackPosition","findCollisionPosition","flipfitCollision","currentPosition","_currentPosition$at","atX","atY","myX","updateContainerPosition","_this5","documentResizeListener","isAndroid","_this6","_this$getEvents","getEvents","_this$getEvents2","delayProp","delay","showDelayTimeout","updateDelayTimeout","hideDelayTimeout","unloadTargetEvents","loadTargetEvents","setTargetEventOperations","operation","_this7","setEvent","prevProps","prevState","_this8","_this9","tooltipClassName","isTargetContentEmpty","id","role","renderElement","showDelay","updateDelay","hideDelay","OverlayService","allHandlers","Map","on","handlers","off","emit","evt","EventBus","ownKeys","_objectSpread","_createSuper","_isNativeReflectConstruct","CSSTransition","onEnter","onEntering","onEntered","onExit","onExiting","onExited","isAppearing","immutableProps","nodeRef","in","timeout","unmountOnExit","CSSTransition$1","FullCalendarVDom","createRef","Fragment","createContext","flushToDom","context","internalEventSource","dispatch","sourceId","refetch","sourceIds","isRefetch","publicId","meta","url","format","removeElement","elementClosest","closest","elementMatches","matches","matchesSelector","msMatchesSelector","PIXEL_PROP_RE","applyStyle","propName","applyStyleProp","getEventTargetViaRoot","ev","composedPath","getElRoot","getRootNode","buildDelegationHandler","matchedChild","listenBySelector","eventType","attachedHandler","transitionEventNames","whenTransitionDone","realCallback","eventName","guidNumber","guid","disableCursor","enableCursor","preventSelection","allowSelection","preventContextMenu","allowContextMenu","compareByFieldSpec","obj0","fieldSpec","func","localeCompare","flexibleCompare","order","padStart","substr","compareNumbers","isInt","computeSmallestCellWidth","cellEl","allWidthEl","contentWidthEl","DAY_IDS","addWeeks","m","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","diffWholeDays","timeAsMs","round","startOfDay","getUTCFullYear","getUTCMonth","getUTCDate","weekOfGivenYear","marker","year","dow","doy","firstWeekStart","firstWeekOffset","dayStart","days","floor","fwd","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","UTC","isValidDate","isNaN","createEventInstance","defId","forcedStartTzo","forcedEndTzo","instanceId","mergeProps","propObjs","complexPropsMap","dest","complexObjs","unshift","filterHash","hash","filtered","mapHash","newHash","arrayToHash","hashValuesToArray","isPropsEqual","getUnequalProps","compareObjs","oldProps","equalityFuncs","isObjValsEqual","val0","val1","comparator","expandRecurring","eventStore","framingRange","dateEnv","pluginHooks","instances","recurringDef","def","allDay","defaultAllDayEventDuration","defaultTimedEventDuration","expandRecurringRanges","recurringTypes","eventDef","markers","typeId","expand","typeData","subtract","INTERNAL_UNITS","PARSE_RE","createDuration","input","unit","sign","years","months","milliseconds","parseString","parseObject","month","day","hours","hour","minutes","minute","seconds","second","millisecond","ms","weeks","week","specifiedWeeks","addDurations","d0","d1","multiplyDuration","asRoughDays","dur","asRoughMs","wholeDivideDurations","numerator","denominator","res","localRes","greatestDurationDenominator","buildIsoString","timeZoneOffset","stripZeroTime","toISOString","formatTimeZoneOffset","formatDayString","formatIsoTimeString","doIso","mins","isArraysEqual","a0","a1","equalityFunc","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","memoizeObjArg","currentArg","newArg","EXTENDED_SETTINGS_AND_SEVERITIES","separator","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","formatSettings","standardDateProps","extendedSettings","severity","buildFormattingFunc","formatRange","betterDefaultSeparator","diffSeverity","ca","getMarkerYear","getMarkerMonth","getMarkerDay","computeMarkerDiffSeverity","calendarSystem","biggestUnitForPartial","full0","full1","partialFormattingFunc","biggestUnit","partialOptions","computePartialFormattingOptions","partial0","partial1","insertion","i0","found0","before0","after0","i1","found1","before1","after1","before","after","findCommonInsertion","defaultSeparator","getLargestUnit","standardDatePropCnt","weekText","locale","parts","simpleNumberFormat","direction","formatWeekNumber","computeWeekNumber","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","tzoStr","replaced","injectTzoStr","postProcess","buildNativeFormattingFunc","expandZonedMarker","dateInfo","markerToArray","array","createVerboseFormattingArg","startInfo","localeCodes","cmdStr","cmdFormatter","createFormatter","NativeFormatter","CmdFormatter","FuncFormatter","token","specs","tokens","parseEvents","rawEvents","eventSource","allowOpenRange","eventRefiners","buildEventRefiners","tuple","parseEvent","eventTupleToStore","getRelevantEvents","newStore","filterEventStoreDefs","lookDef","def0","def1","groupId","createEmptyEventStore","mergeEventStores","store0","store1","filterFunc","parseClassNames","raw","EVENT_UI_REFINERS","editable","startEditable","durationEditable","constraint","identity","overlap","color","backgroundColor","borderColor","textColor","EMPTY_EVENT_UI","constraints","allows","createEventUi","refined","normalizeConstraint","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_NON_DATE_REFINERS","title","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","refiners","refineEventDef","extra","defaultAllDay","computeIsDefaultAllDay","recurringRes","parsed","parse","allDayGuess","parseRecurring","parseEventDef","singleRes","startMeta","endMeta","startMarker","hasEnd","endMarker","startInput","createMarkerMeta","isTimeUnspecified","forceEventDuration","forcedTzo","parseSingle","refineProps","ui","eventDefMemberAdders","memberAdder","freeze","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","diffDates","date0","date1","largeUnit","diffWholeYears","diffWholeMonths","m0day","m1day","diffDayAndTime","invertRanges","ranges","constraintRange","dateRange","invertedRanges","sort","compareRanges","range0","range1","intersectRanges","newRange","min","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRange","bg","fg","hasBgRendering","setElSeg","seg","fcSeg","getElSeg","eventDefs","compileEventUi","sortEventSegs","segs","eventOrderSpecs","objs","buildSegCompareObj","fieldSpecs","cmp","compareByFieldSpecs","_seg","eventRange","Number","computeSegDraggable","transformers","isDraggableTransformers","transformer","computeSegStartResizable","eventResizableFromStart","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","displayEventTime","displayEventEnd","eventInstance","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","nowDate","segRange","isPast","isFuture","isToday","buildEventRangeKey","STANDARD_PROPS","parseDateSpan","defaultDuration","span","standardProps","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","buildRangeApiWithTimeZone","omitTime","buildRangeApi","toDate","startStr","formatIso","endStr","fabricateEventRange","dateSpan","triggerDateSelect","selection","pev","emitter","trigger","__assign_1","buildDateSpanApiWithContext","jsEvent","origEvent","view","viewApi","calendarApi","dateSpanTransforms","transform","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","startDelta","endDelta","copy","eventDefMutationAppliers","applier","forceAllDay","clearEnd","datesDelta","getCurrentData","viewTitle","dateProfile","activeRange","currentRange","getOption","EVENT_SOURCE_REFINERS","events","eventDataTransform","success","failure","parseEventSource","rawObj","buildEventSourceRefiners","metaRes","eventSourceDefs","parseMeta","sourceDefId","buildEventSourceMeta","_raw","isFetching","latestFetchId","fetchRange","eventSourceRefiners","getNow","nowInput","createNowMarker","createMarker","currentDataManager","action","batchRendering","updateSize","setOption","optionName","rawOptionValue","currentCalendarOptionsInput","getAvailableLocaleCodes","availableRawLocales","handlerName","currentCalendarOptionsRefiners","changeView","viewType","dateOrRange","unselect","dateMarker","zoomTo","spec","viewSpecs","getUnitViewSpec","toolbarConfig","viewTypes","viewsWithButtons","singleUnit","prev","prevYear","addYears","currentDate","nextYear","today","calendarOptions","now","gotoDate","zonedDateInput","incrementDate","deltaInput","delta","formatDate","formatter","settings","dateOrObj","endDate","selectionInput","dateSelection","triggerDateUnselect","addEvent","eventInput","sourceInput","_def","_instance","triggerEventAdd","EventSourceApi","eventSources","sourceApi","getEventSourceById","newEventApi","eventApi","relatedEvents","revert","eventApiToStore","getEventById","currentData","buildEventApis","removeAllEvents","getEventSources","sourceHash","sourceApis","internalId","addEventSource","sources","removeAllEventSources","refetchEvents","scrollToTime","timeInput","time","_context","setProp","mutate","setExtendedProp","setStart","granularity","maintainDuration","setEnd","endInput","setDates","instanceRange","moveDates","setAllDay","allDayMaintainDuration","formatInput","relevantEvents","oldEvent","EventApi","asStore","toPlainObject","collapseColor","collapseExtendedProps","toJSON","excludeInstance","eventApis","excludeInstanceId","calendarSystemClassMap","theClass","arrayToMarker","GregorianCalendarSystem","ISO_RE","isNamedTimeZone","namedTimeZoneImpl","canComputeOffset","createCalendarSystem","weekDow","weekDoy","weekNumberCalculation","firstDay","weekNumberFunc","timestampToMarker","getYear","addMonths","greatestWholeUnit","diffWholeWeeks","diffHours","diffMinutes","diffSeconds","countDurationsBetween","diff","asRoughMonths","startOf","startOfYear","startOfMonth","startOfWeek","startOfHour","startOfMinute","startOfSecond","w","nextW","weekOfYear","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","timestampToArray","getTimezoneOffset","offsetForArray","globalLocales","RAW_EN_LOCALE","code","buttonText","allDayText","moreLinkText","noEventsText","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","en","rawLocale","buildLocale","inputSingular","available","codeArg","simpleId","queryRawLocale","parseLocale","queryLocale","merged","NumberFormat","canVGrowWithinCell","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","rawDefs","rawDef","refineInputs","pointInsideRect","point","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","getCanVGrowWithinCell","possible","computeCanVGrowWithinCell","EMPTY_EVENT_STORE","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventDrag","eventResizes","eventResize","info","buildEventUiForKey","keyInfo","buildEventUi","businessHours","eventSelection","dateSpans","getKeysForDateSpan","getKeysForEventDef","splitStores","splitHashes","interaction","splitStates","affectedEvents","mutatedKeysByDefId","mutatedEvents","populate","isEvent","allUi","eventUiForKey","baseParts","stuff","getDateMeta","isOther","getDayClassNames","theme","getClass","buildNavLinkData","JSON","stringify","_scrollbarWidths","_isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","outerEl","firstChild","computeIsRtlScrollbarOnLeft","getScrollbarWidths","computeScrollbarWidthsForEl","computeScrollbarWidths","computeInnerRect","goWithinPadding","doFromWindowViewport","outerRect","computeRect","edges","getPadding","computedStyle","borderLeft","borderRight","borderBottom","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","scrollbarLeft","scrollbarRight","computeEdges","getClippingParents","overflowY","overflowX","thisContext","setThisContext","setOptions","addToHash","removeFromHash","attachedHandlers","optionHandler","hasHandlers","originEl","els","isHorizontal","isVertical","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","leftIndex","topIndex","getMaxScrollTop","getScrollHeight","getClientHeight","getMaxScrollLeft","getScrollWidth","getClientWidth","canScrollVertically","canScrollHorizontally","canScrollUp","getScrollTop","canScrollDown","canScrollLeft","getScrollLeft","canScrollRight","setScrollTop","setScrollLeft","scrollWidth","scrollHeight","ScrollController","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getIconClass","isRtl","rtlIconClasses","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","execFunc","scrollTime","scrollTimeReset","handleScrollRequest","request","queuedRequest","drain","fireInitialScroll","detach","isDatesNew","ViewContextType","buildViewContext","viewSpec","viewOptions","dateProfileGenerator","registerInteractiveComponent","unregisterInteractiveComponent","addResizeHandler","removeResizeHandler","createScrollResponder","shouldComponentUpdate","nextProps","nextState","debug","log","propEquality","stateEquality","addPropsEquality","addStateEquality","contextType","setRef","uid","prepareHits","queryHit","positionLeft","positionTop","elWidth","elHeight","isValidSegDownEl","isValidDateDownEl","createPlugin","deps","reducers","isLoadingFuncs","contextInit","eventDragMutationMassagers","dateSelectionTransformers","datePointTransforms","views","viewPropsTransformers","isPropsValid","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","namedTimeZonedImpl","initialView","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","contentTypeHandlers","listenerRefiners","optionRefiners","propSetHandlers","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","globalDefs","pluginDefs","isAdded","hooks","addDefs","hooks1","hooks0","buildPluginHooks","ensureViewDef","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","component","defaults","rawOptions","overrides","buildViewDef","root","tableCellShaded","buttonGroup","button","buttonActive","close","rootElRef","handleRootEl","elRef","hookProps","didMount","willUnmount","ContentHook","defaultContent","backupElRef","innerElRef","innerContent","normalizeClassNames","CustomContentRenderContext","Consumer","renderId","renderInnerContent","componentDidMount","updateCustomContent","componentDidUpdate","componentWillUnmount","customContentInfo","getInnerContent","getContentMeta","contentKey","contentVal","buildLifecycleFuncs","normalizeContent","searchKey","rootEl","buildClassNameNormalizer","currentGenerator","currentHookProps","currentClassNames","generator","customClassNames","viewClassNames","viewDidMount","viewWillUnmount","parseViewConfigs","inputs","parseViewConfig","viewProps","viewElRef","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","compileViewDefs","durationInput","durationUnit","singleUnitOverrides","json","durationInputMap","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","buttonTextKey","optionDefaults","buttonTextOverride","buttonTextDefault","BASE_OPTION_DEFAULTS","buildViewSpec","initHiddenDays","buildPrev","currentDateProfile","forceToValid","prevDate","currentRangeUnit","dateIncrement","build","buildNext","nextDate","validRange","currentInfo","isRangeAllDay","renderRange","isValid","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","showNonCurrentDates","adjustActiveRange","slotMinTime","slotMaxTime","buildDateIncrement","validRangeInput","simpleInput","refineRange","dayCount","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","usesMinMaxTime","dateAlignment","computeRes","isHiddenDay","skipHiddenDays","runningCount","visibleRangeInput","fallback","customAlignment","rangeInput","parseRange","hiddenDays","isHiddenDayHash","weekends","inc","isExclusive","initEventSources","addSources","rawSources","initialEvents","parseInitialSources","reduceEventSources","eventSourceHash","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","fetchId","receiveResponse","computeEventSourcesLoading","doesSourceNeedRange","lazyFetching","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","fetch","eventSourceSuccess","xhr","message","eventSourceFailure","ignoreRange","reduceEventStore","subset","calEachTransform","sourceEachTransform","transformEachRawEvent","transformRawEvents","excludeEventsBySourceId","receiveRawEvents","expandRange","master","sub","filteredDefs","filteredInstances","excludeSubEventStore","refinedEvents","rawEvent","refinedEvent","reduceDateSelection","currentSelection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","headerToolbar","parseToolbar","footerToolbar","sectionStrHash","sectionStr","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","buttonClick","click","buttonIcon","parseSection","eventSourceDef","arg","isResolved","wrappedSuccess","wrappedFailure","then","unpromisify","requestJson","method","successCallback","failureCallback","toUpperCase","encodeParams","injectQueryStringParams","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","onerror","send","encodeURIComponent","handleEventSources","unfoundSources","newInputs","inputFound","unfoundSource","newInput","globalPlugins","extraParams","startParam","endParam","timeZoneParam","requestParams","customRequestParams","buildRequestParams","errorMessage","startRecur","endRecur","recurringData","clippedFramingRange","dowHash","dayMarker","instanceStarts","instanceStart","expandRanges","html","injectHtml","domNodes","injectDomNodes","oldNodes","newNodes","newNode","drainedOption","isRunning","isDirty","pauseDepths","timeoutId","isPaused","tryDrain","pause","scope","resume","force","drained","runTaskOption","queue","delayedRunner","DelayedRunner","task","completedTasks","shift","runTask","buildTitle","titleFormat","buildTitleFormat","titleRangeSeparator","computeOptionsData","_computeOptionsData","computeCurrentViewData","_computeCurrentViewData","buildDateEnv","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","Emitter","actionRunner","TaskRunner","_handleAction","updateData","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","optionsData","currentViewType","currentViewData","initialDateInput","initialDate","getInitialDate","calendarContext","initialState","renderableEventStore","selectionConfig","contextAndState","reducer","computeIsLoading","resetOptions","append","reduceDynamicOptionOverrides","reduceViewType","reduceCurrentDate","dp","reduceDateProfile","progressiveEventRendering","eventUiSingleBase","eventUiBySource","newState","wasLoading","isLoading","onAction","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","reduceEventSourcesNewTimeZone","oldDateEnv","newDateEnv","rezoneEventStoreDates","onData","processRawCalendarOptions","refinedOptions","availableLocaleData","warnUnknownOptions","defaultRangeSeparator","mergeRawOptions","locales","plugins","BASE_OPTION_REFINERS","CALENDAR_LISTENER_REFINERS","CALENDAR_OPTION_REFINERS","currentRaw","currentRefined","anyChanges","COMPLEX_OPTION_COMPARATORS","processRawViewOptions","dateProfileGeneratorClass","visibleRange","monthMode","fixedWeekCount","VIEW_OPTION_REFINERS","explicitLocale","DateEnv","themeSystem","DateProfileGenerator","ViewApi","eventDisplay","eventStartEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","selectConstraint","selectOverlap","selectAllow","isLoadingFunc","viewName","handleData","dataManager","newOptionOverrides","strictOrder","allowReslicing","maxCoord","maxStackCnt","levelCoords","entriesByLevel","stackCnts","addSegs","hiddenEntries","insertEntry","entry","findInsertion","isInsertionValid","insertEntryAt","handleInvalidInsertion","levelCoord","thickness","stackCnt","touchingEntry","splitEntry","barrier","partCnt","splitHiddenEntries","entrySpan","barrierSpan","index","intersectSpans","lateral","insertAt","level","buildEntryKey","newEntry","levelCnt","candidateCoord","touchingLevel","touchingLateral","trackingLevel","trackingCoord","trackingEntries","trackingEntry","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","toRects","rects","groupIntersectingEntries","merges","filteredMerges","hungryMerge","merge","searchVal","getItemVal","startIndex","endIndex","middleIndex","middleVal","isHitComboAllowed","parseInteractionSettings","useEventCenter","interactionSettingsToStore","interactionSettingsStore","setMirrorIsVisible","bool","setMirrorNeedsRevert","setAutoScrollEnabled","config","DRAG_META_REFINERS","parseDragMeta","leftoverProps","widgetGroups","widgetGroup","renderWidgetGroup","isOnlyButtons","widget","ariaAttrs","buttonClasses","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","onClick","groupClassName","startContent","endContent","model","extraClassName","forceLtr","centerContent","renderSection","availableWidth","handleEl","updateAvailableWidth","handleResize","aspectRatio","liquid","handleSegClick","segEl","hasUrlContainer","href","defaultPrevented","location","Interaction","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","currentMatchedChild","mouseOverEv","mouseLeaveEv","listenToHoverBySelector","publicEvName","buildViewPropTransformers","buildToolbarProps","handleNavLinkClick","_handleNavLinkClick","headerRef","footerRef","interactionsStore","settingsInput","interactions","TheInteractionClass","resizeRunner","handleWindowResize","windowResizeDelay","viewAspectRatio","toolbarProps","viewVGrow","viewHeight","isHeightAuto","forPrint","contentHeight","viewContext","Provider","renderView","buildAppendContent","CalendarInteractionClass","anchorEl","navLinkOptions","customAction","navLinkDayClick","navLinkWeekClick","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","handleBeforePrint","handleAfterPrint","CLASS_NAME","renderInner","dayMeta","dayHeaderFormat","navLinkAttrs","navLinks","colCnt","tabIndex","extraHookProps","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","colSpan","extraDataAttrs","isSticky","dateMeta","extraClassNames","initialNowDate","initialNowQueriedMs","computeTiming","currentState","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","createDayHeaderFormatter","dates","datesRepDistinctDays","renderIntro","explicitFormat","dateCnt","computeFallbackHeaderFormat","indices","dayIndex","cnt","sliceRange","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","nextIndex","firstCol","lastCol","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","forceDayIfListItem","sliceProps","eventSegs","extraArgs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","eventRanges","sliceEventRange","isComponentAllDay","isInteractionValid","isNewPropsValid","isDateSelectionValid","calendarState","dateSpanMeta","filterConfig","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","otherEventStore","removals","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","eventOverlapFunc","otherInstanceId","otherInstance","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","isInteractionPropsValid","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","isDateSelectionPropsValid","businessHoursUnexpanded","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","VISIBLE_HIDDEN_RE","liquidIsAbsolute","isAbsolute","overcomeLeft","overcomeRight","overcomeBottom","maxHeight","needsXScrolling","realClientWidth","getYScrollbarWidth","needsYScrolling","realClientHeight","getXScrollbarWidth","masterCallback","currentMap","depths","callbackMap","handleValue","removed","added","refCallback","collect","collectFromHash","getAll","computeShrinkWidth","chunkEls","largestWidth","containers","allMatches","findElements","shrinkCell","getSectionHasLiquidHeight","sectionConfig","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","colNodes","colProps","sanitizeShrinkWidth","getSectionClassNames","wholeTableVGrow","renderScrollShim","tableMinWidth","getStickyHeaderDates","stickyHeaderDates","getStickyFooterScrollbar","stickyFooterScrollbar","processCols","scrollerRefs","RefMap","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","computeScrollerDims","sectionConfigs","sections","microColGroupNode","getScrollGridClassNames","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","outerContent","renderChunkTd","chunk","chunkConfig","getAllowYScrolling","isLiquid","sectionKey","expandRows","tableClassName","syncRowHeights","tableColGroupNode","rowContent","renderChunkContent","rowSyncHeights","reportRowHeightChange","scrollerEl","section","getSectionByKey","scrollerElRef","hasShrinkWidth","scroller","harnessEl","timeText","isDraggable","disableDragging","isStartResizable","disableResizing","isEndResizable","isMirror","isDragging","isResizing","isDateSelecting","isSelected","standardClassNames","getEventClassNames","eventClassNames","eventContent","eventDidMount","eventWillUnmount","eventTimeFormat","defaultTimeFormat","getSegAnchorAttrs","innerProps","isAxis","nowIndicatorClassNames","nowIndicatorContent","nowIndicatorDidMount","nowIndicatorWillUnmount","DAY_NUM_FORMAT","refineDayCellHookProps","showDayNumber","extraProps","dayCellContent","dayNumberText","refineHookProps","dayCellClassNames","dataAttrs","dayCellDidMount","dayCellWillUnmount","renderFill","fillType","weekNumberFormat","defaultFormat","weekNumberClassNames","weekNumberContent","weekNumberDidMount","weekNumberWillUnmount","handleDocumentMousedown","handleCloseClick","onClose","extraAttrs","parentEl","alignmentEl","alignGridTop","alignmentRect","clippingParents","intersection","computeClippedClientRect","popoverDims","popoverTop","popoverLeft","startDate","dayPopoverFormat","dayClassNames","extraDateSpan","dayEl","layer","linkElRef","isPopoverOpen","handleClick","moreLinkClick","computeRange","buildPublicSeg","allDayDate","allSegs","hiddenSegs","handlePopoverClose","moreCnt","shortText","moreLinkClassNames","moreLinkContent","renderMoreLinkInner","moreLinkDidMount","moreLinkWillUnmount","alignmentElRef","popoverContent","updateParentEl","computeEarliestSegStart","pickLatestEnd","pickEarliestStart","seg0","seg1","extendStatics","__extends","__","__assign","assign","__spreadArray","pack","ar","l","_extends","ButtonComponent","elementRef","forwardRef","loading","updateForwardRef","tooltip","renderTooltip","tooltipOptions","icon","loadingIcon","_classNames","iconType","iconPos","label","defaultContentOptions","getJSXElement","dangerouslySetInnerHTML","__html","badge","badgeClassName","renderIcon","renderLabel","renderBadge","buttonProps","findDiffKeys","defaultProps","Button","unsupportedIterableToArray","InputTextComponent","defaultValue","validate","isFilled","inputProps","InputText","Column","columnKey","sortField","filterField","header","loadingBody","footer","sortable","sortableDisabled","sortFunction","filterPlaceholder","filterType","filterMaxLength","filterElement","filterFunction","filterHeaderStyle","filterHeaderClassName","headerStyle","headerClassName","bodyStyle","bodyClassName","footerStyle","footerClassName","expander","frozen","selectionMode","rowSpan","editor","editorValidator","editorValidatorEvent","onBeforeEditorHide","onBeforeEditorShow","onEditorInit","onEditorSubmit","onEditorCancel","excludeGlobalFilter","rowReorder","rowReorderIcon","rowEditor","exportable","reorderable","modal","menu","toast","accept","reject","choose","upload","cancel","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","weekHeader","firstDayOfWeek","dateFormat","weak","medium","strong","passwordPrompt","localeOption","localeOptions","ALIGN_CENTER","ALIGN_JUSTIFY","ALIGN_LEFT","ALIGN_RIGHT","AMAZON","ANDROID","ANGLE_DOUBLE_DOWN","ANGLE_DOUBLE_LEFT","ANGLE_DOUBLE_RIGHT","ANGLE_DOUBLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_UP","APPLE","ARROW_CIRCLE_DOWN","ARROW_CIRCLE_LEFT","ARROW_CIRCLE_RIGHT","ARROW_CIRCLE_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","BACKWARD","BAN","BARS","BELL","BOOK","BOOKMARK","BRIEFCASE","CALENDAR_MINUS","CALENDAR_PLUS","CALENDAR_TIMES","CALENDAR","CAMERA","CARET_DOWN","CARET_LEFT","CARET_RIGHT","CARET_UP","CHART_BAR","CHART_LINE","CHECK_CIRCLE","CHECK_SQUARE","CHECK","CHEVRON_CIRCLE_DOWN","CHEVRON_CIRCLE_LEFT","CHEVRON_CIRCLE_RIGHT","CHEVRON_CIRCLE_UP","CHEVRON_DOWN","CHEVRON_LEFT","CHEVRON_RIGHT","CHEVRON_UP","CLOCK","CLONE","CLOUD_DOWNLOAD","CLOUD_UPLOAD","CLOUD","COG","COMMENT","COMMENTS","COMPASS","COPY","CREDIT_CARD","DESKTOP","DISCORD","DIRECTIONS_ALT","DIRECTIONS","DOLLAR","DOWNLOAD","EJECT","ELLIPSIS_H","ELLIPSIS_V","ENVELOPE","EXCLAMATION_CIRCLE","EXCLAMATION_TRIANGLE","EXTERNAL_LINK","EYE_SLASH","EYE","FACEBOOK","FAST_BACKWARD","FAST_FORWARD","FILE_EXCEL","FILE_O","FILE_PDF","FILE","FILTER","FILTER_SLASH","FLAG","FOLDER_OPEN","FOLDER","FORWARD","GITHUB","GLOBE","GOOGLE","HEART","HOME","ID_CARD","IMAGE","IMAGES","INBOX","INFO_CIRCLE","INFO","KEY","LINK","LIST","LOCK_OPEN","LOCK","MAP","MAP_MARKER","MICROSOFT","MINUS_CIRCLE","MINUS","MOBILE","MONEY_BILL","MOON","PALETTE","PAPERCLIP","PAUSE","PAYPAL","PENCIL","PERCENTAGE","PHONE","PLAY","PLUS_CIRCLE","PLUS","POWER_OFF","PRINT","QUESTION_CIRCLE","QUESTION","RADIO_OFF","RADIO_ON","REFRESH","REPLAY","REPLY","SAVE","SEARCH_MINUS","SEARCH_PLUS","SEARCH","SEND","SHARE_ALT","SHIELD","SHOPPING_CART","SIGN_IN","SIGN_OUT","SITEMAP","SLACK","SLIDERS_H","SLIDERS_V","SORT_ALPHA_ALT_DOWN","SORT_ALPHA_ALT_UP","SORT_ALPHA_DOWN","SORT_ALPHA_UP","SORT_ALT","SORT_AMOUNT_DOWN_ALT","SORT_AMOUNT_DOWN","SORT_AMOUNT_UP_ALT","SORT_AMOUNT_UP","SORT_DOWN","SORT_NUMERIC_ALT_DOWN","SORT_NUMERIC_ALT_UP","SORT_NUMERIC_DOWN","SORT_NUMERIC_UP","SORT_UP","SORT","SPINNER","STAR_O","STAR","STEP_BACKWARD_ALT","STEP_BACKWARD","STEP_FORWARD_ALT","STEP_FORWARD","SUN","TABLE","TABLET","TAG","TAGS","TH_LARGE","THUMBS_DOWN","THUMBS_UP","TICKET","TIMES_CIRCLE","TIMES","TRASH","TWITTER","UNDO","UNLOCK","UPLOAD","USER_EDIT","USER_MINUS","USER_PLUS","USER","USERS","VIDEO","VIMEO","VOLUME_DOWN","VOLUME_OFF","VOLUME_UP","YOUTUBE","WALLET","WIFI","WINDOW_MAXIMIZE","WINDOW_MINIMIZE","SUCCESS","WARN","ERROR","hasOwn","argType","inner","default","Checkbox","focused","inputRef","isChecked","falseValue","trueValue","checked","stopPropagation","focus","updateInputRef","containerClass","boxClass","iconClass","onContextMenu","ariaLabelledBy","inputId","defaultChecked","required","box","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_createSuper$c","_isNativeReflectConstruct$c","ScrollableView","onHeaderScroll","onBodyScroll","setScrollHeight","scrollBody","calculateScrollbarWidth","scrollBarWidth","scrollHeaderBox","scrollFooterBox","snapshot","virtualScroll","virtualScroller","totalRecords","virtualRowHeight","virtualScrollCallback","frozenView","previousElementSibling","frozenScrollBody","datatableContainer","findDataTableContainer","containerHeight","scrollBodyHeight","hasClass","scrollHeader","tableHeight","scrollTable","pageHeight","pageCount","scrollBodyTop","loadingTable","page","onVirtualScroll","columns","colGroup","frozenWidth","tableBodyClassName","tableHeaderClassName","tableFooterClassName","tableBodyStyle","tableStyle","renderColGroup","renderLoadingTable","scrollableBodyStyle","onScroll","frozenBody","scrollFooter","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_createSuper$b","_isNativeReflectConstruct$b","RowRadioButton","rowData","selected","tableId","_createSuper$a","_isNativeReflectConstruct$a","RowCheckbox","iconClassName","ownKeys$3","_objectSpread$3","_createSuper$9","_isNativeReflectConstruct$9","BodyCell","editing","onExpanderClick","onMouseUp","onEditorFocus","onRowToggle","editMode","switchCellToViewMode","allowCellSelection","cell","prevCell","findPrevSelectableCell","changeTabIndex","nextCell","findNextSelectableCell","prevRow","findPrevSelectableRow","upCell","nextRow","findNextSelectableRow","downCell","selectOnEdit","selfClick","columnProps","bindDocumentEditListener","overlayEventListener","isOutsideClicked","onEditingCellChange","rowIndex","cellIndex","documentEditListener","isSameNode","unbindDocumentEditListener","submit","valid","closeCell","nextElementSibling","currentCell","cellSelected","findIndexInSelection","selectedCell","tabindexTimeout","focusable","setAttribute","keyHelper","editorKeyHelper","cellClassName","cellData","getTabIndex","expanded","ariaControls","expanderProps","showSelection","showSelectionElement","onRadioClick","onCheckboxClick","showReorder","showRowReorderElement","reorderIcon","rowEditorProps","onSaveClick","onRowEditSave","saveClassName","saveIconClassName","onCancelClick","onRowEditCancel","cancelClassName","cancelIconClassName","onInitClick","onRowEditInit","initClassName","initIconClassName","_createSuper$8","_isNativeReflectConstruct$8","BodyRow","isRowEditingControlled","onDoubleClick","onTouchEnd","onRightClick","onDragEnd","onDragOver","onDragLeave","onDrop","updateEditingState","draggable","rowElement","isFocusable","currentRow","onRowEditingToggle","rowEditorValidator","selectionModeInColumn","Children","toArray","conditionalClassNames","contextMenuSelected","allowRowSelection","rowClassName","rowClassNameCondition","hasRowSpanGrouping","rowGroupMode","column","groupRowSpan","getEditing","onCellMouseDown","onCellMouseUp","onCellClick","onDragStart","_createSuper$7","_isNativeReflectConstruct$7","RowTogglerButton","_excluded","_createSuper$6","_isNativeReflectConstruct$6","TableBody","onRowClick","onRowRightClick","onRowTouchEnd","onDragSelectionMouseMove","onDragSelectionMouseUp","onRowDragEnd","onRowDragLeave","onRowDrop","onRowMouseDown","onRowMouseUp","allowRangeSelection","onRangeSelection","toggleable","isRadioSelectionModeInColumn","isCheckboxSelectionModeInColumn","allowMetaKeySelection","anchorRowIndex","rangeRowIndex","anchorRowFirst","isSingleSelection","onSingleSelection","onMultipleSelection","focusOnElement","rowTouched","anchorCellIndex","onUnselect","onSelect","onSelectionChange","selectionIndex","isMultipleSelection","clearSelection","selectionInRange","selectRange","Set","rangeStart","rangeEnd","isLazyAndPaginator","lazy","paginator","selectRangeOnCell","selectRangeOnRow","rowRangeStart","rowRangeEnd","rangeRowData","cellRangeStart","cellRangeEnd","onCellSelect","onRowSelect","onCellUnselect","onRowUnselect","dragSelection","dragSelectionHelper","initialDragPosition","clientX","clientY","bindDragSelectionEvents","_this$initialDragPosi","dx","dy","allowRowDrag","enableDragSelection","isSameRow","allowCellDrag","isSameCell","onContextMenuSelectionChange","allowDrag","targetNode","metaKeySelection","isRadioOnlySelection","isCheckboxOnlySelection","cellSelection","isRadioSelectionMode","isCheckboxSelectionMode","contextMenuSelection","isFocused","checkbox","radio","data1","data2","compareSelectionBy","expandedRows","dataKeyValue","onRowCollapse","onRowExpand","expandedRowIndex","findRowIndex","r","editingRows","editingRowIndex","onRowEditChange","rowDragging","draggedRowIndex","dataTransfer","setData","droppedRowIndex","rowY","rowMidY","prevRowElement","dropIndex","reorderArray","onRowReorder","dragIndex","unbindDragSelectionEvents","expandableRowGroups","isRowExpanded","rowGroupHeaderTemplate","rowGroupFooterTemplate","rpp","selectionEnabled","isSelectionEnabled","hasSubheaderGrouping","rowSpanGrouping","rowGroupHeaderExpanded","_loop","isRowEditing","isContextMenuSelected","currentRowFieldData","groupField","previousRowFieldData","renderRowGroupHeader","rowSpanIndex","_currentRowFieldData","nextRowFieldData","nextRowData","isRowGroupExpanded","bodyRow","onRowDoubleClick","onRowDragStart","onRowDragOver","expandedRowContent","rowExpansionTemplate","expandedRow","_currentRowFieldData2","_nextRowFieldData","renderRowGroupFooter","emptyMessage","_createSuper$5","_isNativeReflectConstruct$5","FooterCell","_createSuper$4","_isNativeReflectConstruct$4","TableFooter","columnGroup","createFooterCells","HeaderCell","badgeVisible","onFilterChange","onResizerMouseDown","onResizerClick","onResizerDoubleClick","_this$props$columnPro","isSortableDisabled","onSort","sortableDisabledFields","onFilter","filterTimeout","matchMode","filterDelay","resizableColumns","onColumnResizeStart","columnEl","onColumnResizerClick","onColumnResizerDoubleClick","reorderableColumns","multiSortMeta","columnSortField","prevColumnProps","onSortableChange","filters","sorted","sortOrder","sortIcon","allSortableDisabled","sortIconClassName","sortMetaDataIndex","headerCheckbox","renderOptions","renderFilter","placeholder","maxLength","renderHeaderCheckbox","onHeaderCheckboxClick","headerCheckboxSelected","filterOnly","getMultiSortMetaDataIndex","multiSortMetaData","singleSorted","isSingleSorted","multipleSorted","resizer","sortIconElement","renderSortIcon","ariaSortData","getAriaSort","sortBadge","renderSortBadge","TableHeader","isAllSortableDisabled","sortMode","onColumnDragStart","onColumnDragOver","onColumnDragLeave","onColumnDrop","isSingleSort","isMultipleSort","isColumnSorted","updateSortableDisabled","createHeaderCells","hasColumnFilter","TableLoadingBody","renderRow","renderRows","DataTable","d_rows","editingCells","onPage","isStateful","restoreState","onPageChange","stateStorage","localStorage","sessionStorage","stateKey","isCustomStateStorage","getFirst","getRows","getSortField","getSortOrder","getMultiSortMeta","hasFilter","getFilters","saveColumnWidths","columnOrder","customSaveState","storage","getStorage","setItem","onStateSave","removeItem","restoredState","customRestoreState","stateString","getItem","_restoreState","getOnPageParams","getTotalRecords","processData","columnWidthsState","columnWidths","tableWidthState","tableWidth","onStateRestore","widths","columnResizeMode","scrollable","table","setScrollableItemsWidthOnExpandResize","headerCols","bodyCols","onValueChange","paginatorClassName","Paginator","pageLinkSize","template","paginatorTemplate","rowsPerPageOptions","currentPageReportTemplate","leftContent","paginatorLeft","rightContent","paginatorRight","alwaysShow","alwaysShowPaginator","dropdownAppendTo","paginatorDropdownAppendTo","eventMeta","defaultSortOrder","columnSortable","columnSortFunction","columnField","sortMeta","getCalculatedSortOrder","newMetaData","some","addSortMeta","removableSort","removeSortMeta","currentOrder","value1","value2","numeric","multisortField","mode","currentFilters","newFilters","isFilterBlank","globalFilter","footerColumnGroup","hasChildrenFooter","hasFooter","containerLeft","resizeColumn","resizeColumnProps","columnResizing","lastResizerHelperX","bindColumnResizeEvents","resizerHelper","columnWidth","newColumnWidth","nextColumn","nextColumnWidth","scrollableView","findParentScrollableView","scrollableBodyTable","scrollableHeaderTable","scrollableFooterTable","resizeColumnIndex","resizeColGroup","onColumnResizeEnd","saveState","unbindColumnResizeEvents","scrollableBody","scrollableHeader","scrollableFooter","scrollableBodyTableWidth","scrollableHeaderTableWidth","isContainerInViewport","setWidth","nextCol","documentColumnResizeListener","onColumnResize","documentColumnResizeEndListener","iconWidth","getHiddenElementOuterWidth","reorderIndicatorUp","iconHeight","getHiddenElementOuterHeight","draggedColumnEl","findParentHeader","draggedColumn","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","dropPosition","allowDrop","getColumns","isSameColumn","col1","col2","dragColIndex","child","dropColIndex","_column","onColReorder","virtualScrollTimer","virtualScrollDelay","csv","selectionOnly","frozenValue","_column$props","csvSeparator","record","_column$props2","exportFunction","blob","Blob","msSaveOrOpenBlob","exportFilename","link","download","URL","createObjectURL","encodeURI","onAllRowsUnselect","onAllRowsSelect","localFilters","filteredValue","localMatch","globalMatch","filterMeta","dataFieldValue","filterConstraint","localState","hasEditingCell","sortSingle","sortMultiple","filterLocal","visibleData","frozenColumns","scrollableColumns","_step4","_iterator4","isAllSelected","headerColumnGroup","createTableHeader","createTableBody","createTableLoadingBody","createTableFooter","_step5","orderedColumns","_iterator5","findColumnByKey","resetColumnOrder","_step6","_iterator6","restoreColumnWidths","loader","getSelectionModeInColumn","stripedRows","showGridlines","autoLayout","rowHover","paginatorTop","paginatorPosition","createPaginator","paginatorBottom","headerFacet","footerFacet","resizeHelper","tableContent","resizeIndicatorUp","resizeIndicatorDown","renderLoader","getFrozenColumns","getScrollableColumns","createScrollableView","frozenHeaderColumnGroup","frozenFooterColumnGroup","tableHeader","tableBody","tableFooter","DropdownItem","DropdownPanelComponent","onFilterInputChange","virtualScrollerRef","selectedIndex","getSelectedOptionIndex","scrollToIndex","filterInputAutoFocus","filterInput","visibleOptions","optionGroup","getOptionGroupChildren","optionLabel","getOptionLabel","optionKey","getOptionRenderKey","isOptionDisabled","itemTemplate","onOptionClick","optionGroupLabel","groupContent","optionGroupTemplate","getOptionGroupLabel","groupChildrenContent","renderGroupChildren","getOptionGroupRenderKey","renderItem","renderEmptyMessage","emptyFilterMessage","showFilterClear","onFilterClearIconClick","clearIcon","renderFilterClearIcon","containerClassName","autoComplete","onFilterInputKeyDown","virtualScrollerOptions","virtualScrollerProps","items","onLazyLoad","contentTemplate","isEmptyFilter","VirtualScroller","renderItems","panelClassName","renderContent","enter","exit","transitionOptions","panelStyle","DropdownPanel","Dropdown","overlayVisible","onInputFocus","onInputBlur","onInputKeyDown","onEditableInputChange","onEditableInputFocus","onPanelClick","onOverlayEnter","onOverlayEntered","onOverlayExit","onOverlayExited","resetFilter","overlayRef","tagName","focusInput","hideOverlay","showOverlay","persist","showOnFocus","onDownKey","onUpKey","getVisibleOptions","prevOption","findPrevOption","selectItem","nextOption","findNextOption","groupIndex","group","optionIndex","findNextOptionInList","findPrevOptionInList","searchTimeout","char","previousSearchChar","currentSearchChar","searchValue","searchIndex","newOption","searchOptionInGroup","searchOption","selectedOptionUpdated","searchOptionInRange","opt","matchesSearchValue","groupOptions","_groupOptions","_j","startsWith","updateEditableLabel","getSelectedOption","optionValue","getOptionValue","findOptionIndexInList","selectedOptionIndex","equalityKey","alignOverlay","bindDocumentClickListener","bindResizeListener","unbindDocumentClickListener","unbindResizeListener","resetFilterOnHide","highlightItem","scrollIntoView","block","inline","documentClickListener","_this10","resizeListener","isTouchDevice","isClearClicked","optionDisabled","optionGroupChildren","checkValidity","searchFields","filterBy","filteredGroups","optgroup","filteredSubOptions","selectedOption","autoFocus","updateInputField","hideTimeout","scrollInView","placeHolderOption","_this11","ariaLabel","_this12","valueTemplate","showClear","_this13","dropdownIcon","_this14","hiddenSelect","renderHiddenSelect","keyboardHelper","renderKeyboardHelper","labelElement","renderDropdownIcon","renderClearIcon","_objectSpread2","createNamedContext","historyContext","Router","computeRootMatch","path","isExact","pathname","_pendingLocation","RouterContext","history","staticContext","HistoryContext","cache","cacheCount","matchPath","exact","strict","sensitive","cacheKey","pathCache","regexp","pathToRegexp","compilePath","values","memo","Route","isEmptyChildren","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","withRouter","displayName","C","wrappedComponentRef","remainingProps","hoistStatics","useContext","useHistory","useLocation","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","RadioButton","_inheritsLoose","argument","Chip","onRemove","image","src","alt","imageAlt","onError","onImageError","removable","removableIconClassName","removeIcon","global","shared","has","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wrappedWellKnownSymbolModule","NAME","HashRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","createLocation","forwardRefShim","LinkAnchor","innerRef","navigate","rest","ex","isModifiedEvent","forwardedRef","Link","isDuplicateNavigation","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","isActive","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","InputTextareaComponent","onKeyUp","autoResize","resize","initial","inputEl","isVisible","cachedScrollHeight","textareaProps","InputTextarea","asyncGeneratorStep","gen","resolve","_next","_throw","Promise","_asyncToGenerator","fn","Tag","tagClassName","rounded","check","globalThis","Function","Badge","size","AccordionTab","headerTemplate","contentStyle","contentClassName","Accordion","_Component2","_super2","onTabChange","activeIndex","contentWrappers","tab","newActiveIndex","multiple","indexes","onTabClose","onTabOpen","tabHeaderClass","expandIcon","collapseIcon","onTabHeaderClick","toggleableContentRef","tabHeader","renderTabHeader","tabContent","renderTabContent","tabClassName","renderTab","tabs","renderTabs","spliceOne","pop","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","valueEqual","every","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","hashIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextEntries","canGo","isUndefined","isObject","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","deepMerge","extend","thisArg","ToastMessageComponent","sticky","life","closable","_this$props$message","summary","detail","contentEl","renderMessage","closeIcon","renderCloseIcon","ToastMessage","messageIdx","Toast","messages","newMessages","msg","TransitionGroup","messageRef","condition","TabPanel","leftIcon","rightIcon","TabView","backwardIsDisabled","forwardIsDisabled","navBackward","navForward","getActiveIndex","updateScrollBar","inkbar","nav","updateButtonState","prevBtn","nextBtn","acc","getVisibleButtonWidths","lastPos","updateInkBar","leftIconElement","titleElement","rightIconElement","titleClassName","headers","renderTabHeaders","contents","renderActiveOnly","createContent","renderNavigator","prevButton","renderPrevButton","nextButton","renderNextButton","toObject","InputNumber","constructParser","onInputKeyPress","onInputClick","onPaste","onUpButtonMouseLeave","onUpButtonMouseDown","onUpButtonMouseUp","onUpButtonKeyDown","onUpButtonKeyUp","onDownButtonMouseLeave","onDownButtonMouseDown","onDownButtonMouseUp","onDownButtonKeyDown","onDownButtonKeyUp","localeMatcher","currency","currencyDisplay","useGrouping","minimumFractionDigits","minFractionDigits","maximumFractionDigits","maxFractionDigits","numberFormat","getOptions","numerals","_numeral","_group","getGroupingExpression","_minusSign","getMinusSignExpression","_currency","getCurrencyExpression","_decimal","getDecimalExpression","_suffix","getSuffixExpression","_prefix","getPrefixExpression","_index","groupChar","prefixChar","escapeRegExp","suffix","suffixChar","formattedValue","filteredText","parsedValue","interval","dir","clearTimer","timer","repeat","spin","currentValue","parseValue","newValue","validateValue","updateInput","handleOnChange","isSpecialChar","lastValue","inputValue","newValueStr","isNumeralChar","formatValue","deleteChar","_this$getDecimalCharI","getDecimalCharIndexes","decimalCharIndex","decimalCharIndexWithoutPrefix","decimalLength","getDecimalLength","insertedText","isDecimalMode","updateValue","deleteRange","_deleteChar","_this$getDecimalCharI2","_decimalCharIndex","_decimalCharIndexWithoutPrefix","_decimalLength","$refs","$el","_insertedText","isDecimalSign","isMinusSign","insert","clipboardData","getData","filteredData","minusCharIndex","suffixCharIndex","currencyCharIndex","minusCharIndexOnText","allowMinusSign","_this$getCharIndexes","getCharIndexes","insertText","resolvedOptions","charIndex","valueLength","prefixLength","initCursor","resetRegex","valueStr","insertedValueStr","allowEmpty","isValueChanged","currentLength","concatValues","_selectionEnd","newLength","startValue","startExpr","sRegex","tExpr","tRegex","prevChar","nextChar","isGroupChar","_selectionEnd2","newVal","val2","valueSplit","updateInputValue","showButtons","buttonLayout","inputMode","isOptionChanged","inputClassName","valueToRender","inputStyle","getInputMode","maxlength","pattern","incrementButtonClassName","incrementButtonIcon","decrementButtonClassName","decrementButtonIcon","upButton","renderUpButton","downButton","renderDownButton","isStacked","inputElement","renderInputElement","renderButtonGroup","CalendarPanelComponent","CalendarPanel","Calendar","onViewDateChange","propValue","viewDate","validateDate","navigation","onUserInput","onButtonClick","onPrevButtonClick","onNextButtonClick","onMonthDropdownChange","onYearDropdownChange","onTodayButtonClick","onClearButtonClick","incrementHour","decrementHour","incrementMinute","decrementMinute","incrementSecond","decrementSecond","toggleAmPm","onTimePickerElementMouseDown","onTimePickerElementMouseUp","onTimePickerElementMouseLeave","reFocusInputField","initFocusableCell","readOnlyInput","updateValueOnInput","updateInputfield","viewStateChanged","prevPropValue","updateFocus","touchUIMask","disableModality","onVisibleChange","ignoreFocusFunctionality","keepInvalid","isKeydown","trapFocus","touchUI","rawValue","parseValueFromString","isValidSelection","updateViewDate","_value","isSelectable","isSelectableTime","v","isRangeSelection","backward","focusedIndex","todayCell","newViewDate","getViewDate","setDate","setMonth","setFullYear","newYear","yearNavigator","minYear","yearRange","maxYear","currentViewDate","selectable","timeMeta","onDateSelect","clearTimePickerTimer","timePickerTimer","incrementMilliSecond","decrementMilliSecond","currentTime","getCurrentDateTime","newHour","stepHour","validateHour","maxDate","toDateString","updateTime","minDate","newMinute","stepMinute","validateMinute","newSecond","stepSecond","validateSecond","newMillisecond","stepMillisec","validateMillisecond","currentHour","valueDateString","viewYear","minRangeYear","maxRangeYear","monthNavigator","viewMonth","viewMonthWithMinMax","isInMinYear","isInMaxYear","newDateTime","setHours","setMinutes","setSeconds","setMilliseconds","cellContent","focusCell","_cellIndex","_focusCell","_focusCell2","navigateToMonth","_focusCell3","numberOfMonths","prevMonthContainer","nextMonthContainer","_focusCell4","_nextCell","onMonthSelect","isDateEquals","maxDateCount","selectDate","showTime","hideOnDateTimeSelect","selectTime","selectedValues","isOverlayClicked","_hideCallback","onWindowResize","isNavIconClicked","enableModality","addMultipleClasses","touchUIMaskClickListener","_this15","destroyMask","hasBlockerMasks","bodyChildren","bodyChild","getDay","getSundayIndex","daylightSavingAdjust","getPreviousMonthAndYear","getDaysCountInMonth","weekDays","_localeOptions","createMonth","getFirstDayOfMonthIndex","daysLength","prevMonthDaysLength","getDaysCountInPrevMonth","dayNo","weekNumbers","monthRows","otherMonth","remainingDaysLength","_j2","getNextMonthAndYear","showWeek","getWeekNumber","checkDate","validMin","validMax","validDate","validDay","validMonth","disabledDates","isDateDisabled","disabledDays","isDayDisabled","selectOtherMonths","isDateBetween","disabledDate","weekdayNumber","formatDateTime","selectedValue","timeOnly","formatTime","getDateFormat","iFormat","lookAhead","formatNumber","formatName","shortNames","longNames","output","literal","_localeOptions2","ticksTo1970","hourFormat","showSeconds","showMillisec","parseDateTime","_tokens","populateTime","parseDate","timeString","ampm","parseTime","validTokenLength","h","dim","iValue","shortYearCutoff","getNumber","isDoubled","digits","getName","names","checkLiteral","_localeOptions3","_this16","navigatorProps","onContainerButtonKeydown","_this17","_this18","displayedMonthOptions","displayedMonthNames","monthNavigatorTemplate","_this19","yearOptions","yearStart","yearEnd","displayedYearNames","yearNavigatorTemplate","monthMetaData","renderTitleMonthElement","renderTitleYearElement","weekDay","_this20","dateTemplate","onDateCellKeydown","weekDates","weekNumber","_this21","dateClassName","showOtherMonths","renderDateCellContent","_this22","renderWeek","renderDayNames","renderDates","createWeekDays","backwardNavigator","renderBackwardNavigator","forwardNavigator","renderForwardNavigator","renderTitle","dateViewGrid","renderDateViewGrid","monthsMetaData","_this23","groups","renderMonth","createMonths","renderMonths","_this24","isMonthSelected","monthName","onMonthCellKeydown","renderMonthViewMonth","yearElement","renderMonthViewMonths","renderDateView","renderMonthView","_this25","hourDisplay","_this26","minuteDisplay","_this27","secondDisplay","_this28","millisecondDisplay","renderHourPicker","renderSeparator","renderMinutePicker","renderSecondPicker","renderMiliSecondPicker","renderAmPmPicker","showIcon","_this29","showButtonBar","todayClassName","todayButtonClassName","clearClassName","clearButtonClassName","_localeOptions4","footerTemplate","_this30","renderButton","datePicker","renderDatePicker","timePicker","renderTimePicker","buttonBar","renderButtonBar","renderFooter","Avatar","shape","isCallable","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","O","P","Attributes","ProgressBar","showValue","displayValueTemplate","renderDeterminate","renderIndeterminate","Rating","onStarKeyDown","onCancelKeyDown","rate","starsArray","stars","getFocusIndex","cancelIcon","renderCancelIcon","renderStars","Dialog","maskVisible","onMaximize","maximized","toggleMaximize","onResizeStart","onMaskClick","attributeSelector","dialogRef","showHeader","closeElement","dismissableMask","changeScrollOnMaximizable","dragging","lastPageX","lastPageY","dialogEl","deltaX","deltaY","leftPos","topPos","keepInViewport","minX","minY","onDrag","resizable","resizing","property","newWidth","newHeight","convertToPx","minHeight","onResize","onResizeEnd","focusOnShow","enableDocumentSettings","disableDocumentSettings","bindGlobalListeners","blockScroll","maximizable","unbindGlobalListeners","primeDialogParams","param","hasBlockScroll","bindDocumentDragListener","bindDocumentResizeListeners","closeOnEscape","bindDocumentKeyDownListener","unbindDocumentDragListener","unbindDocumentResizeListeners","unbindDocumentKeyDownListener","documentDragListener","documentDragEndListener","documentResizeEndListener","documentKeyDownListener","paramLength","dialogId","dialog","getElementById","stopImmediatePropagation","newParam","styleElement","head","breakpoint","breakpoints","createStyle","funcName","ariaCloseIconLabel","maximizeIcon","renderMaximizeIcon","icons","headerEl","footerElement","rtl","maskClassName","getPositionClass","renderHeader","renderResizer","transitionTimeout","fails","arrayLikeToArray","isBoth","numItemsInViewport","numToleratedItems","lastScrollPos","scrollTo","behavior","itemSize","contentPadding","getContentPadding","calculateFirst","calculateCoord","_first","_size","_padding","newFirst","_newFirst","_this$getRenderedRang","getRenderedRange","isToStart","isToEnd","_pos2","_this$state","calculateFirstInViewport","_pos","firstInViewport","lastInViewport","orientation","contentWidth","calculateNumItemsInViewport","_contentSize","_itemSize","calculateLast","_num","_isCols","getLast","showLoader","isCols","_name","spacer","calculateTranslateVal","setTransform","_x","_y","translateVal","_this$state2","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","newLast","isRangeChanged","isScrollDown","isScrollRight","currentIndex","triggerIndex","scrollPos","isScrollDownOrRight","_currentIndex2","_this$onScrollPositio","onScrollPositionChange","setContentPosition","onScrollIndexChange","scrollTimeout","onScrollChange","even","odd","setSize","calculateOptions","setSpacerSize","passedItem","_this$state3","extOptions","loadingTemplate","loaderArr","_","renderLoaderItem","numCols","_this$state4","defaultOptions","SplitButtonItem","menuitem","command","onItemClick","_this$props$menuitem","labelClassName","renderMenuitem","SplitButtonPanelComponent","menuClassName","menuStyle","SplitButtonPanel","SplitButton","onDropdownButtonClick","defaultButton","buttonContent","buttonTemplate","Skeleton","borderRadius","skeletonClassName","animation","skeletonStyle","SplitterPanel","minSize","Splitter","mouseMoveListener","mouseUpListener","unbindMouseListeners","newPrevPanelSize","newNextPanelSize","prevPanelIndex","startPos","prevPanelElement","nextPanelElement","prevPanelSize","nextPanelSize","gutterElement","panelSizes","flexBasis","gutterSize","touches","layout","newPos","validateResize","sizes","bindMouseListeners","windowTouchMoveListener","onGutterTouchMove","windowTouchEndListener","onGutterTouchEnd","passive","cancelable","panelElement","initialized","_panelSizes","panel","panelSize","gutterStyle","gutter","onGutterMouseDown","onTouchStart","onGutterTouchStart","onTouchMove","renderPanel","panels","renderPanels","Chart","chart","canvas","toBase64Image","generateLegend","initChart","reinit","IndexedObject","requireObjectCoercible","aFunction","namespace","FirstPageLink","NextPageLink","PrevPageLink","LastPageLink","PageLinks","pageLink","elements","startPageInView","endPageInView","onPageLinkClick","startPage","endPage","currentPage","totalPages","links","RowsPerPageDropdown","hasOptions","CurrentPageReport","report","reportTemplate","JumpToPageInput","changePageToFirst","changePageToPrev","changePageToNext","changePageToLast","onRowsChange","changePage","getPage","getPageCount","numberOfPages","visiblePages","pageLinks","boundaries","calculatePageLinkBoundaries","pc","newPageState","isRowChanged","isFirstPage","isLastPage","updatePageLinks","_template","renderElements","leftElement","rightElement","headerElRef","renderSimpleLayout","headerRowContent","bodyContent","renderHScrollLayout","dayMinWidth","ScrollGrid","chunks","colGroups","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","renderTopInner","forceDayTop","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","compileSegs","singlePlacements","invisibleSegs","isForcedInvisible","TableListItemEvent","TableBlockEvent","placement","DEFAULT_WEEK_NUM_FORMAT","dayElRef","rootDataAttrs","showWeekNumber","weekElRef","weekClassNames","TableCellTop","fgContentElRef","fgContent","moreMarginTop","TableCellMoreLink","bgContent","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","maxContentHeight","eventInstanceHeights","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","computeFgSegPlacement","eventOrder","dayMaxEvents","dayMaxEventRows","eventOrderStrict","singleColPlacements","multiColPlacements","moreCnts","moreMarginTops","normalFgNodes","renderFgSegs","mirrorFgNodes","mirrorSegs","colPlacements","topsByInstanceId","absoluteTop","buildAbsoluteTopHash","buildMirrorPlacements","TableCell","showDayNumbers","showWeekNumbers","renderFillSegs","updateSizing","currentProps","segPlacements","nodes","leftRightCss","isExternalSizingChange","frameEls","limitByContentHeight","queryEventInstanceHeights","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","getCellEls","elMap","TableRow","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","limitViaBalanced","colGroupNode","renderRowIntro","isSegAllDay","rowPositions","rowObj","colPositions","getCellRange","getCellEl","dayTableModel","slicer","DayTableSlicer","tableRef","Table","headerAlignElRef","buildDayTableModel","headerContent","dayHeaders","contentArg","DayTable","TableView","endOfWeek","AutoCompletePanelComponent","itemContent","ariaSelected","suggestion","suggestions","listId","AutoCompletePanel","AutoComplete","searching","onInputChange","onDropdownClick","onMultiContainerClick","onMultiInputFocus","onMultiInputBlur","onOverlayEntering","query","onClear","minLength","completeMethod","preventInputFocus","selectedItemTemplate","findOptionIndex","resolvedFieldData","_resolvedFieldData","autoHighlight","multiContainer","dropdownMode","removedValue","nextElement","findNextItem","previousElement","findPrevItem","selectHighlightItem","nextItem","prevItem","itemValue","forceSelection","forceItemSelection","isInputClicked","dropdown","onDblClick","multiContainerClass","renderChips","renderMultiInput","dropdownButton","renderMultipleAutoComplete","renderSimpleAutoComplete","renderDropdown","Chips","onWrapperClick","removedItem","allowDuplicate","onAdd","addItem","isMaxedOut","pastedData","pastedValues","isValueSame","deactivate","activate","targetContainer","listElement","renderList","MultiSelectHeader","onSelectAll","selectAll","renderFilterElement","checkboxElement","showSelectAll","closeElementClassName","closeIconClassName","onCloseClick","MultiSelectItem","checkboxClassName","checkboxIcon","MultiSelectPanelComponent","panelHeaderTemplate","panelFooterTemplate","onOverlayHide","onOptionSelect","onOptionKeyDown","renderEmptyFilter","allowOptionSelect","MultiSelectPanel","MultiSelect","selectionLimit","isOptionValueUsed","listItem","isPanelClicked","firstFocusableElement","getFirstFocusableElement","selectedOptions","findOptionByValue","visibleOptionsGroupChildren","_option","selectedItemsLabel","fixedPlaceholder","maxSelectedLabels","getLabelByValue","getSelectedItemsLabel","getLabel","removeChip","getLabelContent","Panel","onToggle","collapsed","toggle","contentRef","onExpand","onCollapse","toggleIcon","togglerElement","renderToggleIcon","iconsElement","iconsClassName","togglerClassName","togglerIconClassName","onTogglerClick","isCollapsed","Sidebar","sidebarRef","bindDocumentEscapeListener","unbindMaskClickListener","unbindDocumentEscapeListener","dismissable","bindMaskClickListener","destroyModal","documentEscapeListener","maskClickListener","showCloseIcon","ariaCloseLabel","fullScreen","renderIcons","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","bitmap","definePropertyModule","createPropertyDescriptor","inspectSource","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","TO_STRING_TAG","wellKnownSymbol","UIMessageComponent","UIMessage","Messages","FileUpload","files","msgs","onFileSelect","onDragEnter","onSimpleUploaderClick","duplicateIEEvent","file","fileLimit","uploadedFileCount","hasFiles","chooseLabel","chooseOptions","uploadLabel","uploadOptions","cancelLabel","cancelOptions","clearInputElement","currentFiles","removedFile","fileInput","bytes","pow","toFixed","isIE11","isFileSelected","isImage","objectURL","auto","clearIEInput","sFile","maxFileSize","invalidFileSizeMessageSummary","invalidFileSizeMessageDetail","formatSize","messagesUI","onValidationFail","customUpload","uploadHandler","formData","onBeforeUpload","lengthComputable","progress","loaded","total","onProgress","onreadystatechange","readyState","onUpload","onBeforeSend","withCredentials","_this$props$chooseOpt","iconOnly","chooseClassName","chooseIconClassName","chooseButtonLabel","chooseDisabled","preview","previewWidth","fileName","removeButton","previewElement","fileNameElement","sizeElement","renderFile","emptyTemplate","progressBarTemplate","uploadButton","cancelButton","filesList","progressBar","chooseButton","renderChooseButton","emptyContent","renderEmptyContent","uploadButtonLabel","cancelButtonLabel","uploadDisabled","cancelDisabled","renderFiles","renderProgressBarContent","buttonClassName","renderAdvanced","renderBasic","widthCredentials","toPrimitive","isSymbol","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","store","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","TYPE","toInteger","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","activeXDocument","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","domain","iframeDocument","iframe","contentWindow","NullProtoObjectViaIFrame","Properties","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","InputSwitch","currentEvent","inputSwitchProps","timed","DEFAULT_SLAT_LABEL_FORMAT","TimeColsAxisCell","isLabeled","isoTimeStr","labelFormat","slotLabelFormat","slotLabelClassNames","slotLabelContent","slotLabelDidMount","slotLabelWillUnmount","slatMetas","slatMeta","allDaySplitter","AllDaySplitter","slatCoords","handleScrollTopRequest","renderHeadAxis","rowKey","frameHeight","renderTableRowAxis","rowHeight","allDayClassNames","allDayContent","renderAllDayInner","allDayDidMount","allDayWillUnmount","handleSlatCoords","timeContent","isNowIndicator","nowIndicator","TimeBodyAxis","nowIndicatorTop","safeComputeTop","getAllDayMaxEventProps","positions","slotDuration","startOfDayDate","timeMs","computeTimeTop","computeDateTop","when","slatIndex","slatRemainder","slatCoverage","slatElRefs","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","TimeColsSlatsBody","onCoords","TimeColsSlatsCoords","splitSegsByCol","segsByCol","splitInteractionByCol","renderPlainFgSegs","buildPositioning","segInputs","hierarchy","hiddenGroups","web","buildNode","cacheable","siblingRange","subjectLevel","subjectLateral","subjectEntry","afterSubject","lateralStart","lateralEnd","findNextLevelSegs","nextLevelRes","buildNodes","nextLevelNodes","buildWeb","segRects","topLevelNodes","processNode","stackDepth","stackForward","processNodes","webToRects","totalThickness","stretchNode","startCoord","prevThickness","endCoord","allThickness","thicknessFraction","newChildren","childNode","newThickness","stretchWeb","pairs","cmpDescPressures","extractNode","keyFunc","workFunc","computeSegVCoords","colDate","eventMinHeight","vcoords","spanStart","spanEnd","DEFAULT_TIME_FORMAT","isShort","isSelectMirror","selectMirror","interactionAffectedInstances","sortedFgSegs","renderNowIndicator","nowIndicatorSegs","TimeColMisc","segIsInvisible","renderPositionedFgSegs","eventMaxStack","eventShortHeight","segVCoords","dumbSegs","segRect","dumbSeg","computeFgSegPlacements","renderHiddenGroups","segPlacement","vStyle","computeSegVStyle","hStyle","computeSegHStyle","isInset","TimeColEvent","hiddenGroup","segEntries","positionCss","segEntry","TimeColMoreLink","segHCoords","shouldOverlap","slotEventOverlap","nearCoord","farCoord","hiddenInstances","splitNowIndicatorSegs","nowIndicatorSegsByRow","TimeCol","updateCoords","onColCoords","processSlotOptions","onScrollTopRequest","handleColCoords","colCoords","onSlatCoords","TimeColsSlats","TimeColsContent","scrollResponder","snapDuration","snapsPerSlot","colIndex","slatTop","slatHeight","partial","snapIndex","dayDate","snapDurationOverride","dayRanges","buildDayRanges","DayTimeColsSlicer","timeColsRef","TimeCols","STOCK_SUB_DURATIONS","buildSlatMetas","explicitLabelInterval","slatTime","slatIterator","labelInterval","slotsPerLabel","computeLabelInterval","metas","buildTimeColsModel","slotLabelInterval","hasAttachedAxis","hasDetachedAxis","allDaySlot","timeGridContent","DayTimeCols","TimeColsView","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","subjectEl","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","handleMouseDown","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","createEventFromMouse","initScrollWatch","handleMouseMove","handleMouseUp","recordCoords","cleanup","handleTouchStart","createEventFromTouch","targetEl","handleTouchMove","handleTouchEnd","handleTouchScroll","handleScroll","prevScrollX","prevPageX","prevScrollY","prevPageY","isTouch","origPageX","origPageY","onWindowTouchMove","querySubjectEl","downEl","destroyScrollWatch","cancelTouchScroll","isFirst","sourceEl","mirrorEl","sourceElRect","revertDuration","origScreenX","origScreenY","updateElPosition","handleMove","setIsVisible","stop","needsRevertAnimation","doRevertAnimation","finalSourceElRect","transition","getMirrorEl","cloneNode","boxSizing","scrollController","doesListening","handleScrollChange","origScrollTop","origScrollLeft","clientRect","computeClientRect","getEventTarget","ScrollGeomCache","performance","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","scrollStartEl","buildCaches","yDelta","xDelta","scrollCache","invDistance","distance","velocity","bestSide","leftDist","rightDist","topDist","bottomDist","queryScrollEls","WindowScrollGeomCache","ElementScrollGeomCache","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","mirror","startDelay","handleDistanceSurpassed","onPointerMove","autoScroller","onPointerUp","tryStopDrag","PointerDragging","ElementMirror","AutoScroller","handleDelayEnd","tryStartDrag","stopDrag","setIgnoreMove","origRect","scrollEl","computeLeft","computeTop","isWithinClipping","isIgnoredClipping","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","processFirstCoord","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","OffsetTracker","bestHit","offsetTracker","originLeft","originTop","componentId","hit0","hit1","buildDatePointApiWithContext","dateStr","hitDragging","FeaturefulElementDragging","HitDragging","canSelect","selectLongPressDelay","longPressDelay","getComponentTouchDelay","handleHitUpdate","isFinal","isInvalid","dateSpan0","dateSpan1","joinHitsIntoSelection","selectMinDistance","dragScroll","subjectSeg","receivingContext","validMutation","mutatedRelevantEvents","origTarget","initialContext","eventDragMinDistance","eventLongPressDelay","fixedMirrorParent","dragRevertDuration","receivingOptions","droppable","massagers","massager","computeEventMutation","displayDrag","clearDrag","updatedEventApi","eventChangeArg","transformed","eventRemoveArg","draggedEl","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","EventDragging","SELECTOR","nextContext","prevContext","initialCalendar","draggingSegEl","draggingSeg","querySegEl","isFromStart","computeMutation","isRecentPointerDateSelect","matchesCancel","matchesEvent","selectInfo","onDocumentPointerDown","unselectCancel","onDocumentPointerUp","documentPointer","unselectAuto","OPTION_REFINERS","LISTENER_REFINERS","dateClick","eventDragStart","eventDragStop","eventDrop","eventResizeStart","eventResizeStop","drop","eventReceive","eventLeave","suppliedDragMeta","droppableEvent","dragMeta","buildDragMeta","canDropElOnCalendar","defProps","computeEventForDateSpan","finalView","dataAttrPrefix","prefixedName","getEmbeddedElData","getDragMetaFromEl","dropAccept","itemSelector","ExternalElementDragging","eventData","mirrorSelector","currentMirrorEl","handlePointerMove","containerOrSettings","Element","InferredElementDragging","DateClicking","DateSelecting","EventResizing","UnselectAuto","InputMask","updateFilledState","isValueChecked","isValueUpdated","inputMaskClassName","Toolbar","toolbarClass","Card","subTitle","renderBody","Password","meter","infoText","promptLabel","unmasked","onKeyup","onMaskToggle","mediumCheckRegExp","mediumRegex","strongCheckRegExp","strongRegex","weakLabel","mediumLabel","strongLabel","strength","feedback","updateLabels","testStrength","toggleMask","defaultIconOptions","getInputType","Divider","dividerClassName","propertyIsEnumerableModule","toIndexedObject","$getOwnPropertyDescriptor","getBuiltIn","$Symbol","V8_VERSION","symbol","process","Deno","versions","v8","aCallable","V","tryToString","IS_PURE","copyright","SHARED","postfix","EXISTS","functionToString","internalObjectKeys","classof","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","capture","modifier","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","charCodeAt","flags","opts","encode","pretty","segment","attachKeys","re","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","SelectButtonItem","SelectButton","unselectable","DataViewLayoutOptions","changeLayout","layoutMode","buttonListClass","buttonGridClass","DataViewItem","DataView","_Component3","_super3","sortChange","getItemRenderKey","topPaginator","renderTopPaginator","bottomPaginator","renderBottomPaginator","OverlayPanel","hasTargetChanged","arrowLeft","setProperty","onContentClick","Menu","popup","menuRef","bindDocumentListeners","unbindDocumentListeners","submenu","linkClassName","onItemKeyDown","renderSubmenu","menuitems","renderMenu","MegaMenu","activeItem","onLeafClick","expandMenu","navigateToNextItem","navigateToPrevItem","collapseMenu","category","columnClass","renderSubmenuItem","columnClassName","submenus","renderSubmenus","getColumnClassName","renderColumn","renderColumns","submenuIcon","renderSubmenuIcon","renderCategoryPanel","onCategoryMouseEnter","onCategoryClick","onCategoryKeyDown","renderCategory","customContent","renderCustomContent","Message","getContent","_self","WorkerGlobalScope","Prism","lang","uniqueId","manual","disableWorkerMessageHandler","util","Token","alias","objId","clone","languages","redef","insertBefore","inside","grammar","newToken","ret","DFS","visited","highlightAll","async","highlightAllUnder","env","run","highlightElement","language","Worker","worker","filename","onmessage","highlightedCode","postMessage","immediateClose","highlight","tokenize","matchGrammar","strarr","oneshot","patterns","lookbehind","greedy","lookbehindLength","delNum","wrapped","all","callbacks","matchedStr","attributes","aliases","script","currentScript","Timeline","opposite","connector","renderEvents","$propertyIsEnumerable","NASHORN_BUG","FunctionPrototype","getDescriptor","PROPER","getOwnPropertyDescriptorModule","that","arraySpeciesConstructor","originalArray","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","called","propertyKey","getMethod","Iterators","ITERATOR","$","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","asap","LAST_ERROR","IS_ERROR","_U","_V","_W","_X","doResolve","handle","deferred","_Y","cb","onFulfilled","onRejected","tryCallOne","promise","handleResolved","getThen","finale","_Z","Handler","tryCallTwo","reason","_0","safeThen","utils","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","Authorization","btoa","fullPath","baseURL","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","statusText","onabort","ontimeout","timeoutErrorMessage","cookies","xsrfValue","read","onDownloadProgress","onUploadProgress","cancelToken","abort","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","Cancel","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_proto","getChildContext","componentWillReceiveProps","oldValue","childContextTypes","PropTypes","isRequired","onUpdate","observedBits","_proto2","contextTypes","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","Slider","onBarClick","handleIndex","updateDomData","sliderHandleClick","bindDragListeners","bindTouchListeners","setValue","onSlideEnd","unbindDragListeners","unbindTouchListeners","dragListener","dragEndListener","initX","initY","barWidth","barHeight","newValues","leftValue","bottomValue","handleClassName","horizontal","handleValueStart","handleValueEnd","rangeStartHandle","renderHandle","rangeEndHandle","rangeStyle","renderRangeSlider","renderSingleSlider","Knob","radius","midX","midY","minRadians","PI","maxRadians","onMouseMove","angle","atan2","mappedValue","mapRange","inMin","inMax","outMin","outMax","nativeEvent","windowMouseMoveListener","windowMouseUpListener","touch","targetTouches","maxX","maxY","zeroX","zeroY","largeArc","sweep","valueX","valueY","cos","sin","zeroRadians","valueRadians","textAnchor","fill","valueToDisplay","viewBox","rangePath","strokeWidth","stroke","rangeColor","valuePath","valueColor","ColorPickerPanelComponent","ColorPickerPanel","ColorPicker","onInputKeydown","onColorMousedown","onHueMousedown","onColorDragStart","onHueDragStart","hueDragging","pickHue","hueView","hsbValue","validateHSB","changedTouches","updateColorSelector","updateHue","colorDragging","pickColor","bindDocumentMouseMoveListener","bindDocumentMouseUpListener","unbindDocumentMouseMoveListener","unbindDocumentMouseUpListener","colorSelector","saturation","brightness","updateColorHandle","HSBtoHEX","HSBtoRGB","hsb","HEXtoHSB","RGBtoHSB","defaultColor","toHSB","colorHandle","hueHandle","togglePanel","documentMouseMoveListener","onDocumentMouseMove","documentMouseUpListener","onDocumentMouseUp","rgb","hexValue","HEXtoRGB","t1","t2","t3","RGBtoHEX","updateHSBValue","updateUI","renderColorSelector","hue","renderHue","renderInput","ListBoxItem","ListBoxHeader","ListBox","onFilterValueChange","onOptionTouchEnd","onOptionSelectMultiple","onOptionSelectSingle","optionTouched","valueChanged","removeOption","getFilterValue","listClassName","wrapper","listStyle","ToggleButton","onLabel","offLabel","onIcon","offIcon","hasLabel","hasIcon","PickListItem","PickListSubListComponent","findIndexInList","wrapperClassName","PickListSubList","PickListControls","moveUp","moveTop","moveDown","moveBottom","selectedItems","selectedItem","selectedItemIndex","movedItem","onReorder","movedDown","moveDisabled","PickListTransferControls","moveRight","moveAllRight","moveLeft","moveAllLeft","sourceSelection","targetList","sourceList","onTransfer","targetSelection","moveRightDisabled","moveLeftDisabled","moveAllRightDisabled","moveAllLeftDisabled","PickList","onSourceSelectionChange","onTargetSelectionChange","onSourceReorder","onTargetReorder","handleChange","reorderedListElement","sourceListElement","reorderDirection","targetListElement","listContainer","onMoveToTarget","getSourceSelection","onMoveAllToTarget","onMoveToSource","getTargetSelection","onMoveAllToSource","getElementsByClassName","handleScrollPosition","showSourceControls","sourceHeader","sourceStyle","targetHeader","targetStyle","showTargetControls","OrderListControls","OrderListSubList","onListMouseMove","draggedItemIndex","dragdropScope","dragOverItemIndex","bottomDiff","topDiff","itemClassName","dragdrop","_items","renderDropPoint","OrderList","updateListScroll","listItems","subList","UITreeNode","onNodeKeyDown","propagateUp","onDropPointDragOver","onDropPointDragEnter","onDropPointDragLeave","isNodeLeaf","expandedKeys","invokeToggleEvents","isExpanded","nodeElement","focusNode","nextNodeElement","nextSiblingAncestor","findNextSiblingOfAncestor","findLastVisibleDescendant","parentNodeElement","getParentNodeElement","childrenListElement","lastChildElement","selectionKeys","propagateSelectionDown","propagateDown","propagateSelectionUp","onPropagateUp","nodeTouched","isSingleSelectionMode","isMultipleSelectionMode","checkedChildCount","childPartialSelected","partialChecked","onDropPoint","types","dropEffect","contentElement","nodeTemplate","isPartialChecked","expandedIcon","collapsedIcon","togglerTemplate","contextMenuSelectionKey","toggler","renderToggler","renderCheckbox","isLeaf","renderChildren","renderNode","beforeDropPoint","afterDropPoint","onNodeClick","onNodeDoubleClick","Tree","filteredNodes","dragState","validateDropNode","dragPaths","dragNodeParent","findNode","dragNode","dropNode","onDragDrop","validateDropPoint","dropPaths","dropNodeParent","siblings","areSiblings","dragPath","dropPath","validateDrop","path1","path2","nextSearchRoot","leaf","filterChanged","isNotEmpty","_filter","isStrictMode","filterMode","copyNode","paramsWithoutNode","findFilteredNodes","isFilterMatched","copyChildNode","getExpandedKeys","renderRootChild","rootNodes","renderRootChildren","contentClass","filterContainerClassName","filterIconClasssName","renderModel","_arrayLikeToArray$3","_unsupportedIterableToArray$3","_createForOfIteratorHelper$2","TreeTableHeader","onFilterInput","onHeaderClick","onHeaderMouseDown","onHeaderKeyDown","rowHeaderCells","renderHeaderCell","renderHeaderRow","renderColumnGroup","TreeTableBodyCell","TreeTableRow","onCheckboxChange","onCheckboxFocus","onCheckboxBlur","checkboxBox","previousRow","renderCell","TreeTableBody","createRow","TreeTableFooter","rowFooterCells","renderFooterCell","renderFooterRow","headerCells","TreeTableScrollableView","TreeTable","sortNodes","node1","node2","sortMultipleNodes","_scrollableView","_scrollableBodyTable","_scrollableHeaderTable","_scrollableFooterTable","_resizeColumnIndex","copyNodeForGlobal","renderScrollableTable","renderRegularTable","processValue","isRowSelectionMode","renderTable","Fieldset","legend","legendContent","renderLegendContent","renderLegend","confirmPopup","confirmPopupWrapper","confirmPopupEl","ConfirmPopup","updateConfirmPopup","_destroy","acceptBtnRef","acceptLabel","rejectLabel","acceptClassName","rejectClassName","rejectIcon","acceptIcon","CarouselItem","active","Carousel","numVisible","numScroll","totalShiftedItems","onTransitionEnd","totalIndicators","remainingItems","allowAutoplay","autoplayInterval","circular","swipeThreshold","isCircular","isRemainingItemsAdded","originalShiftedItems","itemsContainer","changePosition","responsiveOptions","windowWidth","matchedResponsiveData","touchobj","changePageOnTouch","calculatePosition","carouselStyle","stateChanged","stopAutoplay","isAutoplay","startAutoplay","clonedItemsForStarting","clonedItemsForFinishing","clonedElements","verticalViewPortHeight","indicatorItemClassName","onDotClick","indicatorsContentClassName","indicators","renderIndicator","getTotalIndicators","renderIndicators","GalleriaItemComponent","nextItemIndex","activeItemIndex","onActiveItemChange","prevItemIndex","slideShowActive","stopSlideShow","changeItemOnIndicatorHover","autoPlay","startSlideShow","showItemNavigators","caption","indicator","onIndicatorClick","onIndicatorMouseEnter","onIndicatorKeyDown","showIndicators","renderCaption","GalleriaItem","GalleriaThumbnailItem","GalleriaThumbnails","getMedianItemIndex","getTotalPageNumber","propertyName","thumbnailsStyle","showThumbnailNavigators","Galleria","onItemChange","galleriaRef","transitionInterval","preClassName","thumbnailsPosition","thumbnailsPosClassName","showThumbnails","getPositionClassName","indicatorPosClassName","indicatorsPosition","galleriaClassName","showIndicatorsOnItem","showItemNavigatorsOnHover","previewContent","thumbnail","verticalThumbnailViewPortHeight","galleriaWrapper","renderGalleria","MenubarSubComponent","onChildItemKeyDown","mobileActive","expandSubmenu","childListItem","parentActive","MenubarSub","submenuIconClassName","onItemMouseEnter","getElementRef","Menubar","rootmenu","menubutton","renderStartContent","renderEndContent","menuButton","renderMenuButton","BreadCrumb","home","itemClick","renderHome","renderMenuitems","Steps","numberClassName","TabMenu","renderMenuItem","TieredMenuSub","parentItem","sublistWidth","itemOuterWidth","TieredMenu","ContextMenuSub","submenuRef","resetMenu","ContextMenu","reshow","onMenuClick","onMenuMouseEnter","Event","rePosition","documentContextMenuListener","bindDocumentContextMenuListener","unbindDocumentContextMenuListener","renderContextMenu","PanelMenuSub","findActiveItem","isItemActive","a_item","submenuWrapperClassName","submenuContentRef","PanelMenu","itemIcon","contentWrapperClassName","menuContentRef","AvatarGroup","ScrollPanel","moveBar","onXBarMouseDown","onYBarMouseDown","containerStyles","xBarStyles","xBar","pureContainerHeight","totalWidth","ownWidth","scrollXRatio","totalHeight","ownHeight","yBar","scrollYRatio","frame","cssText","isYBarClicked","isXBarClicked","onMouseMoveForXBar","onMouseMoveForYBar","timeoutFrame","calculateContainerHeight","cancelAnimationFrame","ScrollTop","scrollElementRef","helper","scrollY","threshold","scrollListener","checkVisibility","bindDocumentScrollListener","bindParentScrollListener","unbindDocumentScrollListener","unbindParentScrollListener","isTargetParent","getChildMapping","mapFn","isValidElement","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","_React$Component","handleExited","contextValue","isMounting","firstRender","appear","currentChildMapping","_this$props","childFactory","TransitionGroupContext","enable","$toString","nativeObjectCreate","objectKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertySymbolsModule","defineWellKnownSymbol","$forEach","HIDDEN","SYMBOL","TO_PRIMITIVE","setInternalState","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","description","$defineProperties","properties","$getOwnPropertySymbols","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","setter","string","keyFor","useSetter","useSimple","replacer","space","$replacer","ordinaryToPrimitive","pref","exoticToPrim","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","includes","integer","replacement","feature","detection","normalize","POLYFILL","NATIVE","windowNames","getWindowNames","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","filterReject","isConstructor","SPECIES","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","nativeSymbol","desc","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","A","METHOD_NAME","foo","checkCorrectnessOfIteration","iterable","callWithSafeIterationClosing","isArrayIteratorMethod","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","iteratorClose","kind","innerResult","innerError","ArrayPrototype","usingIterator","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","defineIterator","STRING_ITERATOR","iterated","CONVERT_TO_STRING","S","codeAt","aPossiblePrototype","CORRECT_SETTER","DOMIterables","DOMTokenListPrototype","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","addToUnscopables","ARRAY_ITERATOR","Arguments","UNSCOPABLES","DEFAULT_WHITELIST","RangeError","enabled","disable","matchWhitelist","cls","displayId","rejections","onUnhandled","allRejections","whitelist","logged","stack","line","logError","_1","onHandled","rawAsap","requestFlush","flush","scan","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","timeoutHandle","handleTimer","intervalHandle","observer","observe","characterData","makeRequestCallFromMutationObserver","TRUE","valuePromise","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","iterableToArray","remaining","race","support","viewClasses","normalizeName","normalizeValue","iteratorFor","Headers","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","buf","Uint8Array","byteLength","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","_bodyArrayBuffer","rejected","arrayBuffer","isConsumed","byteOffset","readAsText","readBlobAsText","chars","readArrayBufferAsText","decode","Request","credentials","signal","upcased","normalizeMethod","referrer","reParamSearch","form","decodeURIComponent","rawHeaders","Response","bodyInit","redirectStatuses","redirect","DOMException","aborted","abortXhr","fixUrl","polyfill","StrictMode","Profiler","q","Suspense","u","for","z","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","refs","updater","D","isReactComponent","forceUpdate","isPureReactComponent","G","H","I","__self","__source","J","$$typeof","_owner","L","M","N","escape","K","Q","_status","_result","R","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","_payload","_init","useCallback","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","removeAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","db","fb","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","namespaceURI","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","ub","area","br","embed","hr","img","keygen","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","memoizedState","dehydrated","ac","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","timeStamp","isTrusted","td","ud","vd","Ad","screenX","screenY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","number","tel","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","anchorNode","defaultView","anchorOffset","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","gf","hf","je","ke","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","focusedElem","ek","addRange","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","findDOMNode","flushSync","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","jsx","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","ReactPropTypes","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isSuspense","isValidElementType","typeOf","Axios","mergeConfig","createInstance","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","argv","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","normalizedName","isAxiosError","lineNumber","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","protocol","host","hostname","port","requestURL","expires","secure","cookie","toGMTString","executor","resolvePromise","clike","punctuation","markup","xml","mathml","svg","javascript","jsxExpression","js","css","scss","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","replaceClassName","origClass","classToRemove","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","childProps","baseVal","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","doneClassName","phase","_addClass","_this$appliedClasses$"],"mappings":";8FAGEA,EAAOC,QAAUC,EAAQ,M,6BCAzBF,EAAOC,QAAUC,EAAQ,M,6BCH3B,ihBAuCA,SAASC,EAAoBC,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAgBT,SAASE,EAAeN,EAAKG,GAC3B,OA1DF,SAAyBH,GACvB,GAAIK,MAAME,QAAQP,GAAM,OAAOA,EAyDxBQ,CAAgBR,IAtDzB,SAA+BA,EAAKG,GAClC,IAAIM,EAAKT,IAA0B,qBAAXU,QAA0BV,EAAIU,OAAOC,WAAaX,EAAI,eAE9E,GAAU,MAANS,EAAJ,CACA,IAIIG,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKP,EAAKA,EAAGQ,KAAKjB,KAAQe,GAAMH,EAAKH,EAAGS,QAAQC,QAC9CL,EAAKM,KAAKR,EAAGS,QAETlB,GAAKW,EAAKZ,SAAWC,GAH4BY,GAAK,IAK5D,MAAOO,GACPN,GAAK,EACLH,EAAKS,EARP,QAUE,IACOP,GAAsB,MAAhBN,EAAE,QAAoBA,EAAE,SADrC,QAGE,GAAIO,EAAI,MAAMH,GAIlB,OAAOC,GA2BwBS,CAAsBvB,EAAKG,IAd5D,SAAuCqB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOzB,EAAoByB,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAW3B,EAAoByB,EAAGC,QAA3G,GAQgEU,CAA8BnC,EAAKG,IALrG,WACE,MAAM,IAAIiC,UAAU,6IAIqFC,GAG3G,SAASC,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAASC,IACP,IAAK,IAAIC,EAAOC,UAAUxC,OAAQyC,EAAO,IAAItC,MAAMoC,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzB,GAAID,EAAM,CAGR,IAFA,IAAIE,EAAU,GAEL1C,EAAI,EAAGA,EAAIwC,EAAKzC,OAAQC,IAAK,CACpC,IAAI2C,EAAYH,EAAKxC,GACrB,GAAK2C,EAAL,CAEA,IAAIC,EAAOT,EAAQQ,GAEnB,GAAa,WAATC,GAA8B,WAATA,EACvBF,EAAQzB,KAAK0B,QACR,GAAa,WAATC,EAAmB,CAC5B,IAAIC,EAAW3C,MAAME,QAAQuC,GAAaA,EAAYnB,OAAOsB,QAAQH,GAAWI,KAAI,SAAUC,GAC5F,IAAIC,EAAQ9C,EAAe6C,EAAM,GAC7BE,EAAMD,EAAM,GAGhB,OAFYA,EAAM,GAEDC,EAAM,QAGzBR,EAAUG,EAAS9C,OAAS2C,EAAQS,OAAON,EAASO,QAAO,SAAUC,GACnE,QAASA,MACLX,IAIV,OAAOA,EAAQY,KAAK,MAMxB,SAASC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAASY,EAA6BhD,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAEhL,SAAuClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOiD,EAAoBnD,EAAGC,GAFvOmD,CAA8BpD,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAI79B,SAASqD,EAAoB3E,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAElL,IAAIkF,EAA0B,WAC5B,SAASA,IACP5B,EAAgB6B,KAAMD,GAkzBxB,OA/yBAjB,EAAaiB,EAAY,KAAM,CAAC,CAC9BjC,IAAK,aACLhC,MAAO,SAAoBmE,GACzB,GAAIA,EAAI,CACN,IAAIC,EAAQD,EAAGE,YACXC,EAAQC,iBAAiBJ,GAE7B,OADAC,GAASI,WAAWF,EAAMG,aAAeD,WAAWF,EAAMI,cAI5D,OAAO,IAER,CACD1C,IAAK,QACLhC,MAAO,SAAemE,GACpB,GAAIA,EAAI,CACN,IAAIC,EAAQD,EAAGE,YACXC,EAAQC,iBAAiBJ,GAE7B,OADAC,GAASI,WAAWF,EAAMG,aAAeD,WAAWF,EAAMI,cACnDN,EAGT,OAAO,IAER,CACDpC,IAAK,qBACLhC,MAAO,WACL,IAAI2E,EAAMC,SAASC,gBACnB,OAAQC,OAAOC,aAAeJ,EAAIK,YAAcL,EAAIM,WAAa,KAElE,CACDjD,IAAK,sBACLhC,MAAO,WACL,IAAI2E,EAAMC,SAASC,gBACnB,OAAQC,OAAOI,aAAeP,EAAIQ,aAAeR,EAAIS,YAAc,KAEpE,CACDpD,IAAK,gBACLhC,MAAO,SAAuBmE,EAAIkB,GAChC,GAAIlB,EAAI,CACN,IAAIC,EAAQD,EAAGE,YAEf,GAAIgB,EAAQ,CACV,IAAIf,EAAQC,iBAAiBJ,GAC7BC,GAASI,WAAWF,EAAMgB,YAAcd,WAAWF,EAAMiB,aAG3D,OAAOnB,EAGT,OAAO,IAER,CACDpC,IAAK,iBACLhC,MAAO,SAAwBmE,EAAIkB,GACjC,GAAIlB,EAAI,CACN,IAAIqB,EAASrB,EAAGsB,aAEhB,GAAIJ,EAAQ,CACV,IAAIf,EAAQC,iBAAiBJ,GAC7BqB,GAAUhB,WAAWF,EAAMoB,WAAalB,WAAWF,EAAMqB,cAG3D,OAAOH,EAGT,OAAO,IAER,CACDxD,IAAK,kBACLhC,MAAO,SAAyBmE,EAAIkB,GAClC,GAAIlB,EAAI,CACN,IAAIqB,EAASrB,EAAGyB,aAEhB,GAAIP,EAAQ,CACV,IAAIf,EAAQC,iBAAiBJ,GAC7BqB,GAAUhB,WAAWF,EAAMoB,WAAalB,WAAWF,EAAMqB,cAG3D,OAAOH,EAGT,OAAO,IAER,CACDxD,IAAK,cACLhC,MAAO,WACL,IAAI6F,EAAMf,OACNgB,EAAIlB,SACJlB,EAAIoC,EAAEjB,gBACNkB,EAAID,EAAEE,qBAAqB,QAAQ,GAGvC,MAAO,CACL5B,MAHMyB,EAAII,YAAcvC,EAAEwC,aAAeH,EAAEG,YAI3CV,OAHMK,EAAIM,aAAezC,EAAEkC,cAAgBG,EAAEH,gBAMhD,CACD5D,IAAK,YACLhC,MAAO,SAAmBmE,GACxB,GAAIA,EAAI,CACN,IAAIiC,EAAOjC,EAAGkC,wBACd,MAAO,CACLC,IAAKF,EAAKE,KAAOxB,OAAOC,aAAeH,SAASC,gBAAgBG,WAAaJ,SAAS2B,KAAKvB,WAAa,GACxGwB,KAAMJ,EAAKI,MAAQ1B,OAAOI,aAAeN,SAASC,gBAAgBM,YAAcP,SAAS2B,KAAKpB,YAAc,IAIhH,MAAO,CACLmB,IAAK,OACLE,KAAM,UAGT,CACDxE,IAAK,QACLhC,MAAO,SAAeyG,GACpB,GAAIA,EAIF,IAHA,IAAIC,EAAWD,EAAQE,WAAWC,WAC9BC,EAAM,EAED/H,EAAI,EAAGA,EAAI4H,EAAS7H,OAAQC,IAAK,CACxC,GAAI4H,EAAS5H,KAAO2H,EAAS,OAAOI,EACP,IAAzBH,EAAS5H,GAAGgI,UAAgBD,IAIpC,OAAQ,IAET,CACD7E,IAAK,qBACLhC,MAAO,SAA4ByG,EAAShF,GAC1C,GAAIgF,GAAWhF,EACb,GAAIgF,EAAQM,UAGV,IAFA,IAAIC,EAASvF,EAAUwF,MAAM,KAEpBnI,EAAI,EAAGA,EAAIkI,EAAOnI,OAAQC,IACjC2H,EAAQM,UAAUG,IAAIF,EAAOlI,SAK/B,IAFA,IAAIqI,EAAU1F,EAAUwF,MAAM,KAErB7H,EAAK,EAAGA,EAAK+H,EAAQtI,OAAQO,IACpCqH,EAAQhF,WAAa,IAAM0F,EAAQ/H,KAK1C,CACD4C,IAAK,WACLhC,MAAO,SAAkByG,EAAShF,GAC5BgF,GAAWhF,IACTgF,EAAQM,UAAWN,EAAQM,UAAUG,IAAIzF,GAAgBgF,EAAQhF,WAAa,IAAMA,KAG3F,CACDO,IAAK,cACLhC,MAAO,SAAqByG,EAAShF,GAC/BgF,GAAWhF,IACTgF,EAAQM,UAAWN,EAAQM,UAAUK,OAAO3F,GAAgBgF,EAAQhF,UAAYgF,EAAQhF,UAAU4F,QAAQ,IAAIC,OAAO,UAAY7F,EAAUwF,MAAM,KAAK7E,KAAK,KAAO,UAAW,MAAO,QAG3L,CACDJ,IAAK,WACLhC,MAAO,SAAkByG,EAAShF,GAChC,GAAIgF,EACF,OAAIA,EAAQM,UAAkBN,EAAQM,UAAUQ,SAAS9F,GAAuB,IAAI6F,OAAO,QAAU7F,EAAY,QAAS,MAAMZ,KAAK4F,EAAQhF,aAGhJ,CACDO,IAAK,OACLhC,MAAO,SAAcyG,EAASe,GAC5B,OAAOf,EAAUzH,MAAM4B,KAAK6F,EAAQgB,iBAAiBD,IAAa,KAEnE,CACDxF,IAAK,aACLhC,MAAO,SAAoByG,EAASe,GAClC,OAAIf,EACKA,EAAQiB,cAAcF,GAGxB,OAER,CACDxF,IAAK,YACLhC,MAAO,SAAmBmE,GACxB,GAAIA,EAAI,CACN,IAAIqB,EAASrB,EAAGsB,aACZnB,EAAQC,iBAAiBJ,GAE7B,OADAqB,GAAUhB,WAAWF,EAAMqD,YAAcnD,WAAWF,EAAMsD,eAAiBpD,WAAWF,EAAMuD,gBAAkBrD,WAAWF,EAAMwD,mBAIjI,OAAO,IAER,CACD9F,IAAK,WACLhC,MAAO,SAAkBmE,GACvB,GAAIA,EAAI,CACN,IAAIC,EAAQD,EAAGE,YACXC,EAAQC,iBAAiBJ,GAE7B,OADAC,GAASI,WAAWF,EAAMG,aAAeD,WAAWF,EAAMI,cAAgBF,WAAWF,EAAMyD,iBAAmBvD,WAAWF,EAAM0D,kBAIjI,OAAO,IAER,CACDhG,IAAK,eACLhC,MAAO,SAAsBiI,EAASxF,EAAQyF,GACxCD,GAAWxF,IACI,SAAbyF,EACFhE,KAAKiE,iBAAiBF,EAASxF,IAE/BwF,EAAQ3D,MAAM8D,SAAWnE,EAAWoE,cAAc5F,GAAU,KAC5DyB,KAAKoE,iBAAiBL,EAASxF,OAIpC,CACDT,IAAK,mBACLhC,MAAO,SAA0ByG,EAAShE,GACxC,GAAIgE,EAAS,CACX,IAYIH,EAAKE,EAZL+B,EAAoB9B,EAAQ+B,aAAe,CAC7CpE,MAAOqC,EAAQpC,YACfmB,OAAQiB,EAAQhB,cACdvB,KAAKuE,2BAA2BhC,GAChCiC,EAAqBH,EAAkB/C,OACvCmD,EAAoBJ,EAAkBnE,MACtCwE,EAAoBnG,EAAOgD,aAC3BoD,EAAmBpG,EAAO4B,YAC1ByE,EAAerG,EAAO4D,wBACtB0C,EAAkB7E,KAAK8E,qBACvBC,EAAmB/E,KAAKgF,sBACxBC,EAAWjF,KAAKkF,cAGhBN,EAAaxC,IAAMsC,EAAoBF,EAAqBS,EAAS3D,SACvEc,EAAMwC,EAAaxC,IAAMyC,EAAkBL,GAEjC,IACRpC,EAAMyC,GAGRtC,EAAQnC,MAAM+E,gBAAkB,WAEhC/C,EAAMsC,EAAoBE,EAAaxC,IAAMyC,EAC7CtC,EAAQnC,MAAM+E,gBAAkB,OAG6C7C,EAA3EsC,EAAatC,KAAOqC,EAAmBF,EAAoBQ,EAAS/E,MAAckF,KAAKC,IAAI,EAAGT,EAAatC,KAAOyC,EAAmBJ,EAAmBF,GAA+BG,EAAatC,KAAOyC,EAC/MxC,EAAQnC,MAAMgC,IAAMA,EAAM,KAC1BG,EAAQnC,MAAMkC,KAAOA,EAAO,QAG/B,CACDxE,IAAK,mBACLhC,MAAO,SAA0ByG,EAAShE,GACxC,GAAIgE,EAAS,CACX,IAOIH,EAAKE,EAPL+B,EAAoB9B,EAAQ+B,aAAe,CAC7CpE,MAAOqC,EAAQpC,YACfmB,OAAQiB,EAAQhB,cACdvB,KAAKuE,2BAA2BhC,GAChC+C,EAAe/G,EAAOgD,aACtBqD,EAAerG,EAAO4D,wBACtB8C,EAAWjF,KAAKkF,cAGhBN,EAAaxC,IAAMkD,EAAejB,EAAkB/C,OAAS2D,EAAS3D,QACxEc,GAAO,EAAIiC,EAAkB/C,OAEzBsD,EAAaxC,IAAMA,EAAM,IAC3BA,GAAO,EAAIwC,EAAaxC,KAG1BG,EAAQnC,MAAM+E,gBAAkB,WAEhC/C,EAAMkD,EACN/C,EAAQnC,MAAM+E,gBAAkB,OAKhC7C,EAFE+B,EAAkBnE,MAAQ+E,EAAS/E,OAET,EAArB0E,EAAatC,KACXsC,EAAatC,KAAO+B,EAAkBnE,MAAQ+E,EAAS/E,OAES,GAAjE0E,EAAatC,KAAO+B,EAAkBnE,MAAQ+E,EAAS/E,OAGxD,EAGTqC,EAAQnC,MAAMgC,IAAMA,EAAM,KAC1BG,EAAQnC,MAAMkC,KAAOA,EAAO,QAG/B,CACDxE,IAAK,mBACLhC,MAAO,SAA0ByG,EAAShE,GACxC,IAAIgH,EAAQvF,KAERwF,EAAKrI,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,WACzEuI,EAAKvI,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,cACzEwI,EAAWxI,UAAUxC,OAAS,EAAIwC,UAAU,QAAKsI,EACjDb,EAAerG,EAAO4D,wBACtB8C,EAAWjF,KAAKkF,cAChBU,EAAQJ,EAAGzC,MAAM,KACjB8C,EAAQH,EAAG3C,MAAM,KAEjB+C,EAAmB,SAA0BrL,EAAKsL,GACpD,OAAOA,GAAYtL,EAAIuL,UAAUvL,EAAIwL,OAAO,aAAe,EAAIxL,EAAIuL,UAAU,EAAGvL,EAAIwL,OAAO,aAAexL,GAGxGyL,EAAW,CACbV,GAAI,CACFW,EAAGL,EAAiBF,EAAM,IAC1BQ,EAAGN,EAAiBF,EAAM,IAAMA,EAAM,IACtCS,QAASP,EAAiBF,EAAM,IAAI,GACpCU,QAASR,EAAiBF,EAAM,IAAMA,EAAM,IAAI,IAElDF,GAAI,CACFS,EAAGL,EAAiBD,EAAM,IAC1BO,EAAGN,EAAiBD,EAAM,IAAMA,EAAM,IACtCQ,QAASP,EAAiBD,EAAM,IAAI,GACpCS,QAASR,EAAiBD,EAAM,IAAMA,EAAM,IAAI,KAGhDU,EAAW,CACbjE,KAAM,WAEJ,OADkB4D,EAASV,GAAGa,QAAUH,EAASR,GAAGW,QAC/BzB,EAAatC,MAA0B,SAAlB4D,EAASV,GAAGW,EAAe,GAAK,GAAuB,WAAlBD,EAASV,GAAGW,EAAiBZ,EAAMpB,cAAc5B,GAAW,EAAIgD,EAAMpB,cAAc5B,MAErKH,IAAK,WAEH,OADkB8D,EAASV,GAAGc,QAAUJ,EAASR,GAAGY,QAC/B1B,EAAaxC,KAAyB,QAAlB8D,EAASV,GAAGY,EAAc,GAAK,GAAuB,WAAlBF,EAASV,GAAGY,EAAiBb,EAAMiB,eAAejE,GAAW,EAAIgD,EAAMiB,eAAejE,OAGnKkE,EAAc,CAChBC,MAAO,CACLP,EAAG,EACHC,EAAG,GAEL9D,KAAM,WACJ,IAAIA,EAAOiE,EAASjE,OAChBrB,EAAalB,EAAWiF,sBAC5BzC,EAAQnC,MAAMkC,KAAOA,EAAOrB,EAAa,KAEpB,IAAjBjB,KAAK0G,MAAMP,GACb5D,EAAQnC,MAAMkC,KAAOrB,EAAa,KAClCjB,KAAK0G,MAAMP,EAAI,GACN7D,EAAO,IAChBtC,KAAK0G,MAAMP,IACXD,EAASV,GAAGW,EAAI,OAChBD,EAASR,GAAGS,EAAI,QAChBD,EAASV,GAAGa,UAAY,EACxBH,EAASR,GAAGW,UAAY,EACxBrG,KAAK2G,UAGTA,MAAO,WACL,IAAIrE,EAAOiE,EAASjE,OAASvC,EAAWoE,cAAc5F,GAClD0C,EAAalB,EAAWiF,sBAC5BzC,EAAQnC,MAAMkC,KAAOA,EAAOrB,EAAa,KAEpB,IAAjBjB,KAAK0G,MAAMP,GACb5D,EAAQnC,MAAMkC,KAAO2C,EAAS/E,MAAQH,EAAWoE,cAAc5B,GAAWtB,EAAa,KACvFjB,KAAK0G,MAAMP,EAAI,GACN7D,EAAOvC,EAAWoE,cAAc5B,GAAW0C,EAAS/E,QAC7DF,KAAK0G,MAAMP,IACXD,EAASV,GAAGW,EAAI,QAChBD,EAASR,GAAGS,EAAI,OAChBD,EAASV,GAAGa,UAAY,EACxBH,EAASR,GAAGW,UAAY,EACxBrG,KAAKsC,SAGTF,IAAK,WACH,IAAIA,EAAMmE,EAASnE,MACftB,EAAYf,EAAW+E,qBAC3BvC,EAAQnC,MAAMgC,IAAMA,EAAMtB,EAAY,KAEjB,IAAjBd,KAAK0G,MAAMN,GACb7D,EAAQnC,MAAMkC,KAAOxB,EAAY,KACjCd,KAAK0G,MAAMN,EAAI,GACNhE,EAAM,IACfpC,KAAK0G,MAAMN,IACXF,EAASV,GAAGY,EAAI,MAChBF,EAASR,GAAGU,EAAI,SAChBF,EAASV,GAAGc,UAAY,EACxBJ,EAASR,GAAGY,UAAY,EACxBtG,KAAK4G,WAGTA,OAAQ,WACN,IAAIxE,EAAMmE,EAASnE,MAAQrC,EAAWyG,eAAejI,GACjDuC,EAAYf,EAAW+E,qBAC3BvC,EAAQnC,MAAMgC,IAAMA,EAAMtB,EAAY,KAEjB,IAAjBd,KAAK0G,MAAMN,GACb7D,EAAQnC,MAAMkC,KAAO2C,EAAS3D,OAASvB,EAAWyG,eAAejE,GAAWzB,EAAY,KACxFd,KAAK0G,MAAMN,EAAI,GACNhE,EAAMrC,EAAWyG,eAAejI,GAAU0G,EAAS3D,SAC5DtB,KAAK0G,MAAMN,IACXF,EAASV,GAAGY,EAAI,SAChBF,EAASR,GAAGU,EAAI,MAChBF,EAASV,GAAGc,UAAY,EACxBJ,EAASR,GAAGY,UAAY,EACxBtG,KAAKoC,QAGTyE,OAAQ,SAAgBC,GACtB,GAAa,MAATA,EAAc,CAChB,IAAI1E,EAAMmE,EAASnE,MAAQrC,EAAWyG,eAAejI,GAAU,EAC/DgE,EAAQnC,MAAMgC,IAAMA,EAAMrC,EAAW+E,qBAAuB,KAExD1C,EAAM,EACRpC,KAAK4G,SACIxE,EAAMrC,EAAWyG,eAAejI,GAAU0G,EAAS3D,QAC5DtB,KAAKoC,UAEF,CACL,IAAIE,EAAOiE,EAASjE,OAASvC,EAAWoE,cAAc5F,GAAU,EAChEgE,EAAQnC,MAAMkC,KAAOA,EAAOvC,EAAWiF,sBAAwB,KAE3D1C,EAAO,EACTtC,KAAKsC,OACIA,EAAOvC,EAAWoE,cAAc5B,GAAW0C,EAAS/E,OAC7DF,KAAK2G,WAKbF,EAAYP,EAASR,GAAGS,GAAG,KAC3BM,EAAYP,EAASR,GAAGU,GAAG,KAEvBpG,KAAK+G,WAAWpB,IAClBA,EAASO,KAGZ,CACDpI,IAAK,wBACLhC,MAAO,SAA+BoK,GACpC,GAAIA,EAAU,CACZ,IACIc,EAA2B,SAAbd,EAAsB,QAAU,OAGlD,MAJ2B,QAAbA,GAAmC,WAAbA,EAK3B,CACLY,KAAM,IACNtB,GAAI,UAAUzH,OALa,QAAbmI,EAAqB,SAAW,OAM9CR,GAAI,UAAU3H,OAAOmI,IAIlB,CACLY,KAAM,IACNtB,GAAI,GAAGzH,OAAOiJ,EAAa,WAC3BtB,GAAI,GAAG3H,OAAOmI,EAAU,eAI7B,CACDpI,IAAK,aACLhC,MAAO,SAAoByG,GACzB,IAAI0E,EAAU9J,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAiC,OAA1BoF,EAAO,WAA0B0E,EAAUjH,KAAKkH,WAAW3E,EAAQE,WAAYwE,EAAQlJ,OAAO,CAACwE,EAAQE,gBAE/G,CACD3E,IAAK,uBACLhC,MAAO,SAA8ByG,GACnC,IAAI4E,EAAoB,GAExB,GAAI5E,EAAS,CACX,IASI6E,EATAH,EAAUjH,KAAKkH,WAAW3E,GAC1B8E,EAAgB,gBAEhBC,EAAgB,SAAuBC,GACzC,IAAIC,EAAmB5G,OAAM,iBAAqB2G,EAAM,MACxD,OAAOF,EAAc1K,KAAK6K,EAAiBC,iBAAiB,cAAgBJ,EAAc1K,KAAK6K,EAAiBC,iBAAiB,eAAiBJ,EAAc1K,KAAK6K,EAAiBC,iBAAiB,eAGrMC,EAAYzI,EAA6BgI,GAG7C,IACE,IAAKS,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAI+L,EAASP,EAAMtL,MACf8L,EAAsC,IAApBD,EAAO/E,UAAkB+E,EAAOE,QAAP,gBAE/C,GAAID,EAAiB,CACnB,IAGIE,EADAC,EAAa9I,EAFD2I,EAAgB7E,MAAM,MAKtC,IACE,IAAKgF,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAI0H,EAAWwE,EAAOhM,MAClBmE,EAAKD,KAAKgI,WAAWL,EAAQrE,GAE7BrD,GAAMqH,EAAcrH,IACtBkH,EAAkBtL,KAAKoE,IAG3B,MAAOlE,GACPgM,EAAWvI,EAAEzD,GAVf,QAYEgM,EAAWtI,KAIS,IAApBkI,EAAO/E,UAAkB0E,EAAcK,IACzCR,EAAkBtL,KAAK8L,IAG3B,MAAO5L,GACP2L,EAAUlI,EAAEzD,GAhCd,QAkCE2L,EAAUjI,KAId,OAAO0H,IAER,CACDrJ,IAAK,8BACLhC,MAAO,SAAqCyG,GAC1C,GAAIA,EAAS,CACXA,EAAQnC,MAAM6H,WAAa,SAC3B1F,EAAQnC,MAAM8H,QAAU,QACxB,IAAIC,EAAgB5F,EAAQhB,aAG5B,OAFAgB,EAAQnC,MAAM8H,QAAU,GACxB3F,EAAQnC,MAAM6H,WAAa,GACpBE,EAGT,OAAO,IAER,CACDrK,IAAK,6BACLhC,MAAO,SAAoCyG,GACzC,GAAIA,EAAS,CACXA,EAAQnC,MAAM6H,WAAa,SAC3B1F,EAAQnC,MAAM8H,QAAU,QACxB,IAAIE,EAAe7F,EAAQpC,YAG3B,OAFAoC,EAAQnC,MAAM8H,QAAU,GACxB3F,EAAQnC,MAAM6H,WAAa,GACpBG,EAGT,OAAO,IAER,CACDtK,IAAK,6BACLhC,MAAO,SAAoCyG,GACzC,IAAI8F,EAAa,GAWjB,OATI9F,IACFA,EAAQnC,MAAM6H,WAAa,SAC3B1F,EAAQnC,MAAM8H,QAAU,QACxBG,EAAWnI,MAAQqC,EAAQpC,YAC3BkI,EAAW/G,OAASiB,EAAQhB,aAC5BgB,EAAQnC,MAAM8H,QAAU,GACxB3F,EAAQnC,MAAM6H,WAAa,IAGtBI,IAER,CACDvK,IAAK,SACLhC,MAAO,SAAgByG,EAAS+F,GAC9B,GAAI/F,EAAS,CACXA,EAAQnC,MAAMmI,QAAU,EACxB,IAAIC,GAAQ,IAAIC,KACZF,EAAU,GAEH,SAASG,IAClBH,GAAWhG,EAAQnC,MAAMmI,UAAW,IAAIE,MAAOE,UAAYH,GAAQF,EACnE/F,EAAQnC,MAAMmI,QAAUA,EACxBC,GAAQ,IAAIC,MAEPF,EAAU,IACb3H,OAAOgI,uBAAyBA,sBAAsBF,IAASG,WAAWH,EAAM,KAIpFA,MAGH,CACD5K,IAAK,UACLhC,MAAO,SAAiByG,EAAS+F,GAC/B,GAAI/F,EACF,IAAIgG,EAAU,EAEVO,EADW,GACMR,EACjBS,EAASC,aAAY,YACvBT,GAAWO,IAEI,IACbP,EAAU,EACVU,cAAcF,IAGhBxG,EAAQnC,MAAMmI,QAAUA,IAVX,MAclB,CACDzK,IAAK,eACLhC,MAAO,WACL,OAAOoN,UAAUC,YAElB,CACDrL,IAAK,QACLhC,MAAO,WACL,MAAO,mBAAmBa,KAAKuM,UAAUC,aAAevI,OAAM,WAE/D,CACD9C,IAAK,YACLhC,MAAO,WACL,MAAO,aAAaa,KAAKuM,UAAUC,aAEpC,CACDrL,IAAK,gBACLhC,MAAO,WACL,MAAO,iBAAkB8E,QAAUsI,UAAUE,eAAiB,GAAKF,UAAUG,iBAAmB,IAEjG,CACDvL,IAAK,aACLhC,MAAO,SAAoBkB,GACzB,SAAUA,GAAOA,EAAIR,aAAeQ,EAAItB,MAAQsB,EAAIsM,SAErD,CACDxL,IAAK,cACLhC,MAAO,SAAqByG,EAAShE,GACnC,GAAIyB,KAAKuJ,UAAUhL,GAASA,EAAOiL,YAAYjH,OAAc,KAAIhE,EAAO0B,KAAM1B,EAAO0B,GAAGwJ,cAAiE,MAAM,IAAIC,MAAM,iBAAmBnL,EAAS,OAASgE,GAAvGhE,EAAO0B,GAAGwJ,cAAcD,YAAYjH,MAE5I,CACDzE,IAAK,cACLhC,MAAO,SAAqByG,EAAShE,GACnC,GAAIyB,KAAKuJ,UAAUhL,GAASA,EAAOoL,YAAYpH,OAAc,KAAIhE,EAAO0B,KAAM1B,EAAO0B,GAAGwJ,cAAiE,MAAM,IAAIC,MAAM,iBAAmBnH,EAAU,SAAWhE,GAA1GA,EAAO0B,GAAGwJ,cAAcE,YAAYpH,MAE5I,CACDzE,IAAK,YACLhC,MAAO,SAAmBkB,GACxB,MAAqF,YAAtD,qBAAhB4M,YAA8B,YAAc7M,EAAQ6M,cAA6B5M,aAAe4M,YAAc5M,GAAwB,WAAjBD,EAAQC,IAA6B,OAARA,GAAiC,IAAjBA,EAAI4F,UAA0C,kBAAjB5F,EAAI6M,WAEnN,CACD/L,IAAK,eACLhC,MAAO,SAAsBgO,EAAWC,GACtC,IAAIC,EAAiB3J,iBAAiByJ,GAAWrC,iBAAiB,kBAC9DwC,EAAYD,EAAiB1J,WAAW0J,GAAkB,EAC1DE,EAAkB7J,iBAAiByJ,GAAWrC,iBAAiB,cAC/DhE,EAAayG,EAAkB5J,WAAW4J,GAAmB,EAC7DC,EAAgBL,EAAU3H,wBAE1BiI,EADWL,EAAK5H,wBACEC,IAAM1B,SAAS2B,KAAKvB,WAAaqJ,EAAc/H,IAAM1B,SAAS2B,KAAKvB,WAAamJ,EAAYxG,EAC9G4G,EAASP,EAAUhJ,UACnBqH,EAAgB2B,EAAUpI,aAC1B4I,EAAatK,KAAKwG,eAAeuD,GAEjCK,EAAS,EACXN,EAAUhJ,UAAYuJ,EAASD,EACtBA,EAASE,EAAanC,IAC/B2B,EAAUhJ,UAAYuJ,EAASD,EAASjC,EAAgBmC,KAG3D,CACDxM,IAAK,iBACLhC,MAAO,WACL,GAAI8E,OAAO2J,aACL3J,OAAO2J,eAAeC,MACxB5J,OAAO2J,eAAeC,QACb5J,OAAO2J,eAAeE,iBAAmB7J,OAAO2J,eAAeG,WAAa,GAAK9J,OAAO2J,eAAeI,WAAW,GAAGC,iBAAiBjQ,OAAS,GACxJiG,OAAO2J,eAAeE,uBAEnB,GAAI/J,SAAQ,WAAiBA,SAAQ,UAAc8J,MACxD,IACE9J,SAAQ,UAAc8J,QACtB,MAAOK,OAIZ,CACD/M,IAAK,0BACLhC,MAAO,SAAiCmE,GACtC,GAAIA,EAAI,CACN,IAAIG,EAAQC,iBAAiBJ,GAC7B,OAAOA,EAAGE,YAAcF,EAAG+B,YAAc1B,WAAWF,EAAMyD,iBAAmBvD,WAAWF,EAAM0D,kBAE9F,GAAqC,MAAjC9D,KAAK8K,yBAAkC,OAAO9K,KAAK8K,yBACvD,IAAIC,EAAYrK,SAASsK,cAAc,OACvCD,EAAUxN,UAAY,sBACtBmD,SAAS2B,KAAKmH,YAAYuB,GAC1B,IAAIE,EAAiBF,EAAU5K,YAAc4K,EAAU/I,YAGvD,OAFAtB,SAAS2B,KAAKsH,YAAYoB,GAC1B/K,KAAK8K,yBAA2BG,EACzBA,IAGV,CACDnN,IAAK,aACLhC,MAAO,WACL,IAAKkE,KAAKkL,QAAS,CACjB,IAAIC,EAAUnL,KAAKoL,mBACnBpL,KAAKkL,QAAU,GAEXC,EAAQD,UACVlL,KAAKkL,QAAQC,EAAQD,UAAW,EAChClL,KAAKkL,QAAL,QAA0BC,EAAQE,SAGhCrL,KAAKkL,QAAL,OACFlL,KAAKkL,QAAL,QAAyB,EAChBlL,KAAKkL,QAAL,SACTlL,KAAKkL,QAAL,QAAyB,GAI7B,OAAOlL,KAAKkL,UAEb,CACDpN,IAAK,mBACLhC,MAAO,WACL,IAAIwP,EAAKpC,UAAUC,UAAUoC,cACzBC,EAAQ,sBAAsBC,KAAKH,IAAO,sBAAsBG,KAAKH,IAAO,mCAAmCG,KAAKH,IAAO,kBAAkBG,KAAKH,IAAOA,EAAGI,QAAQ,cAAgB,GAAK,gCAAgCD,KAAKH,IAAO,GACzO,MAAO,CACLJ,QAASM,EAAM,IAAM,GACrBH,QAASG,EAAM,IAAM,OAGxB,CACD1N,IAAK,YACLhC,MAAO,SAAmByG,GACxB,OAAOA,GAAmC,MAAxBA,EAAQ+B,eAE3B,CACDxG,IAAK,uBACLhC,MAAO,SAA8ByG,GACnC,IAIIoJ,EAHAC,EAA2B,GAE3BC,EAAa5M,EAHOc,EAAW+L,KAAKvJ,EAAS,wuBAMjD,IACE,IAAKsJ,EAAWtM,MAAOoM,EAASE,EAAW1P,KAAKP,MAAO,CACrD,IAAImQ,EAAmBJ,EAAO7P,MACqB,SAA/CuE,iBAAiB0L,GAAkB7D,SAAwE,WAAlD7H,iBAAiB0L,GAAkB9D,YAAyB2D,EAAyB/P,KAAKkQ,IAEzJ,MAAOhQ,GACP8P,EAAWrM,EAAEzD,GANf,QAQE8P,EAAWpM,IAGb,OAAOmM,IAER,CACD9N,IAAK,2BACLhC,MAAO,SAAkCyG,GACvC,IAAIyJ,EAAoBjM,EAAWkM,qBAAqB1J,GACxD,OAAOyJ,EAAkBrR,OAAS,EAAIqR,EAAkB,GAAK,OAE9D,CACDlO,IAAK,0BACLhC,MAAO,SAAiCyG,GACtC,IAAIyJ,EAAoBjM,EAAWkM,qBAAqB1J,GACxD,OAAOyJ,EAAkBrR,OAAS,EAAIqR,EAAkBA,EAAkBrR,OAAS,GAAK,OAEzF,CACDmD,IAAK,kBACLhC,MAAO,SAAyBmE,EAAIiM,EAAUC,EAAUC,GACtD,GAAInM,EAAI,CACN,IAAIG,EAAQC,iBAAiBJ,GACzBoM,EAAW3L,SAASsK,cAAc,OACtCqB,EAASjM,MAAM8F,SAAW,WAC1BmG,EAASjM,MAAMgC,IAAM,MACrBiK,EAASjM,MAAMkC,KAAO,MACtB+J,EAASjM,MAAM6H,WAAa,SAC5BoE,EAASjM,MAAMkM,cAAgB,OAC/BD,EAASjM,MAAMmM,SAAWnM,EAAMmM,SAChCF,EAASjM,MAAMF,MAAQE,EAAMF,MAC7BmM,EAASjM,MAAMkB,OAASlB,EAAMkB,OAC9B+K,EAASjM,MAAMoM,QAAUpM,EAAMoM,QAC/BH,EAASjM,MAAMqM,OAASrM,EAAMqM,OAC9BJ,EAASjM,MAAMsM,aAAetM,EAAMsM,aACpCL,EAASjM,MAAMuM,WAAavM,EAAMuM,WAClCN,EAASjM,MAAMwM,WAAaxM,EAAMwM,WAClCP,EAASQ,UAAYX,EAAS/I,QAAQ,cAAe,UACrD,IAAI2J,EAAYpM,SAASsK,cAAc,QACvC8B,EAAUC,YAAcX,EACxBC,EAAS7C,YAAYsD,GACrB,IAAIE,EAAOtM,SAASuM,eAAed,GACnCE,EAAS7C,YAAYwD,GACrBtM,SAAS2B,KAAKmH,YAAY6C,GAC1B,IAAIa,EAAaJ,EAAUI,WACvBC,EAAYL,EAAUK,UACtBzL,EAAeoL,EAAUpL,aAE7B,OADAhB,SAAS2B,KAAKsH,YAAY0C,GACnB,CACL/J,KAAM8C,KAAKgI,IAAIF,EAAajN,EAAGgB,YAC/BmB,IAAKgD,KAAKgI,IAAID,EAAYlN,EAAGa,WAAaY,GAI9C,MAAO,CACLU,IAAK,OACLE,KAAM,YAKLvC,EApzBqB,GAuzB1BsN,EAA6C,WAC/C,SAASA,EAA8B9K,GACrC,IAAI+K,EAAWnQ,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,aAEnFgB,EAAgB6B,KAAMqN,GAEtBrN,KAAKuC,QAAUA,EACfvC,KAAKsN,SAAWA,EA+BlB,OA5BAxO,EAAauO,EAA+B,CAAC,CAC3CvP,IAAK,qBACLhC,MAAO,WACLkE,KAAKmH,kBAAoBpH,EAAWwN,qBAAqBvN,KAAKuC,SAE9D,IAAK,IAAI3H,EAAI,EAAGA,EAAIoF,KAAKmH,kBAAkBxM,OAAQC,IACjDoF,KAAKmH,kBAAkBvM,GAAG4S,iBAAiB,SAAUxN,KAAKsN,YAG7D,CACDxP,IAAK,uBACLhC,MAAO,WACL,GAAIkE,KAAKmH,kBACP,IAAK,IAAIvM,EAAI,EAAGA,EAAIoF,KAAKmH,kBAAkBxM,OAAQC,IACjDoF,KAAKmH,kBAAkBvM,GAAG6S,oBAAoB,SAAUzN,KAAKsN,YAIlE,CACDxP,IAAK,UACLhC,MAAO,WACLkE,KAAK0N,uBACL1N,KAAKuC,QAAU,KACfvC,KAAKsN,SAAW,KAChBtN,KAAKmH,kBAAoB,SAItBkG,EAtCwC,GA8DjD,IAAIM,EAA2B,WAC7B,SAASA,IACPxP,EAAgB6B,KAAM2N,GAuKxB,OApKA7O,EAAa6O,EAAa,KAAM,CAAC,CAC/B7P,IAAK,SACLhC,MAAO,SAAgB8R,EAAMC,EAAMC,GACjC,OAAIA,GAASF,GAA0B,WAAlB7Q,EAAQ6Q,IAAsBC,GAA0B,WAAlB9Q,EAAQ8Q,GAA2B7N,KAAK+N,iBAAiBH,EAAME,KAAW9N,KAAK+N,iBAAiBF,EAAMC,GAAmB9N,KAAKgO,WAAWJ,EAAMC,KAE3M,CACD/P,IAAK,aACLhC,MAAO,SAAoBmS,EAAGC,GAC5B,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAmB,UAAdnR,EAAQkR,IAAgC,UAAdlR,EAAQmR,GAAgB,CAC9D,IAEItT,EACAD,EACAmD,EAJAqQ,EAAOrT,MAAME,QAAQiT,GACrBG,EAAOtT,MAAME,QAAQkT,GAKzB,GAAIC,GAAQC,EAAM,CAEhB,IADAzT,EAASsT,EAAEtT,UACIuT,EAAEvT,OAAQ,OAAO,EAEhC,IAAKC,EAAID,EAAgB,IAARC,KACf,IAAKoF,KAAKgO,WAAWC,EAAErT,GAAIsT,EAAEtT,IAAK,OAAO,EAG3C,OAAO,EAGT,GAAIuT,IAASC,EAAM,OAAO,EAC1B,IAAIC,EAAQJ,aAAaxF,KACrB6F,EAAQJ,aAAazF,KACzB,GAAI4F,IAAUC,EAAO,OAAO,EAC5B,GAAID,GAASC,EAAO,OAAOL,EAAEtF,YAAcuF,EAAEvF,UAC7C,IAAI4F,EAAUN,aAAa7K,OACvBoL,EAAUN,aAAa9K,OAC3B,GAAImL,IAAYC,EAAS,OAAO,EAChC,GAAID,GAAWC,EAAS,OAAOP,EAAE3R,aAAe4R,EAAE5R,WAClD,IAAImS,EAAOrS,OAAOqS,KAAKR,GAEvB,IADAtT,EAAS8T,EAAK9T,UACCyB,OAAOqS,KAAKP,GAAGvT,OAAQ,OAAO,EAE7C,IAAKC,EAAID,EAAgB,IAARC,KACf,IAAKwB,OAAOC,UAAUqS,eAAehT,KAAKwS,EAAGO,EAAK7T,IAAK,OAAO,EAGhE,IAAKA,EAAID,EAAgB,IAARC,KAEf,GADAkD,EAAM2Q,EAAK7T,IACNoF,KAAKgO,WAAWC,EAAEnQ,GAAMoQ,EAAEpQ,IAAO,OAAO,EAG/C,OAAO,EAKT,OAAOmQ,IAAMA,GAAKC,IAAMA,IAEzB,CACDpQ,IAAK,mBACLhC,MAAO,SAA0B6S,EAAMb,GACrC,GAAIa,GAAQvS,OAAOqS,KAAKE,GAAMhU,QAAUmT,EAAO,CAC7C,GAAI9N,KAAK+G,WAAW+G,GAClB,OAAOA,EAAMa,GACR,IAA4B,IAAxBb,EAAMpC,QAAQ,KACvB,OAAOiD,EAAKb,GAKZ,IAHA,IAAIc,EAASd,EAAM/K,MAAM,KACrBjH,EAAQ6S,EAEH/T,EAAI,EAAGF,EAAMkU,EAAOjU,OAAQC,EAAIF,IAAOE,EAAG,CACjD,GAAa,MAATkB,EACF,OAAO,KAGTA,EAAQA,EAAM8S,EAAOhU,IAGvB,OAAOkB,EAGT,OAAO,OAGV,CACDgC,IAAK,aACLhC,MAAO,SAAoBkB,GACzB,SAAUA,GAAOA,EAAIR,aAAeQ,EAAItB,MAAQsB,EAAIsM,SAErD,CACDxL,IAAK,eACLhC,MAAO,SAAsB8R,EAAMC,GACjC,OAAKD,GAASC,EAIPzR,OAAOqS,KAAKb,GAAM5P,QAAO,SAAUF,GACxC,OAAQ+P,EAAKa,eAAe5Q,MAC3B+Q,QAAO,SAAUC,EAAQC,GAE1B,OADAD,EAAOC,GAAWnB,EAAKmB,GAChBD,IACN,IARM,KAUV,CACDhR,IAAK,eACLhC,MAAO,SAAsBA,EAAOY,EAAMsS,GACxC,IAAIzQ,EAEJ,GAAIzC,GAASY,IAASsS,EAAI,CACxB,GAAIA,GAAMlT,EAAMnB,OAGd,IAFA4D,EAASyQ,EAAKlT,EAAMnB,OAEF,EAAX4D,KACLzC,EAAMD,UAAK4J,GAIf3J,EAAMmT,OAAOD,EAAI,EAAGlT,EAAMmT,OAAOvS,EAAM,GAAG,OAG7C,CACDoB,IAAK,kBACLhC,MAAO,SAAyBA,EAAOoT,EAAMC,GAC3C,IAAI5J,EAAQvF,KAEZ,OAAIkP,EACKC,EAAUD,EAAKE,WAAU,SAAUrF,GACxC,OAAOxE,EAAM8J,OAAOtF,EAAMjO,EAAOqT,MAC9BD,EAAKE,WAAU,SAAUrF,GAC5B,OAAOA,IAASjO,MAIZ,IAET,CACDgC,IAAK,gBACLhC,MAAO,SAAuBkB,GAC5B,IAAK,IAAIE,EAAOC,UAAUxC,OAAQ2U,EAAS,IAAIxU,MAAMoC,EAAO,EAAIA,EAAO,EAAI,GAAIG,EAAO,EAAGA,EAAOH,EAAMG,IACpGiS,EAAOjS,EAAO,GAAKF,UAAUE,GAG/B,OAAO2C,KAAK+G,WAAW/J,GAAOA,EAAIsM,WAAM,EAAQgG,GAAUtS,IAE3D,CACDc,IAAK,gBACLhC,MAAO,SAAuByT,GAK5B,OAJIA,GAAOA,EAAItJ,OAAO,iBAAmB,IACvCsJ,EAAMA,EAAIpM,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,MAAMA,QAAQ,UAAW,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,mBAAoB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,MAAMA,QAAQ,UAAW,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,mBAAoB,KAAKA,QAAQ,eAAgB,KAAKA,QAAQ,UAAW,KAAKA,QAAQ,cAAe,MAGxjBoM,IAER,CACDzR,IAAK,UACLhC,MAAO,SAAiBA,GACtB,OAAiB,OAAVA,QAA4B2J,IAAV3J,GAAiC,KAAVA,GAAgBhB,MAAME,QAAQc,IAA2B,IAAjBA,EAAMnB,QAAmC,WAAnBoC,EAAQjB,IAAqD,IAA9BM,OAAOqS,KAAK3S,GAAOnB,SAEjK,CACDmD,IAAK,aACLhC,MAAO,SAAoBA,GACzB,OAAQkE,KAAKwP,QAAQ1T,OAIlB6R,EAzKsB,GA4K/B,SAAS8B,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,IAAI+U,EAA2B,WAC7B,SAASA,IACPzR,EAAgB6B,KAAM4P,GA6LxB,OA1LA9Q,EAAa8Q,EAAa,KAAM,CAAC,CAC/B9R,IAAK,SACLhC,MAAO,SAAgBA,EAAO8S,EAAQiB,EAAaC,EAAiBC,GAClE,IAAIC,EAAgB,GAChBC,EAAatC,EAAYuC,cAAcL,GAAaM,kBAAkBJ,GAE1E,GAAIjU,EAAO,CACT,IACIsL,EADAM,EAAY+H,EAA2B3T,GAG3C,IACE,IAAK4L,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAGIkM,EAHAiC,EAAO3C,EAAMtL,MAEbiM,EAAa0H,EAA2Bb,GAG5C,IACE,IAAK7G,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAIkS,EAAQhG,EAAOhM,MACfsU,EAAazC,EAAYuC,cAAcG,OAAO1C,EAAYI,iBAAiBhE,EAAM+D,KAASqC,kBAAkBJ,GAEhH,GAAIH,EAAYE,GAAiBM,EAAYH,EAAYF,GAAe,CACtEC,EAAcnU,KAAKkO,GACnB,QAGJ,MAAOhO,GACPgM,EAAWvI,EAAEzD,GAXf,QAaEgM,EAAWtI,MAGf,MAAO1D,GACP2L,EAAUlI,EAAEzD,GAxBd,QA0BE2L,EAAUjI,KAId,OAAOuQ,IAER,CACDlS,IAAK,aACLhC,MAAO,SAAoBA,EAAOkC,EAAQ+R,GACxC,QAAetK,IAAXzH,GAAmC,OAAXA,GAAqC,KAAlBA,EAAOsS,OACpD,OAAO,EAGT,QAAc7K,IAAV3J,GAAiC,OAAVA,EACzB,OAAO,EAGT,IAAI+T,EAAclC,EAAYuC,cAAclS,EAAO1B,YAAY6T,kBAAkBJ,GAEjF,OADkBpC,EAAYuC,cAAcpU,EAAMQ,YAAY6T,kBAAkBJ,GAC7DxT,MAAM,EAAGsT,EAAYlV,UAAYkV,IAErD,CACD/R,IAAK,WACLhC,MAAO,SAAkBA,EAAOkC,EAAQ+R,GACtC,QAAetK,IAAXzH,GAAmC,OAAXA,GAAqC,kBAAXA,GAAyC,KAAlBA,EAAOsS,OAClF,OAAO,EAGT,QAAc7K,IAAV3J,GAAiC,OAAVA,EACzB,OAAO,EAGT,IAAI+T,EAAclC,EAAYuC,cAAclS,EAAO1B,YAAY6T,kBAAkBJ,GAEjF,OAA6C,IAD3BpC,EAAYuC,cAAcpU,EAAMQ,YAAY6T,kBAAkBJ,GAC7DrE,QAAQmE,KAE5B,CACD/R,IAAK,WACLhC,MAAO,SAAkBA,EAAOkC,EAAQ+R,GACtC,QAAetK,IAAXzH,GAAmC,OAAXA,GAAqC,KAAlBA,EAAOsS,OACpD,OAAO,EAGT,QAAc7K,IAAV3J,GAAiC,OAAVA,EACzB,OAAO,EAGT,IAAI+T,EAAclC,EAAYuC,cAAclS,EAAO1B,YAAY6T,kBAAkBJ,GAC7EQ,EAAc5C,EAAYuC,cAAcpU,EAAMQ,YAAY6T,kBAAkBJ,GAChF,OAAsF,IAA/EQ,EAAY7E,QAAQmE,EAAaU,EAAY5V,OAASkV,EAAYlV,UAE1E,CACDmD,IAAK,SACLhC,MAAO,SAAgBA,EAAOkC,EAAQ+R,GACpC,YAAetK,IAAXzH,GAAmC,OAAXA,GAAqC,kBAAXA,GAAyC,KAAlBA,EAAOsS,aAItE7K,IAAV3J,GAAiC,OAAVA,IAIvBA,EAAM6M,SAAW3K,EAAO2K,QAAgB7M,EAAM6M,YAAc3K,EAAO2K,UAAsBgF,EAAYuC,cAAcpU,EAAMQ,YAAY6T,kBAAkBJ,KAAkBpC,EAAYuC,cAAclS,EAAO1B,YAAY6T,kBAAkBJ,MAE7O,CACDjS,IAAK,YACLhC,MAAO,SAAmBA,EAAOkC,EAAQ+R,GACvC,YAAetK,IAAXzH,GAAmC,OAAXA,IAAqC,kBAAXA,GAAyC,KAAlBA,EAAOsS,eAItE7K,IAAV3J,GAAiC,OAAVA,IAIvBA,EAAM6M,SAAW3K,EAAO2K,QAAgB7M,EAAM6M,YAAc3K,EAAO2K,UAAsBgF,EAAYuC,cAAcpU,EAAMQ,YAAY6T,kBAAkBJ,KAAkBpC,EAAYuC,cAAclS,EAAO1B,YAAY6T,kBAAkBJ,OAE7O,CACDjS,IAAK,KACLhC,MAAO,SAAaA,EAAOkC,EAAQ+R,GACjC,QAAetK,IAAXzH,GAAmC,OAAXA,GAAqC,IAAlBA,EAAOrD,OACpD,OAAO,EAGT,QAAc8K,IAAV3J,GAAiC,OAAVA,EACzB,OAAO,EAGT,IAAK,IAAIlB,EAAI,EAAGA,EAAIoD,EAAOrD,OAAQC,IACjC,GAAI+S,EAAY0B,OAAOvT,EAAOkC,EAAOpD,IACnC,OAAO,EAIX,OAAO,IAER,CACDkD,IAAK,KACLhC,MAAO,SAAYA,EAAOkC,EAAQ+R,GAChC,cAAetK,IAAXzH,GAAmC,OAAXA,GAAmBA,EAAOsS,MAAiC,IAAzBtS,EAAOsS,OAAO3V,cAI9D8K,IAAV3J,GAAiC,OAAVA,IAIvBA,EAAM6M,SAAW3K,EAAO2K,QAAgB7M,EAAM6M,UAAY3K,EAAO2K,UAAsB7M,EAAQwE,WAAWtC,MAE/G,CACDF,IAAK,MACLhC,MAAO,SAAaA,EAAOkC,EAAQ+R,GACjC,cAAetK,IAAXzH,GAAmC,OAAXA,GAAmBA,EAAOsS,MAAiC,IAAzBtS,EAAOsS,OAAO3V,cAI9D8K,IAAV3J,GAAiC,OAAVA,IAIvBA,EAAM6M,SAAW3K,EAAO2K,QAAgB7M,EAAM6M,WAAa3K,EAAO2K,UAAsB7M,GAASwE,WAAWtC,MAEjH,CACDF,IAAK,KACLhC,MAAO,SAAYA,EAAOkC,EAAQ+R,GAChC,cAAetK,IAAXzH,GAAmC,OAAXA,GAAmBA,EAAOsS,MAAiC,IAAzBtS,EAAOsS,OAAO3V,cAI9D8K,IAAV3J,GAAiC,OAAVA,IAIvBA,EAAM6M,SAAW3K,EAAO2K,QAAgB7M,EAAM6M,UAAY3K,EAAO2K,UAAsB7M,EAAQwE,WAAWtC,MAE/G,CACDF,IAAK,MACLhC,MAAO,SAAaA,EAAOkC,EAAQ+R,GACjC,cAAetK,IAAXzH,GAAmC,OAAXA,GAAmBA,EAAOsS,MAAiC,IAAzBtS,EAAOsS,OAAO3V,cAI9D8K,IAAV3J,GAAiC,OAAVA,IAIvBA,EAAM6M,SAAW3K,EAAO2K,QAAgB7M,EAAM6M,WAAa3K,EAAO2K,UAAsB7M,GAASwE,WAAWtC,QAI7G4R,EA/LsB,GAkM/B,SAASY,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASyT,EAAUC,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuC,EAAgBzS,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAK6V,EAAUrU,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmBR,EAAUrU,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EACnhB,SAAS8S,EAAKpR,EAAIqR,GAChB,IAYIC,EAAOC,EAAiB9W,EAAK+W,EAAiBC,EAAMC,EAAeC,EAAwBC,EAAQC,EAAWC,EAAgBC,EAAQC,EAD1IX,EAAUN,EAAgBA,EAAgB,GAXrB,CACnBK,KAAM,KACNa,SAAU,IACVC,WAAW,EACXC,QAAQ,EACRC,UAAU,EACVC,WAAY,KACZC,SAAU,KACVC,QAAS,KACTC,OAAQ,OAEqDnB,GAG/D,IAAIoB,EAAQ,SAAeC,EAAOnK,GAChC,IAAIoK,EAAOC,EAAOC,EAElB,GAAK7S,EAAGqE,cAAgBrE,IAAOS,SAASqS,cAIxC,MAAqB,kBAAVJ,GAcL1S,EAAG+S,mBACLH,EAAQ5S,EAAGgT,eACXH,EAAM7S,EAAGiT,cACAxS,SAAQ,WAAiBA,SAAQ,UAAcyS,cAGxDL,GADAD,EAAQ,GADRD,EAAQlS,SAAQ,UAAcyS,eACZC,YAAYC,UAAU,aAAc,MACxCT,EAAM5F,KAAKrS,QAGpB,CACLkY,MAAOA,EACPC,IAAKA,KAxBPD,EAAQF,EACRG,EAAsB,kBAATtK,EAAoBA,EAAOqK,OAEpC5S,EAAG+S,kBACL/S,EAAG+S,kBAAkBH,EAAOC,GACnB7S,EAAE,mBACX2S,EAAQ3S,EAAE,mBACJqT,UAAS,GACfV,EAAMW,QAAQ,YAAaT,GAC3BF,EAAMS,UAAU,YAAaR,GAC7BD,EAAMY,aAmBRC,EAAc,WAChB,IAAK,IAAI7Y,EAAI6W,EAAiB7W,GAAKgX,EAAwBhX,IACzD,GAAI2W,EAAM3W,IAAMoX,EAAOpX,KAAO8Y,EAAe9Y,GAC3C,OAAO,EAIX,OAAO,GAGL8Y,EAAiB,SAAwB9Y,GAC3C,OAAIA,EAAI0W,EAAQY,SAASvX,OAChB2W,EAAQY,SAASyB,OAAO/Y,GAG1B0W,EAAQY,SAASyB,OAAO,IAG7BC,EAAW,WACb,OAAOtC,EAAQc,OAASyB,IAAqB5T,GAAMA,EAAGnE,OAGpDgY,EAAW,SAAkBC,GAC/B,OAASA,EAAMrZ,IAAQ6W,EAAMwC,KAG7B,OAAOA,GAULC,EAAS,SAAgBnB,EAAOC,GAClC,IAAIlY,EAAGqZ,EAEP,KAAIpB,EAAQ,GAAZ,CAIA,IAAKjY,EAAIiY,EAAOoB,EAAIH,EAAShB,GAAMlY,EAAIF,EAAKE,IAC1C,GAAI2W,EAAM3W,GAAI,CACZ,KAAIqZ,EAAIvZ,GAAO6W,EAAM3W,GAAG+B,KAAKqV,EAAOiC,KAIlC,MAHAjC,EAAOpX,GAAKoX,EAAOiC,GACnBjC,EAAOiC,GAAKP,EAAeO,GAK7BA,EAAIH,EAASG,GAIjBC,IACAxB,EAAMtN,KAAKC,IAAIoM,EAAiBoB,MA0D9BJ,EAAS,SAAgBjT,GAQ3B,GAPA2U,IACAC,EAAY5U,GAER8R,EAAQmB,QACVnB,EAAQmB,OAAOjT,GAGbS,EAAGnE,QAAUgW,EAAW,CAC1B,IAAIuC,EAAQ3T,SAAS4T,YAAY,cACjCD,EAAME,UAAU,UAAU,GAAM,GAChCtU,EAAGuU,cAAcH,KAIjBI,EAAY,SAAmBjV,GACjC,IAAI8R,EAAQe,SAAZ,CAIA,IACI0B,EACAlB,EACAC,EAHA4B,EAAIlV,EAAEmV,OAASnV,EAAEoV,QAIjBC,EAAS,UAAUlY,KAAKoD,EAAW+U,gBACvCjD,EAAS5R,EAAGnE,MAEF,IAAN4Y,GAAiB,KAANA,GAAYG,GAAgB,MAANH,GAEnC7B,GADAkB,EAAMrB,KACMG,OACZC,EAAMiB,EAAIjB,KAEAD,IAAU,IAClBA,EAAc,KAAN6B,EAvHC,SAAkBX,GAC/B,OAASA,GAAO,IAAMxC,EAAMwC,KAG5B,OAAOA,EAmHgBgB,CAASlC,GAASC,EAAMgB,EAASjB,EAAQ,GAC5DC,EAAY,KAAN4B,EAAWZ,EAAShB,GAAOA,GAGnCkC,EAAYnC,EAAOC,GACnBkB,EAAOnB,EAAOC,EAAM,GACpBsB,EAAY5U,GACZA,EAAEyV,kBACa,KAANP,GAETjC,EAAOjT,GACP4U,EAAY5U,IACG,KAANkV,IAETzU,EAAGnE,MAAQgW,EACXY,EAAM,EAAGyB,KACTC,EAAY5U,GACZA,EAAEyV,oBAIFC,EAAa,SAAoB1V,GACnC,IAAI8R,EAAQe,SAAZ,CAIA,IAEI8C,EACAlX,EACAtC,EACAyZ,EALAV,EAAIlV,EAAEmV,OAASnV,EAAEoV,QACjBb,EAAMrB,IAMV,KAAIlT,EAAE6V,SAAW7V,EAAE8V,QAAU9V,EAAE+V,SAAWb,EAAI,IAA9C,CAGO,GAAIA,GAAW,KAANA,EAAU,CAQxB,GAPIX,EAAIjB,IAAMiB,EAAIlB,QAAU,IAC1BmC,EAAYjB,EAAIlB,MAAOkB,EAAIjB,KAC3BkB,EAAOD,EAAIlB,MAAOkB,EAAIjB,IAAM,KAG9BqC,EAAIrB,EAASC,EAAIlB,MAAQ,IAEjBnY,IACNuD,EAAIoS,OAAOmF,aAAad,GAEpBnD,EAAM4D,GAAGxY,KAAKsB,IAAI,CAMpB,GA7IK,SAAgB8V,GAC3B,IAAInZ,EAAGqD,EAAGgW,EAAGwB,EAEb,IAAK7a,EAAImZ,EAAK9V,EAAIyV,EAAeK,GAAMnZ,EAAIF,EAAKE,IAC9C,GAAI2W,EAAM3W,GAAI,CAKZ,GAJAqZ,EAAIH,EAASlZ,GACb6a,EAAIzD,EAAOpX,GACXoX,EAAOpX,GAAKqD,IAERgW,EAAIvZ,GAAO6W,EAAM0C,GAAGtX,KAAK8Y,IAG3B,MAFAxX,EAAIwX,GA8HJC,CAAOP,GACPnD,EAAOmD,GAAKlX,EACZiW,IACAvY,EAAOmY,EAASqB,GAEZ,WAAWxY,KAAKoD,EAAW+U,gBAAiB,CAM9CjM,YAJY,WACV6J,EAAM/W,KAGU,QAElB+W,EAAM/W,GAGJoY,EAAIlB,OAASjB,IACfwD,EAAY3B,KAKlBjU,EAAEyV,iBAGJb,EAAY5U,GAER8R,EAAQgB,YAAc8C,GACxB9D,EAAQgB,WAAW,CACjBqD,cAAenW,EACf1D,MAAO8X,SAKToB,EAAc,SAAqBY,EAAO9C,GAC5C,IAAIlY,EAEJ,IAAKA,EAAIgb,EAAOhb,EAAIkY,GAAOlY,EAAIF,EAAKE,IAC9B2W,EAAM3W,KACRoX,EAAOpX,GAAK8Y,EAAe9Y,KAK7BsZ,EAAc,WAChBjU,EAAGnE,MAAQkW,EAAO9T,KAAK,KAGrBiW,EAAW,SAAkB0B,GAE/B,IAEIjb,EACAqD,EACA8V,EAJApX,EAAOsD,EAAGnE,MACVga,GAAa,EAKjB,IAAKlb,EAAI,EAAGmZ,EAAM,EAAGnZ,EAAIF,EAAKE,IAC5B,GAAI2W,EAAM3W,GAAI,CAGZ,IAFAoX,EAAOpX,GAAK8Y,EAAe9Y,GAEpBmZ,IAAQpX,EAAKhC,QAGlB,GAFAsD,EAAItB,EAAKgX,OAAOI,EAAM,GAElBxC,EAAM3W,GAAG+B,KAAKsB,GAAI,CACpB+T,EAAOpX,GAAKqD,EACZ6X,EAAYlb,EACZ,MAIJ,GAAImZ,EAAMpX,EAAKhC,OAAQ,CACrBqa,EAAYpa,EAAI,EAAGF,GACnB,YAGEsX,EAAOpX,KAAO+B,EAAKgX,OAAOI,IAC5BA,IAGEnZ,EAAI4W,IACNsE,EAAYlb,GAuBlB,OAlBIib,EACF3B,IACS4B,EAAY,EAAItE,EACrBF,EAAQa,WAAaH,EAAO9T,KAAK,MAAQ+T,GAGvChS,EAAGnE,QAAOmE,EAAGnE,MAAQ,IACzBkZ,EAAY,EAAGta,IAIfwZ,KAGFA,IACAjU,EAAGnE,MAAQmE,EAAGnE,MAAMkK,UAAU,EAAG8P,EAAY,IAGxCtE,EAAkB5W,EAAI6W,GAG3Be,EAAU,SAAiBhT,GAM7B,IAAIuU,EALAzC,EAAQe,WAIZ0D,aAAahE,GAEbD,EAAY7R,EAAGnE,MACfiY,EAAMI,IACNpC,EAAiBlJ,YAAW,WACtB5I,IAAOS,SAASqS,gBAIpBmB,IAEIH,IAAQzC,EAAQD,KAAKlO,QAAQ,IAAK,IAAIxI,OACxC+X,EAAM,EAAGqB,GAETrB,EAAMqB,MAEP,IAECzC,EAAQkB,SACVlB,EAAQkB,QAAQhT,KAIhBwW,EAAU,SAAiB3B,GACzB1C,EA9PmB,SAA4BnS,GACnD,IAAIyW,EAAShW,EAAGnE,MACZiY,EAAMrB,IAEV,GAAIb,GAAUA,EAAOlX,QAAUkX,EAAOlX,OAASsb,EAAOtb,OAAQ,CAI5D,IAFAwZ,GAAS,GAEFJ,EAAIlB,MAAQ,IAAMtB,EAAMwC,EAAIlB,MAAQ,IACzCkB,EAAIlB,QAGN,GAAkB,IAAdkB,EAAIlB,MACN,KAAOkB,EAAIlB,MAAQpB,IAAoBF,EAAMwC,EAAIlB,QAC/CkB,EAAIlB,QAIRH,EAAMqB,EAAIlB,MAAOkB,EAAIlB,WAChB,CAGL,IAFAsB,GAAS,GAEFJ,EAAIlB,MAAQnY,IAAQ6W,EAAMwC,EAAIlB,QACnCkB,EAAIlB,QAGNH,EAAMqB,EAAIlB,MAAOkB,EAAIlB,OAGnBvB,EAAQgB,YAAcmB,KACxBnC,EAAQgB,WAAW,CACjBqD,cAAenW,EACf1D,MAAO8X,MA8NQsC,CAAmB7B,GAAY8B,EAAkB9B,IAGlE8B,EAAoB,SAA2B3W,GACjD,IAAI8R,EAAQe,SAAZ,CAIA,IAAI0B,EAAMI,GAAS,GACnBzB,EAAMqB,GACNK,EAAY5U,GAER8R,EAAQgB,YAAcmB,KACxBnC,EAAQgB,WAAW,CACjBqD,cAAenW,EACf1D,MAAO8X,QAKTC,EAAmB,WAGrB,IAFA,IAAIuC,EAAiB,GAEZxb,EAAI,EAAGA,EAAIoX,EAAOrX,OAAQC,IAAK,CACtC,IAAIqD,EAAI+T,EAAOpX,GAEX2W,EAAM3W,IAAMqD,IAAMyV,EAAe9Y,IACnCwb,EAAeva,KAAKoC,GAIxB,OAAOmY,EAAelY,KAAK,KAGzBkW,EAAc,SAAqB5U,GACrC,GAAI8R,EAAQiB,SAAU,CACpB,IAAI8D,EAAMzC,IAAWzQ,QAAQmO,EAAQY,SAAU,IAC/CZ,EAAQiB,SAAS,CACfoD,cAAenW,EACf1D,MAAOmW,IAAkBoE,EAAMA,EAAM,OAKvCC,EAAa,WACfrW,EAAGuN,iBAAiB,QAASgF,GAC7BvS,EAAGuN,iBAAiB,OAAQiF,GAC5BxS,EAAGuN,iBAAiB,UAAWiH,GAC/BxU,EAAGuN,iBAAiB,WAAY0H,GAChCjV,EAAGuN,iBAAiB,QAASwI,GAC7B/V,EAAGuN,iBAAiB,QAAS2I,IAY3BI,EAAO,WACThF,EAAQ,GACRC,EAAkBF,EAAQD,KAAK1W,OAC/BD,EAAM4W,EAAQD,KAAK1W,OACnB8W,EAAkB,KAClBC,EAAO,CACL,EAAK,QACL,EAAK,WACL,IAAK,eAEP,IAAIpG,EAAKvL,EAAW+U,eACpBnD,EAAgB,UAAUhV,KAAK2O,IAAO,WAAW3O,KAAK2O,GAGtD,IAFA,IAAIkL,EAAalF,EAAQD,KAAKtO,MAAM,IAE3BnI,EAAI,EAAGA,EAAI4b,EAAW7b,OAAQC,IAAK,CAC1C,IAAIqD,EAAIuY,EAAW5b,GAET,MAANqD,GACFvD,IACA8W,EAAkB5W,GACT8W,EAAKzT,IACdsT,EAAM1V,KAAK,IAAIuH,OAAOsO,EAAKzT,KAEH,OAApBwT,IACFA,EAAkBF,EAAM5W,OAAS,GAG/BC,EAAI4W,IACNI,EAAyBL,EAAM5W,OAAS,IAG1C4W,EAAM1V,KAAK,MAIfmW,EAAS,GAET,IAAK,IAAI9W,EAAK,EAAGA,EAAKsb,EAAW7b,OAAQO,IAAM,CAC7C,IAAIub,EAAKD,EAAWtb,GAET,MAAPub,IACE/E,EAAK+E,GAAKzE,EAAOnW,KAAK6X,EAAexY,IAAU8W,EAAOnW,KAAK4a,IAInExE,EAAgBD,EAAO9T,KAAK,KAQ9B,OALI+B,GAAMqR,EAAQD,OAChBkF,IACAD,KAGK,CACLC,KAAMA,EACND,WAAYA,EACZI,aAjEiB,WACjBzW,EAAGwN,oBAAoB,QAAS+E,GAChCvS,EAAGwN,oBAAoB,OAAQgF,GAC/BxS,EAAGwN,oBAAoB,UAAWgH,GAClCxU,EAAGwN,oBAAoB,WAAYyH,GACnCjV,EAAGwN,oBAAoB,QAASuI,GAChC/V,EAAGwN,oBAAoB,QAAS0I,IA4DhC/B,YAAaA,EACbR,SAAUA,GAId,IAAI+C,EAAS,EACb,SAASC,IACP,IAAIC,EAAS1Z,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,SAEjF,OADAwZ,IACO,GAAG5Y,OAAO8Y,GAAQ9Y,OAAO4Y,GAiElC,IAAIG,EA9DJ,WACE,IAAIC,EAAW,GAmBXC,EAAgB,SAAuBlZ,GACzC,OAAOmZ,IAAWC,OAAOpZ,IAAQ,KAO/BqZ,EAAgB,SAAuBrZ,GACzC,IAAIsZ,EAAaja,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EACrF,OAAQ4Z,GAAY,IAAIM,UAAUvL,MAAK,SAAU9O,GAC/C,QAAOia,IAAWK,YAAoBta,EAAIc,MAAQA,MAC9C,CACJA,IAAKA,EACLhC,MAAOsb,IAIX,MAAO,CACLG,IAAK,SAAatX,GAChB,OAAOA,GAAKuX,SAASvX,EAAGG,MAAM8W,OAAQ,KAAW,GAEnDO,IAAK,SAAa3Z,EAAKmC,EAAImX,GACrBnX,IACFA,EAAGG,MAAM8W,OAAS7G,OAzCH,SAAwBvS,EAAKsZ,GAChDA,EAAaA,GAAcJ,EAAclZ,GACzC,IAAI4Z,EAAaP,EAAcrZ,EAAKsZ,GAChCO,EAAYD,EAAW5b,OAAS4b,EAAW5Z,MAAQA,EAAM,EAAIsZ,GAAc,EAK/E,OAJAL,EAASlb,KAAK,CACZiC,IAAKA,EACLhC,MAAO6b,IAEFA,EAiCsBC,CAAe9Z,EAAKsZ,MAGjDS,MAAO,SAAe5X,GAjCL,IAAsBiX,EAkCjCjX,IAlCiCiX,EAmCtBJ,EAAYS,IAAItX,GAlCjC8W,EAAWA,EAAS/Y,QAAO,SAAUhB,GACnC,OAAOA,EAAIlB,QAAUob,KAkCnBjX,EAAGG,MAAM8W,OAAS,KAGtBY,QAAS,SAAiBha,GACxB,OAAOkZ,EAAclZ,IAEvBia,WAAY,SAAoBja,GAC9B,OAjCmB,SAA0BA,GAC/C,OAAOqZ,EAAcrZ,GAAKhC,MAgCjBkc,CAAiBla,KAKZma,GAElB,SAASC,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAASE,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAAS8c,EAAeC,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pga,GAA+B,OAAO,WAAkC,IAAsC1K,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI6K,EAAsB,SAAUC,GAClCpB,EAAUmB,EAAQC,GAElB,IAAIC,EAASd,EAAeY,GAE5B,SAASA,EAAOnb,GACd,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAM2Z,IAEtBpU,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBsb,YAAcvU,EAAMuU,YAAYC,KAAK7B,EAAuB3S,IAC3DA,EAwFT,OArFAzG,EAAa6a,EAAQ,CAAC,CACpB7b,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKga,KAAOha,KAAKga,IAAIC,gBAE7B,CACDnc,IAAK,aACLhC,MAAO,WACDkE,KAAKzB,QACPyB,KAAKzB,OAAOiP,iBAAiB,YAAaxN,KAAK8Z,eAGlD,CACDhc,IAAK,eACLhC,MAAO,WACDkE,KAAKzB,QACPyB,KAAKzB,OAAOkP,oBAAoB,YAAazN,KAAK8Z,eAGrD,CACDhc,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAKrU,KAAKga,KAAoD,SAA7C3Z,iBAAiBL,KAAKga,IAAK,MAAM9R,QAAlD,CAMA,GAFAnI,EAAWma,YAAYla,KAAKga,IAAK,iBAE5Bja,EAAWoa,UAAUna,KAAKga,OAASja,EAAWqa,SAASpa,KAAKga,KAAM,CACrE,IAAIpY,EAAIwD,KAAKC,IAAItF,EAAWoE,cAAcnE,KAAKzB,QAASwB,EAAWyG,eAAexG,KAAKzB,SACvFyB,KAAKga,IAAI5Z,MAAMkB,OAASM,EAAI,KAC5B5B,KAAKga,IAAI5Z,MAAMF,MAAQ0B,EAAI,KAG7B,IAAIwI,EAASrK,EAAWsa,UAAUra,KAAKzB,QACnC4H,EAAIkO,EAAMiG,MAAQlQ,EAAO9H,KAAO5B,SAAS2B,KAAKvB,UAAYf,EAAWqa,SAASpa,KAAKga,KAAO,EAC1F5T,EAAIiO,EAAMkG,MAAQnQ,EAAOhI,IAAM1B,SAAS2B,KAAKpB,WAAalB,EAAWoa,UAAUna,KAAKga,KAAO,EAC/Fha,KAAKga,IAAI5Z,MAAMgC,IAAMgE,EAAI,KACzBpG,KAAKga,IAAI5Z,MAAMkC,KAAO6D,EAAI,KAC1BpG,EAAWya,SAASxa,KAAKga,IAAK,mBAE/B,CACDlc,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7BtU,EAAWma,YAAY7F,EAAMoG,cAAe,kBAE7C,CACD3c,IAAK,oBACLhC,MAAO,WACDkE,KAAKga,MACPha,KAAKzB,OAASyB,KAAK0a,YACnB1a,KAAKsW,gBAGR,CACDxY,IAAK,qBACLhC,MAAO,WACDkE,KAAKga,MAAQha,KAAKzB,SACpByB,KAAKzB,OAASyB,KAAK0a,YACnB1a,KAAKsW,gBAGR,CACDxY,IAAK,uBACLhC,MAAO,WACDkE,KAAKga,MACPha,KAAKzB,OAAS,KACdyB,KAAK0W,kBAGR,CACD5Y,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEb,OAAOiX,IAAW2D,QAAuBC,IAAM7P,cAAc,OAAQ,CACnE8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAOX,IAAM/Z,GAEtB1C,UAAW,QACXwd,eAAgB/a,KAAK+a,qBAKpBpB,EApGiB,CAqGxBqB,aAEEC,EAAyB,WAC3B,SAASA,IACP9c,EAAgB6B,KAAMib,GA4ExB,OAzEAnc,EAAamc,EAAW,KAAM,CAAC,CAC7Bnd,IAAK,gBACLhC,MAIA,SAAuB0D,GACrB,IAAIkV,EAAIlV,EAAEoV,QAEV,OADAF,EAAI3U,EAAWmb,aAAaC,QAASF,EAAUG,YAAY1G,IAAUA,IACzD,IAAMA,GAAK,IAAMA,IAAMuG,EAAUI,KAAKC,QAAU5G,IAAMuG,EAAUI,KAAKE,KAAO7G,IAAMuG,EAAUI,KAAKG,MAE9G,CACD1d,IAAK,eACLhC,MAAO,SAAsB0D,GAC3B,IAAIkV,EAAIlV,EAAEoV,QACV,OAAa,IAANF,GAAiB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYA,GAAK,IAAMA,GAAK,IAAM3U,EAAWmb,aAAaO,QAAUjc,EAAEkc,WAAmB,IAANhH,GAAWA,GAAK,IAAMA,GAAK,IAAMA,GAAK,IAAMA,GAAK,IAAMA,GAAK,IAAMA,GAAK,MAEjN,CACD5W,IAAK,SACLhC,MAAO,SAAgB0D,GACrB,IAAIkV,EAAIlV,EAAEoV,SAAWpV,EAAEmc,SACvB,OAAO5b,EAAWmb,aAAaC,QAASF,EAAUG,YAAY1G,IAAUA,IAEzE,CACD5W,IAAK,cACLhC,MAAO,SAAqB0D,GAC1B,OAAOA,EAAEmc,UAAYnc,EAAEoV,SAAWpV,EAAEmV,QAErC,CACD7W,IAAK,aACLhC,MAAO,SAAoB0D,EAAGoc,EAAWC,GACvC,IAAIA,EAAJ,CAIA,IAAIC,EAAQb,EAAUc,cAAcH,GAAaX,EAAUc,cAAcH,GAAaA,EAClF1Q,EAAUnL,EAAWmb,aAEzB,IAAI1b,EAAE6V,UAAW7V,EAAE8V,OAAnB,CAIA,IAAIZ,EAAI1U,KAAKgc,OAAOxc,GAEpB,IAAI0L,EAAQ+Q,WAAYjc,KAAKkc,cAAc1c,IAAMkV,IAAMuG,EAAUI,KAAKc,WAAazH,IAAMuG,EAAUI,KAAKe,QAAyB,IAAf5c,EAAEmc,UAApH,CAIA,IAAI1d,EAAI+B,KAAKqc,YAAY7c,GACrB8c,EAAKjM,OAAOmF,aAAavX,KAEzBiN,EAAQ+Q,UAAYjc,KAAKuc,aAAa/c,IAAO8c,KAI5CR,EAAMnf,KAAK2f,IACd9c,EAAEyV,uBAGL,CACDnX,IAAK,WACLhC,MAAO,SAAkB0D,EAAGoc,GAC1B,IAAI9f,EAAQ0D,EAAEjB,OAAOzC,MACjB0gB,GAAkB,EAMtB,OAJI1gB,IAAU8f,EAAUjf,KAAKb,KAC3B0gB,GAAkB,GAGbA,MAIJvB,EA9EoB,GA0H7B,SAASwB,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAzCha0B,EAAgByK,EAAW,gBAAiB,CAC1C0B,KAAM,OACNC,IAAK,SACLC,KAAM,SACNC,MAAO,YACPna,IAAK,WACLoa,IAAK,YACLC,MAAO,kBACPC,MAAO,UACPC,SAAU,eAGZ1M,EAAgByK,EAAW,OAAQ,CACjCM,IAAK,EACLD,OAAQ,GACRE,IAAK,GACLW,UAAW,EACXC,OAAQ,KAGV5L,EAAgByK,EAAW,cAAe,CACxC,MAAO,GAEP,MAAO,GAEP,MAAO,GAEP,MAAO,GAEP,MAAO,GAEP,MAAO,GAEP,MAAO,GAEP,MAAO,GAEP,MAAO,KAOT,IAAIkC,EAAsB,SAAUvD,GAClCpB,EAAU2E,EAAQvD,GAElB,IAAIC,EAAS4C,EAAeU,GAE5B,SAASA,EAAO3e,GACd,IAAI+G,EAQJ,OANApH,EAAgB6B,KAAMmd,IAEtB5X,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZC,QAAS7e,EAAM8e,SAEV/X,EAkCT,OA/BAzG,EAAaqe,EAAQ,CAAC,CACpBrf,IAAK,SACLhC,MAAO,WACL,QAA4B,qBAAX8E,SAA0BA,OAAOF,WAAYE,OAAOF,SAASsK,iBAE/E,CACDlN,IAAK,oBACLhC,MAAO,WACDkE,KAAKud,WAAavd,KAAKod,MAAMC,SAC/Brd,KAAKwd,SAAS,CACZH,SAAS,GACRrd,KAAKxB,MAAMif,aAGjB,CACD3f,IAAK,uBACLhC,MAAO,WACLkE,KAAKxB,MAAMkf,aAAe1d,KAAKxB,MAAMkf,gBAEtC,CACD5f,IAAK,SACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM+D,SAAWvC,KAAKod,MAAMC,QAAS,CAC5C,IAAIrZ,EAAWhE,KAAKxB,MAAMwF,UAAYiT,IAAWjT,UAAYtD,SAAS2B,KACtE,MAAoB,SAAb2B,EAAsBhE,KAAKxB,MAAM+D,QAAuBob,IAASC,aAAa5d,KAAKxB,MAAM+D,QAASyB,GAG3G,OAAO,SAIJmZ,EAhDiB,CAiDxBnC,aAUF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,SAASiP,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EACnhB,SAAS0f,EAAIzf,GACX,IAAIwF,EAAWxF,EAAMwF,UAAYtD,SAAS2B,KACtC6b,EAAiBxd,SAASyd,yBAC9Bpe,EAAWyJ,YAAY0U,EAAgBla,GACvCxF,EAAQwf,EAAgBA,EAAgB,GAAIxf,GAAQA,EAAM8S,SAC1D,IAAI8M,EAAyBvD,IAAM7P,cAAcqT,EAAS7f,GAC1Dmf,IAASW,OAAOF,EAAWF,GAE3B,IAAIK,EAAgB,SAAuBC,GACzChgB,EAAQwf,EAAgBA,EAAgB,GAAIxf,GAAQggB,GACpDb,IAASW,OAAqBzD,IAAM4D,aAAaL,EAAW5f,GAAQ0f,IAGtE,MAAO,CACLQ,QAAS,WACPf,IAASgB,uBAAuBT,IAElCU,cAAe,SAAuBC,GACpCC,QAAQC,KAAK,2FACbR,EAAc,CACZS,QAASH,KAGbI,OAAQ,SAAgBT,GACtBD,EAAcC,KAvCpBhO,EAAgB2M,EAAQ,eAAgB,CACtC5a,QAAS,KACTyB,SAAU,KACVsZ,SAAS,EACTG,UAAW,KACXC,YAAa,OAsCf,IAAIW,EAAuB,SAAUzE,GACnCpB,EAAU6F,EAASzE,GAEnB,IAAIC,EAASgE,EAAeQ,GAE5B,SAASA,EAAQ7f,GACf,IAAI+G,EAaJ,OAXApH,EAAgB6B,KAAMqe,IAEtB9Y,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAS,EACTpX,SAAUX,EAAM/G,MAAM0H,UAExBX,EAAM2Z,KAAO3Z,EAAM2Z,KAAKnF,KAAK7B,EAAuB3S,IACpDA,EAAM4Z,KAAO5Z,EAAM4Z,KAAKpF,KAAK7B,EAAuB3S,IACpDA,EAAM6Z,aAAe7Z,EAAM6Z,aAAarF,KAAK7B,EAAuB3S,IACpEA,EAAM8Z,aAAe9Z,EAAM8Z,aAAatF,KAAK7B,EAAuB3S,IAC7DA,EAmhBT,OAhhBAzG,EAAauf,EAAS,CAAC,CACrBvgB,IAAK,uBACLhC,MAAO,SAA8ByC,GACnC,QAASyB,KAAKxB,MAAMwgB,SAAWhf,KAAKsf,gBAAgB/gB,EAAQ,cAE7D,CACDT,IAAK,iBACLhC,MAAO,SAAwByC,GAC7B,QAASyB,KAAKxB,MAAMwgB,SAAWhf,KAAKsf,gBAAgB/gB,EAAQ,YAAcyB,KAAKxB,MAAMgE,YAEtF,CACD1E,IAAK,eACLhC,MAAO,SAAsByC,GAC3B,OAAOyB,KAAKsf,gBAAgB/gB,EAAQ,eAAiByB,KAAKxB,MAAM+gB,aAEjE,CACDzhB,IAAK,aACLhC,MAAO,SAAoByC,GACzB,MAAoD,SAA7CyB,KAAKsf,gBAAgB/gB,EAAQ,aAA0ByB,KAAKwf,gBAAgBjhB,EAAQ,aAAeyB,KAAKxB,MAAMihB,WAEtH,CACD3hB,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKsf,gBAAgBtf,KAAKya,cAAe,aAAeza,KAAKxB,MAAMkhB,WAE3E,CACD5hB,IAAK,kBACLhC,MAAO,SAAyByC,EAAQohB,GACtC,OAAI3f,KAAKwf,gBAAgBjhB,EAAQ,WAAWR,OAAO4hB,IAC1CphB,EAAOqhB,aAAa,WAAW7hB,OAAO4hB,IAGxC,OAER,CACD7hB,IAAK,kBACLhC,MAAO,SAAyByC,EAAQohB,GACtC,OAAOphB,GAAUA,EAAOshB,aAAaF,KAEtC,CACD7hB,IAAK,YACLhC,MAAO,SAAmByC,GACxB,IAAIuhB,EAAY9f,KAAKsf,gBAAgB/gB,EAAQ,cAAgByB,KAAKxB,MAAMshB,UACpEC,EAAY/f,KAAKsf,gBAAgB/gB,EAAQ,cAAgByB,KAAKxB,MAAMuhB,UAEpE/f,KAAKggB,aAAazhB,IACpBuhB,EAAY,YACZC,EAAY,cAIE,WAFF/f,KAAKsf,gBAAgB/gB,EAAQ,UAAYyB,KAAKxB,MAAM6V,SAG9DyL,EAAY,QACZC,EAAY,QAIhB,MAAO,CACLD,UAAWA,EACXC,UAAWA,KAGd,CACDjiB,IAAK,cACLhC,MAAO,SAAqByC,GAC1B,OAAOyB,KAAKsf,gBAAgB/gB,EAAQ,aAAeyB,KAAKod,MAAMlX,WAE/D,CACDpI,IAAK,wBACLhC,MAAO,SAA+ByC,GAGpC,MAAO,CACL6D,IAHQpC,KAAKsf,gBAAgB/gB,EAAQ,kBAAoByB,KAAKxB,MAAMyhB,cAIpE3d,KAHStC,KAAKsf,gBAAgB/gB,EAAQ,mBAAqByB,KAAKxB,MAAM0hB,kBAMzE,CACDpiB,IAAK,aACLhC,MAAO,SAAoByC,EAAQoH,GACjC,GAAI3F,KAAKmgB,cAAe,CACtB,IAAInB,EAAUhf,KAAKsf,gBAAgB/gB,EAAQ,YAAcyB,KAAKxB,MAAMwgB,QAEhEA,GACFhf,KAAKmgB,cAActT,UAAY,GAE/B7M,KAAKmgB,cAAc3W,YAAY9I,SAASuM,eAAe+R,IACvDrZ,KACS3F,KAAKxB,MAAMgE,UACpBmD,OAIL,CACD7H,IAAK,OACLhC,MAAO,SAAc0D,GACnB,IAAImb,EAAS3a,KAIb,GAFAA,KAAKya,cAAgBjb,EAAEib,eAEnBza,KAAKogB,eAAepgB,KAAKya,iBAAkBza,KAAKqgB,WAAWrgB,KAAKya,eAApE,CAIA,IAAI6F,EAAqB,WACvB3F,EAAO4F,WAAW5F,EAAOF,eAAe,WAClCE,EAAOnc,MAAM8Y,aAAeR,EAAYS,IAAIoD,EAAO6F,cACrD1J,EAAYW,IAAI,UAAWkD,EAAO6F,YAAa7F,EAAOnc,MAAM4Y,YAG9DuD,EAAO6F,YAAYpgB,MAAMkC,KAAO,GAChCqY,EAAO6F,YAAYpgB,MAAMgC,IAAM,GAE3BuY,EAAOqF,aAAarF,EAAOF,iBAAmBE,EAAO8F,gBACvD9F,EAAO8F,cAAgB,CACrBvgB,MAAOH,EAAWoE,cAAcwW,EAAO6F,aACvClf,OAAQvB,EAAWyG,eAAemU,EAAO6F,eAI7C7F,EAAO+F,MAAM/F,EAAOF,cAAe,CACjCtU,EAAG3G,EAAE8a,MACLlU,EAAG5G,EAAE+a,YAKPva,KAAKod,MAAME,QACbtd,KAAK2gB,WAAW,cAAeL,IAE/BtgB,KAAK4gB,aAAa5gB,KAAKxB,MAAMqiB,aAAc,CACzClL,cAAenW,EACfjB,OAAQyB,KAAKya,gBAEfza,KAAK2gB,WAAW,aAAa,WAC3BhG,EAAO6C,SAAS,CACdF,SAAS,EACTpX,SAAUyU,EAAOmG,YAAYnG,EAAOF,iBACnC,WACD6F,IAEA3F,EAAOiG,aAAajG,EAAOnc,MAAMuiB,OAAQ,CACvCpL,cAAenW,EACfjB,OAAQoc,EAAOF,mBAInBE,EAAOqG,6BAEPrG,EAAOsG,qBAEPlhB,EAAWya,SAASG,EAAOF,cAAeE,EAAO2E,gBAAgB3E,EAAOF,cAAe,qBAI5F,CACD3c,IAAK,OACLhC,MAAO,SAAc0D,GACnB,IAAI0hB,EAASlhB,KAEbA,KAAKmhB,gBAEDnhB,KAAKod,MAAME,UACbvd,EAAWma,YAAYla,KAAKya,cAAeza,KAAKsf,gBAAgBtf,KAAKya,cAAe,cACpFza,KAAK4gB,aAAa5gB,KAAKxB,MAAM4iB,aAAc,CACzCzL,cAAenW,EACfjB,OAAQyB,KAAKya,gBAEfza,KAAK2gB,WAAW,aAAa,WAC3B7J,EAAYe,MAAMqJ,EAAOV,aACzBzgB,EAAWma,YAAYgH,EAAOV,YAAa,qBAEtCU,EAAOG,eAAqC,IAArBH,EAAOI,YAInCJ,EAAO1D,SAAS,CACdF,SAAS,EACTpX,SAAUgb,EAAO1iB,MAAM0H,WACtB,WACGgb,EAAOf,eACTxC,IAASgB,uBAAuBuC,EAAOf,eAGzCe,EAAOK,+BAEPL,EAAOxT,uBAEPwT,EAAOzG,cAAgB,KACvByG,EAAOM,cAAgB,KACvBN,EAAOT,cAAgB,KACvBS,EAAOI,WAAY,EAEnBJ,EAAON,aAAaM,EAAO1iB,MAAMijB,OAAQ,CACvC9L,cAAenW,EACfjB,OAAQ2iB,EAAOzG,yBAMxB,CACD3c,IAAK,QACLhC,MAAO,SAAeyC,EAAQmjB,GAC5B,IAAIC,EAAS3hB,KAETsC,EAAO,EACPF,EAAM,EAEV,GAAIpC,KAAKggB,aAAazhB,IAAWmjB,EAAY,CAC3C,IAAIjB,EAAgB,CAClBvgB,MAAOH,EAAWoE,cAAcnE,KAAKwgB,aACrClf,OAAQvB,EAAWyG,eAAexG,KAAKwgB,cAEzCle,EAAOof,EAAWvb,EAClB/D,EAAMsf,EAAWtb,EAEjB,IAAIwb,EAAwB5hB,KAAK6hB,sBAAsBtjB,GACnD0hB,EAAgB2B,EAAsBxf,IACtC8d,EAAiB0B,EAAsBtf,KAE3C,OAAQtC,KAAKod,MAAMlX,UACjB,IAAK,OACH5D,GAAQme,EAAcvgB,MAAQggB,EAC9B9d,GAAOqe,EAAcnf,OAAS,EAAI2e,EAClC,MAEF,IAAK,QACH3d,GAAQ4d,EACR9d,GAAOqe,EAAcnf,OAAS,EAAI2e,EAClC,MAEF,IAAK,MACH3d,GAAQme,EAAcvgB,MAAQ,EAAIggB,EAClC9d,GAAOqe,EAAcnf,OAAS2e,EAC9B,MAEF,IAAK,SACH3d,GAAQme,EAAcvgB,MAAQ,EAAIggB,EAClC9d,GAAO6d,EAIP3d,GAAQ,GAAKtC,KAAKygB,cAAcvgB,MAAQugB,EAAcvgB,OACxDF,KAAKwgB,YAAYpgB,MAAMkC,KAAO,MAC9BtC,KAAKwgB,YAAYpgB,MAAMuG,MAAQ/F,OAAOmB,WAAa0e,EAAcvgB,MAAQoC,EAAO,OAEhFtC,KAAKwgB,YAAYpgB,MAAMuG,MAAQ,GAC/B3G,KAAKwgB,YAAYpgB,MAAMkC,KAAOA,EAAO,MAGvCtC,KAAKwgB,YAAYpgB,MAAMgC,IAAMA,EAAM,KACnCrC,EAAWya,SAASxa,KAAKwgB,YAAa,wBACjC,CACL,IAAIzM,EAAMhU,EAAW+hB,sBAAsB9hB,KAAKod,MAAMlX,UAClDV,EAAKxF,KAAKsf,gBAAgB/gB,EAAQ,OAASyB,KAAKxB,MAAMgH,IAAMuO,EAAIvO,GAChEE,EAAK1F,KAAKsf,gBAAgB/gB,EAAQ,OAASyB,KAAKxB,MAAMkH,IAAMqO,EAAIrO,GACpE1F,KAAKwgB,YAAYpgB,MAAMoM,QAAU,MACjCzM,EAAWgiB,iBAAiB/hB,KAAKwgB,YAAajiB,EAAQiH,EAAIE,GAAI,SAAUsc,GACtE,IAAIC,EAAsBD,EAAgBtc,GACtCwc,EAAMD,EAAoB9b,EAC1Bgc,EAAMF,EAAoB7b,EAC1Bgc,EAAMJ,EAAgBxc,GAAGW,EACzBD,EAAWyb,EAAOnjB,MAAMkH,GAAa,WAARwc,GAAoBA,IAAQE,EAAMF,EAAMC,EAAMH,EAAgBtc,GAAG,GAAG3H,OAAOgW,EAAIjN,OAChH6a,EAAOnB,YAAYpgB,MAAMoM,QAAU,GAEnCmV,EAAOnE,SAAS,CACdtX,SAAUA,IACT,WACDyb,EAAOU,0BAEPtiB,EAAWya,SAASmH,EAAOnB,YAAa,6BAK/C,CACD1iB,IAAK,0BACLhC,MAAO,WACL,GAAIkE,KAAKwgB,YAAa,CACpB,IAAIpgB,EAAQC,iBAAiBL,KAAKwgB,aACN,SAAxBxgB,KAAKod,MAAMlX,SAAqBlG,KAAKwgB,YAAYpgB,MAAMkC,KAAOhC,WAAWF,EAAMkC,MAAwC,EAAhChC,WAAWF,EAAMG,aAAmB,KAAsC,QAAxBP,KAAKod,MAAMlX,WAAoBlG,KAAKwgB,YAAYpgB,MAAMgC,IAAM9B,WAAWF,EAAMgC,KAAsC,EAA/B9B,WAAWF,EAAMqD,YAAkB,SAGvQ,CACD3F,IAAK,eACLhC,MAAO,WACAkE,KAAKqhB,eACRrhB,KAAKshB,WAAY,KAGpB,CACDxjB,IAAK,eACLhC,MAAO,SAAsB0D,GACtBQ,KAAKqhB,eACRrhB,KAAKshB,WAAY,EACjBthB,KAAKmf,KAAK3f,MAGb,CACD1B,IAAK,6BACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEbA,KAAKuiB,uBAAyB,SAAU/iB,GACjCO,EAAWyiB,aACdF,EAAOnD,KAAK3f,IAIhBoB,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,0BAExC,CACDzkB,IAAK,+BACLhC,MAAO,WACDkE,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,qBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,EAA8BrN,KAAKya,eAAe,SAAUjb,GAC/EijB,EAAOrF,MAAME,SACfmF,EAAOtD,KAAK3f,OAKlBQ,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,kBACLhC,MAAO,SAAyByC,GAC9B,GAAIA,EAAQ,CACV,IAAImkB,EAAkB1iB,KAAK2iB,UAAUpkB,GACjCuhB,EAAY4C,EAAgB5C,UAC5BC,EAAY2C,EAAgB3C,UAEhCxhB,EAAOiP,iBAAiBsS,EAAW9f,KAAKkf,MACxC3gB,EAAOiP,iBAAiBuS,EAAW/f,KAAKmf,SAG3C,CACDrhB,IAAK,oBACLhC,MAAO,SAA2ByC,GAChC,GAAIA,EAAQ,CACV,IAAIqkB,EAAmB5iB,KAAK2iB,UAAUpkB,GAClCuhB,EAAY8C,EAAiB9C,UAC7BC,EAAY6C,EAAiB7C,UAEjCxhB,EAAOkP,oBAAoBqS,EAAW9f,KAAKkf,MAC3C3gB,EAAOkP,oBAAoBsS,EAAW/f,KAAKmf,SAG9C,CACDrhB,IAAK,aACLhC,MAAO,SAAoB+mB,EAAWld,GACpC3F,KAAKmhB,gBACL,IAAI2B,EAAQ9iB,KAAKsf,gBAAgBtf,KAAKya,cAAeoI,EAAUtX,gBAAkBvL,KAAKxB,MAAMqkB,GAEtFC,EACJ9iB,KAAK,GAAGjC,OAAO8kB,EAAW,YAAcha,YAAW,WACjD,OAAOlD,MACNmd,GAEHnd,MAGH,CACD7H,IAAK,eACLhC,MAAO,SAAsB6J,GAC3B,GAAIA,EAAU,CACZ,IAAK,IAAIzI,EAAOC,UAAUxC,OAAQ2U,EAAS,IAAIxU,MAAMoC,EAAO,EAAIA,EAAO,EAAI,GAAIG,EAAO,EAAGA,EAAOH,EAAMG,IACpGiS,EAAOjS,EAAO,GAAKF,UAAUE,GAG/BsI,EAAS2D,WAAM,EAAQgG,MAG1B,CACDxR,IAAK,gBACLhC,MAAO,WACLia,aAAa/V,KAAK+iB,kBAClBhN,aAAa/V,KAAKgjB,oBAClBjN,aAAa/V,KAAKijB,oBAEnB,CACDnlB,IAAK,qBACLhC,MAAO,SAA4ByC,GACjCyB,KAAKkjB,mBAAmB3kB,GACxByB,KAAKmjB,iBAAiB5kB,KAEvB,CACDT,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/ByB,KAAKojB,yBAAyB7kB,GAAUyB,KAAKxB,MAAMD,OAAQ,qBAE5D,CACDT,IAAK,qBACLhC,MAAO,SAA4ByC,GACjCyB,KAAKojB,yBAAyB7kB,GAAUyB,KAAKxB,MAAMD,OAAQ,uBAE5D,CACDT,IAAK,2BACLhC,MAAO,SAAkCyC,EAAQ8kB,GAC/C,IAAIC,EAAStjB,KAEb,GAAIzB,EACF,GAAIwB,EAAWwJ,UAAUhL,GACvByB,KAAKqjB,GAAW9kB,OACX,CACL,IAAIglB,EAAW,SAAkBhlB,GACjBwB,EAAW+L,KAAKpL,SAAUnC,GAChC2S,SAAQ,SAAUjR,GACxBqjB,EAAOD,GAAWpjB,OAIlB1B,aAAkBzD,MACpByD,EAAO2S,SAAQ,SAAUuE,GACvB8N,EAAS9N,MAGX8N,EAAShlB,MAKhB,CACDT,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAMD,QACbyB,KAAKmjB,qBAGR,CACDrlB,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GAC5C,IAAIC,EAAS1jB,KAETwjB,EAAUjlB,SAAWyB,KAAKxB,MAAMD,SAClCyB,KAAKkjB,mBAAmBM,EAAUjlB,QAClCyB,KAAKmjB,oBAGHnjB,KAAKod,MAAME,UACTkG,EAAUxE,UAAYhf,KAAKxB,MAAMwgB,SACnChf,KAAK2gB,WAAW,eAAe,WAC7B+C,EAAOnD,WAAWmD,EAAOjJ,eAAe,WACtCiJ,EAAOhD,MAAMgD,EAAOjJ,qBAKtBza,KAAKya,eAAiBza,KAAKqgB,WAAWrgB,KAAKya,gBAC7Cza,KAAKmf,UAIV,CACDrhB,IAAK,uBACLhC,MAAO,WACLkE,KAAKmhB,gBACLnhB,KAAKuhB,+BACLvhB,KAAKkjB,qBAEDljB,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGvB1K,EAAYe,MAAM7X,KAAKwgB,eAExB,CACD1iB,IAAK,gBACLhC,MAAO,WACL,IAAI6nB,EAAS3jB,KAET4jB,EAAmB3mB,EAAW,wBAAyBuT,EAAgB,GAAI,aAAazS,OAAOiC,KAAKod,MAAMlX,WAAW,GAAOlG,KAAKxB,MAAMjB,WACvIsmB,EAAuB7jB,KAAK6jB,qBAAqB7jB,KAAKya,eAC1D,OAAoBI,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfhJ,IAAK,SAAa7a,GAChB,OAAO0jB,EAAOnD,YAAcvgB,GAE9B1C,UAAWqmB,EACXxjB,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,UACN,cAAe/jB,KAAKod,MAAME,QAC1B8B,aAAcpf,KAAKof,aACnBC,aAAcrf,KAAKqf,cACLxE,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oBACIsd,IAAM7P,cAAc,MAAO,CAC1C8P,IAAK,SAAa7a,GAChB,OAAO0jB,EAAOxD,cAAgBlgB,GAEhC1C,UAAW,kBACVsmB,GAAwB7jB,KAAKxB,MAAMgE,aAEvC,CACD1E,IAAK,SACLhC,MAAO,WACL,GAAIkE,KAAKod,MAAME,QAAS,CACtB,IAAI/a,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,EAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,SACrBsZ,SAAS,IAIb,OAAO,SAIJe,EAtiBkB,CAuiBzBrD,aAEFxK,EAAgB6N,EAAS,eAAgB,CACvCyF,GAAI,KACJvlB,OAAQ,KACRygB,QAAS,KACTS,UAAU,EACVliB,UAAW,KACX6C,MAAO,KACP4D,SAAU,KACVkC,SAAU,QACVV,GAAI,KACJE,GAAI,KACJ2O,MAAO,KACPyL,UAAW,aACXC,UAAW,aACXzI,YAAY,EACZF,WAAY,EACZmI,YAAY,EACZU,cAAe,EACfC,eAAgB,EAChB+D,UAAW,EACXC,YAAa,EACbC,UAAW,EACXzE,UAAU,EACVmB,aAAc,KACdO,aAAc,KACdL,OAAQ,KACRU,OAAQ,OAGV,IAAI2C,EAx5DJ,WACE,IAAIC,EAAc,IAAIC,IACtB,MAAO,CACLC,GAAI,SAAY/mB,EAAMya,GACpB,IAAIuM,EAAWH,EAAY9M,IAAI/Z,GAC1BgnB,EAAoCA,EAAS3oB,KAAKoc,GAAxCuM,EAAW,CAACvM,GAC3BoM,EAAY5M,IAAIja,EAAMgnB,IAExBC,IAAK,SAAajnB,EAAMya,GACtB,IAAIuM,EAAWH,EAAY9M,IAAI/Z,GAC/BgnB,GAAYA,EAASvV,OAAOuV,EAAS9Y,QAAQuM,KAAa,EAAG,IAE/DyM,KAAM,SAAclnB,EAAMmnB,GACxB,IAAIH,EAAWH,EAAY9M,IAAI/Z,GAC/BgnB,GAAYA,EAASjoB,QAAQ2U,SAAQ,SAAU+G,GAC7C,OAAOA,EAAQ0M,QAy4DFC,GAErB,SAASC,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAImW,EAA6B,SAAUrL,GACzCpB,EAAUyM,EAAerL,GAEzB,IAAIC,EAASkL,EAAaE,GAE1B,SAASA,EAAczmB,GACrB,IAAI+G,EAWJ,OATApH,EAAgB6B,KAAMilB,IAEtB1f,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB0mB,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM4f,WAAa5f,EAAM4f,WAAWpL,KAAK7B,EAAuB3S,IAChEA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAM+f,UAAY/f,EAAM+f,UAAUvL,KAAK7B,EAAuB3S,IAC9DA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IACrDA,EAsET,OAnEAzG,EAAammB,EAAe,CAAC,CAC3BnnB,IAAK,UACLhC,MAAO,SAAiByL,EAAMie,GAC5BxlB,KAAKxB,MAAM0mB,SAAWllB,KAAKxB,MAAM0mB,QAAQ3d,EAAMie,GAE/CxlB,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQ4T,SAAWllB,KAAKxB,MAAM8S,QAAQ4T,QAAQ3d,EAAMie,KAEtF,CACD1nB,IAAK,aACLhC,MAAO,SAAoByL,EAAMie,GAC/BxlB,KAAKxB,MAAM2mB,YAAcnlB,KAAKxB,MAAM2mB,WAAW5d,EAAMie,GAErDxlB,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQ6T,YAAcnlB,KAAKxB,MAAM8S,QAAQ6T,WAAW5d,EAAMie,KAE5F,CACD1nB,IAAK,YACLhC,MAAO,SAAmByL,EAAMie,GAC9BxlB,KAAKxB,MAAM4mB,WAAaplB,KAAKxB,MAAM4mB,UAAU7d,EAAMie,GAEnDxlB,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQ8T,WAAaplB,KAAKxB,MAAM8S,QAAQ8T,UAAU7d,EAAMie,KAE1F,CACD1nB,IAAK,SACLhC,MAAO,SAAgByL,GACrBvH,KAAKxB,MAAM6mB,QAAUrlB,KAAKxB,MAAM6mB,OAAO9d,GAEvCvH,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQ+T,QAAUrlB,KAAKxB,MAAM8S,QAAQ+T,OAAO9d,KAE9E,CACDzJ,IAAK,YACLhC,MAAO,SAAmByL,GACxBvH,KAAKxB,MAAM8mB,WAAatlB,KAAKxB,MAAM8mB,UAAU/d,GAE7CvH,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQgU,WAAatlB,KAAKxB,MAAM8S,QAAQgU,UAAU/d,KAEpF,CACDzJ,IAAK,WACLhC,MAAO,SAAkByL,GACvBvH,KAAKxB,MAAM+mB,UAAYvlB,KAAKxB,MAAM+mB,SAAShe,GAE3CvH,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQiU,UAAYvlB,KAAKxB,MAAM8S,QAAQiU,SAAShe,KAElF,CACDzJ,IAAK,SACLhC,MAAO,WACL,IAAI2pB,EAAiB,CACnBC,QAAS1lB,KAAKxB,MAAMknB,QACpBC,GAAI3lB,KAAKxB,MAAMmnB,GACfT,QAASllB,KAAKklB,QACdC,WAAYnlB,KAAKmlB,WACjBC,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbC,UAAWtlB,KAAKslB,UAChBC,SAAUvlB,KAAKulB,UAQb/mB,EAAQsmB,EAAcA,EAAcA,EAAc,GANnC,CACjB7nB,WAAY+C,KAAKxB,MAAMvB,WACvB2oB,QAAS5lB,KAAKxB,MAAMonB,QACpBC,cAAe7lB,KAAKxB,MAAMqnB,gBAG6C7lB,KAAKxB,MAAM8S,SAAW,IAAKmU,GAEpG,OAAoB5K,IAAM7P,cAAc8a,IAAiBtnB,EAAOwB,KAAKxB,MAAMgE,cAIxEyiB,EAvFwB,CAwF/BjK,c,4nIC3+FF,GAAgC,qBAArB+K,iBACP,MAAM,IAAIrc,MAAM,sFAEpB,IAAIsR,EAAY+K,iBAAiB/K,UAC7BhQ,EAAgB+a,iBAAiB/a,cAEjCgb,GADSD,iBAAiBzH,OACdyH,iBAAiBC,WAC7BC,EAAWF,iBAAiBE,SAC5BC,EAAgBH,iBAAiBG,cACjCtI,EAAemI,iBAAiBnI,a,GACnBmI,iBAAiBI,WACLJ,iBAAiBpH,uB,WCL5C,WACUyH,EACDC,GADC,KAAAD,UACD,KAAAC,sBA8BX,OA1BE,YAAAnjB,OAAA,WACElD,KAAKomB,QAAQE,SAAS,CACpB9oB,KAAM,sBACN+oB,SAAUvmB,KAAKqmB,oBAAoBE,YAIvC,YAAAC,QAAA,WACExmB,KAAKomB,QAAQE,SAAS,CACpB9oB,KAAM,sBACNipB,UAAW,CAACzmB,KAAKqmB,oBAAoBE,UACrCG,WAAW,KAIf,sBAAI,iBAAE,C,IAAN,WACE,OAAO1mB,KAAKqmB,oBAAoBM,U,gCAGlC,sBAAI,kBAAG,C,IAAP,WACE,OAAO3mB,KAAKqmB,oBAAoBO,KAAKC,K,gCAGvC,sBAAI,qBAAM,C,IAAV,WACE,OAAO7mB,KAAKqmB,oBAAoBO,KAAKE,Q,gCAEzC,E,aCrCgBC,EAAc9mB,GACxBA,EAAGwC,YACLxC,EAAGwC,WAAWkH,YAAY1J,G,SAOd+mB,EAAe/mB,EAAiBqD,GAC9C,GAAIrD,EAAGgnB,QACL,OAAOhnB,EAAGgnB,QAAQ3jB,GAKpB,IAAK5C,SAASC,gBAAgB0C,SAASpD,GACrC,OAAO,KAET,EAAG,CACD,GAAIinB,EAAejnB,EAAIqD,GACrB,OAAOrD,EAETA,EAAMA,EAAGga,eAAiBha,EAAGwC,iBACf,OAAPxC,GAA+B,IAAhBA,EAAG2C,UAC3B,OAAO,K,SAGOskB,EAAejnB,EAAiBqD,GAG9C,OAFarD,EAAGknB,SAAYlnB,EAAWmnB,iBAAoBnnB,EAAWonB,mBAExD3rB,KAAKuE,EAAIqD,GA6CzB,IAAMgkB,EAAgB,yC,SAENC,EAAWtnB,EAAiBzB,GAC1C,IAAK,IAAIgpB,KAAYhpB,EACnBipB,EAAexnB,EAAIunB,EAAUhpB,EAAMgpB,I,SAIvBC,EAAexnB,EAAiBxD,EAAc4Z,GACjD,MAAPA,EACFpW,EAAGG,MAAM3D,GAAQ,GACO,kBAAR4Z,GAAoBiR,EAAc3qB,KAAKF,GACvDwD,EAAGG,MAAM3D,GAAW4Z,EAAG,KAEvBpW,EAAGG,MAAM3D,GAAQ4Z,E,SAULqR,EAAsBC,G,QACpC,OAA6B,QAAtB,EAAe,QAAf,EAAAA,EAAGC,oBAAY,oBAAfD,GAAoB,UAAE,QAAIA,EAAGppB,O,SAMtBspB,EAAU5nB,GACxB,OAAOA,EAAG6nB,YAAc7nB,EAAG6nB,cAA8BpnB,S,SC1G3CuU,EAAe0S,GAC7BA,EAAG1S,iB,SAMW8S,EACdzkB,EACA2U,GAEA,OAAO,SAAC0P,GACN,IAAIK,EAAehB,EAAeW,EAAGppB,OAAuB+E,GAExD0kB,GACF/P,EAAQvc,KAAKssB,EAAcL,EAAIK,I,SAKrBC,EACdne,EACAoe,EACA5kB,EACA2U,GAEA,IAAIkQ,EAAkBJ,EAAuBzkB,EAAU2U,GAIvD,OAFAnO,EAAU0D,iBAAiB0a,EAAWC,GAE/B,WACLre,EAAU2D,oBAAoBya,EAAWC,IAgC7C,IAAMC,EAAuB,CAC3B,sBACA,iBACA,iBACA,kBACA,iB,SAIcC,EAAmBpoB,EAAiB0F,GAClD,IAAI2iB,EAAe,SAAfA,EAAgBX,GAClBhiB,EAASgiB,GACTS,EAAqBlX,SAAQ,SAACqX,GAC5BtoB,EAAGwN,oBAAoB8a,EAAWD,OAItCF,EAAqBlX,SAAQ,SAACqX,GAC5BtoB,EAAGuN,iBAAiB+a,EAAWD,MCjFnC,IAAIE,EAAa,E,SAEDC,IAEd,OAAOpY,OADPmY,GAAc,G,SAQAE,IACdhoB,SAAS2B,KAAKQ,UAAUG,IAAI,kB,SAId2lB,IACdjoB,SAAS2B,KAAKQ,UAAUK,OAAO,kB,SAMjB0lB,EAAiB3oB,GAC/BA,EAAG4C,UAAUG,IAAI,mBACjB/C,EAAGuN,iBAAiB,cAAeyH,G,SAGrB4T,EAAe5oB,GAC7BA,EAAG4C,UAAUK,OAAO,mBACpBjD,EAAGwN,oBAAoB,cAAewH,G,SAMxB6T,EAAmB7oB,GACjCA,EAAGuN,iBAAiB,cAAeyH,G,SAGrB8T,EAAiB9oB,GAC/BA,EAAGwN,oBAAoB,cAAewH,G,SA4DxB+T,EAA4BC,EAAerb,EAAesb,GACxE,OAAIA,EAAUC,KACLD,EAAUC,KAAKF,EAAMrb,G,SAOAK,EAAGC,GACjC,IAAKD,IAAMC,EACT,OAAO,EAET,GAAS,MAALA,EACF,OAAQ,EAEV,GAAS,MAALD,EACF,OAAO,EAET,GAAiB,kBAANA,GAA+B,kBAANC,EAClC,OAAOmC,OAAOpC,GAAGmb,cAAc/Y,OAAOnC,IAExC,OAAOD,EAAIC,EAjBJmb,CAAgBJ,EAAKC,EAAUpb,OAAQF,EAAKsb,EAAUpb,SACxDob,EAAUI,OAAS,G,SAsBVC,EAASlT,EAAK3b,GAC5B,IAAI6E,EAAI8Q,OAAOgG,GACf,MAAO,MAAMmT,OAAO,EAAG9uB,EAAM6E,EAAE5E,QAAU4E,E,SAM3BkqB,EAAexb,EAAGC,GAChC,OAAOD,EAAIC,E,SAGGwb,EAAMvtB,GACpB,OAAOA,EAAI,IAAM,E,SAkBHwtB,EAAyBC,GACvC,IAAIC,EAAaD,EAAOpmB,cAAc,+BAClCsmB,EAAiBF,EAAOpmB,cAAc,iCAE1C,IAAKqmB,EACH,MAAM,IAAIngB,MAAM,8CAElB,IAAKogB,EACH,MAAM,IAAIpgB,MAAM,gDAGlB,OAAOkgB,EAAOznB,wBAAwBjC,MAAQ2pB,EAAW1nB,wBAAwBjC,MAC/E4pB,EAAe3nB,wBAAwBjC,MC5KpC,IAAM6pB,EAAU,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,O,SAIlDC,EAASC,EAAe9tB,GACtC,IAAI8R,EAAIic,EAAeD,GAEvB,OADAhc,EAAE,IAAU,EAAJ9R,EACDguB,EAAelc,G,SAGRmc,EAAQH,EAAe9tB,GACrC,IAAI8R,EAAIic,EAAeD,GAEvB,OADAhc,EAAE,IAAM9R,EACDguB,EAAelc,G,SAGRoc,EAAMJ,EAAe9tB,GACnC,IAAI8R,EAAIic,EAAeD,GAEvB,OADAhc,EAAE,IAAM9R,EACDguB,EAAelc,G,SAMRqc,EAAUC,EAAIC,GAC5B,OAAOC,EAASF,EAAIC,GAAM,E,SAGZC,EAASF,EAAIC,GAC3B,OAAQA,EAAGjR,UAAYgR,EAAGhR,WAAnB,M,SAuCOmR,EAAcH,EAAgBC,GAC5C,OAAIG,EAASJ,KAAQI,EAASH,GACrBplB,KAAKwlB,MAAMH,EAASF,EAAIC,IAE1B,K,SAKOK,EAAWZ,GACzB,OAAOE,EAAe,CACpBF,EAAEa,iBACFb,EAAEc,cACFd,EAAEe,eAoDN,SAASC,EAAgBC,EAAQC,EAAMC,EAAKC,GAC1C,IAAIC,EAAiBnB,EAAe,CAACgB,EAAM,EAAG,EAAII,EAAgBJ,EAAMC,EAAKC,KACzEG,EAAWX,EAAWK,GACtBO,EAAOrmB,KAAKwlB,MAAMH,EAASa,EAAgBE,IAE/C,OAAOpmB,KAAKsmB,MAAMD,EAAO,GAAK,EAIhC,SAASF,EAAgBJ,EAAMC,EAAKC,GAElC,IAAIM,EAAM,EAAIP,EAAMC,EAKpB,SAFa,EAAIlB,EAAe,CAACgB,EAAM,EAAGQ,IAAMC,YAAcR,GAAO,GAErDO,EAAM,E,SAKRE,EAAiBC,GAC/B,MAAO,CACLA,EAAKC,cACLD,EAAKE,WACLF,EAAKG,UACLH,EAAKI,WACLJ,EAAKK,aACLL,EAAKM,aACLN,EAAKO,mB,SAIOC,EAAiBre,GAC/B,OAAO,IAAIxF,KACTwF,EAAE,GACFA,EAAE,IAAM,EACA,MAARA,EAAE,GAAa,EAAIA,EAAE,GACrBA,EAAE,IAAM,EACRA,EAAE,IAAM,EACRA,EAAE,IAAM,G,SAIIic,EAAe4B,GAC7B,MAAO,CACLA,EAAKhB,iBACLgB,EAAKf,cACLe,EAAKd,aACLc,EAAKS,cACLT,EAAKU,gBACLV,EAAKW,gBACLX,EAAKY,sB,SAIOvC,EAAelc,GAO7B,OAJiB,IAAbA,EAAEtT,SACJsT,EAAIA,EAAElQ,OAAO,CAAC,KAGT,IAAI0K,KAAKA,KAAKkkB,IAAG,MAARlkB,KAAawF,I,SAKf2e,EAAY3C,GAC1B,OAAQ4C,MAAM5C,EAAE1Q,W,SAGFoR,EAASV,GACvB,OAAyB,IAAlBA,EAAEsC,cAAuB,GAAK,GACf,IAApBtC,EAAEuC,gBAAyB,GACP,IAApBvC,EAAEwC,gBACFxC,EAAEyC,qB,SCzMUI,EACdC,EACAna,EACAoa,EACAC,GAEA,MAAO,CACLC,WAAYzE,IACZsE,MAAK,EACLna,MAAK,EACLoa,eAAkC,MAAlBA,EAAyB,KAAOA,EAChDC,aAA8B,MAAhBA,EAAuB,KAAOA,GCxBxC,OAAmB7wB,OAAOC,UAAZ,e,SAIN8wB,GAAWC,EAAUC,GACnC,IAAIC,EAAO,GAEX,GAAID,EACF,IAAK,IAAI,KAAQA,EAAiB,CAIhC,IAHA,IAAIE,EAAc,GAGT3yB,EAAIwyB,EAASzyB,OAAS,EAAGC,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAIyb,EAAM+W,EAASxyB,GAAG,GAEtB,GAAmB,kBAARyb,GAAoBA,EAC7BkX,EAAYC,QAAQnX,QACf,QAAY5Q,IAAR4Q,EAAmB,CAC5BiX,EAAK,GAAQjX,EACb,OAKAkX,EAAY5yB,SACd2yB,EAAK,GAAQH,GAAWI,IAM9B,IAAS3yB,EAAIwyB,EAASzyB,OAAS,EAAGC,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAI4D,EAAQ4uB,EAASxyB,GAErB,IAAK,IAAI,KAAQ4D,EACT,KAAQ8uB,IACZA,EAAK,GAAQ9uB,EAAM,IAKzB,OAAO8uB,E,SAGOG,GAAWC,EAAMvE,GAC/B,IAAIwE,EAAW,GAEf,IAAK,IAAI7vB,KAAO4vB,EACVvE,EAAKuE,EAAK5vB,GAAMA,KAClB6vB,EAAS7vB,GAAO4vB,EAAK5vB,IAIzB,OAAO6vB,E,SAGOC,GACdF,EACAvE,GAEA,IAAI0E,EAAU,GAEd,IAAK,IAAI/vB,KAAO4vB,EACdG,EAAQ/vB,GAAOqrB,EAAKuE,EAAK5vB,GAAMA,GAGjC,OAAO+vB,E,SAGOC,GAAY7f,GAG1B,IAFA,IAAIyf,EAAO,GAEM,MAAAzf,EAAA,eAAG,CAClByf,EADW,OACE,EAGf,OAAOA,E,SAeOK,GAAkB/wB,GAChC,IAAIiR,EAAI,GAER,IAAK,IAAInQ,KAAOd,EACdiR,EAAEpS,KAAKmB,EAAIc,IAGb,OAAOmQ,E,SAGO+f,GAAa/E,EAAMrb,GACjC,GAAIqb,IAASrb,EACX,OAAO,EAGT,IAAK,IAAI9P,KAAOmrB,EACd,GAAI,GAAevtB,KAAKutB,EAAMnrB,MACtBA,KAAO8P,GACX,OAAO,EAKb,IAAK,IAAI9P,KAAO8P,EACd,GAAI,GAAelS,KAAKkS,EAAM9P,IACxBmrB,EAAKnrB,KAAS8P,EAAK9P,GACrB,OAAO,EAKb,OAAO,E,SAGOmwB,GAAgBhF,EAAMrb,GACpC,IAAIa,EAAiB,GAErB,IAAK,IAAI3Q,KAAOmrB,EACV,GAAevtB,KAAKutB,EAAMnrB,KACtBA,KAAO8P,GACXa,EAAK5S,KAAKiC,IAKhB,IAAK,IAAIA,KAAO8P,EACV,GAAelS,KAAKkS,EAAM9P,IACxBmrB,EAAKnrB,KAAS8P,EAAK9P,IACrB2Q,EAAK5S,KAAKiC,GAKhB,OAAO2Q,E,SAUOyf,GAAYC,EAAU3P,EAAU4P,GAC9C,QAD8C,IAAAA,MAAA,IAC1CD,IAAa3P,EACf,OAAO,EAGT,IAAK,IAAI1gB,KAAO0gB,EACd,KAAI1gB,KAAOqwB,KAAYE,GAAeF,EAASrwB,GAAM0gB,EAAS1gB,GAAMswB,EAActwB,IAGhF,OAAO,EAKX,IAAK,IAAIA,KAAOqwB,EACd,KAAMrwB,KAAO0gB,GACX,OAAO,EAIX,OAAO,EAMT,SAAS6P,GAAkBC,EAASC,EAASC,GAC3C,OAAIF,IAASC,IAAuB,IAAfC,KAGjBA,GACKA,EAAWF,EAAMC,G,SC9HZE,GAAgBC,EAAwBC,EAAyBvI,GACzE,IAAAwI,EAAkCxI,EAA3B,QAAEyI,EAAyBzI,EAAd,YAAE9U,EAAY8U,EAAL,QAC7B1U,EAAoBgd,EAAhB,KAAEI,EAAcJ,EAAL,UAMrB,IAAK,IAAI3B,KAFT+B,EAAYrB,GAAWqB,GAAW,SAAC1wB,GAA4B,OAACsT,EAAKtT,EAAS2uB,OAAOgC,gBAEnErd,EAAM,CACtB,IAAIsd,EAAMtd,EAAKqb,GAEf,GAAIiC,EAAID,aAAc,CACd,IAAAzmB,EAAa0mB,EAAID,aAAT,SAETzmB,IACHA,EAAW0mB,EAAIC,OACb3d,EAAQ4d,2BACR5d,EAAQ6d,2BAKZ,IAFA,IAEkB,MAFLC,GAAsBJ,EAAK1mB,EAAUqmB,EAAcC,EAASC,EAAYQ,gBAEnE,eAAQ,CAArB,IAAIzZ,EAAK,KACRxX,EAAW0uB,EAAoBC,EAAO,CACxCnX,MAAK,EACL9C,IAAK8b,EAAQ5rB,IAAI4S,EAAOtN,KAE1BwmB,EAAU1wB,EAAS8uB,YAAc9uB,IAKvC,MAAO,CAAEsT,KAAI,EAAEod,UAAS,GAM1B,SAASM,GACPE,EACAhnB,EACAqmB,EACAC,EACAS,GAEA,IACIE,EADUF,EAAeC,EAASP,aAAaS,QAC7BC,OACpBH,EAASP,aAAaW,SACtB,CACE9Z,MAAOgZ,EAAQe,SAAShB,EAAa/Y,MAAOtN,GAC5CwK,IAAK6b,EAAa7b,KAEpB8b,GAQF,OAJIU,EAASL,SACXM,EAAUA,EAAQ5xB,IAAIktB,IAGjB0E,ECvFT,IAAMK,GAAiB,CAAC,QAAS,SAAU,OAAQ,gBAC7CC,GAAW,2D,SAIDC,GAAeC,EAAsBC,G,MACnD,MAAqB,kBAAVD,EAcb,SAAqBxwB,GACnB,IAAI0qB,EAAI4F,GAASpkB,KAAKlM,GACtB,GAAI0qB,EAAG,CACL,IAAIgG,EAAOhG,EAAE,IAAM,EAAI,EACvB,MAAO,CACLiG,MAAO,EACPC,OAAQ,EACR1E,KAAMwE,GAAQhG,EAAE,GAAKzS,SAASyS,EAAE,GAAI,IAAM,GAC1CmG,aAAcH,GACsB,IAAjChG,EAAE,GAAKzS,SAASyS,EAAE,GAAI,IAAM,GAAU,GAAK,IACV,IAAjCA,EAAE,GAAKzS,SAASyS,EAAE,GAAI,IAAM,GAAU,IACL,KAAjCA,EAAE,GAAKzS,SAASyS,EAAE,GAAI,IAAM,IAC5BA,EAAE,GAAKzS,SAASyS,EAAE,GAAI,IAAM,KAInC,OAAO,KA7BEoG,CAAYN,GAGA,kBAAVA,GAAsBA,EACxBO,GAAYP,GAGA,kBAAVA,EACFO,KAAW,MAAIN,GAAQ,gBAAiBD,EAAK,IAE/C,KAsBT,SAASO,GAAYtzB,GACnB,IAAIsL,EAAqB,CACvB4nB,MAAOlzB,EAAIkzB,OAASlzB,EAAImuB,MAAQ,EAChCgF,OAAQnzB,EAAImzB,QAAUnzB,EAAIuzB,OAAS,EACnC9E,KAAMzuB,EAAIyuB,MAAQzuB,EAAIwzB,KAAO,EAC7BJ,aACiC,IAA9BpzB,EAAIyzB,OAASzzB,EAAI0zB,MAAQ,GAAU,GAAK,IACN,IAAlC1zB,EAAI2zB,SAAW3zB,EAAI4zB,QAAU,GAAU,IACL,KAAlC5zB,EAAI6zB,SAAW7zB,EAAI8zB,QAAU,IAC7B9zB,EAAIozB,cAAgBpzB,EAAI+zB,aAAe/zB,EAAIg0B,IAAM,IAGlDC,EAAQj0B,EAAIi0B,OAASj0B,EAAIk0B,KAM7B,OALID,IACF3oB,EAASmjB,MAAgB,EAARwF,EACjB3oB,EAAS6oB,gBAAiB,GAGrB7oB,E,SAqBO8oB,GAAaC,EAAcC,GACzC,MAAO,CACLpB,MAAOmB,EAAGnB,MAAQoB,EAAGpB,MACrBC,OAAQkB,EAAGlB,OAASmB,EAAGnB,OACvB1E,KAAM4F,EAAG5F,KAAO6F,EAAG7F,KACnB2E,aAAciB,EAAGjB,aAAekB,EAAGlB,c,SAavBmB,GAAiB3vB,EAAazF,GAC5C,MAAO,CACL+zB,MAAOtuB,EAAEsuB,MAAQ/zB,EACjBg0B,OAAQvuB,EAAEuuB,OAASh0B,EACnBsvB,KAAM7pB,EAAE6pB,KAAOtvB,EACfi0B,aAAcxuB,EAAEwuB,aAAej0B,G,SAenBq1B,GAAYC,GAC1B,OAAOC,GAAUD,GAAO,M,SAeVC,GAAUD,GACxB,OAAO,QAAAA,EAAIvB,MACT,OAAAuB,EAAItB,OACO,MAAXsB,EAAIhG,KACJgG,EAAIrB,a,SAKQuB,GAAqBC,EAAqBC,GAGxD,IAFA,IAAIC,EAAM,KAEDl3B,EAAI,EAAGA,EAAIg1B,GAAej1B,OAAQC,GAAK,EAAG,CACjD,IAAIo1B,EAAOJ,GAAeh1B,GAE1B,GAAIi3B,EAAY7B,GAAO,CACrB,IAAI+B,EAAWH,EAAU5B,GAAQ6B,EAAY7B,GAE7C,IAAKtG,EAAMqI,IAAsB,OAARD,GAAgBA,IAAQC,EAC/C,OAAO,KAGTD,EAAMC,OACD,GAAIH,EAAU5B,GAEnB,OAAO,KAIX,OAAO8B,E,SAGOE,GAA4BP,GAC1C,IAAIT,EAAKS,EAAIrB,aACb,GAAIY,EAAI,CACN,GAAIA,EAAK,MAAS,EAChB,MAAO,CAAEhB,KAAM,cAAel0B,MAAOk1B,GAEvC,GAAIA,EAAK,MAAgB,EACvB,MAAO,CAAEhB,KAAM,SAAUl0B,MAAOk1B,EAAK,KAEvC,GAAIA,EAAK,OAAqB,EAC5B,MAAO,CAAEhB,KAAM,SAAUl0B,MAAOk1B,EAAK,KAEvC,GAAIA,EACF,MAAO,CAAEhB,KAAM,OAAQl0B,MAAOk1B,EAAK,MAGvC,OAAIS,EAAIhG,KACFgG,EAAIN,gBAAkBM,EAAIhG,KAAO,IAAM,EAClC,CAAEuE,KAAM,OAAQl0B,MAAO21B,EAAIhG,KAAO,GAEpC,CAAEuE,KAAM,MAAOl0B,MAAO21B,EAAIhG,MAE/BgG,EAAItB,OACC,CAAEH,KAAM,QAASl0B,MAAO21B,EAAItB,QAEjCsB,EAAIvB,MACC,CAAEF,KAAM,OAAQl0B,MAAO21B,EAAIvB,OAE7B,CAAEF,KAAM,cAAel0B,MAAO,G,SC5NvBm2B,GAAe/G,EAAoBgH,EAAyBC,QAAA,IAAAA,OAAA,GAC1E,IAAI5yB,EAAI2rB,EAAOkH,cAiBf,OAfA7yB,EAAIA,EAAE4D,QAAQ,OAAQ,IAElBgvB,IACF5yB,EAAIA,EAAE4D,QAAQ,aAAc,KAG1B5D,EAAE5E,OAAS,KACS,MAAlBu3B,EACF3yB,EAAIA,EAAE4D,QAAQ,IAAK,IACS,IAAnB+uB,IACT3yB,EAAIA,EAAE4D,QAAQ,IAAKkvB,GAAqBH,GAAgB,MAKrD3yB,E,SAMO+yB,GAAgBpH,GAC9B,OAAOA,EAAOkH,cAAcjvB,QAAQ,OAAQ,I,SAI9BovB,GAAoBrH,GAClC,OAAO3B,EAAS2B,EAAOqB,cAAe,GAAK,IACzChD,EAAS2B,EAAOsB,gBAAiB,GAAK,IACtCjD,EAAS2B,EAAOuB,gBAAiB,G,SAGrB4F,GAAqB1B,EAAiB6B,QAAA,IAAAA,OAAA,GACpD,IAAIvC,EAAOU,EAAU,EAAI,IAAM,IAC3BvjB,EAAMhI,KAAKgI,IAAIujB,GACfF,EAAQrrB,KAAKsmB,MAAMte,EAAM,IACzBqlB,EAAOrtB,KAAKwlB,MAAMxd,EAAM,IAE5B,OAAIolB,EACQvC,EAAO1G,EAASkH,EAAO,GAAE,IAAIlH,EAASkJ,EAAM,GAEjD,MAAMxC,EAAOQ,GAAQgC,EAAO,IAAIlJ,EAASkJ,EAAM,GAAO,I,SCb/CC,GAAcC,EAAIC,EAAIC,GACpC,GAAIF,IAAOC,EACT,OAAO,EAGT,IACIh4B,EADAF,EAAMi4B,EAAGh4B,OAGb,GAAID,IAAQk4B,EAAGj4B,OACb,OAAO,EAGT,IAAKC,EAAI,EAAGA,EAAIF,EAAKE,GAAK,EACxB,KAAMi4B,EAAeA,EAAaF,EAAG/3B,GAAIg4B,EAAGh4B,IAAM+3B,EAAG/3B,KAAOg4B,EAAGh4B,IAC7D,OAAO,EAIX,OAAO,E,SCjDOk4B,GACdC,EACAC,EACAC,GAEA,IAAIC,EACAC,EAEJ,OAAO,W,IAAU,sDACf,GAAKD,GAEE,IAAKR,GAAcQ,EAAaE,GAAU,CAC3CH,GACFA,EAAaE,GAGf,IAAIrB,EAAMiB,EAAWzpB,MAAMtJ,KAAMozB,GAE5BJ,GAAgBA,EAAYlB,EAAKqB,KACpCA,EAAarB,SATfqB,EAAaJ,EAAWzpB,MAAMtJ,KAAMozB,GAetC,OAFAF,EAAcE,EAEPD,G,SAIKE,GACdN,EACAC,EACAC,GAHF,IAKMK,EACAH,EANN,OAQE,OAAO,SAACI,GACN,GAAKD,GAEE,IAAKtF,GAAasF,EAAYC,GAAS,CACxCN,GACFA,EAAaE,GAGf,IAAIrB,EAAMiB,EAAWr3B,KAAK,EAAM63B,GAE3BP,GAAgBA,EAAYlB,EAAKqB,KACpCA,EAAarB,SATfqB,EAAaJ,EAAWr3B,KAAK,EAAM63B,GAerC,OAFAD,EAAaC,EAENJ,GClDX,IAAMK,GAAmC,CACvCtC,KAAM,EACNuC,UAAW,EACXC,eAAgB,EAChBC,SAAU,EACVC,WAAY,GAGRC,GAAgC,CACpCC,aAAc,EACdC,IAAK,EACL5I,KAAM,EACNoF,MAAO,EACPC,IAAK,EACLwD,QAAS,EACTtD,KAAM,EACNE,OAAQ,EACRE,OAAQ,GAGJmD,GAAc,oBACdC,GAAW,KACXC,GAAiB,OACjBC,GAAS,UACTC,GAAS,UAUf,cAME,WAAYC,GACV,IAAIC,EAAyB,GACzBC,EAAwB,GACxBC,EAAW,EAEf,IAAK,IAAI,KAAQH,EACX,KAAQd,IACVgB,EAAiB,GAAQF,EAAe,GACxCG,EAAWrvB,KAAKC,IAAImuB,GAAiC,GAAOiB,KAE5DF,EAAkB,GAAQD,EAAe,GAErC,KAAQT,KACVY,EAAWrvB,KAAKC,IAAIwuB,GAA8B,GAAOY,KAK/Dz0B,KAAKu0B,kBAAoBA,EACzBv0B,KAAKw0B,iBAAmBA,EACxBx0B,KAAKy0B,SAAWA,EAEhBz0B,KAAK00B,oBAAsB5B,GAAQ4B,IA+DvC,OA5DE,YAAA5N,OAAA,SAAOgF,EAAmB1F,GACxB,OAAOpmB,KAAK00B,oBAAoB10B,KAAKu0B,kBAAmBv0B,KAAKw0B,iBAAkBpO,EAAxEpmB,CAAiF8rB,IAG1F,YAAA6I,YAAA,SAAY/e,EAAoB9C,EAAkBsT,EAAgCwO,GAC5E,IAAEL,EAAwCv0B,KAAvB,kBAAEw0B,EAAqBx0B,KAAL,iBAErC60B,EA6NR,SAAmCxD,EAAgBC,EAAgBwD,GACjE,GAAIA,EAAGC,cAAc1D,KAAQyD,EAAGC,cAAczD,GAC5C,OAAO,EAET,GAAIwD,EAAGE,eAAe3D,KAAQyD,EAAGE,eAAe1D,GAC9C,OAAO,EAET,GAAIwD,EAAGG,aAAa5D,KAAQyD,EAAGG,aAAa3D,GAC1C,OAAO,EAET,GAAI3G,EAAS0G,KAAQ1G,EAAS2G,GAC5B,OAAO,EAET,OAAO,EA1Oc4D,CAA0Btf,EAAMsV,OAAQpY,EAAIoY,OAAQ9E,EAAQ+O,gBAC/E,IAAKN,EACH,OAAO70B,KAAK8mB,OAAOlR,EAAOwQ,GAG5B,IAAIgP,EAAwBP,IAE1BO,EAAwB,IACI,YAA3Bb,EAAkBpJ,MAAiD,YAA3BoJ,EAAkBpJ,MAC9B,YAA5BoJ,EAAkBhE,OAAmD,YAA5BgE,EAAkBhE,OACjC,YAA1BgE,EAAkB/D,KAA+C,YAA1B+D,EAAkB/D,MAE1D4E,EAAwB,GAG1B,IAAIC,EAAQr1B,KAAK8mB,OAAOlR,EAAOwQ,GAC3BkP,EAAQt1B,KAAK8mB,OAAOhU,EAAKsT,GAE7B,GAAIiP,IAAUC,EACZ,OAAOD,EAGT,IACIE,EAAwBb,GAsNhC,SAAyCpjB,EAASkkB,GAChD,IAAIC,EAAiB,GAErB,IAAK,IAAI,KAAQnkB,KAEX,KAAQuiB,KACVA,GAA8B,IAAS2B,KAEvCC,EAAe,GAAQnkB,EAAQ,IAInC,OAAOmkB,EAnOkBC,CAAgCnB,EAAmBa,GACRZ,EAAkBpO,GAChFuP,EAAWJ,EAAsB3f,GACjCggB,EAAWL,EAAsBziB,GAEjC+iB,EAiOR,SAA6BR,EAAOM,EAAUL,EAAOM,GACnD,IAAIE,EAAK,EACT,KAAOA,EAAKT,EAAM16B,QAAQ,CACxB,IAAIo7B,EAASV,EAAM3pB,QAAQiqB,EAAUG,GACrC,IAAgB,IAAZC,EACF,MAGF,IAAIC,EAAUX,EAAM7L,OAAO,EAAGuM,GAC9BD,EAAKC,EAASJ,EAASh7B,OAIvB,IAHA,IAAIs7B,EAASZ,EAAM7L,OAAOsM,GAEtBI,EAAK,EACFA,EAAKZ,EAAM36B,QAAQ,CACxB,IAAIw7B,EAASb,EAAM5pB,QAAQkqB,EAAUM,GACrC,IAAgB,IAAZC,EACF,MAGF,IAAIC,EAAUd,EAAM9L,OAAO,EAAG2M,GAC9BD,EAAKC,EAASP,EAASj7B,OACvB,IAAI07B,EAASf,EAAM9L,OAAO0M,GAE1B,GAAIF,IAAYI,GAAWH,IAAWI,EACpC,MAAO,CACLC,OAAQN,EACRO,MAAON,IAMf,OAAO,KAjQWO,CAAoBnB,EAAOM,EAAUL,EAAOM,GACxDnC,EAAYe,EAAiBf,WAAamB,GAA0BxO,EAAQqQ,kBAAoB,GAEpG,OAAIZ,EACKA,EAAUS,OAASX,EAAWlC,EAAYmC,EAAWC,EAAUU,MAGjElB,EAAQ5B,EAAY6B,GAG7B,YAAAoB,eAAA,WACE,OAAQ12B,KAAKy0B,UACX,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,OACT,KAAK,EACH,MAAO,QACT,KAAK,EACH,MAAO,OACT,KAAK,EACH,MAAO,MACT,QACE,MAAO,SAGf,EA3FA,GA6FA,SAASC,GACPH,EACAC,EACApO,GAEA,IAAIuQ,EAAsBv6B,OAAOqS,KAAK8lB,GAAmB55B,OAEzD,OAA4B,IAAxBg8B,GAAgE,UAAnCpC,EAAkBT,aAC1C,SAAChI,GAAsB,OAC5BuG,GAAqBvG,EAAKoG,iBAIF,IAAxByE,GAA6BnC,EAAiBtD,KACzC,SAACpF,GAAsB,OAgIlC,SAA0BnpB,EAAai0B,EAAkBC,EAAgB3uB,GACvE,IAAI4uB,EAAQ,GAEI,WAAZ5uB,EACF4uB,EAAMj7B,KAAK+6B,GACU,UAAZ1uB,GACT4uB,EAAMj7B,KAAK+6B,EAAU,KAIvBE,EAAMj7B,KAAKg7B,EAAOE,mBAAmBjQ,OAAOnkB,IAEX,QAA7Bk0B,EAAOvlB,QAAQ0lB,WACjBF,EAAMzf,UAGR,OAAOyf,EAAM54B,KAAK,IA/Id+4B,CACE7Q,EAAQ8Q,kBAAkBpL,EAAKZ,QAC/B9E,EAAQwQ,SACRxQ,EAAQyQ,OACRrC,EAAiBtD,OAQzB,SACEqD,EACAC,EACApO,GAEAmO,EAAoB,OAAH,IAAG,CAAH,GAAQA,GACzBC,EAAmB,OAAH,IAAG,CAAH,GAAQA,GA+B1B,SAA0BD,EAAmBC,GAGvCD,EAAkBT,eACfS,EAAkB7D,OACrB6D,EAAkB7D,KAAO,WAEtB6D,EAAkB3D,SACrB2D,EAAkB3D,OAAS,YAKQ,SAAnC2D,EAAkBT,eACpBS,EAAkBT,aAAe,SAI/BU,EAAiBd,iBAAmBa,EAAkBzD,QAAUyD,EAAkBxD,qBAC7EyD,EAAiBd,eAhD1ByD,CAAiB5C,EAAmBC,GAEpCD,EAAkB6C,SAAW,MAE7B,IACIC,EADAC,EAAe,IAAIC,KAAKC,eAAepR,EAAQyQ,OAAOY,MAAOlD,GAGjE,GAAIC,EAAiBd,eAAgB,CACnC,IAAIgE,EAAY,OAAH,IAAG,CAAH,GAAQnD,UACdmD,EAAU9G,OACjByG,EAAa,IAAIE,KAAKC,eAAepR,EAAQyQ,OAAOY,MAAOC,GAG7D,OAAO,SAAC5L,GACA,IAAAZ,EAAWY,EAAL,OAWZ,OA2BJ,SAAqBvsB,EAAWusB,EAAmByI,EAAmBC,EAAkBpO,GACtF7mB,EAAIA,EAAE4D,QAAQixB,GAAQ,IAEiB,UAAnCG,EAAkBT,eACpBv0B,EAmCJ,SAAsBA,EAAWo4B,GAC/B,IAAIC,GAAW,EAEfr4B,EAAIA,EAAE4D,QAAQkxB,IAAQ,WAEpB,OADAuD,GAAW,EACJD,KAIJC,IACHr4B,GAAK,IAAIo4B,GAGX,OAAOp4B,EAhDDs4B,CACFt4B,EACsB,QAArB6mB,EAAQgR,UAA6C,MAAvBtL,EAAKoG,eAClC,MACAG,GAAqBvG,EAAKoG,kBAI5BsC,EAAiBZ,aACnBr0B,EAAIA,EAAE4D,QAAQ+wB,GAAU,IAAI5jB,QAG1BkkB,EAAiBd,iBACnBn0B,EAAIA,EAAE4D,QAAQ,MAAO,MAMW,IAA9BqxB,EAAiBb,SACnBp0B,EAAIA,EAAE4D,QAAQ8wB,GAAa,IAAI3jB,OACQ,WAA9BkkB,EAAiBb,SAC1Bp0B,EAAIA,EAAE4D,QAAQ8wB,IAAa,SAAC1J,EAAIC,GAAO,OAAAA,EAAGra,uBACH,UAA9BqkB,EAAiBb,SAC1Bp0B,EAAIA,EAAE4D,QAAQ8wB,IAAa,SAAC1J,EAAIC,GAAO,OAAGA,EAAGra,oBAAmB,OACzB,cAA9BqkB,EAAiBb,WAC1Bp0B,EAAIA,EAAE4D,QAAQ8wB,IAAa,SAAC1J,GAAO,OAAAA,EAAGpa,wBAMxC,OAFA5Q,GADAA,EAAIA,EAAE4D,QAAQgxB,GAAgB,MACxB7jB,OA7DGwnB,EARHT,IAAenM,EAAOsB,gBACf6K,EAEAC,GAGIxQ,OAAOoE,GAEAY,EAAMyI,EAAmBC,EAAkBpO,IApC5D2R,CAA0BxD,EAAmBC,EAAkBpO,G,SC5IxD4R,GAAkBC,EAAuB9C,GACvD,IAAIlnB,EAAIknB,EAAe+C,cAAcD,EAAS/M,QAE9C,MAAO,CACLA,OAAQ+M,EAAS/M,OACjBgH,eAAgB+F,EAAS/F,eACzBiG,MAAOlqB,EACPkd,KAAMld,EAAE,GACRsiB,MAAOtiB,EAAE,GACTuiB,IAAKviB,EAAE,GACPyiB,KAAMziB,EAAE,GACR2iB,OAAQ3iB,EAAE,GACV6iB,OAAQ7iB,EAAE,GACV8iB,YAAa9iB,EAAE,I,SClBHmqB,GACdxiB,EACA9C,EACAsT,EACAwO,GAEA,IAAIyD,EAAYL,GAAkBpiB,EAAOwQ,EAAQ+O,gBAGjD,MAAO,CACLrJ,KAAMuM,EACNziB,MAAOyiB,EACPvlB,IALYA,EAAMklB,GAAkBllB,EAAKsT,EAAQ+O,gBAAkB,KAMnEiC,SAAUhR,EAAQgR,SAClBkB,YAAalS,EAAQyQ,OAAOY,MAC5BhB,iBAAkB7B,GAA0BxO,EAAQqQ,kBClBxD,kBAGE,WAAY8B,GACVv4B,KAAKu4B,OAASA,EAUlB,OAPE,YAAAzR,OAAA,SAAOgF,EAAmB1F,EAAgCwO,GACxD,OAAOxO,EAAQoS,aAAax4B,KAAKu4B,OAAQH,GAA2BtM,EAAM,KAAM1F,EAASwO,KAG3F,YAAAD,YAAA,SAAY/e,EAAoB9C,EAAkBsT,EAAgCwO,GAChF,OAAOxO,EAAQoS,aAAax4B,KAAKu4B,OAAQH,GAA2BxiB,EAAO9C,EAAKsT,EAASwO,KAE7F,EAdA,GCNA,cAGE,WAAYzL,GACVnpB,KAAKmpB,KAAOA,EAUhB,OAPE,YAAArC,OAAA,SAAOgF,EAAmB1F,EAAgCwO,GACxD,OAAO50B,KAAKmpB,KAAKiP,GAA2BtM,EAAM,KAAM1F,EAASwO,KAGnE,YAAAD,YAAA,SAAY/e,EAAoB9C,EAAkBsT,EAAgCwO,GAChF,OAAO50B,KAAKmpB,KAAKiP,GAA2BxiB,EAAO9C,EAAKsT,EAASwO,KAErE,EAdA,G,SCEgB6D,GAAgB1I,GAC9B,MAAqB,kBAAVA,GAAsBA,EACxB,IAAI2I,GAAgB3I,GAGR,kBAAVA,EACF,IAAI4I,GAAa5I,GAGL,oBAAVA,EACF,IAAI6I,GAAc7I,GAGpB,K,IC4BI,GAAuB,CAClC,gBAAiB,GACjB,iBAAkB,GAClB,SAAU,GACV,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,2BAA4B,GAC5B,0BAA2B,GAC3B,iBAAkB,GAClB,WAAY,GACZ,gBAAiB,QACjB,YAAa,GACb,YAAa,GACb,iBAAkB,GAClB,aAAc,GACd,aAAc,GACd,cAAe,GACf,cAAe,GACf,sBAAuB,OACvB,oBAAqB,OACrB,mBAAoB,QAEpB,WAAY,QACZ,gBAAiB,GACjB,oBAAqB,GACrB,iBAAkB,GAClB,kBAAmB,GACnB,qBAAsB,GAEtB,kBAAmB,GACnB,eAAgB,GAChB,gBAAiB,GACjB,mBAAoB,GAEpB,YAAa,OACb,YAAa,OACb,SAAU,QAEV,sBAAuB,GACvB,YAAa,QACb,qBAAsB,GACtB,kBAAmB,GACnB,mBAAoB,GACpB,sBAAuB,GAEvB,SAAU,QAEV,eAAgB,GAChB,aAAc,GACd,gBAAiB,GAEjB,aAAc,QACd,uBAAwB,GACxB,oBAAqB,GACrB,qBAAsB,GACtB,wBAAyB,GAEzB,oBAAqB,QACrB,aAAc,QACd,WAAY,OACZ,SAAU,OACV,cAAe,OACf,SAAU,OACV,QAAS,GACT,OAAQ,GACR,YAAa,OACb,mBAAoB,OACpB,WAAY,QACZ,uBAAwB,QACxB,aAAc,QACd,WAAY,GACZ,W,Sf5DuCA,GACvC,IAEIn1B,EACAi+B,EAHAC,EAA8B,GAC9BC,EAAS,GAYb,IARqB,kBAAVhJ,EACTgJ,EAAShJ,EAAMhtB,MAAM,WACK,oBAAVgtB,EAChBgJ,EAAS,CAAChJ,GACDj1B,MAAME,QAAQ+0B,KACvBgJ,EAAShJ,GAGNn1B,EAAI,EAAGA,EAAIm+B,EAAOp+B,OAAQC,GAAK,EAGb,kBAFrBi+B,EAAQE,EAAOn+B,IAGbk+B,EAAMj9B,KACgB,MAApBg9B,EAAMllB,OAAO,GACX,CAAE7F,MAAO+qB,EAAM7yB,UAAU,GAAIsjB,OAAQ,GACrC,CAAExb,MAAO+qB,EAAOvP,MAAO,IAED,oBAAVuP,GAChBC,EAAMj9B,KAAK,CAAEstB,KAAM0P,IAIvB,OAAOC,GeiCP,iBAAkB,QAElB,mBAAoB,QACpB,kBAAmB,OACnB,eAAgB,OAChB,qBAAsB,OACtB,WAAY,QACZ,OAAQ,GACR,cAAe,GACf,UAAW,OACX,iBAAkB,GAClB,wBAAyB,QACzB,iBAAkB,QAClB,gBAAiB,QACjB,SAAU,OACV,0BAA2B,QAC3B,cAAe,GACf,YAAa,GACb,IAAK,GACL,mBAAoB,GACpB,kBAAmB,GACnB,sBAAuB,GACvB,WAAY,GACZ,cAAe,QACf,mBAAoB,GACpB,mBAAoB,GAEpB,aAAc,OACd,mBAAoB,QACpB,sBAAuB,QACvB,aAAc,GACd,gBAAiB,GACjB,WAAY,GACZ,qBAAsB,OACtB,iBAAkB,OAClB,eAAgB,OAChB,WAAY,OACZ,gBAAiB,GACjB,aAAc,GACd,cAAe,GACf,iBAAkB,GAElB,iBAAkB,GAClB,cAAe,GACf,YAAa,GAEb,UAAW,QACX,eAAgB,OAEhB,gBAAiB,GAEjB,mBAAoB,GACpB,gBAAiB,GACjB,iBAAkB,GAClB,oBAAqB,GAErB,oBAAqB,GACrB,iBAAkB,GAClB,kBAAmB,GACnB,qBAAsB,GAEtB,aAAc,GACd,gBAAiB,GACjB,YAAa,OACb,kBAAmB,GAEnB,WAAY,OACZ,iBAAkB,GAClB,cAAe,GACf,eAAgB,GAChB,kBAAmB,GAEnB,aAAc,OACd,SAAU,QACV,gBAAiB,GACjB,cAAe,OACf,aAAc,GACd,kBAAmB,OACnB,WAAY,QACZ,qBAAsB,OACtB,oBAAqB,OAErB,aAAc,QACd,cAAe,OACf,eAAgB,OAChB,cAAe,OACf,iBAAkB,OAClB,iBAAkB,QAClB,QAAS,GACT,SAAU,OACV,SAAU,OACV,cAAe,OACf,cAAe,GACf,WAAY,GACZ,UAAW,QACX,eAAgB,QAChB,WAAY,GACZ,aAAc,GACd,YAAa,GAGb,aAAc,OAEd,cAAe,GACf,mBAAoB,GACpB,gBAAiB,GACjB,iBAAkB,GAClB,oBAAqB,IAeV,GAAuB,CAClC,aAAc,OACd,sBAAuB,MACvB,oBAAqB,WACrB,0BAA2B,WAC3B,2BAA4B,CAAE,IAAK,GACnC,oBAAoB,EACpB,iBAAkB,WAClB,YAAY,EACZ,YAAa,GACb,YAAa,KACb,cAAe,CACb,MAAO,QACP,OAAQ,GACR,IAAK,mBAEP,UAAU,EACV,aAAa,EACb,sBAAuB,QACvB,UAAU,EACV,cAAc,EACd,WAAY,WACZ,iBAAiB,EACjB,YAAa,WACb,YAAa,WACb,qBAAqB,EACrB,cAAc,EACd,WAAY,QACZ,SAAU,MACV,cAAe,WACf,SAAU,QACV,QAAS,GACT,OAAQ,GACR,YAAa,WACb,mBAAoB,IACpB,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,WAAY,IACZ,WAAY,+BACZ,iBAAkB,CAAE,MAAO,OAAQ,IAAK,UAAW,KAAM,WACzD,oBAAoB,EACpB,kBAAmB,IACnB,eAAgB,IAChB,qBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAgB,GAChB,cAAe,GACf,iBAAkB,IAWP,GAA6B,CACxC,SAAU,GACV,UAAW,GACX,SAAU,GACV,YAAa,GACb,YAAa,GACb,aAAc,GACd,WAAY,GACZ,gBAAiB,GACjB,gBAAiB,GACjB,OAAQ,GACR,SAAU,GACV,QAAS,GAGT,SAAU,GACV,aAAc,GACd,YAAa,GACb,aAAc,GACd,eAAgB,GAChB,QAAS,GACT,eAAgB,IAeL,GAA2B,CACtC,WAAY,GACZ,MAAO,GACP,QAAS,GACT,cAAe,GACf,OAAQ,GACR,aAAc,IAmBH,GAET,CACF,cAAe,GACf,cAAe,GACf,WAAY,GACZ,YAAa,IAGf,SAAS,GAAmB,EAAG,GAC7B,MAAiB,kBAAN,GAA+B,kBAAN,GAAkB,GAAK,EAClD,GAAa,EAAG,GAElB,IAAM,EAMR,IAAM,GAET,CACF,KAAM,OACN,UAAW,GACX,WAAY,OACZ,cAAe,OACf,0BAA2B,GAC3B,eAAgB,QAChB,WAAY,GACZ,QAAS,GACT,SAAU,GACV,YAAa,I,SAsBC,GAAgB,GAC9B,OAAO,GAAW,EAAY,I,SAGhB,GACd,EACA,GAKA,IAAI,EAAU,GACV,EAAQ,GAEZ,IAAK,IAAI,KAAY,EACf,KAAY,IACd,EAAQ,GAAY,EAAS,GAAU,EAAM,KAIjD,IAAK,IAAI,KAAY,EACb,KAAY,IAChB,EAAM,GAAY,EAAM,IAI5B,MAAO,CAAE,QAAO,EAAE,MAAK,G,SAkCT,GAAY,GAC1B,OAAO,E,SC7cOE,GACdC,EACAC,EACA9S,EACA+S,GAKA,IAHA,IAAIzK,EAoDG,CAAEhd,KAAM,GAAIod,UAAW,IAnD1BsK,EAAgBC,GAAmBjT,GAElB,MAAA6S,EAAA,eAAW,CAA3B,IACCK,EAAQC,GADG,KACkBL,EAAa9S,EAAS+S,EAAgBC,GAEnEE,GACFE,GAAkBF,EAAO5K,GAI7B,OAAOA,E,SAGO8K,GAAkBF,EAAmB5K,GAOnD,YAPmD,IAAAA,MAsC5C,CAAEhd,KAAM,GAAIod,UAAW,KArC9BJ,EAAWhd,KAAK4nB,EAAMtK,IAAIjC,OAASuM,EAAMtK,IAErCsK,EAAMl7B,WACRswB,EAAWI,UAAUwK,EAAMl7B,SAAS8uB,YAAcoM,EAAMl7B,UAGnDswB,E,SAMO+K,GAAkB/K,EAAwBxB,GACxD,IAAI9uB,EAAWswB,EAAWI,UAAU5B,GAEpC,GAAI9uB,EAAU,CACZ,IAAI,EAAMswB,EAAWhd,KAAKtT,EAAS2uB,OAG/B2M,EAAWC,GAAqBjL,GAAY,SAACkL,GAAY,OAarCC,EAbwD,EAaxCC,EAb6CF,EAchFtgB,QAAQugB,EAAKE,SAAWF,EAAKE,UAAYD,EAAKC,SADvD,IAA4BF,EAAgBC,KANxC,OAHAJ,EAAShoB,KAAK,EAAIqb,OAAS,EAC3B2M,EAAS5K,UAAU1wB,EAAS8uB,YAAc9uB,EAEnCs7B,EAGT,MAQO,CAAEhoB,KAAM,GAAIod,UAAW,I,SADhBkL,KACd,MAAO,CAAEtoB,KAAM,GAAIod,UAAW,I,SAGhBmL,GAAiBC,EAAoBC,GACnD,MAAO,CACLzoB,KAAM,OAAF,IAAE,CAAF,eAAOwoB,EAAOxoB,MAASyoB,EAAOzoB,MAClCod,UAAW,OAAF,IAAE,CAAF,eAAOoL,EAAOpL,WAAcqL,EAAOrL,Y,SAIhC6K,GAAqBjL,EAAwB0L,GAC3D,IAAI1oB,EAAO+b,GAAWiB,EAAWhd,KAAM0oB,GACnCtL,EAAYrB,GAAWiB,EAAWI,WAAW,SAAC1wB,GAA4B,OAC5EsT,EAAKtT,EAAS2uB,UAEhB,MAAO,CAAErb,KAAI,EAAEod,UAAS,G,SCzFVuL,GAAgBC,GAC9B,OAAIx/B,MAAME,QAAQs/B,GACTA,EAGU,kBAARA,EACFA,EAAIv3B,MAAM,OAGZ,GCFF,IAAMw3B,GAAoB,CAC/BryB,QAASmI,OACTmqB,SAAUlhB,QACVmhB,cAAenhB,QACfohB,iBAAkBphB,QAClBqhB,WAAYC,GACZC,QAASD,GACT/kB,MAAO+kB,GACPr9B,UAAW88B,GACXp9B,WAAYo9B,GACZS,MAAOzqB,OACP0qB,gBAAiB1qB,OACjB2qB,YAAa3qB,OACb4qB,UAAW5qB,QAGP6qB,GAA0B,CAC9BhzB,QAAS,KACTuyB,cAAe,KACfC,iBAAkB,KAClBS,YAAa,GACbN,QAAS,KACTO,OAAQ,GACRL,gBAAiB,GACjBC,YAAa,GACbC,UAAW,GACXh+B,WAAY,I,SA2BEo+B,GAAcC,EAAyBlV,GACrD,IAAIuU,E,SCjD8B5K,EAAwB3J,GAC1D,OAAItrB,MAAME,QAAQ+0B,GACTiJ,GAAYjJ,EAAO,KAAM3J,GAAS,GACpB,kBAAV2J,GAAsBA,EAC1BiJ,GAAY,CAACjJ,GAAQ,KAAM3J,GAAS,GAC9B,MAAT2J,EACG1f,OAAO0f,GAET,KDyCUwL,CAAoBD,EAAQX,WAAYvU,GAEzD,MAAO,CACLle,QAASozB,EAAQpzB,SAAW,KAC5BuyB,cAAwC,MAAzBa,EAAQb,cAAwBa,EAAQb,cAAgBa,EAAQd,SAC/EE,iBAA8C,MAA5BY,EAAQZ,iBAA2BY,EAAQZ,iBAAmBY,EAAQd,SACxFW,YAA2B,MAAdR,EAAqB,CAACA,GAAc,GACjDE,QAA4B,MAAnBS,EAAQT,QAAkBS,EAAQT,QAAU,KACrDO,OAAyB,MAAjBE,EAAQzlB,MAAgB,CAACylB,EAAQzlB,OAAS,GAClDklB,gBAAiBO,EAAQP,iBAAmBO,EAAQR,OAAS,GAC7DE,YAAaM,EAAQN,aAAeM,EAAQR,OAAS,GACrDG,UAAWK,EAAQL,WAAa,GAChCh+B,YAAaq+B,EAAQ/9B,WAAa,IAAIQ,OAAOu9B,EAAQr+B,YAAc,K,SAKvDu+B,GAAgBC,GAC9B,OAAOA,EAAI5sB,OAAO6sB,GAAoBR,IAGxC,SAASQ,GAAmBC,EAAgBC,GAC1C,MAAO,CACL1zB,QAA0B,MAAjB0zB,EAAM1zB,QAAkB0zB,EAAM1zB,QAAUyzB,EAAMzzB,QACvDuyB,cAAsC,MAAvBmB,EAAMnB,cAAwBmB,EAAMnB,cAAgBkB,EAAMlB,cACzEC,iBAA4C,MAA1BkB,EAAMlB,iBAA2BkB,EAAMlB,iBAAmBiB,EAAMjB,iBAClFS,YAAaQ,EAAMR,YAAYp9B,OAAO69B,EAAMT,aAC5CN,QAAkC,mBAAlBe,EAAMf,QAAwBe,EAAMf,QAAUc,EAAMd,QACpEO,OAAQO,EAAMP,OAAOr9B,OAAO69B,EAAMR,QAClCL,gBAAiBa,EAAMb,iBAAmBY,EAAMZ,gBAChDC,YAAaY,EAAMZ,aAAeW,EAAMX,YACxCC,UAAWW,EAAMX,WAAaU,EAAMV,UACpCh+B,WAAY0+B,EAAM1+B,WAAWc,OAAO69B,EAAM3+B,aEnFvC,IAAM4+B,GAA0B,CACrC/X,GAAIzT,OACJ0pB,QAAS1pB,OACTyrB,MAAOzrB,OACPwW,IAAKxW,QAGM0rB,GAAsB,CACjCnmB,MAAOglB,GACP9nB,IAAK8nB,GACL9O,KAAM8O,GACN3L,OAAQ3V,SAGJ0iB,GAAiB,OAAH,IAAG,CAAH,2BACfH,IACAE,IAAmB,CACtBE,cAAerB,K,SA0BDrB,GACde,EACApB,EACA9S,EACA+S,EACA+C,QAAA,IAAAA,MAAW7C,GAAmBjT,IAE1B,MAAqB+V,GAAe7B,EAAKlU,EAAS8V,GAAhDZ,EAAO,UAAEc,EAAK,QAEhBC,EA2JN,SAAgCnD,EAAsC9S,GACpE,IAAI0L,EAAM,KAENoH,IACFpH,EAAMoH,EAAYmD,eAGT,MAAPvK,IACFA,EAAM1L,EAAQ9U,QAAQ+qB,eAGxB,OAAOvK,EAtKawK,CAAuBpD,EAAa9S,GACpDmW,E,ShBtCJjB,EACAe,EACAzN,EACAS,GAEA,IAAK,IAAIz0B,EAAI,EAAGA,EAAIy0B,EAAe10B,OAAQC,GAAK,EAAG,CACjD,IAAI4hC,EAASnN,EAAez0B,GAAG6hC,MAAMnB,EAAS1M,GAE9C,GAAI4N,EAAQ,CACJ,IAAAvN,EAAWqM,EAAL,OAWZ,OAVc,MAAVrM,GAEY,OADdA,EAASoN,IAGO,OADdpN,EAASuN,EAAOE,eAEdzN,GAAS,GAKR,CACLA,OAAM,EACN3mB,SAAUk0B,EAAOl0B,SACjBonB,SAAU8M,EAAO9M,SACjBF,OAAQ50B,IAKd,OAAO,KgBSY+hC,CACjBrB,EACAe,EACAjW,EAAQwI,QACRxI,EAAQyI,YAAYQ,gBAGtB,GAAIkN,EAgBF,OAfIvN,EAAM4N,GACRtB,EACAc,EACAlD,EAAcA,EAAY3S,SAAW,GACrCgW,EAAatN,OACb3V,QAAQijB,EAAaj0B,UACrB8d,IAGE2I,aAAe,CACjBS,OAAQ+M,EAAa/M,OACrBE,SAAU6M,EAAa7M,SACvBpnB,SAAUi0B,EAAaj0B,UAGlB,CAAE0mB,IAAG,EAAE5wB,SAAU,MAE1B,IAGM4wB,EAHF6N,EA4DN,SAAqBvB,EAAuBe,EAA+BjW,EAA0B+S,GAC7F,IACF2D,EAGAC,EAJE9N,EAAWqM,EAAL,OAER0B,EAAc,KACdC,GAAS,EAETC,EAAY,KAEZC,EAA8B,MAAjB7B,EAAQ1lB,MAAgB0lB,EAAQ1lB,MAAQ0lB,EAAQxP,KAGjE,GAFAgR,EAAY1W,EAAQwI,QAAQwO,iBAAiBD,GAG3CH,EAAcF,EAAU5R,YACnB,IAAKiO,EACV,OAAO,KAGU,MAAfmC,EAAQxoB,MACViqB,EAAU3W,EAAQwI,QAAQwO,iBAAiB9B,EAAQxoB,MAGvC,MAAVmc,IAEAA,EADmB,MAAjBoN,EACOA,IAGES,GAAaA,EAAUO,sBAC9BN,GAAWA,EAAQM,oBAIvBpO,GAAU+N,IACZA,EAAcnS,EAAWmS,IAGvBD,IACFG,EAAYH,EAAQ7R,OAEhB+D,IACFiO,EAAYrS,EAAWqS,IAGrBF,GAAeE,GAAaF,IAC9BE,EAAY,OAIZA,EACFD,GAAS,EACC9D,IACV8D,EAAS7W,EAAQ9U,QAAQgsB,qBAAsB,EAE/CJ,EAAY9W,EAAQwI,QAAQ5rB,IAC1Bg6B,EACA/N,EACE7I,EAAQ9U,QAAQ4d,2BAChB9I,EAAQ9U,QAAQ6d,4BAItB,MAAO,CACLF,OAAM,EACNgO,OAAM,EACNrqB,MAAO,CAAEgD,MAAOonB,EAAalqB,IAAKoqB,GAClClQ,eAAgB8P,EAAYA,EAAUS,UAAY,KAClDtQ,aAAc8P,EAAUA,EAAQQ,UAAY,MA7H9BC,CAAYlC,EAASe,EAAejW,EAAS+S,GAE7D,OAAI0D,EAIK,CAAE7N,IAHLA,EAAM4N,GAActB,EAASc,EAAOlD,EAAcA,EAAY3S,SAAW,GAAIsW,EAAU5N,OAAQ4N,EAAUI,OAAQ7W,GAGvGhoB,SAFC0uB,EAAoBkC,EAAIjC,MAAO8P,EAAUjqB,MAAOiqB,EAAU7P,eAAgB6P,EAAU5P,eAK9F,K,SAGOkP,GAAe7B,EAAiBlU,EAA0B8V,GACxE,YADwE,IAAAA,MAAW7C,GAAmBjT,IAC/FqX,GAAYnD,EAAK4B,G,SAGV7C,GAAmBjT,GACjC,8CAAYmU,IAAsByB,IAAmB5V,EAAQyI,YAAYuK,e,SAO3DwD,GACdtB,EACAc,EACA7V,EACA0I,EACAgO,EACA7W,GAmBA,IAjBA,IAAI4I,EAAgB,CAClB8M,MAAOR,EAAQQ,OAAS,GACxB/B,QAASuB,EAAQvB,SAAW,GAC5BpT,SAAU2U,EAAQxX,IAAM,GACxB+C,IAAKyU,EAAQzU,KAAO,GACpBkI,aAAc,KACdhC,MAAOtE,IACPlC,SAAQ,EACR0I,OAAM,EACNgO,OAAM,EACNS,GAAIrC,GAAcC,EAASlV,GAC3B6V,cAAe,OAAF,IAAE,CAAF,eACPX,EAAQW,eAAiB,IAC1BG,IAIiB,MAAAhW,EAAQyI,YAAY8O,qBAApB,eAA0C,CAA7D,IAAIC,EAAW,KAClB,YAAS5O,EAAK4O,EAAYtC,IAO5B,OAHAl/B,OAAOyhC,OAAO7O,EAAI0O,GAAGzgC,YACrBb,OAAOyhC,OAAO7O,EAAIiN,eAEXjN,E,SCzIO8O,GAAuBC,GACrC,IAAIC,EAAS54B,KAAKsmB,MAAMjB,EAASsT,EAAWnoB,MAAOmoB,EAAWjrB,OAAS,EACnE8C,EAAQiV,EAAWkT,EAAWnoB,OAElC,MAAO,CAAEA,MAAK,EAAE9C,IADNsX,EAAQxU,EAAOooB,I,SAMXC,GAAuBF,EAA2BG,QAAA,IAAAA,MAA6BpO,GAAe,IAC5G,IAAIqO,EAAuB,KACvBC,EAAqB,KAEzB,GAAIL,EAAWjrB,IAAK,CAClBsrB,EAASvT,EAAWkT,EAAWjrB,KAE/B,IAAIurB,EAAoBN,EAAWjrB,IAAIyG,UAAY6kB,EAAO7kB,UAKtD8kB,GAAaA,GAAa3M,GAAUwM,KACtCE,EAAShU,EAAQgU,EAAQ,IAa7B,OATIL,EAAWnoB,QACbuoB,EAAWtT,EAAWkT,EAAWnoB,OAG7BwoB,GAAUA,GAAUD,IACtBC,EAAShU,EAAQ+T,EAAU,KAIxB,CAAEvoB,MAAOuoB,EAAUrrB,IAAKsrB,G,SAUjBE,GAAUC,EAAmBC,EAAmB5P,EAAkB6P,GAChF,MAAkB,SAAdA,EACK3O,GAAelB,EAAQ8P,eAAeH,EAAOC,GAAQ,QAG5C,UAAdC,EACK3O,GAAelB,EAAQ+P,gBAAgBJ,EAAOC,GAAQ,S,SpBZlCjU,EAAgBC,GAC7C,IAAIoU,EAAQ/T,EAAWN,GACnBsU,EAAQhU,EAAWL,GAEvB,MAAO,CACL0F,MAAO,EACPC,OAAQ,EACR1E,KAAMrmB,KAAKwlB,MAAMH,EAASmU,EAAOC,IACjCzO,aAAe5F,EAAGjR,UAAYslB,EAAMtlB,WAAcgR,EAAGhR,UAAYqlB,EAAMrlB,YoBOlEulB,CAAeP,EAAOC,G,SCrBfO,GAAaC,EAAqBC,GAChD,IAEIrkC,EACAskC,EAHAC,EAA8B,GAC5BvpB,EAAUqpB,EAAL,MAOX,IAFAD,EAAOI,KAAKC,IAEPzkC,EAAI,EAAGA,EAAIokC,EAAOrkC,OAAQC,GAAK,GAClCskC,EAAYF,EAAOpkC,IAGLgb,MAAQA,GACpBupB,EAAetjC,KAAK,CAAE+Z,MAAK,EAAE9C,IAAKosB,EAAUtpB,QAG1CspB,EAAUpsB,IAAM8C,IAClBA,EAAQspB,EAAUpsB,KAStB,OAJI8C,EAAQqpB,EAAgBnsB,KAC1BqsB,EAAetjC,KAAK,CAAE+Z,MAAK,EAAE9C,IAAKmsB,EAAgBnsB,MAG7CqsB,EAGT,SAASE,GAAcC,EAAmBC,GACxC,OAAOD,EAAO1pB,MAAM2D,UAAYgmB,EAAO3pB,MAAM2D,U,SAG/BimB,GAAgBF,EAAuBC,GAC/C,IAAA3pB,EAAe0pB,EAAV,MAAExsB,EAAQwsB,EAAL,IACZG,EAAW,KAsBf,OApBqB,OAAjBF,EAAO3pB,QAEPA,EADY,OAAVA,EACM2pB,EAAO3pB,MAEP,IAAInN,KAAKrD,KAAKC,IAAIuQ,EAAM2D,UAAWgmB,EAAO3pB,MAAM2D,aAI1C,MAAdgmB,EAAOzsB,MAEPA,EADU,OAARA,EACIysB,EAAOzsB,IAEP,IAAIrK,KAAKrD,KAAKs6B,IAAI5sB,EAAIyG,UAAWgmB,EAAOzsB,IAAIyG,cAIxC,OAAV3D,GAA0B,OAAR9C,GAAgB8C,EAAQ9C,KAC5C2sB,EAAW,CAAE7pB,MAAK,EAAE9C,IAAG,IAGlB2sB,E,SAQOE,GAAgBL,EAAuBC,GACrD,OAAuB,OAAfD,EAAOxsB,KAAiC,OAAjBysB,EAAO3pB,OAAkB0pB,EAAOxsB,IAAMysB,EAAO3pB,SACxD,OAAjB0pB,EAAO1pB,OAAiC,OAAf2pB,EAAOzsB,KAAgBwsB,EAAO1pB,MAAQ2pB,EAAOzsB,K,SAG3D8sB,GAAmBC,EAA2BC,GAC5D,OAA6B,OAArBD,EAAWjqB,OAAwC,OAArBkqB,EAAWlqB,OAAkBkqB,EAAWlqB,OAASiqB,EAAWjqB,SAC5E,OAAnBiqB,EAAW/sB,KAAoC,OAAnBgtB,EAAWhtB,KAAgBgtB,EAAWhtB,KAAO+sB,EAAW/sB,K,SAGzEitB,GAAoBntB,EAAsBkZ,GACxD,OAAwB,OAAhBlZ,EAAMgD,OAAkBkW,GAAQlZ,EAAMgD,SAC7B,OAAdhD,EAAME,KAAgBgZ,EAAOlZ,EAAME,K,SC9FxBktB,GAAgBtR,EAAwBuR,EAA2BtR,EAAyBuP,GAC1G,IAAIgC,EAAyD,GACzDC,EAAqD,GACrDC,EAAgD,GAChDC,EAA+B,GAC/BC,EAA+B,GAC/BC,EAAWC,GAAgB9R,EAAWhd,KAAMuuB,GAEhD,IAAK,IAAIlT,KAAS2B,EAAWhd,KAAM,CAId,wBAFfgsB,EAAK6C,GADLvR,EAAMN,EAAWhd,KAAKqb,IACJA,QAEf7kB,UACD8mB,EAAI+K,SACNmG,EAAmBlR,EAAI+K,SAAW,GAE7BqG,EAAapR,EAAI+K,WACpBqG,EAAapR,EAAI+K,SAAW/K,IAG9BmR,EAAiBpT,GAAS,IAKhC,IAAK,IAAIG,KAAcwB,EAAWI,UAAW,CAC3C,IAAI1wB,EAAWswB,EAAWI,UAAU5B,GAEhCwQ,EAAK6C,GADLvR,EAAMN,EAAWhd,KAAKtT,EAAS2uB,QACbA,OAClB0T,EAAYriC,EAASwU,MAErB8tB,GAAgB1R,EAAIC,QAAUiP,EAChCD,GAAuBwC,EAAWvC,GAClCuC,EAEEE,EAAcnB,GAAgBkB,EAAa/R,GAE3CgS,IACiB,uBAAfjD,EAAGx1B,QACD8mB,EAAI+K,QACNmG,EAAmBlR,EAAI+K,SAASl+B,KAAK8kC,GAErCR,EAAiB/hC,EAAS2uB,OAAOlxB,KAAK8kC,GAEhB,SAAfjD,EAAGx1B,UACI,eAAfw1B,EAAGx1B,QAA2Bm4B,EAAWC,GAAUzkC,KAAK,CACvDmzB,IAAG,EACH0O,GAAE,EACFt/B,SAAQ,EACRwU,MAAO+tB,EACPC,QAASF,EAAY9qB,OAAS8qB,EAAY9qB,MAAM2D,YAAconB,EAAY/qB,MAAM2D,UAChFsnB,MAAOH,EAAY5tB,KAAO4tB,EAAY5tB,IAAIyG,YAAconB,EAAY7tB,IAAIyG,aAMhF,IAAK,IAAIwgB,KAAWmG,EAIlB,IAHA,IAG0B,MAFLnB,GADRmB,EAAmBnG,GACUpL,GAEhB,eAAgB,CAArC,IACCK,EADG8R,EAAa,KAEhBpD,EAAK6C,GADLvR,EAAMoR,EAAarG,IACDhN,OAEtBsT,EAASxkC,KAAK,CACZmzB,IAAG,EACH0O,GAAE,EACFt/B,SAAU,KACVwU,MAAOkuB,EACPF,SAAS,EACTC,OAAO,IAKb,IAAK,IAAI9T,KAASoT,EAIhB,IAHA,IAG0B,MAFLpB,GADRoB,EAAiBpT,GACY4B,GAEhB,eAAgB,CAAjCmS,EAAa,KACpBT,EAASxkC,KAAK,CACZmzB,IAAKN,EAAWhd,KAAKqb,GACrB2Q,GAAI6C,EAASxT,GACb3uB,SAAU,KACVwU,MAAOkuB,EACPF,SAAS,EACTC,OAAO,IAKb,MAAO,CAAEE,GAAIV,EAAUW,GAAIV,G,SAGbW,GAAejS,GAC7B,MAA0B,eAAnBA,EAAI0O,GAAGx1B,SAA+C,uBAAnB8mB,EAAI0O,GAAGx1B,Q,SAGnCg5B,GAASjhC,EAAiBkhC,GACvClhC,EAAWmhC,MAAQD,E,SAGNE,GAASphC,GACvB,OAAQA,EAAWmhC,OAChBnhC,EAAGwC,WAAmB2+B,OACvB,K,SAKYZ,GAAgBc,EAAyBrB,GACvD,OAAOrS,GAAQ0T,GAAW,SAAChS,GAAuB,OAAAiS,GAAejS,EAAU2Q,M,SAG7DsB,GAAejS,EAAoB2Q,GACjD,IAAIxE,EAAM,GAYV,OAVIwE,EAAa,KACfxE,EAAI5/B,KAAKokC,EAAa,KAGpBA,EAAa3Q,EAASvC,QACxB0O,EAAI5/B,KAAKokC,EAAa3Q,EAASvC,QAGjC0O,EAAI5/B,KAAKyzB,EAASoO,IAEXlC,GAAgBC,G,SAGT+F,GAAcC,EAAMC,GAClC,IAAIC,EAAOF,EAAK9jC,IAAIikC,IAIpB,OAFAD,EAAKvC,MAAK,SAACnW,EAAMrb,GAAS,O,SvBtEiBqb,EAAerb,EAAei0B,GACzE,IAAIjnC,EACAknC,EAEJ,IAAKlnC,EAAI,EAAGA,EAAIinC,EAAWlnC,OAAQC,GAAK,EAEtC,GADAknC,EAAM9Y,EAAmBC,EAAMrb,EAAMi0B,EAAWjnC,IAE9C,OAAOknC,EAIX,OAAO,EuB2DmBC,CAAoB9Y,EAAMrb,EAAM8zB,MAEnDC,EAAKhkC,KAAI,SAACM,GAAM,OAAAA,EAAE+jC,Q,SAIXJ,GAAmBT,GAC3B,IAAAc,EAAed,EAAL,WACZ7R,EAAW2S,EAAWjT,IACtBpc,EAAQqvB,EAAW7jC,SAAW6jC,EAAW7jC,SAASwU,MAAQqvB,EAAWrvB,MACrEgD,EAAQhD,EAAMgD,MAAQhD,EAAMgD,MAAM2D,UAAY,EAC9CzG,EAAMF,EAAME,IAAMF,EAAME,IAAIyG,UAAY,EAE5C,8CACK+V,EAAS2M,eACT3M,GAAQ,CACXxL,GAAIwL,EAAS3I,SACb/Q,MAAK,EACL9C,IAAG,EACHxK,SAAUwK,EAAM8C,EAChBqZ,OAAQiT,OAAO5S,EAASL,QACxB+S,KAAMb,I,SA6BMgB,GAAoBhB,EAAU/a,GAM5C,IALM,IACFgc,EADkBhc,EAAL,YACcic,wBAC3B,EAAclB,EAAIc,WAAhBjT,EAAG,MAAE0O,EAAE,KACTrnB,EAAMqnB,EAAGjD,cAEW,MAAA2H,EAAA,eAAc,CACpC/rB,GAAMisB,EADY,MACAjsB,EAAK2Y,EAAK0O,EAAItX,GAGlC,OAAO/P,E,SAGOksB,GAAyBpB,EAAU/a,GACjD,OAAO+a,EAAIP,SAAWO,EAAIc,WAAWvE,GAAGhD,kBAAoBtU,EAAQ9U,QAAQkxB,wB,SAG9DC,GAAuBtB,EAAU/a,GAC/C,OAAO+a,EAAIN,OAASM,EAAIc,WAAWvE,GAAGhD,iB,SAGxBgI,GACdvB,EACAwB,EACAvc,EACAwc,EACAC,EACAC,EACAC,GAEM,IAAAnU,EAAqBxI,EAAd,QAAE9U,EAAY8U,EAAL,QAChB4c,EAAsC1xB,EAAtB,iBAAE2xB,EAAoB3xB,EAAL,gBACnCge,EAAW6R,EAAIc,WAAWjT,IAC1BkU,EAAgB/B,EAAIc,WAAW7jC,SAEX,MAApB4kC,IAA4BA,GAA+C,IAA5BJ,GAC5B,MAAnBK,IAA2BA,GAA6C,IAA3BJ,GAEjD,IAAIM,EAAkBD,EAActwB,MAAMgD,MACtCwtB,EAAgBF,EAActwB,MAAME,IACpCuwB,EAAWP,GAAiB3B,EAAIvrB,OAASurB,EAAIc,WAAWrvB,MAAMgD,MAC9D0tB,EAASP,GAAe5B,EAAIruB,KAAOquB,EAAIc,WAAWrvB,MAAME,IACxDywB,EAAa1Y,EAAWsY,GAAiB5pB,YAAcsR,EAAWwY,GAAU9pB,UAC5EiqB,EAAW3Y,EAAWR,EAAM+Y,GAAgB,IAAI7pB,YAAcsR,EAAWR,EAAMiZ,GAAS,IAAI/pB,UAEhG,OAAIypB,IAAqB1T,EAASL,SAAWsU,GAAcC,IACzDH,EAAWE,EAAaJ,EAAkBE,EAC1CC,EAASE,EAAWJ,EAAgBE,EAEhCL,GAAmB3T,EAAS2N,OACvBrO,EAAQ+F,YAAY0O,EAAUC,EAAQX,EAAY,CACvD3V,eAAgB8V,EAAgB,KAAOI,EAAclW,eACrDC,aAAc8V,EAAc,KAAOG,EAAcjW,eAG9C2B,EAAQ9H,OAAOuc,EAAUV,EAAY,CAC1CpF,UAAWuF,EAAgB,KAAOI,EAAclW,kBAI7C,G,SAGOyW,GAAWtC,EAAUuC,EAAuBC,GAC1D,IAAIC,EAAWzC,EAAIc,WAAWrvB,MAE9B,MAAO,CACLixB,OAAQD,EAAS9wB,KAAO6wB,GAAWD,EAAW9tB,OAC9CkuB,SAAUF,EAAShuB,QAAU+tB,GAAWD,EAAW5wB,KACnDixB,QAASL,GAAc3D,GAAoB2D,EAAYE,EAAShuB,Q,SAsDpDouB,GAAmB/B,GACjC,OAAOA,EAAW7jC,SACd6jC,EAAW7jC,SAAS8uB,WACjB+U,EAAWjT,IAAIjC,MAAK,IAAIkV,EAAWrvB,MAAMgD,MAAMwc,cCrRxD,IAAM6R,GAAiB,CACrBruB,MAAOglB,GACP9nB,IAAK8nB,GACL3L,OAAQ3V,S,SAGM4qB,GAAc5J,EAAoB1L,EAAkBuV,GAClE,IAAIC,E,SAqB4B9J,EAAwB1L,GACpD,MAAoC6O,GAAYnD,EAAK2J,IAA1CI,EAAa,UAAEjI,EAAK,QAC/BU,EAAYuH,EAAczuB,MAAQgZ,EAAQwO,iBAAiBiH,EAAczuB,OAAS,KAClFmnB,EAAUsH,EAAcvxB,IAAM8b,EAAQwO,iBAAiBiH,EAAcvxB,KAAO,KAC1Emc,EAAWoV,EAAL,OAEE,MAAVpV,IACFA,EAAU6N,GAAaA,EAAUO,qBAC7BN,GAAWA,EAAQM,oBAGzB,oBACEzqB,MAAO,CACLgD,MAAOknB,EAAYA,EAAU5R,OAAS,KACtCpY,IAAKiqB,EAAUA,EAAQ7R,OAAS,MAElC+D,OAAM,GACHmN,GAtCMkI,CAAkBhK,EAAK1L,GAC5Bhc,EAAUwxB,EAAL,MAEX,IAAKxxB,EAAMgD,MACT,OAAO,KAGT,IAAKhD,EAAME,IAAK,CACd,GAAuB,MAAnBqxB,EACF,OAAO,KAETvxB,EAAME,IAAM8b,EAAQ5rB,IAAI4P,EAAMgD,MAAOuuB,GAGvC,OAAOC,E,SA4BOG,GAAiBC,EAAiBC,GAChD,OFN0BnF,EEMPkF,EAAM5xB,MFNwB2sB,EEMjBkF,EAAM7xB,OFLb,OAAjB0sB,EAAO1pB,MAAiB,KAAO0pB,EAAO1pB,MAAM2D,cAAiC,OAAjBgmB,EAAO3pB,MAAiB,KAAO2pB,EAAO3pB,MAAM2D,aAC9F,OAAf+lB,EAAOxsB,IAAe,KAAOwsB,EAAOxsB,IAAIyG,cAA+B,OAAfgmB,EAAOzsB,IAAe,KAAOysB,EAAOzsB,IAAIyG,YEKjGirB,EAAMvV,SAAWwV,EAAMxV,QAK3B,SAA0BuV,EAAiBC,GACzC,IAAK,IAAIjd,KAAYid,EACnB,GAAiB,UAAbjd,GAAqC,WAAbA,GACtBgd,EAAMhd,KAAcid,EAAMjd,GAC5B,OAAO,EAOb,IAAK,IAAIA,KAAYgd,EACnB,KAAMhd,KAAYid,GAChB,OAAO,EAIX,OAAO,EArBLC,CAAiBF,EAAOC,G,IFRAnF,EAAuBC,E,SEuCnCoF,GAA0B/xB,EAAkBgc,EAAkBgW,GAC5E,kCACKC,GAAcjyB,EAAOgc,EAASgW,IAAS,CAC1CxN,SAAUxI,EAAQwI,W,SAINyN,GAAcjyB,EAAkBgc,EAAkBgW,GAChE,MAAO,CACLhvB,MAAOgZ,EAAQkW,OAAOlyB,EAAMgD,OAC5B9C,IAAK8b,EAAQkW,OAAOlyB,EAAME,KAC1BiyB,SAAUnW,EAAQoW,UAAUpyB,EAAMgD,MAAO,CAAEgvB,SAAQ,IACnDK,OAAQrW,EAAQoW,UAAUpyB,EAAME,IAAK,CAAE8xB,SAAQ,K,SAInCM,GAAoBC,EAAoBlF,EAA2B7Z,GACjF,IAAI0L,EAAMqK,GAAe,CAAE3B,UAAU,GAASpU,GAC1C4I,EAAM4N,GACR9K,EAAIwJ,QACJxJ,EAAIsK,MACJ,GACA+I,EAASlW,QACT,EACA7I,GAGF,MAAO,CACL4I,IAAG,EACH0O,GAAI6D,GAAevS,EAAKiR,GACxB7hC,SAAU0uB,EAAoBkC,EAAIjC,MAAOoY,EAASvyB,OAClDA,MAAOuyB,EAASvyB,MAChBguB,SAAS,EACTC,OAAO,G,SChJKuE,GAAkBC,EAAqBC,EAA8Blf,GACnFA,EAAQmf,QAAQC,QAAQ,SAAUC,2BAC7BC,GAA4BL,EAAWjf,IAAQ,CAClDuf,QAASL,EAAMA,EAAIM,UAA0B,KAC7CC,KAAMzf,EAAQ0f,SAAW1f,EAAQ2f,YAAYF,Q,SAgBjCH,GAA4BP,EAAoB/e,GAG9D,IAFA,IDmF+Bge,EAAgBxV,ECnF3CpwB,EAAQ,GAEU,MAAA4nB,EAAQyI,YAAYmX,mBAApB,eAAwC,CAAzD,IAAIC,EAAS,KAChB,YAASznC,EAAOynC,EAAUd,EAAU/e,IAKtC,OAFA,YAAS5nB,GD6EsB4lC,EC7EEe,ED6EcvW,EC7EJxI,EAAQwI,QD8EnD,2BACKiW,GAAcT,EAAKxxB,MAAOgc,EAASwV,EAAKnV,SAAO,CAClDA,OAAQmV,EAAKnV,WC9ERzwB,E,SAKO0nC,GAAmBjX,EAAiB/D,EAAoB9E,GAChE,IAAAwI,EAAqBxI,EAAd,QAAE9U,EAAY8U,EAAL,QAClBtT,EAAMoY,EASV,OAPI+D,GACFnc,EAAM+X,EAAW/X,GACjBA,EAAM8b,EAAQ5rB,IAAI8P,EAAKxB,EAAQ4d,6BAE/Bpc,EAAM8b,EAAQ5rB,IAAI8P,EAAKxB,EAAQ6d,2BAG1Brc,E,SCrDOqzB,GACdzX,EACA0X,EACAC,EACAjgB,GAEA,IAAIkgB,EAAe9F,GAAgB9R,EAAWhd,KAAM00B,GAChD9Y,EV6CG,CAAE5b,KAAM,GAAIod,UAAW,IU3C9B,IAAK,IAAI/B,KAAS2B,EAAWhd,KAAM,CACjC,IAAIsd,EAAMN,EAAWhd,KAAKqb,GAE1BO,EAAK5b,KAAKqb,GAASwZ,GAAwBvX,EAAKsX,EAAavZ,GAAQsZ,EAAUjgB,GAGjF,IAAK,IAAI8G,KAAcwB,EAAWI,UAAW,CAC3C,IAAI1wB,EAAWswB,EAAWI,UAAU5B,GAChC8B,EAAM1B,EAAK5b,KAAKtT,EAAS2uB,OAE7BO,EAAKwB,UAAU5B,GAAcsZ,GAA6BpoC,EAAU4wB,EAAKsX,EAAaloC,EAAS2uB,OAAQsZ,EAAUjgB,GAGnH,OAAOkH,EAKT,SAASiZ,GAAwBjX,EAAoBmX,EAAsBJ,EAAyBjgB,GAClG,IAAIie,EAAgBgC,EAAShC,eAAiB,GAMpB,MAAxBA,EAAcpH,QACdwJ,EAAY/L,mBACX2L,EAASK,YAAcL,EAASM,YAEjCtC,EAAcpH,QAAS,GAGzB,IAAI2J,EAAI,uCACHtX,GACA+U,GAAa,CAChB3G,GAAI,OAAF,IAAE,CAAF,eAAOpO,EAASoO,IAAO2G,EAAc3G,MAGrC2I,EAASpK,gBACX2K,EAAK3K,cAAa,2BAAQ2K,EAAK3K,eAAkBoK,EAASpK,gBAG5D,IAAoB,UAAA7V,EAAQyI,YAAYgY,yBAApB,eAA8C,EAChEC,EADc,MACNF,EAAMP,EAAUjgB,GAO1B,OAJKwgB,EAAK3J,QAAU7W,EAAQ9U,QAAQgsB,qBAClCsJ,EAAK3J,QAAS,GAGT2J,EAGT,SAASJ,GACPtD,EACA5T,EACAmX,EACAJ,EACAjgB,GAEM,IAAAwI,EAAYxI,EAAL,QACT2gB,EAAcV,EAAShC,gBAAmD,IAAlCgC,EAAShC,cAAcpV,OAC/D+X,EAAWX,EAAShC,gBAAmD,IAAlCgC,EAAShC,cAAcpH,OAC5D2J,EAAO,eAAK1D,GAgDhB,OA9CI6D,IACFH,EAAKh0B,MAAQkrB,GAAuB8I,EAAKh0B,QAGvCyzB,EAASY,YAAcR,EAAYhM,gBACrCmM,EAAKh0B,MAAQ,CACXgD,MAAOgZ,EAAQ5rB,IAAI4jC,EAAKh0B,MAAMgD,MAAOywB,EAASY,YAC9Cn0B,IAAK8b,EAAQ5rB,IAAI4jC,EAAKh0B,MAAME,IAAKuzB,EAASY,cAI1CZ,EAASK,YAAcD,EAAY/L,mBACrCkM,EAAKh0B,MAAQ,CACXgD,MAAOgZ,EAAQ5rB,IAAI4jC,EAAKh0B,MAAMgD,MAAOywB,EAASK,YAC9C5zB,IAAK8zB,EAAKh0B,MAAME,MAIhBuzB,EAASM,UAAYF,EAAY/L,mBACnCkM,EAAKh0B,MAAQ,CACXgD,MAAOgxB,EAAKh0B,MAAMgD,MAClB9C,IAAK8b,EAAQ5rB,IAAI4jC,EAAKh0B,MAAME,IAAKuzB,EAASM,YAI1CK,IACFJ,EAAKh0B,MAAQ,CACXgD,MAAOgxB,EAAKh0B,MAAMgD,MAClB9C,IAAKozB,GAAmB5W,EAASL,OAAQ2X,EAAKh0B,MAAMgD,MAAOwQ,KAM3DkJ,EAASL,SACX2X,EAAKh0B,MAAQ,CACXgD,MAAOiV,EAAW+b,EAAKh0B,MAAMgD,OAC7B9C,IAAK+X,EAAW+b,EAAKh0B,MAAME,OAK3B8zB,EAAKh0B,MAAME,IAAM8zB,EAAKh0B,MAAMgD,QAC9BgxB,EAAKh0B,MAAME,IAAMozB,GAAmB5W,EAASL,OAAQ2X,EAAKh0B,MAAMgD,MAAOwQ,IAGlEwgB,E,kBCzIP,WACSppC,EACC0pC,EACAtY,GAFD,KAAApxB,OACC,KAAA0pC,iBACA,KAAAtY,UA+BZ,OA3BE,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO5uB,KAAKknC,iBAAiBnB,a,gCAG/B,sBAAI,oBAAK,C,IAAT,WACE,OAAO/lC,KAAKknC,iBAAiBC,W,gCAG/B,sBAAI,0BAAW,C,IAAf,WACE,OAAOnnC,KAAK4uB,QAAQkW,OAAO9kC,KAAKknC,iBAAiBE,YAAYC,YAAYzxB,Q,gCAG3E,sBAAI,wBAAS,C,IAAb,WACE,OAAO5V,KAAK4uB,QAAQkW,OAAO9kC,KAAKknC,iBAAiBE,YAAYC,YAAYv0B,M,gCAG3E,sBAAI,2BAAY,C,IAAhB,WACE,OAAO9S,KAAK4uB,QAAQkW,OAAO9kC,KAAKknC,iBAAiBE,YAAYE,aAAa1xB,Q,gCAG5E,sBAAI,yBAAU,C,IAAd,WACE,OAAO5V,KAAK4uB,QAAQkW,OAAO9kC,KAAKknC,iBAAiBE,YAAYE,aAAax0B,M,gCAG5E,YAAAy0B,UAAA,SAAU9qC,GACR,OAAOuD,KAAKknC,iBAAiB51B,QAAQ7U,IAEzC,E,GChCM+qC,GAAwB,CAC5B1jB,GAAIzT,OACJgsB,cAAe/iB,QACfuN,IAAKxW,OACLyW,OAAQzW,OACRo3B,OAAQ7M,GACR8M,mBAAoB9M,GAGpB+M,QAAS/M,GACTgN,QAAShN,I,SAwBKiN,GACdvN,EACAlU,EACA8V,GAEA,IAAI4L,EAUJ,QAZA,IAAA5L,MAAW6L,GAAyB3hB,IAIjB,kBAARkU,EACTwN,EAAS,CAAEjhB,IAAKyT,GACQ,oBAARA,GAAsBx/B,MAAME,QAAQs/B,GACpDwN,EAAS,CAAEL,OAAQnN,GACK,kBAARA,GAAoBA,IACpCwN,EAASxN,GAGPwN,EAAQ,CACN,MAAqBrK,GAAYqK,EAAQ5L,GAAvCZ,EAAO,UAAEc,EAAK,QAChB4L,EA6BR,SAA8B1N,EAAyBlU,GAGrD,IAFA,IAAI1U,EAAO0U,EAAQyI,YAAYoZ,gBAEtBrtC,EAAI8W,EAAK/W,OAAS,EAAGC,GAAK,EAAGA,GAAK,EAAG,CAC5C,IACIgsB,EADMlV,EAAK9W,GACAstC,UAAU5N,GAEzB,GAAI1T,EACF,MAAO,CAAEuhB,YAAavtC,EAAGgsB,KAAI,GAIjC,OAAO,KAzCSwhB,CAAqB9M,EAASlV,GAE5C,GAAI4hB,EACF,MAAO,CACLK,KAAM/N,EACNgO,YAAY,EACZC,cAAe,GACfC,WAAY,KACZnM,cAAef,EAAQe,cACvBqL,mBAAoBpM,EAAQoM,mBAC5BC,QAASrM,EAAQqM,QACjBC,QAAStM,EAAQsM,QACjBjhB,SAAU2U,EAAQxX,IAAM,GACxByC,SAAUkC,IACV0f,YAAaH,EAAQG,YACrBvhB,KAAMohB,EAAQphB,KACd8W,GAAIrC,GAAcC,EAASlV,GAC3B6V,cAAeG,GAKrB,OAAO,K,SAGO2L,GAAyB3hB,GACvC,8CAAYmU,IAAsBiN,IAA0BphB,EAAQyI,YAAY4Z,qB,SC9DlEC,GAAOC,EAAyC/Z,GAK9D,MAJwB,oBAAb+Z,IACTA,EAAWA,KAGG,MAAZA,EACK/Z,EAAQga,kBAGVha,EAAQia,aAAaF,G,kBCD9B,cAieA,OA9dE,YAAAzB,eAAA,WACE,OAAOlnC,KAAK8oC,mBAAoB5B,kBAGlC,YAAA5gB,SAAA,SAASyiB,GACP,OAAO/oC,KAAK8oC,mBAAoBxiB,SAASyiB,IAG3C,sBAAI,mBAAI,C,IAAR,WAAsB,OAAO/oC,KAAKknC,iBAAiBpB,S,gCAEnD,YAAAkD,eAAA,SAAerjC,GACbA,KAGF,YAAAsjC,WAAA,WACEjpC,KAAKwlC,QAAQ,WAAW,IAM1B,YAAA0D,UAAA,SAAoDzsC,EAAkB4Z,GACpErW,KAAKsmB,SAAS,CACZ9oB,KAAM,aACN2rC,WAAY1sC,EACZ2sC,eAAgB/yB,KAIpB,YAAAkxB,UAAA,SAAoD9qC,GAClD,OAAOuD,KAAK8oC,mBAAoBO,4BAA4B5sC,IAG9D,YAAA6sC,wBAAA,WACE,OAAOltC,OAAOqS,KAAKzO,KAAKknC,iBAAiBqC,sBAM3C,YAAAhlB,GAAA,SAAiDilB,EAA2BvxB,GACpE,IAAA6wB,EAAuB9oC,KAAL,mBAEpB8oC,EAAmBW,+BAA+BD,GACpDV,EAAmBvD,QAAQhhB,GAAGilB,EAAavxB,GAE3C6G,QAAQC,KAAK,0BAA0ByqB,EAAW,MAItD,YAAA/kB,IAAA,SAAkD+kB,EAA2BvxB,GAC3EjY,KAAK8oC,mBAAoBvD,QAAQ9gB,IAAI+kB,EAAavxB,IAIpD,YAAAutB,QAAA,SAAsDgE,G,UAA2B,qDAC/E,EAAAxpC,KAAK8oC,mBAAoBvD,SAAQC,QAAO,qBAACgE,GAAgBpsC,KAM3D,YAAAssC,WAAA,SAAWC,EAAkBC,GAA7B,WACE5pC,KAAKgpC,gBAAe,WAGlB,GAFA,EAAKa,WAEDD,EACF,GAAKA,EAA+Bh0B,OAAUg0B,EAA+B92B,IAC3E,EAAKwT,SAAS,CACZ9oB,KAAM,mBACNmsC,SAAQ,IAEV,EAAKrjB,SAAS,CACZ9oB,KAAM,aACN2rC,WAAY,eACZC,eAAgBQ,QAEb,CACC,IAAAhb,EAAY,EAAKsY,iBAAV,QAEb,EAAK5gB,SAAS,CACZ9oB,KAAM,mBACNmsC,SAAQ,EACRG,WAAYlb,EAAQia,aAAae,UAIrC,EAAKtjB,SAAS,CACZ9oB,KAAM,mBACNmsC,SAAQ,QAShB,YAAAI,OAAA,SAAOD,EAAwBH,GAC7B,IACIK,EAEJL,EAAWA,GAAY,MACvBK,EAJYhqC,KAAKknC,iBAIJ+C,UAAUN,IAAa3pC,KAAKkqC,gBAAgBP,GAEzD3pC,KAAK6pC,WAEDG,EACFhqC,KAAKsmB,SAAS,CACZ9oB,KAAM,mBACNmsC,SAAUK,EAAKxsC,KACfssC,WAAU,IAGZ9pC,KAAKsmB,SAAS,CACZ9oB,KAAM,cACNssC,WAAU,KAOR,YAAAI,gBAAR,SAAwBla,GAClB,IAEAp1B,EACAovC,EAHA,EAA+BhqC,KAAKknC,iBAAlC+C,EAAS,YAAEE,EAAa,gBAC1BC,EAAY,GAAGrsC,OAAOosC,EAAcE,kBAIxC,IAAK,IAAIV,KAAYM,EACnBG,EAAUvuC,KAAK8tC,GAGjB,IAAK/uC,EAAI,EAAGA,EAAIwvC,EAAUzvC,OAAQC,GAAK,EAErC,IADAovC,EAAOC,EAAUG,EAAUxvC,MAErBovC,EAAKM,aAAeta,EACtB,OAAOga,EAKb,OAAO,MAMT,YAAAO,KAAA,WACEvqC,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CAAE9oB,KAAM,UAGxB,YAAA7B,KAAA,WACEqE,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CAAE9oB,KAAM,UAGxB,YAAAgtC,SAAA,WACE,IAAIptB,EAAQpd,KAAKknC,iBACjBlnC,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CACZ9oB,KAAM,cACNssC,WAAY1sB,EAAMwR,QAAQ6b,SAASrtB,EAAMstB,aAAc,MAI3D,YAAAC,SAAA,WACE,IAAIvtB,EAAQpd,KAAKknC,iBAEjBlnC,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CACZ9oB,KAAM,cACNssC,WAAY1sB,EAAMwR,QAAQ6b,SAASrtB,EAAMstB,YAAa,MAI1D,YAAAE,MAAA,WACE,IAAIxtB,EAAQpd,KAAKknC,iBAEjBlnC,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CACZ9oB,KAAM,cACNssC,WAAYpB,GAAOtrB,EAAMytB,gBAAgBC,IAAK1tB,EAAMwR,YAIxD,YAAAmc,SAAA,SAASC,GACP,IAAI5tB,EAAQpd,KAAKknC,iBAEjBlnC,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CACZ9oB,KAAM,cACNssC,WAAY1sB,EAAMwR,QAAQia,aAAamC,MAI3C,YAAAC,cAAA,SAAcC,GACZ,IAAI9tB,EAAQpd,KAAKknC,iBACbiE,EAAQrb,GAAeob,GAEvBC,IACFnrC,KAAK6pC,WACL7pC,KAAKsmB,SAAS,CACZ9oB,KAAM,cACNssC,WAAY1sB,EAAMwR,QAAQ5rB,IAAIoa,EAAMstB,YAAaS,OAMvD,YAAAlf,QAAA,WACE,IAAI7O,EAAQpd,KAAKknC,iBACjB,OAAO9pB,EAAMwR,QAAQkW,OAAO1nB,EAAMstB,cAMpC,YAAAU,WAAA,SAAWxpC,EAAcypC,GACjB,IAAAzc,EAAY5uB,KAAKknC,iBAAV,QAEb,OAAOtY,EAAQ9H,OACb8H,EAAQia,aAAajnC,GACrB62B,GAAgB4S,KAKpB,YAAA1W,YAAA,SAAYtD,EAAeC,EAAega,GAClC,IAAA1c,EAAY5uB,KAAKknC,iBAAV,QAEb,OAAOtY,EAAQ+F,YACb/F,EAAQia,aAAaxX,GACrBzC,EAAQia,aAAavX,GACrBmH,GAAgB6S,GAChBA,IAIJ,YAAAtG,UAAA,SAAUpjC,EAAcgjC,GAChB,IAAAhW,EAAY5uB,KAAKknC,iBAAV,QAEb,OAAOtY,EAAQoW,UAAUpW,EAAQia,aAAajnC,GAAI,CAAEgjC,SAAQ,KAQ9D,YAAApxB,OAAA,SAAO+3B,EAA4BC,GACjC,IAAIC,EAIAA,EAFW,MAAXD,EACqB,MAAnBD,EAAU31B,MACK21B,EAEA,CACf31B,MAAO21B,EACPz4B,IAAK,MAIQ,CACf8C,MAAO21B,EACPz4B,IAAK04B,GAIT,IAAIpuB,EAAQpd,KAAKknC,iBACb7B,EAAYnB,GACduH,EACAruB,EAAMwR,QACNkB,GAAe,CAAErE,KAAM,KAGrB4Z,IACFrlC,KAAKsmB,SAAS,CAAE9oB,KAAM,eAAgB6nC,UAAS,IAC/CD,GAAkBC,EAAW,KAAMjoB,KAKvC,YAAAysB,SAAA,SAASvE,GACP,IAAIloB,EAAQpd,KAAKknC,iBAEb9pB,EAAMsuB,gBACR1rC,KAAKsmB,SAAS,CAAE9oB,KAAM,mB,SLtRQ8nC,EAA8Blf,GAChEA,EAAQmf,QAAQC,QAAQ,WAAY,CAClCG,QAASL,EAAMA,EAAIM,UAAY,KAC/BC,KAAMzf,EAAQ0f,SAAW1f,EAAQ2f,YAAYF,OKoR3C8F,CAAoBrG,EAAKloB,KAO7B,YAAAwuB,SAAA,SAASC,EAAwBC,GAC/B,GAAID,aAAsB,GAAU,CAClC,IAAI7c,EAAM6c,EAAWE,KACjB3tC,EAAWytC,EAAWG,UAY1B,OAXkBhsC,KAAKknC,iBAGNxY,WAAWhd,KAAKsd,EAAIjC,SACnC/sB,KAAKsmB,SAAS,CACZ9oB,KAAM,aACNkxB,WAAY8K,GAAkB,CAAExK,IAAG,EAAE5wB,SAAQ,MAE/C4B,KAAKisC,gBAAgBJ,IAGhBA,EAGT,IACI3S,EADA9b,EAAQpd,KAAKknC,iBAGjB,GAAI4E,aAAuBI,EACzBhT,EAAc4S,EAAYzlB,yBACrB,GAA2B,mBAAhBylB,EACZA,IACD5S,EAAenL,GAAkB3Q,EAAM+uB,cAA5B,SAET,GAAmB,MAAfL,EAAqB,CAC9B,IAAIM,EAAYpsC,KAAKqsC,mBAAmBP,GAExC,IAAKM,EAEH,OADAttB,QAAQC,KAAK,2CAA2C+sB,EAAW,KAC5D,KAET5S,EAAckT,EAAU/lB,oBAG1B,IAAIiT,EAAQC,GAAWsS,EAAY3S,EAAa9b,GAAO,GAEvD,GAAIkc,EAAO,CACT,IAAIgT,EAAc,IAAI,GACpBlvB,EACAkc,EAAMtK,IACNsK,EAAMtK,IAAID,aAAe,KAAOuK,EAAMl7B,UAQxC,OANA4B,KAAKsmB,SAAS,CACZ9oB,KAAM,aACNkxB,WAAY8K,GAAkBF,KAEhCt5B,KAAKisC,gBAAgBK,GAEdA,EAGT,OAAO,MAGD,YAAAL,gBAAR,SAAwBM,GAAxB,WACoBvsC,KAAKknC,iBAAV,QAEL1B,QAAQ,WAAY,CAC1BnxB,MAAOk4B,EACPC,cAAe,GACfC,OAAQ,WACN,EAAKnmB,SAAS,CACZ9oB,KAAM,gBACNkxB,WAAYge,GAAgBH,SAOpC,YAAAI,aAAA,SAAa7oB,GACX,IAAI1G,EAAQpd,KAAKknC,iBACb,EAAsB9pB,EAAMsR,WAA1Bhd,EAAI,OAAEod,EAAS,YAGrB,IAAK,IAAI/B,KAFTjJ,EAAKzT,OAAOyT,GAEMpS,EAAM,CACtB,IAAIsd,EAAMtd,EAAKqb,GAEf,GAAIiC,EAAIrI,WAAa7C,EAAI,CACvB,GAAIkL,EAAID,aACN,OAAO,IAAI,GAAS3R,EAAO4R,EAAK,MAGlC,IAAK,IAAI9B,KAAc4B,EAAW,CAChC,IAAI1wB,EAAW0wB,EAAU5B,GAEzB,GAAI9uB,EAAS2uB,QAAUiC,EAAIjC,MACzB,OAAO,IAAI,GAAS3P,EAAO4R,EAAK5wB,KAMxC,OAAO,MAGT,YAAAukB,UAAA,WACE,IAAIiqB,EAAc5sC,KAAKknC,iBAEvB,OAAO2F,GAAeD,EAAYle,WAAYke,IAGhD,YAAAE,gBAAA,WACE9sC,KAAKsmB,SAAS,CAAE9oB,KAAM,uBAMxB,YAAAuvC,gBAAA,WACE,IAAI3vB,EAAQpd,KAAKknC,iBACb8F,EAAa5vB,EAAM+uB,aACnBc,EAA+B,GAEnC,IAAK,IAAIC,KAAcF,EACrBC,EAAWpxC,KAAK,IAAIqwC,EAAe9uB,EAAO4vB,EAAWE,KAGvD,OAAOD,GAGT,YAAAZ,mBAAA,SAAmBvoB,GACjB,IAAI1G,EAAQpd,KAAKknC,iBACb8F,EAAa5vB,EAAM+uB,aAGvB,IAAK,IAAI5lB,KAFTzC,EAAKzT,OAAOyT,GAESkpB,EACnB,GAAIA,EAAWzmB,GAAUI,WAAa7C,EACpC,OAAO,IAAIooB,EAAe9uB,EAAO4vB,EAAWzmB,IAIhD,OAAO,MAGT,YAAA4mB,eAAA,SAAerB,GACb,IAAI1uB,EAAQpd,KAAKknC,iBAEjB,GAAI4E,aAAuBI,EASzB,OAPK9uB,EAAM+uB,aAAaL,EAAYzlB,oBAAoBE,WACtDvmB,KAAKsmB,SAAS,CACZ9oB,KAAM,oBACN4vC,QAAS,CAACtB,EAAYzlB,uBAInBylB,EAGT,IAAI5S,EAAc2O,GAAiBiE,EAAa1uB,GAEhD,OAAI8b,GACFl5B,KAAKsmB,SAAS,CAAE9oB,KAAM,oBAAqB4vC,QAAS,CAAClU,KAE9C,IAAIgT,EAAe9uB,EAAO8b,IAG5B,MAGT,YAAAmU,sBAAA,WACErtC,KAAKsmB,SAAS,CAAE9oB,KAAM,8BAGxB,YAAA8vC,cAAA,WACEttC,KAAKsmB,SAAS,CAAE9oB,KAAM,sBAAuBkpB,WAAW,KAM1D,YAAA6mB,aAAA,SAAaC,GACX,IAAIC,EAAO3d,GAAe0d,GAEtBC,GACFztC,KAAKwlC,QAAQ,iBAAkB,CAAEiI,KAAI,KAG3C,E,iBCreE,WAAYrnB,EAA0B4I,EAAe5wB,GACnD4B,KAAK0tC,SAAWtnB,EAChBpmB,KAAK+rC,KAAO/c,EACZhvB,KAAKgsC,UAAY5tC,GAAY,KAsYjC,OAhYE,YAAAuvC,QAAA,SAAQlxC,EAAc4Z,G,QACpB,GAAI5Z,KAAQs/B,GACVjd,QAAQC,KAAK,6FAER,GAAa,OAATtiB,EACT4Z,EAAMwlB,GAAwBp/B,GAAM4Z,GAEpCrW,KAAK4tC,OAAO,CACVvJ,cAAe,CAAE1d,SAAUtQ,UAExB,GAAI5Z,KAAQo/B,GACjBxlB,EAAMwlB,GAAwBp/B,GAAM4Z,GAEpCrW,KAAK4tC,OAAO,CACVvJ,eAAa,KAAI,EAAC5nC,GAAO4Z,EAAG,UAEzB,GAAI5Z,KAAQ89B,GAAmB,CACpC,IAAImD,EAAKnD,GAAkB99B,GAAM4Z,GAEpB,UAAT5Z,EACFihC,EAAK,CAAE3C,gBAAiB1kB,EAAK2kB,YAAa3kB,GACxB,aAAT5Z,EACTihC,EAAK,CAAEjD,cAAepkB,EAAKqkB,iBAAkBrkB,KAE3C,MAAM5Z,GAAO4Z,EAAfqnB,EAAkB,GAGpB19B,KAAK4tC,OAAO,CACVvJ,cAAe,CAAE3G,GAAE,UAGrB5e,QAAQC,KAAK,uBAAuBtiB,EAAI,oCAI5C,YAAAoxC,gBAAA,SAAgBpxC,EAAc4Z,G,MAC5BrW,KAAK4tC,OAAO,CACV3R,eAAa,KAAI,EAACx/B,GAAO4Z,EAAG,MAIhC,YAAAy3B,SAAA,SAAS3Q,EAAuB7rB,QAAA,IAAAA,MAAA,IACxB,IAAAsd,EAAY5uB,KAAK0tC,SAAV,QACT93B,EAAQgZ,EAAQia,aAAa1L,GAEjC,GAAIvnB,GAAS5V,KAAKgsC,UAAW,CAC3B,IACItF,EAAapI,GADGt+B,KAAKgsC,UAAUp5B,MACMgD,MAAOA,EAAOgZ,EAAStd,EAAQy8B,aAEpEz8B,EAAQ08B,iBACVhuC,KAAK4tC,OAAO,CAAE3G,WAAYP,IAE1B1mC,KAAK4tC,OAAO,CAAElH,WAAU,MAK9B,YAAAuH,OAAA,SAAOC,EAA4B58B,QAAA,IAAAA,MAAA,IAC3B,IACFwB,EADE8b,EAAY5uB,KAAK0tC,SAAV,QAGb,IAAgB,MAAZQ,IACFp7B,EAAM8b,EAAQia,aAAaqF,MAOzBluC,KAAKgsC,UACP,GAAIl5B,EAAK,CACP,IAAI6zB,EAAWrI,GAAUt+B,KAAKgsC,UAAUp5B,MAAME,IAAKA,EAAK8b,EAAStd,EAAQy8B,aACzE/tC,KAAK4tC,OAAO,CAAEjH,SAAQ,SAEtB3mC,KAAK4tC,OAAO,CAAEvJ,cAAe,CAAEpH,QAAQ,MAK7C,YAAAkR,SAAA,SAAShR,EAAuB+Q,EAA4B58B,QAAA,IAAAA,MAAA,IACpD,IAGFwB,E1B1BuBue,EAAcC,E0BuBnC1C,EAAY5uB,KAAK0tC,SAAV,QACTrJ,EAAgB,CAAEpV,OAAQ3d,EAAQ2d,QAClCrZ,EAAQgZ,EAAQia,aAAa1L,GAGjC,GAAKvnB,KAIW,MAAZs4B,IACFp7B,EAAM8b,EAAQia,aAAaqF,MAOzBluC,KAAKgsC,WAAW,CAClB,IAAIoC,EAAgBpuC,KAAKgsC,UAAUp5B,OAIZ,IAAnBtB,EAAQ2d,SACVmf,EAAgBtQ,GAAuBsQ,IAGzC,IAAI1H,EAAapI,GAAU8P,EAAcx4B,MAAOA,EAAOgZ,EAAStd,EAAQy8B,aAExE,GAAIj7B,EAAK,CACP,IAAI6zB,EAAWrI,GAAU8P,EAAct7B,IAAKA,EAAK8b,EAAStd,EAAQy8B,a1BpD7Bzc,E0BsDNqV,G1BtDRtV,E0BsDJqV,G1BrDfxW,QAAUoB,EAAGpB,OACrBmB,EAAGlB,SAAWmB,EAAGnB,QACjBkB,EAAG5F,OAAS6F,EAAG7F,MACf4F,EAAGjB,eAAiBkB,EAAGlB,a0BmDjBpwB,KAAK4tC,OAAO,CAAE3G,WAAYP,EAAYrC,cAAa,IAEnDrkC,KAAK4tC,OAAO,CAAElH,WAAU,EAAEC,SAAQ,EAAEtC,cAAa,SAGnDA,EAAcpH,QAAS,EACvBj9B,KAAK4tC,OAAO,CAAE3G,WAAYP,EAAYrC,cAAa,MAKzD,YAAAhxB,UAAA,SAAU63B,GACR,IAAIC,EAAQrb,GAAeob,GAEvBC,GACFnrC,KAAK4tC,OAAO,CAAElH,WAAYyE,KAI9B,YAAA53B,QAAA,SAAQ23B,GACN,IAAIC,EAAQrb,GAAeob,GAEvBC,GACFnrC,KAAK4tC,OAAO,CAAEjH,SAAUwE,KAI5B,YAAAkD,UAAA,SAAUnD,GACR,IAAIC,EAAQrb,GAAeob,GAEvBC,GACFnrC,KAAK4tC,OAAO,CAAE3G,WAAYkE,KAI9B,YAAAmD,UAAA,SAAUrf,EAAiB3d,QAAA,IAAAA,MAAA,IACzB,IAAI+yB,EAAgB,CAAEpV,OAAM,GACtB+e,EAAqB18B,EAAL,iBAEE,MAApB08B,IACFA,EAAmBhuC,KAAK0tC,SAASp8B,QAAQi9B,wBAGvCvuC,KAAK+rC,KAAK9c,SAAWA,IACvBoV,EAAcpH,OAAS+Q,GAGzBhuC,KAAK4tC,OAAO,CAAEvJ,cAAa,KAG7B,YAAA1P,YAAA,SAAY6Z,GACJ,IAAA5f,EAAY5uB,KAAK0tC,SAAV,QACTtvC,EAAW4B,KAAKgsC,UAChBX,EAAY5S,GAAgB+V,GAEhC,OAAIxuC,KAAK+rC,KAAK9O,OACLrO,EAAQ+F,YAAYv2B,EAASwU,MAAMgD,MAAOxX,EAASwU,MAAME,IAAKu4B,EAAW,CAC9Ere,eAAgB5uB,EAAS4uB,eACzBC,aAAc7uB,EAAS6uB,eAGpB2B,EAAQ9H,OAAO1oB,EAASwU,MAAMgD,MAAOy1B,EAAW,CACrD9N,UAAWn/B,EAAS4uB,kBAIxB,YAAA4gB,OAAA,SAAOvH,GACL,IAAIjoC,EAAW4B,KAAKgsC,UAEpB,GAAI5tC,EAAU,CACZ,IAAI4wB,EAAMhvB,KAAK+rC,KACX,EAAU/rC,KAAK0tC,SACb,EAAe,EAAQxG,iBAAb,WACZuH,EAAiBhV,GAAkB,EAAYr7B,EAAS8uB,YAgB5DuhB,EAAiBtI,GAA0BsI,EAfrB,CACpB,GAAI,CACFvmC,QAAS,GACTuyB,eAAe,EACfC,kBAAkB,EAClBS,YAAa,GACbN,QAAS,KACTO,OAAQ,GACRL,gBAAiB,GACjBC,YAAa,GACbC,UAAW,GACXh+B,WAAY,KAI4DopC,EAAU,GAEtF,IAAIqI,EAAW,IAAIC,EAAS,EAAS3f,EAAK5wB,GAC1C4B,KAAK+rC,KAAO0C,EAAe/8B,KAAKsd,EAAIjC,OACpC/sB,KAAKgsC,UAAYyC,EAAe3f,UAAU1wB,EAAS8uB,YAEnD,EAAQ5G,SAAS,CACf9oB,KAAM,eACNkxB,WAAY+f,IAGd,EAAQlJ,QAAQC,QAAQ,cAAe,CACrCkJ,SAAQ,EACRr6B,MAAOrU,KACPwsC,cAAeK,GAAe4B,EAAgB,EAASrwC,GACvDquC,OAAM,WACJ,EAAQnmB,SAAS,CACf9oB,KAAM,eACNkxB,WAAU,SAOpB,YAAAxrB,OAAA,WACE,IAAIkjB,EAAUpmB,KAAK0tC,SACfkB,EAAUlC,GAAgB1sC,MAE9BomB,EAAQE,SAAS,CACf9oB,KAAM,gBACNkxB,WAAYkgB,IAGdxoB,EAAQmf,QAAQC,QAAQ,cAAe,CACrCnxB,MAAOrU,KACPwsC,cAAe,GACfC,OAAM,WACJrmB,EAAQE,SAAS,CACf9oB,KAAM,eACNkxB,WAAYkgB,QAMpB,sBAAI,qBAAM,C,IAAV,WACQ,IAAAroB,EAAavmB,KAAK+rC,KAAV,SAEd,OAAIxlB,EACK,IAAI2lB,EACTlsC,KAAK0tC,SACL1tC,KAAK0tC,SAASxG,iBAAiBiF,aAAa5lB,IAGzC,M,gCAGT,sBAAI,oBAAK,C,IAAT,WACE,OAAOvmB,KAAKgsC,UACVhsC,KAAK0tC,SAAS9e,QAAQkW,OAAO9kC,KAAKgsC,UAAUp5B,MAAMgD,OAClD,M,gCAGJ,sBAAI,kBAAG,C,IAAP,WACE,OAAQ5V,KAAKgsC,WAAahsC,KAAK+rC,KAAK9O,OAClCj9B,KAAK0tC,SAAS9e,QAAQkW,OAAO9kC,KAAKgsC,UAAUp5B,MAAME,KAClD,M,gCAGJ,sBAAI,uBAAQ,C,IAAZ,WACE,IAAI1U,EAAW4B,KAAKgsC,UACpB,OAAI5tC,EACK4B,KAAK0tC,SAAS9e,QAAQoW,UAAU5mC,EAASwU,MAAMgD,MAAO,CAC3DgvB,SAAU5kC,KAAK+rC,KAAK9c,OACpBsO,UAAWn/B,EAAS4uB,iBAGjB,I,gCAGT,sBAAI,qBAAM,C,IAAV,WACE,IAAI5uB,EAAW4B,KAAKgsC,UACpB,OAAI5tC,GAAY4B,KAAK+rC,KAAK9O,OACjBj9B,KAAK0tC,SAAS9e,QAAQoW,UAAU5mC,EAASwU,MAAME,IAAK,CACzD8xB,SAAU5kC,KAAK+rC,KAAK9c,OACpBsO,UAAWn/B,EAAS6uB,eAGjB,I,gCAKT,sBAAI,iBAAE,C,IAAN,WAAW,OAAOjtB,KAAK+rC,KAAKplB,U,gCAC5B,sBAAI,sBAAO,C,IAAX,WAAgB,OAAO3mB,KAAK+rC,KAAKhS,S,gCACjC,sBAAI,qBAAM,C,IAAV,WAAe,OAAO/5B,KAAK+rC,KAAK9c,Q,gCAChC,sBAAI,oBAAK,C,IAAT,WAAc,OAAOjvB,KAAK+rC,KAAKjQ,O,gCAC/B,sBAAI,kBAAG,C,IAAP,WAAY,OAAO97B,KAAK+rC,KAAKllB,K,gCAC7B,sBAAI,sBAAO,C,IAAX,WAAgB,OAAO7mB,KAAK+rC,KAAKrO,GAAGx1B,SAAW,Q,gCAC/C,sBAAI,4BAAa,C,IAAjB,WAAsB,OAAOlI,KAAK+rC,KAAKrO,GAAGjD,e,gCAC1C,sBAAI,+BAAgB,C,IAApB,WAAyB,OAAOz6B,KAAK+rC,KAAKrO,GAAGhD,kB,gCAC7C,sBAAI,yBAAU,C,IAAd,WAAmB,OAAO16B,KAAK+rC,KAAKrO,GAAGvC,YAAY,IAAM,M,gCACzD,sBAAI,sBAAO,C,IAAX,WAAgB,OAAOn7B,KAAK+rC,KAAKrO,GAAG7C,S,gCACpC,sBAAI,oBAAK,C,IAAT,WAAc,OAAO76B,KAAK+rC,KAAKrO,GAAGtC,OAAO,IAAM,M,gCAC/C,sBAAI,8BAAe,C,IAAnB,WAAwB,OAAOp7B,KAAK+rC,KAAKrO,GAAG3C,iB,gCAC5C,sBAAI,0BAAW,C,IAAf,WAAoB,OAAO/6B,KAAK+rC,KAAKrO,GAAG1C,a,gCACxC,sBAAI,wBAAS,C,IAAb,WAAkB,OAAOh7B,KAAK+rC,KAAKrO,GAAGzC,W,gCAGtC,sBAAI,yBAAU,C,IAAd,WAAmB,OAAOj7B,KAAK+rC,KAAKrO,GAAGzgC,Y,gCACvC,sBAAI,4BAAa,C,IAAjB,WAAsB,OAAO+C,KAAK+rC,KAAK9P,e,gCAEvC,YAAA4S,cAAA,SAAcvD,QAAA,IAAAA,MAAA,IACZ,IAAItc,EAAMhvB,KAAK+rC,KACTrO,EAAO1O,EAAL,GACF+V,EAAqB/kC,KAAb,SAAEilC,EAAWjlC,KAAL,OAClB8xB,EAAkB,GA4DtB,OA1DI9C,EAAI8M,QACNhK,EAAIgK,MAAQ9M,EAAI8M,OAGdiJ,IACFjT,EAAIlc,MAAQmvB,GAGVE,IACFnT,EAAIhf,IAAMmyB,GAGRjW,EAAIrI,WACNmL,EAAIhO,GAAKkL,EAAIrI,UAGXqI,EAAI+K,UACNjI,EAAIiI,QAAU/K,EAAI+K,SAGhB/K,EAAInI,MACNiL,EAAIjL,IAAMmI,EAAInI,KAGZ6W,EAAGx1B,SAA0B,SAAfw1B,EAAGx1B,UACnB4pB,EAAI5pB,QAAUw1B,EAAGx1B,SAMfojC,EAASwD,eAAiBpR,EAAG3C,iBAAmB2C,EAAG3C,kBAAoB2C,EAAG1C,YAC5ElJ,EAAIgJ,MAAQ4C,EAAG3C,iBAEX2C,EAAG3C,kBACLjJ,EAAIiJ,gBAAkB2C,EAAG3C,iBAEvB2C,EAAG1C,cACLlJ,EAAIkJ,YAAc0C,EAAG1C,cAIrB0C,EAAGzC,YACLnJ,EAAImJ,UAAYyC,EAAGzC,WAGjByC,EAAGzgC,WAAWtC,SAChBm3B,EAAI70B,WAAaygC,EAAGzgC,YAGlBb,OAAOqS,KAAKugB,EAAIiN,eAAethC,SAC7B2wC,EAASyD,sBACX,YAASjd,EAAK9C,EAAIiN,eAElBnK,EAAImK,cAAgBjN,EAAIiN,eAIrBnK,GAGT,YAAAkd,OAAA,WACE,OAAOhvC,KAAK6uC,iBAEhB,E,YAEgBnC,GAAgBH,G,QAC1Bvd,EAAMud,EAASR,KACf3tC,EAAWmuC,EAASP,UAExB,MAAO,CACLt6B,MAAI,KAAI,EAACsd,EAAIjC,OAAQiC,EAAG,GACxBF,UAAW1wB,G,KACL,EAACA,EAAS8uB,YAAa9uB,EAAQ,GACjC,I,SAIQyuC,GAAene,EAAwBtI,EAA0B6oB,GACzE,IAAAv9B,EAAoBgd,EAAhB,KAAEI,EAAcJ,EAAL,UACjBwgB,EAAwB,GACxBC,EAAoBF,EAAkBA,EAAgB/hB,WAAa,GAEvE,IAAK,IAAIpJ,KAAMgL,EAAW,CACxB,IAAI1wB,EAAW0wB,EAAUhL,GACrBkL,EAAMtd,EAAKtT,EAAS2uB,OAEpB3uB,EAAS8uB,aAAeiiB,GAC1BD,EAAUrzC,KAAK,IAAI,GAASuqB,EAAS4I,EAAK5wB,IAI9C,OAAO8wC,ECvbT,IAAIE,GAAyB,GAU7B,IAR6CC,GAQ7C,4BAoBA,OAnBE,YAAAta,cAAA,SAAcnzB,GACZ,OAAOA,EAAEkpB,kBAGX,YAAAkK,eAAA,SAAepzB,GACb,OAAOA,EAAEmpB,eAGX,YAAAkK,aAAA,SAAarzB,GACX,OAAOA,EAAEopB,cAGX,YAAAskB,cAAA,SAAc70C,GACZ,OAAO0vB,EAAe1vB,IAGxB,YAAAy9B,cAAA,SAAchN,GACZ,OAAOhB,EAAegB,IAE1B,EApBA,GAR6CmkB,GA8BXE,GA7BhCH,GA6BqB,WA7BUC,GCXjC,IAAMG,GAAS,oH,kBCiDb,WAAYlE,GACV,IAAIlU,EAAWp3B,KAAKo3B,SAAWkU,EAASlU,SACpCqY,EAA+B,UAAbrY,GAAqC,QAAbA,EAE1CkU,EAASoE,mBAAqBD,IAChCzvC,KAAK0vC,kBAAoB,IAAIpE,EAASoE,kBAAkBtY,IAG1Dp3B,KAAK2vC,iBAAmBr2B,SAASm2B,GAAmBzvC,KAAK0vC,mBAEzD1vC,KAAKm1B,e,SF7C4B14B,GACnC,OAAO,IAAI2yC,GAAuB3yC,GE4CVmzC,CAAqBtE,EAASnW,gBACpDn1B,KAAK62B,OAASyU,EAASzU,OACvB72B,KAAK6vC,QAAUvE,EAASzU,OAAO3F,KAAK9F,IACpCprB,KAAK8vC,QAAUxE,EAASzU,OAAO3F,KAAK7F,IAEG,QAAnCigB,EAASyE,wBACX/vC,KAAK6vC,QAAU,EACf7vC,KAAK8vC,QAAU,GAGgB,kBAAtBxE,EAAS0E,WAClBhwC,KAAK6vC,QAAUvE,EAAS0E,UAGoB,oBAAnC1E,EAASyE,wBAClB/vC,KAAKiwC,eAAiB3E,EAASyE,uBAGjC/vC,KAAK42B,SAAgC,MAArB0U,EAAS1U,SAAmB0U,EAAS1U,SAAW0U,EAASzU,OAAOvlB,QAAQslB,SAExF52B,KAAKw4B,aAAe8S,EAAS9S,aAC7Bx4B,KAAKy2B,iBAAmB6U,EAAS7U,iBAqXrC,OAhXE,YAAAoS,aAAA,SAAa9Y,GACX,IAAInJ,EAAO5mB,KAAKo9B,iBAAiBrN,GACjC,OAAa,OAATnJ,EACK,KAEFA,EAAKsE,QAGd,YAAA0d,gBAAA,WACE,OAAI5oC,KAAK2vC,iBACA3vC,KAAKkwC,mBAAkB,IAAIznC,MAAO8Q,WAIpC4Q,EAAe0B,EAAiB,IAAIpjB,QAG7C,YAAA20B,iBAAA,SAAiBrN,GACf,GAAqB,kBAAVA,EACT,OAAO/vB,KAAKy8B,MAAM1M,GAGpB,IAAI7E,EAAS,KAcb,MAZqB,kBAAV6E,EACT7E,EAASlrB,KAAKkwC,kBAAkBngB,GACvBA,aAAiBtnB,MAC1BsnB,EAAQA,EAAMxW,UAETsT,MAAMkD,KACT7E,EAASlrB,KAAKkwC,kBAAkBngB,KAEzBj1B,MAAME,QAAQ+0B,KACvB7E,EAASf,EAAe4F,IAGX,OAAX7E,GAAoB0B,EAAY1B,GAI7B,CAAEA,OAAM,EAAEmS,mBAAmB,EAAOE,UAAW,MAH7C,MAMX,YAAAd,MAAA,SAAMl9B,GACJ,IAAIu3B,E,SD/HcvnB,GACpB,IAAI0a,EAAIulB,GAAO/jC,KAAK8D,GAEpB,GAAI0a,EAAG,CACL,IAAIiB,EAAS,IAAIziB,KAAKA,KAAKkkB,IACzBuV,OAAOjY,EAAE,IACTA,EAAE,GAAKiY,OAAOjY,EAAE,IAAM,EAAI,EAC1BiY,OAAOjY,EAAE,IAAM,GACfiY,OAAOjY,EAAE,IAAM,GACfiY,OAAOjY,EAAE,IAAM,GACfiY,OAAOjY,EAAE,KAAO,GAChBA,EAAE,IAA6B,IAAvBiY,OAAO,KAAKjY,EAAE,KAAgB,IAGxC,GAAI2C,EAAY1B,GAAS,CACvB,IAAIgH,EAAiB,KASrB,OAPIjI,EAAE,MACJiI,GAA4B,MAAVjI,EAAE,KAAe,EAAI,IAChB,GAArBiY,OAAOjY,EAAE,KAAO,GAChBiY,OAAOjY,EAAE,KAAO,KAIb,CACLiB,OAAM,EACNmS,mBAAoBpT,EAAE,GACtBiI,eAAc,IAKpB,OAAO,KC+FOuK,CAAMl9B,GAClB,GAAc,OAAVu3B,EACF,OAAO,KAGH,IAAA5L,EAAW4L,EAAL,OACRyG,EAAY,KAUhB,OAR6B,OAAzBzG,EAAM5E,iBACJlyB,KAAK2vC,iBACPzkB,EAASlrB,KAAKkwC,kBAAkBhlB,EAAO3R,UAAmC,GAAvBud,EAAM5E,eAAsB,KAE/EqL,EAAYzG,EAAM5E,gBAIf,CAAEhH,OAAM,EAAEmS,kBAAmBvG,EAAMuG,kBAAmBE,UAAS,IAKxE,YAAA4S,QAAA,SAAQjlB,GACN,OAAOlrB,KAAKm1B,eAAeJ,cAAc7J,IAG3C,YAAAc,SAAA,SAASd,GACP,OAAOlrB,KAAKm1B,eAAeH,eAAe9J,IAK5C,YAAAloB,IAAA,SAAIkoB,EAAoBuG,GACtB,IAAIxjB,EAAIjO,KAAKm1B,eAAe+C,cAAchN,GAK1C,OAJAjd,EAAE,IAAMwjB,EAAIvB,MACZjiB,EAAE,IAAMwjB,EAAItB,OACZliB,EAAE,IAAMwjB,EAAIhG,KACZxd,EAAE,IAAMwjB,EAAIrB,aACLpwB,KAAKm1B,eAAema,cAAcrhC,IAG3C,YAAA0hB,SAAA,SAASzE,EAAoBuG,GAC3B,IAAIxjB,EAAIjO,KAAKm1B,eAAe+C,cAAchN,GAK1C,OAJAjd,EAAE,IAAMwjB,EAAIvB,MACZjiB,EAAE,IAAMwjB,EAAItB,OACZliB,EAAE,IAAMwjB,EAAIhG,KACZxd,EAAE,IAAMwjB,EAAIrB,aACLpwB,KAAKm1B,eAAema,cAAcrhC,IAG3C,YAAAw8B,SAAA,SAASvf,EAAoB/uB,GAC3B,IAAI8R,EAAIjO,KAAKm1B,eAAe+C,cAAchN,GAE1C,OADAjd,EAAE,IAAM9R,EACD6D,KAAKm1B,eAAema,cAAcrhC,IAG3C,YAAAmiC,UAAA,SAAUllB,EAAoB/uB,GAC5B,IAAI8R,EAAIjO,KAAKm1B,eAAe+C,cAAchN,GAE1C,OADAjd,EAAE,IAAM9R,EACD6D,KAAKm1B,eAAema,cAAcrhC,IAK3C,YAAAywB,eAAA,SAAenU,EAAgBC,GACvB,IAAA2K,EAAmBn1B,KAAL,eAEpB,OACE2qB,EAASJ,KAAQI,EAASH,IAC1B2K,EAAeF,aAAa1K,KAAQ4K,EAAeF,aAAazK,IAChE2K,EAAeH,eAAezK,KAAQ4K,EAAeH,eAAexK,GAE7D2K,EAAeJ,cAAcvK,GAAM2K,EAAeJ,cAAcxK,GAElE,MAGT,YAAAoU,gBAAA,SAAgBpU,EAAgBC,GACxB,IAAA2K,EAAmBn1B,KAAL,eAEpB,OACE2qB,EAASJ,KAAQI,EAASH,IAC1B2K,EAAeF,aAAa1K,KAAQ4K,EAAeF,aAAazK,GAExD2K,EAAeH,eAAexK,GAAM2K,EAAeH,eAAezK,GACE,IAAvE4K,EAAeJ,cAAcvK,GAAM2K,EAAeJ,cAAcxK,IAEhE,MAKT,YAAA8lB,kBAAA,SAAkB9lB,EAAgBC,GAChC,IAAIruB,EAAI6D,KAAK0+B,eAAenU,EAAIC,GAEhC,OAAU,OAANruB,EACK,CAAE6zB,KAAM,OAAQl0B,MAAOK,GAKtB,QAFVA,EAAI6D,KAAK2+B,gBAAgBpU,EAAIC,IAGpB,CAAEwF,KAAM,QAASl0B,MAAOK,IAGjCA,E,SjC5K2BouB,EAAgBC,GAC7C,IAAI5oB,EAAI8oB,EAAcH,EAAIC,GAE1B,OAAU,OAAN5oB,GAAcA,EAAI,IAAM,EACnBA,EAAI,EAGN,KiCqKD0uC,CAAe/lB,EAAIC,GAEb,OAANruB,EACK,CAAE6zB,KAAM,OAAQl0B,MAAOK,GAKtB,QAFVA,EAAIuuB,EAAcH,EAAIC,IAGb,CAAEwF,KAAM,MAAOl0B,MAAOK,IAG/BA,E,SjClNsBouB,EAAIC,GAC5B,OAAQA,EAAGjR,UAAYgR,EAAGhR,WAAnB,KiCiNDg3B,CAAUhmB,EAAIC,GAEdd,EAAMvtB,GACD,CAAE6zB,KAAM,OAAQl0B,MAAOK,IAGhCA,E,SjCpNwBouB,EAAIC,GAC9B,OAAQA,EAAGjR,UAAYgR,EAAGhR,WAAnB,IiCmNDi3B,CAAYjmB,EAAIC,GAEhBd,EAAMvtB,GACD,CAAE6zB,KAAM,SAAUl0B,MAAOK,IAGlCA,E,SjCtNwBouB,EAAIC,GAC9B,OAAQA,EAAGjR,UAAYgR,EAAGhR,WAAa,IiCqNjCk3B,CAAYlmB,EAAIC,GAEhBd,EAAMvtB,GACD,CAAE6zB,KAAM,SAAUl0B,MAAOK,GAG3B,CAAE6zB,KAAM,cAAel0B,MAAO0uB,EAAGjR,UAAYgR,EAAGhR,gBAGzD,YAAAm3B,sBAAA,SAAsBnmB,EAAgBC,EAAgB5oB,GAEpD,IAAI+uC,EAEJ,OAAI/uC,EAAEsuB,OAES,QADbygB,EAAO3wC,KAAK0+B,eAAenU,EAAIC,IAEtBmmB,G7BtINnf,G6BsI0B5vB,G7BtIP,K6B0IpBA,EAAEuuB,QAES,QADbwgB,EAAO3wC,KAAK2+B,gBAAgBpU,EAAIC,IAEvBmmB,E,S7B1Ielf,GAC5B,OAAOD,GAAYC,GAAO,G6ByINmf,CAAchvC,GAI5BA,EAAE6pB,MAES,QADbklB,EAAOjmB,EAAcH,EAAIC,IAEhBmmB,EAAOnf,GAAY5vB,IAItB4oB,EAAGjR,UAAYgR,EAAGhR,WAAamY,GAAU9vB,IAMnD,YAAAivC,QAAA,SAAQ5mB,EAAe+F,GACrB,MAAa,SAATA,EACKhwB,KAAK8wC,YAAY7mB,GAEb,UAAT+F,EACKhwB,KAAK+wC,aAAa9mB,GAEd,SAAT+F,EACKhwB,KAAKgxC,YAAY/mB,GAEb,QAAT+F,EACKnF,EAAWZ,GAEP,SAAT+F,E,SjC9NoB/F,GAC1B,OAAOE,EAAe,CACpBF,EAAEa,iBACFb,EAAEc,cACFd,EAAEe,aACFf,EAAEsC,gBiC0NO0kB,CAAYhnB,GAER,WAAT+F,E,SjCxNsB/F,GAC5B,OAAOE,EAAe,CACpBF,EAAEa,iBACFb,EAAEc,cACFd,EAAEe,aACFf,EAAEsC,cACFtC,EAAEuC,kBiCmNO0kB,CAAcjnB,GAEV,WAAT+F,E,SjCjNsB/F,GAC5B,OAAOE,EAAe,CACpBF,EAAEa,iBACFb,EAAEc,cACFd,EAAEe,aACFf,EAAEsC,cACFtC,EAAEuC,gBACFvC,EAAEwC,kBiC2MO0kB,CAAclnB,GAEhB,MAGT,YAAA6mB,YAAA,SAAY7mB,GACV,OAAOjqB,KAAKm1B,eAAema,cAAc,CACvCtvC,KAAKm1B,eAAeJ,cAAc9K,MAItC,YAAA8mB,aAAA,SAAa9mB,GACX,OAAOjqB,KAAKm1B,eAAema,cAAc,CACvCtvC,KAAKm1B,eAAeJ,cAAc9K,GAClCjqB,KAAKm1B,eAAeH,eAAe/K,MAIvC,YAAA+mB,YAAA,SAAY/mB,GACV,OAAOjqB,KAAKm1B,eAAema,cAAc,CACvCtvC,KAAKm1B,eAAeJ,cAAc9K,GAClCjqB,KAAKm1B,eAAeH,eAAe/K,GACnCA,EAAEe,cAAiBf,EAAE2B,YAAc5rB,KAAK6vC,QAAU,GAAK,KAM3D,YAAA3Y,kBAAA,SAAkBhM,GAChB,OAAIlrB,KAAKiwC,eACAjwC,KAAKiwC,eAAejwC,KAAK8kC,OAAO5Z,I,SjCnOlBA,EAAQE,EAAKC,GACtC,IAAIjlB,EAAI8kB,EAAOJ,iBACXsmB,EAAInmB,EAAgBC,EAAQ9kB,EAAGglB,EAAKC,GAExC,GAAI+lB,EAAI,EACN,OAAOnmB,EAAgBC,EAAQ9kB,EAAI,EAAGglB,EAAKC,GAG7C,IAAIgmB,EAAQpmB,EAAgBC,EAAQ9kB,EAAI,EAAGglB,EAAKC,GAChD,OAAIgmB,GAAS,EACJjsC,KAAKs6B,IAAI0R,EAAGC,GAGdD,EiCwNEE,CAAWpmB,EAAQlrB,KAAK6vC,QAAS7vC,KAAK8vC,UAI/C,YAAAhpB,OAAA,SAAOoE,EAAoBmgB,EAA0BkG,GACnD,YADmD,IAAAA,MAAA,IAC5ClG,EAAUvkB,OACf,CACEoE,OAAM,EACNgH,eAAyC,MAAzBqf,EAAYhU,UAC1BgU,EAAYhU,UACZv9B,KAAKwxC,gBAAgBtmB,IAEzBlrB,OAIJ,YAAA20B,YAAA,SACE/e,EACA9C,EACAu4B,EACAkG,GAMA,YANA,IAAAA,MAAA,IAEIA,EAAYE,iBACd3+B,EAAMuX,EAAMvX,GAAM,IAGbu4B,EAAU1W,YACf,CACEzJ,OAAQtV,EACRsc,eAA8C,MAA9Bqf,EAAYvkB,eAC1BukB,EAAYvkB,eACZhtB,KAAKwxC,gBAAgB57B,IAEzB,CACEsV,OAAQpY,EACRof,eAA4C,MAA5Bqf,EAAYtkB,aAC1BskB,EAAYtkB,aACZjtB,KAAKwxC,gBAAgB1+B,IAEzB9S,KACAuxC,EAAY9a,mBAQhB,YAAAuO,UAAA,SAAU9Z,EAAoBwmB,QAAA,IAAAA,MAAA,IAC5B,IAAIxf,EAAiB,KAUrB,OARKwf,EAAaC,qBAEdzf,EAD4B,MAA1Bwf,EAAanU,UACEmU,EAAanU,UAEbv9B,KAAKwxC,gBAAgBtmB,IAInC+G,GAAe/G,EAAQgH,EAAgBwf,EAAa9M,WAK7D,YAAAsL,kBAAA,SAAkBlf,GAChB,MAAsB,UAAlBhxB,KAAKo3B,SACAjN,EAAe0B,EAAiB,IAAIpjB,KAAKuoB,KAC1B,QAAlBhxB,KAAKo3B,UAAuBp3B,KAAK0vC,kBAGhCvlB,EAAenqB,KAAK0vC,kBAAkBkC,iBAAiB5gB,IAFrD,IAAIvoB,KAAKuoB,IAKpB,YAAAwgB,gBAAA,SAAgBvnB,GACd,MAAsB,UAAlBjqB,KAAKo3B,UACC9K,EAAiBpC,EAAeD,IAAI4nB,oBACtB,QAAlB7xC,KAAKo3B,SACF,EACHp3B,KAAK0vC,kBACF1vC,KAAK0vC,kBAAkBoC,eAAe5nB,EAAeD,IAEvD,MAKT,YAAA6a,OAAA,SAAO7a,EAAesT,GACpB,MAAsB,UAAlBv9B,KAAKo3B,SACA9K,EAAiBpC,EAAeD,IAGnB,QAAlBjqB,KAAKo3B,SACA,IAAI3uB,KAAKwhB,EAAE1Q,WAGfvZ,KAAK0vC,kBAIH,IAAIjnC,KACTwhB,EAAE1Q,UAC2D,IAA3DvZ,KAAK0vC,kBAAkBoC,eAAe5nB,EAAeD,IAAa,IAL7D,IAAIxhB,KAAKwhB,EAAE1Q,WAAagkB,GAAa,KAQlD,E,GCrcawU,GAA+B,GCwBtCC,GAAgB,CACpBC,KAAM,KACN/gB,KAAM,CACJ9F,IAAK,EACLC,IAAK,GAEP2L,UAAW,MACXkb,WAAY,CACV3H,KAAM,OACN5uC,KAAM,OACN6uC,SAAU,YACVG,SAAU,YACVxf,KAAM,OACNyf,MAAO,QACPra,MAAO,QACPW,KAAM,OACNV,IAAK,MACLthB,KAAM,QAER0nB,SAAU,IACVub,WAAY,UACZC,aAAc,OACdC,aAAc,wB,SAGAC,GAAmBC,GAOjC,IANA,IAAIC,EAAcD,EAAmB53C,OAAS,EAAI43C,EAAmB,GAAGN,KAAO,KAC3EQ,EAAgBV,GAAch0C,OAAOw0C,GACrCG,EAA+B,CACjCC,GAAIX,IAGgB,MAAAS,EAAA,eAAe,CAAhC,IAAIG,EAAS,KAChBF,EAAaE,EAAUX,MAAQW,EAGjC,MAAO,CACLj1C,IAAK+0C,EACLF,YAAW,G,SAICK,GAAYC,EAAkCC,GAC5D,MAA6B,kBAAlBD,GAA+Bh4C,MAAME,QAAQ83C,GAU1D,SAAqBE,EAAwBD,GAC3C,IAAItb,EAAQ,GAAG15B,OAAOi1C,GAAW,IAC7B1Y,EAKN,SAAwB7C,EAAiBsb,GACvC,IAAK,IAAIn4C,EAAI,EAAGA,EAAI68B,EAAM98B,OAAQC,GAAK,EAGrC,IAFA,IAAIk8B,EAAQW,EAAM78B,GAAGuV,oBAAoBpN,MAAM,KAEtCkR,EAAI6iB,EAAMn8B,OAAQsZ,EAAI,EAAGA,GAAK,EAAG,CACxC,IAAIg/B,EAAWnc,EAAMv6B,MAAM,EAAG0X,GAAG/V,KAAK,KAEtC,GAAI60C,EAAUE,GACZ,OAAOF,EAAUE,GAIvB,OAAO,KAjBGC,CAAezb,EAAOsb,IAAcf,GAE9C,OAAOmB,GAAYH,EAASvb,EAAO6C,GAP5B8Y,CAAYN,EAAeC,GANzBI,GACLL,EAAcb,KACd,CAACa,EAAcb,MACfa,GA4BN,SAASK,GAAYH,EAAwBvb,EAAiB6C,GAC5D,IAAI+Y,EAASlmB,GAAW,CAAC6kB,GAAe1X,GAAM,CAAC,sBAExC+Y,EAAOpB,KACR,IAAA/gB,EAASmiB,EAAL,KAGV,cAFOA,EAAOniB,KAEP,CACL8hB,QAAO,EACPvb,MAAK,EACLvG,KAAI,EACJ6F,mBAAoB,IAAIQ,KAAK+b,aAAaN,GAC1C1hC,QAAS+hC,GCtGb,ICXIE,GDWEC,GAAe,CACnBC,UAAW,QACXC,QAAS,QACTC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,GACzBzrC,QAAS,qBACTjL,WAAY,kBACZ88B,QAAS,kB,SAMK6Z,GAAmB7jB,EAA2B3J,GAC5D,OAAO4S,GAOT,SAAsBjJ,GACpB,IAAI8jB,EAGFA,GADY,IAAV9jB,EACQ,CAAC,IACFj1B,MAAME,QAAQ+0B,GAEbA,EAAM/xB,QAAO,SAAC81C,GAAW,OAAAA,EAAOH,cAChB,kBAAV5jB,GAAsBA,EAC5B,CAACA,GAED,GAKZ,OAFA8jB,EAAUA,EAAQl2C,KAAI,SAACm2C,GAAW,kCAAMN,IAAiBM,MApBvDC,CAAahkB,GACb,KACA3J,G,SEfY4tB,GAAgBC,EAAc/xC,GAC5C,OAAO+xC,EAAM3xC,MAAQJ,EAAKI,MACxB2xC,EAAM3xC,KAAOJ,EAAKyE,OAClBstC,EAAM7xC,KAAOF,EAAKE,KAClB6xC,EAAM7xC,IAAMF,EAAK0E,O,SAILstC,GAAeC,EAAaC,GAC1C,IAAItiB,EAAM,CACRxvB,KAAM8C,KAAKC,IAAI8uC,EAAM7xC,KAAM8xC,EAAM9xC,MACjCqE,MAAOvB,KAAKs6B,IAAIyU,EAAMxtC,MAAOytC,EAAMztC,OACnCvE,IAAKgD,KAAKC,IAAI8uC,EAAM/xC,IAAKgyC,EAAMhyC,KAC/BwE,OAAQxB,KAAKs6B,IAAIyU,EAAMvtC,OAAQwtC,EAAMxtC,SAGvC,OAAIkrB,EAAIxvB,KAAOwvB,EAAInrB,OAASmrB,EAAI1vB,IAAM0vB,EAAIlrB,QACjCkrB,E,SAgBKuiB,GAAeJ,EAAc/xC,GAC3C,MAAO,CACLI,KAAM8C,KAAKs6B,IAAIt6B,KAAKC,IAAI4uC,EAAM3xC,KAAMJ,EAAKI,MAAOJ,EAAKyE,OACrDvE,IAAKgD,KAAKs6B,IAAIt6B,KAAKC,IAAI4uC,EAAM7xC,IAAKF,EAAKE,KAAMF,EAAK0E,S,SAKtC0tC,GAAcpyC,GAC5B,MAAO,CACLI,MAAOJ,EAAKI,KAAOJ,EAAKyE,OAAS,EACjCvE,KAAMF,EAAKE,IAAMF,EAAK0E,QAAU,G,SAKpB2tC,GAAWC,EAAeC,GACxC,MAAO,CACLnyC,KAAMkyC,EAAOlyC,KAAOmyC,EAAOnyC,KAC3BF,IAAKoyC,EAAOpyC,IAAMqyC,EAAOryC,K,SD9DbsyC,KAId,OAH0B,MAAtBnB,KACFA,GAKJ,WAGE,GAAwB,qBAAb7yC,SACT,OAAO,EAGT,IAAIT,EAAKS,SAASsK,cAAc,OAChC/K,EAAGG,MAAM8F,SAAW,WACpBjG,EAAGG,MAAMgC,IAAM,MACfnC,EAAGG,MAAMkC,KAAO,MAChBrC,EAAG4M,UAAY,+CACf5M,EAAGuD,cAAc,SAASpD,MAAMkB,OAAS,QACzCrB,EAAGuD,cAAc,OAAOpD,MAAMkB,OAAS,OAEvCZ,SAAS2B,KAAKmH,YAAYvJ,GAE1B,IACI00C,EADM10C,EAAGuD,cAAc,OACRjC,aAAe,EAElC,OADAb,SAAS2B,KAAKsH,YAAY1J,GACnB00C,EAzBgBC,IAEhBrB,GEaT,IAAMsB,GxByDG,CAAEnjC,KAAM,GAAIod,UAAW,I,cwBvDhC,aACU,KAAAgmB,oBAAsBhiB,GAAQ9yB,KAAK+0C,sBACnC,KAAAC,mBAAqBliB,GAAQ9yB,KAAKi1C,gBAClC,KAAAC,gBAAkBpiB,GAAQ9yB,KAAKm1C,kBAC/B,KAAAC,kBAAoBtiB,GAAQ9yB,KAAKq1C,oBACjC,KAAAC,eAAiBxiB,GAAQ9yB,KAAKu1C,mBAC9B,KAAAC,iBAAmB1iB,GAAQ9yB,KAAKu1C,mBAChC,KAAAE,gBAAkB,GAsI5B,OAhIE,YAAAC,WAAA,SAAWl3C,GAAX,WACMm3C,EAAW31C,KAAK41C,WAAWp3C,GAC3Bq3C,EAAU71C,KAAK80C,oBAAoBt2C,EAAMkwB,YACzConB,EAAiB91C,KAAKg1C,mBAAmBx2C,EAAMktC,eAC/CqK,EAAe/1C,KAAKo1C,kBAAkB52C,EAAMyhC,aAAc4V,GAC1DG,EAAch2C,KAAKk1C,gBAAgB12C,EAAMkwB,WAAYmnB,GACrDI,EAAaj2C,KAAKs1C,eAAe92C,EAAM03C,WACvCC,EAAen2C,KAAKw1C,iBAAiBh3C,EAAM43C,aAC3CV,EAAiD,GAIrD,IAAK,IAAI53C,KAFTkC,KAAKy1C,gBAAkB7nB,GAAQ+nB,GAAU,SAACU,EAAMv4C,GAAQ,SAAK23C,gBAAgB33C,IAAQg1B,GAAQwjB,OAE7EX,EAAU,CACxB,IAAIY,EAAUZ,EAAS73C,GACnB4wB,EAAasnB,EAAYl4C,IAAQ+2C,GACjC2B,EAAex2C,KAAKy1C,gBAAgB33C,GAExC43C,EAAW53C,GAAO,CAChB24C,cAAeF,EAAQE,eAAiBj4C,EAAMi4C,cAC9C/K,cAAeoK,EAAeh4C,IAAQ,KACtC4wB,WAAU,EACVuR,aAAcuW,EAAah4C,EAAMyhC,aAAa,IAAKsW,EAAQ7Y,GAAIqY,EAAaj4C,IAC5E44C,eAAgBhoB,EAAWI,UAAUtwB,EAAMk4C,gBAAkBl4C,EAAMk4C,eAAiB,GACpFR,UAAWD,EAAWn4C,IAAQ,KAC9Bs4C,YAAaD,EAAar4C,IAAQ,MAItC,OAAO43C,GAGD,YAAAT,eAAR,SAAuB9P,GACrB,IAAIwR,EAAY,GAEhB,GAAIxR,EAGF,IAFA,IAEgB,MAFLnlC,KAAK42C,mBAAmBzR,GAEnB,eAAM,CACpBwR,EADU,MACOxR,EAIrB,OAAOwR,GAGD,YAAA5B,qBAAR,SAA6BrmB,GAA7B,WACE,OAAOd,GAAQc,EAAWhd,MAAM,SAAC4d,GAAuB,SAAKunB,mBAAmBvnB,OAG1E,YAAA6lB,iBAAR,SAAyBzmB,EAAwBmnB,GACzC,IAAAnkC,EAAoBgd,EAAhB,KAAEI,EAAcJ,EAAL,UACjBooB,EAAc,GAElB,IAAK,IAAI/pB,KAASrb,EAChB,IAAgB,UAAAmkC,EAAQ9oB,GAAR,eAAgB,CACzB+pB,EADEh5C,EAAG,QAERg5C,EAAYh5C,GxBdb,CAAE4T,KAAM,GAAIod,UAAW,KwBiBxBgoB,EAAYh5C,GAAK4T,KAAKqb,GAASrb,EAAKqb,GAIxC,IAAK,IAAIG,KAAc4B,EAGrB,IAFA,IAAI1wB,EAAW0wB,EAAU5B,GAET,MAAA2oB,EAAQz3C,EAAS2uB,OAAjB,eAAyB,CAApC,IAAIjvB,EACHg5C,EADGh5C,EAAG,QAERg5C,EAAYh5C,GAAKgxB,UAAU5B,GAAc9uB,GAK/C,OAAO04C,GAGD,YAAAzB,mBAAR,SAA2BpV,EAA2B4V,GACpD,IAAIkB,EAA8C,GAElD,IAAK,IAAIhqB,KAASkT,EAChB,GAAIlT,EACF,IAAgB,UAAA8oB,EAAQ9oB,GAAR,eAAgB,CAA3B,IAAIjvB,EAAG,KACLi5C,EAAYj5C,KACfi5C,EAAYj5C,GAAO,IAGrBi5C,EAAYj5C,GAAKivB,GAASkT,EAAalT,GAK7C,OAAOgqB,GAGD,YAAAxB,kBAAR,SAA0ByB,GACxB,IAAIC,EAAwD,GAE5D,GAAID,EAAa,CACf,IAAI,EAAiBh3C,KAAKm1C,iBACxB6B,EAAYE,eACZl3C,KAAK+0C,qBAAqBiC,EAAYE,iBAIpCC,EAAqBn3C,KAAK+0C,qBAAqBiC,EAAYI,eAC3D,EAAgBp3C,KAAKm1C,iBAAiB6B,EAAYI,cAAeD,GAEjEE,EAAW,SAACv5C,GACTm5C,EAAYn5C,KACfm5C,EAAYn5C,GAAO,CACjBo5C,eAAgB,EAAep5C,IAAQ+2C,GACvCuC,cAAe,EAAct5C,IAAQ+2C,GACrCyC,QAASN,EAAYM,WAK3B,IAAK,IAAIx5C,KAAO,EACdu5C,EAASv5C,GAGX,IAAK,IAAIA,KAAO,EACdu5C,EAASv5C,GAIb,OAAOm5C,GAEX,E,GAEA,SAASX,GAAmBiB,EAAuBC,EAA+BzB,GAChF,IAAI0B,EAAY,GAEZF,GACFE,EAAU57C,KAAK07C,GAGbC,GACFC,EAAU57C,KAAK27C,GAGjB,IAAIE,EAAQ,CACV,GAAIlc,GAAgBic,IAOtB,OAJI1B,GACF,YAAS2B,EAAO3B,GAGX2B,E,SCzKOC,GAAY7rB,EAAkB4X,EAAwBC,EAAsByD,GAC1F,MAAO,CACLhc,IAAKU,EAAKF,YACVvL,WAAY/G,QAAQ8tB,IAAgBrH,GAAoBqH,EAAYC,YAAavb,IACjF8rB,QAASt+B,QAAQ8tB,IAAgBrH,GAAoBqH,EAAYE,aAAcxb,IAC/EiY,QAASzqB,QAAQoqB,GAAc3D,GAAoB2D,EAAY5X,IAC/D+X,OAAQvqB,QAAQqqB,EAAW7X,EAAO6X,IAAWD,GAAc5X,EAAO4X,EAAW9tB,OAC7EkuB,SAAUxqB,QAAQqqB,EAAW7X,EAAO6X,IAAWD,GAAc5X,GAAQ4X,EAAW5wB,M,SAIpE+kC,GAAiBjxB,EAAgBkxB,GAC/C,IAAI76C,EAAuB,CACzB,SACA,UAAU8sB,EAAQnD,EAAKwE,MAwBzB,OArBIxE,EAAKvG,WACPpjB,EAAWpB,KAAK,oBAEZ+qB,EAAKmd,UACP9mC,EAAWpB,KAAK,gBAChBoB,EAAWpB,KAAKi8C,EAAMC,SAAS,WAG7BnxB,EAAKid,QACP5mC,EAAWpB,KAAK,eAGd+qB,EAAKkd,UACP7mC,EAAWpB,KAAK,iBAGd+qB,EAAKgxB,SACP36C,EAAWpB,KAAK,iBAIboB,E,SCjDO+6C,GAAiBlsB,EAAkBtuB,GACjD,YADiD,IAAAA,MAAA,OAC1Cy6C,KAAKC,UAAU,CACpBpsB,KAAMwG,GAAgBxG,GACtBtuB,KAAI,ICJR,ICGI26C,GDHAC,GAAwC,K,SAE5BC,KAId,OAH8B,OAA1BD,KACFA,GAKJ,WACE,IAAIE,EAAU53C,SAASsK,cAAc,OACrCuc,EAAW+wB,EAAS,CAClBpyC,SAAU,WACV9D,KAAM,IACNE,KAAM,EACNmK,OAAQ,EACRD,QAAS,EACTD,SAAU,SACVyqB,UAAW,QAEbshB,EAAQzrC,UAAY,cAEpBnM,SAAS2B,KAAKmH,YAAY8uC,GAC1B,IACIxmB,EADUwmB,EAAQC,WACJp2C,wBAAwBG,KAAOg2C,EAAQn2C,wBAAwBG,KAGjF,OADAykB,EAAcuxB,GACPxmB,EAvBmB0mB,IAEnBJ,G,SCDOK,KAKd,OAJKN,KACHA,GAMJ,WACE,IAAIl4C,EAAKS,SAASsK,cAAc,OAChC/K,EAAGG,MAAMmM,SAAW,SACpBtM,EAAGG,MAAM8F,SAAW,WACpBjG,EAAGG,MAAMgC,IAAM,UACfnC,EAAGG,MAAMkC,KAAO,UAChB5B,SAAS2B,KAAKmH,YAAYvJ,GAC1B,IAAI6xB,EAAM4mB,GAA4Bz4C,GAEtC,OADAS,SAAS2B,KAAKsH,YAAY1J,GACnB6xB,EAfc6mB,IAGdR,G,SAgBOO,GAA4Bz4C,GAC1C,MAAO,CACLkG,EAAGlG,EAAGsB,aAAetB,EAAGyB,aACxB0E,EAAGnG,EAAGE,YAAcF,EAAG+B,a,SCuBX42C,GAAiB34C,EAAI44C,EAAyBC,QAAzB,IAAAD,OAAA,GACnC,IAAIE,EAAYD,EAAuB74C,EAAGkC,wBAA0B62C,GAAY/4C,GAC5Eg5C,E,SAtCuBh5C,EAAiBi5C,QAAA,IAAAA,OAAA,GAC5C,IAAIC,EAAgBv4C,OAAOP,iBAAiBJ,GACxCm5C,EAAa5hC,SAAS2hC,EAAct1C,gBAAiB,KAAO,EAC5Dw1C,EAAc7hC,SAAS2hC,EAAcr1C,iBAAkB,KAAO,EAC9DmG,EAAYuN,SAAS2hC,EAAcx1C,eAAgB,KAAO,EAC1D21C,EAAe9hC,SAAS2hC,EAAcv1C,kBAAmB,KAAO,EAChE21C,EAAqBb,GAA4Bz4C,GACjDu5C,EAAqBD,EAAmBnzC,EAAIgzC,EAAaC,EAGzDvnB,EAAgB,CAClBsnB,WAAU,EACVC,YAAW,EACXpvC,UAAS,EACTqvC,aAAY,EACZG,gBAPoBF,EAAmBpzC,EAAI8D,EAAYqvC,EAQvDI,cAAe,EACfC,eAAgB,GAgBlB,OAbItB,MAAyD,QAA5Bc,EAAcniB,UAC7ClF,EAAI4nB,cAAgBF,EAEpB1nB,EAAI6nB,eAAiBH,EAGnBN,IACFpnB,EAAIvxB,YAAciX,SAAS2hC,EAAc54C,YAAa,KAAO,EAC7DuxB,EAAItxB,aAAegX,SAAS2hC,EAAc34C,aAAc,KAAO,EAC/DsxB,EAAIruB,WAAa+T,SAAS2hC,EAAc11C,WAAY,KAAO,EAC3DquB,EAAIpuB,cAAgB8T,SAAS2hC,EAAcz1C,cAAe,KAAO,GAG5DouB,EAKK8nB,CAAa35C,EAAI44C,GACzB/mB,EAAM,CACRxvB,KAAMy2C,EAAUz2C,KAAO22C,EAAMG,WAAaH,EAAMS,cAChD/yC,MAAOoyC,EAAUpyC,MAAQsyC,EAAMI,YAAcJ,EAAMU,eACnDv3C,IAAK22C,EAAU32C,IAAM62C,EAAMhvC,UAC3BrD,OAAQmyC,EAAUnyC,OAASqyC,EAAMK,aAAeL,EAAMQ,iBAUxD,OAPIZ,IACF/mB,EAAIxvB,MAAQ22C,EAAM14C,YAClBuxB,EAAInrB,OAASsyC,EAAMz4C,aACnBsxB,EAAI1vB,KAAO62C,EAAMx1C,WACjBquB,EAAIlrB,QAAUqyC,EAAMv1C,eAGfouB,E,SAGOknB,GAAY/4C,GAC1B,IAAIiC,EAAOjC,EAAGkC,wBAEd,MAAO,CACLG,KAAMJ,EAAKI,KAAO1B,OAAOI,YACzBoB,IAAKF,EAAKE,IAAMxB,OAAOC,YACvB8F,MAAOzE,EAAKyE,MAAQ/F,OAAOI,YAC3B4F,OAAQ1E,EAAK0E,OAAShG,OAAOC,a,SAgCjBg5C,GAAmB55C,GAGjC,IAFA,IAAIgH,EAAyB,GAEtBhH,aAAc2J,aAAa,CAChC,IAAIuvC,EAAgBv4C,OAAOP,iBAAiBJ,GAE5C,GAA+B,UAA3Bk5C,EAAcjzC,SAChB,MAGG,gBAAiBvJ,KAAKw8C,EAAc5sC,SAAW4sC,EAAcW,UAAYX,EAAcY,YAC1F9yC,EAAQpL,KAAKoE,GAGfA,EAAKA,EAAGwC,WAGV,OAAOwE,E,kBC9HT,aACU,KAAAud,SAAoE,GAIpExkB,KAAAg6C,YAAmB,KAgC7B,OA9BE,YAAAC,eAAA,SAAeD,GACbh6C,KAAKg6C,YAAcA,GAGrB,YAAAE,WAAA,SAAW5oC,GACTtR,KAAKsR,QAAUA,GAGjB,YAAAiT,GAAA,SAAoC/mB,EAAYya,IAwBlD,SAAmByV,EAAMlwB,EAAMya,IAC5ByV,EAAKlwB,KAAUkwB,EAAKlwB,GAAQ,KAC1B3B,KAAKoc,GAzBNkiC,CAAUn6C,KAAKwkB,SAAUhnB,EAAMya,IAGjC,YAAAwM,IAAA,SAAqCjnB,EAAYya,IAyBnD,SAAwByV,EAAMlwB,EAAMya,GAC9BA,EACEyV,EAAKlwB,KACPkwB,EAAKlwB,GAAQkwB,EAAKlwB,GAAMQ,QAAO,SAACmrB,GAAS,OAAAA,IAASlR,aAG7CyV,EAAKlwB,GA9BZ48C,CAAep6C,KAAKwkB,SAAUhnB,EAAMya,IAGtC,YAAAutB,QAAA,SAAyChoC,G,IAAY,wDAKnD,IAJA,IAAI68C,EAAmBr6C,KAAKwkB,SAAShnB,IAAS,GAC1C88C,EAAgBt6C,KAAKsR,SAAWtR,KAAKsR,QAAQ9T,GAC7CgnB,EAAW,GAAGzmB,OAAOu8C,GAAiB,GAAID,GAE1B,MAAA71B,EAAA,eAAU,CAAzB,IAAIvM,EAAO,KACdA,EAAQ3O,MAAMtJ,KAAKg6C,YAAa58C,KAIpC,YAAAm9C,YAAA,SAAY/8C,GACV,OAAQwC,KAAKwkB,SAAShnB,IAASwC,KAAKwkB,SAAShnB,GAAM7C,QAChDqF,KAAKsR,SAAWtR,KAAKsR,QAAQ9T,IAEpC,E,qBCzBE,WAAYg9C,EAAuBC,EAAoBC,EAAuBC,GAC5E36C,KAAKy6C,IAAMA,EAEX,IAAIG,EAAmB56C,KAAK46C,iBAAmBJ,EAASr4C,wBAEpDu4C,GACF16C,KAAK66C,mBAAmBD,EAAiBt4C,MAGvCq4C,GACF36C,KAAK86C,iBAAiBF,EAAiBx4C,KA2E7C,OAtEE,YAAAy4C,mBAAA,SAAmBE,GAIjB,IAHA,IAAIC,EAAQ,GACRC,EAAS,GAEE,MAAAj7C,KAAKy6C,IAAL,eAAU,CAApB,IACCv4C,EADK,KACKC,wBACd64C,EAAMn/C,KAAKqG,EAAKI,KAAOy4C,GACvBE,EAAOp/C,KAAKqG,EAAKyE,MAAQo0C,GAG3B/6C,KAAKg7C,MAAQA,EACbh7C,KAAKi7C,OAASA,GAIhB,YAAAH,iBAAA,SAAiBI,GAIf,IAHA,IAAIC,EAAO,GACPC,EAAU,GAEC,MAAAp7C,KAAKy6C,IAAL,eAAU,CAApB,IACCv4C,EADK,KACKC,wBACdg5C,EAAKt/C,KAAKqG,EAAKE,IAAM84C,GACrBE,EAAQv/C,KAAKqG,EAAK0E,OAASs0C,GAG7Bl7C,KAAKm7C,KAAOA,EACZn7C,KAAKo7C,QAAUA,GAKjB,YAAAC,YAAA,SAAYC,GACN,IAEA1gD,EAFEogD,EAAkBh7C,KAAb,MAAEi7C,EAAWj7C,KAAL,OACftF,EAAMsgD,EAAMrgD,OAGhB,IAAKC,EAAI,EAAGA,EAAIF,EAAKE,GAAK,EACxB,GAAI0gD,GAAgBN,EAAMpgD,IAAM0gD,EAAeL,EAAOrgD,GACpD,OAAOA,GASb,YAAA2gD,WAAA,SAAWC,GACL,IAEA5gD,EAFEugD,EAAkBn7C,KAAd,KAAEo7C,EAAYp7C,KAAL,QACftF,EAAMygD,EAAKxgD,OAGf,IAAKC,EAAI,EAAGA,EAAIF,EAAKE,GAAK,EACxB,GAAI4gD,GAAeL,EAAKvgD,IAAM4gD,EAAcJ,EAAQxgD,GAClD,OAAOA,GAQb,YAAAwf,SAAA,SAASqhC,GACP,OAAOz7C,KAAKi7C,OAAOQ,GAAaz7C,KAAKg7C,MAAMS,IAI7C,YAAAthC,UAAA,SAAUuhC,GACR,OAAO17C,KAAKo7C,QAAQM,GAAY17C,KAAKm7C,KAAKO,IAE9C,E,iBC9FA,cAyCA,OA/BE,YAAAC,gBAAA,WACE,OAAO37C,KAAK47C,kBAAoB57C,KAAK67C,mBAGvC,YAAAC,iBAAA,WACE,OAAO97C,KAAK+7C,iBAAmB/7C,KAAKg8C,kBAGtC,YAAAC,oBAAA,WACE,OAAOj8C,KAAK27C,kBAAoB,GAGlC,YAAAO,sBAAA,WACE,OAAOl8C,KAAK87C,mBAAqB,GAGnC,YAAAK,YAAA,WACE,OAAOn8C,KAAKo8C,eAAiB,GAG/B,YAAAC,cAAA,WACE,OAAOr8C,KAAKo8C,eAAiBp8C,KAAK27C,mBAGpC,YAAAW,cAAA,WACE,OAAOt8C,KAAKu8C,gBAAkB,GAGhC,YAAAC,eAAA,WACE,OAAOx8C,KAAKu8C,gBAAkBv8C,KAAK87C,oBAEvC,E,kBAKE,WAAY77C,GAAZ,MACE,cAAO,K,OACP,EAAKA,GAAKA,E,EAkCd,OAvC6C,iBAQ3C,YAAAm8C,aAAA,WACE,OAAOp8C,KAAKC,GAAGa,WAGjB,YAAAy7C,cAAA,WACE,OAAOv8C,KAAKC,GAAGgB,YAGjB,YAAAw7C,aAAA,SAAar6C,GACXpC,KAAKC,GAAGa,UAAYsB,GAGtB,YAAAs6C,cAAA,SAAcp6C,GACZtC,KAAKC,GAAGgB,WAAaqB,GAGvB,YAAAy5C,eAAA,WACE,OAAO/7C,KAAKC,GAAG08C,aAGjB,YAAAf,gBAAA,WACE,OAAO57C,KAAKC,GAAG28C,cAGjB,YAAAf,gBAAA,WACE,OAAO77C,KAAKC,GAAGyB,cAGjB,YAAAs6C,eAAA,WACE,OAAOh8C,KAAKC,GAAG+B,aAEnB,E,CAvC6C66C,I,eAyC7C,a,+CAgCA,OAhC4C,iBAC1C,YAAAT,aAAA,WACE,OAAOx7C,OAAOC,aAGhB,YAAA07C,cAAA,WACE,OAAO37C,OAAOI,aAGhB,YAAAy7C,aAAA,SAAatgD,GACXyE,OAAOyJ,OAAOzJ,OAAOI,YAAa7E,IAGpC,YAAAugD,cAAA,SAAcvgD,GACZyE,OAAOyJ,OAAOlO,EAAGyE,OAAOC,cAG1B,YAAAk7C,eAAA,WACE,OAAOr7C,SAASC,gBAAgBg8C,aAGlC,YAAAf,gBAAA,WACE,OAAOl7C,SAASC,gBAAgBi8C,cAGlC,YAAAf,gBAAA,WACE,OAAOn7C,SAASC,gBAAgBe,cAGlC,YAAAs6C,eAAA,WACE,OAAOt7C,SAASC,gBAAgBqB,aAEpC,E,CAhC4C66C,I,cC/E1C,WAAYhS,GACN7qC,KAAK88C,oBACP98C,KAAK+8C,gBACHlS,EAAgB7qC,KAAK88C,qBAmE7B,OA9DE,YAAAC,gBAAA,SAAgBC,GACd,IAAIC,EACAC,EAEJ,GAAgC,kBAArBF,GAAiCA,EAAkB,CAG5D,IAAKE,KAFLD,EAAkB,OAAH,IAAG,CAAH,GAAQj9C,KAAKm9C,aAETH,EACjBC,EAAgBC,GAAcl9C,KAAKo9C,wBACjCJ,EAAiBE,IAIrBl9C,KAAKm9C,YAAcF,OACW,IAArBD,IACTh9C,KAAKm9C,YAAc,KAIvB,YAAAC,wBAAA,SAAwB7/C,GACtB,IAAIsZ,EAAS7W,KAAKq9C,mBAMlB,OAJIxmC,GAAwC,IAA9BtZ,EAAUmO,QAAQmL,KAC9BtZ,EAAYsZ,EAAStZ,GAGhBA,GAGT,YAAAw6C,SAAA,SAASj6C,GACP,OAAOkC,KAAK1C,QAAQQ,IAAQ,IAG9B,YAAAw/C,aAAA,SAAaJ,EAAYK,GACvB,IAAIhgD,EAQJ,OALEA,EADEggD,GAASv9C,KAAKw9C,gBACJx9C,KAAKw9C,eAAeN,IAEpBl9C,KAAKm9C,YAAYD,IAInBl9C,KAAKy9C,cAAa,IAAIlgD,EAG3B,IAGT,YAAAmgD,yBAAA,SAAyBC,GACvB,IAAIpgD,EAEJ,OAAIyC,KAAK49C,iCACPrgD,EAAYogD,EAAkB39C,KAAK49C,iCAGvB59C,KAAKy9C,cAAa,IAAIz9C,KAAKo9C,wBAAwB7/C,GAI1D,IAEX,E,GAEA,GAAMlB,UAAUiB,QAAU,GAC1B,GAAMjB,UAAU8gD,YAAc,GAC9B,GAAM9gD,UAAUohD,cAAgB,GAChC,GAAMphD,UAAUghD,mBAAqB,G,kBCxEnC,WACUQ,EACAtY,EACAuY,EACAC,GAJV,WACU,KAAAF,WACA,KAAAtY,UACA,KAAAuY,aACA,KAAAC,kBAwBF,KAAAC,oBAAsB,SAACC,GAC7B,EAAKC,cAAgB,YAAS,GAAI,EAAKA,eAAiB,GAAID,GAC5D,EAAKE,SAxBL5Y,EAAQhhB,GAAG,iBAAkBvkB,KAAKg+C,qBAClCh+C,KAAKo+C,oBA+BT,OA5BE,YAAAC,OAAA,WACEr+C,KAAKulC,QAAQ9gB,IAAI,iBAAkBzkB,KAAKg+C,sBAG1C,YAAA/+B,OAAA,SAAOq/B,GACDA,GAAct+C,KAAK+9C,gBACrB/9C,KAAKo+C,oBAELp+C,KAAKm+C,SAID,YAAAC,kBAAR,WACEp+C,KAAKg+C,oBAAoB,CACvBvQ,KAAMztC,KAAK89C,cASP,YAAAK,MAAR,WACMn+C,KAAKk+C,eAAiBl+C,KAAK69C,SAAS79C,KAAKk+C,iBAC3Cl+C,KAAKk+C,cAAgB,OAG3B,E,GCnCaK,GAAgCr4B,EAA2B,I,SAqBxDs4B,GACdC,EACA3Y,EACA4Y,EACAC,EACA/vB,EACAkpB,EACAjpB,EACAvI,EACA4gB,EACA3B,EACAQ,EACA6Y,EACAC,GAEA,MAAO,CACLjwB,QAAO,EACPtd,QAASotC,EACT7vB,YAAW,EACX0W,QAAO,EACPjf,SAAQ,EACR4gB,eAAc,EACdnB,YAAW,EACX0Y,SAAQ,EACR3Y,QAAO,EACP6Y,qBAAoB,EACpB7G,MAAK,EACLyF,MAAiC,QAA1BmB,EAAY1nB,UACnB8nB,iBAAA,SAAiB7mC,GACfstB,EAAQhhB,GAAG,UAAWtM,IAExB8mC,oBAAA,SAAoB9mC,GAClBstB,EAAQ9gB,IAAI,UAAWxM,IAEzB+mC,sBAAA,SAAsBnB,GACpB,OAAO,IAAI,GACTA,EACAtY,EACAzV,GAAe4uB,EAAYZ,YAC3BY,EAAYX,kBAGhBa,6BAA4B,EAC5BC,+BAA8B,GC1ElC,gC,+CAoBA,OApBgF,iBAW9E,YAAAI,sBAAA,SAAsBC,EAAkBC,GAMtC,OALIn/C,KAAKo/C,OAEPtgC,QAAQugC,IAAIpxB,GAAgBixB,EAAWl/C,KAAKxB,OAAQyvB,GAAgBkxB,EAAWn/C,KAAKod,SAG9E8Q,GAAYluB,KAAKxB,MAAO0gD,EAAWl/C,KAAKs/C,gBAC7CpxB,GAAYluB,KAAKod,MAAO+hC,EAAWn/C,KAAKu/C,gBAjBtC,EAAAC,iBAAmBA,GACnB,EAAAC,iBAAmBA,GACnB,EAAAC,YAAmBnB,GAiB5B,EApBA,CAAgFvjC,GAsBhF,GAAc3e,UAAUijD,aAAe,GACvC,GAAcjjD,UAAUkjD,cAAgB,G,mBAExC,a,+CAIA,OAJgF,iBACvE,EAAAG,YAAmBnB,GAG5B,E,CAJgF,IAMhF,SAASiB,GAA6DF,GACpE,IAAI5xB,EAAOtxB,OAAOuc,OAAO3Y,KAAK3D,UAAUijD,cACxC,YAAS5xB,EAAM4xB,GACft/C,KAAK3D,UAAUijD,aAAe5xB,EAGhC,SAAS+xB,GAA8DF,GACrE,IAAI7xB,EAAOtxB,OAAOuc,OAAO3Y,KAAK3D,UAAUkjD,eACxC,YAAS7xB,EAAM6xB,GACfv/C,KAAK3D,UAAUkjD,cAAgB7xB,E,SAIjBiyB,GAAgB7kC,EAA0B/L,GACrC,oBAAR+L,EACTA,EAAI/L,GACK+L,IAERA,EAAY/L,QAAUA,G,mBCtB3B,2D,OACE,EAAA6wC,IAAMn3B,I,EA2BR,OA5BgF,iBAM9E,YAAAo3B,YAAA,aAGA,YAAAC,SAAA,SAASC,EAAsBC,EAAqBC,EAAiBC,GACnE,OAAO,MAMT,YAAAC,iBAAA,SAAiBlgD,GACf,OAASD,KAAKxB,MAAc03C,YACxBl2C,KAAKxB,MAAc43C,cACpBpvB,EAAe/mB,EAAI,qBAGxB,YAAAmgD,kBAAA,SAAkBngD,GAChB,OAAQ+mB,EAAe/mB,EAAI,iCACxB+mB,EAAe/mB,EAAI,mBACnB+mB,EAAe/mB,EAAI,qBACnB+mB,EAAe/mB,EAAI,gBAE1B,E,CA5BgF,I,SC7BhEogD,GAAatwB,GAC3B,MAAO,CACLjM,GAAI2E,IACJ63B,KAAMvwB,EAAMuwB,MAAQ,GACpBC,SAAUxwB,EAAMwwB,UAAY,GAC5BC,eAAgBzwB,EAAMywB,gBAAkB,GACxCC,YAAa,GAAG1iD,OAAOgyB,EAAM0wB,aAAe,IAC5CrnB,cAAerJ,EAAMqJ,eAAiB,GACtCuE,qBAAsB5N,EAAM4N,sBAAwB,GACpD8K,oBAAqB1Y,EAAM0Y,qBAAuB,GAClDpG,wBAAyBtS,EAAMsS,yBAA2B,GAC1Dqe,2BAA4B3wB,EAAM2wB,4BAA8B,GAChE7Z,yBAA0B9W,EAAM8W,0BAA4B,GAC5D8Z,0BAA2B5wB,EAAM4wB,2BAA6B,GAC9DC,oBAAqB7wB,EAAM6wB,qBAAuB,GAClD5a,mBAAoBjW,EAAMiW,oBAAsB,GAChD6a,MAAO9wB,EAAM8wB,OAAS,GACtBC,sBAAuB/wB,EAAM+wB,uBAAyB,GACtDC,aAAchxB,EAAMgxB,cAAgB,KACpCC,sBAAuBjxB,EAAMixB,uBAAyB,GACtDC,qBAAsBlxB,EAAMkxB,sBAAwB,GACpDC,sBAAuBnxB,EAAMmxB,uBAAyB,GACtDC,sBAAuBpxB,EAAMoxB,uBAAyB,GACtDC,qBAAsBrxB,EAAMqxB,sBAAwB,GACpDC,aAActxB,EAAMsxB,cAAgB,GACpCpZ,gBAAiBlY,EAAMkY,iBAAmB,GAC1CzP,aAAczI,EAAMyI,aACpBnJ,eAAgBU,EAAMV,gBAAkB,GACxCiyB,mBAAoBvxB,EAAMuxB,mBAC1BC,YAAaxxB,EAAMwxB,aAAe,GAClCC,oBAAqBzxB,EAAMyxB,oBAC3BC,qBAAsB1xB,EAAM0xB,sBAAwB,GACpDC,eAAgB3xB,EAAM2xB,gBAAkB,KACxCC,oBAAqB5xB,EAAM4xB,qBAAuB,GAClDC,iBAAkB7xB,EAAM6xB,kBAAoB,GAC5CC,eAAgB9xB,EAAM8xB,gBAAkB,GACxCC,gBAAiB/xB,EAAM+xB,iBAAmB,I,SA6D9BC,KACd,IAEIC,EAFAC,EAAmC,GACnCC,EAAiC,GAGrC,OAAO,SAACC,EAA2BC,GAMjC,OALKJ,GAAiBtvB,GAAcyvB,EAAcF,IAAyBvvB,GAAc0vB,EAAYF,KACnGF,EAhEN,SAA0BK,EAAyBD,GACjD,IAAIE,EAA2C,GAC3CC,EAAqB,CACvBhC,SAAU,GACVC,eAAgB,GAChBC,YAAa,GACbrnB,cAAe,GACfuE,qBAAsB,GACtB8K,oBAAqB,GACrBpG,wBAAyB,GACzBqe,2BAA4B,GAC5B7Z,yBAA0B,GAC1B8Z,0BAA2B,GAC3BC,oBAAqB,GACrB5a,mBAAoB,GACpB6a,MAAO,GACPC,sBAAuB,GACvBC,aAAc,KACdC,sBAAuB,GACvBC,qBAAsB,GACtBC,sBAAuB,GACvBC,sBAAuB,GACvBC,qBAAsB,GACtBC,aAAc,GACdpZ,gBAAiB,GACjBzP,aAAc,KACdnJ,eAAgB,GAChBiyB,mBAAoB,KACpBC,YAAa,GACbC,oBAAqB,KACrBC,qBAAsB,GACtBC,eAAgB,KAChBC,oBAAqB,GACrBC,iBAAkB,GAClBC,eAAgB,GAChBC,gBAAiB,IAGnB,SAASU,EAAQ9wC,GACf,IAAgB,UAAAA,EAAA,eAAM,CAAjB,IAAIsd,EAAG,KACLszB,EAAQtzB,EAAIlL,MACfw+B,EAAQtzB,EAAIlL,KAAM,EAClB0+B,EAAQxzB,EAAIsxB,MA8BuBmC,EA7BPzzB,EAA5BuzB,EA8BC,CACLhC,UAFkBmC,EA7BOH,GA+BRhC,SAASxiD,OAAO0kD,EAAOlC,UACxCC,eAAgBkC,EAAOlC,eAAeziD,OAAO0kD,EAAOjC,gBACpDC,YAAaiC,EAAOjC,YAAY1iD,OAAO0kD,EAAOhC,aAC9CrnB,cAAe,OAAF,IAAE,CAAF,eAAOspB,EAAOtpB,eAAkBqpB,EAAOrpB,eACpDuE,qBAAsB+kB,EAAO/kB,qBAAqB5/B,OAAO0kD,EAAO9kB,sBAChE8K,oBAAqB,OAAF,IAAE,CAAF,eAAOia,EAAOja,qBAAwBga,EAAOha,qBAChEpG,wBAAyBqgB,EAAOrgB,wBAAwBtkC,OAAO0kD,EAAOpgB,yBACtEqe,2BAA4BgC,EAAOhC,2BAA2B3iD,OAAO0kD,EAAO/B,4BAC5E7Z,yBAA0B6b,EAAO7b,yBAAyB9oC,OAAO0kD,EAAO5b,0BACxE8Z,0BAA2B+B,EAAO/B,0BAA0B5iD,OAAO0kD,EAAO9B,2BAC1EC,oBAAqB8B,EAAO9B,oBAAoB7iD,OAAO0kD,EAAO7B,qBAC9D5a,mBAAoB0c,EAAO1c,mBAAmBjoC,OAAO0kD,EAAOzc,oBAC5D6a,MAAO,OAAF,IAAE,CAAF,eAAO6B,EAAO7B,OAAU4B,EAAO5B,OACpCC,sBAAuB4B,EAAO5B,sBAAsB/iD,OAAO0kD,EAAO3B,uBAClEC,aAAc0B,EAAO1B,cAAgB2B,EAAO3B,aAC5CC,sBAAuB0B,EAAO1B,sBAAsBjjD,OAAO0kD,EAAOzB,uBAClEC,qBAAsByB,EAAOzB,qBAAqBljD,OAAO0kD,EAAOxB,sBAChEC,sBAAuBwB,EAAOxB,sBAAsBnjD,OAAO0kD,EAAOvB,uBAClEE,qBAAsBsB,EAAOtB,qBAAqBrjD,OAAO0kD,EAAOrB,sBAChED,sBAAuBuB,EAAOvB,sBAAsBpjD,OAAO0kD,EAAOtB,uBAClEE,aAAc,OAAF,IAAE,CAAF,eAAOqB,EAAOrB,cAAiBoB,EAAOpB,cAClDpZ,gBAAiBya,EAAOza,gBAAgBlqC,OAAO0kD,EAAOxa,iBACtDzP,aAAciqB,EAAOjqB,cAAgBkqB,EAAOlqB,aAC5CnJ,eAAgBqzB,EAAOrzB,eAAetxB,OAAO0kD,EAAOpzB,gBACpDiyB,mBAAoBmB,EAAOnB,oBAAsBoB,EAAOpB,mBACxDC,YAAamB,EAAOnB,aAAekB,EAAOlB,YAC1CC,oBAAqBkB,EAAOlB,qBAAuBiB,EAAOjB,oBAC1DC,qBAAsB,OAAF,IAAE,CAAF,eAAOiB,EAAOjB,sBAAyBgB,EAAOhB,sBAClEC,eAAgBe,EAAOf,gBAAkBgB,EAAOhB,eAChDC,oBAAqB,OAAF,IAAE,CAAF,eAAOe,EAAOf,qBAAwBc,EAAOd,qBAChEC,iBAAkB,OAAF,IAAE,CAAF,eAAOc,EAAOd,kBAAqBa,EAAOb,kBAC1DC,eAAgB,OAAF,IAAE,CAAF,eAAOa,EAAOb,gBAAmBY,EAAOZ,gBACtDC,gBAAiB,OAAF,IAAE,CAAF,eAAOY,EAAOZ,iBAAoBW,EAAOX,mBAlC5D,IAAsBY,EAAqBD,EAlBzC,OANIJ,GACFG,EAAQH,GAGVG,EAAQJ,GAEDG,EAUYI,CAAiBR,EAAcC,IAEhDH,EAAsBE,EACtBD,EAAoBE,EACbJ,GChHX,gC,+CACA,OADmC,iBACnC,EADA,CAAmC,IC6BnC,SAASY,GACPjZ,EACAjc,EACAm1B,EACAC,GAEA,GAAIp1B,EAAKic,GACP,OAAOjc,EAAKic,GAGd,IAAIoZ,EASN,SACEpZ,EACAjc,EACAm1B,EACAC,GAEA,IAAIE,EAAgBH,EAAelZ,GAC/BsZ,EAAiBH,EAAgBnZ,GAEjCuZ,EAAY,SAACzmD,GAAS,OACvBumD,GAAyC,OAAxBA,EAAcvmD,GAAkBumD,EAAcvmD,GAC5DwmD,GAA2C,OAAzBA,EAAexmD,GAAkBwmD,EAAexmD,GAAQ,MAG5E0mD,EAAeD,EAAU,aACzBE,EAAYF,EAAU,aACtBG,EAA2B,KAE/B,GAAID,EAAW,CACb,GAAIA,IAAczZ,EAChB,MAAM,IAAIjgC,MAAM,wDAGlB25C,EAAWT,GAAcQ,EAAW11B,EAAMm1B,EAAgBC,IAGvDK,GAAgBE,IACnBF,EAAeE,EAASC,WAG1B,IAAKH,EACH,OAAO,KAGT,MAAO,CACL3lD,KAAMmsC,EACN2Z,UAAWH,EACXI,SAAU,OAAF,IAAE,CAAF,eACFF,EAAWA,EAASE,SAAW,IAC/BP,EAAgBA,EAAcQ,WAAa,IAEjDC,UAAW,OAAF,IAAE,CAAF,eACHJ,EAAWA,EAASI,UAAY,IAChCR,EAAiBA,EAAeO,WAAa,KApDvCE,CAAa/Z,EAAUjc,EAAMm1B,EAAgBC,GAM3D,OAJIC,IACFr1B,EAAKic,GAAYoZ,GAGZA,ED1CT,GAAc1mD,UAAUiB,QAAU,CAChCqmD,KAAM,oBACNC,gBAAiB,iBACjBC,YAAa,kBACbC,OAAQ,8BACRC,aAAc,oBAGhB,GAAc1nD,UAAUohD,cAAgB,UACxC,GAAcphD,UAAU8gD,YAAc,CACpC6G,MAAO,YACPzZ,KAAM,uBACN5uC,KAAM,wBACN6uC,SAAU,wBACVG,SAAU,0BAEZ,GAActuC,UAAUmhD,eAAiB,CACvCjT,KAAM,wBACN5uC,KAAM,uBACN6uC,SAAU,yBACVG,SAAU,yBAGZ,GAActuC,UAAUygD,mBAAqB,cAC7C,GAAczgD,UAAUuhD,+BAAiC,OACzD,GAAcvhD,UAAUghD,mBAAqB,W,mBEO7C,2D,OACU,EAAA4G,UAAYj+B,IAsBpB,EAAAk+B,aAAe,SAACjkD,GACd0/C,GAAO,EAAKsE,UAAWhkD,GAEnB,EAAKzB,MAAM2lD,OACbxE,GAAO,EAAKnhD,MAAM2lD,MAAOlkD,I,EAG/B,OA9B2C,iBAGzC,YAAAqe,OAAA,sBACQ9f,EAAUwB,KAAL,MACLokD,EAAc5lD,EAAL,UAEf,OACE,EAAC,GAAS,CAAC4lD,UAAWA,EAAWC,SAAU7lD,EAAM6lD,SAAUC,YAAa9lD,EAAM8lD,YAAaH,MAAOnkD,KAAKkkD,eACpG,SAACD,GAAc,OACd,EAACM,GAAW,CAACH,UAAWA,EAAWplC,QAASxgB,EAAMwgB,QAASwlC,eAAgBhmD,EAAMgmD,eAAgBC,YAAa,EAAKR,YAChH,SAACS,EAAYC,GAAiB,OAAAnmD,EAAMgE,SACnCyhD,EACAW,GAAoBpmD,EAAMvB,WAAYmnD,GACtCM,EACAC,UAed,E,CA9B2C,IA6C9BE,GAA8C3+B,EAAsB,G,SAiBjEq+B,GAAuB/lD,GACrC,OACE,EAACqmD,GAA2BC,SAAQ,MACjC,SAACC,GAAa,OACb,EAAC,GAAgB,aAACA,SAAUA,GAAcvmD,OAMlD,8E,OACU,EAAAkmD,WAAa1+B,I,EAgGvB,OAjG0C,iBAUxC,YAAA1H,OAAA,WACE,OAAOte,KAAKxB,MAAMgE,SAASxC,KAAK0kD,WAAY1kD,KAAKglD,uBAGnD,YAAAC,kBAAA,WACEjlD,KAAKklD,uBAGP,YAAAC,mBAAA,WACEnlD,KAAKklD,uBAGP,YAAAE,qBAAA,WACMplD,KAAKqlD,mBAAqBrlD,KAAKqlD,kBAAkB3mC,SACnD1e,KAAKqlD,kBAAkB3mC,WAInB,YAAAsmC,mBAAR,WACQ,IAAAK,EAAsBrlD,KAAL,kBACnB2kD,EAAe3kD,KAAKslD,kBACpB1+B,EAAO5mB,KAAKulD,eAAeZ,GAwB/B,OArBKU,GAAqBA,EAAkBG,aAAe5+B,EAAK4+B,WAiBrDH,IACTA,EAAkBI,WAAad,EAAa/9B,EAAK4+B,cAhB7CH,IACEA,EAAkB3mC,SACpB2mC,EAAkB3mC,UAEpB2mC,EAAoBrlD,KAAKqlD,kBAAoB,MAG3Cz+B,EAAK4+B,aACPH,EAAoBrlD,KAAKqlD,kBAAiB,aACxCG,WAAY5+B,EAAK4+B,WACjBC,WAAYd,EAAa/9B,EAAK4+B,aAC3B5+B,EAAK8+B,yBAQPL,EACH,GACAV,GAGE,YAAAW,gBAAR,WACQ,IAAA9mD,EAAUwB,KAAL,MACP2kD,EAAegB,GAAiBnnD,EAAMwgB,QAASxgB,EAAM4lD,WAMzD,YAJqB3+C,IAAjBk/C,IACFA,EAAegB,GAAiBnnD,EAAMgmD,eAAgBhmD,EAAM4lD,YAGvC,MAAhBO,EAAuB,KAAOA,GAG/B,YAAAY,eAAR,SAAuBZ,GACf,IAAAhD,EAAwB3hD,KAAKomB,QAAQyI,YAAlB,oBACrB22B,EAAa,GACbE,EAAsB,KAE1B,GAAIf,EACF,IAAK,IAAIiB,KAAajE,EACpB,QAAgCl8C,IAA5Bk/C,EAAaiB,GAA0B,CACzCJ,EAAaI,EACbF,EAAsB/D,EAAoBiE,GAC1C,MAKN,MAAO,CAAEJ,WAAU,EAAEE,oBAAmB,IAGlC,YAAAR,oBAAR,WACMllD,KAAKqlD,mBACPrlD,KAAKqlD,kBAAkB/mC,OACrBte,KAAK0kD,WAAW31C,SAAW/O,KAAKxB,MAAMimD,YAAY11C,QAClD/O,KAAKqlD,kBAAkBI,aAI/B,EAjGA,CAA0C,I,eA2G1C,2D,OAuBU,EAAAvB,aAAe,SAAC2B,GACtB,EAAKA,OAASA,EAEV,EAAKrnD,MAAM2lD,OACbxE,GAAO,EAAKnhD,MAAM2lD,MAAO0B,I,EAG/B,OA9B2C,iBAGzC,YAAAvnC,OAAA,WACE,OAAOte,KAAKxB,MAAMgE,SAASxC,KAAKkkD,eAGlC,YAAAe,kBAAA,WACE,IAAIt/C,EAAW3F,KAAKxB,MAAM6lD,SAEtB1+C,GACFA,EAAS,OAAD,IAAC,CAAD,eAAM3F,KAAKxB,MAAM4lD,WAAS,CAAEnkD,GAAID,KAAK6lD,WAIjD,YAAAT,qBAAA,WACE,IAAIz/C,EAAW3F,KAAKxB,MAAM8lD,YAEtB3+C,GACFA,EAAS,OAAD,IAAC,CAAD,eAAM3F,KAAKxB,MAAM4lD,WAAS,CAAEnkD,GAAID,KAAK6lD,WAWnD,E,CA9B2C,I,SAgC3BC,KACd,IAAIC,EACAC,EACAC,EAA8B,GAElC,OAAO,SAACC,EAA2C9B,GAOjD,OANK4B,GAAqBh4B,GAAag4B,EAAkB5B,IAAc8B,IAAcH,IACnFA,EAAmBG,EACnBF,EAAmB5B,EACnB6B,EAAoBrB,GAAoBsB,EAAW9B,IAG9C6B,GAMX,SAASrB,GAA+B3nD,EAA4CmnD,GAKlF,MAJ0B,oBAAfnnD,IACTA,EAAaA,EAAWmnD,IAGnB/pB,GAAgBp9B,GAGzB,SAAS0oD,GAAiB51B,EAAOq0B,GAC/B,MAAqB,oBAAVr0B,EACFA,EAAMq0B,EAAWp5C,GAEnB+kB,E,mBCpQT,2D,OACE,EAAA60B,oBAAsBkB,K,EAsBxB,OAvB8B,iBAG5B,YAAAxnC,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdsR,EAAY8U,EAAL,QACTg+B,EAA4B,CAAEve,KAAMzf,EAAQ0f,SAC5CqgB,EAAmBnmD,KAAK4kD,oBAAoBtzC,EAAQ80C,eAAgBhC,GAExE,OACE,EAAC,GAAS,CACRA,UAAWA,EACXC,SAAU/yC,EAAQ+0C,aAClB/B,YAAahzC,EAAQg1C,gBACrBnC,MAAO3lD,EAAM2lD,QAEZ,SAACF,GAAc,OAAAzlD,EAAMgE,SACpByhD,EACA,CAAC,MAAMzlD,EAAMigD,SAASjhD,KAAI,QAAS,WAAWO,OAAOooD,QAK/D,E,CAvB8B,I,SCWdI,GAAiBC,GAC/B,OAAO54B,GAAQ44B,EAAQC,IAGzB,SAASA,GAAgB12B,GACvB,IAuB+Bze,EAvB3BkyC,EAA2C,oBAAVzzB,EACnC,CAAEuzB,UAAWvzB,GACbA,EACIuzB,EAAcE,EAAL,UAOf,OALIA,EAAWxkC,UAkBgB1N,EAjBOkyC,EAApCF,EAkBK,SAACoD,GAAyB,OAC/B,EAACnI,GAAgBuG,SAAQ,MACtB,SAAC1+B,GAAyB,OACzB,EAAC,GAAQ,CAACq4B,SAAUr4B,EAAQq4B,WACzB,SAACkI,EAAWP,GACX,IAAIhC,EAAS,2BACRsC,GAAS,CACZxoB,iBAAkB9X,EAAQ9U,QAAQ4sB,mBAEpC,OACE,EAAC,GAAU,CACTkmB,UAAWA,EACXnnD,WAAYqU,EAAQrU,WACpB+hB,QAAS1N,EAAQ0N,QACjBqlC,SAAU/yC,EAAQ+yC,SAClBC,YAAahzC,EAAQgzC,YACrBH,MAAOwC,IAEN,SAAC1C,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAC1D,SAAKpnD,UAAW6oD,EAAeroD,OAAOooD,GAAkBjoD,KAAK,KAAM4c,IAAKmpC,GACrEU,cAlCZ,CACLvB,UAAWI,EAAWhmD,KACtB8lD,UAAWA,EACXE,WAAU,G,SCnBEoD,GACdC,EACAC,EACAC,EACAC,GAEA,IAAInE,EAAiB0D,GAAiBM,GAClC/D,EAAkByD,GAAiBO,EAAgBjG,OACnDoG,E,SJpB0BpE,EAAgCC,GAC9D,IACInZ,EADAjc,EAAoB,GAGxB,IAAKic,KAAYkZ,EACfD,GAAcjZ,EAAUjc,EAAMm1B,EAAgBC,GAGhD,IAAKnZ,KAAYmZ,EACfF,GAAcjZ,EAAUjc,EAAMm1B,EAAgBC,GAGhD,OAAOp1B,EIQQw5B,CAAgBrE,EAAgBC,GAE/C,OAAOl1B,GAAQq5B,GAAU,SAAClE,GAAY,OAGxC,SACEA,EACAD,EACAgE,EACAC,EACAC,GAEA,IAAIG,EACFpE,EAAQU,UAAUn7C,UAClBy6C,EAAQQ,SAASj7C,UACjBy+C,EAAuBz+C,UACvBw+C,EAAgBx+C,SAEdA,EAAW,KACX8+C,EAAe,GACf9c,EAAa,GACb+c,EAAmC,GAEvC,GAAIF,IACF7+C,EA0DJ,SAA8B6+C,GAC5B,IAAIG,EAAOrP,KAAKC,UAAUiP,GACtBr1B,EAAMy1B,GAAiBD,QAEf7hD,IAARqsB,IACFA,EAAMhC,GAAeq3B,GACrBI,GAAiBD,GAAQx1B,GAG3B,OAAOA,EAnEM01B,CAAqBL,GAE5B7+C,GAAU,CACZ,IAAIm/C,EAAQz1B,GAA4B1pB,GACxC8+C,EAAeK,EAAMz3B,KAED,IAAhBy3B,EAAM3rD,QACRwuC,EAAa8c,EACbC,EAAsBvE,EAAgBsE,GAAgBtE,EAAgBsE,GAAc5D,WAAa,IAKvG,IAAIkE,EAAkB,SAACC,GACrB,IAAIC,EAAgBD,EAAczV,YAAc,GAC5C2V,EAAgB9E,EAAQQ,SAASsE,cAErC,OAAqB,MAAjBA,GAAyD,MAAhCD,EAAcC,GAClCD,EAAcC,GAGY,MAA/BD,EAAc7E,EAAQvlD,MACjBoqD,EAAc7E,EAAQvlD,MAGE,MAA7BoqD,EAActd,GACTsd,EAActd,GAGhB,MAGT,MAAO,CACL9sC,KAAMulD,EAAQvlD,KACd8lD,UAAWP,EAAQO,UACnBh7C,SAAQ,EACR8+C,aAAY,EACZ9c,WAAU,EACVwd,eAAgB/E,EAAQQ,SACxBuD,gBAAiB,OAAF,IAAE,CAAF,eAAOO,GAAwBtE,EAAQU,WAEtDsE,mBACEL,EAAgBX,IAChBW,EAAgBZ,IAChB/D,EAAQU,UAAUvR,WAEpB8V,kBACEN,EAAgBV,IAChBjE,EAAQQ,SAASrR,YACjBwV,EAAgBO,KAChBlF,EAAQvlD,MAxE0B0qD,CAAcnF,EAASD,EAAiBgE,EAAiBC,EAAwBC,MA8EzH,IAAIO,GAAiD,G,kBCrDnD,WAAsB/oD,GAAA,KAAAA,QACpBwB,KAAK2jC,QAAU+E,GAAOlqC,EAAMmqC,SAAUnqC,EAAMowB,SAC5C5uB,KAAKmoD,iBA6XT,OAtXE,YAAAC,UAAA,SAAUC,EAAiC3d,EAAyB4d,GAC5D,IAAA15B,EAAY5uB,KAAKxB,MAAV,QAET+pD,EAAW35B,EAAQe,SACrBf,EAAQiiB,QAAQnG,EAAa2d,EAAmBG,kBAChDH,EAAmBI,eAGrB,OAAOzoD,KAAK0oD,MAAMH,GAAW,EAAGD,IAIlC,YAAAK,UAAA,SAAUN,EAAiC3d,EAAyB4d,GAC5D,IAAA15B,EAAY5uB,KAAKxB,MAAV,QAEToqD,EAAWh6B,EAAQ5rB,IACrB4rB,EAAQiiB,QAAQnG,EAAa2d,EAAmBG,kBAChDH,EAAmBI,eAGrB,OAAOzoD,KAAK0oD,MAAME,EAAU,EAAGN,IAMjC,YAAAI,MAAA,SAAMhe,EAAyB1T,EAAYsxB,QAAA,IAAAA,OAAA,GACnC,IACFO,EACAC,EACAC,EACAC,EACA3hB,EACA4hB,EvCqB+Bn9B,EAAkBlZ,EuC3B/CpU,EAAUwB,KAAL,MAoCX,OA5BA6oD,EAAa7oD,KAAKkpD,kBAClBL,EAAa7oD,KAAKmpD,eAAeN,GAE7BP,IvCgB+Bx8B,EuCfI4e,EAArCA,EvCgBe,OADoC93B,EuCfDi2C,GvCgB5CjzC,OAAiBkW,EAAOlZ,EAAMgD,MAC/BhD,EAAMgD,MAGE,MAAbhD,EAAME,KAAegZ,GAAQlZ,EAAME,IAC9B,IAAIrK,KAAKmK,EAAME,IAAIyG,UAAY,GAGjCuS,GuCrBLg9B,EAAc9oD,KAAKopD,sBAAsB1e,EAAa1T,GACtD+xB,EAAgB,0BAA0BpsD,KAAKmsD,EAAY94B,MAC3Dg5B,EAAchpD,KAAKqpD,iBACjBrpD,KAAKmpD,eAAeL,EAAYl2C,OAChCk2C,EAAY94B,KACZ+4B,GAGF1hB,EADA2hB,EAAchpD,KAAKmpD,eAAeH,GAG7BxqD,EAAM8qD,sBACTjiB,EAAc7H,GAAgB6H,EAAayhB,EAAYl2C,QAIzDy0B,EAAc7H,GADd6H,EAAcrnC,KAAKupD,kBAAkBliB,GACMwhB,GAI3CI,EAAUtpB,GAAgBmpB,EAAYl2C,MAAOi2C,GAEtC,CAGLA,WAAU,EAIVvhB,aAAcwhB,EAAYl2C,MAG1B41C,iBAAkBM,EAAY94B,KAE9B+4B,cAAa,EAIb1hB,YAAW,EAIX2hB,YAAW,EAGXQ,YAAahrD,EAAMgrD,YAGnBC,YAAajrD,EAAMirD,YAEnBR,QAAO,EAGPR,cAAezoD,KAAK0pD,mBAAmBZ,EAAYxgD,YAQvD,YAAA4gD,gBAAA,WACE,IAAIn5B,EAAQ/vB,KAAKxB,MAAMmrD,gBACnBC,EAA+B,oBAAV75B,EACrBA,EAAMr0B,KAAKsE,KAAKxB,MAAMunC,YAAa/lC,KAAK2jC,SACxC5T,EAEJ,OAAO/vB,KAAK6pD,YAAYD,IACtB,CAAEh0C,MAAO,KAAM9C,IAAK,OAOxB,YAAAs2C,sBAAA,SAAsBt9B,EAAkBkL,GAChC,IAIF8yB,EAJEtrD,EAAUwB,KAAL,MACPsI,EAAW,KACX0nB,EAAO,KACPpd,EAAQ,KAkBZ,OAfIpU,EAAM8J,UACRA,EAAW9J,EAAM8J,SACjB0nB,EAAOxxB,EAAM4oD,aACbx0C,EAAQ5S,KAAK+pD,uBAAuBj+B,EAAMkL,EAAW1uB,EAAU0nB,KACrD85B,EAAW9pD,KAAKxB,MAAMsrD,WAChC95B,EAAO,MACPpd,EAAQ5S,KAAKgqD,uBAAuBl+B,EAAMkL,EAAW8yB,KAC3Cl3C,EAAQ5S,KAAKiqD,wBAAwBn+B,IAC/CkE,EAAOxxB,EAAMowB,QAAQyhB,kBAAkBz9B,EAAMgD,MAAOhD,EAAME,KAAKkd,MAG/DA,EAAOgC,GADP1pB,EAAWtI,KAAKkqD,uBAC6Bl6B,KAC7Cpd,EAAQ5S,KAAK+pD,uBAAuBj+B,EAAMkL,EAAW1uB,EAAU0nB,IAG1D,CAAE1nB,SAAQ,EAAE0nB,KAAI,EAAEpd,MAAK,IAGhC,YAAAs3C,oBAAA,WACE,OAAOp6B,GAAe,CAAEU,IAAK,KAK/B,YAAA+4B,kBAAA,SAAkB32C,GACZ,MAAwD5S,KAAKxB,MAA3DowB,EAAO,UAAEu7B,EAAc,iBAAEX,EAAW,cAAEC,EAAW,cACjD7zC,EAAehD,EAAV,MAAEE,EAAQF,EAAL,IAiBhB,OAfIu3C,IAEE34B,GAAYg4B,GAAe,IAC7B5zC,EAAQiV,EAAWjV,GACnBA,EAAQgZ,EAAQ5rB,IAAI4S,EAAO4zC,IAIzBh4B,GAAYi4B,GAAe,IAE7B32C,EAAMsX,EADNtX,EAAM+X,EAAW/X,IACG,GACpBA,EAAM8b,EAAQ5rB,IAAI8P,EAAK22C,KAIpB,CAAE7zC,MAAK,EAAE9C,IAAG,IAKrB,YAAAi3C,uBAAA,SAAuBj+B,EAAkBkL,EAAW1uB,EAAoB0nB,GAClE,IACApa,EACA9C,EACAgf,EAHA,EAA6B9xB,KAAKxB,MAAhCowB,EAAO,UAAEw7B,EAAa,gBAM5B,IAAKA,EAAe,CACZ,IAAA3B,EAAkBzoD,KAAKxB,MAAV,cAKf4rD,EAHA3B,GAEE/2B,GAAU+2B,GAAiB/2B,GAAUppB,GACvB0pB,GAA4By2B,GAAez4B,KAK7CA,EAYpB,SAASq6B,IACPz0C,EAAQgZ,EAAQiiB,QAAQ/kB,EAAMs+B,GAC9Bt3C,EAAM8b,EAAQ5rB,IAAI4S,EAAOtN,GACzBwpB,EAAM,CAAElc,MAAK,EAAE9C,IAAG,GAWpB,OArBI0e,GAAYlpB,IAAa,GACvBtI,KAAKsqD,YAAY10C,KAEnBA,EAAQiV,EADRjV,EAAQ5V,KAAKuqD,eAAe30C,EAAOohB,KAWvCqzB,IAGKrqD,KAAKmpD,eAAer3B,KACvBhG,EAAO9rB,KAAKuqD,eAAez+B,EAAMkL,GACjCqzB,KAGKv4B,GAIT,YAAAk4B,uBAAA,SAAuBl+B,EAAkBkL,EAAW8yB,GAC9C,IAGAh3C,EAHA,EAA6B9S,KAAKxB,MAAhCowB,EAAO,UAAEw7B,EAAa,gBACxBI,EAAe,EACf50C,EAAoBkW,EAGpBs+B,IACFx0C,EAAQgZ,EAAQiiB,QAAQj7B,EAAOw0C,IAGjCx0C,EAAQiV,EAAWjV,GAGnB9C,EAFA8C,EAAQ5V,KAAKuqD,eAAe30C,EAAOohB,GAGnC,GACElkB,EAAMsX,EAAQtX,EAAK,GACd9S,KAAKsqD,YAAYx3C,KACpB03C,GAAgB,SAEXA,EAAeV,GAExB,MAAO,CAAEl0C,MAAK,EAAE9C,IAAG,IAKrB,YAAAm3C,wBAAA,SAAwBn+B,GAChB,IAAAttB,EAAUwB,KAAL,MACP+vB,EAAQvxB,EAAMisD,kBACdb,EAA+B,oBAAV75B,EACrBA,EAAMr0B,KAAK8C,EAAMunC,YAAavnC,EAAMowB,QAAQkW,OAAOhZ,IACnDiE,EAEAnd,EAAQ5S,KAAK6pD,YAAYD,GAE7B,OAAIh3C,GAAyB,MAAfA,EAAMgD,OAA8B,MAAbhD,EAAME,IAIpCF,EAHE,MASX,YAAAy2C,iBAAA,SAAiB/hB,EAAyBkhB,EAAkBO,GAC1D,OAAOzhB,GAKT,YAAAoiB,mBAAA,SAAmBgB,GACX,IACFC,EADElC,EAAkBzoD,KAAKxB,MAAV,cAGnB,OAAIiqD,KAICkC,EAAkB3qD,KAAKxB,MAAM4rD,eACzBt6B,GAAe,EAAG66B,GAGvBD,GAIG56B,GAAe,CAAErE,KAAM,MAGhC,YAAAo+B,YAAA,SAAYe,GACV,GAAIA,EAAY,CACd,IAAIh4C,E,SvCzViBmd,EAAuBnB,GAChD,IAAIhZ,EAAQ,KACR9C,EAAM,KAUV,OARIid,EAAMna,QACRA,EAAQgZ,EAAQia,aAAa9Y,EAAMna,QAGjCma,EAAMjd,MACRA,EAAM8b,EAAQia,aAAa9Y,EAAMjd,MAG9B8C,GAAU9C,EAIX8C,GAAS9C,GAAOA,EAAM8C,EACjB,KAGF,CAAEA,MAAK,EAAE9C,IAAG,GAPV,KuC4UO+3C,CAAWD,EAAY5qD,KAAKxB,MAAMowB,SAM9C,OAJIhc,IACFA,EAAQqrB,GAAuBrrB,IAG1BA,EAGT,OAAO,MAOT,YAAAu1C,eAAA,WACE,IAGIvtD,EAHAkwD,EAAa9qD,KAAKxB,MAAMssD,YAAc,GACtCC,EAAkB,GAClB/sB,EAAS,EAOb,KAJ4B,IAAxBh+B,KAAKxB,MAAMwsD,UACbF,EAAWjvD,KAAK,EAAG,GAGhBjB,EAAI,EAAGA,EAAI,EAAGA,GAAK,GAElBmwD,EAAgBnwD,IAAgC,IAA3BkwD,EAAWp/C,QAAQ9Q,MAE1CojC,GAAU,GAId,IAAKA,EACH,MAAM,IAAIt0B,MAAM,sBAGlB1J,KAAK+qD,gBAAkBA,GAKzB,YAAA5B,eAAA,SAAev2C,GACP,IAAAgD,EAAehD,EAAV,MAAEE,EAAQF,EAAL,IAUhB,OARIgD,IACFA,EAAQ5V,KAAKuqD,eAAe30C,IAG1B9C,IACFA,EAAM9S,KAAKuqD,eAAez3C,GAAM,GAAG,IAGxB,MAAT8C,GAAwB,MAAP9C,GAAe8C,EAAQ9C,EACnC,CAAE8C,MAAK,EAAE9C,IAAG,GAGd,MAKT,YAAAw3C,YAAA,SAAY95B,GAIV,OAHIA,aAAe/nB,OACjB+nB,EAAMA,EAAI5E,aAEL5rB,KAAK+qD,gBAAgBv6B,IAQ9B,YAAA+5B,eAAA,SAAez+B,EAAkBm/B,EAASC,GACxC,SAD+B,IAAAD,MAAA,QAAS,IAAAC,OAAA,GAEtClrD,KAAK+qD,iBAAiBj/B,EAAKF,aAAes/B,EAAcD,EAAM,GAAK,GAAK,IAExEn/B,EAAO1B,EAAQ0B,EAAMm/B,GAEvB,OAAOn/B,GAEX,E,YCpbgBq/B,GAAiBtgB,EAAiBzD,EAA0BhhB,GAC1E,IAAIihB,EAAcD,EAAcA,EAAYC,YAAc,KAE1D,OAAO+jB,GACL,GAiOJ,SAA6B5H,EAA6Bp9B,GACxD,IAAI8V,EAAW6L,GAAyB3hB,GACpCilC,EAAa,GAAGttD,OAAOylD,EAAWrX,cAAgB,IAClDiB,EAAU,GAEVoW,EAAW8H,eACbD,EAAW79B,QAAQg2B,EAAW8H,eAG5B9H,EAAW/b,QACb4jB,EAAW79B,QAAQg2B,EAAW/b,QAGhC,IAAsB,UAAA4jB,EAAA,eAAY,CAA7B,IACCp6C,EAAS42B,GADG,KACyBzhB,EAAS8V,GAC9CjrB,GACFm8B,EAAQvxC,KAAKoV,GAIjB,OAAOm8B,EApPLme,CAAoB1gB,EAAiBzkB,GACrCihB,EACAjhB,G,SAIYolC,GACdrf,EACApD,EACA3B,EACAhhB,GAEA,IAkFoBqlC,EAAkCllC,EAlFlD8gB,EAAcD,EAAcA,EAAYC,YAAc,KAE1D,OAAQ0B,EAAOvrC,MACb,IAAK,oBACH,OAAO4tD,GAAWjf,EAAcpD,EAAOqE,QAAS/F,EAAajhB,GAE/D,IAAK,sBACH,OA2EgBqlC,EA3EItf,EA2E8B5lB,EA3EhBwiB,EAAOxiB,SA4EtCkH,GAAWg+B,GAAiB,SAACvyB,GAAkC,OAAAA,EAAY3S,WAAaA,KA1E7F,IAAK,OACL,IAAK,OACL,IAAK,cACL,IAAK,mBACH,OAAI6gB,EACKskB,GAAkBvf,EAAc9E,EAAajhB,GAE/C+lB,EAET,IAAK,sBACH,OAAOwf,GACLxf,EACCpD,EAAetiB,UACdqH,GAAaib,EAAetiB,WAC5BmlC,GAAqBzf,EAAc/lB,GACrCihB,EACA0B,EAAOriB,YAAa,EACpBN,GAGJ,IAAK,iBACL,IAAK,sBACH,OA6JN,SAAyB4mB,EAA6BzmB,EAAkBslC,EAAiBrjB,G,MACnFtP,EAAgC8T,EAAWzmB,GAE/C,GACE2S,GACA2yB,IAAY3yB,EAAYqP,cAExB,kCACKyE,KAAU,MACZzmB,GAAQ,2BACJ2S,GAAW,CACdoP,YAAY,EACZE,WAAU,QAKhB,OAAOwE,EA9KI8e,CAAgB3f,EAAcpD,EAAOxiB,SAAUwiB,EAAO8iB,QAAS9iB,EAAOP,YAE/E,IAAK,2BACH,MAAO,GAET,QACE,OAAO2D,G,SAgBG4f,GAA2B5f,GACzC,IAAK,IAAI5lB,KAAY4lB,EACnB,GAAIA,EAAa5lB,GAAU+hB,WACzB,OAAO,EAIX,OAAO,EAGT,SAAS8iB,GACPK,EACAre,EACA5E,EACApiB,GAIA,IAFA,IAAIsH,EAAwB,GAET,MAAA0f,EAAA,eAAS,CAAvB,IAAIn8B,EAAM,KACbyc,EAAKzc,EAAOsV,UAAYtV,EAO1B,OAJIu3B,IACF9a,EAAOg+B,GAAkBh+B,EAAM8a,EAAYpiB,IAG7C,2BAAYqlC,GAAoB/9B,GAOlC,SAASg+B,GAAkB1e,EAA6BxE,EAAuBpiB,GAC7E,OAAOulC,GACL3e,EACAvf,GAAWuf,GAAY,SAAC9T,GAAgB,OAO5C,SAAuBA,EAA+BsP,EAAuBpiB,GAC3E,IAAK4lC,GAAoB9yB,EAAa9S,GACpC,OAAQ8S,EAAYqP,cAEtB,OAAQniB,EAAQ9U,QAAQ26C,eACnB/yB,EAAYsP,YACbtP,EAAYoP,YACZE,EAAW5yB,MAAQsjB,EAAYsP,WAAW5yB,OAC1C4yB,EAAW11B,IAAMomB,EAAYsP,WAAW11B,IAfFo5C,CAAchzB,EAAasP,EAAYpiB,MAC/EoiB,GACA,EACApiB,GAeJ,SAASulC,GACPQ,EACAC,EACA5jB,EACA9hB,EACAN,GAEA,IAAIimC,EAA+B,GAEnC,IAAK,IAAI9lC,KAAY4lC,EAAa,CAChC,IAAIl7C,EAASk7C,EAAY5lC,GAErB6lC,EAAa7lC,GACf8lC,EAAY9lC,GAAY+lC,GAAYr7C,EAAQu3B,EAAY9hB,EAAWN,GAEnEimC,EAAY9lC,GAAYtV,EAI5B,OAAOo7C,EAGT,SAASC,GAAYpzB,EAA+BsP,EAAuB9hB,EAAoBN,GACvF,IAAA9U,EAAyB8U,EAAlB,QAAE2f,EAAgB3f,EAAL,YACtBmmC,EAAYnmC,EAAQyI,YAAYoZ,gBAAgB/O,EAAYiP,aAC5D0jB,EAAUpjC,IAiDd,OA/CA8jC,EAAUC,MACR,CACEtzB,YAAW,EACXtmB,MAAO41B,EACP9hB,UAAS,EACTN,QAAO,IAET,SAAC0L,GACO,IAAAmH,EAAcnH,EAAL,UAEXxgB,EAAQm7C,qBACVxzB,EAAY3nB,EAAQm7C,mBAAmB/wD,KAAKqqC,EAAa9M,EAAWnH,EAAI46B,MAAQzzB,GAG9EC,EAAYyO,UACd1O,EAAYC,EAAYyO,QAAQjsC,KAAKqqC,EAAa9M,EAAWnH,EAAI46B,MAAQzzB,GAG3E7S,EAAQE,SAAS,CACf9oB,KAAM,iBACN+oB,SAAU2S,EAAY3S,SACtBslC,QAAO,EACPrjB,WAAU,EACVvP,UAAS,OAGb,SAACpuB,GACCiU,QAAQC,KAAKlU,EAAM8hD,QAAS9hD,GAExByG,EAAQs7C,oBACVt7C,EAAQs7C,mBAAmBlxD,KAAKqqC,EAAal7B,GAG3CquB,EAAY0O,SACd1O,EAAY0O,QAAQ/8B,GAGtBub,EAAQE,SAAS,CACf9oB,KAAM,sBACN+oB,SAAU2S,EAAY3S,SACtBslC,QAAO,EACPrjB,WAAU,EACV39B,MAAK,OAKX,2BACKquB,GAAW,CACdoP,YAAY,EACZC,cAAesjB,IAwBnB,SAASD,GAAqBzf,EAA+B/lB,GAC3D,OAAOqH,GAAW0e,GAAc,SAACjT,GAAgB,OAAA8yB,GAAoB9yB,EAAa9S,MA0BpF,SAAS4lC,GAAoB9yB,EAA+B9S,GAG1D,OAFWA,EAAQyI,YAAYoZ,gBAElB/O,EAAYiP,aAAa0kB,Y,SCrPxBC,GACdp+B,EACAqa,EACAoD,EACA/E,EACAhhB,GAEA,OAAQ2iB,EAAOvrC,MACb,IAAK,iBACH,OAmDN,SACEkxB,EACAwK,EACA2yB,EACArjB,EACAvP,EACA7S,GAEA,GACE8S,GACA2yB,IAAY3yB,EAAYqP,cACxB,CACA,IAAIwkB,EAAS/zB,GAmBjB,SAA4BC,EAAWC,EAA+B9S,GACpE,IAAI4mC,EAAmB5mC,EAAQ9U,QAAQo2B,mBACnCulB,EAAsB/zB,EAAcA,EAAYwO,mBAAqB,KAErEulB,IACFh0B,EAAYi0B,GAAsBj0B,EAAWg0B,IAG3CD,IACF/zB,EAAYi0B,GAAsBj0B,EAAW+zB,IAG/C,OAAO/zB,EA9BHk0B,CAAmBl0B,EAAWC,EAAa9S,GAC3C8S,EACA9S,GAOF,OAJIoiB,IACFukB,EAASt+B,GAAgBs+B,EAAQvkB,EAAYpiB,IAGxC6T,GACLmzB,GAAwB1+B,EAAYwK,EAAY3S,UAChDwmC,GAIJ,OAAOr+B,EA/EI2+B,CACL3+B,EACAyd,EAAapD,EAAOxiB,UACpBwiB,EAAO8iB,QACP9iB,EAAOP,WACPO,EAAO9P,UACP7S,GAGJ,IAAK,aACH,OA6GN,SAAkBsI,EAAwBq+B,EAAoBO,EAA+BlnC,GACvFknC,IACFP,EAASt+B,GAAgBs+B,EAAQO,EAAalnC,IAGhD,OAAO6T,GAAiBvL,EAAYq+B,GAlHzBnhB,CACLld,EACAqa,EAAOra,WACP0Y,EAAcA,EAAYC,YAAc,KACxCjhB,GAGJ,IAAK,eACH,OAAO2iB,EAAOra,WAEhB,IAAK,eACH,OAAOuL,GAAiBvL,EAAYqa,EAAOra,YAE7C,IAAK,OACL,IAAK,OACL,IAAK,cACL,IAAK,mBACH,OAAI0Y,EACK3Y,GAAgBC,EAAY0Y,EAAYC,YAAajhB,GAEvDsI,EAET,IAAK,gBACH,O,S/CgC+B6+B,EAAoBC,GACjD,IAAA97C,EAAoB67C,EAAhB,KAAEz+B,EAAcy+B,EAAL,UACjBE,EAA8C,GAC9CC,EAA6D,GAEjE,IAAK,IAAI3gC,KAASrb,EACX87C,EAAI97C,KAAKqb,KACZ0gC,EAAa1gC,GAASrb,EAAKqb,IAI/B,IAAK,IAAIG,KAAc4B,GAElB0+B,EAAI1+B,UAAU5B,IACfugC,EAAa3+B,EAAU5B,GAAYH,SAEnC2gC,EAAkBxgC,GAAc4B,EAAU5B,IAI9C,MAAO,CACLxb,KAAM+7C,EACN3+B,UAAW4+B,G+CtDFC,CAAqBj/B,EAAYqa,EAAOra,YAEjD,IAAK,sBACH,OAAO0+B,GAAwB1+B,EAAYqa,EAAOxiB,UAEpD,IAAK,2BACH,OAAOoT,GAAqBjL,GAAY,SAACY,GAAuB,OAC7DA,EAAS/I,YAGd,IAAK,oBACH,M/CGG,CAAE7U,KAAM,GAAIod,UAAW,I+CD5B,QACE,OAAOJ,GAkDb,SAASw+B,GAAsBj0B,EAAW9P,GACxC,IAAIykC,EAEJ,GAAKzkC,EAEE,CACLykC,EAAgB,GAEhB,IAAqB,UAAA30B,EAAA,eAAW,CAA3B,IAAI40B,EAAQ,KACXC,EAAe3kC,EAAK0kC,GAEpBC,EACFF,EAAc/xD,KAAKiyD,GACM,MAAhBA,GACTF,EAAc/xD,KAAKgyD,SAVvBD,EAAgB30B,EAelB,OAAO20B,EAkCT,SAASR,GAAwB1+B,EAAwBnI,GACvD,OAAOoT,GAAqBjL,GAAY,SAACY,GAAuB,OAAAA,EAAS/I,WAAaA,K,SCjLxEwnC,GAAoBC,EAAmCjlB,GACrE,OAAQA,EAAOvrC,MACb,IAAK,iBACH,OAAO,KAET,IAAK,eACH,OAAOurC,EAAO1D,UAEhB,QACE,OAAO2oB,G,SCVGC,GAAoBC,EAA2BnlB,GAC7D,OAAQA,EAAOvrC,MACb,IAAK,iBACH,MAAO,GAET,IAAK,eACH,OAAOurC,EAAOolB,gBAEhB,QACE,OAAOD,G,SCRGE,GAAgBC,EAA2CtlB,GACzE,IAAIulB,EAEJ,OAAQvlB,EAAOvrC,MACb,IAAK,mBACH,OAAO,KAET,IAAK,iBAGH,MAAO,CACL05C,gBAHFoX,EAAUvlB,EAAO3rB,OAGS85B,eACxBE,cAAekX,EAAQlX,cACvBE,QAASgX,EAAQhX,SAGrB,QACE,OAAO+W,G,SCjBGE,GAAkBC,EAA6CzlB,GAC7E,IAAI0lB,EAEJ,OAAQ1lB,EAAOvrC,MACb,IAAK,qBACH,OAAO,KAET,IAAK,mBAGH,MAAO,CACL05C,gBAHFuX,EAAY1lB,EAAO3rB,OAGS85B,eAC1BE,cAAeqX,EAAUrX,cACzBE,QAASmX,EAAUnX,SAGvB,QACE,OAAOkX,G,SCbGE,GACd7jB,EACA8jB,EACA7W,EACA7N,EACAlE,GAEA,IAAIsE,EAA6B,GAoBjC,MAAO,CAAEukB,cAnBW/jB,EAAgB+jB,cAAgBC,GAClDhkB,EAAgB+jB,cAChB/jB,EACA8jB,EACA7W,EACA7N,EACAlE,EACAsE,GACE,KAWoBykB,cAVJjkB,EAAgBikB,cAAgBD,GAClDhkB,EAAgBikB,cAChBjkB,EACA8jB,EACA7W,EACA7N,EACAlE,EACAsE,GACE,KAEmCA,iBAAgB,GAGzD,SAASwkB,GACPE,EACAlkB,EACA8jB,EACA7W,EACA7N,EACAlE,EACAsE,GAEA,OAAOzc,GACLmhC,GACA,SAACC,GAAe,OAOpB,SACEA,EACAnkB,EACA8jB,EACA7W,EACA7N,EACAlE,EACAsE,GAEA,IAAIkT,EAAsC,QAA9B1S,EAAgB7T,UACxBi4B,EAAwBpkB,EAAgBqkB,eAAiB,GACzDC,EAA8BR,EAAwBzc,YAAc,GACpEkd,EAAqBvkB,EAAgBqH,YAAc,GAGvD,OAFqB8c,EAAaA,EAAWjsD,MAAM,KAAO,IAEpCpF,KACpB,SAAC0xD,GAAoC,OACnCA,EAAetsD,MAAM,KAAKpF,KAAI,SAACu/C,GAC7B,MAAmB,UAAfA,EACK,CAAEA,WAAU,KAShBS,EAAoBsR,EAAsB/R,KAC7CoS,EAAc,SAAC3nC,GACTg2B,EAAkB4R,OACpB5R,EAAkB4R,MAAM7zD,KAAKisB,EAAGppB,OAAQopB,EAAIA,EAAGppB,UAGlDixD,EAAa1X,EAAM4F,yBAAyBC,MAC1C6R,EAAa1X,EAAMwF,aAAaJ,EAAYK,MAC5CrL,EAAayL,EAAkB3wC,QACxByxC,EAAWxU,EAAUiT,KAC/B7S,EAAiBxuC,KAAKqhD,GAEtBoS,EAAc,WACZvpB,EAAY2D,WAAWwT,KAExBhL,EAAauM,EAASsJ,sBAClByH,EAAa1X,EAAMwF,aAAaJ,EAAYK,MAC5CrL,EAAauM,EAASuJ,oBAClBjiB,EAAYmX,KACrBoS,EAAc,WACZvpB,EAAYmX,OAEbhL,EAAaid,EAA4BjS,MACvCsS,EAAa1X,EAAMwF,aAAaJ,EAAYK,MAC5CrL,EAAakd,EAAmBlS,KAI9B,CAAEA,WAAU,EAAEoS,YAAW,EAAEE,WAAU,EAAEtd,WAAU,IAlCxD,IAAIyL,EACAc,EACA6Q,EACAE,EACAtd,QAjCQud,CAAaT,EAAYnkB,EAAiB8jB,EAAyB7W,EAAO7N,EAAWlE,EAAasE,MC5CtH,ICeIqlB,GAAkD,CAEpDxnB,UAAS,SAAC5M,GACR,MAA8B,oBAAnBA,EAAQmM,OACVnM,EAAQmM,OAEV,MAGT+kB,MAAK,SAACmD,EAAKhoB,EAASC,GACZ,IAAAhZ,EAAY+gC,EAAIvpC,QAAT,S,SCzBW+C,EAAMwe,EAASC,GAGzC,IAAIgoB,GAAa,EACbC,EAAiB,WACdD,IACHA,GAAa,EACbjoB,EAAQr+B,MAAMtJ,KAAM7C,aAGpB2yD,EAAiB,WACdF,IACHA,GAAa,EACThoB,GACFA,EAAQt+B,MAAMtJ,KAAM7C,aAKtB20B,EAAM3I,EAAK0mC,EAAgBC,GAC3Bh+B,GAA2B,oBAAbA,EAAIi+B,MACpBj+B,EAAIi+B,KAAKF,EAAgBC,GDOzBE,CAFWL,EAAIz2B,YAAYtS,KAGpB7M,KAAK,KAAM4qB,GAA0BgrB,EAAI/8C,MAAOgc,KACrD,SAACqK,GACC0O,EAAQ,CAAE1O,UAAS,MAErB2O,K,SEnCUqoB,GAAYC,EAAgBrpC,EAAavX,EAAoB6gD,EAAiBC,GAG5F,IAAI/tD,EAAO,KAEI,SAJf6tD,EAASA,EAAOG,eAKdxpC,EAyCJ,SAAiCA,EAAavX,GAC5C,OAAOuX,IACkB,IAAtBA,EAAInb,QAAQ,KAAc,IAAM,KACjC4kD,GAAahhD,GA5CPihD,CAAwB1pC,EAAKvX,GAEnCjN,EAAOiuD,GAAahhD,GAGtB,IAAIo9C,EAAM,IAAI8D,eACd9D,EAAI+D,KAAKP,EAAQrpC,GAAK,GAEP,QAAXqpC,GACFxD,EAAIgE,iBAAiB,eAAgB,qCAGvChE,EAAIiE,OAAS,WACX,GAAIjE,EAAIkE,QAAU,KAAOlE,EAAIkE,OAAS,IAAK,CACzC,IAAIp0B,GAAS,EACT1K,OAAG,EAEP,IACEA,EAAMmmB,KAAKxb,MAAMiwB,EAAImE,cACrBr0B,GAAS,EACT,MAAOzgC,IAILygC,EACF2zB,EAAgBr+B,EAAK46B,GAErB0D,EAAgB,uBAAwB1D,QAG1C0D,EAAgB,iBAAkB1D,IAItCA,EAAIoE,QAAU,WACZV,EAAgB,iBAAkB1D,IAGpCA,EAAIqE,KAAK1uD,GASX,SAASiuD,GAAahhD,GACpB,IAAIwnB,EAAQ,GAEZ,IAAK,IAAIh5B,KAAOwR,EACdwnB,EAAMj7B,KAAQm1D,mBAAmBlzD,GAAI,IAAIkzD,mBAAmB1hD,EAAOxR,KAGrE,OAAOg5B,EAAM54B,KAAK,KC7CpB,SAAS+yD,GAAmBzK,EAAQpgC,GAIlC,IAHA,IAAI8qC,EAAqCnjC,GAAkB3H,EAAQ8gB,iBAAiBiF,cAChFglB,EAAY,GAEE,MAAA3K,EAAA,eAAQ,CAGxB,IAHG,IAAIz2B,EAAK,KACRqhC,GAAa,EAERx2D,EAAI,EAAGA,EAAIs2D,EAAev2D,OAAQC,GAAK,EAC9C,GAAIs2D,EAAet2D,GAAGytC,OAAStY,EAAO,CACpCmhC,EAAejiD,OAAOrU,EAAG,GACzBw2D,GAAa,EACb,MAICA,GACHD,EAAUt1D,KAAKk0B,GAInB,IAA0B,UAAAmhC,EAAA,eAAgB,CAArC,IAAIG,EAAa,KACpBjrC,EAAQE,SAAS,CACf9oB,KAAM,sBACN+oB,SAAU8qC,EAAc9qC,WAI5B,IAAqB,UAAA4qC,EAAA,eAAW,CAA3B,IAAIG,EAAQ,KACflrC,EAAQ2f,YAAYoH,eAAemkB,I,IC3B1BC,GAA6B,CLGJlR,GAAa,CACjDpY,gBAAiB,CAlBgC,CACjD4kB,aAAa,EAEb3kB,UAAS,SAAC5M,GACR,OAAIxgC,MAAME,QAAQsgC,EAAQmM,QACjBnM,EAAQmM,OAEV,MAGT+kB,MAAK,SAACmD,EAAKhoB,GACTA,EAAQ,CACN1O,UAAW02B,EAAIz2B,YAAYtS,YC2BIy5B,GAAa,CAChDpY,gBAAiB,CAACynB,MKQqBrP,GAAa,CACpD5X,oBCnD6C,CAC7CynB,OAAQ7/C,OACRmhD,YAAa52B,GACb62B,WAAYphD,OACZqhD,SAAUrhD,OACVshD,cAAethD,QD+Cf43B,gBAAiB,CApCgC,CAEjDC,UAAS,SAAC5M,GACR,OAAIA,EAAQzU,KAA2B,SAAnByU,EAAQxU,QAAsBwU,EAAQxU,OAWnD,KAVE,CACLD,IAAKyU,EAAQzU,IACbC,OAAQ,OACRopC,QAAS50B,EAAQ40B,QAAU,OAAOG,cAClCmB,YAAal2B,EAAQk2B,YACrBC,WAAYn2B,EAAQm2B,WACpBC,SAAUp2B,EAAQo2B,SAClBC,cAAer2B,EAAQq2B,gBAM7BnF,MAAK,SAACmD,EAAKhoB,EAASC,GACZ,IAAAhhB,EAAS+oC,EAAIz2B,YAAT,KACN04B,EAoBR,SAA4BhrC,EAAoBhU,EAAkBwT,GAC1D,IACFqrC,EACAC,EACAC,EACAE,EAJEjjC,EAAqBxI,EAAd,QAAE9U,EAAY8U,EAAL,QAKlB9W,EAAS,GAGK,OADlBmiD,EAAa7qC,EAAK6qC,cAEhBA,EAAangD,EAAQmgD,YAIP,OADhBC,EAAW9qC,EAAK8qC,YAEdA,EAAWpgD,EAAQogD,UAIA,OADrBC,EAAgB/qC,EAAK+qC,iBAEnBA,EAAgBrgD,EAAQqgD,eAMxBE,EAF8B,oBAArBjrC,EAAK4qC,YAEQ5qC,EAAK4qC,cAGL5qC,EAAK4qC,aAAe,GAG5C,YAASliD,EAAQuiD,GAEjBviD,EAAOmiD,GAAc7iC,EAAQoW,UAAUpyB,EAAMgD,OAC7CtG,EAAOoiD,GAAY9iC,EAAQoW,UAAUpyB,EAAME,KAElB,UAArB8b,EAAQwI,WACV9nB,EAAOqiD,GAAiB/iC,EAAQwI,UAGlC,OAAO9nB,EA7DewiD,CAAmBlrC,EAAM+oC,EAAI/8C,MAAO+8C,EAAIvpC,SAE5D6pC,GACErpC,EAAKspC,OAAQtpC,EAAKC,IAAK+qC,GACvB,SAAC34B,EAAWyzB,GACV/kB,EAAQ,CAAE1O,UAAS,EAAEyzB,IAAG,OAE1B,SAACqF,EAAcrF,GACb9kB,EAAQ,CAAE+kB,QAASoF,EAAcrF,IAAG,YE4BDrM,GAAa,CACtDhxB,eAAgB,CAnDkC,CAElDoN,MAAA,SAAMnB,EAAuB1M,GAC3B,GAAI0M,EAAQqY,YAAcrY,EAAQmY,WAAanY,EAAQoY,SAAWpY,EAAQ02B,YAAc12B,EAAQ22B,SAAU,CACxG,IAAIC,EAAqC,CACvCve,WAAYrY,EAAQqY,YAAc,KAClCF,UAAWnY,EAAQmY,WAAa,KAChCC,QAASpY,EAAQoY,SAAW,KAC5Bse,WAAY12B,EAAQ02B,WAAapjC,EAAQia,aAAavN,EAAQ02B,YAAc,KAC5EC,SAAU32B,EAAQ22B,SAAWrjC,EAAQia,aAAavN,EAAQ22B,UAAY,MAGpE3pD,OAAQ,EASZ,OAPIgzB,EAAQhzB,WACVA,EAAWgzB,EAAQhzB,WAEhBA,GAAYgzB,EAAQmY,WAAanY,EAAQoY,UxE+ElBpiB,EwE9EGgK,EAAQoY,QxE8EGriB,EwE9EMiK,EAAQmY,UAAtDnrC,ExE+EC,CACL4nB,MAAOoB,EAAGpB,MAAQmB,EAAGnB,MACrBC,OAAQmB,EAAGnB,OAASkB,EAAGlB,OACvB1E,KAAM6F,EAAG7F,KAAO4F,EAAG5F,KACnB2E,aAAckB,EAAGlB,aAAeiB,EAAGjB,ewEhF1B,CACLsM,YAAapjB,SAASgiB,EAAQmY,YAAcnY,EAAQoY,SACpDprC,SAAQ,EACRonB,SAAUwiC,G,IxEwEgB5gC,EAAcD,EwEpE5C,OAAO,MAGT5B,OAAA,SAAOC,EAA+Bf,EAAyBC,GAC7D,IAAIujC,EAAsB3yB,GACxB7Q,EACA,CAAE/Y,MAAO8Z,EAASsiC,WAAYl/C,IAAK4c,EAASuiC,WAG9C,OAAIE,EAkBR,SACExe,EACAF,EACA9kB,EACAC,GAEA,IAAIwjC,EAA0Cze,EAAa7lB,GAAY6lB,GAAc,KACjF0e,EAAYxnC,EAAW8D,EAAa/Y,OACpCsnB,EAAYvO,EAAa7b,IACzBw/C,EAA+B,GAEnC,KAAOD,EAAYn1B,GAAW,CAC5B,IAAIq1B,O,EAGCH,IAAWA,EAAQC,EAAUzmC,eAE9B2mC,EADE9e,EACc7kB,EAAQ5rB,IAAIqvD,EAAW5e,GAEvB4e,EAGlBC,EAAez2D,KAAK02D,IAGtBF,EAAYjoC,EAAQioC,EAAW,GAGjC,OAAOC,EA7CIE,CACL9iC,EAASikB,WACTjkB,EAAS+jB,UACT0e,EACAvjC,GAGG,MAOTwK,cCvEuC,CACvCua,WAAY/Y,GACZ6Y,UAAW3jB,GACX4jB,QAAS5jB,GACTxnB,SAAUwnB,GACVkiC,WAAYp3B,GACZq3B,SAAUr3B,MLLuBylB,GAAa,CAC9CoB,qBAAsB,CACpBha,OAAM,SAAC,EAAQrhB,GACb6qC,GAAmB,CAAC,GAAS7qC,IAE/B+lB,aAAc8kB,MCchB5Q,GAAa,CACXG,eAAgB,CACd,SAACpjC,GAAoC,OAAA2uC,GAA2B3uC,EAAM+uB,gBAExEwV,oBAAqB,CACnB8Q,KAAM,WAAM,MAAC,CAAEn0C,OAAQo0C,KACvBC,SAAU,WAAM,MAAC,CAAEr0C,OAAQs0C,MAE7B9Q,gBAAiB,CACf1a,Y,SK1B4BA,EAA0BhhB,GAC1DA,EAAQmf,QAAQC,QAAQ,WAAU,2BAC7Bb,GAA0ByC,EAAYC,YAAajhB,EAAQwI,UAAQ,CACtEiX,KAAMzf,EAAQ0f,YLwBZpX,W,SMD2BA,EAAwBtI,GACjD,IAAAmf,EAAYnf,EAAL,QAETmf,EAAQgV,YAAY,cACtBhV,EAAQC,QAAQ,YAAaqH,GAAene,EAAYtI,S,SNE5CssC,GAAWzyD,EAAiBwyD,GAC1CxyD,EAAG4M,UAAY4lD,E,SAGDG,GAAe3yD,EAAiB0yD,GAC9C,IAAIE,EAAW/3D,MAAMuB,UAAUE,MAAMb,KAAKuE,EAAGyC,YACzCowD,EAAWh4D,MAAMuB,UAAUE,MAAMb,KAAKi3D,GAE1C,IAAKjgC,GAAcmgC,EAAUC,GAAW,CACtC,IAAoB,UAAAA,EAAA,eAAU,CAAzB,IAAIC,EAAO,KACd9yD,EAAGuJ,YAAYupD,GAEjBF,EAAS3hD,QAAQ6V,I,kBO7CnB,WACUisC,GAAA,KAAAA,gBANF,KAAAC,WAAY,EACZ,KAAAC,SAAU,EACV,KAAAC,YAA2C,GAC3C,KAAAC,UAAoB,EAsF9B,OA/EE,YAAAnV,QAAA,SAAQn7B,GACN9iB,KAAKkzD,SAAU,EAEVlzD,KAAKqzD,aACRrzD,KAAK+V,eAEQ,MAAT+M,EACF9iB,KAAKszD,WAELtzD,KAAKozD,UAAYvqD,WACf7I,KAAKszD,SAASv5C,KAAK/Z,MACnB8iB,KAMR,YAAAywC,MAAA,SAAMC,QAAA,IAAAA,MAAA,IACE,IAAAL,EAAgBnzD,KAAL,YAEjBmzD,EAAYK,IAAUL,EAAYK,IAAU,GAAK,EAEjDxzD,KAAK+V,gBAGP,YAAA09C,OAAA,SAAOD,EAAYE,QAAZ,IAAAF,MAAA,IACC,IAAAL,EAAgBnzD,KAAL,YAEjB,GAAIwzD,KAASL,EAAa,CACxB,GAAIO,SACKP,EAAYK,QAEnBL,EAAYK,IAAU,EACVL,EAAYK,IAEX,UACJL,EAAYK,GAIvBxzD,KAAKszD,aAIT,YAAAD,SAAA,WACE,OAAOj3D,OAAOqS,KAAKzO,KAAKmzD,aAAax4D,QAGvC,YAAA24D,SAAA,WACE,IAAKtzD,KAAKizD,YAAcjzD,KAAKqzD,WAAY,CAGvC,IAFArzD,KAAKizD,WAAY,EAEVjzD,KAAKkzD,SACVlzD,KAAKkzD,SAAU,EACflzD,KAAK2zD,UAGP3zD,KAAKizD,WAAY,IAIrB,YAAAp7C,MAAA,WACE7X,KAAK+V,eACL/V,KAAKkzD,SAAU,EACflzD,KAAKmzD,YAAc,IAGb,YAAAp9C,aAAR,WACM/V,KAAKozD,YACPr9C,aAAa/V,KAAKozD,WAClBpzD,KAAKozD,UAAY,IAIX,YAAAO,QAAV,WACM3zD,KAAKgzD,eACPhzD,KAAKgzD,iBAGX,E,GCxFA,cAKE,WACUY,EACAZ,GADA,KAAAY,gBACA,KAAAZ,gBANF,KAAAa,MAAgB,GAQtB7zD,KAAK8zD,cAAgB,IAAIC,GAAc/zD,KAAKm+C,MAAMpkC,KAAK/Z,OA2C3D,OAxCE,YAAAi+C,QAAA,SAAQ+V,EAAYlxC,GAClB9iB,KAAK6zD,MAAMh4D,KAAKm4D,GAChBh0D,KAAK8zD,cAAc7V,QAAQn7B,IAG7B,YAAAywC,MAAA,SAAMC,GACJxzD,KAAK8zD,cAAcP,MAAMC,IAG3B,YAAAC,OAAA,SAAOD,EAAgBE,GACrB1zD,KAAK8zD,cAAcL,OAAOD,EAAOE,IAGnC,YAAAvV,MAAA,WAGE,IAFM,IAAA0V,EAAU7zD,KAAL,MAEJ6zD,EAAMl5D,QAAQ,CAInB,IAHA,IAAIs5D,EAAyB,GACzBD,OAAI,EAEAA,EAAOH,EAAMK,SACnBl0D,KAAKm0D,QAAQH,GACbC,EAAep4D,KAAKm4D,GAGtBh0D,KAAK2zD,QAAQM,KAIP,YAAAE,QAAV,SAAkBH,GACZh0D,KAAK4zD,eACP5zD,KAAK4zD,cAAcI,IAIb,YAAAL,QAAV,SAAkBM,GACZj0D,KAAKgzD,eACPhzD,KAAKgzD,cAAciB,IAGzB,EApDA,G,SCMgBG,GAAWhtB,EAA0BsX,EAA0B9vB,GAC7E,IAAIhc,EASJ,OALEA,EADE,iBAAiBjW,KAAKyqC,EAAYohB,kBAC5BphB,EAAYE,aAEZF,EAAYC,YAGfzY,EAAQ+F,YACb/hB,EAAMgD,MACNhD,EAAME,IACN2lB,GAAgBimB,EAAY2V,aAUhC,SAA0BjtB,GAClB,IAAAohB,EAAqBphB,EAAL,iBAEtB,GAAyB,SAArBohB,EACF,MAAO,CAAEr9B,KAAM,WAGjB,GAAyB,UAArBq9B,EACF,MAAO,CAAEr9B,KAAM,UAAWoF,MAAO,QAGnC,IAAI9E,EAAOf,EACT0c,EAAYE,aAAa1xB,MACzBwxB,EAAYE,aAAax0B,KAG3B,GAAa,OAAT2Y,GAAiBA,EAAO,EAE1B,MAAO,CAAEN,KAAM,UAAWoF,MAAO,QAASC,IAAK,WAIjD,MAAO,CAAErF,KAAM,UAAWoF,MAAO,OAAQC,IAAK,WAhCD8jC,CAAiBltB,IAC5D,CACEqK,eAAgBrK,EAAY2hB,cAC5BtyB,iBAAkBioB,EAAY6V,sB,kBCmElC,WAAY/1D,GAAZ,WA7BQ,KAAAg2D,mBAAqB1hC,GAAQ9yB,KAAKy0D,qBAClC,KAAAC,uBAAyB5hC,GAAQ9yB,KAAK20D,yBACtC,KAAAriB,mBAAqBxf,GAAQwf,IAC7B,KAAAO,YAAc/f,GAAQ+f,IACtB,KAAA8P,iBAAmBZ,KACnB,KAAA6S,aAAe9hC,GAAQ8hC,IACvB,KAAAC,WAAa/hC,GAAQ+hC,IACrB,KAAAnG,cAAgB57B,GAAQ47B,IACxB,KAAA9H,eAAiB9zB,GAAQ8zB,IACzB,KAAAkO,0BAA4BzhC,GAAcyhC,IAC1C,KAAAC,aAAejiC,GAAQiiC,IACvB,KAAAC,iBAAmB3hC,GAAc2hC,IACjC,KAAAC,qBAAuBniC,GAAQmiC,GAAsBjnC,IACrD,KAAAknC,kBAAoBpiC,GAAQoiC,IAC5B,KAAAC,0BAA4B9hC,GAAc8hC,IAC1C,KAAAf,WAAathC,GAAQshC,IAEtB,KAAA7uB,QAAU,IAAI6vB,GACb,KAAAC,aAAe,IAAIC,GAAWt1D,KAAKu1D,cAAcx7C,KAAK/Z,MAAOA,KAAKw1D,WAAWz7C,KAAK/Z,OAKnF,KAAAqpC,4BAA+C,GAC9C,KAAAosB,8BAAyD,GACzD,KAAAC,wBAAuC,GACvC,KAAAC,0BAAiD,GAClD,KAAAlsB,+BAAsC,GAmF7C,KAAAvC,eAAiB,WAAM,SAAKv4B,MAE5B,KAAA2X,SAAW,SAACyiB,GACV,EAAKssB,aAAapX,QAAQlV,IAnF1B/oC,KAAKxB,MAAQA,EACbwB,KAAKq1D,aAAa9B,QAElB,IAAIxM,EAA0C,GAC1C6O,EAAc51D,KAAKw0D,mBACrBh2D,EAAMsoD,gBACNC,EACAvoD,EAAMunC,aAGJ8vB,EAAkBD,EAAY/qB,gBAAgB0W,aAAeqU,EAAY/mC,YAAY0yB,YACrFuU,EAAkB91D,KAAK00D,uBACzBmB,EACAD,EACAp3D,EAAMsoD,gBACNC,GAKFvoD,EAAMunC,YAAY+C,mBAAqB9oC,KACvCA,KAAKulC,QAAQ0U,eAAez7C,EAAMunC,aAClC/lC,KAAKulC,QAAQ2U,WAAW4b,EAAgBxkD,SAExC,IAAIo5B,E,SvDtGuBp5B,EAA6Bsd,GAC1D,IAAImnC,EAAmBzkD,EAAQ0kD,YAG/B,OAAwB,MAApBD,EACKnnC,EAAQia,aAAaktB,GAEvBrtB,GAAOp3B,EAAQw5B,IAAKlc,GuD+FPqnC,CAAeL,EAAY/qB,gBAAiB+qB,EAAYhnC,SACtEwY,EAAc0uB,EAAgBnX,qBAAqB+J,MAAMhe,GAExD3K,GAAoBqH,EAAYC,YAAaqD,KAChDA,EAActD,EAAYE,aAAa1xB,OAczC,IAXA,IAAIsgD,EAAmC,CACrCtnC,QAASgnC,EAAYhnC,QACrBtd,QAASskD,EAAY/qB,gBACrBhc,YAAa+mC,EAAY/mC,YACzBkX,YAAavnC,EAAMunC,YACnBzf,SAAUtmB,KAAKsmB,SACfif,QAASvlC,KAAKulC,QACd2B,eAAgBlnC,KAAKknC,gBAIF,MAAA0uB,EAAY/mC,YAAY4xB,YAAxB,eAAqC,EACxD96C,EADe,MACNuwD,GAwBX,IApBA,IAAI/pB,EAAegf,GAAiByK,EAAY/qB,gBAAiBzD,EAAa8uB,GAE1EC,EAAyC,CAC3CpP,uBAAsB,EACtB8O,gBAAe,EACfnrB,YAAW,EACXtD,YAAW,EACXqP,cAAez2C,KAAKm1D,0BAA0Be,GAC9C/pB,aAAY,EACZlM,aAAc,GACdvR,WpEzEG,CAAEhd,KAAM,GAAIod,UAAW,IoE0E1BsnC,qBpE1EG,CAAE1kD,KAAM,GAAIod,UAAW,IoE2E1B4c,cAAe,KACfgL,eAAgB,GAChBR,UAAW,KACXE,YAAa,KACbigB,gBAAiBr2D,KAAKg1D,iBAAiBkB,GAAiBG,iBAEtDC,EAAkB,OAAH,IAAG,CAAH,eAAQJ,GAAoBC,GAE3B,MAAAP,EAAY/mC,YAAY0xB,SAAxB,eAAkC,CAAjD,IAAIgW,EAAO,KACd,YAASJ,EAAcI,EAAQ,KAAM,KAAMD,IAGzCE,GAAiBL,EAAcD,IACjCl2D,KAAKulC,QAAQC,QAAQ,WAAW,GAGlCxlC,KAAKod,MAAQ+4C,EACbn2D,KAAKw1D,aACLx1D,KAAKq1D,aAAa5B,SAoYtB,OA3XE,YAAAgD,aAAA,SAAa3P,EAAkC4P,GACvC,IAAAl4D,EAAUwB,KAAL,MAEXxB,EAAMsoD,gBAAkB4P,E,2BACfl4D,EAAMsoD,iBAAoBA,GAC/BA,EAEJ9mD,KAAKq1D,aAAapX,QAAQ,CACxBzgD,KAAM,aAIV,YAAA+3D,cAAA,SAAcxsB,GACR,MAA4B/oC,KAA1BxB,EAAK,QAAE4e,EAAK,QAAEmoB,EAAO,UAEvBwhB,E,SC/LqCA,EAAwBhe,G,MACnE,MACO,eADCA,EAAOvrC,KAEX,2BAAYupD,KAAsB,MAAGhe,EAAOI,YAAaJ,EAAOK,eAAc,IAEvE2d,ED0LoB4P,CAA6Bv5C,EAAM2pC,uBAAwBhe,GACpF6sB,EAAc51D,KAAKw0D,mBACrBh2D,EAAMsoD,gBACNC,EACAvoD,EAAMunC,aAGJ8vB,E,SEtMuBlsB,EAAkBZ,GAExC,qBADCA,EAAOvrC,OAEXmsC,EAAWZ,EAAOY,UAGtB,OAAOA,EFgMiBitB,CAAex5C,EAAMy4C,gBAAiB9sB,GACxD+sB,EAAkB91D,KAAK00D,uBACzBmB,EACAD,EACAp3D,EAAMsoD,gBACNC,GAKFvoD,EAAMunC,YAAY+C,mBAAqB9oC,KACvCulC,EAAQ0U,eAAez7C,EAAMunC,aAC7BR,EAAQ2U,WAAW4b,EAAgBxkD,SAEnC,IAAI4kD,EAAmC,CACrCtnC,QAASgnC,EAAYhnC,QACrBtd,QAASskD,EAAY/qB,gBACrBhc,YAAa+mC,EAAY/mC,YACzBkX,YAAavnC,EAAMunC,YACnBzf,SAAUtmB,KAAKsmB,SACfif,QAAO,EACP2B,eAAgBlnC,KAAKknC,gBAGjBwD,EAA6BttB,EAAlB,YAAEgqB,EAAgBhqB,EAAL,YAE1Bpd,KAAK2O,MAAQ3O,KAAK2O,KAAKgwC,uBAAyBmX,EAAgBnX,uBAClEvX,EAAc0uB,EAAgBnX,qBAAqB+J,MAAMhe,IAG3DA,E,SvDjO8BA,EAAyB3B,GACzD,MACO,gBADCA,EAAOvrC,KAEJurC,EAAOe,WAEPY,EuD4NKmsB,CAAkBnsB,EAAa3B,GAC7C3B,E,SGlOFihB,EACAtf,EACA2B,EACAiU,GAEA,IAAImY,EAEJ,OAAQ/tB,EAAOvrC,MACb,IAAK,mBACH,OAAOmhD,EAAqB+J,MAAM3f,EAAOe,YAAcY,GAEzD,IAAK,cACH,OAAOiU,EAAqB+J,MAAM3f,EAAOe,YAE3C,IAAK,OAEH,IADAgtB,EAAKnY,EAAqByJ,UAAUC,EAAoB3d,IACjDue,QACL,OAAO6N,EAET,MAEF,IAAK,OAEH,IADAA,EAAKnY,EAAqBgK,UAAUN,EAAoB3d,IACjDue,QACL,OAAO6N,EAKb,OAAOzO,EHqMS0O,CAAkB3vB,EAAa2B,EAAQ2B,EAAaorB,EAAgBnX,sBAGhE,SAAhB5V,EAAOvrC,MACS,SAAhBurC,EAAOvrC,MACNuiC,GAAoBqH,EAAYE,aAAcoD,KAE/CA,EAActD,EAAYE,aAAa1xB,OAkCzC,IA/BA,IAAIu2B,EAAeqf,GAAmBpuC,EAAM+uB,aAAcpD,EAAQ3B,EAAa8uB,GAC3ExnC,EAAao+B,GAAiB1vC,EAAMsR,WAAYqa,EAAQoD,EAAc/E,EAAa8uB,GAGnFE,EAFkBrK,GAA2B5f,KAG1B2pB,EAAgBxkD,QAAQ0lD,2BAC1C55C,EAAMg5C,sBACP1nC,EAEA,EAAyC1uB,KAAKg1D,iBAAiBkB,GAA7De,EAAiB,oBAAEZ,EAAe,kBACpCa,EAAkBl3D,KAAKi1D,qBAAqB9oB,GAG5CgrB,EAAqC,CACvCpQ,uBAAsB,EACtB8O,gBAAe,EACfnrB,YAAW,EACXtD,YAAW,EACX+E,aAAY,EACZzd,WAAU,EACV0nC,qBAAoB,EACpBC,gBAAe,EACfp2B,aAXiBjgC,KAAKk1D,kBAAkBkB,EAAqB1kD,KAAMulD,EAAmBC,GAYtFzgB,cAAez2C,KAAKm1D,0BAA0Be,GAC9CxqB,cAAeqiB,GAAoB3wC,EAAMsuB,cAAe3C,GACxD2N,eAAgBuX,GAAoB7wC,EAAMs5B,eAAgB3N,GAC1DmN,UAAWkY,GAAgBhxC,EAAM84B,UAAWnN,GAC5CqN,YAAamY,GAAkBnxC,EAAMg5B,YAAarN,IAEhDutB,EAAkB,OAAH,IAAG,CAAH,eAAQJ,GAAoBiB,GAE3B,MAAAvB,EAAY/mC,YAAY0xB,SAAxB,eAAkC,CAAjD,IAAIgW,EAAO,KACd,YAASY,EAAUZ,EAAQn5C,EAAO2rB,EAAQutB,IAG5C,IAAIc,EAAaZ,GAAiBp5C,EAAO84C,GACrCmB,EAAYb,GAAiBW,EAAUjB,IAGtCkB,GAAcC,EACjB9xB,EAAQC,QAAQ,WAAW,GAClB4xB,IAAeC,GACxB9xB,EAAQC,QAAQ,WAAW,GAG7BxlC,KAAKod,MAAQ+5C,EAET34D,EAAM84D,UACR94D,EAAM84D,SAASvuB,IAInB,YAAAysB,WAAA,WACM,IAAEh3D,EAAiBwB,KAAZ,MAAEod,EAAUpd,KAAL,MACdu3D,EAAUv3D,KAAK2O,KAEfinD,EAAc51D,KAAKw0D,mBACrBh2D,EAAMsoD,gBACN1pC,EAAM2pC,uBACNvoD,EAAMunC,aAGJ+vB,EAAkB91D,KAAK00D,uBACzBt3C,EAAMy4C,gBACND,EACAp3D,EAAMsoD,gBACN1pC,EAAM2pC,wBAGJp4C,EAAqB3O,KAAK2O,KAAI,qCAChCw4B,UAAWnnC,KAAKo0D,WAAWh3C,EAAMgqB,YAAa0uB,EAAgBxkD,QAASskD,EAAYhnC,SACnFmX,YAAavnC,EAAMunC,YACnBzf,SAAUtmB,KAAKsmB,SACfif,QAASvlC,KAAKulC,QACd2B,eAAgBlnC,KAAKknC,gBAClB0uB,GACAE,GACA14C,GAGDo6C,EAAiB5B,EAAY/mC,YAAY4yB,qBACzCgW,EAAqBF,GAAWA,EAAQ1sB,gBACxC6sB,EAAqB9B,EAAY/qB,gBAErC,GAAI4sB,GAAsBA,IAAuBC,EAO/C,IAAK,IAAIvuB,KANLsuB,EAAmBrgC,WAAasgC,EAAmBtgC,WAErDha,EAAM+uB,aAAex9B,EAAKw9B,a,StBpQYA,EAA+B/E,EAA0BhhB,GACrG,IAAIihB,EAAcD,EAAcA,EAAYC,YAAc,KAE1D,OAAOskB,GACLxf,EACAyf,GAAqBzf,EAAc/lB,GACnCihB,GACA,EACAjhB,GsB4P6CuxC,CAA8BhpD,EAAKw9B,aAAc/uB,EAAMgqB,YAAaz4B,GAC7GyO,EAAMsR,WAAa/f,EAAK+f,W,SrB7KMA,EAAwBkpC,EAAqBC,GAC3E,IAAAnmD,EAASgd,EAAL,KAENI,EAAYlB,GAAQc,EAAWI,WAAW,SAAC1wB,GAC7C,IAAI4wB,EAAMtd,EAAKtT,EAAS2uB,OAExB,OAAIiC,EAAIC,QAAUD,EAAID,aACb3wB,EAET,2BACKA,GAAQ,CACXwU,MAAO,CACLgD,MAAOiiD,EAAWhvB,aAAa+uB,EAAW9yB,OAAO1mC,EAASwU,MAAMgD,MAAOxX,EAAS4uB,iBAChFla,IAAK+kD,EAAWhvB,aAAa+uB,EAAW9yB,OAAO1mC,EAASwU,MAAME,IAAK1U,EAAS6uB,gBAE9ED,eAAgB6qC,EAAWloB,iBAAmB,KAAOvxC,EAAS4uB,eAC9DC,aAAc4qC,EAAWloB,iBAAmB,KAAOvxC,EAAS6uB,kBAIhE,MAAO,CAAEvb,KAAI,EAAEod,UAAS,GqByJmBgpC,CAAsBnpD,EAAK+f,WAAY6oC,EAAQ3oC,QAASjgB,EAAKigB,UAG7E4oC,EACjBC,EAAmBtuB,KAAgBuuB,EAAmBvuB,IACxDquB,EAAeruB,GAAYuuB,EAAmBvuB,GAAax6B,GAK7DnQ,EAAMu5D,QACRv5D,EAAMu5D,OAAOppD,IAIjB,YAAA8lD,oBAAA,SACE3N,EACAC,EACAhhB,GAII,MAEA/lC,KAAKg4D,0BAA0BlR,EAAiBC,GADlDkR,EAAc,iBAAEppC,EAAW,cAAEm4B,EAAc,iBAAEkR,EAAmB,sBAGlEC,GAHyE,SAKzE,IAAIvpC,EAAU5uB,KAAK40D,aACjBqD,EAAe7gC,SACf6gC,EAAephC,OACfohC,EAAeloB,sBACfkoB,EAAejoB,SACfioB,EAAerhC,SACf/H,EACAqpC,EACAD,EAAeG,uBAGbnuB,EAAYjqC,KAAK4mD,eAAe/3B,EAAYgyB,MAAOiG,EAAiBC,EAAwBC,GAC5FlP,EAAQ93C,KAAK60D,WAAWoD,EAAgBppC,GAG5C,MAAO,CACLgc,gBAAiBotB,EACjBppC,YAAW,EACXD,QAAO,EACPqb,UAAS,EACT6N,MAAK,EACL3N,cARkBnqC,KAAK0uD,cAAcuJ,EAAgBnR,EAAiBhP,EAAO7N,EAAWlE,GASxFihB,eAAc,EACdzd,oBAAqB2uB,EAAoBv6D,MAK7C,YAAAq6D,0BAAA,SAA0BlR,EAAkCC,GACtD,MAAsBsR,GAAgB,CACxCpQ,GACAnB,EACAC,IAHIuR,EAAO,UAAEzhC,EAAM,SAKjBqhC,EAAsBl4D,KAAKsyC,mBAAmBgmB,GAC9C/uB,EAAsB2uB,EAAoBv6D,IAC1CqpD,EAAiBhnD,KAAK6yC,YAAYhc,GAAUqhC,EAAoB1lB,YAAajJ,GAAqBj4B,QAClGud,EAAc7uB,KAAK2iD,iBAAiBmE,EAAgByR,SAAW,GAAIhH,IACnEr1B,EAAWl8B,KAAKypC,+BAA8B,+DAC7C+uB,IACAC,IACAC,IACA7pC,EAAY+yB,kBACZ/yB,EAAYgzB,gBAEbzlB,EAAQ,GAER9B,EAAM+9B,GAAgB,CACxBpQ,GACAjB,EACAF,EACAC,IAEEzrB,EAA2C,GAC3Cq9B,EAAa34D,KAAKqpC,4BAClBuvB,EAAiB54D,KAAKy1D,8BACtBoD,GAAa,EAEjB,IAAK,IAAI1vB,KAAc7O,EACF,YAAf6O,IAEA7O,EAAI6O,KAAgBwvB,EAAWxvB,IAE7B2vB,GAA2B3vB,IAC1BA,KAAcwvB,GACfG,GAA2B3vB,GAAYwvB,EAAWxvB,GAAa7O,EAAI6O,IAGrE7N,EAAQ6N,GAAcyvB,EAAezvB,GAC5BjN,EAASiN,IAClB7N,EAAQ6N,GAAcjN,EAASiN,GAAY7O,EAAI6O,IAC/C0vB,GAAa,GAEbz8B,EAAM+M,GAAcwvB,EAAWxvB,IAUrC,OALI0vB,IACF74D,KAAKqpC,4BAA8B/O,EACnCt6B,KAAKy1D,8BAAgCn6B,GAGhC,CACLkoB,WAAYxjD,KAAKqpC,4BACjB4uB,eAAgBj4D,KAAKy1D,8BACrB5mC,YAAW,EACXqpC,oBAAmB,EACnBlR,eAAc,EACd5qB,MAAK,IAIT,YAAAu4B,wBAAA,SACEhrB,EACAisB,EACA9O,EACAC,GAEA,IAAItI,EAAWmX,EAAY3rB,UAAUN,GAErC,IAAK8U,EACH,MAAM,IAAI/0C,MAAM,aAAaigC,EAAQ,8EAGnC,MAA4B3pC,KAAK+4D,sBACnCta,EACAmX,EAAY/mC,YACZ+mC,EAAY5O,eACZF,EACAC,GALIkR,EAAc,iBAkCpB,OA1BAE,GAR2B,SAkCpB,CAAE1Z,SAAQ,EAAEntC,QAAS2mD,EAAgBtZ,qBAxBjB3+C,KAAK80D,0BAA0B,CACxDkE,0BAA2Bva,EAASqJ,eAAekR,0BACnD1wD,SAAUm2C,EAASn2C,SACnB8+C,aAAc3I,EAAS2I,aACvB+C,eAAgB1L,EAASqJ,eAAeqC,eACxCv7B,QAASgnC,EAAYhnC,QACrBmX,YAAa/lC,KAAKxB,MAAMunC,YACxByjB,YAAayO,EAAezO,YAC5BC,YAAawO,EAAexO,YAC5BH,oBAAqB2O,EAAe3O,oBACpCQ,SAAUmO,EAAenO,SACzBM,cAAe6N,EAAe7N,cAC9B3B,cAAewP,EAAexP,cAC9BqC,WAAYmN,EAAenN,WAC3BE,SAAUiN,EAAejN,SACzBriB,SAAUsvB,EAAentB,IACzB6e,gBAAiBsO,EAAepP,WAChC4B,kBAAmBwN,EAAegB,aAClCC,UAAWjB,EAAeiB,UAC1BC,eAAgBlB,EAAekB,iBAKiCrzB,QAFpD9lC,KAAK+0D,aAAaprB,EAAU3pC,KAAKknC,eAAgB0uB,EAAYhnC,WAK7E,YAAAmqC,sBAAA,SACEta,EACA5vB,EACAm4B,EACAF,EACAC,GAEA,IAAIzsB,EAAM+9B,GAAgB,CACxBpQ,GACAxJ,EAASqJ,eACTd,EACAF,EACArI,EAASqI,gBACTC,IAEE7qB,EAAW,OAAH,IAAG,CAAH,+DACPs8B,IACAC,IACAC,IACAU,IACAvqC,EAAY+yB,kBACZ/yB,EAAYgzB,gBAEbvmB,EAAuC,GACvCq9B,EAAa34D,KAAK01D,wBAClBkD,EAAiB54D,KAAK21D,0BACtBkD,GAAa,EACbz8B,EAAQ,GAEZ,IAAK,IAAI+M,KAAc7O,EACjBA,EAAI6O,KAAgBwvB,EAAWxvB,GACjC7N,EAAQ6N,GAAcyvB,EAAezvB,IAEjC7O,EAAI6O,KAAgBnpC,KAAKqpC,4BAA4BF,GACnDA,KAAcnpC,KAAKy1D,gCACrBn6B,EAAQ6N,GAAcnpC,KAAKy1D,8BAA8BtsB,IAElDjN,EAASiN,GAClB7N,EAAQ6N,GAAcjN,EAASiN,GAAY7O,EAAI6O,IAE/C/M,EAAM+M,GAAc7O,EAAI6O,GAG1B0vB,GAAa,GASjB,OALIA,IACF74D,KAAK01D,wBAA0Bp7B,EAC/Bt6B,KAAK21D,0BAA4Br6B,GAG5B,CACLkoB,WAAYxjD,KAAK01D,wBACjBuC,eAAgBj4D,KAAK21D,0BACrBv5B,MAAK,IAGX,E,GAEA,SAASw4B,GACPx9B,EACAiiC,EACAtpB,EACAC,EACApZ,EACA/H,EACAqpC,EACAzhC,GAEA,IAAII,EAASgc,GAAYwmB,GAAkBnB,EAAoB1lB,YAAa0lB,EAAoBv6D,KAEhG,OAAO,IAAI27D,GAAQ,CACjBnkC,eAAgB,UAChBiC,SAAQ,EACRsY,kBAAmB7gB,EAAYyyB,mBAC/BzqB,OAAM,EACNkZ,sBAAqB,EACrBC,SAAQ,EACRpZ,SAAQ,EACR4B,aAAc3J,EAAY2J,aAC1B/B,iBAAgB,IAIpB,SAASo+B,GAAWvjD,EAAiCud,GAGnD,OAAO,IAFUA,EAAYwyB,aAAa/vC,EAAQioD,cAAgB,IAE5CjoD,GAGxB,SAASwjD,GAA0Bt2D,GAGjC,OAAO,IAFyBA,EAAMw6D,2BAA6BQ,IAE9Bh7D,GAGvC,SAASu2D,GAAav3D,EAAc0pC,EAAoCtY,GACtE,OAAO,IAAI6qC,GAAQj8D,EAAM0pC,EAAgBtY,GAG3C,SAASqmC,GAAqB9oB,GAC5B,OAAOve,GAAQue,GAAc,SAACjT,GAAgB,OAAAA,EAAYwE,MAG5D,SAASw3B,GAAkB5zB,EAAyB21B,EAA4BC,GAC9E,IAAIj3B,EAA4B,CAAE,GAAIg3B,GAEtC,IAAK,IAAIlqC,KAASuU,EAAW,CAC3B,IAAItS,EAAMsS,EAAUvU,GAEhBiC,EAAIzI,UAAY2wC,EAAgBloC,EAAIzI,YACtC0Z,EAAalT,GAASmqC,EAAgBloC,EAAIzI,WAI9C,OAAO0Z,EAGT,SAAS+0B,GAAiBkB,GAClB,IAAA5kD,EAAY4kD,EAAL,QAEb,MAAO,CACLe,kBAAmB57B,GACjB,CACEnzB,QAASoJ,EAAQooD,aACjBl/B,SAAUlpB,EAAQkpB,SAClBC,cAAenpB,EAAQqoD,mBACvBj/B,iBAAkBppB,EAAQsoD,sBAC1Bj/B,WAAYrpB,EAAQuoD,gBACpBh/B,QAAyC,mBAAzBvpB,EAAQwoD,aAA6BxoD,EAAQwoD,kBAAer0D,EAC5EoQ,MAAOvE,EAAQyoD,WACfh/B,gBAAiBzpB,EAAQ0oD,qBACzBh/B,YAAa1pB,EAAQ2oD,iBACrBh/B,UAAW3pB,EAAQ4oD,eACnBp/B,MAAOxpB,EAAQ6oD,YAGjBjE,GAEFG,gBAAiBh7B,GACf,CACEV,WAAYrpB,EAAQ8oD,iBACpBv/B,QAA0C,mBAA1BvpB,EAAQ+oD,cAA8B/oD,EAAQ+oD,mBAAgB50D,EAC9EoQ,MAAOvE,EAAQgpD,aAEjBpE,IAKN,SAASM,GAAiBp5C,EAAiCgJ,GACzD,IAA0B,UAAAA,EAAQyI,YAAY2xB,eAApB,eAAoC,CAC5D,IAAI+Z,EADgB,MACFn9C,GAChB,OAAO,EAIX,OAAO,EAGT,SAAS+3C,GAA0Be,GACjC,OAAOtiB,GAAmBsiB,EAAgB5kD,QAAQmlC,cAAeyf,GAGnE,SAASiC,GAAmB7mD,EAAckpD,GACxC,IAAK,IAAIrxB,KAAc73B,EACrBwN,QAAQC,KACN,mBAAmBoqB,EAAU,KAC5BqxB,EAAW,cAAcA,EAAQ,IAAM,K,mBI7oB5C,WAAYh8D,GAAZ,MACE,YAAMA,IAAM,K,OASd,EAAAi8D,WAAa,SAAC9rD,GACP,EAAK+rD,YAIR,EAAKl9C,SAAS7O,GAFd,EAAKyO,MAAQzO,GAVf,EAAK+rD,YAAc,IAAI,GAAoB,CACzC5T,gBAAiBtoD,EAAMsoD,gBACvB/gB,YAAavnC,EAAMunC,YACnBgyB,OAAQ,EAAK0C,a,EAwBnB,OAjC0C,iBAsBxC,YAAAn8C,OAAA,WACE,OAAOte,KAAKxB,MAAMgE,SAASxC,KAAKod,QAGlC,YAAA+nC,mBAAA,SAAmB3hC,GACjB,IAAIm3C,EAAqB36D,KAAKxB,MAAMsoD,gBAEhC6T,IAAuBn3C,EAAUsjC,iBACnC9mD,KAAK06D,YAAYjE,aAAakE,IAGpC,E,CAjC0C3/C,G,kBCmB1C,aAEE,KAAA4/C,aAAuB,EACvB,KAAAC,gBAA0B,EAC1B,KAAAC,UAAoB,EACpB,KAAAC,aAAuB,EAEvB,KAAAC,YAAwB,GACxB,KAAAC,eAA+B,GAC/B,KAAAC,UAA2C,GA+K7C,OA7KE,YAAAC,QAAA,SAAQ3U,GAGN,IAFA,IAAI4U,EAA4B,GAEd,MAAA5U,EAAA,eAAQ,CAArB,IAAIz2B,EAAK,KACZ/vB,KAAKq7D,YAAYtrC,EAAOqrC,GAG1B,OAAOA,GAGT,YAAAC,YAAA,SAAYC,EAAiBF,GAC3B,IAAIvlC,EAAY71B,KAAKu7D,cAAcD,GAEnC,OAAIt7D,KAAKw7D,iBAAiB3lC,EAAWylC,IACnCt7D,KAAKy7D,cAAcH,EAAOzlC,GACnB,GAGF71B,KAAK07D,uBAAuB7lC,EAAWylC,EAAOF,IAGvD,YAAAI,iBAAA,SAAiB3lC,EAAyBylC,GACxC,QAA2B,IAAnBt7D,KAAK86D,UAAmBjlC,EAAU8lC,WAAaL,EAAMM,WAAa57D,KAAK86D,aACtD,IAAtB96D,KAAK+6D,aAAsBllC,EAAUgmC,SAAW77D,KAAK+6D,cAI1D,YAAAW,uBAAA,SAAuB7lC,EAAyBylC,EAAiBF,GAC/D,OAAIp7D,KAAK66D,gBAAkBhlC,EAAUimC,cAC5B97D,KAAK+7D,WAAWT,EAAOzlC,EAAUimC,cAAeV,IAGzDA,EAAcv/D,KAAKy/D,GACZ,IAGT,YAAAS,WAAA,SAAWT,EAAiBU,EAAmBZ,GAC7C,IAAIa,EAAU,EACVC,EAAiC,GACjCC,EAAYb,EAAMl3B,KAClBg4B,EAAcJ,EAAQ53B,KAkB1B,OAhBI+3B,EAAUvmD,MAAQwmD,EAAYxmD,QAChCqmD,GAAWj8D,KAAKq7D,YAAY,CAC1BgB,MAAOf,EAAMe,MACbT,UAAWN,EAAMM,UACjBx3B,KAAM,CAAExuB,MAAOumD,EAAUvmD,MAAO9C,IAAKspD,EAAYxmD,QAChDsmD,IAGDC,EAAUrpD,IAAMspD,EAAYtpD,MAC9BmpD,GAAWj8D,KAAKq7D,YAAY,CAC1BgB,MAAOf,EAAMe,MACbT,UAAWN,EAAMM,UACjBx3B,KAAM,CAAExuB,MAAOwmD,EAAYtpD,IAAKA,IAAKqpD,EAAUrpD,MAC9CopD,IAGDD,GACFb,EAAcv/D,KAAI,MAAlBu/D,EAAa,aAAM,CACjBiB,MAAOf,EAAMe,MACbT,UAAWN,EAAMM,UACjBx3B,KAAMk4B,GAAeF,EAAaD,KAC9BD,IACCD,IAGTb,EAAcv/D,KAAKy/D,GACZ,IAGT,YAAAG,cAAA,SAAcH,EAAiBzlC,GACzB,IAAEolC,EAAgCj7D,KAAlB,eAAEg7D,EAAgBh7D,KAAL,aAEN,IAAvB61B,EAAU0mC,SAEZC,GAASxB,EAAanlC,EAAU4mC,MAAO5mC,EAAU8lC,YACjDa,GAASvB,EAAgBplC,EAAU4mC,MAAO,CAACnB,KAG3CkB,GAASvB,EAAeplC,EAAU4mC,OAAQ5mC,EAAU0mC,QAASjB,GAG/Dt7D,KAAKk7D,UAAUwB,GAAcpB,IAAUzlC,EAAUgmC,UAGnD,YAAAN,cAAA,SAAcoB,GASZ,IARI,MAA0D38D,KAAxDg7D,EAAW,cAAEC,EAAc,iBAAEL,EAAW,cAAEM,EAAS,YACrD0B,EAAW5B,EAAYrgE,OACvBkiE,EAAiB,EACjBC,GAAyB,EACzBC,GAA2B,EAC3BjB,EAA0B,KAC1BD,EAAW,EAENmB,EAAgB,EAAGA,EAAgBJ,EAAUI,GAAiB,EAAG,CACxE,IAAIC,EAAgBjC,EAAYgC,GAIhC,IAAKpC,GAAeqC,GAAiBJ,EAAiBF,EAASf,UAC7D,MAQF,IALA,IAAIsB,EAAkBjC,EAAe+B,GACjCG,OAAa,EACbC,EAAYC,GAAaH,EAAiBP,EAASv4B,KAAKxuB,MAAO0nD,IAC/DC,EAAeH,EAAU,GAAKA,EAAU,IAGzCD,EAAgBD,EAAgBK,KACjCJ,EAAc/4B,KAAKxuB,MAAQ+mD,EAASv4B,KAAKtxB,KACzC,CACA,IAAI0qD,EAAsBP,EAAgBE,EAAcvB,UAEpD4B,EAAsBX,IACxBA,EAAiBW,EACjB1B,EAAgBqB,EAChBL,EAAgBE,EAChBD,EAAkBQ,GAGhBC,IAAwBX,IAE1BhB,EAAWz2D,KAAKC,IAAIw2D,EAAUX,EAAUwB,GAAcS,IAAkB,IAE1EI,GAAgB,GAKpB,IAAIE,EAAY,EAChB,GAAI3B,EAEF,IADA2B,EAAYX,EAAgB,EACrBW,EAAYb,GAAY5B,EAAYyC,GAAaZ,GACtDY,GAAa,EAKjB,IAAIC,GAAe,EAKnB,OAJID,EAAYb,GAAY5B,EAAYyC,KAAeZ,IACrDa,EAAcL,GAAapC,EAAewC,GAAYd,EAASv4B,KAAKtxB,IAAKwqD,IAAiB,IAGrF,CACLR,cAAa,EACbC,gBAAe,EACfjB,cAAa,EACbD,SAAQ,EACRF,WAAYkB,EACZJ,MAAOgB,EACPlB,QAASmB,IAKb,YAAAC,QAAA,WAKE,IAJI,IAAE1C,EAAgCj7D,KAAlB,eAAEg7D,EAAgBh7D,KAAL,YAC7B48D,EAAW3B,EAAetgE,OAC1BijE,EAAmB,GAEdnB,EAAQ,EAAGA,EAAQG,EAAUH,GAAS,EAI7C,IAHA,IAAI/+D,EAAUu9D,EAAewB,GACzBd,EAAaX,EAAYyB,GAEX,MAAA/+D,EAAA,eAAS,CAAtB,IAAI49D,EAAK,KACZsC,EAAM/hE,KAAI,2BAAMy/D,GAAK,CAAEK,WAAU,KAIrC,OAAOiC,GAEX,E,YAEgBN,GAAgBhC,GAC9B,OAAOA,EAAMl3B,KAAKtxB,I,SAGJ4pD,GAAcpB,GAC5B,OAAOA,EAAMe,MAAQ,IAAMf,EAAMl3B,KAAKxuB,M,SAIxBioD,GAAyBngE,GAGvC,IAFA,IA2BwB8mC,EAAgBC,EA3BpCq5B,EAA0B,GAEZ,MAAApgE,EAAA,eAAS,CAOzB,IAPG,IAAI49D,EAAK,KACRyC,EAAkC,GAClCC,EAA6B,CAC/B55B,KAAMk3B,EAAMl3B,KACZ1mC,QAAS,CAAC49D,IAGM,MAAAwC,EAAA,eAAQ,CAArB,IAAIG,EAAK,KACR3B,GAAe2B,EAAM75B,KAAM45B,EAAY55B,MACzC45B,EAAc,CACZtgE,QAASugE,EAAMvgE,QAAQK,OAAOigE,EAAYtgE,SAC1C0mC,MAcgBI,EAdAy5B,EAAM75B,KAcUK,EAdJu5B,EAAY55B,KAezC,CACLxuB,MAAOxQ,KAAKs6B,IAAI8E,EAAM5uB,MAAO6uB,EAAM7uB,OACnC9C,IAAK1N,KAAKC,IAAIm/B,EAAM1xB,IAAK2xB,EAAM3xB,QAd3BirD,EAAeliE,KAAKoiE,GAIxBF,EAAeliE,KAAKmiE,GACpBF,EAASC,EAGX,OAAOD,E,SAUOxB,GAAe93B,EAAgBC,GAC7C,IAAI7uB,EAAQxQ,KAAKC,IAAIm/B,EAAM5uB,MAAO6uB,EAAM7uB,OACpC9C,EAAM1N,KAAKs6B,IAAI8E,EAAM1xB,IAAK2xB,EAAM3xB,KAEpC,OAAI8C,EAAQ9C,EACH,CAAE8C,MAAK,EAAE9C,IAAG,GAGd,KAMT,SAAS0pD,GAAe/hE,EAAa4hE,EAAetyD,GAClDtP,EAAIwU,OAAOotD,EAAO,EAAGtyD,G,SAGPszD,GACdpvD,EACAiwD,EACAC,GAEA,IAAIC,EAAa,EACbC,EAAWpwD,EAAEtT,OAEjB,IAAK0jE,GAAYH,EAAYC,EAAWlwD,EAAEmwD,IACxC,MAAO,CAAC,EAAG,GAEb,GAAIF,EAAYC,EAAWlwD,EAAEowD,EAAW,IACtC,MAAO,CAACA,EAAU,GAGpB,KAAOD,EAAaC,GAAU,CAC5B,IAAIC,EAAcl5D,KAAKsmB,MAAM0yC,GAAcC,EAAWD,GAAc,GAChEG,EAAYJ,EAAWlwD,EAAEqwD,IAE7B,GAAIJ,EAAYK,EACdF,EAAWC,MACN,MAAIJ,EAAYK,GAGrB,MAAO,CAACD,EAAa,GAFrBF,EAAaE,EAAc,GAM/B,MAAO,CAACF,EAAY,G,kBC5SpB,WAAY9yB,GACVtrC,KAAKsjD,UAAYhY,EAASgY,UAC1BtjD,KAAKw+D,kBAAoBlzB,EAASkzB,mBAAqB,KAK3D,OAFE,YAAA9/C,QAAA,aAEF,E,YAmBgB+/C,GAAyBnb,EAA+BvzB,GACtE,MAAO,CACLuzB,UAAS,EACTrjD,GAAI8vB,EAAM9vB,GACVy+D,eAAwC,MAAxB3uC,EAAM2uC,gBAAyB3uC,EAAM2uC,eACrDF,kBAAmBzuC,EAAMyuC,mBAAqB,M,SAIlCG,GAA2BrzB,G,MACzC,aACGA,EAASgY,UAAU1D,KAAMtU,EAC3B,E,IAIUszB,GAAqD,G,cC/BhE,WAAY3+D,EAAiBqD,GAC3BtD,KAAKulC,QAAU,IAAI6vB,GAoBvB,OAjBE,YAAA12C,QAAA,aAMA,YAAAmgD,mBAAA,SAAmBC,KAInB,YAAAC,qBAAA,SAAqBD,KAIrB,YAAAE,qBAAA,SAAqBF,KAGvB,E,GCrCaG,GAAS,GCMhBC,GAAqB,CACzBzrB,UAAW3jB,GACXxnB,SAAUwnB,GACVnX,OAAQW,QACRiN,SAAUlW,Q,SAeI8uD,GAAc7kC,GACxB,MAAqBmD,GAAYnD,EAAK4kC,IAApC5jC,EAAO,UAAEc,EAAK,QAEpB,MAAO,CACLqX,UAAWnY,EAAQmY,WAAa,KAChCnrC,SAAUgzB,EAAQhzB,UAAY,KAC9BqQ,OAA0B,MAAlB2iB,EAAQ3iB,QAAiB2iB,EAAQ3iB,OACzC4N,SAAU+U,EAAQ/U,SAClB64C,cAAehjC,GCnBnB,gC,+CAuDA,OAvDoC,iBAClC,YAAA9d,OAAA,sBACM9b,EAAWxC,KAAKxB,MAAM6gE,aAAa1hE,KAAI,SAAC2hE,GAAgB,SAAKC,kBAAkBD,MAEnF,OAAOt0D,EAAa,0BAAC,MAAO,CAAEzN,UAAW,qBAAyBiF,KAGpE,YAAA+8D,kBAAA,SAAkBD,GAMhB,IALM,IAAA9gE,EAAUwB,KAAL,MACL83C,EAAU93C,KAAKomB,QAAV,MACP5jB,EAAoB,GACpBg9D,GAAgB,EAED,MAAAF,EAAA,eAAa,CAA3B,IAAIG,EAAM,KACPviB,EAAoDuiB,EAA1C,WAAEnQ,EAAwCmQ,EAA7B,YAAEvtB,EAA2ButB,EAAjB,WAAEjQ,EAAeiQ,EAAL,WAErD,GAAmB,UAAfviB,EACFsiB,GAAgB,EAChBh9D,EAAS3G,KACP,QAAI0B,UAAU,oBAAoBiB,EAAMs9B,YAErC,CACL,IAAI4jC,EAAYlQ,EAAa,CAAE,aAActS,GAAe,GAExDyiB,EAAgB,CAAC,MAAMziB,EAAU,UAAWpF,EAAMC,SAAS,WAC3DmF,IAAe1+C,EAAMohE,cACvBD,EAAc9jE,KAAKi8C,EAAMC,SAAS,iBAGpC,IAAI13B,GACA7hB,EAAMqhE,gBAAiC,UAAf3iB,IACxB1+C,EAAMshE,eAAgC,SAAf5iB,IACvB1+C,EAAMuhE,eAAgC,SAAf7iB,EAE3B16C,EAAS3G,KACP,wBACE4jB,SAAUY,EACV9iB,UAAWoiE,EAAczhE,KAAK,KAC9B8hE,QAAS1Q,EACT9xD,KAAK,UACDkiE,GAEHxtB,IAAesd,EAAa,UAAMjyD,UAAWiyD,IAAiB,OAMvE,GAAIhtD,EAAS7H,OAAS,EAAG,CACvB,IAAIslE,EAAkBT,GAAiB1nB,EAAMC,SAAS,gBAAmB,GAEzE,OAAO/sC,EAAa,0BAAC,MAAO,CAAEzN,UAAW0iE,IAAqBz9D,IAEhE,OAAOA,EAAS,IAEpB,EAvDA,CAAoC,ICNpC,4B,+CAoDA,OApD6B,iBAC3B,YAAA8b,OAAA,WACM,IAEA4hD,EACAC,EAHA,EAA4BngE,KAAKxB,MAA/B4hE,EAAK,QAAEC,EAAc,iBACvBC,GAAW,EAGXC,EAAgBH,EAAMv5D,OAsB1B,OApBIu5D,EAAM99D,MACRg+D,GAAW,EACXJ,EAAeE,EAAM99D,MAErB49D,EAAeE,EAAMxqD,MAGnBwqD,EAAMz5D,OACR25D,GAAW,EACXH,EAAaC,EAAMz5D,OAEnBw5D,EAAaC,EAAMttD,IAUnB,SAAKvV,UAPU,CACf8iE,GAAkB,GAClB,aACAC,EAAW,iBAAmB,IAIHpiE,KAAK,MAC7B8B,KAAKwgE,cAAc,QAASN,GAAgB,IAC5ClgE,KAAKwgE,cAAc,SAAUD,GAAiB,IAC9CvgE,KAAKwgE,cAAc,MAAOL,GAAc,MAK/C,YAAAK,cAAA,SAAc1iE,EAAauhE,GACnB,IAAA7gE,EAAUwB,KAAL,MAEX,OACE,EAAC,GAAc,CACblC,IAAKA,EACLuhE,aAAcA,EACdvjC,MAAOt9B,EAAMs9B,MACb8jC,aAAcphE,EAAMohE,aACpBC,eAAgBrhE,EAAMqhE,eACtBC,cAAethE,EAAMshE,cACrBC,cAAevhE,EAAMuhE,iBAI7B,EApDA,CAA6B,ICQ7B,0E,OAGE,EAAA3iD,MAA4B,CAC1BqjD,eAAgB,MAkDlB,EAAAC,SAAW,SAACzgE,GACV,EAAKA,GAAKA,EACV0/C,GAAO,EAAKnhD,MAAM2lD,MAAOlkD,GACzB,EAAK0gE,wBAGP,EAAAC,aAAe,WACb,EAAKD,wB,EAWT,OAxEmC,iBAOjC,YAAAriD,OAAA,WACM,IAAE9f,EAAiBwB,KAAZ,MAAEod,EAAUpd,KAAL,MACZ6gE,EAAgBriE,EAAL,YAEbvB,EAAa,CACf,kBACC4jE,GAAeriE,EAAMsiE,QAAUtiE,EAAM8C,OAClC,yBACA,2BAEFA,EAAsB,GACtBoC,EAA6B,GAgBjC,OAdIm9D,EAC2B,OAAzBzjD,EAAMqjD,eACRn/D,EAAS8b,EAAMqjD,eAAiBI,EAMhCn9D,EAAoB,EAAIm9D,EAAe,IAAG,IAG5Cv/D,EAAS9C,EAAM8C,QAAU,GAIzB,SACEwZ,IAAK9a,KAAK0gE,SACVV,QAASxhE,EAAMwhE,QACfziE,UAAWN,EAAWiB,KAAK,KAC3BkC,MAAO,CAAEkB,OAAM,EAAEoC,cAAa,IAE7BlF,EAAMgE,WAKb,YAAAyiD,kBAAA,WACEjlD,KAAKomB,QAAQ04B,iBAAiB9+C,KAAK4gE,eAGrC,YAAAxb,qBAAA,WACEplD,KAAKomB,QAAQ24B,oBAAoB/+C,KAAK4gE,eAaxC,YAAAD,qBAAA,WAEI3gE,KAAKC,IACLD,KAAKxB,MAAMqiE,aAEX7gE,KAAKwd,SAAS,CAAEijD,eAAgBzgE,KAAKC,GAAGE,eAG9C,EAxEA,CAAmC,ICDnC,eACE,WAAYmrC,GAAZ,MACE,YAAMA,IAAS,K,OAUjB,EAAAy1B,eAAiB,SAACp5C,EAAWq5C,GACrB,IAAA1d,EAAc,EAAL,UACTl9B,EAAYk9B,EAAL,QACTniB,EAAME,GAAS2/B,GAEnB,GACE7/B,GACAmiB,EAAUnD,iBAAiBx4B,EAAGppB,QAC9B,CAGA,IAAI0iE,EAAkBj6C,EAAeW,EAAGppB,OAAuB,wBAC3DsoB,EAAMo6C,EAAmBA,EAAgBz9D,cAAc,WAAmB09D,KAAO,GAErF96C,EAAQmf,QAAQC,QAAQ,aAAc,CACpCvlC,GAAI+gE,EACJ3sD,MAAO,IAAI,GACTivC,EAAUl9B,QACV+a,EAAIc,WAAWjT,IACfmS,EAAIc,WAAW7jC,UAEjBunC,QAAShe,EACTke,KAAMzf,EAAQ0f,UAGZjf,IAAQc,EAAGw5C,mBACbvgE,OAAOwgE,SAASF,KAAOr6C,KAlC3B,EAAKnI,QAAUuJ,EACbqjB,EAASrrC,GACT,QACA,YACA,EAAK8gE,gB,EAkCX,OA1CmC,iBA0CnC,EA1CA,CAAmCM,ICAnC,eAKE,WAAY/1B,GAAZ,MACE,YAAMA,IAAS,K,OAejB,EAAAg2B,oBAAsB,SAACrhE,GACjBA,IAAO,EAAKshE,cACd,EAAKC,eAAe,KAAM,EAAKD,eAInC,EAAAE,eAAiB,SAAC95C,EAAWq5C,GACvB3/B,GAAS2/B,KACX,EAAKO,aAAeP,EACpB,EAAKU,aAAa,kBAAmB/5C,EAAIq5C,KAI7C,EAAAQ,eAAiB,SAAC75C,EAAkBq5C,GAC9B,EAAKO,eACP,EAAKA,aAAe,KACpB,EAAKG,aAAa,kBAAmB/5C,EAAIq5C,KA7B3C,EAAKW,qB,SnGeP73D,EACAxG,EACA8b,EACAC,GAEA,IAAIuiD,EAEJ,OAAO35C,EAAiBne,EAAW,YAAaxG,GAAU,SAACu+D,EAAa75C,GAClEA,IAAiB45C,IACnBA,EAAsB55C,EACtB5I,EAAayiD,EAAa75C,GAS1BA,EAAaxa,iBAAiB,cAPP,SAAnB,EAAoBs0D,GACtBF,EAAsB,KACtBviD,EAAayiD,EAAc95C,GAC3BA,EAAava,oBAAoB,aAAc,UmG9BvBs0D,CAC1Bz2B,EAASrrC,GACT,YACA,EAAKwhE,eACL,EAAKD,gB,EA+CX,OA3DmC,iBAgBjC,YAAA9iD,QAAA,WACE1e,KAAK2hE,wBAwBP,YAAAD,aAAA,SAAaM,EAAqDr6C,EAAkBq5C,GAC5E,IAAA1d,EAActjD,KAAL,UACTomB,EAAYk9B,EAAL,QACTniB,EAAME,GAAS2/B,GAEdr5C,IAAM27B,EAAUnD,iBAAiBx4B,EAAGppB,SACvC6nB,EAAQmf,QAAQC,QAAQw8B,EAAc,CACpC/hE,GAAI+gE,EACJ3sD,MAAO,IAAI,GACT+R,EACA+a,EAAIc,WAAWjT,IACfmS,EAAIc,WAAW7jC,UAEjBunC,QAAShe,EACTke,KAAMzf,EAAQ0f,WAItB,EA3DA,CAAmCu7B,I,eCiBnC,2D,OACU,EAAA7iB,iBAAmB1rB,GAAQ0rB,IAC3B,EAAAyjB,0BAA4BnvC,GAAQmvC,IACpC,EAAAC,kBAAoBpvC,GAAQovC,IAC5B,EAAAC,mBAAqBp6C,EAAuB,kBAAmB,EAAKq6C,oBAAoBroD,KAAK,IAC7F,EAAAsoD,UAAYr8C,IACZ,EAAAs8C,UAAYt8C,IACZ,EAAAu8C,kBAA+D,GA0LvE,EAAA3jB,6BAA+B,SAAC0E,EAA+Bkf,GAC7D,IAAIl3B,EAAWmzB,GAAyBnb,EAAWkf,GAQ/CC,EAP2C,CAC7C,GACA,IAEgE1kE,OAChE,EAAKS,MAAMqwB,YAAYsyB,uBAEaxjD,KAAI,SAAC+kE,GAAwB,WAAIA,EAAoBp3B,MAE3F,EAAKi3B,kBAAkBjf,EAAU1D,KAAO6iB,EACxC7D,GAAyBtb,EAAU1D,KAAOtU,GAG5C,EAAAuT,+BAAiC,SAACyE,GAChC,IAAqB,YAAKif,kBAAkBjf,EAAU1D,KAAjC,eAAuC,CAA3C,KACNlhC,iBAGJ,EAAK6jD,kBAAkBjf,EAAU1D,YACjCgf,GAAyBtb,EAAU1D,MAM5C,EAAA+iB,aAAe,IAAI5O,IAAc,WAC/B,EAAKv1D,MAAM+mC,QAAQC,QAAQ,WAAW,GACtC,EAAKhnC,MAAM+mC,QAAQC,QAAQ,eAAgB,CAAEK,KAAM,EAAKrnC,MAAMsnC,aAGhE,EAAA88B,mBAAqB,SAACj7C,GACd,IAAArW,EAAY,EAAK9S,MAAV,QAGX8S,EAAQsxD,oBACRj7C,EAAGppB,SAAWqC,QAEd,EAAK+hE,aAAa1kB,QAAQ3sC,EAAQuxD,oB,EAGxC,OA3OqC,iBAanC,YAAAvkD,OAAA,WACQ,IAcFwkD,EAdEtkE,EAAUwB,KAAL,MACLmqC,EAA2B3rC,EAAd,cAAE8S,EAAY9S,EAAL,QAExBukE,EAAe/iE,KAAKkiE,kBACtB1jE,EAAMigD,SACNjgD,EAAM4oC,YACN5oC,EAAMmgD,qBACNngD,EAAMksC,YACNhC,GAAOlqC,EAAM8S,QAAQw5B,IAAKtsC,EAAMowB,SAChCpwB,EAAM2oC,WAGJ67B,GAAY,EACZC,EAA8B,GAG9BzkE,EAAM0kE,cAAgB1kE,EAAM2kE,SAC9BF,EAAa,GACc,MAAlB3xD,EAAQhQ,OACjB0hE,GAAY,EACsB,MAAzB1xD,EAAQ8xD,cACjBH,EAAa3xD,EAAQ8xD,cAErBN,EAAkB19D,KAAKC,IAAIiM,EAAQuvD,YAAa,IAGlD,IAAIwC,EAAcrjE,KAAKw+C,iBACrBhgD,EAAMigD,SACNjgD,EAAMsnC,QACNtnC,EAAM8S,QACN9S,EAAMmgD,qBACNngD,EAAMowB,QACNpwB,EAAMs5C,MACNt5C,EAAMqwB,YACNrwB,EAAM8nB,SACN9nB,EAAM0oC,eACN1oC,EAAM+mC,QACN/mC,EAAMunC,YACN/lC,KAAK4+C,6BACL5+C,KAAK6+C,gCAGP,OACE,EAACN,GAAgB+kB,SAAQ,CAACxnE,MAAOunE,GAC9Bl5B,EAAcykB,eACb,EAAC,GAAO,aACN9zC,IAAK9a,KAAKqiE,UACVhC,eAAe,oBACfD,MAAOj2B,EAAcykB,eACjBmU,IAGR,EAAC,GAAa,CACZjC,OAAQkC,EACR1hE,OAAQ2hE,EACRpC,YAAaiC,EACb9C,QAAShgE,KAAKmiE,oBAEbniE,KAAKujE,WAAW/kE,GAChBwB,KAAKwjE,sBAEPr5B,EAAc2kB,eACb,EAAC,GAAO,aACNh0C,IAAK9a,KAAKsiE,UACVjC,eAAe,oBACfD,MAAOj2B,EAAc2kB,eACjBiU,MAOd,YAAA9d,kBAAA,WACQ,IAAAzmD,EAAUwB,KAAL,MAEXA,KAAKohD,qBAAuB5iD,EAAMqwB,YAAYuyB,qBAC3CzjD,KAAI,SAAC8lE,GAA6B,WAAIA,EAAyBjlE,MAElEoC,OAAO4M,iBAAiB,SAAUxN,KAAK4iE,oBAEjC,IAAA9gB,EAAoBtjD,EAAMqwB,YAAX,gBACrB,IAAK,IAAIrH,KAAYs6B,EACnBA,EAAgBt6B,GAAUhpB,EAAMgpB,GAAWhpB,IAI/C,YAAA2mD,mBAAA,SAAmB3hC,GACX,IAAAhlB,EAAUwB,KAAL,MAEL8hD,EAAoBtjD,EAAMqwB,YAAX,gBACrB,IAAK,IAAIrH,KAAYs6B,EACftjD,EAAMgpB,KAAchE,EAAUgE,IAChCs6B,EAAgBt6B,GAAUhpB,EAAMgpB,GAAWhpB,IAKjD,YAAA4mD,qBAAA,WACExkD,OAAO6M,oBAAoB,SAAUzN,KAAK4iE,oBAC1C5iE,KAAK2iE,aAAa9qD,QAElB,IAAwB,UAAA7X,KAAKohD,qBAAL,eAA2B,CAA/B,KACN1iC,UAGd1e,KAAKxB,MAAM+mC,QAAQC,QAAQ,aAG7B,YAAA48B,oBAAA,SAAoBz6C,EAAc+7C,GAC5B,MAAoC1jE,KAAKxB,MAAvCowB,EAAO,UAAEtd,EAAO,UAAEy0B,EAAW,cAE/B49B,EAAsBD,EAAS9jD,aAAa,gBAChD+jD,EAAiBA,EAAiB1rB,KAAKxb,MAAMknC,GAAkB,GAE/D,IAAI75B,EAAalb,EAAQia,aAAa86B,EAAe73C,MACjD6d,EAAWg6B,EAAenmE,KAE1BomE,EACW,QAAbj6B,EAAqBr4B,EAAQuyD,gBACd,SAAbl6B,EAAsBr4B,EAAQwyD,iBAAmB,KAEzB,oBAAjBF,EACTA,EAAaloE,KAAKqqC,EAAanX,EAAQkW,OAAOgF,GAAaniB,IAE/B,kBAAjBi8C,IACTj6B,EAAWi6B,GAGb79B,EAAYgE,OAAOD,EAAYH,KAInC,YAAA65B,mBAAA,WACQ,IAAAhlE,EAAUwB,KAAL,MAEPwC,EAAWhE,EAAMqwB,YAAYoyB,qBAAqBtjD,KACpD,SAAC6lE,GAAuB,OAAAA,EAAmBhlE,MAG7C,OAAOwM,EAAa,0BAACib,EAAU,IAAOzjB,KAGxC,YAAA+gE,WAAA,SAAW/kE,GAmBT,IAlBM,IAAAqwB,EAAgBrwB,EAAL,YACXigD,EAAajgD,EAAL,SAEVkoD,EAAuB,CACzBtf,YAAa5oC,EAAM4oC,YACnBqP,cAAej4C,EAAMi4C,cACrB/nB,WAAYlwB,EAAM43D,qBAClBn2B,aAAczhC,EAAMyhC,aACpByL,cAAeltC,EAAMktC,cACrBgL,eAAgBl4C,EAAMk4C,eACtBR,UAAW13C,EAAM03C,UACjBE,YAAa53C,EAAM43C,YACnB8sB,aAAc1kE,EAAM0kE,aACpBC,SAAU3kE,EAAM2kE,UAKM,MAFLnjE,KAAKiiE,0BAA0BpzC,EAAYiyB,uBAEtC,eAAc,CAAjC,IAAIxe,EAAW,KAClB,YACEokB,EACApkB,EAAY2D,UAAUygB,EAAWloD,IAIrC,IAAIulE,EAAgBtlB,EAAS6E,UAE7B,OACE,EAACygB,EAAa,eAAKrd,KAiDzB,E,CA3OqC,IA6OrC,SAASwb,GACPzjB,EACArX,EACAuX,EACAjU,EACAI,EACAhP,GAGA,IAAIkoC,EAAYrlB,EAAqB+J,MAAM5d,OAAKrlC,GAAW,GACvDw+D,EAAWtlB,EAAqByJ,UAAUhhB,EAAasD,GAAa,GACpEw5B,EAAWvlB,EAAqBgK,UAAUvhB,EAAasD,GAAa,GAExE,MAAO,CACL5O,MAAK,EACL8jC,aAAcnhB,EAASjhD,KACvBqiE,eAAgBmE,EAAU/a,UAAYlpB,GAAoBqH,EAAYE,aAAcwD,GACpFg1B,cAAemE,EAAShb,QACxB8W,cAAemE,EAASjb,SAO5B,SAASgZ,GAA0BkC,GACjC,OAAOA,EAAWxmE,KAAI,SAACymE,GAAa,WAAIA,K,mBCtR1C,2D,OACE,EAAAhnD,MAAQ,CACN+lD,UAAU,GAqCZ,EAAAkB,kBAAoB,WAClB,EAAK7mD,SAAS,CAAE2lD,UAAU,KAG5B,EAAAmB,iBAAmB,WACjB,EAAK9mD,SAAS,CAAE2lD,UAAU,K,EAE9B,OA9CkC,iBAKhC,YAAA7kD,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MACLsR,EAAY9S,EAAL,QACP2kE,EAAanjE,KAAKod,MAAV,SAEV8lD,EAAeC,GAA+B,SAAnB7xD,EAAQhQ,QAA+C,SAA1BgQ,EAAQ8xD,cAChE9hE,EAAW4hE,GAAkC,MAAlB5xD,EAAQhQ,OAAmC,GAAjBgQ,EAAQhQ,OAE7DrE,EAAuB,CACzB,KACAkmE,EAAW,iBAAmB,kBAC9B,gBAAgB7xD,EAAQ0lB,UACxBx4B,EAAMs5C,MAAMC,SAAS,SAOvB,OAJKrD,MACHz3C,EAAWpB,KAAK,kBAGX2C,EAAMgE,SAASvF,EAAYqE,EAAQ4hE,EAAcC,IAG1D,YAAAle,kBAAA,WACQ,IAAA1f,EAAYvlC,KAAKxB,MAAV,QACb+mC,EAAQhhB,GAAG,eAAgBvkB,KAAKqkE,mBAChC9+B,EAAQhhB,GAAG,cAAevkB,KAAKskE,mBAGjC,YAAAlf,qBAAA,WACQ,IAAA7f,EAAYvlC,KAAKxB,MAAV,QACb+mC,EAAQ9gB,IAAI,eAAgBzkB,KAAKqkE,mBACjC9+B,EAAQ9gB,IAAI,cAAezkB,KAAKskE,mBAUpC,E,CA9CkC,ICjB3B,IAAMC,GAAa,qB,SAEVC,GAAYpgB,GAC1B,OAAOA,EAAUp3C,K,mBCqBnB,a,+CA6DA,OA7DmC,iBACjC,YAAAsR,OAAA,WACM,MAAuCte,KAAKomB,QAA1CwI,EAAO,UAAEtd,EAAO,UAAEwmC,EAAK,QAAEhS,EAAO,UAChCtnC,EAAUwB,KAAL,MACL8rB,EAAsBttB,EAAlB,KAAE4oC,EAAgB5oC,EAAL,YACnBimE,EAAU9sB,GAAY7rB,EAAMttB,EAAMklC,WAAY,KAAM0D,GAEpDnqC,EAAa,CAACsnE,IAAYxmE,OAC5B85C,GAAiB4sB,EAAS3sB,IAExB9qC,EAAO4hB,EAAQ9H,OAAOgF,EAAMttB,EAAMkmE,iBAGlCC,EAAgBrzD,EAAQszD,WAAaH,EAAQpkD,YAAc7hB,EAAMqmE,OAAS,EAC1E,CAAE,eAAgB7sB,GAAiBlsB,GAAOg5C,SAAU,GACpD,GAEA1gB,EAAS,qCACXt4B,KAAM8C,EAAQkW,OAAOhZ,GACrB+Z,KAAMC,GACHtnC,EAAMumE,gBAAc,CACvB/3D,KAAI,IACDy3D,GAGL,OACE,EAAC,GAAU,CACTrgB,UAAWA,EACXnnD,WAAYqU,EAAQ0zD,oBACpBhmD,QAAS1N,EAAQ2zD,iBACjBzgB,eAAgBggB,GAChBngB,SAAU/yC,EAAQ4zD,kBAClB5gB,YAAahzC,EAAQ6zD,uBAEpB,SAAClhB,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAC1D,oBACE7pC,IAAKmpC,EACL1mD,UAAWN,EAAWc,OAAOooD,GAAkBjoD,KAAK,KAAI,YAC5CumE,EAAQpkD,gBAAqC5a,EAAxB6sB,GAAgBxG,GACjDs5C,QAAS5mE,EAAM4mE,SACX5mE,EAAM6mE,gBAEV,SAAK9nE,UAAU,6BACXknE,EAAQpkD,YACR,mBACEvF,IAAK4pC,EACLnnD,UAAW,CACT,6BACAiB,EAAM8mE,SAAW,YAAc,IAC/BpnE,KAAK,MACHymE,GAEHhgB,SASnB,E,CA7DmC,I,eCNnC,a,+CA0DA,OA1DkC,iBAChC,YAAArmC,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MACP,EAAuCA,KAAKomB,QAA1CwI,EAAO,UAAEkpB,EAAK,QAAEhS,EAAO,UAAEx0B,EAAO,UAClCwa,EAAO1B,EAAQ,IAAI3hB,KAAK,QAAYjK,EAAM4sB,KAC1Cm6C,EAAqB,CACvBn6C,IAAK5sB,EAAM4sB,IACX/K,YAAY,EACZyjB,UAAU,EACVD,QAAQ,EACRE,SAAS,EACT6T,SAAS,GAEP36C,EAAa,CAACsnE,IAAYxmE,OAC5B85C,GAAiB0tB,EAAUztB,GAC3Bt5C,EAAMgnE,iBAAmB,IAEvBx4D,EAAO4hB,EAAQ9H,OAAOgF,EAAMttB,EAAMkmE,iBAClCtgB,EAAS,iDACXt4B,KAAI,GACDy5C,GAAQ,CACX1/B,KAAMC,IACHtnC,EAAMumE,gBAAc,CACvB/3D,KAAI,IAGN,OACE,EAAC,GAAU,CACTo3C,UAAWA,EACXnnD,WAAYqU,EAAQ0zD,oBACpBhmD,QAAS1N,EAAQ2zD,iBACjBzgB,eAAgBggB,GAChBngB,SAAU/yC,EAAQ4zD,kBAClB5gB,YAAahzC,EAAQ6zD,uBAEpB,SAAClhB,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAC1D,oBACE7pC,IAAKmpC,EACL1mD,UAAWN,EAAWc,OAAOooD,GAAkBjoD,KAAK,KACpDknE,QAAS5mE,EAAM4mE,SACX5mE,EAAM6mE,gBAEV,SAAK9nE,UAAU,4BACb,OACEA,UAAW,CACT,6BACAiB,EAAM8mE,SAAW,YAAc,IAC/BpnE,KAAK,KACP4c,IAAK4pC,GAEJC,SAQjB,E,CA1DkC,I,eCIhC,WAAYnmD,EAAsB4nB,GAAlC,MACE,YAAM5nB,EAAO4nB,IAAQ,K,OAErB,EAAKq/C,eAAiB/8B,GAAOtiB,EAAQ9U,QAAQw5B,IAAK1kB,EAAQwI,SAC1D,EAAK82C,qBAAsB,IAAIj9D,MAAO8Q,UAEtC,EAAK6D,MAAQ,EAAKuoD,gBAAgBC,a,EAwDtC,OArE8B,iBAgB5B,YAAAtnD,OAAA,WACM,IAAE9f,EAAiBwB,KAAZ,MAAEod,EAAUpd,KAAL,MAClB,OAAOxB,EAAMgE,SAAS4a,EAAMumB,QAASvmB,EAAMsmB,aAG7C,YAAAuhB,kBAAA,WACEjlD,KAAK6I,cAGP,YAAAs8C,mBAAA,SAAmB3hC,GACbA,EAAUwM,OAAShwB,KAAKxB,MAAMwxB,OAChChwB,KAAK+V,eACL/V,KAAK6I,eAIT,YAAAu8C,qBAAA,WACEplD,KAAK+V,gBAGC,YAAA4vD,cAAR,WACM,IAAEnnE,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAChB6lE,EAAex7C,EAAMrqB,KAAKylE,gBAAgB,IAAIh9D,MAAO8Q,UAAYvZ,KAAK0lE,qBACtEI,EAAmB1/C,EAAQwI,QAAQiiB,QAAQg1B,EAAcrnE,EAAMwxB,MAC/D+1C,EAAgB3/C,EAAQwI,QAAQ5rB,IAAI8iE,EAAkBh2C,GAAe,EAAGtxB,EAAMwxB,OAC9Eg2C,EAASD,EAAcxsD,UAAYssD,EAAatsD,UAMpD,OAFAysD,EAAS5gE,KAAKs6B,IAAI,MAAqBsmC,GAEhC,CACLJ,aAAc,CAAEjiC,QAASmiC,EAAkBpiC,WAAYuiC,GAAcH,IACrE3mB,UAAW,CAAExb,QAASoiC,EAAeriC,WAAYuiC,GAAcF,IAC/DC,OAAM,IAIF,YAAAn9D,WAAR,sBACM,EAAwB7I,KAAK2lE,gBAA3BxmB,EAAS,YAAE6mB,EAAM,SAEvBhmE,KAAKozD,UAAYvqD,YAAW,WAC1B,EAAK2U,SAAS2hC,GAAW,WACvB,EAAKt2C,kBAENm9D,IAGG,YAAAjwD,aAAR,WACM/V,KAAKozD,WACPr9C,aAAa/V,KAAKozD,YAjEf,EAAA1T,YAAmBnB,GAoE5B,E,CArE8BvjC,GAuE9B,SAASirD,GAAcn6C,GACrB,IAAIlW,EAAQiV,EAAWiB,GAGvB,MAAO,CAAElW,MAAK,EAAE9C,IAFNsX,EAAQxU,EAAO,I,mBCvE3B,2D,OACE,EAAAswD,yBAA2BpzC,GAAQozC,I,EAwCrC,OAzC+B,iBAG7B,YAAA5nD,OAAA,WACQ,IAAA8H,EAAYpmB,KAAL,QACT,EAA4DA,KAAKxB,MAA/D2nE,EAAK,QAAE/+B,EAAW,cAAEg/B,EAAoB,uBAAEC,EAAW,cAEvD3B,EAAkB1kE,KAAKkmE,yBACzB9/C,EAAQ9U,QAAQozD,gBAChB0B,EACAD,EAAMxrE,QAGR,OACE,EAAC,GAAQ,CAACq1B,KAAK,QACZ,SAAC2T,EAAqBD,GAA0B,OAC/C,YACG2iC,GAAeA,EAAY,OAC3BF,EAAMxoE,KAAI,SAACmuB,GAAS,OACnBs6C,EACE,EAAC,GAAa,CACZtoE,IAAKguB,EAAKsG,cACVtG,KAAMA,EACNsb,YAAaA,EACb1D,WAAYA,EACZmhC,OAAQsB,EAAMxrE,OACd+pE,gBAAiBA,IAGnB,EAAC,GAAY,CACX5mE,IAAKguB,EAAKF,YACVR,IAAKU,EAAKF,YACV84C,gBAAiBA,YASnC,E,CAzC+B,IA2C/B,SAASwB,GAAyBI,EAA+BF,EAAsBG,GACrF,OAAOD,G,SC5DmCF,EAA+BpoC,GAGzE,OACSvF,IADJ2tC,GAAwBpoC,EAAS,GACb,CAAEhK,QAAS,SAGhCgK,EAAS,EACY,CAAEhK,QAAS,QAASzD,MAAO,UAAWC,IAAK,UAAWoD,YAAY,GAGpE,CAAEI,QAAS,SDiDTwyC,CAA4BJ,EAAsBG,G,kBE/C3E,WAAY3zD,EAAkB+rC,GAO5B,IANA,IAAI7yB,EAAmBlZ,EAAMgD,MACvB9C,EAAQF,EAAL,IACL6zD,EAAoB,GACpBN,EAAsB,GACtBO,GAAY,EAET56C,EAAOhZ,GACR6rC,EAAqB2L,YAAYx+B,GACnC26C,EAAQ5qE,KAAK6qE,EAAW,KAExBA,GAAY,EACZD,EAAQ5qE,KAAK6qE,GACbP,EAAMtqE,KAAKiwB,IAEbA,EAAO1B,EAAQ0B,EAAM,GAGvB9rB,KAAKmmE,MAAQA,EACbnmE,KAAKymE,QAAUA,EACfzmE,KAAK2mE,IAAMR,EAAMxrE,OA4CrB,OAzCE,YAAAisE,WAAA,SAAWh0D,GACT,IAAIi0D,EAAa7mE,KAAK8mE,gBAAgBl0D,EAAMgD,OACxCmxD,EAAY/mE,KAAK8mE,gBAAgB18C,EAAQxX,EAAME,KAAM,IAErDk0D,EAAoB5hE,KAAKC,IAAI,EAAGwhE,GAChCI,EAAmB7hE,KAAKs6B,IAAI1/B,KAAK2mE,IAAM,EAAGI,GAM9C,OAHAC,EAAoB5hE,KAAK8hE,KAAKF,MAC9BC,EAAmB7hE,KAAKsmB,MAAMu7C,IAGrB,CACLJ,WAAYG,EACZD,UAAWE,EACXrmC,QAASimC,IAAeG,EACxBnmC,MAAOkmC,IAAcE,GAGlB,MAQD,YAAAH,gBAAR,SAAwBh7C,GAChB,IAAA26C,EAAYzmE,KAAL,QACTmnE,EAAY/hE,KAAKsmB,MAAMjB,EAASzqB,KAAKmmE,MAAM,GAAIr6C,IAEnD,OAAIq7C,EAAY,EACPV,EAAQ,GAAK,EAGlBU,GAAaV,EAAQ9rE,OAChB8rE,EAAQA,EAAQ9rE,OAAS,GAAK,EAGhC8rE,EAAQU,IAEnB,E,iBCnDE,WAAYC,EAA2BC,GAC/B,IACFC,EACAt3B,EACAu3B,EAHEpB,EAAUiB,EAAL,MAKX,GAAIC,EAAc,CAGhB,IADAr3B,EAAWm2B,EAAM,GAAGv6C,YACf07C,EAAa,EAAGA,EAAanB,EAAMxrE,QAClCwrE,EAAMmB,GAAY17C,cAAgBokB,EADQs3B,GAAc,GAK9DC,EAASniE,KAAK8hE,KAAKf,EAAMxrE,OAAS2sE,QAElCC,EAAS,EACTD,EAAanB,EAAMxrE,OAGrBqF,KAAKunE,OAASA,EACdvnE,KAAK6kE,OAASyC,EACdtnE,KAAKonE,UAAYA,EACjBpnE,KAAKwnE,MAAQxnE,KAAKynE,aAClBznE,KAAK0nE,YAAc1nE,KAAK2nE,mBAkE5B,OA/DU,YAAAF,WAAR,WAGE,IAFA,IAAIG,EAAO,GAEFC,EAAM,EAAGA,EAAM7nE,KAAKunE,OAAQM,GAAO,EAAG,CAG7C,IAFA,IAAIL,EAAQ,GAEHM,EAAM,EAAGA,EAAM9nE,KAAK6kE,OAAQiD,GAAO,EAC1CN,EAAM3rE,KACJmE,KAAK+nE,UAAUF,EAAKC,IAIxBF,EAAK/rE,KAAK2rE,GAGZ,OAAOI,GAGD,YAAAG,UAAR,SAAkBF,EAAKC,GACrB,IAAIh8C,EAAO9rB,KAAKonE,UAAUjB,MAAM0B,EAAM7nE,KAAK6kE,OAASiD,GACpD,MAAO,CACLhqE,IAAKguB,EAAKsG,cACVtG,KAAI,IAIA,YAAA67C,iBAAR,WAGE,IAFA,IAAIxB,EAAQ,GAEH2B,EAAM,EAAGA,EAAM9nE,KAAK6kE,OAAQiD,GAAO,EAC1C3B,EAAMtqE,KAAKmE,KAAKwnE,MAAM,GAAGM,GAAKh8C,MAGhC,OAAOq6C,GAGT,YAAAS,WAAA,SAAWh0D,GACH,IAAAiyD,EAAW7kE,KAAL,OACRgoE,EAAYhoE,KAAKonE,UAAUR,WAAWh0D,GACtC6uB,EAAsB,GAE1B,GAAIumC,EAIF,IAHM,IAAAnB,EAA0BmB,EAAhB,WAAEjB,EAAciB,EAAL,UACvB3L,EAAQwK,EAELxK,GAAS0K,GAAW,CACzB,IAAIc,EAAMziE,KAAKsmB,MAAM2wC,EAAQwI,GACzBoD,EAAY7iE,KAAKs6B,KAAKmoC,EAAM,GAAKhD,EAAQkC,EAAY,GAEzDtlC,EAAK5lC,KAAK,CACRgsE,IAAG,EACHK,SAAU7L,EAAQwI,EAClBsD,SAAUF,EAAY,GAAKpD,EAC3BjkC,QAASonC,EAAUpnC,SAAWy7B,IAAUwK,EACxChmC,MAAOmnC,EAAUnnC,OAAUonC,EAAY,IAAOlB,IAGhD1K,EAAQ4L,EAIZ,OAAOxmC,GAEX,E,iBCrFA,aACU,KAAA2mC,mBAAqBt1C,GAAQ9yB,KAAKqoE,qBAClC,KAAAC,mBAAqBx1C,GAAQ9yB,KAAKuoE,gBAClC,KAAAvoC,gBAAkBlN,GAAQ9yB,KAAKwoE,kBAC/B,KAAAC,eAAiB31C,GAAQ9yB,KAAK0oE,mBAC9B,KAAAC,iBAAmB71C,GAAQ9yB,KAAK0oE,mBAG9B,KAAAE,oBAAqB,EA2KjC,OAzKE,YAAAC,WAAA,SACErqE,EACA4oC,EACAlJ,EACA9X,G,IACA,wDAEM,IAAA6Z,EAAiBzhC,EAAL,aACdsqE,EAAY9oE,KAAKggC,gBAAe,MAApBhgC,KAAI,aAAiBxB,EAAMkwB,WAAYuR,EAAcmH,EAAalJ,GAAqB6qC,IAEvG,MAAO,CACLC,kBAAmBhpE,KAAKsoE,mBAAkB,MAAvBtoE,KAAI,aAAoBxB,EAAMktC,cAAezL,EAAc7Z,GAAY2iD,IAC1FE,iBAAkBjpE,KAAKooE,mBAAkB,MAAvBpoE,KAAI,aAAoBxB,EAAMi4C,cAAerP,EAAalJ,EAAkB9X,GAAY2iD,IAC1GG,YAAaJ,EAAU9nC,GACvBmoC,YAAaL,EAAU/nC,GACvBmV,UAAWl2C,KAAKyoE,eAAc,MAAnBzoE,KAAI,aAAgBxB,EAAM03C,UAAWjW,EAAcmH,EAAalJ,GAAqB6qC,IAChG3yB,YAAap2C,KAAK2oE,iBAAgB,MAArB3oE,KAAI,aAAkBxB,EAAM43C,YAAanW,EAAcmH,EAAalJ,GAAqB6qC,IACtGryB,eAAgBl4C,EAAMk4C,iBAI1B,YAAA0yB,aAAA,SACEt9C,EACA1F,G,IACA,wDAEA,OAAOpmB,KAAKuoE,eAAc,MAAnBvoE,KAAI,aACT,CAAE4S,MAAO,CAAEgD,MAAOkW,EAAMhZ,IAAKuX,EAAMyB,EAAM,IAAMmD,QAAQ,GACvD,GACA7I,GACG2iD,KAIC,YAAAV,oBAAR,SACE5xB,EACArP,EACAlJ,EACA9X,G,IACA,wDAEA,OAAKqwB,EAIEz2C,KAAKwoE,iBAAgB,MAArBxoE,KAAI,aACTyuB,GACEgoB,EACA4yB,GAAmBjiC,EAAa9tB,QAAQ4kB,IACxC9X,GAEF,GACAghB,EACAlJ,GACG6qC,IACHhoC,GAbO,IAgBH,YAAAynC,iBAAR,SACE95C,EACAuR,EACAmH,EACAlJ,G,IACA,wDAEA,GAAIxP,EAAY,CACd,IAAI46C,EAAWtpC,GACbtR,EACAuR,EACAopC,GAAmBjiC,EAAa9tB,QAAQ4kB,IACxCA,GAGF,MAAO,CACL6C,GAAI/gC,KAAKupE,iBAAiBD,EAASvoC,GAAIgoC,GACvC/nC,GAAIhhC,KAAKupE,iBAAiBD,EAAStoC,GAAI+nC,IAG3C,MAAO,CAAEhoC,GAAI,GAAIC,GAAI,KAGf,YAAA0nC,kBAAR,SACE1xB,EACA/W,EACAmH,EACAlJ,G,IACA,wDAEA,IAAK8Y,EACH,OAAO,KAGT,IAAIsyB,EAAWtpC,GACbgX,EAAYI,cACZnX,EACAopC,GAAmBjiC,EAAa9tB,QAAQ4kB,IACxCA,GAGF,MAAO,CACLuD,KAAMzhC,KAAKupE,iBAAiBD,EAAStoC,GAAI+nC,GACzCS,kBAAmBxyB,EAAYE,eAAepoB,UAC9CwoB,QAASN,EAAYM,UAIjB,YAAAixB,eAAR,SACEpjC,EACAlF,EACA7Z,G,IACA,wDAEA,IAAK+e,EACH,MAAO,GAMT,IAHA,IAAIlD,EAAaiD,GAAoBC,EAAUlF,EAAc7Z,GACzDqb,EAAOzhC,KAAK4mE,WAAU,MAAf5mE,KAAI,aAAYmlC,EAASvyB,OAAUm2D,IAE9B,MAAAtnC,EAAA,eAAM,CAAjB,IAAIN,EAAG,KACVA,EAAIc,WAAaA,EAGnB,OAAOR,GAMD,YAAA8nC,iBAAR,SACEE,EACAV,GAIA,IAFA,IAAItnC,EAAkB,GAEC,MAAAgoC,EAAA,eAAa,CAA/B,IAAIxnC,EAAU,KACjBR,EAAK5lC,KAAI,MAAT4lC,EAAazhC,KAAK0pE,gBAAgBznC,EAAY8mC,IAGhD,OAAOtnC,GAMD,YAAAioC,gBAAR,SACEznC,EACA8mC,GAEA,IAAI7pC,EAAY+C,EAAWrvB,MAGvB5S,KAAK4oE,oBAAgD,cAA1B3mC,EAAWvE,GAAGx1B,UAC3Cg3B,EAAY,CACVtpB,MAAOspB,EAAUtpB,MACjB9C,IAAKsX,EAAQ8U,EAAUtpB,MAAO,KAMlC,IAFA,IAAI6rB,EAAOzhC,KAAK4mE,WAAU,MAAf5mE,KAAI,aAAYk/B,GAAc6pC,IAEzB,MAAAtnC,EAAA,eAAM,CAAjB,IAAIN,EAAG,KACVA,EAAIc,WAAaA,EACjBd,EAAIP,QAAUqB,EAAWrB,SAAWO,EAAIP,QACxCO,EAAIN,MAAQoB,EAAWpB,OAASM,EAAIN,MAGtC,OAAOY,GAEX,E,GAOA,SAAS4nC,GAAmBjiC,EAA0BuiC,GACpD,IAAI/2D,EAAQw0B,EAAYC,YAExB,OAAIsiC,EACK/2D,EAGF,CACLgD,MAAOyU,EAAMzX,EAAMgD,MAAOwxB,EAAYoiB,YAAYp5B,cAClDtd,IAAKuX,EAAMzX,EAAME,IAAKs0B,EAAYqiB,YAAYr5B,aAAe,Q,SCnNjDw5C,GACd5yB,EACA5P,EACAhhB,GAEM,IAAA0I,EAAckoB,EAAYI,cAAjB,UACf,IAAK,IAAIlqB,KAAc4B,EACrB,IAAK8Q,GAAmBwH,EAAYyhB,WAAY/5B,EAAU5B,GAAYta,OACpE,OAAO,EAGX,OAAOi3D,GAAgB,CAAE3zB,UAAWc,GAAe5wB,G,SAGrC0jD,GACdp+B,EACAtE,EACAhhB,GAEA,QAAKwZ,GAAmBwH,EAAYyhB,WAAYnd,EAAc94B,QAGvDi3D,GAAgB,CAAEn+B,cAAa,GAAItlB,GAG5C,SAASyjD,GAAgBrrD,EAAU4H,GACjC,IAAI2jD,EAAgB3jD,EAAQ8gB,iBAExB1oC,EAAQ,OAAH,IAAG,CAAH,CACPi4C,cAAeszB,EAActzB,cAC7B/K,cAAe,GACfhd,WAAYq7C,EAAcr7C,WAC1BuR,aAAc8pC,EAAc9pC,aAC5ByW,eAAgB,GAChBR,UAAW,KACXE,YAAa,MACV53B,GAGL,OAAQ4H,EAAQyI,YAAYkyB,cAAgBA,IAAcviD,EAAO4nB,G,SAGnD26B,GAAa3jC,EAAwBgJ,EAA0B4jD,EAAmBC,GAChG,YAD6E,IAAAD,MAAA,MACzE5sD,EAAM84B,YAcZ,SAAiC94B,EAAwBgJ,EAA0B4jD,EAAmBC,GACpG,IAAIrE,EAAex/C,EAAQ8gB,iBACvB8P,EAAc55B,EAAM84B,UAEpBg0B,EAAoBlzB,EAAYI,cAChC+yB,EAAcD,EAAkBx4D,KAChC04D,EAAmBF,EAAkBp7C,UACrCu7C,EAAiB7pC,GACnB2pC,EACAnzB,EAAYM,QACVl6B,EAAM6iB,aACN,CAAE,GAAI2lC,EAAavP,kBAGnB4T,IACFI,EAAiBz8C,GAAQy8C,EAAgBJ,IAI3C,IAAIK,G/C0F2B57C,E+C1FQtR,EAAMsR,W/C0FU67C,E+C1FEvzB,EAAYE,eAAepoB,U/C2F7E,CACLpd,KAAMgd,EAAWhd,KACjBod,UAAWrB,GAAWiB,EAAWI,WAAW,SAAC1wB,GAA4B,OAACmsE,EAASnsE,EAAS8uB,iB+C3F1Fs9C,EAAYF,EAAgB54D,KAC5B+4D,EAAiBH,EAAgBx7C,UACjC47C,EAAelqC,GAAgBgqC,EAAWptD,EAAM6iB,c,I/CsFrBvR,EAAwB67C,E+CpFvD,IAAK,IAAII,KAAqBP,EAAkB,CAC9C,IAAIQ,EAAkBR,EAAiBO,GACnCE,EAAeD,EAAgBh4D,MAC/Bk4D,EAAgBT,EAAeO,EAAgB79C,OAC/Cg+C,EAAaZ,EAAYS,EAAgB79C,OAG7C,IAAKi+C,GAAmBF,EAAc3vC,YAAa0vC,EAAcP,EAAiBltD,EAAMq5B,cAAerwB,GACrG,OAAO,EAKH,IAAA0zC,EAAiB1zC,EAAQ9U,QAAb,aACd25D,EAA2C,oBAAjBnR,EAA8BA,EAAe,KAE3E,IAAK,IAAIoR,KAAmBT,EAAgB,CAC1C,IAAIU,EAAgBV,EAAeS,GAGnC,GAAIvrC,GAAgBkrC,EAAcM,EAAcv4D,OAAQ,CAItD,IAAqB,IAHF83D,EAAaS,EAAcp+C,OAAO8N,SAGvBmc,EAAYM,QACxC,OAAO,EAGT,IAA8B,IAA1BwzB,EAAcjwC,QAChB,OAAO,EAGT,GAAIowC,IAAqBA,EACvB,IAAI,GAAS7kD,EAASokD,EAAUW,EAAcp+C,OAAQo+C,GACtD,IAAI,GAAS/kD,EAAS2kD,EAAYH,IAElC,OAAO,GASb,IAFA,IAAIQ,EAAqBxF,EAAal3C,WAEb,MAAAo8C,EAAc1vC,OAAd,eAAsB,CAA1C,IAAIiwC,EAAY,KACfC,EAAe,2BACdtB,GAAY,CACfp3D,MAAOg4D,EAAgBh4D,MACvBqc,OAAQ87C,EAAW97C,SAGjBs8C,EAAUH,EAAmB15D,KAAKq5D,EAAWh+C,OAC7Cy+C,EAAeJ,EAAmBt8C,UAAU67C,GAC5Cp+B,OAAQ,EAQZ,GALEA,EADEg/B,EACS,IAAI,GAASnlD,EAASmlD,EAASC,GAE/B,IAAI,GAASplD,EAAS2kD,IAG9BM,EACH3lC,GAA4B4lC,EAAiBllD,GAC7CmmB,GAEA,OAAO,GAKb,OAAO,EA9GiBk/B,CAAwBruD,EAAOgJ,EAAS4jD,EAAcC,OAI1E7sD,EAAMsuB,gBAgHZ,SAAmCtuB,EAAwBgJ,EAA0B4jD,EAAmBC,GACtG,IAAIyB,EAAqBtuD,EAAMsR,WAC3Bi9C,EAAeD,EAAmBh6D,KAClCk6D,EAAoBF,EAAmB58C,UAEvCuW,EAAYjoB,EAAMsuB,cAClBmgC,EAAiBxmC,EAAUzyB,MACzByjD,EAAoBjwC,EAAQ8gB,iBAAb,gBAEjB+iC,IACF5T,EAAkB4T,EAAa5T,IAIjC,IAAK2U,GAAmB3U,EAAgBl7B,YAAa0wC,EAAgBH,EAAoBtuD,EAAMq5B,cAAerwB,GAC5G,OAAO,EAKH,IAAAi0C,EAAkBj0C,EAAQ9U,QAAb,cACfw6D,EAA6C,oBAAlBzR,EAA+BA,EAAgB,KAE9E,IAAK,IAAI0R,KAAsBH,EAAmB,CAChD,IAAII,EAAmBJ,EAAkBG,GAGzC,GAAIpsC,GAAgBksC,EAAgBG,EAAiBp5D,OAAQ,CAC3D,IAAgC,IAA5ByjD,EAAgBx7B,QAClB,OAAO,EAGT,GAAIixC,IAAsBA,EACxB,IAAI,GAAS1lD,EAASulD,EAAaK,EAAiBj/C,OAAQi/C,GAC5D,MAEA,OAAO,GAMb,IAA2B,UAAA3V,EAAgBj7B,OAAhB,eAAwB,CAGjD,KAAK6wC,EAHgB,MAInBvmC,GAHiB,OAAH,IAAG,CAAH,eAAQskC,GAAiB3kC,GAGGjf,GAC1C,MAEA,OAAO,EAIX,OAAO,EArKqB8lD,CAA0B9uD,EAAOgJ,EAAS4jD,EAAcC,IA2KtF,SAASe,GACP7vC,EACA0vC,EACAP,EACA6B,EACA/lD,GAEA,IAAuB,UAAA+U,EAAA,eAAa,CAClC,IAAKixC,GACHC,GAFe,KAEgBxB,EAAcP,EAAiB6B,EAAyB/lD,GACvFykD,GAEA,OAAO,EAIX,OAAO,EAGT,SAASwB,GACP1xC,EACAkwC,EACAP,EACA6B,EACA/lD,GAEA,MAAmB,kBAAfuU,EACK2xC,GACL79C,GAAgB09C,EAAyBtB,EAAczkD,IAIjC,kBAAfuU,EACF2xC,GACL3yC,GAAqB2wC,GAAiB,SAACh7C,GAAa,OAAAA,EAASyK,UAAYY,MAInD,kBAAfA,GAA2BA,EAC7B2xC,GACL79C,GAAgBkM,EAAYkwC,EAAczkD,IAIvC,GAIT,SAASkmD,GAAmB59C,GACpB,IAAAI,EAAcJ,EAAL,UACXsQ,EAAsB,GAE1B,IAAK,IAAI9R,KAAc4B,EACrBkQ,EAAOnjC,KAAKizB,EAAU5B,GAAYta,OAGpC,OAAOosB,EAIT,SAASotC,GAAsBG,EAA0BzsC,GACvD,IAAuB,UAAAysC,EAAA,eAAa,CAClC,GAAI3sC,GADa,KACkBE,GACjC,OAAO,EAIX,OAAO,EC5RT,IAAM0sC,GAAoB,qB,eAE1B,2D,OAsCE,EAAA9L,SAAW,SAACzgE,GACV,EAAKA,GAAKA,EACV0/C,GAAO,EAAKnhD,MAAM2lD,MAAOlkD,I,EAgE7B,OAxG8B,iBAG5B,YAAAqe,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MACL8gE,EAA6BtiE,EAAvB,OAAEiuE,EAAqBjuE,EAAL,iBAC1BkuE,EAAa5L,GAAU2L,EACvBlvE,EAAY,CAAC,eAUjB,OARIujE,IACE2L,EACFlvE,EAAU1B,KAAK,+BAEf0B,EAAU1B,KAAK,uBAKjB,SACEif,IAAK9a,KAAK0gE,SACVnjE,UAAWA,EAAUW,KAAK,KAC1BkC,MAAO,CACL25C,UAAWv7C,EAAMu7C,UACjBD,UAAWt7C,EAAMs7C,UACjBx3C,KAAOoqE,KAAgBluE,EAAMmuE,cAAgB,IAAO,GACpDhmE,MAAQ+lE,KAAgBluE,EAAMouE,eAAiB,IAAO,GACtDhmE,OAAS8lE,KAAgBluE,EAAMquE,gBAAkB,IAAO,GACxDzrE,YAAcsrE,KAAgBluE,EAAMmuE,cAAgB,IAAO,GAC3DtrE,aAAeqrE,KAAgBluE,EAAMouE,eAAiB,IAAO,GAC7DnrE,cAAgBirE,KAAgBluE,EAAMquE,gBAAkB,IAAO,GAC/DC,UAAWtuE,EAAMsuE,WAAa,KAG/BtuE,EAAMgE,WAUb,YAAAuqE,gBAAA,WACE,GAAIP,GAAkB7vE,KAAKqD,KAAKxB,MAAMu7C,WACpC,OAAO,EAWT,IAJM,IAAA95C,EAAOD,KAAL,GACJgtE,EAAkBhtE,KAAKC,GAAGkC,wBAAwBjC,MAAQF,KAAKitE,qBAC7DzqE,EAAavC,EAAL,SAELrF,EAAI,EAAGA,EAAI4H,EAAS7H,OAAQC,GAAK,EAAG,CAG3C,GAFc4H,EAAS5H,GAEXuH,wBAAwBjC,MAAQ8sE,EAC1C,OAAO,EAIX,OAAO,GAGT,YAAAE,gBAAA,WACE,GAAIV,GAAkB7vE,KAAKqD,KAAKxB,MAAMs7C,WACpC,OAAO,EAWT,IAJM,IAAA75C,EAAOD,KAAL,GACJmtE,EAAmBntE,KAAKC,GAAGkC,wBAAwBb,OAAStB,KAAKotE,qBAC/D5qE,EAAavC,EAAL,SAELrF,EAAI,EAAGA,EAAI4H,EAAS7H,OAAQC,GAAK,EAAG,CAG3C,GAFc4H,EAAS5H,GAEXuH,wBAAwBb,OAAS6rE,EAC3C,OAAO,EAIX,OAAO,GAGT,YAAAC,mBAAA,WACE,OAAIZ,GAAkB7vE,KAAKqD,KAAKxB,MAAMu7C,WAC7B,EAEF/5C,KAAKC,GAAGsB,aAAevB,KAAKC,GAAGyB,cAGxC,YAAAurE,mBAAA,WACE,OAAIT,GAAkB7vE,KAAKqD,KAAKxB,MAAMs7C,WAC7B,EAEF95C,KAAKC,GAAGE,YAAcH,KAAKC,GAAG+B,aAEzC,E,CAxG8B,I,cCV5B,WAAmBqrE,GAAnB,WAAmB,KAAAA,iBAJZ,KAAAC,WAAyC,GACxC,KAAAC,OAAoC,GACpC,KAAAC,YAAgE,GAiBxE,KAAAC,YAAc,SAACp3D,EAAqBvY,GAC9B,MAAyB,EAAvByvE,EAAM,SAAED,EAAU,aACpBI,GAAU,EACVC,GAAQ,EAEA,OAARt3D,GAEFq3D,EAAW5vE,KAAOwvE,EAElBA,EAAWxvE,GAAOuY,EAClBk3D,EAAOzvE,IAAQyvE,EAAOzvE,IAAQ,GAAK,EACnC6vE,GAAQ,IAERJ,EAAOzvE,IAAQ,EAEVyvE,EAAOzvE,YACHwvE,EAAWxvE,UACX,EAAK0vE,YAAY1vE,GACxB4vE,GAAU,IAIV,EAAKL,iBACHK,GACF,EAAKL,eAAe,KAAMh9D,OAAOvS,IAE/B6vE,GACF,EAAKN,eAAeh3D,EAAKhG,OAAOvS,MAmBxC,OA1DE,YAAAkoB,UAAA,SAAUloB,GAAV,WACM8vE,EAAc5tE,KAAKwtE,YAAY1vE,GAQnC,OANK8vE,IACHA,EAAc5tE,KAAKwtE,YAAY1vE,GAAO,SAACuY,GACrC,EAAKo3D,YAAYp3D,EAAKhG,OAAOvS,MAI1B8vE,GAsCT,YAAAC,QAAA,SACEzP,EACAC,EACAz+D,GAEA,O,S7G6HF8tB,EACA0wC,EACAC,EACAz+D,QAFA,IAAAw+D,MAAA,QAEA,IAAAx+D,MAAA,GAEA,IAAIkyB,EAAc,GAEF,MAAZusC,IACFA,EAAWjiE,OAAOqS,KAAKif,GAAM/yB,QAG/B,IAAK,IAAIC,EAAIwjE,EAAYxjE,EAAIyjE,EAAUzjE,GAAKgF,EAAM,CAChD,IAAIyW,EAAMqX,EAAK9yB,QAEH6K,IAAR4Q,GACFyb,EAAIj2B,KAAKwa,GAIb,OAAOyb,E6GhJEg8C,CAAgB9tE,KAAKstE,WAAYlP,EAAYC,EAAUz+D,IAGhE,YAAAmuE,OAAA,WACE,OAAOhgD,GAAkB/tB,KAAKstE,aAElC,E,YCtBgBU,GAAmBC,GAIjC,IAHA,IACIC,EAAe,EAEI,M,SnHfIpkE,EAAkExG,GAI7F,IAHA,IAAI6qE,EAAarkE,aAAqBF,YAAc,CAACE,GAAaA,EAC9DskE,EAA4B,GAEvBxzE,EAAI,EAAGA,EAAIuzE,EAAWxzE,OAAQC,GAAK,EAG1C,IAFA,IAAIusB,EAAUgnD,EAAWvzE,GAAG2I,iBAAiBD,GAEpC2Q,EAAI,EAAGA,EAAIkT,EAAQxsB,OAAQsZ,GAAK,EACvCm6D,EAAWvyE,KAAKsrB,EAAQlT,IAI5B,OAAOm6D,EmHAWC,CAAaJ,EAAU,yBAGlB,eAAa,CAA/B,IAAIK,EAAU,KACjBJ,EAAe9oE,KAAKC,IAClB6oE,EACAvkD,EAAyB2kD,IAI7B,OAAOlpE,KAAK8hE,KAAKgH,G,SAQHK,GAA0B/vE,EAA4BgwE,GACpE,OAAOhwE,EAAMsiE,QAAU0N,EAAc1N,O,SAgCvB2N,GAAgBC,EAAmBC,GACjD,OAAOj8C,GAAcg8C,EAAOC,EAAO3gD,I,SAGrB4gD,GAAoBC,EAAkBC,GAQpD,IAPA,IAAIC,EAAoB,GAOH,MAAAF,EAAA,eAGnB,IAHG,IAAIG,EAAQ,KACX5qC,EAAO4qC,EAAS5qC,MAAQ,EAEnBxpC,EAAI,EAAGA,EAAIwpC,EAAMxpC,GAAK,EAC7Bm0E,EAASlzE,KACP,SACEuE,MAAO,CACLF,MAA0B,WAAnB8uE,EAAS9uE,MAAqB+uE,GAAoBH,GAAgBE,EAAS9uE,OAAS,GAC3FgE,SAAU8qE,EAAS9qE,UAAY,OAOzC,OAAO8G,EAAa,0BAAC,WAAY,IAAO+jE,I,SAG1BE,GAAoBH,GAGlC,OAAsB,MAAfA,EAAsB,EAAIA,E,SA0BnBI,GAAqBV,EAA8BW,GACjE,IAAIlyE,EAAa,CACf,wBACA,yBAAyBuxE,EAAchxE,KACvCgxE,EAAcjxE,WAWhB,OARI4xE,GAAmBX,EAAc1N,QAAqC,MAA3B0N,EAAc1B,WAC3D7vE,EAAWpB,KAAK,gCAGd2yE,EAAclJ,UAChBroE,EAAWpB,KAAK,gCAGXoB,E,SAGOmyE,GAAiBzf,GAC/B,OACE,SACEpyD,UAAU,4BACV6C,MAAO,CACLF,MAAOyvD,EAAI3tD,YACXkC,SAAUyrD,EAAI0f,iB,SAMNC,GAAqBh+D,GAC7B,IAAAi+D,EAAsBj+D,EAAL,kBAMvB,OAJyB,MAArBi+D,GAAmD,SAAtBA,IAC/BA,EAAuC,SAAnBj+D,EAAQhQ,QAA4C,SAAvBgQ,EAAQ2xD,YAGpDsM,E,SAGOC,GAAyBl+D,GACjC,IAAAm+D,EAA0Bn+D,EAAL,sBAM3B,OAJ6B,MAAzBm+D,GAA2D,SAA1BA,IACnCA,EAA2C,SAAnBn+D,EAAQhQ,QAA4C,SAAvBgQ,EAAQ2xD,YAGxDwM,E,mBC9KT,2D,OACE,EAAAC,YAAc58C,IAAQ,SAAC7kB,GAAM,OAAAA,IAAGwgE,IAGhC,EAAAG,oBAAkD97C,GAAQ87C,IAE1D,EAAAe,aAAe,IAAIC,GACnB,EAAAC,eAAiB,IAAID,GAAoB,EAAKE,kBAAkB/1D,KAAK,IAErE,EAAAqD,MAA+B,CAC7B0xD,YAAa,KACbiB,kBAAkB,EAClBC,qBAAsB,GACtBC,sBAAuB,IAoIzB,EAAAC,aAAe,WACb,EAAK1yD,SAAQ,aACXsxD,YAAa,EAAKd,sBACf,EAAKmC,yB,EAgEd,OApNsC,iBAgBpC,YAAA7xD,OAAA,WACM,MAA4Bte,KAA1BxB,EAAK,QAAE4e,EAAK,QAAEgJ,EAAO,UACvBgqD,EAAiB5xE,EAAM6xE,UAAY,GACnCxB,EAAO7uE,KAAK0vE,YAAYlxE,EAAMqwE,MAE9ByB,EAAoBtwE,KAAK4uE,oBAAoBC,EAAMzxD,EAAM0xD,aACzD7xE,E,SD4FgC6jE,EAAiB16C,GACvD,IAAInpB,EAAa,CACf,gBACAmpB,EAAQ0xB,MAAMC,SAAS,UAOzB,OAJI+oB,GACF7jE,EAAWpB,KAAK,wBAGXoB,ECtGYszE,CAAwB/xE,EAAMsiE,OAAQ16C,GAEnD5nB,EAAMgyE,kBACRvzE,EAAWpB,KAAK,6BAWlB,IAPA,IAEI40E,EAFAC,EAAYN,EAAez1E,OAC3Bg2E,EAAU,EAEVC,EAA4B,GAC5BC,EAA4B,GAC5BC,EAA4B,GAEzBH,EAAUD,GAAgE,YAAlDD,EAAgBL,EAAeO,IAAUnzE,MACtEozE,EAAiB/0E,KAAKmE,KAAKwgE,cAAciQ,EAAeH,IACxDK,GAAW,EAGb,KAAOA,EAAUD,GAAgE,UAAlDD,EAAgBL,EAAeO,IAAUnzE,MACtEqzE,EAAiBh1E,KAAKmE,KAAKwgE,cAAciQ,EAAeH,IACxDK,GAAW,EAGb,KAAOA,EAAUD,GAAgE,YAAlDD,EAAgBL,EAAeO,IAAUnzE,MACtEszE,EAAiBj1E,KAAKmE,KAAKwgE,cAAciQ,EAAeH,IACxDK,GAAW,EAOb,IAAII,GAAWr8B,KAEf,OAAO1pC,EACL,QACA,CACEzN,UAAWN,EAAWiB,KAAK,KAC3BkC,MAAO,CAAEkB,OAAQ9C,EAAM8C,SAEzBgY,SAASy3D,GAAWH,EAAiBj2E,SAAWqQ,EAAa,0BAAC,QAAS,IAAO4lE,IAC9Et3D,SAASy3D,GAAWF,EAAiBl2E,SAAWqQ,EAAa,0BAAC,QAAS,IAAO6lE,IAC9Ev3D,SAASy3D,GAAWD,EAAiBn2E,SAAWqQ,EAAa,0BAAC,QAAS,IAAO8lE,IAC9EC,GAAW/lE,EAAa,kDAAC,QAAS,IAAO4lE,GAAqBC,GAAqBC,MAIvF,YAAAtQ,cAAA,SAAcgO,EAAwC8B,GACpD,MAAI,iBAAkB9B,EAElB,EAACvoD,EAAQ,CAACnoB,IAAK0wE,EAAc1wE,KAC1B0wE,EAAcwC,cAMnB,QAAIlzE,IAAK0wE,EAAc1wE,IAAKP,UAAW2xE,GAAqBV,EAAexuE,KAAKxB,MAAMsiE,QAAQ5iE,KAAK,MAChG8B,KAAKixE,cAAczC,EAAe8B,EAAmB9B,EAAc0C,SAK1E,YAAAD,cAAA,SAAczC,EAAwC8B,EAA0Ba,GAC9E,GAAI,iBAAkBA,EACpB,OAAOA,EAAYH,aAGf,IAAAxyE,EAAUwB,KAAL,MACP,EAAoEA,KAAKod,MAAvE2yD,EAAgB,mBAAEC,EAAoB,uBAAEC,EAAqB,wBAE/D/C,E,SDvD2B1uE,EAA4BgwE,GAC7D,OAAkC,MAA3BA,EAAc1B,WACnByB,GAA0B/vE,EAAOgwE,GCqDX4C,CAAmB5yE,EAAOgwE,GAC5C6C,EAAW9C,GAA0B/vE,EAAOgwE,GAI5C10B,EACDt7C,EAAMsiE,OACLiP,EAAmB,SAChB7C,EACC,OADiB,SAFP,UAKdoE,EAAa9C,EAAc1wE,IAC3BkhB,E,SD7D2BwvD,EAA8B2C,EAA0BxhB,GACnF,IAAA4hB,EAAe5hB,EAAL,WAmBhB,MAjBoD,oBAAxBwhB,EAAYnyD,QACtCmyD,EAAYnyD,QAAQ2wC,GACpB3kD,EAAc,QACZ,CACEzN,UAAW,CACT4zE,EAAYK,eACZhD,EAAciD,eAAiB,2BAA6B,IAC5DvzE,KAAK,KACPkC,MAAO,CACL8D,SAAUyrD,EAAI0f,cACdnvE,MAAOyvD,EAAI3tD,YACXV,OAAQiwE,EAAa5hB,EAAIjuD,aAAe,KAG5CiuD,EAAI+hB,kBACJ1mE,EAAc,QAAS,GAAsC,oBAA3BmmE,EAAYQ,WAA4BR,EAAYQ,WAAWhiB,GAAOwhB,EAAYQ,aC2CxGC,CAAmBpD,EAAe2C,EAAa,CAC3DO,kBAAmBpB,EACnBjB,cAAe,GACfrtE,YAAexD,EAAMgyE,uBAAyD/qE,IAArCuqE,EAAqBsB,GAAgE,KAAnCtB,EAAqBsB,GAChH5vE,kBAAoD+D,IAAtCwqE,EAAsBqB,GAA4BrB,EAAsBqB,GAAc,KACpGC,WAAY/C,EAAc+C,WAC1BE,gBAAgB,EAChBI,eAAgB,GAChBC,sBAAuB,eAGzB,OACE,QAAIh3D,IAAKq2D,EAAYhtB,OACnB,SAAK5mD,UAAW,uBAAsB8zE,EAAW,8BAAgC,KAC/E,EAAC,GAAQ,CACPv2D,IAAK9a,KAAK2vE,aAAa3pD,UAAUsrD,GACjCntB,MAAOnkD,KAAK6vE,eAAe7pD,UAAUsrD,GACrCx3B,UAAWA,EACXC,UAAYv7C,EAAMsiE,OAAqB,SAAZ,UAC3BgM,UAAW0B,EAAc1B,UACzBhM,OAAQuQ,EACR5E,kB,GAECztD,MAOX,YAAA8wD,kBAAA,SAAkBiC,EAAgCj0E,GAChD,IAAIk0E,EAkFR,SAAyB3B,EAAqCvyE,GAC5D,IAAoB,UAAAuyE,EAAA,eAAU,CAAzB,IAAI2B,EAAO,KACd,GAAIA,EAAQl0E,MAAQA,EAClB,OAAOk0E,EAIX,OAAO,KAzFSC,CAAgBjyE,KAAKxB,MAAM6xE,SAAUvyE,GAE/Ck0E,GACFryB,GAAOqyB,EAAQd,MAAMgB,cAAeH,IAYxC,YAAA9sB,kBAAA,WACEjlD,KAAKkwE,eACLlwE,KAAKomB,QAAQ04B,iBAAiB9+C,KAAKkwE,eAGrC,YAAA/qB,mBAAA,WAEEnlD,KAAKkwE,gBAGP,YAAA9qB,qBAAA,WACEplD,KAAKomB,QAAQ24B,oBAAoB/+C,KAAKkwE,eAGxC,YAAAlC,mBAAA,WACE,O,SD/D2Ba,GAC7B,IAAgB,UAAAA,EAAA,eACd,GAAkB,WADR,KACF3uE,MACN,OAAO,EAIX,OAAO,ECwDEiyE,CAAenyE,KAAKxB,MAAMqwE,MAC7Bb,GAAmBhuE,KAAK6vE,eAAe9B,UACvC,GAGN,YAAAoC,oBAAA,WACE,IAAIllE,EAAiBwtC,KACfk3B,EAAiC3vE,KAArB,aAAE6vE,EAAmB7vE,KAAL,eAE9B+vE,GAAmB,EACnBC,EAAoD,GACpDC,EAAqD,GAEzD,IAAK,IAAIqB,KAAc3B,EAAarC,WAAY,CAC9C,IAAI8E,EAAWzC,EAAarC,WAAWgE,GAEvC,GAAIc,GAAYA,EAASlF,kBAAmB,CAC1C6C,GAAmB,EACnB,OAIJ,IAAoB,UAAA/vE,KAAKxB,MAAM6xE,SAAX,eAAqB,CACnCiB,EADU,KACWxzE,IADtB,IAECi0E,EAAalC,EAAevC,WAAWgE,GAE3C,GAAIS,EAAY,CACd,IAAIM,EAAYN,EAAWtvE,WAE3ButE,EAAqBsB,GAAclsE,KAAKsmB,MACtC2mD,EAAUlwE,wBAAwBjC,OAChC6vE,EACI9kE,EAAe7E,EACf,IAIR6pE,EAAsBqB,GAAclsE,KAAKsmB,MACvC2mD,EAAUlwE,wBAAwBb,SAKxC,MAAO,CAAEyuE,iBAAgB,EAAEC,qBAAoB,EAAEC,sBAAqB,IAE1E,E,CApNsC,IAsNtC,GAAiBxwB,iBAAiB,CAChCuwB,qBAAsBhiD,GACtBiiD,sBAAuBjiD,K,mBCnNzB,2D,OACE,EAAAm2B,MAAgCn+B,I,EA+DlC,OAhE+B,iBAG7B,YAAA1H,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdsR,EAAY8U,EAAL,QACP+a,EAAQ3iC,EAAL,IACHyjC,EAAed,EAAL,WACVzD,EAAOuE,EAAL,GAEJmiB,EAA6B,CAC/B/vC,MAAO,IAAI,GAAS+R,EAAS6b,EAAWjT,IAAKiT,EAAW7jC,UACxDynC,KAAMzf,EAAQ0f,QACdwsC,SAAU9zE,EAAM8zE,SAChBr3C,UAAWyC,EAAGzC,UACdF,gBAAiB2C,EAAG3C,gBACpBC,YAAa0C,EAAG1C,YAChBu3C,aAAc/zE,EAAMg0E,iBAAmBrwC,GAAoBhB,EAAK/a,GAChEqsD,kBAAmBj0E,EAAMk0E,iBAAmBnwC,GAAyBpB,EAAK/a,GAC1EusD,gBAAiBn0E,EAAMk0E,iBAAmBjwC,GAAuBtB,GACjEyxC,SAAUt5D,QAAQ9a,EAAMq0E,YAAcr0E,EAAMs0E,YAAct0E,EAAMu0E,iBAChEnyC,QAAStnB,QAAQ6nB,EAAIP,SACrBC,MAAOvnB,QAAQ6nB,EAAIN,OACnBgD,OAAQvqB,QAAQ9a,EAAMqlC,QACtBC,SAAUxqB,QAAQ9a,EAAMslC,UACxBC,QAASzqB,QAAQ9a,EAAMulC,SACvBivC,WAAY15D,QAAQ9a,EAAMw0E,YAC1BH,WAAYv5D,QAAQ9a,EAAMq0E,YAC1BC,WAAYx5D,QAAQ9a,EAAMs0E,aAGxBG,E,S5FsN2Bz0E,GACjC,IAAIvB,EAAuB,CAAC,YA8C5B,OA5CIuB,EAAMo0E,UACR31E,EAAWpB,KAAK,mBAGd2C,EAAM+zE,aACRt1E,EAAWpB,KAAK,uBAGd2C,EAAMi0E,kBAAoBj0E,EAAMm0E,iBAClC11E,EAAWpB,KAAK,sBAGd2C,EAAMq0E,YACR51E,EAAWpB,KAAK,qBAGd2C,EAAMs0E,YACR71E,EAAWpB,KAAK,qBAGd2C,EAAMw0E,YACR/1E,EAAWpB,KAAK,qBAGd2C,EAAMoiC,SACR3jC,EAAWpB,KAAK,kBAGd2C,EAAMqiC,OACR5jC,EAAWpB,KAAK,gBAGd2C,EAAMqlC,QACR5mC,EAAWpB,KAAK,iBAGd2C,EAAMulC,SACR9mC,EAAWpB,KAAK,kBAGd2C,EAAMslC,UACR7mC,EAAWpB,KAAK,mBAGXoB,E4FrQoBi2E,CAAmB9uB,GAAWrmD,OAAO2/B,EAAGzgC,YAEjE,OACE,EAAC,GAAU,CACTmnD,UAAWA,EACXnnD,WAAYqU,EAAQ6hE,gBACpBn0D,QAAS1N,EAAQ8hE,aACjB5uB,eAAgBhmD,EAAMgmD,eACtBH,SAAU/yC,EAAQ+hE,cAClB/uB,YAAahzC,EAAQgiE,iBACrBnvB,MAAOnkD,KAAKmkD,QAEX,SAACF,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAAAnmD,EAAMgE,SAChEyhD,EAAWgvB,EAAmBl1E,OAAOooD,GAAmBzB,EAAYC,EAAcP,OAM1F,YAAAa,kBAAA,WACE/jB,GAASlhC,KAAKmkD,MAAMp1C,QAAS/O,KAAKxB,MAAM2iC,MAM1C,YAAAgkB,mBAAA,SAAmB3hC,GACX,IAAA2d,EAAQnhC,KAAKxB,MAAV,IAEL2iC,IAAQ3d,EAAU2d,KACpBD,GAASlhC,KAAKmkD,MAAMp1C,QAASoyB,IAGnC,E,CAhE+B,I,eCrB/B,a,+CAkDA,OAlDmC,iBACjC,YAAA7iB,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdmhC,EAAQ3iC,EAAL,IACLmkC,EAAavc,EAAQ9U,QAAQiiE,iBAAmB/0E,EAAMg1E,kBACtDlB,EAAW5vC,GACbvB,EACAwB,EACAvc,EACA5nB,EAAMokC,wBACNpkC,EAAMqkC,wBAGR,OACE,EAAC,GAAS,CACR1B,IAAKA,EACLmxC,SAAUA,EACVE,gBAAiBh0E,EAAMg0E,gBACvBE,gBAAiBl0E,EAAMk0E,gBACvBluB,eAAgBhmD,EAAMgmD,gBAAkBQ,GACxC6tB,WAAYr0E,EAAMq0E,WAClBC,WAAYt0E,EAAMs0E,WAClBC,gBAAiBv0E,EAAMu0E,gBACvBC,WAAYx0E,EAAMw0E,WAClBnvC,OAAQrlC,EAAMqlC,OACdC,SAAUtlC,EAAMslC,SAChBC,QAASvlC,EAAMulC,UAEd,SAACkgB,EAAWhnD,EAAYynD,EAAYC,EAAcP,GAAc,OAC/D,mBACE7mD,UAAWiB,EAAMgnE,gBAAgBznE,OAAOd,GAAYiB,KAAK,KACzDkC,MAAO,CACL46B,YAAaopB,EAAUppB,YACvBD,gBAAiBqpB,EAAUrpB,iBAE7BjgB,IAAKmpC,GAgCjB,SAA2B9iB,GACnB,IAAAta,EAAQsa,EAAIc,WAAWjT,IAApB,IACT,OAAOnI,EAAM,CAAEq6C,KAAMr6C,GAAQ,GAjCf4sD,CAAkBtyC,IAEtB,SAAK5jC,UAAU,gBAAgBud,IAAK4pC,EAAYtkD,MAAO,CAAE06B,MAAOspB,EAAUnpB,YACvE0pB,GAEFP,EAAUquB,kBACT,SAAKl1E,UAAU,4CAChB6mD,EAAUuuB,gBACT,SAAKp1E,UAAU,+CAM7B,E,CAlDmC,IAoDnC,SAASynD,GAAmB0uB,GAC1B,OACE,SAAKn2E,UAAU,uBACZm2E,EAAWpB,UACV,SAAK/0E,UAAU,iBAAiBm2E,EAAWpB,UAE7C,SAAK/0E,UAAU,4BACb,SAAKA,UAAU,4BACZm2E,EAAWr/D,MAAMynB,OAAS,EAAC7V,EAAQ,gB,IC1DjC,GAAmB,SAACznB,GAAiC,OAChE,EAAC+/C,GAAgBuG,SAAQ,MACtB,SAAC1+B,GACM,IAAA9U,EAAY8U,EAAL,QACTg+B,EAAoC,CACtCuvB,OAAQn1E,EAAMm1E,OACd7nD,KAAM1F,EAAQwI,QAAQkW,OAAOtmC,EAAMstB,MACnC+Z,KAAMzf,EAAQ0f,SAGhB,OACE,EAAC,GAAU,CACTse,UAAWA,EACXnnD,WAAYqU,EAAQsiE,uBACpB50D,QAAS1N,EAAQuiE,oBACjBxvB,SAAU/yC,EAAQwiE,qBAClBxvB,YAAahzC,EAAQyiE,yBAEpBv1E,EAAMgE,cC1BXwxE,GAAiBv7C,GAAgB,CAAEjI,IAAK,Y,eAgC9C,a,+CAwBA,OAxBoC,iBAClC,YAAAlS,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdsR,EAAY8U,EAAL,QACTg+B,EAAY6vB,GAAuB,CACrCnoD,KAAMttB,EAAMstB,KACZsb,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClBwwC,cAAe11E,EAAM01E,cACrBC,WAAY31E,EAAMumE,eAClBj/B,QAAS1f,EAAQ0f,QACjBlX,QAASxI,EAAQwI,UAGnB,OACE,EAAC21B,GAAW,CACVH,UAAWA,EACXplC,QAAS1N,EAAQ8iE,eACjB5vB,eAAgBhmD,EAAMgmD,gBAErBhmD,EAAMgE,WAIf,E,CAxBoC,I,SA0BpByxE,GAAuB35C,GAC/B,IAAAxO,EAAkBwO,EAAd,KAAE1L,EAAY0L,EAAL,QACfmqC,EAAU9sB,GAAY7rB,EAAMwO,EAAIoJ,WAAY,KAAMpJ,EAAI8M,aAE1D,4CACEtb,KAAM8C,EAAQkW,OAAOhZ,GACrB+Z,KAAMvL,EAAIwL,SACP2+B,GAAO,CACV4P,cAAe/5C,EAAI45C,cAAgBtlD,EAAQ9H,OAAOgF,EAAMkoD,IAAkB,KACvE15C,EAAI65C,Y,mBC3CX,2D,OACE,EAAAG,gBAAkBjhD,GAAc4gD,IAChC,EAAArvB,oBAAsBkB,K,EAoCxB,OAtCiC,iBAI/B,YAAAxnC,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdsR,EAAY8U,EAAL,QACTg+B,EAAYpkD,KAAKs0E,gBAAgB,CACnCxoD,KAAMttB,EAAMstB,KACZsb,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClBwwC,cAAe11E,EAAM01E,cACrBC,WAAY31E,EAAMumE,eAClBj/B,QAAS1f,EAAQ0f,QACjBlX,QAASxI,EAAQwI,UAGf3xB,EAAa46C,GAAiBuM,EAAWh+B,EAAQ0xB,OAAO/5C,OAC1DqmD,EAAU/jC,WACN,GACArgB,KAAK4kD,oBAAoBtzC,EAAQijE,kBAAmBnwB,IAGtDowB,EAAYpwB,EAAU/jC,WAAa,GAAK,CAC1C,YAAaiS,GAAgB9zB,EAAMstB,OAGrC,OACE,EAAC,GAAS,CACRs4B,UAAWA,EACXC,SAAU/yC,EAAQmjE,gBAClBnwB,YAAahzC,EAAQojE,mBACrBvwB,MAAO3lD,EAAM2lD,QAEZ,SAACF,GAAc,OAAAzlD,EAAMgE,SAASyhD,EAAWhnD,EAAYu3E,EAAWpwB,EAAU/jC,gBAInF,E,CAtCiC,I,SC/BjBs0D,GAAWC,GACzB,OACE,SAAKr3E,UAAW,MAAMq3E,I,IAWb,GAAU,SAACp2E,GAAwB,OAC9C,EAAC,GAAS,CACRgmD,eAAgBQ,GAChB7jB,IAAK3iC,EAAM2iC,IACXmxC,SAAS,GACTE,iBAAe,EACfE,iBAAe,EACfG,YAAY,EACZC,YAAY,EACZC,iBAAiB,EACjBC,YAAY,EACZnvC,OAAQrlC,EAAMqlC,OACdC,SAAUtlC,EAAMslC,SAChBC,QAASvlC,EAAMulC,UAEd,SAACkgB,EAAWhnD,EAAYynD,EAAYC,EAAcP,GAAc,OAC/D,SACEtpC,IAAKmpC,EACL1mD,UAAW,CAAC,eAAeQ,OAAOd,GAAYiB,KAAK,KACnDkC,MAAO,CACL26B,gBAAiBqpB,EAAUrpB,kBAG5B4pB,OAMT,SAASK,GAAmBxmD,GAG1B,OAFgBA,EAAM6V,MAAX,OAGT,SAAK9W,UAAU,kBAAkBiB,EAAM6V,MAAMynB,O,IChCpC,GAAiB,SAACt9B,GAA+B,OAC5D,EAAC+/C,GAAgBuG,SAAQ,MACtB,SAAC1+B,GACM,IAAAwI,EAAqBxI,EAAd,QAAE9U,EAAY8U,EAAL,QAChB0F,EAASttB,EAAL,KACNsoB,EAASxV,EAAQujE,kBAAoBr2E,EAAMs2E,cAC3CnyE,EAAMisB,EAAQsI,kBAAkBpL,GAChC9e,EAAO4hB,EAAQ9H,OAAOgF,EAAMhF,GAGhC,OACE,EAAC,GAAU,CACTs9B,UAJkC,CAAEzhD,IAAG,EAAEqK,KAAI,EAAE8e,KAAI,GAKnD7uB,WAAYqU,EAAQyjE,qBACpB/1D,QAAS1N,EAAQ0jE,kBACjBxwB,eAAgBggB,GAChBngB,SAAU/yC,EAAQ2jE,mBAClB3wB,YAAahzC,EAAQ4jE,uBAEpB12E,EAAMgE,cAOjB,SAASgiE,GAAYkP,GACnB,OAAOA,EAAW1mE,KC5BpB,IAEA,0E,OAsCE,EAAAk3C,aAAe,SAACjkD,GACd,EAAK4lD,OAAS5lD,EAEV,EAAKzB,MAAM2lD,OACbxE,GAAO,EAAKnhD,MAAM2lD,MAAOlkD,IAK7B,EAAAk1E,wBAA0B,SAACxtD,GAEzB,IAAMppB,EAASmpB,EAAsBC,GAChC,EAAKk+B,OAAOxiD,SAAS9E,IACxB,EAAK62E,oBAIT,EAAAA,iBAAmB,WACX,IAAAC,EAAY,EAAK72E,MAAV,QACT62E,GACFA,K,EA+BN,OAzF6B,iBAG3B,YAAA/2D,OAAA,WACQ,IAAAw5B,EAAU93C,KAAKomB,QAAV,MACL5nB,EAAUwB,KAAL,MACP/C,EAAa,CACf,aACA66C,EAAMC,SAAS,YACfh6C,OACAS,EAAMgnE,iBAAmB,IAG3B,OAAO5nD,EACL,qBAAKrgB,UAAWN,EAAWiB,KAAK,MAAUM,EAAM82E,WAAU,CAAEx6D,IAAK9a,KAAKkkD,eACpE,SAAK3mD,UAAW,qBAAuBu6C,EAAMC,SAAS,kBACpD,UAAMx6C,UAAU,oBACbiB,EAAMs9B,OAET,UAAMv+B,UAAW,oBAAsBu6C,EAAMwF,aAAa,SAAU0iB,QAAShgE,KAAKo1E,oBAEpF,SAAK73E,UAAW,mBAAqBu6C,EAAMC,SAAS,mBACjDv5C,EAAMgE,WAGXhE,EAAM+2E,WAIV,YAAAtwB,kBAAA,WACEvkD,SAAS8M,iBAAiB,YAAaxN,KAAKm1E,yBAC5Cn1E,KAAKipC,cAGP,YAAAmc,qBAAA,WACE1kD,SAAS+M,oBAAoB,YAAazN,KAAKm1E,0BA2BzC,YAAAlsC,WAAR,WACQ,IAAAsU,EAAUv9C,KAAKomB,QAAV,MACP,EAAgCpmB,KAAKxB,MAAnCg3E,EAAW,cAAEC,EAAY,eACzB5vB,EAAW7lD,KAAL,OAER01E,E,S7EFiCz1E,GAIvC,IAHA,IAAI01E,EAAkB97B,GAAmB55C,GACrCiC,EAAajC,EAAGkC,wBAEO,MAAAwzE,EAAA,eAAiB,CAAvC,IACCC,EAAe1hC,GAAehyC,EADb,KACkCC,yBACvD,IAAIyzE,EAGF,OAAO,KAFP1zE,EAAO0zE,EAMX,OAAO1zE,E6EXe2zE,CAAyBL,GAC7C,GAAIE,EAAe,CACjB,IAAII,EAAcjwB,EAAO1jD,wBAGrB4zE,EAAaN,EACbzuD,EAAewuD,EAAa,kBAAkBrzE,wBAAwBC,IACtEszE,EAActzE,IACd4zE,EAAcz4B,EAAQm4B,EAAc/uE,MAAQmvE,EAAY51E,MAAQw1E,EAAcpzE,KAGlFyzE,EAAa3wE,KAAKC,IAAI0wE,EAhFE,IAiFxBC,EAAc5wE,KAAKs6B,IAAIs2C,EAAat1E,SAASC,gBAAgBqB,YAjFrC,GAiF2E8zE,EAAY51E,OAC/G81E,EAAc5wE,KAAKC,IAAI2wE,EAlFC,IAoFxB,IAAI,EAASnwB,EAAOvhD,aAAanC,wBACjColB,EAAWs+B,EAAQ,CACjBzjD,IAAK2zE,EAAa,EAAO3zE,IACzBE,KAAM0zE,EAAc,EAAO1zE,SAInC,EAzFA,CAA6B,ICI7B,0E,OAkCE,EAAA4hD,aAAe,SAAC2B,GACd,EAAKA,OAASA,EACVA,EACF,EAAKz/B,QAAQw4B,6BAA6B,EAAM,CAC9C3+C,GAAI4lD,EACJ6Y,gBAAgB,IAGlB,EAAKt4C,QAAQy4B,+BAA+B,I,EAkClD,OA5EiC,iBAG/B,YAAAvgC,OAAA,WACM,MAAuBte,KAAKomB,QAA1B9U,EAAO,UAAEsd,EAAO,UAChBpwB,EAAUwB,KAAL,MACLi2E,EAAuCz3E,EAA9B,UAAEklC,EAA4BllC,EAAlB,WAAE4oC,EAAgB5oC,EAAL,YACpCs9B,EAAQlN,EAAQ9H,OAAOmvD,EAAW3kE,EAAQ4kE,kBAC9C,OACE,EAAC,GAAW,CAACpqD,KAAMmqD,EAAW7uC,YAAaA,EAAa1D,WAAYA,EAAYygB,MAAOnkD,KAAKkkD,eACzF,SAACD,EAAWkyB,EAAe3B,GAAc,OACxC,EAAC,GAAO,CACNrwB,MAAOF,EACPnoB,MAAOA,EACP0pC,gBAAiB,CAAC,mBAAmBznE,OAAOo4E,GAC5Cb,WAAYd,EACZe,SAAU/2E,EAAM+2E,SAChBC,YAAah3E,EAAMg3E,YACnBC,aAAcj3E,EAAMi3E,aACpBJ,QAAS72E,EAAM62E,SAEf,EAAC,GAAc,CAACvpD,KAAMmqD,EAAW7uC,YAAaA,EAAa1D,WAAYA,IACpE,SAACghB,EAAYC,GAAiB,OAC7BA,GACE,SAAKpnD,UAAU,uBAAuBud,IAAK4pC,GAAaC,MAG7DnmD,EAAMgE,cAmBjB,YAAAs9C,SAAA,SAASC,EAAsBC,EAAqBC,EAAiBC,GAC/D,IAAE2F,EAAkB7lD,KAAZ,OAAExB,EAAUwB,KAAL,MAEnB,OACE+/C,GAAgB,GAAKA,EAAeE,GACpCD,GAAe,GAAKA,EAAcE,EAE3B,CACL9Y,YAAa5oC,EAAM4oC,YACnBjC,SAAU,OAAF,IAAE,CAAF,CACNlW,QAAQ,EACRrc,MAAO,CACLgD,MAAOpX,EAAMy3E,UACbnjE,IAAKtU,EAAMgtC,UAEVhtC,EAAM43E,eAEXC,MAAOxwB,EACP3jD,KAAM,CACJI,KAAM,EACNF,IAAK,EACLuE,MAAOs5C,EACPr5C,OAAQs5C,GAEVo2B,MAAO,GAIJ,MAEX,EA5EA,CAAiC,I,eC2BjC,2D,OACU,EAAAC,UAAYvwD,IAGpB,EAAA5I,MAAQ,CACNo5D,eAAe,GA2EjB,EAAAC,YAAc,SAAC9uD,GACT,MAAqB,EAAnBnpB,EAAK,QAAE4nB,EAAO,UACdswD,EAAkBtwD,EAAQ9U,QAAb,cACfwa,EAAO6qD,GAAan4E,GAAOoX,MAE/B,SAASghE,EAAez1C,GAClB,MAA2BA,EAAIc,WAA7BjT,EAAG,MAAE5wB,EAAQ,WAAEwU,EAAK,QAC1B,MAAO,CACLyB,MAAO,IAAI,GAAS+R,EAAS4I,EAAK5wB,GAClCwX,MAAOwQ,EAAQwI,QAAQkW,OAAOlyB,EAAMgD,OACpC9C,IAAKsT,EAAQwI,QAAQkW,OAAOlyB,EAAME,KAClC8tB,QAASO,EAAIP,QACbC,MAAOM,EAAIN,OAIc,oBAAlB61C,IACTA,EAAgBA,EAAc,CAC5B5qD,KAAI,EACJmD,OAAQ3V,QAAQ9a,EAAMq4E,YACtBC,QAASt4E,EAAMs4E,QAAQn5E,IAAIi5E,GAC3BG,WAAYv4E,EAAMu4E,WAAWp5E,IAAIi5E,GACjCjxC,QAAShe,EACTke,KAAMzf,EAAQ0f,WAIb4wC,GAAmC,YAAlBA,EAEc,kBAAlBA,GAChBtwD,EAAQ2f,YAAYgE,OAAOje,EAAM4qD,GAFjC,EAAKl5D,SAAS,CAAEg5D,eAAe,KAMnC,EAAAQ,mBAAqB,WACnB,EAAKx5D,SAAS,CAAEg5D,eAAe,K,EAEnC,OArHkC,iBAQhC,YAAAl4D,OAAA,sBACQ9f,EAAUwB,KAAL,MACX,OACE,EAACu+C,GAAgBuG,SAAQ,MACtB,SAAC1+B,GACM,IAAA0f,EAAkC1f,EAA3B,QAAE9U,EAAyB8U,EAAlB,QAAE2f,EAAgB3f,EAAL,YAC7BgsB,EAAiB9gC,EAAL,aACZ2lE,EAAYz4E,EAAL,QACToU,EAAQ+jE,GAAan4E,GAErB4lD,EAAgC,CAClCzhD,IAAKs0E,EACLC,UAAW,IAAID,EACfjqE,KAA8B,oBAAjBolC,EACTA,EAAa12C,KAAKqqC,EAAakxC,GAC/B,IAAIA,EAAO,IAAI7kC,EACnBvM,KAAMC,GAGR,OACE,EAAC7f,EAAQ,KACN3M,QAAQ9a,EAAMy4E,UACb,EAAC,GAAU,CACT9yB,MAAO,EAAKoyB,UACZnyB,UAAWA,EACXnnD,WAAYqU,EAAQ6lE,mBACpBn4D,QAAS1N,EAAQ8lE,gBACjB5yB,eAAgBhmD,EAAMgmD,gBAAkB6yB,GACxChzB,SAAU/yC,EAAQgmE,iBAClBhzB,YAAahzC,EAAQimE,sBAEpB,SAACtzB,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAAAnmD,EAAMgE,SAChEyhD,EAAW,CAAC,gBAAgBlmD,OAAOooD,GAAmBzB,EAAYC,EAAc,EAAK8xB,gBAI1F,EAAKr5D,MAAMo5D,eACV,EAAC,GAAW,CACVP,UAAWrjE,EAAMgD,MACjB41B,QAAS54B,EAAME,IACfs0B,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClB0yC,cAAe53E,EAAM43E,cACrBb,SAAU,EAAKA,SACfC,YAAah3E,EAAMg5E,eAAezoE,QAClC0mE,aAAcj3E,EAAMi3E,aACpBJ,QAAS,EAAK2B,oBAEbx4E,EAAMi5E,uBAUvB,YAAAxyB,kBAAA,WACEjlD,KAAK03E,kBAGP,YAAAvyB,mBAAA,WACEnlD,KAAK03E,kBAGP,YAAAA,eAAA,WACM13E,KAAKu2E,UAAUxnE,UACjB/O,KAAKu1E,SAAWvuD,EAAehnB,KAAKu2E,UAAUxnE,QAAS,sBAyC7D,E,CArHkC,IAuHlC,SAASsoE,GAAoB74E,GAC3B,OAAOA,EAAMwO,KAGf,SAAS2pE,GAAan4E,GACpB,GAAIA,EAAMq4E,WACR,MAAO,CACLjhE,MAAOpX,EAAMq4E,WACb/jE,IAAKsX,EAAQ5rB,EAAMq4E,WAAY,IAI7B,IAeqBp1C,EAfrBs1C,EAAev4E,EAAL,WAChB,MAAO,CACLoX,MAAO+hE,GAAwBZ,GAC/BjkE,KAYyB2uB,EAZAs1C,EAapBt1C,EAAK5yB,OAAO+oE,IAAe31C,WAAWrvB,MAAME,M,SATrC6kE,GAAwBl2C,GACtC,OAAOA,EAAK5yB,OAAOgpE,IAAmB51C,WAAWrvB,MAAMgD,MAGzD,SAASiiE,GAAkBC,EAAWC,GACpC,OAAOD,EAAK71C,WAAWrvB,MAAMgD,MAAQmiE,EAAK91C,WAAWrvB,MAAMgD,MAAQkiE,EAAOC,EAO5E,SAASH,GAAcE,EAAWC,GAChC,OAAOD,EAAK71C,WAAWrvB,MAAME,IAAMilE,EAAK91C,WAAWrvB,MAAME,IAAMglE,EAAOC,I,6BC1MxE,sGAgBA,IAAIC,EAAgB,SAASp2E,EAAGsM,GAI5B,OAHA8pE,EAAgB57E,OAAOkc,gBAClB,CAAEC,UAAW,cAAgBzd,OAAS,SAAU8G,EAAGsM,GAAKtM,EAAE2W,UAAYrK,IACvE,SAAUtM,EAAGsM,GAAK,IAAK,IAAIiH,KAAKjH,EAAO9R,OAAOC,UAAUqS,eAAehT,KAAKwS,EAAGiH,KAAIvT,EAAEuT,GAAKjH,EAAEiH,KACzF6iE,EAAcp2E,EAAGsM,IAGrB,SAAS+pE,EAAUr2E,EAAGsM,GACzB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIrR,UAAU,uBAAyBwT,OAAOnC,GAAK,iCAE7D,SAASgqE,IAAOl4E,KAAKxD,YAAcoF,EADnCo2E,EAAcp2E,EAAGsM,GAEjBtM,EAAEvF,UAAkB,OAAN6R,EAAa9R,OAAOuc,OAAOzK,IAAMgqE,EAAG77E,UAAY6R,EAAE7R,UAAW,IAAI67E,GAG5E,IAAIC,EAAW,WAQlB,OAPAA,EAAW/7E,OAAOg8E,QAAU,SAAkB3iE,GAC1C,IAAK,IAAIlW,EAAG3E,EAAI,EAAGuB,EAAIgB,UAAUxC,OAAQC,EAAIuB,EAAGvB,IAE5C,IAAK,IAAIua,KADT5V,EAAIpC,UAAUvC,GACOwB,OAAOC,UAAUqS,eAAehT,KAAK6D,EAAG4V,KAAIM,EAAEN,GAAK5V,EAAE4V,IAE9E,OAAOM,GAEJ0iE,EAAS7uE,MAAMtJ,KAAM7C,YAoEHf,OAAOuc,OAyD7B,SAAS0/D,EAAcrpE,EAAItS,EAAM47E,GACpC,GAAIA,GAA6B,IAArBn7E,UAAUxC,OAAc,IAAK,IAA4B49E,EAAxB39E,EAAI,EAAG49E,EAAI97E,EAAK/B,OAAYC,EAAI49E,EAAG59E,KACxE29E,GAAQ39E,KAAK8B,IACR67E,IAAIA,EAAKz9E,MAAMuB,UAAUE,MAAMb,KAAKgB,EAAM,EAAG9B,IAClD29E,EAAG39E,GAAK8B,EAAK9B,IAGrB,OAAOoU,EAAGjR,OAAOw6E,GAAMz9E,MAAMuB,UAAUE,MAAMb,KAAKgB,IAsC7BN,OAAOuc,Q,6BCjNhC,6DAGA,SAAS8/D,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASJ,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GASjB,SAASsB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GA0B5B,SAASyD,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI4pE,EAA+B,SAAU9+D,IA5D7C,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAiD1CF,CAAUkgE,EAAiB9+D,GAE3B,IA9EoBvb,EAAaU,EAAYC,EA8EzC6a,EAASkL,EAAa2zD,GAE1B,SAASA,EAAgBl6E,GACvB,IAAI+G,EAMJ,OAvGJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiGpBsB,CAAgB6B,KAAM04E,IAEtBnzE,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBm6E,WAA0B3yD,oBAAUzgB,EAAM/G,MAAMo6E,YAC/CrzE,EA0IT,OAjOoBlH,EA0FPq6E,EA1FoB35E,EA0FH,CAAC,CAC7BjB,IAAK,mBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMo6E,WAEjB99D,IACiB,oBAARA,EACTA,EAAI9a,KAAK24E,WAAW5pE,SAEpB+L,EAAI/L,QAAU/O,KAAK24E,WAAW5pE,WAInC,CACDjR,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMihB,UAAYzf,KAAKxB,MAAMq6E,UAE1C,CACD/6E,IAAK,oBACLhC,MAAO,WACLkE,KAAK84E,mBAED94E,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAnDvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAmD/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK24E,WAAW5pE,QACxBiQ,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,aACLhC,MAAO,WACL,IAAIo9E,EAAOl5E,KAAKxB,MAAMq6E,QAAU74E,KAAKxB,MAAM26E,YAAcn5E,KAAKxB,MAAM06E,KAChEl6D,EAAU,KAEd,GAAIk6D,EAAM,CACR,IAAIE,EAEAC,EAAWt8E,EAAQm8E,GAEnB37E,EAAYN,YAAW,qBAExBuT,EAF8C4oE,EAAc,CAC7D,wBAAyBp5E,KAAKxB,MAAMq6E,SACN,GAAG96E,OAAOm7E,GAAoB,WAAbG,GAAwB7oE,EAAgB4oE,EAAa,qBAA6C,SAAvBp5E,KAAKxB,MAAM86E,SAAsBt5E,KAAKxB,MAAM+6E,OAAQ/oE,EAAgB4oE,EAAa,sBAA8C,UAAvBp5E,KAAKxB,MAAM86E,SAAuBt5E,KAAKxB,MAAM+6E,OAAQ/oE,EAAgB4oE,EAAa,oBAA4C,QAAvBp5E,KAAKxB,MAAM86E,SAAqBt5E,KAAKxB,MAAM+6E,OAAQ/oE,EAAgB4oE,EAAa,uBAA+C,WAAvBp5E,KAAKxB,MAAM86E,SAAwBt5E,KAAKxB,MAAM+6E,OAAQH,IAKze,GAJAp6D,EAAuBnE,IAAM7P,cAAc,OAAQ,CACjDzN,UAAWA,IAGI,WAAb87E,EAAuB,CACzB,IAAIG,EAAwB,CAC1Bj8E,UAAWA,EACXgF,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAcP,EAAMM,IAI9C,OAAOx6D,IAER,CACDlhB,IAAK,cACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM+6E,MACO1+D,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,sBACVyC,KAAKxB,MAAM+6E,QAGRv5E,KAAKxB,MAAMgE,WAAaxC,KAAKxB,MAAM+6E,OAAsB1+D,IAAM7P,cAAc,OAAQ,CAC3FzN,UAAW,qBACXm8E,wBAAyB,CACvBC,OAAQ,cAIb,CACD77E,IAAK,cACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMo7E,MAAO,CACpB,IAAIC,EAAiB58E,YAAW,UAAW+C,KAAKxB,MAAMq7E,gBACtD,OAAoBh/D,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWs8E,GACV75E,KAAKxB,MAAMo7E,OAGhB,OAAO,OAER,CACD97E,IAAK,SACLhC,MAAO,WACL,IAAI2jB,EAAWzf,KAAKqgB,aAChB9iB,EAAYN,YAAW,uBAAwB+C,KAAKxB,MAAMjB,UAAWiT,EAAgB,CACvF,sBAAuBxQ,KAAKxB,MAAM06E,MAAQl5E,KAAKxB,MAAMq6E,SAAW74E,KAAKxB,MAAM26E,eAAiBn5E,KAAKxB,MAAM+6E,MACvG,qBAA6C,QAAvBv5E,KAAKxB,MAAM86E,SAA4C,WAAvBt5E,KAAKxB,MAAM86E,UAAyBt5E,KAAKxB,MAAM+6E,MACrG,aAAc95D,EACd,mBAAoBzf,KAAKxB,MAAMq6E,QAC/B,8BAA+B74E,KAAKxB,MAAMq6E,UAAY74E,KAAKxB,MAAM06E,MAAQl5E,KAAKxB,MAAM+6E,OACnF,oBAAoBx7E,OAAOiC,KAAKxB,MAAM86E,SAAUt5E,KAAKxB,MAAMq6E,SAAW74E,KAAKxB,MAAM26E,aAAen5E,KAAKxB,MAAM+6E,QAC1GL,EAAOl5E,KAAK85E,aACZP,EAAQv5E,KAAK+5E,cACbH,EAAQ55E,KAAKg6E,cACbC,EAActsE,IAAYusE,aAAal6E,KAAKxB,MAAOk6E,EAAgByB,cACvE,OAAoBt/D,IAAM7P,cAAc,SAAUytE,EAAS,CACzD39D,IAAK9a,KAAK24E,YACTsB,EAAa,CACd18E,UAAWA,EACXkiB,SAAUA,IACRy5D,EAAMK,EAAOv5E,KAAKxB,MAAMgE,SAAUo3E,EAAoB/+D,IAAM7P,cAAc2O,IAAQ,UA5NtF5a,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA+NzC05E,EAtJ0B,CAuJjC19D,aAEFxK,EAAgBkoE,EAAiB,eAAgB,CAC/Ca,MAAO,KACPL,KAAM,KACNI,QAAS,OACTM,MAAO,KACPC,eAAgB,KAChBd,QAAS,KACTE,eAAgB,KAChBL,WAAY,KACZn5D,UAAU,EACVo5D,SAAS,EACTM,YAAa,0BAGf,IAAIiB,EAAsBv/D,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GAC1D,OAAoBD,IAAM7P,cAAc0tE,EAAiBD,EAAS,CAChEG,WAAY99D,GACXtc,Q,2ECtSU,SAASzD,EAAeN,EAAKG,GAC1C,OCLa,SAAyBH,GACtC,GAAIK,MAAME,QAAQP,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAKG,GACjD,GAAsB,qBAAXO,QAA4BA,OAAOC,YAAYgB,OAAO3B,GAAjE,CACA,IAAIc,EAAO,GACPC,GAAK,EACLC,GAAK,EACLH,OAAKmK,EAET,IACE,IAAK,IAAiCpK,EAA7BH,EAAKT,EAAIU,OAAOC,cAAmBI,GAAMH,EAAKH,EAAGS,QAAQC,QAChEL,EAAKM,KAAKR,EAAGS,QAETlB,GAAKW,EAAKZ,SAAWC,GAH8CY,GAAK,IAK9E,MAAOO,GACPN,GAAK,EACLH,EAAKS,EACL,QACA,IACOP,GAAsB,MAAhBN,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIO,EAAI,MAAMH,GAIlB,OAAOC,GFnBuB,CAAqBd,EAAKG,IAAM,OAAAy/E,EAAA,GAA2B5/E,EAAKG,IGLjF,WACb,MAAM,IAAIiC,UAAU,6IHIgF,K,6BILtG,6DAGA,SAAS47E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAS9B,SAASmB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAI5Z,IAAIwrE,EAAkC,SAAU1gE,IArEhD,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA0D1CF,CAAU8hE,EAAoB1gE,GAE9B,IA/FoBvb,EAAaU,EAAYC,EA+FzC6a,EAASkL,EAAau1D,GAE1B,SAASA,EAAmB97E,GAC1B,IAAI+G,EAQJ,OA1HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAkHpBsB,CAAgB6B,KAAMs6E,IAEtB/0E,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwX,QAAUzQ,EAAMyQ,QAAQ+D,KAAK7B,EAAuB3S,IAC1DA,EAAM2P,WAAa3P,EAAM2P,WAAW6E,KAAK7B,EAAuB3S,IAChEA,EAAMozE,WAA0B3yD,oBAAUzgB,EAAM/G,MAAMo6E,YAC/CrzE,EAsGT,OAhNoBlH,EA6GPi8E,EA7GoBv7E,EA6GA,CAAC,CAChCjB,IAAK,WACLhC,MAAO,WACL,OAA2B,MAApBkE,KAAKxB,MAAM1C,OAAiBkE,KAAKxB,MAAM1C,MAAMQ,WAAW3B,OAAS,GAAgC,MAA3BqF,KAAKxB,MAAM+7E,cAAwBv6E,KAAKxB,MAAM+7E,aAAaj+E,WAAW3B,OAAS,GAAKqF,KAAK24E,YAAc34E,KAAK24E,WAAW5pE,SAA4C,MAAjC/O,KAAK24E,WAAW5pE,QAAQjT,OAAiBkE,KAAK24E,WAAW5pE,QAAQjT,MAAMQ,WAAW3B,OAAS,IAE3S,CACDmD,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKxB,MAAM0W,YACblV,KAAKxB,MAAM0W,WAAWb,GAGpBrU,KAAKxB,MAAMod,WACbX,IAAU/F,WAAWb,EAAOrU,KAAKxB,MAAMod,UAAW5b,KAAKxB,MAAMqd,gBAGhE,CACD/d,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAImI,GAAkB,EAElBxc,KAAKxB,MAAMod,WAAa5b,KAAKxB,MAAMqd,eACrCW,EAAkBvB,IAAUu/D,SAASnmE,EAAOrU,KAAKxB,MAAMod,YAGrD5b,KAAKxB,MAAMwX,SACbhW,KAAKxB,MAAMwX,QAAQ3B,EAAOmI,GAGvBxc,KAAKxB,MAAM+T,WACV8B,EAAM9V,OAAOzC,MAAMnB,OAAS,EAAGoF,IAAWya,SAASnG,EAAM9V,OAAQ,YAAiBwB,IAAWma,YAAY7F,EAAM9V,OAAQ,eAG9H,CACDT,IAAK,mBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMo6E,WAEjB99D,IACiB,oBAARA,EACTA,EAAI9a,KAAK24E,WAAW5pE,SAEpB+L,EAAI/L,QAAU/O,KAAK24E,WAAW5pE,WAInC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAK84E,mBAED94E,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAlFvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAkF/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK24E,WAAW5pE,QACxBiQ,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,0BAA2B,CACpD,aAAc+C,KAAKxB,MAAMihB,SACzB,WAAYzf,KAAKy6E,YAChBz6E,KAAKxB,MAAMjB,WACVm9E,EAAa/sE,IAAYusE,aAAal6E,KAAKxB,MAAO87E,EAAmBH,cACzE,OAAoBt/D,IAAM7P,cAAc,QAASytE,EAAS,CACxD39D,IAAK9a,KAAK24E,YACT+B,EAAY,CACbn9E,UAAWA,EACXyY,QAAShW,KAAKgW,QACdd,WAAYlV,KAAKkV,iBA1MnBnW,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA8MzCs7E,EApH6B,CAqHpCt/D,aAEFxK,EAAgB8pE,EAAoB,eAAgB,CAClD1+D,UAAW,KACXC,cAAc,EACdk9D,QAAS,KACTE,eAAgB,KAChBjjE,QAAS,KACTd,WAAY,KACZ0jE,WAAY,OAGd,IAAI+B,EAAyB9/D,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GAC7D,OAAoBD,IAAM7P,cAAcsvE,EAAoB7B,EAAS,CACnEG,WAAY99D,GACXtc,Q,6BCrQL,6CAEA,SAASL,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASwb,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B8+E,EAAsB,SAAUhhE,IAxEpC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUoiE,EAAQhhE,GAElB,IAAIC,EAASkL,EAAa61D,GAE1B,SAASA,IAGP,OAFAz8E,EAAgB6B,KAAM46E,GAEf/gE,EAAOvQ,MAAMtJ,KAAM7C,WAG5B,OAAOy9E,EAXiB,CAYxB5/D,aA9BiClf,EAgCK,CACtC++E,UAAW,KACX/sE,MAAO,KACPgtE,UAAW,KACXC,YAAa,KACbC,OAAQ,KACR34E,KAAM,KACN44E,YAAa,KACbC,OAAQ,KACRC,UAAU,EACVC,kBAAkB,EAClBC,aAAc,KACdr9E,QAAQ,EACR8R,gBAAiB,aACjBwrE,kBAAmB,KACnBC,WAAY,OACZC,gBAAiB,KACjBC,cAAe,KACfC,eAAgB,KAChBC,kBAAmB,KACnBC,sBAAuB,KACvBx7E,MAAO,KACP7C,UAAW,KACXs+E,YAAa,KACbC,gBAAiB,KACjBC,UAAW,KACXC,cAAe,KACfC,YAAa,KACbC,gBAAiB,KACjBC,UAAU,EACVC,QAAQ,EACRC,cAAe,KACfjX,QAAS,KACTkX,QAAS,KACTC,OAAQ,KACRC,gBAAiB,KACjBC,qBAAsB,QACtBC,mBAAoB,KACpBC,mBAAoB,KACpBC,aAAc,KACdC,eAAgB,KAChBC,eAAgB,KAChBC,qBAAqB,EACrBC,YAAY,EACZC,eAAgB,aAChBC,WAAW,EACXC,YAAY,EACZC,aAAa,IA/Eet/E,EAgCN,kBAhCCd,EAgCT49E,GA9BZx+E,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BC1Ef,SAAS0U,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAlBT,oEAqBA,IAAIia,EAAa,SAASA,KArB1B,SAAyB7Y,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAoBtBsB,CAAgB6B,KAAMiX,IAGxBzG,EAAgByG,EAAY,UAAU,GAEtCzG,EAAgByG,EAAY,SAAU,MAEtCzG,EAAgByG,EAAY,cAAc,GAE1CzG,EAAgByG,EAAY,SAAU,CACpComE,MAAO,KACPt5E,QAAS,IACTu5E,KAAM,IACNvE,QAAS,KACTwE,MAAO,OAGT/sE,EAAgByG,EAAY,WAAY,MAKxC,IAAIqhD,EAAU,CACZ,GAAM,CACJklB,OAAQ,MACRC,OAAQ,KACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,SAAU,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC7EC,cAAe,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC1DC,YAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAClDC,WAAY,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAC3HC,gBAAiB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC/FrzC,MAAO,QACP/yB,MAAO,QACPqmE,WAAY,KACZC,eAAgB,EAChBC,WAAY,WACZC,KAAM,OACNC,OAAQ,SACRC,OAAQ,SACRC,eAAgB,qBA6BpB,SAASC,EAAa3gF,EAAK+4B,GACzB,IACE,OAAO6nD,EAAc7nD,GAAQ/4B,GAC7B,MAAO+M,GACP,MAAM,IAAInB,MAAM,OAAO3L,OAAOD,EAAK,gDAAgDC,OAAO84B,GAAU5f,EAAW4f,OAAQ,SAI3H,SAAS6nD,EAAc7nD,GAGrB,OAAOyhC,EAFOzhC,GAAU5f,EAAW4f,QAKpBz6B,OAAOyhC,OAAO,CAC7B8gD,aAAc,qBACdC,cAAe,sBACfC,WAAY,mBACZC,YAAa,oBACbC,OAAQ,eACRC,QAAS,gBACTC,kBAAmB,0BACnBC,kBAAmB,0BACnBC,mBAAoB,2BACpBC,gBAAiB,wBACjBC,WAAY,mBACZC,WAAY,mBACZC,YAAa,oBACbC,SAAU,iBACVC,MAAO,cACPC,kBAAmB,0BACnBC,kBAAmB,0BACnBC,mBAAoB,2BACpBC,gBAAiB,wBACjBC,WAAY,mBACZC,WAAY,mBACZC,YAAa,oBACbC,SAAU,iBACVC,SAAU,iBACVC,IAAK,YACLC,KAAM,aACNC,KAAM,aACNC,KAAM,aACNC,SAAU,iBACVC,UAAW,kBACXC,eAAgB,uBAChBC,cAAe,sBACfC,eAAgB,uBAChBC,SAAU,iBACVC,OAAQ,eACRC,WAAY,mBACZC,WAAY,mBACZC,YAAa,oBACbC,SAAU,iBACVC,UAAW,kBACXC,WAAY,mBACZC,aAAc,qBACdC,aAAc,qBACdC,MAAO,cACPC,oBAAqB,4BACrBC,oBAAqB,4BACrBC,qBAAsB,6BACtBC,kBAAmB,0BACnBC,aAAc,qBACdC,aAAc,qBACdC,cAAe,sBACfC,WAAY,mBACZC,MAAO,cACPC,MAAO,cACPC,eAAgB,uBAChBC,aAAc,qBACdC,MAAO,cACPC,IAAK,YACLC,QAAS,gBACTC,SAAU,iBACVC,QAAS,gBACTC,KAAM,aACNC,YAAa,oBACbC,QAAS,gBACTC,QAAS,gBACTC,eAAgB,uBAChBC,WAAY,mBACZC,OAAQ,eACRC,SAAU,iBACVC,MAAO,cACPC,WAAY,mBACZC,WAAY,mBACZC,SAAU,iBACVC,mBAAoB,2BACpBC,qBAAsB,8BACtBC,cAAe,sBACfC,UAAW,kBACXC,IAAK,YACLC,SAAU,iBACVC,cAAe,sBACfC,aAAc,qBACdC,WAAY,mBACZC,OAAQ,eACRC,SAAU,iBACVC,KAAM,aACNC,OAAQ,eACRC,aAAc,qBACdC,KAAM,aACNC,YAAa,oBACbC,OAAQ,eACRC,QAAS,gBACTC,OAAQ,eACRC,MAAO,cACPC,OAAQ,eACRC,MAAO,cACPC,KAAM,aACNC,QAAS,gBACTC,MAAO,cACPC,OAAQ,eACRC,MAAO,cACPC,YAAa,oBACbC,KAAM,aACNC,IAAK,YACLC,KAAM,aACNC,KAAM,aACNC,UAAW,kBACXC,KAAM,aACNC,IAAK,YACLC,WAAY,mBACZC,UAAW,kBACXC,aAAc,qBACdC,MAAO,cACPC,OAAQ,eACRC,WAAY,mBACZC,KAAM,aACNC,QAAS,gBACTC,UAAW,kBACXC,MAAO,cACPC,OAAQ,eACRC,OAAQ,eACRC,WAAY,mBACZC,MAAO,cACPC,KAAM,aACNC,YAAa,oBACbC,KAAM,aACNC,UAAW,kBACXC,MAAO,cACPC,gBAAiB,wBACjBC,SAAU,iBACVC,UAAW,kBACXC,SAAU,iBACVC,QAAS,gBACTC,OAAQ,eACRC,MAAO,cACPC,KAAM,aACNC,aAAc,qBACdC,YAAa,oBACbC,OAAQ,eACRC,KAAM,aACNC,UAAW,kBACXC,OAAQ,eACRC,cAAe,sBACfC,QAAS,gBACTC,SAAU,iBACVC,QAAS,gBACTC,MAAO,cACPC,UAAW,kBACXC,UAAW,kBACXC,oBAAqB,4BACrBC,kBAAmB,0BACnBC,gBAAiB,wBACjBC,cAAe,sBACfC,SAAU,iBACVC,qBAAsB,6BACtBC,iBAAkB,yBAClBC,mBAAoB,2BACpBC,eAAgB,uBAChBC,UAAW,kBACXC,sBAAuB,8BACvBC,oBAAqB,4BACrBC,kBAAmB,0BACnBC,gBAAiB,wBACjBC,QAAS,gBACTC,KAAM,aACNC,QAAS,gBACTC,OAAQ,eACRC,KAAM,aACNC,kBAAmB,0BACnBC,cAAe,sBACfC,iBAAkB,yBAClBC,aAAc,qBACdC,IAAK,YACLC,MAAO,cACPC,OAAQ,eACRC,IAAK,YACLC,KAAM,aACNC,SAAU,iBACVC,YAAa,oBACbC,UAAW,kBACXC,OAAQ,eACRC,aAAc,qBACdC,MAAO,cACPC,MAAO,cACPC,QAAS,gBACTC,KAAM,aACNC,OAAQ,eACRC,OAAQ,eACRC,UAAW,kBACXC,WAAY,mBACZC,UAAW,kBACXC,KAAM,aACNC,MAAO,cACPC,MAAO,cACPC,MAAO,cACPC,YAAa,oBACbC,WAAY,mBACZC,UAAW,kBACXC,QAAS,gBACTC,OAAQ,eACRC,KAAM,aACNC,gBAAiB,wBACjBC,gBAAiB,0BAGGhvF,OAAOyhC,OAAO,CAClCwtD,QAAS,UACTrG,KAAM,OACNsG,KAAM,OACNC,MAAO,UAGMt0E,O,gBC/Tf5c,EAAOC,QAAUC,EAAQ,M,gBCAzB,OAOC,WACA,aAEA,IAAIixF,EAAS,GAAG98E,eAEhB,SAASzR,IAGR,IAFA,IAAIK,EAAU,GAEL1C,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAC1C,IAAI+0D,EAAMxyD,UAAUvC,GACpB,GAAK+0D,EAAL,CAEA,IAAI87B,SAAiB97B,EAErB,GAAgB,WAAZ87B,GAAoC,WAAZA,EAC3BnuF,EAAQzB,KAAK8zD,QACP,GAAI70D,MAAME,QAAQ20D,IACxB,GAAIA,EAAIh1D,OAAQ,CACf,IAAI+wF,EAAQzuF,EAAWqM,MAAM,KAAMqmD,GAC/B+7B,GACHpuF,EAAQzB,KAAK6vF,SAGT,GAAgB,WAAZD,EACV,GAAI97B,EAAIrzD,WAAaF,OAAOC,UAAUC,SACrC,IAAK,IAAIwB,KAAO6xD,EACX67B,EAAO9vF,KAAKi0D,EAAK7xD,IAAQ6xD,EAAI7xD,IAChCR,EAAQzB,KAAKiC,QAIfR,EAAQzB,KAAK8zD,EAAIrzD,aAKpB,OAAOgB,EAAQY,KAAK,KAGgB7D,EAAOC,SAC3C2C,EAAW0uF,QAAU1uF,EACrB5C,EAAOC,QAAU2C,QAGX,kBACL,OAAOA,GADF,QAAe,OAAf,aA5CP,I,gBCPD5C,EAAOC,QAAU,EAAQ,M,6BCAzB,6DASA,SAASgE,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI88E,EAAwB,SAAUhyE,IApEtC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUozE,EAAUhyE,GAEpB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAa6mE,GAE1B,SAASA,EAASptF,GAChB,IAAI+G,EAaJ,OA9HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAM4rF,IAEtBrmF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EA+JT,OA7QoBlH,EAiHPutF,EAjHoB7sF,EAiHV,CAAC,CACtBjB,IAAK,UACLhC,MAAO,SAAiB0D,GACtB,IAAKQ,KAAKxB,MAAMihB,WAAazf,KAAKxB,MAAM6T,UAAYrS,KAAKxB,MAAM+T,SAAU,CACvE,IAAIzW,EAAQkE,KAAK+rF,YAAc/rF,KAAKxB,MAAMwtF,WAAahsF,KAAKxB,MAAMytF,UAClEjsF,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAenW,EACf1D,MAAOkE,KAAKxB,MAAM1C,MAClBowF,QAASpwF,EACTqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACNf,KAAM,WACNf,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOkE,KAAKxB,MAAM1C,MAClBowF,QAASpwF,KAGbkE,KAAK8rF,SAAS/8E,QAAQm9E,SAAWlsF,KAAK+rF,YACtC/rF,KAAK8rF,SAAS/8E,QAAQq9E,QACtB5sF,EAAEyV,oBAGL,CACDnX,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjCxjB,KAAK8rF,SAAS/8E,QAAQm9E,QAAUlsF,KAAK+rF,YAEjCvoE,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAvFvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAuF/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,YACLhC,MAAO,SAAmBuY,GACN,UAAdA,EAAMvW,MACRkC,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAGT,CACDnX,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0tF,UAAYlsF,KAAKxB,MAAMytF,YAE1C,CACDnuF,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETssF,EAAiBrvF,YAAW,yBAA0B,CACxD,qBAAsB+C,KAAK+rF,YAC3B,sBAAuB/rF,KAAKxB,MAAMihB,SAClC,qBAAsBzf,KAAKod,MAAMyuE,SAChC7rF,KAAKxB,MAAMjB,WACVgvF,EAAWtvF,YAAW,iBAAkB,CAC1C,cAAe+C,KAAK+rF,YACpB,aAAc/rF,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,UAEpBW,EAAYvvF,YAAW,sBAAuBuT,EAAgB,GAAIxQ,KAAKxB,MAAM06E,KAAMl5E,KAAK+rF,cAC5F,OAAoBlxE,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAOpY,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAW+uF,EACXlsF,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKggE,QACdysB,cAAezsF,KAAKxB,MAAMiuF,cAC1B3yE,YAAa9Z,KAAKxB,MAAMsb,aACVe,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACVtuF,KAAM,WACN,kBAAmBwC,KAAKxB,MAAMkuF,eAC9B5oE,GAAI9jB,KAAKxB,MAAMmuF,QACflwF,KAAMuD,KAAKxB,MAAM/B,KACjBqoE,SAAU9kE,KAAKxB,MAAMsmE,SACrB8nB,eAAgB5sF,KAAK+rF,YACrBt3E,UAAWzU,KAAKyU,UAChBjC,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbgN,SAAUzf,KAAKxB,MAAMihB,SACrBpN,SAAUrS,KAAKxB,MAAM6T,SACrBw6E,SAAU7sF,KAAKxB,MAAMquF,YACLhyE,IAAM7P,cAAc,MAAO,CAC3CzN,UAAWgvF,EACXzxE,IAAK,SAAa7a,GAChB,OAAO0a,EAAOmyE,IAAM7sF,GAEtB8jB,KAAM,WACN,eAAgB/jB,KAAK+rF,aACPlxE,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAWivF,SAvQbztF,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA2QzC4sF,EAlLmB,CAmL1B5wE,aAEFxK,EAAgBo7E,EAAU,eAAgB,CACxC9nE,GAAI,KACJgoE,SAAU,KACVa,QAAS,KACT7wF,MAAO,KACPW,KAAM,KACNyvF,SAAS,EACTD,WAAW,EACXD,YAAY,EACZ5rF,MAAO,KACP7C,UAAW,KACXkiB,UAAU,EACVotE,UAAU,EACVx6E,UAAU,EACVyyD,SAAU,KACVoU,KAAM,cACNH,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBn6E,SAAU,KACVuH,YAAa,KACb2yE,cAAe,Q,6BCxTjB,6EAKA,SAASjyF,EAAoBC,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOD,EAAoBC,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOzB,EAAoByB,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAW3B,EAAoByB,EAAGC,QAA3G,GAQ2DU,CAA8BnC,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASowF,EAAep0E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P6tF,GAA+B,OAAO,WAAkC,IAAsCv+E,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIw+E,EAA8B,SAAU1zE,GAC1CpB,EAAU80E,EAAgB1zE,GAE1B,IAAIC,EAASuzE,EAAeE,GAE5B,SAASA,EAAe9uF,GACtB,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAMstF,IAEtB/nF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB+uF,eAAiBhoF,EAAMgoF,eAAexzE,KAAK7B,EAAuB3S,IACxEA,EAAMioF,aAAejoF,EAAMioF,aAAazzE,KAAK7B,EAAuB3S,IAC7DA,EAsQT,OAnQAzG,EAAawuF,EAAgB,CAAC,CAC5BxvF,IAAK,oBACLhC,MAAO,WAGL,GAFAkE,KAAKytF,kBAEAztF,KAAKxB,MAAM49E,OAQdp8E,KAAK0tF,WAAWttF,MAAMsD,cAAgB3D,IAAW4tF,0BAA4B,SARvD,CACtB,IAAIC,EAAiB7tF,IAAW4tF,0BAChC3tF,KAAK6tF,gBAAgBztF,MAAMiB,YAAcusF,EAAiB,KAEtD5tF,KAAK8tF,kBACP9tF,KAAK8tF,gBAAgB1tF,MAAMiB,YAAcusF,EAAiB,SAM/D,CACD9vF,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,EAAWsqE,GACnD/tF,KAAKxB,MAAMo+C,eAAiBp5B,EAAUo5B,cACxC58C,KAAKytF,mBAGFztF,KAAKxB,MAAM49E,QAAUp8E,KAAKxB,MAAMwvF,gBACnChuF,KAAKiuF,gBAAgB7tF,MAAMkB,OAAStB,KAAKxB,MAAM0vF,aAAeluF,KAAKxB,MAAM2vF,iBAAmB,MAG1FnuF,KAAKouF,wBAA0BpuF,KAAKxB,MAAMq6E,UAC5C74E,KAAKouF,wBACLpuF,KAAKouF,sBAAwB,QAGhC,CACDtwF,IAAK,kBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMo+C,aAAc,CAC3B,IAAIyxC,EAAaruF,KAAK8J,UAAUwkF,uBAEhC,GAAID,EAAY,CACd,IAAIE,EAAmBxuF,IAAWiI,WAAWqmF,EAAY,gCACzDruF,KAAK0tF,WAAWttF,MAAM0sE,UAAYyhB,EAAiBnuF,MAAM0sE,eAEzD,IAA8C,IAA1C9sE,KAAKxB,MAAMo+C,aAAalxC,QAAQ,KAAa,CAC/C,IAAI8iF,EAAqBxuF,KAAKyuF,uBAAuBzuF,KAAK8J,WAC1D9J,KAAK0tF,WAAWttF,MAAM6H,WAAa,SACnCjI,KAAK0tF,WAAWttF,MAAMkB,OAAS,QAE/B,IAAIotF,EAAkB3uF,IAAWyG,eAAegoF,GAI5CG,EAHiB5uF,IAAWyG,eAAegoF,EAAmBv0E,eAAiBzC,SAASxX,KAAKxB,MAAMo+C,aAAc,IAAM,KACxG8xC,EAAkB,KAIjC1uF,KAAKxB,MAAM49E,SACbuS,GAAoB5uF,IAAW4tF,2BAGjC3tF,KAAK0tF,WAAWttF,MAAMkB,OAAS,OAC/BtB,KAAK0tF,WAAWttF,MAAM0sE,UAAY6hB,EAAmB,KACrD3uF,KAAK0tF,WAAWttF,MAAM6H,WAAa,eAEnCjI,KAAK0tF,WAAWttF,MAAM0sE,UAAY9sE,KAAKxB,MAAMo+C,gBAKpD,CACD9+C,IAAK,yBACLhC,MAAO,SAAgCyG,GACrC,GAAIA,EAAS,CAGX,IAFA,IAAItC,EAAKsC,EAEFtC,IAAOF,IAAW6uF,SAAS3uF,EAAI,gBACpCA,EAAKA,EAAGga,cAGV,OAAOha,EAEP,OAAO,OAGV,CACDnC,IAAK,iBACLhC,MAAO,WACLkE,KAAK6uF,aAAa5tF,WAAa,IAEhC,CACDnD,IAAK,eACLhC,MAAO,WACL,IAGIyyF,EAHA5zE,EAAS3a,KAETquF,EAAaruF,KAAK8J,UAAUwkF,uBAiBhC,GAdID,IACFE,EAAmBxuF,IAAWiI,WAAWqmF,EAAY,iCAGvDruF,KAAK6tF,gBAAgBztF,MAAMgB,YAAc,EAAIpB,KAAK0tF,WAAWzsF,WAAa,KAEtEjB,KAAK8tF,kBACP9tF,KAAK8tF,gBAAgB1tF,MAAMgB,YAAc,EAAIpB,KAAK0tF,WAAWzsF,WAAa,MAGxEstF,IACFA,EAAiBztF,UAAYd,KAAK0tF,WAAW5sF,WAG3Cd,KAAKxB,MAAMwvF,cAAe,CAC5B,IAAI/oF,EAAWlF,IAAW87C,gBAAgB77C,KAAK0tF,YAC3CoB,EAAc/uF,IAAWyG,eAAexG,KAAK+uF,aAC7CC,EAAahvF,KAAKxB,MAAM2vF,iBAAmBnuF,KAAKxB,MAAMopE,KAEtDqnB,EADqBlvF,IAAWyG,eAAexG,KAAKiuF,iBACnBe,GAAc,EAC/CE,EAAgBlvF,KAAK+uF,YAAY3uF,MAAMgC,KAAO,IAElD,GAAIpC,KAAK0tF,WAAW5sF,UAAYmE,EAAW3E,WAAW4uF,GAAiBJ,GAAe9uF,KAAK0tF,WAAW5sF,UAAYR,WAAW4uF,GAAgB,CACvIlvF,KAAKmvF,eACPnvF,KAAKmvF,aAAa/uF,MAAM8H,QAAU,QAClClI,KAAKmvF,aAAa/uF,MAAMgC,IAAMpC,KAAK0tF,WAAW5sF,UAAY,MAG5D,IAAIsuF,EAAOhqF,KAAKsmB,MAAM1rB,KAAK0tF,WAAW5sF,UAAYmuF,EAAYjvF,KAAK0tF,WAAW9wC,cAAgB,EAE1F58C,KAAKxB,MAAM6wF,kBACbrvF,KAAKxB,MAAM6wF,gBAAgB,CACzBD,KAAMA,IAGRpvF,KAAKouF,sBAAwB,WACvBzzE,EAAOw0E,eACTx0E,EAAOw0E,aAAa/uF,MAAM8H,QAAU,QAGtCyS,EAAOo0E,YAAY3uF,MAAMgC,KAAOgtF,EAAO,GAAKJ,EAAa,WAMlE,CACDlxF,IAAK,iBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM8wF,SAAWtvF,KAAKxB,MAAM8wF,QAAQ30F,OACvBkgB,IAAM7P,cAAc,WAAY,CAClDzN,UAAW,mCACVyC,KAAKxB,MAAM8wF,QAAQ3xF,KAAI,SAAUmqE,EAAKltE,GACvC,OAAoBigB,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKgqE,EAAItpE,MAAMsP,MAAQ,IAAMlT,EAC7BwF,MAAO0nE,EAAItpE,MAAMq9E,aAAe/T,EAAItpE,MAAM4B,MAC1C7C,UAAWuqE,EAAItpE,MAAMs9E,iBAAmBhU,EAAItpE,MAAMjB,gBAI/C,OAGV,CACDO,IAAK,qBACLhC,MAAO,SAA4ByzF,GACjC,IAAIruE,EAASlhB,KAEb,OAAIA,KAAKxB,MAAMwvF,cACOnzE,IAAM7P,cAAc,QAAS,CAC/C8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAOiuE,aAAelvF,GAE/BG,MAAO,CACLgC,IAAK,IACL8F,QAAS,QAEX3K,UAAW,iGACVgyF,EAAUvvF,KAAKxB,MAAMy8E,aAEjB,OAGV,CACDn9E,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETzC,EAAYN,YAAW,8BAA+B,CACxD,0BAA2B+C,KAAKxB,MAAM49E,OACtC,6BAA8Bp8E,KAAKxB,MAAM49E,QAAUp8E,KAAKxB,MAAMgxF,cAE5DC,EAAqBxyF,YAAW,oCAAqC+C,KAAKxB,MAAMgzE,eAAgB,CAClG,4BAA6BxxE,KAAKxB,MAAMwvF,gBAEtC0B,EAAuBzyF,YAAW,sCAAuC+C,KAAKxB,MAAMgzE,gBACpFme,EAAuB1yF,YAAW,sCAAuC+C,KAAKxB,MAAMgzE,gBACpFoe,EAAiBxzF,OAAOg8E,OAAO,CACjCh2E,IAAK,KACJpC,KAAKxB,MAAMqxF,YACV3vF,EAAQF,KAAKxB,MAAM8wF,QAAUtvF,KAAKxB,MAAM49E,OAASp8E,KAAKxB,MAAMgxF,YAAc,eAAiBxvF,KAAKxB,MAAMgxF,YAAc,IAAM,EAC1HltF,EAAOtC,KAAKxB,MAAM49E,OAAS,KAAOp8E,KAAKxB,MAAMgxF,YAC7CD,EAAWvvF,KAAK8vF,iBAChBX,EAAenvF,KAAK+vF,mBAAmBR,GACvCS,GAAuBhwF,KAAKxB,MAAM49E,QAAUp8E,KAAKxB,MAAMo+C,aAAe,CACxE9C,UAAW,UACT,KACJ,OAAoBj/B,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,EACX6C,MAAO,CACLF,MAAOA,EACPoC,KAAMA,GAERwY,IAAK,SAAa7a,GAChB0hB,EAAO7X,UAAY7J,IAEP4a,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,gCACXud,IAAK,SAAa7a,GAChB0hB,EAAOktE,aAAe5uF,GAExBgwF,SAAUjwF,KAAKutF,gBACD1yE,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oCACXud,IAAK,SAAa7a,GAChB0hB,EAAOksE,gBAAkB5tF,IAEb4a,IAAM7P,cAAc,QAAS,CAC3CzN,UAAWmyF,EACXtvF,MAAOJ,KAAKxB,MAAMqxF,YACjBN,EAAUvvF,KAAKxB,MAAMw8E,OAAQh7E,KAAKxB,MAAM0xF,cAA4Br1E,IAAM7P,cAAc,MAAO,CAChGzN,UAAW,8BACXud,IAAK,SAAa7a,GAChB0hB,EAAO+rE,WAAaztF,GAEtBG,MAAO4vF,EACPC,SAAUjwF,KAAKwtF,cACD3yE,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAOotE,YAAc9uF,GAE9BG,MAAOwvF,EACPryF,UAAWkyF,GACVF,EAAUvvF,KAAKxB,MAAM6D,MAAO8sF,EAA2Bt0E,IAAM7P,cAAc,MAAO,CACnFzN,UAAW,+BACXud,IAAK,SAAa7a,GAChB0hB,EAAOssE,gBAAkBhuF,MAEX4a,IAAM7P,cAAc,MAAO,CAC3CzN,UAAW,gCACXud,IAAK,SAAa7a,GAChB0hB,EAAOwuE,aAAelwF,IAEV4a,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oCACXud,IAAK,SAAa7a,GAChB0hB,EAAOmsE,gBAAkB7tF,IAEb4a,IAAM7P,cAAc,QAAS,CAC3CzN,UAAWoyF,EACXvvF,MAAOJ,KAAKxB,MAAMqxF,YACjBN,EAAUvvF,KAAKxB,MAAM08E,eAIrBoS,EAnRyB,CAoRhCtyE,aAmCF,SAASo1E,EAAyBn/E,EAAQo/E,GACxC,GAAc,MAAVp/E,EAAgB,MAAO,GAC3B,IACInT,EAAKlD,EADL2D,EAjBN,SAAuC0S,EAAQo/E,GAC7C,GAAc,MAAVp/E,EAAgB,MAAO,GAC3B,IAEInT,EAAKlD,EAFL2D,EAAS,GACT+xF,EAAal0F,OAAOqS,KAAKwC,GAG7B,IAAKrW,EAAI,EAAGA,EAAI01F,EAAW31F,OAAQC,IACjCkD,EAAMwyF,EAAW11F,GACby1F,EAAS3kF,QAAQ5N,IAAQ,IAC7BS,EAAOT,GAAOmT,EAAOnT,IAGvB,OAAOS,EAKMgyF,CAA8Bt/E,EAAQo/E,GAGnD,GAAIj0F,OAAOwU,sBAAuB,CAChC,IAAI4/E,EAAmBp0F,OAAOwU,sBAAsBK,GAEpD,IAAKrW,EAAI,EAAGA,EAAI41F,EAAiB71F,OAAQC,IACvCkD,EAAM0yF,EAAiB51F,GACnBy1F,EAAS3kF,QAAQ5N,IAAQ,GACxB1B,OAAOC,UAAUo0F,qBAAqB/0F,KAAKuV,EAAQnT,KACxDS,EAAOT,GAAOmT,EAAOnT,IAIzB,OAAOS,EAGT,SAASk6E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASuzF,EAAe13E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PmxF,GAA+B,OAAO,WAAkC,IAAsC7hF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAtEha0B,EAAgB88E,EAAgB,eAAgB,CAC9CtS,OAAQ,KACR34E,KAAM,KACN64E,OAAQ,KACRoU,QAAS,KACTlT,OAAQ,KACRoT,YAAa,KACbU,WAAY,KACZlC,eAAe,EACfG,iBAAkB,KAClBvmB,KAAM,KACNsmB,aAAc,KACdrV,SAAS,EACTgX,WAAY,KACZre,eAAgB,KAChB6d,gBAAiB,OA0DnB,IAAIuB,EAA8B,SAAUh3E,GAC1CpB,EAAUo4E,EAAgBh3E,GAE1B,IAAIC,EAAS62E,EAAeE,GAE5B,SAASA,EAAepyF,GACtB,IAAI+G,EAaJ,OAXApH,EAAgB6B,KAAM4wF,IAEtBrrF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMgN,SAAWhN,EAAMgN,SAASwH,KAAK7B,EAAuB3S,IAC5DA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EA8ET,OA3EAzG,EAAa8xF,EAAgB,CAAC,CAC5B9yF,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,UAIrB7wF,KAAK+vB,MAAMq8D,UAEZ,CACDtuF,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,WACLhC,MAAO,SAAkBuY,GACvBrU,KAAKggE,QAAQ3rD,KAEd,CACDvW,IAAK,YACLhC,MAAO,SAAmBuY,GACL,UAAfA,EAAM49B,OACRjyC,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAGT,CACDnX,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,4CAA6C,CACtE,cAAe+C,KAAKxB,MAAMsyF,SAC1B,UAAW9wF,KAAKod,MAAMyuE,UAEpBpvF,EAAO,GAAGsB,OAAOiC,KAAKxB,MAAMuyF,QAAU/wF,KAAKxB,MAAMuyF,QAAU,IAAM,GAAI,YACzE,OAAoBl2E,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,6BACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3CvO,KAAMA,EACNqe,IAAK,SAAa7a,GAChB,OAAO0a,EAAOoV,MAAQ9vB,GAExBzC,KAAM,QACN0uF,QAASlsF,KAAKxB,MAAMsyF,SACpBt+E,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbF,SAAUvS,KAAKuS,SACfkC,UAAWzU,KAAKyU,aACAoG,IAAM7P,cAAc,MAAO,CAC3CzN,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACdj8C,KAAM,QACN,eAAgB/jB,KAAKxB,MAAMsyF,UACbj2E,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,yCAKVqzF,EAjGyB,CAkGhC51E,aAQF,SAASg2E,EAAeh4E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PyxF,GAA+B,OAAO,WAAkC,IAAsCniF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IANha0B,EAAgBogF,EAAgB,eAAgB,CAC9CC,QAAS,KACT7wB,QAAS,KACT8wB,UAAU,IAMZ,IAAII,EAA2B,SAAUt3E,GACvCpB,EAAU04E,EAAat3E,GAEvB,IAAIC,EAASm3E,EAAeE,GAE5B,SAASA,EAAY1yF,GACnB,IAAI+G,EAYJ,OAVApH,EAAgB6B,KAAMkxF,IAEtB3rF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EAuET,OApEAzG,EAAaoyF,EAAa,CAAC,CACzBpzF,IAAK,UACLhC,MAAO,SAAiBuY,GACjBrU,KAAKxB,MAAMihB,WACdzf,KAAKwd,SAAS,CACZquE,SAAS,IAGP7rF,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjB3E,QAASlsF,KAAKxB,MAAMsyF,cAK3B,CACDhzF,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,YACLhC,MAAO,SAAmBuY,GACL,UAAfA,EAAM49B,OACRjyC,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAGT,CACDnX,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,yCAA0C,CACnE,cAAe+C,KAAKxB,MAAMsyF,SAC1B,aAAc9wF,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,UAEpBsF,EAAgBl0F,YAAW,8BAA+B,CAC5D,cAAe+C,KAAKxB,MAAMsyF,WAExBhsB,EAAW9kE,KAAKxB,MAAMihB,SAAW,KAAO,IAC5C,OAAoB5E,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,yBACXyiE,QAAShgE,KAAKggE,SACAnlD,IAAM7P,cAAc,MAAO,CACzCzN,UAAWA,EACXwmB,KAAM,WACN,eAAgB/jB,KAAKxB,MAAMsyF,SAC3BhsB,SAAUA,EACVrwD,UAAWzU,KAAKyU,UAChBjC,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,QACCoI,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,UAKVD,EAzFsB,CA0F7Bl2E,aAQF,SAASo2E,EAAU1gF,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAAS4iF,EAAgB9yF,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKw2F,EAAUh1F,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmBmgF,EAAUh1F,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAAS+yF,EAAet4E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P+xF,GAA+B,OAAO,WAAkC,IAAsCziF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAVha0B,EAAgB0gF,EAAa,eAAgB,CAC3CL,QAAS,KACT7wB,QAAS,KACTvgD,UAAU,IAUZ,IAAI+xE,EAAwB,SAAU53E,GACpCpB,EAAUg5E,EAAU53E,GAEpB,IAAIC,EAASy3E,EAAeE,GAE5B,SAASA,EAAShzF,GAChB,IAAI+G,EAeJ,OAbApH,EAAgB6B,KAAMwxF,IAEtBjsF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZq0E,QAASlsF,EAAM/G,MAAMizF,SAEvBlsF,EAAMmsF,gBAAkBnsF,EAAMmsF,gBAAgB33E,KAAK7B,EAAuB3S,IAC1EA,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMuU,YAAcvU,EAAMuU,YAAYC,KAAK7B,EAAuB3S,IAClEA,EAAMosF,UAAYpsF,EAAMosF,UAAU53E,KAAK7B,EAAuB3S,IAC9DA,EAAMqsF,cAAgBrsF,EAAMqsF,cAAc73E,KAAK7B,EAAuB3S,IAC/DA,EAskBT,OAnkBAzG,EAAa0yF,EAAU,CAAC,CACtB1zF,IAAK,kBACLhC,MAAO,SAAyBuY,GAC1BrU,KAAKxB,MAAMqzF,aACb7xF,KAAKxB,MAAMqzF,YAAY,CACrBl8E,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,UAIrBx8E,EAAMY,mBAEP,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GAaxB,GAZ4B,QAAxBrU,KAAKxB,MAAMszF,WACO,KAAhBz9E,EAAMM,OAAgC,IAAhBN,EAAMM,OAE9B3U,KAAK+xF,qBAAqB19E,GAAO,GAGf,KAAhBA,EAAMM,OAER3U,KAAK+xF,qBAAqB19E,GAAO,IAIjCrU,KAAKxB,MAAMwzF,mBAAoB,CACjC,IAAIC,EAAO59E,EAAMoG,cAEjB,OAAQpG,EAAMM,OAEZ,KAAK,GACH,IAAIu9E,EAAWlyF,KAAKmyF,uBAAuBF,GAEvCC,IACFlyF,KAAKoyF,eAAeH,EAAMC,GAC1BA,EAAS9F,SAGX/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAIo9E,EAAWryF,KAAKsyF,uBAAuBL,GAEvCI,IACFryF,KAAKoyF,eAAeH,EAAMI,GAC1BA,EAASjG,SAGX/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAIs9E,EAAUvyF,KAAKwyF,sBAAsBP,EAAKh4E,eAE9C,GAAIs4E,EAAS,CACX,IAAIE,EAASF,EAAQ/vF,SAASxC,KAAKxB,MAAM69D,OACzCr8D,KAAKoyF,eAAeH,EAAMQ,GAC1BA,EAAOrG,QAGT/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAIy9E,EAAU1yF,KAAK2yF,sBAAsBV,EAAKh4E,eAE9C,GAAIy4E,EAAS,CACX,IAAIE,EAAWF,EAAQlwF,SAASxC,KAAKxB,MAAM69D,OAC3Cr8D,KAAKoyF,eAAeH,EAAMW,GAC1BA,EAASxG,QAGX/3E,EAAMY,iBACN,MAGF,KAAK,GAEL,KAAK,GACHjV,KAAKggE,QAAQ3rD,GACbA,EAAMY,qBAKb,CACDnX,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIsG,EAAS3a,KAEe,QAAxBA,KAAKxB,MAAMszF,UAAsB9xF,KAAKxB,MAAM+9E,SAAWv8E,KAAKod,MAAMq0E,UAAYzxF,KAAKxB,MAAMq0F,eAAiB7yF,KAAKxB,MAAMq0F,cAAgB7yF,KAAKxB,MAAMsyF,YAClJ9wF,KAAK8yF,WAAY,EAEb9yF,KAAKxB,MAAMm+E,oBACb38E,KAAKxB,MAAMm+E,mBAAmB,CAC5BhnE,cAAetB,EACf0+E,YAAa/yF,KAAKxB,QAItBwB,KAAKwd,SAAS,CACZi0E,SAAS,IACR,WACG92E,EAAOnc,MAAMo+E,cACfjiE,EAAOnc,MAAMo+E,aAAa,CACxBjnE,cAAetB,EACf0+E,YAAap4E,EAAOnc,QAIkB,UAAtCmc,EAAOnc,MAAMi+E,uBACf9hE,EAAOq4E,2BAEPr4E,EAAOs4E,qBAAuB,SAAUzzF,GACjCmb,EAAOu4E,iBAAiB1zF,EAAEjB,UAC7Boc,EAAOm4E,WAAY,IAIvB1uE,IAAeG,GAAG,gBAAiB5J,EAAOs4E,uBAGxCt4E,EAAOnc,MAAM20F,qBACfx4E,EAAOnc,MAAM20F,oBAAoB,CAC/BC,SAAUz4E,EAAOnc,MAAM40F,SACvBC,UAAW14E,EAAOnc,MAAM69D,MACxBo1B,SAAS,QAMbzxF,KAAKxB,MAAMwzF,oBAAsBhyF,KAAKxB,MAAMwhE,SAC9ChgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfvY,MAAO6R,IAAYI,iBAAiB/N,KAAKxB,MAAMqyF,QAAS7wF,KAAKxB,MAAMsP,OACnEA,MAAO9N,KAAKxB,MAAMsP,MAClB+iF,QAAS7wF,KAAKxB,MAAMqyF,QACpBuC,SAAUpzF,KAAKxB,MAAM40F,SACrBC,UAAWrzF,KAAKxB,MAAM69D,MACtBy0B,SAAU9wF,KAAKgzE,iBAIpB,CACDl1E,IAAK,SACLhC,MAAO,SAAgBuY,GACrBrU,KAAK8yF,WAAY,EAEW,QAAxB9yF,KAAKxB,MAAMszF,UAAsB9xF,KAAKod,MAAMq0E,SAA+C,SAApCzxF,KAAKxB,MAAMi+E,sBACpEz8E,KAAK+xF,qBAAqB19E,GAAO,KAGpC,CACDvW,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAMsb,aACb9Z,KAAKxB,MAAMsb,YAAY,CACrBnE,cAAetB,EACfvY,MAAO6R,IAAYI,iBAAiB/N,KAAKxB,MAAMqyF,QAAS7wF,KAAKxB,MAAMsP,OACnEA,MAAO9N,KAAKxB,MAAMsP,MAClB+iF,QAAS7wF,KAAKxB,MAAMqyF,QACpBuC,SAAUpzF,KAAKxB,MAAM40F,SACrBC,UAAWrzF,KAAKxB,MAAM69D,MACtBy0B,SAAU9wF,KAAKgzE,iBAIpB,CACDl1E,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAMmzF,WACb3xF,KAAKxB,MAAMmzF,UAAU,CACnBh8E,cAAetB,EACfvY,MAAO6R,IAAYI,iBAAiB/N,KAAKxB,MAAMqyF,QAAS7wF,KAAKxB,MAAMsP,OACnEA,MAAO9N,KAAKxB,MAAMsP,MAClB+iF,QAAS7wF,KAAKxB,MAAMqyF,QACpBuC,SAAUpzF,KAAKxB,MAAM40F,SACrBC,UAAWrzF,KAAKxB,MAAM69D,MACtBy0B,SAAU9wF,KAAKgzE,iBAIpB,CACDl1E,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5BrU,KAAKggE,QAAQ3rD,KAEd,CACDvW,IAAK,2BACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKszF,uBACRtzF,KAAKszF,qBAAuB,SAAU9zF,IAC/B0hB,EAAO4xE,WAAa5xE,EAAOgyE,iBAAiB1zF,EAAEjB,SACjD2iB,EAAO6wE,qBAAqBvyF,GAAG,GAGjC0hB,EAAO4xE,WAAY,GAGrBpyF,SAAS8M,iBAAiB,QAASxN,KAAKszF,yBAG3C,CACDx1F,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/B,OAAOyB,KAAK8J,aAAe9J,KAAK8J,UAAUypF,WAAWh1F,IAAWyB,KAAK8J,UAAUzG,SAAS9E,MAEzF,CACDT,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,IAAIsN,EAAS3hB,KAETA,KAAKxB,MAAMk+E,oBACb18E,KAAKxB,MAAMk+E,mBAAmB,CAC5B/mE,cAAetB,EACf0+E,YAAa/yF,KAAKxB,QAMtBqK,YAAW,WACT8Y,EAAOnE,SAAS,CACdi0E,SAAS,IACR,WACD9vE,EAAO6xE,6BAEPpvE,IAAeK,IAAI,gBAAiB9C,EAAOsxE,sBAC3CtxE,EAAOsxE,qBAAuB,KAE1BtxE,EAAOnjB,MAAM20F,qBACfxxE,EAAOnjB,MAAM20F,oBAAoB,CAC/BC,SAAUzxE,EAAOnjB,MAAM40F,SACvBC,UAAW1xE,EAAOnjB,MAAM69D,MACxBo1B,SAAS,SAId,KAEJ,CACD3zF,IAAK,uBACLhC,MAAO,SAA8BuY,EAAOo/E,GAC1C,IAAInkF,EAAS,CACXqG,cAAetB,EACf0+E,YAAa/yF,KAAKxB,QAGfi1F,GAAUzzF,KAAKxB,MAAMs+E,gBACxB98E,KAAKxB,MAAMs+E,eAAextE,GAG5B,IAAIokF,GAAQ,EAER1zF,KAAKxB,MAAMg+E,kBACbkX,EAAQ1zF,KAAKxB,MAAMg+E,gBAAgBltE,IAGjCokF,IACED,GAAUzzF,KAAKxB,MAAMq+E,gBACvB78E,KAAKxB,MAAMq+E,eAAevtE,GAG5BtP,KAAK2zF,UAAUt/E,MAGlB,CACDvW,IAAK,yBACLhC,MAAO,SAAgCm2F,GACrC,IAAII,EAAWJ,EAAK2B,mBAEpB,OAAIvB,EACKtyF,IAAW6uF,SAASyD,EAAU,qBAAuBA,EAAWryF,KAAK2yF,sBAAsBN,GAG7F,OAER,CACDv0F,IAAK,yBACLhC,MAAO,SAAgCm2F,GACrC,IAAIC,EAAWD,EAAK3D,uBAEpB,OAAI4D,EACKnyF,IAAW6uF,SAASsD,EAAU,qBAAuBA,EAAWlyF,KAAKwyF,sBAAsBN,GAG7F,OAER,CACDp0F,IAAK,wBACLhC,MAAO,SAA+B+rE,GACpC,IAAI6qB,EAAU7qB,EAAI+rB,mBAElB,OAAIlB,EACK3yF,IAAW6uF,SAAS8D,EAAS,oBAAsBA,EAAU1yF,KAAK2yF,sBAAsBD,GAG1F,OAER,CACD50F,IAAK,wBACLhC,MAAO,SAA+B+rE,GACpC,IAAI0qB,EAAU1qB,EAAIymB,uBAElB,OAAIiE,EACKxyF,IAAW6uF,SAAS2D,EAAS,oBAAsBA,EAAUvyF,KAAKwyF,sBAAsBD,GAG1F,OAER,CACDz0F,IAAK,iBACLhC,MAAO,SAAwB+3F,EAAaxB,GACtCwB,GAAexB,IACjBwB,EAAY/uB,UAAY,EACxButB,EAASvtB,SAAW,KAGvB,CACDhnE,IAAK,cACLhC,MAAO,SAAqBg4F,GAC1B,OAAO9zF,KAAKxB,MAAMwzF,mBAAqB8B,GAA2C,IAAxB9zF,KAAKxB,MAAM40F,UAAuC,IAArBpzF,KAAKxB,MAAM69D,MAA5C,GAA+D,EAAI,OAE1H,CACDv+D,IAAK,aACLhC,MAAO,WACL,QAAIkE,KAAKxB,MAAM6mC,YACNrlC,KAAKxB,MAAM6mC,qBAAqBvqC,MAAQkF,KAAK+zF,wBAA0B,EAAI/zF,KAAKqP,OAAOrP,KAAKxB,MAAM6mC,cAK5G,CACDvnC,IAAK,SACLhC,MAAO,SAAgBk4F,GACrB,OAAQA,EAAaZ,WAAapzF,KAAKxB,MAAM40F,UAAYY,EAAanD,UAAY7wF,KAAKxB,MAAMqyF,WAAamD,EAAalmF,QAAU9N,KAAKxB,MAAMsP,OAASkmF,EAAaX,YAAcrzF,KAAKxB,MAAM69D,SAE5L,CACDv+D,IAAK,uBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,OAAOA,KAAKxB,MAAM6mC,UAAYrlC,KAAKxB,MAAM6mC,UAAUj2B,WAAU,SAAUxN,GACrE,OAAO0gB,EAAOjT,OAAOzN,OACjB,IAEP,CACD9D,IAAK,6BACLhC,MAAO,WACDkE,KAAKszF,uBACP5yF,SAAS+M,oBAAoB,QAASzN,KAAKszF,sBAC3CtzF,KAAKszF,qBAAuB,KAC5BtzF,KAAK8yF,WAAY,KAGpB,CACDh1F,IAAK,qBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEe,QAAxBA,KAAKxB,MAAMszF,UAAsB9xF,KAAK8J,WAAa9J,KAAKxB,MAAM+9E,SAChExmE,aAAa/V,KAAKi0F,iBAClBj0F,KAAKi0F,gBAAkBprF,YAAW,WAChC,GAAI4Z,EAAOrF,MAAMq0E,QAAS,CACxB,IAAIyC,EAAYn0F,IAAWiI,WAAWya,EAAO3Y,UAAW,SAEpDoqF,GAAaxzF,SAASqS,gBAAkBmhF,IAAcA,EAAUr0E,aAAa,wBAC/Eq0E,EAAUC,aAAa,sBAAsB,GAC7CD,EAAU9H,SAGZ3pE,EAAO2xE,UAAUtvB,UAAY,OACpBriD,EAAO2xE,WAChB3xE,EAAO2xE,UAAUD,aAAa,WAAY,KAE3C,MAGN,CACDr2F,IAAK,uBACLhC,MAAO,WACLkE,KAAKwzF,6BAEDxzF,KAAKizF,uBACP7uE,IAAeK,IAAI,gBAAiBzkB,KAAKizF,sBACzCjzF,KAAKizF,qBAAuB,QAG/B,CACDn1F,IAAK,SACLhC,MAAO,WACL,IAEIkjB,EAASq1E,EAFT/wE,EAAStjB,KAGT8zF,EAAe9zF,KAAKxB,MAAMwzF,oBAAsBhyF,KAAKgzE,aACrDshB,EAAgB,KAEpB,GAAIt0F,KAAKxB,MAAM81F,cAAe,CAC5B,IAAIC,EAAW5mF,IAAYI,iBAAiB/N,KAAKxB,MAAMqyF,QAAS7wF,KAAKxB,MAAMsP,OAC3EwmF,EAAgBt0F,KAAKxB,MAAM81F,cAAcC,EAAUlD,EAAgBA,EAAgB,GAAIrxF,KAAKxB,OAAQ,CAClGqyF,QAAS7wF,KAAKxB,MAAMqyF,WAIxB,IAAItzF,EAAYN,YAAW+C,KAAKxB,MAAMw9E,eAAiBh8E,KAAKxB,MAAMjB,UAAW+2F,EAAe,CAC1F,qBAAsBt0F,KAAKxB,MAAM69E,cACjC,oBAAqBr8E,KAAKxB,MAAMwzF,mBAChC,cAAe8B,EACf,oBAAqB9zF,KAAKxB,MAAM+9E,OAChC,iBAAkBv8E,KAAKod,MAAMq0E,SAAWzxF,KAAKxB,MAAM+9E,SAEjDzX,EAAW9kE,KAAKw0F,YAAYV,GAEhC,GAAI9zF,KAAKxB,MAAM29E,SAAU,CACvB,IAAIgV,EAAgBl0F,YAAW,0CAA2C,CACxE,kBAAmB+C,KAAKxB,MAAMi2F,SAC9B,oBAAqBz0F,KAAKxB,MAAMi2F,WAE9BC,EAAe,GAAG32F,OAAOiC,KAAKxB,MAAMuyF,QAAU/wF,KAAKxB,MAAMuyF,QAAU,IAAM,GAAI,YAAYhzF,OAAOiC,KAAKxB,MAAM40F,SAAU,aACrHuB,EAAgB,CAClB30B,QAAShgE,KAAK0xF,gBACdn0F,UAAW,uBACX4zF,cAAeA,GAEjBnyE,EAAuBnE,IAAM7P,cAAc,SAAU,CACnDxN,KAAM,SACNwiE,QAAS20B,EAAc30B,QACvBziE,UAAWo3F,EAAcp3F,UACzB,gBAAiByC,KAAKxB,MAAMi2F,SAC5B,gBAAiBC,GACH75E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAWo3F,EAAcxD,gBACVt2E,IAAM7P,cAAc2O,IAAQ,OAEzC3Z,KAAKxB,MAAM6D,OACbsyF,EAAa,QAAc31E,EAC3BA,EAAUhf,KAAKxB,MAAM6D,KAAKrC,KAAKxB,MAAMqyF,QAASQ,EAAgBA,EAAgB,GAAIrxF,KAAKxB,OAAQ,CAC7F29E,SAAUwY,WAGT,GAAI30F,KAAKxB,MAAM69E,cAAe,CACnC,IAAIuY,GAAgB,EAEhB50F,KAAKxB,MAAMq2F,uBACbD,EAAgB50F,KAAKxB,MAAMq2F,qBAAqB70F,KAAKxB,MAAMqyF,UAGzD+D,IACyC51E,EAAV,WAA7Bhf,KAAKxB,MAAM69E,cAAmDxhE,IAAM7P,cAAc4lF,EAAgB,CACpG5wB,QAAShgE,KAAKxB,MAAMs2F,aACpBjE,QAAS7wF,KAAKxB,MAAMqyF,QACpBC,SAAU9wF,KAAKxB,MAAMsyF,SACrBC,QAAS/wF,KAAKxB,MAAMuyF,UACSl2E,IAAM7P,cAAckmF,EAAa,CAC9DlxB,QAAShgE,KAAKxB,MAAMu2F,gBACpBlE,QAAS7wF,KAAKxB,MAAMqyF,QACpBC,SAAU9wF,KAAKxB,MAAMsyF,iBAGpB,GAAI9wF,KAAKxB,MAAMw+E,WAAY,CAChC,IAAIgY,GAAc,EAMlB,GAJIh1F,KAAKxB,MAAMy2F,wBACbD,EAAch1F,KAAKxB,MAAMy2F,sBAAsBj1F,KAAKxB,MAAMqyF,UAGxDmE,EAAa,CACf,IAAIE,EAAcj4F,YAAW,oCAAqC+C,KAAKxB,MAAMy+E,gBAC7Ej+D,EAAuBnE,IAAM7P,cAAc,IAAK,CAC9CzN,UAAW23F,UAGV,GAAIl1F,KAAKxB,MAAM0+E,UAAW,CAC/B,IAAIiY,EAAiB,GAEjBn1F,KAAKod,MAAMq0E,SACb0D,EAAiB,CACf1D,SAAS,EACT2D,YAAap1F,KAAKxB,MAAM62F,cACxBC,cAAe,2BACfC,kBAAmB,uDACnBC,cAAex1F,KAAKxB,MAAMi3F,gBAC1BC,gBAAiB,6BACjBC,oBAAqB,0DAEvB32E,EAAuBnE,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,SAAU,CAC1GxN,KAAM,SACNwiE,QAASm1B,EAAeC,YACxB73F,UAAW43F,EAAeG,eACZz6E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW43F,EAAeI,oBACX16E,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,SAAU,CAC9FxN,KAAM,SACNwiE,QAASm1B,EAAeK,cACxBj4F,UAAW43F,EAAeO,iBACZ76E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW43F,EAAeQ,sBACX96E,IAAM7P,cAAc2O,IAAQ,UAE7Cw7E,EAAiB,CACf1D,SAAS,EACTmE,YAAa51F,KAAKxB,MAAMq3F,cACxBC,cAAe,2BACfC,kBAAmB,yDAErB/2E,EAAuBnE,IAAM7P,cAAc,SAAU,CACnDxN,KAAM,SACNwiE,QAASm1B,EAAeS,YACxBr4F,UAAW43F,EAAeW,eACZj7E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW43F,EAAeY,oBACXl7E,IAAM7P,cAAc2O,IAAQ,QAG3C3Z,KAAKxB,MAAM6D,OACb8yF,EAAc,QAAcn2E,EAC5BA,EAAUhf,KAAKxB,MAAM6D,KAAKrC,KAAKxB,MAAMqyF,QAASQ,EAAgBA,EAAgB,GAAIrxF,KAAKxB,OAAQ,CAC7F0+E,UAAWiY,WAKbn2E,EADEhf,KAAKod,MAAMq0E,SAAWzxF,KAAKxB,MAAM+9E,OACzBv8E,KAAKxB,MAAM+9E,OAAOv8E,KAAKxB,OAE7BwB,KAAKxB,MAAM6D,KAAgBrC,KAAKxB,MAAM6D,KAAKrC,KAAKxB,MAAMqyF,QAAS7wF,KAAKxB,OAAsBmP,IAAYI,iBAAiB/N,KAAKxB,MAAMqyF,QAAS7wF,KAAKxB,MAAMsP,OAiB9J,MAb4B,QAAxB9N,KAAKxB,MAAMszF,WAEbuC,EAAkBr0F,KAAKxB,MAAM+9E,QAAuB1hE,IAAM7P,cAAc,IAAK,CAC3E85D,SAAU,IACVhqD,IAAK,SAAa7a,GAChBqjB,EAAO8wE,UAAYn0F,GAErB1C,UAAW,+CACXiV,QAASxS,KAAK4xF,eACA/2E,IAAM7P,cAAc,OAAQ,QAI1B6P,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChBqjB,EAAOxZ,UAAY7J,GAErB8jB,KAAM,OACN+gD,SAAUA,EACVvnE,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAMu9E,WAAa/7E,KAAKxB,MAAM4B,MAC1C4/D,QAAShgE,KAAKggE,QACdvrD,UAAWzU,KAAKyU,UAChB6nE,QAASt8E,KAAKxB,MAAM89E,QACpB7pE,OAAQzS,KAAKyS,OACbqH,YAAa9Z,KAAK8Z,YAClB63E,UAAW3xF,KAAK2xF,WACf0C,EAAiBr1E,MAEpB,CAAC,CACHlhB,IAAK,2BACLhC,MAAO,SAAkCojD,EAAWz7B,GAClD,MAA2B,QAAvBy7B,EAAU4yC,UAAsB5yC,EAAUuyC,UAAYhuE,EAAUguE,QAC3D,CACLA,QAASvyC,EAAUuyC,SAIhB,SAIJD,EA3lBmB,CA4lB1Bx2E,aAEF,SAASvK,EAAUC,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuC,EAAgBzS,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAK6V,EAAUrU,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmBR,EAAUrU,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAASy3F,EAAeh9E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Py2F,GAA+B,OAAO,WAAkC,IAAsCnnF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIonF,EAAuB,SAAUt8E,GACnCpB,EAAU09E,EAASt8E,GAEnB,IAAIC,EAASm8E,EAAeE,GAE5B,SAASA,EAAQ13F,GACf,IAAI+G,EA2BJ,OAzBApH,EAAgB6B,KAAMk2F,IAEtB3wF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IAEfA,MAAM23F,yBACf5wF,EAAM6X,MAAQ,CACZq0E,SAAS,IAIblsF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM6wF,cAAgB7wF,EAAM6wF,cAAcr8E,KAAK7B,EAAuB3S,IACtEA,EAAM8wF,WAAa9wF,EAAM8wF,WAAWt8E,KAAK7B,EAAuB3S,IAChEA,EAAM+wF,aAAe/wF,EAAM+wF,aAAav8E,KAAK7B,EAAuB3S,IACpEA,EAAMuU,YAAcvU,EAAMuU,YAAYC,KAAK7B,EAAuB3S,IAClEA,EAAMosF,UAAYpsF,EAAMosF,UAAU53E,KAAK7B,EAAuB3S,IAC9DA,EAAMgxF,UAAYhxF,EAAMgxF,UAAUx8E,KAAK7B,EAAuB3S,IAC9DA,EAAMixF,WAAajxF,EAAMixF,WAAWz8E,KAAK7B,EAAuB3S,IAChEA,EAAMkxF,YAAclxF,EAAMkxF,YAAY18E,KAAK7B,EAAuB3S,IAClEA,EAAMmxF,OAASnxF,EAAMmxF,OAAO38E,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMswF,cAAgBtwF,EAAMswF,cAAc97E,KAAK7B,EAAuB3S,IACtEA,EAAM8vF,cAAgB9vF,EAAM8vF,cAAct7E,KAAK7B,EAAuB3S,IACtEA,EAAMkwF,gBAAkBlwF,EAAMkwF,gBAAgB17E,KAAK7B,EAAuB3S,IAC1EA,EAAMoxF,mBAAqBpxF,EAAMoxF,mBAAmB58E,KAAK7B,EAAuB3S,IACzEA,EAmXT,OAhXAzG,EAAao3F,EAAS,CAAC,CACrBp4F,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM23F,uBAAyBn2F,KAAKxB,MAAMizF,QAAUzxF,KAAKod,MAAMq0E,UAE5E,CACD3zF,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,aAIvB,CACDt1F,IAAK,gBACLhC,MAAO,SAAuBuY,GACxBrU,KAAKxB,MAAM43F,eACbp2F,KAAKxB,MAAM43F,cAAc,CACvBzgF,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,aAIvB,CACDt1F,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKxB,MAAM63F,YACbr2F,KAAKxB,MAAM63F,WAAWhiF,KAGzB,CACDvW,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAM83F,cACbt2F,KAAKxB,MAAM83F,aAAa,CACtB3gF,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,aAIvB,CACDt1F,IAAK,cACLhC,MAAO,SAAqBuY,GACtBtU,IAAW6uF,SAASv6E,EAAM9V,OAAQ,qCAAsC8V,EAAMoG,cAAcm8E,WAAY,EAAUviF,EAAMoG,cAAcm8E,WAAY,EAElJ52F,KAAKxB,MAAMsb,aACb9Z,KAAKxB,MAAMsb,YAAY,CACrBnE,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,aAIvB,CACDt1F,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAMmzF,WACb3xF,KAAKxB,MAAMmzF,UAAU,CACnBh8E,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,aAIvB,CACDt1F,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAM+3F,WACbv2F,KAAKxB,MAAM+3F,UAAUliF,GAGvBA,EAAMoG,cAAcm8E,WAAY,IAEjC,CACD94F,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKxB,MAAMg4F,YACbx2F,KAAKxB,MAAMg4F,WAAW,CACpB7gF,cAAetB,EACfwiF,WAAY72F,KAAK8J,YAIrBuK,EAAMY,mBAEP,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAMi4F,aACbz2F,KAAKxB,MAAMi4F,YAAY,CACrB9gF,cAAetB,EACfwiF,WAAY72F,KAAK8J,cAItB,CACDhM,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKxB,MAAMk4F,QACb12F,KAAKxB,MAAMk4F,OAAO,CAChB/gF,cAAetB,EACfwiF,WAAY72F,KAAK8J,YAIrBuK,EAAMY,mBAEP,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,GAAIrU,KAAK82F,gBAAkB92F,KAAKxB,MAAMwzF,mBAAoB,CACxD,IAAIzzF,EAAS8V,EAAM9V,OACfspE,EAAMxzD,EAAMoG,cAEhB,OAAQpG,EAAMM,OAEZ,KAAK,GACH,IAAI+9E,EAAU1yF,KAAK2yF,sBAAsB9qB,GAErC6qB,IACF1yF,KAAKoyF,eAAevqB,EAAK6qB,GACzBA,EAAQtG,SAGV/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAIs9E,EAAUvyF,KAAKwyF,sBAAsB3qB,GAErC0qB,IACFvyF,KAAKoyF,eAAevqB,EAAK0qB,GACzBA,EAAQnG,SAGV/3E,EAAMY,iBACN,MAGF,KAAK,GAEHjV,KAAKggE,QAAQ3rD,GACbA,EAAMY,iBACN,MAGF,KAAK,GACqB,UAApB1W,EAAOsL,UAA4C,aAApBtL,EAAOsL,UAA4BtL,EAAO8T,WAC3ErS,KAAKggE,QAAQ3rD,GACbA,EAAMY,sBAOf,CACDnX,IAAK,iBACLhC,MAAO,SAAwBi7F,EAAYrE,GACrCqE,GAAcrE,IAChBqE,EAAWjyB,UAAY,EACvB4tB,EAAQ5tB,SAAW,KAGtB,CACDhnE,IAAK,wBACLhC,MAAO,SAA+B+rE,GACpC,IAAI6qB,EAAU7qB,EAAI+rB,mBAElB,OAAIlB,EACE3yF,IAAW6uF,SAAS8D,EAAS,oBAA4BA,EAAoB1yF,KAAK2yF,sBAAsBD,GAErG,OAGV,CACD50F,IAAK,wBACLhC,MAAO,SAA+B+rE,GACpC,IAAI0qB,EAAU1qB,EAAIymB,uBAElB,OAAIiE,EACExyF,IAAW6uF,SAAS2D,EAAS,oBAA4BA,EAAoBvyF,KAAKwyF,sBAAsBD,GAErG,OAGV,CACDz0F,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOo9E,GACpCzxF,KAAKxB,MAAM23F,uBACbn2F,KAAKxB,MAAMw4F,mBAAmB,CAC5BrhF,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,WAGpBpzF,KAAKwd,SAAS,CACZi0E,QAASA,MAId,CACD3zF,IAAK,gBACLhC,MAAO,SAAuBuY,GACxBrU,KAAKxB,MAAMq3F,eACb71F,KAAKxB,MAAMq3F,cAAc,CACvBlgF,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,WAItBpzF,KAAK22F,mBAAmBtiF,GAAO,GAC/BA,EAAMY,mBAEP,CACDnX,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIq/E,GAAQ,EAER1zF,KAAKxB,MAAMy4F,qBACbvD,EAAQ1zF,KAAKxB,MAAMy4F,mBAAmBj3F,KAAKxB,MAAMqyF,UAG/C7wF,KAAKxB,MAAM62F,eACbr1F,KAAKxB,MAAM62F,cAAc,CACvB1/E,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,SAClBM,MAAOA,IAIPA,GACF1zF,KAAK22F,mBAAmBtiF,GAAO,GAGjCA,EAAMY,mBAEP,CACDnX,IAAK,kBACLhC,MAAO,SAAyBuY,GAC1BrU,KAAKxB,MAAMi3F,iBACbz1F,KAAKxB,MAAMi3F,gBAAgB,CACzB9/E,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,QACjBx0B,MAAOr8D,KAAKxB,MAAM40F,WAItBpzF,KAAK22F,mBAAmBtiF,GAAO,GAC/BA,EAAMY,mBAEP,CACDnX,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAAsD,WAArCr8E,KAAKxB,MAAM04F,uBAA2E,aAArCl3F,KAAKxB,MAAM04F,wBAEhG,CACDp5F,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAK82F,gBAAkB92F,KAAKxB,MAAMwzF,mBAA6C,IAAxBhyF,KAAKxB,MAAM40F,SAAiB,GAAK,EAAI,OAEpG,CACDt1F,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETsvF,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAC5C60F,EAAwB,CAC1B,eAAgBr3F,KAAKxB,MAAMwzF,oBAAsBhyF,KAAKxB,MAAMsyF,SAC5D,0BAA2B9wF,KAAKxB,MAAM84F,oBACtC,mBAAoBt3F,KAAKxB,MAAM+4F,kBAC/B,YAAav3F,KAAKxB,MAAM40F,SAAW,IAAM,GAG3C,GAAIpzF,KAAKxB,MAAMg5F,aAAc,CAC3B,IAAIC,EAAwBz3F,KAAKxB,MAAMg5F,aAAax3F,KAAKxB,MAAMqyF,SAC/DwG,EAAwBrmF,EAAgBA,EAAgB,GAAIqmF,GAAwBI,GAWtF,IARA,IAAIl6F,EAAYN,YAAWo6F,GACvBj3F,EAAQJ,KAAKxB,MAAMwvF,cAAgB,CACrC1sF,OAAQtB,KAAKxB,MAAM2vF,kBACjB,GACAuJ,EAAiD,YAA5B13F,KAAKxB,MAAMm5F,aAChC7yB,EAAW9kE,KAAKw0F,cAChBhtB,EAAQ,GAEH5sE,EAAI,EAAGA,EAAI00F,EAAQ30F,OAAQC,IAAK,CACvC,IAAIg9F,EAAStI,EAAQ10F,GACjB0hF,OAAU,EAEd,GAAIob,GACE13F,KAAKxB,MAAMs8E,YAAc8c,EAAOp5F,MAAMsP,MAAO,CAC/C,IAAI9N,KAAKxB,MAAMq5F,aAIb,SAHAvb,EAAUt8E,KAAKxB,MAAMq5F,aACrBt6F,GAAa,6BAOnB,IAAIk0F,EAAUzxF,KAAK83F,aACf7F,EAAoBp3E,IAAM7P,cAAcwmF,EAAU/Y,EAAS,CAC7DsY,QAAS/wF,KAAKxB,MAAMuyF,QACpBjzF,IAAKlD,GACJg9F,EAAOp5F,MAAO,CACf1C,MAAOkE,KAAKxB,MAAM1C,MAClBwgF,QAASA,EACTuU,QAAS7wF,KAAKxB,MAAMqyF,QACpBx0B,MAAOzhE,EACPw4F,SAAUpzF,KAAKxB,MAAM40F,SACrBvB,YAAa7xF,KAAKxB,MAAMqzF,YACxB4C,SAAUz0F,KAAKxB,MAAMi2F,SACrBK,aAAc90F,KAAKxB,MAAMs2F,aACzBC,gBAAiB/0F,KAAKxB,MAAMu2F,gBAC5BjE,SAAU9wF,KAAKxB,MAAMsyF,SACrBzrD,UAAWrlC,KAAKxB,MAAM6mC,UACtBwtD,aAAc7yF,KAAKxB,MAAMq0F,aACzBf,SAAU9xF,KAAKxB,MAAMszF,SACrBL,QAASA,EACToE,cAAe71F,KAAK61F,cACpBR,cAAer1F,KAAKq1F,cACpBI,gBAAiBz1F,KAAKy1F,gBACtB37E,YAAa9Z,KAAKxB,MAAMu5F,gBACxBpG,UAAW3xF,KAAKxB,MAAMw5F,cACtB/C,sBAAuBj1F,KAAKxB,MAAMy2F,sBAClCJ,qBAAsB70F,KAAKxB,MAAMq2F,qBACjC7C,mBAAoBhyF,KAAKxB,MAAMwzF,mBAC/BhyB,QAAShgE,KAAKxB,MAAMy5F,YACpB9E,oBAAqBnzF,KAAKxB,MAAM20F,oBAChCmB,cAAet0F,KAAKxB,MAAM81F,iBAE5B9sB,EAAM3rE,KAAKo2F,GAGb,OAAoBp3E,IAAM7P,cAAc,KAAM,CAC5C+Y,KAAM,MACN+gD,SAAUA,EACVhqD,IAAK,SAAa7a,GAChB0a,EAAO7Q,UAAY7J,GAErB1C,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACdo2B,cAAep2F,KAAKo2F,cACpBC,WAAYr2F,KAAKq2F,WACjB5J,cAAezsF,KAAKs2F,aACpBx8E,YAAa9Z,KAAK8Z,YAClB63E,UAAW3xF,KAAK2xF,UAChBuG,YAAal4F,KAAKxB,MAAM05F,YACxB3B,UAAWv2F,KAAKu2F,UAChBC,WAAYx2F,KAAKw2F,WACjBC,YAAaz2F,KAAKy2F,YAClBC,OAAQ12F,KAAK02F,OACbt2F,MAAOA,EACPqU,UAAWzU,KAAKyU,WACf+yD,OAIA0uB,EApZkB,CAqZzBl7E,aAEF,SAASm9E,EAAen/E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P44F,GAA+B,OAAO,WAAkC,IAAsCtpF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIupF,EAAgC,SAAUz+E,GAC5CpB,EAAU6/E,EAAkBz+E,GAE5B,IAAIC,EAASs+E,EAAeE,GAE5B,SAASA,EAAiB75F,GACxB,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAMq4F,IAEtB9yF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IACnDA,EA8BT,OA3BAzG,EAAau5F,EAAkB,CAAC,CAC9Bv6F,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACf1F,KAAM3O,KAAKxB,MAAMqyF,YAItB,CACD/yF,IAAK,SACLhC,MAAO,WACL,IAAIq1F,EAAgBl0F,YAAW,0CAA2C,CACxE,kBAAmB+C,KAAKxB,MAAMi2F,SAC9B,oBAAqBz0F,KAAKxB,MAAMi2F,WAElC,OAAoB55E,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACNwiE,QAAShgE,KAAKggE,QACdziE,UAAW,wBACGsd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,WAI1C0+E,EA1C2B,CA2ClCr9E,aAEFxK,EAAgB6nF,EAAkB,eAAgB,CAChDxH,QAAS,KACT7wB,QAAS,KACTy0B,UAAU,IAGZ,IAAI6D,EAAY,CAAC,iBAEjB,SAASv6E,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAASg6F,EAAev/E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pg5F,GAA+B,OAAO,WAAkC,IAAsC1pF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI2pF,EAAyB,SAAU7+E,GACrCpB,EAAUigF,EAAW7+E,GAErB,IAAIC,EAAS0+E,EAAeE,GAE5B,SAASA,EAAUj6F,GACjB,IAAI+G,EAsBJ,OApBApH,EAAgB6B,KAAMy4F,IAEtBlzF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBk6F,WAAanzF,EAAMmzF,WAAW3+E,KAAK7B,EAAuB3S,IAChEA,EAAMozF,gBAAkBpzF,EAAMozF,gBAAgB5+E,KAAK7B,EAAuB3S,IAC1EA,EAAMqzF,cAAgBrzF,EAAMqzF,cAAc7+E,KAAK7B,EAAuB3S,IACtEA,EAAMssF,YAActsF,EAAMssF,YAAY93E,KAAK7B,EAAuB3S,IAClEA,EAAMyxF,mBAAqBzxF,EAAMyxF,mBAAmBj9E,KAAK7B,EAAuB3S,IAChFA,EAAMuvF,aAAevvF,EAAMuvF,aAAa/6E,KAAK7B,EAAuB3S,IACpEA,EAAMwvF,gBAAkBxvF,EAAMwvF,gBAAgBh7E,KAAK7B,EAAuB3S,IAC1EA,EAAMszF,yBAA2BtzF,EAAMszF,yBAAyB9+E,KAAK7B,EAAuB3S,IAC5FA,EAAMuzF,uBAAyBvzF,EAAMuzF,uBAAuB/+E,KAAK7B,EAAuB3S,IACxFA,EAAMwzF,aAAexzF,EAAMwzF,aAAah/E,KAAK7B,EAAuB3S,IACpEA,EAAMyzF,eAAiBzzF,EAAMyzF,eAAej/E,KAAK7B,EAAuB3S,IACxEA,EAAM0zF,UAAY1zF,EAAM0zF,UAAUl/E,KAAK7B,EAAuB3S,IAC9DA,EAAM2zF,eAAiB3zF,EAAM2zF,eAAen/E,KAAK7B,EAAuB3S,IACxEA,EAAM4zF,aAAe5zF,EAAM4zF,aAAap/E,KAAK7B,EAAuB3S,IACpEA,EAAM0yF,YAAc1yF,EAAM0yF,YAAYl+E,KAAK7B,EAAuB3S,IAClEA,EAAMwyF,gBAAkBxyF,EAAMwyF,gBAAgBh+E,KAAK7B,EAAuB3S,IAC1EA,EAAMyyF,cAAgBzyF,EAAMyyF,cAAcj+E,KAAK7B,EAAuB3S,IAC/DA,EAq/BT,OAl/BAzG,EAAa25F,EAAW,CAAC,CACvB36F,IAAK,aACLhC,MAAO,SAAoBuY,GACzB,IAAIrU,KAAKgyF,sBAAyBhyF,KAAK6oB,eAAexU,GAAtD,CAMA,GAFArU,KAAKxB,MAAMk6F,YAAc14F,KAAKxB,MAAMk6F,WAAWrkF,GAE3CrU,KAAKu3F,oBACP,GAAIv3F,KAAKo5F,oBAAoB/kF,GAC3BrU,KAAKq5F,iBAAiBhlF,OACjB,CACL,IAAIilF,EAAat5F,KAAKu5F,gCAAkCv5F,KAAKw5F,mCAAqCx5F,KAAKy5F,sBAAsBplF,GAC7HrU,KAAK05F,eAAiBrlF,EAAMgoD,MAC5Br8D,KAAK25F,cAAgBtlF,EAAMgoD,MAC3Br8D,KAAK45F,eAAiB55F,KAAKxB,MAAMmU,MAE7B3S,KAAK65F,oBACP75F,KAAK85F,kBAAkB97E,EAAgBA,EAAgB,GAAI3J,GAAQ,GAAI,CACrEilF,WAAYA,EACZ97F,KAAM,SAGRwC,KAAK+5F,oBAAoB/7E,EAAgBA,EAAgB,GAAI3J,GAAQ,GAAI,CACvEilF,WAAYA,EACZ97F,KAAM,cAKZwC,KAAKg6F,eAAe3lF,EAAMsB,eAG5B3V,KAAKi6F,YAAa,KAEnB,CACDn8F,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAKrU,KAAK6oB,eAAexU,GAAzB,CAMA,GAFArU,KAAKxB,MAAMy5F,aAAej4F,KAAKxB,MAAMy5F,YAAY5jF,GAE7CrU,KAAKgyF,qBACP,GAAIhyF,KAAKo5F,oBAAoB/kF,GAC3BrU,KAAKq5F,iBAAiBhlF,OACjB,CACL,IAAIilF,EAAat5F,KAAKy5F,sBAAsBplF,GAExCsB,EAAgBtB,EAAMsB,cACtBhH,EAAOyhF,EAAyB/7E,EAAOikF,GAE3Ct4F,KAAK05F,eAAiBrlF,EAAM++E,SAC5BpzF,KAAK25F,cAAgBtlF,EAAM++E,SAC3BpzF,KAAK45F,eAAiB55F,KAAKxB,MAAMmU,MACjC3S,KAAKk6F,gBAAkB7lF,EAAMg/E,UAEzBrzF,KAAK65F,oBACP75F,KAAK85F,kBAAkB,CACrBnkF,cAAeA,EACfhH,KAAMA,EACN2qF,WAAYA,EACZ97F,KAAM,SAGRwC,KAAK+5F,oBAAoB,CACvBpkF,cAAeA,EACfhH,KAAMA,EACN2qF,WAAYA,EACZ97F,KAAM,SAMdwC,KAAKi6F,YAAa,KAEnB,CACDn8F,IAAK,oBACLhC,MAAO,SAA2B8B,GAChC,IAAI+X,EAAgB/X,EAAK+X,cACrBhH,EAAO/Q,EAAK+Q,KACZ2qF,EAAa17F,EAAK07F,WAClB97F,EAAOI,EAAKJ,KACZszF,EAAW9wF,KAAKgzE,WAAWrkE,GAC3B02B,EAAYrlC,KAAKxB,MAAM6mC,UAEvByrD,EACEwI,IACFj0D,EAAY,KACZrlC,KAAKm6F,WAAW,CACdxkF,cAAeA,EACfhH,KAAMA,EACNnR,KAAMA,MAIV6nC,EAAY12B,EACZ3O,KAAKo6F,SAAS,CACZzkF,cAAeA,EACfhH,KAAMA,EACNnR,KAAMA,KAIVwC,KAAKg6F,eAAerkF,GAAe,GAE/B3V,KAAKxB,MAAM67F,mBAAqBh1D,IAAcrlC,KAAKxB,MAAM6mC,WAC3DrlC,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAeA,EACf7Z,MAAOupC,MAIZ,CACDvnC,IAAK,sBACLhC,MAAO,SAA6B+B,GAClC,IAAI8c,EAAS3a,KAET2V,EAAgB9X,EAAM8X,cACtBhH,EAAO9Q,EAAM8Q,KACb2qF,EAAaz7F,EAAMy7F,WACnB97F,EAAOK,EAAML,KACbszF,EAAW9wF,KAAKgzE,WAAWrkE,GAC3B02B,EAAYrlC,KAAKxB,MAAM6mC,WAAa,GAExC,GAAIyrD,EACF,GAAIwI,EAAY,CACd,IAAIgB,EAAiBt6F,KAAK+zF,qBAAqBplF,GAC/C02B,EAAYrlC,KAAKxB,MAAM6mC,UAAUrnC,QAAO,SAAUqY,EAAKzb,GACrD,OAAOA,IAAM0/F,KAEft6F,KAAKm6F,WAAW,CACdxkF,cAAeA,EACfhH,KAAMA,EACNnR,KAAMA,SAEC6nC,EAAU1qC,SACnBqF,KAAKxB,MAAM6mC,UAAUn0B,SAAQ,SAAUtP,GACrC,OAAO+Y,EAAOw/E,WAAW,CACvBxkF,cAAeA,EACfhH,KAAM/M,EACNpE,KAAMA,OAGV6nC,EAAY,CAAC12B,GACb3O,KAAKo6F,SAAS,CACZzkF,cAAeA,EACfhH,KAAMA,EACNnR,KAAMA,UAIV6nC,EAAYi0D,GAAct5F,KAAKu6F,sBAAwB,GAAGx8F,OAAOgvF,EAAmB1nD,GAAY,CAAC12B,IAAS,CAACA,GAC3G3O,KAAKo6F,SAAS,CACZzkF,cAAeA,EACfhH,KAAMA,EACNnR,KAAMA,IAIVwC,KAAKg6F,eAAerkF,GAAe,GAE/B3V,KAAKxB,MAAM67F,mBAAqBh1D,IAAcrlC,KAAKxB,MAAM6mC,WAC3DrlC,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAeA,EACf7Z,MAAOupC,MAIZ,CACDvnC,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/BtU,IAAWy6F,iBACXx6F,KAAK25F,cAAgB35F,KAAKgyF,qBAAuB39E,EAAM++E,SAAW/+E,EAAMgoD,MACxE,IAAIo+B,EAAmBz6F,KAAK06F,YAAYrmF,GACpCgxB,EAAYrlC,KAAKu6F,sBAAwBxN,EAAmB,IAAI4N,IAAI,GAAG58F,OAAOgvF,EAAmB/sF,KAAKxB,MAAM6mC,WAAa,IAAK0nD,EAAmB0N,MAAuBA,EAExKz6F,KAAKxB,MAAM67F,mBAAqBh1D,IAAcrlC,KAAKxB,MAAM6mC,WAC3DrlC,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAetB,EAAMsB,cACrB7Z,MAAOupC,IAIXrlC,KAAK05F,eAAiB15F,KAAK25F,cAC3B35F,KAAKk6F,gBAAkB7lF,EAAMg/E,UAC7BrzF,KAAKg6F,eAAe3lF,EAAMsB,eAAe,KAE1C,CACD7X,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAIumF,EAAYC,EACZC,EAAqB96F,KAAKxB,MAAMu8F,MAAQ/6F,KAAKxB,MAAMw8F,UAsBvD,OApBIF,IACF96F,KAAK05F,gBAAkB15F,KAAK45F,eAC5B55F,KAAK25F,eAAiB35F,KAAKxB,MAAMmU,OAG/B3S,KAAK25F,cAAgB35F,KAAK05F,gBAC5BkB,EAAa56F,KAAK05F,eAClBmB,EAAW76F,KAAK25F,eACP35F,KAAK25F,cAAgB35F,KAAK05F,gBACnCkB,EAAa56F,KAAK25F,cAClBkB,EAAW76F,KAAK05F,gBAEhBkB,EAAaC,EAAW76F,KAAK25F,cAG3BmB,IACFF,EAAax1F,KAAKC,IAAIu1F,EAAa56F,KAAKxB,MAAMmU,MAAO,GACrDkoF,GAAY76F,KAAKxB,MAAMmU,OAGlB3S,KAAKgyF,qBAAuBhyF,KAAKi7F,kBAAkB5mF,EAAOumF,EAAYC,GAAY76F,KAAKk7F,iBAAiB7mF,EAAOumF,EAAYC,KAEnI,CACD/8F,IAAK,mBACLhC,MAAO,SAA0BuY,EAAO8mF,EAAeC,GAIrD,IAHA,IAAIt/F,EAAQkE,KAAKxB,MAAM1C,MACnBupC,EAAY,GAEPzqC,EAAIugG,EAAevgG,GAAKwgG,EAAaxgG,IAAK,CACjD,IAAIygG,EAAev/F,EAAMlB,GACzByqC,EAAUxpC,KAAKw/F,GACfr7F,KAAKo6F,SAAS,CACZzkF,cAAetB,EAAMsB,cACrBhH,KAAM0sF,EACN79F,KAAM,QAIV,OAAO6nC,IAER,CACDvnC,IAAK,oBACLhC,MAAO,SAA2BuY,EAAO8mF,EAAeC,GACtD,IAAIE,EACAC,EACAlI,EAAYh/E,EAAMg/E,UAElBA,EAAYrzF,KAAKk6F,iBACnBoB,EAAiBt7F,KAAKk6F,gBACtBqB,EAAelI,GACNA,EAAYrzF,KAAKk6F,iBAC1BoB,EAAiBjI,EACjBkI,EAAev7F,KAAKk6F,iBAEpBoB,EAAiBC,EAAelI,EAMlC,IAHA,IAAIv3F,EAAQkE,KAAKxB,MAAM1C,MACnBupC,EAAY,GAEPzqC,EAAIugG,EAAevgG,GAAKwgG,EAAaxgG,IAI5C,IAHA,IAAIi2F,EAAU/0F,EAAMlB,GAChB00F,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAEvCyR,EAAIqnF,EAAgBrnF,GAAKsnF,EAActnF,IAAK,CACnD,IAAInG,EAAQwhF,EAAQr7E,GAAGzV,MAAMsP,MACzButF,EAAe,CACjBv/F,MAAO6R,IAAYI,iBAAiB8iF,EAAS/iF,GAC7CA,MAAOA,EACP+iF,QAASA,EACTuC,SAAUx4F,EACVy4F,UAAWp/E,EACX68E,UAAU,GAEZzrD,EAAUxpC,KAAKw/F,GACfr7F,KAAKo6F,SAAS,CACZzkF,cAAetB,EAAMsB,cACrBhH,KAAM0sF,EACN79F,KAAM,SAKZ,OAAO6nC,IAER,CACDvnC,IAAK,WACLhC,MAAO,SAAkBuY,GACnBrU,KAAKgyF,qBAAsBhyF,KAAKxB,MAAMg9F,cAAgBx7F,KAAKxB,MAAMg9F,aAAax9E,EAAgBA,EAAgB,CAChHrI,cAAetB,EAAMsB,eACpBtB,EAAM1F,MAAO,GAAI,CAClBnR,KAAM6W,EAAM7W,QACLwC,KAAKxB,MAAMi9F,aAAez7F,KAAKxB,MAAMi9F,YAAYpnF,KAE3D,CACDvW,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKgyF,qBAAsBhyF,KAAKxB,MAAMk9F,gBAAkB17F,KAAKxB,MAAMk9F,eAAe19E,EAAgBA,EAAgB,CACpHrI,cAAetB,EAAMsB,eACpBtB,EAAM1F,MAAO,GAAI,CAClBnR,KAAM6W,EAAM7W,QACLwC,KAAKxB,MAAMm9F,eAAiB37F,KAAKxB,MAAMm9F,cAActnF,KAE/D,CACDvW,IAAK,sBACLhC,MAAO,SAA6BuY,GAC9BrU,KAAKxB,MAAMo9F,gBAAkB57F,KAAK67F,sBACpC77F,KAAK67F,oBAAsBn7F,SAASsK,cAAc,OAClDjL,IAAWya,SAASxa,KAAK67F,oBAAqB,qCAC9C77F,KAAK87F,oBAAsB,CACzB31F,EAAGkO,EAAM0nF,QACT31F,EAAGiO,EAAM2nF,SAEXh8F,KAAK67F,oBAAoBz7F,MAAMgC,IAAM,GAAGrE,OAAOsW,EAAMkG,MAAO,MAC5Dva,KAAK67F,oBAAoBz7F,MAAMkC,KAAO,GAAGvE,OAAOsW,EAAMiG,MAAO,MAC7Dta,KAAKi8F,6BAGR,CACDn+F,IAAK,0BACLhC,MAAO,WACL4E,SAAS8M,iBAAiB,YAAaxN,KAAK64F,0BAC5Cn4F,SAAS8M,iBAAiB,UAAWxN,KAAK84F,wBAC1Cp4F,SAAS2B,KAAKmH,YAAYxJ,KAAK67F,uBAEhC,CACD/9F,IAAK,4BACLhC,MAAO,WACLkE,KAAK84F,2BAEN,CACDh7F,IAAK,2BACLhC,MAAO,SAAkCuY,GACvC,IAAI6nF,EAAwBl8F,KAAK87F,oBAC7B31F,EAAI+1F,EAAsB/1F,EAC1BC,EAAI81F,EAAsB91F,EAC1B+1F,EAAK9nF,EAAM0nF,QAAU51F,EACrBi2F,EAAK/nF,EAAM2nF,QAAU51F,EACrBg2F,EAAK,IAAGp8F,KAAK67F,oBAAoBz7F,MAAMgC,IAAM,GAAGrE,OAAOsW,EAAMkG,MAAQ,EAAG,OACxE4hF,EAAK,IAAGn8F,KAAK67F,oBAAoBz7F,MAAMkC,KAAO,GAAGvE,OAAOsW,EAAMiG,MAAQ,EAAG,OAC7Eta,KAAK67F,oBAAoBz7F,MAAMkB,OAAS,GAAGvD,OAAOqH,KAAKgI,IAAIgvF,GAAK,MAChEp8F,KAAK67F,oBAAoBz7F,MAAMF,MAAQ,GAAGnC,OAAOqH,KAAKgI,IAAI+uF,GAAK,MAC/D9nF,EAAMY,mBAEP,CACDnX,IAAK,yBACLhC,MAAO,WACDkE,KAAK67F,sBACP77F,KAAK67F,oBAAoB34F,SACzBlD,KAAK67F,oBAAsB,MAG7Bn7F,SAAS+M,oBAAoB,YAAazN,KAAK64F,0BAC/Cn4F,SAAS+M,oBAAoB,UAAWzN,KAAK84F,0BAE9C,CACDh7F,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7BtU,IAAWy6F,iBAEPx6F,KAAKq8F,aAAahoF,KACpBrU,KAAKs8F,oBAAoBjoF,EAAMsB,eAC/B3V,KAAK05F,eAAiBrlF,EAAMgoD,MAC5Br8D,KAAK25F,cAAgBtlF,EAAMgoD,MAC3Br8D,KAAK45F,eAAiB55F,KAAKxB,MAAMmU,SAGpC,CACD7U,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAIkoF,EAAYloF,EAAMgoD,QAAUr8D,KAAK05F,eAEjC15F,KAAKq8F,aAAahoF,KAAWkoF,GAC/Bv8F,KAAKq5F,iBAAiBhlF,KAGzB,CACDvW,IAAK,kBACLhC,MAAO,SAAyBuY,GAC1BrU,KAAKw8F,cAAcnoF,KACrBrU,KAAKs8F,oBAAoBjoF,EAAMsB,eAC/B3V,KAAK05F,eAAiBrlF,EAAM++E,SAC5BpzF,KAAK25F,cAAgBtlF,EAAM++E,SAC3BpzF,KAAK45F,eAAiB55F,KAAKxB,MAAMmU,MACjC3S,KAAKk6F,gBAAkB7lF,EAAMg/E,aAGhC,CACDv1F,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIooF,EAAapoF,EAAM++E,WAAapzF,KAAK05F,gBAAkBrlF,EAAMg/E,YAAcrzF,KAAKk6F,gBAEhFl6F,KAAKw8F,cAAcnoF,KAAWooF,GAChCz8F,KAAKq5F,iBAAiBhlF,KAGzB,CACDvW,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5BrU,KAAKi6F,YAAa,IAEnB,CACDn8F,IAAK,kBACLhC,MAAO,SAAyBuY,GAC1BrU,KAAKxB,MAAMiuF,gBACb1sF,IAAWy6F,iBAEPx6F,KAAKxB,MAAMk+F,8BACb18F,KAAKxB,MAAMk+F,6BAA6B,CACtC/mF,cAAetB,EAAMsB,cACrB7Z,MAAOuY,EAAM1F,OAIb3O,KAAKxB,MAAMiuF,eACbzsF,KAAKxB,MAAMiuF,cAAc,CACvB92E,cAAetB,EAAMsB,cACrBhH,KAAM0F,EAAM1F,OAIhB0F,EAAMsB,cAAcV,oBAGvB,CACDnX,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAK85F,kBAAkB97E,EAAgBA,EAAgB,GAAI3J,GAAQ,GAAI,CACrEilF,YAAY,EACZ97F,KAAM,aAGT,CACDM,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9BrU,KAAK+5F,oBAAoB/7E,EAAgBA,EAAgB,GAAI3J,GAAQ,GAAI,CACvEilF,YAAY,EACZ97F,KAAM,gBAGT,CACDM,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,OAAOrU,KAAKxB,MAAMo9F,eAAiB57F,KAAKu6F,wBAA0BlmF,EAAMsB,cAAc+F,WAEvF,CACD5d,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,OAAQrU,KAAKgyF,sBAAwBhyF,KAAK28F,UAAUtoF,KAErD,CACDvW,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,OAAOrU,KAAKgyF,sBAAwBhyF,KAAK28F,UAAUtoF,KAEpD,CACDvW,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIuoF,EAAavoF,EAAMsB,cAAcpX,OAAOsL,SAE5C,MAAmB,UAAf+yF,GAAyC,WAAfA,GAA0C,MAAfA,IAAsB78F,IAAW6uF,SAASv6E,EAAMsB,cAAcpX,OAAQ,iBAMhI,CACDT,IAAK,wBACLhC,MAAO,SAA+BuY,GACpC,OAAQrU,KAAKi6F,cAAgBj6F,KAAKxB,MAAMq+F,kBAAoB78F,KAAKxB,MAAMq+F,mBAAqBxoF,EAAMsB,cAAcJ,SAAWlB,EAAMsB,cAAcN,YAEhJ,CACDvX,IAAK,sBACLhC,MAAO,SAA6BuY,GAClC,OAAOrU,KAAKu6F,uBAAyBlmF,EAAMsB,cAAc+F,UAAoC,OAAxB1b,KAAK05F,iBAE3E,CACD57F,IAAK,oBACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAM69E,eAAiBr8E,KAAKxB,MAAM04F,yBAA2Bl3F,KAAK88F,yBAA2B98F,KAAK+8F,4BAEhH,CACDj/F,IAAK,qBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMw+F,gBAAkBh9F,KAAKu5F,iCAAmCv5F,KAAKw5F,oCAElF,CACD17F,IAAK,uBACLhC,MAAO,WACL,MAAoC,gBAA7BkE,KAAKxB,MAAM69E,gBAEnB,CACDv+E,IAAK,0BACLhC,MAAO,WACL,MAAoC,aAA7BkE,KAAKxB,MAAM69E,gBAEnB,CACDv+E,IAAK,+BACLhC,MAAO,WACL,MAA4C,WAArCkE,KAAKxB,MAAM04F,wBAEnB,CACDp5F,IAAK,kCACLhC,MAAO,WACL,MAA4C,aAArCkE,KAAKxB,MAAM04F,wBAEnB,CACDp5F,IAAK,oBACLhC,MAAO,WACL,MAAoC,WAA7BkE,KAAKxB,MAAM69E,gBAA+Br8E,KAAKw5F,oCAAsCx5F,KAAKi9F,wBAA0Bj9F,KAAKu5F,iCAEjI,CACDz7F,IAAK,sBACLhC,MAAO,WACL,MAAoC,aAA7BkE,KAAKxB,MAAM69E,gBAAiCr8E,KAAKu5F,gCAAkCv5F,KAAKw5F,oCAEhG,CACD17F,IAAK,uBACLhC,MAAO,WACL,OAAOkE,KAAKi9F,wBAA0Bj9F,KAAKu5F,iCAE5C,CACDz7F,IAAK,0BACLhC,MAAO,WACL,OAAOkE,KAAKk9F,2BAA6Bl9F,KAAKw5F,oCAE/C,CACD17F,IAAK,aACLhC,MAAO,SAAoB+0F,GACzB,SAAIA,IAAW7wF,KAAKxB,MAAM6mC,aACjBrlC,KAAKxB,MAAM6mC,qBAAqBvqC,MAAQkF,KAAK+zF,qBAAqBlD,IAAY,EAAI7wF,KAAKqP,OAAOwhF,EAAS7wF,KAAKxB,MAAM6mC,cAK5H,CACDvnC,IAAK,wBACLhC,MAAO,SAA+B+0F,GACpC,SAAIA,IAAW7wF,KAAKxB,MAAM2+F,uBACjBn9F,KAAKqP,OAAOwhF,EAAS7wF,KAAKxB,MAAM2+F,wBAK1C,CACDr/F,IAAK,iBACLhC,MAAO,SAAwBuY,EAAO+oF,GACpC,IAAI7+F,EAAS8V,EAAMoG,cAEnB,IAAKza,KAAKgyF,qBACR,GAAIhyF,KAAKw5F,kCAAmC,CAC1C,IAAI6D,EAAWt9F,IAAWiI,WAAWzJ,EAAQ,yCAC7C8+F,GAAYA,EAASjR,aAChB,GAAIpsF,KAAKu5F,+BAAgC,CAC9C,IAAI+D,EAAQv9F,IAAWiI,WAAWzJ,EAAQ,6CAC1C++F,GAASA,EAAMlR,SAIlBgR,GAAa7+F,GAAUA,EAAO6tF,UAEhC,CACDtuF,IAAK,SACLhC,MAAO,SAAgByhG,EAAOC,GAC5B,OAAIx9F,KAAKgyF,sBAA8BuL,EAAMnK,WAAaoK,EAAMpK,UAAYmK,EAAM1M,UAAY2M,EAAM3M,WAAa0M,EAAMzvF,QAAU0vF,EAAM1vF,OAASyvF,EAAMlK,YAAcmK,EAAMnK,WAAmD,WAA5BrzF,KAAKy9F,mBAAkCF,IAAUC,EAAQ7vF,IAAY0B,OAAOkuF,EAAOC,EAAOx9F,KAAKxB,MAAM2Q,WAEvS,CACDrR,IAAK,uBACLhC,MAAO,SAA8B6S,GACnC,IAAIuS,EAASlhB,KAEb,OAAOA,KAAKxB,MAAM6mC,UAAYrlC,KAAKxB,MAAM6mC,UAAUj2B,WAAU,SAAUxN,GACrE,OAAOsf,EAAO7R,OAAOV,EAAM/M,OACvB,IAEP,CACD9D,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAIqpF,EACAvuF,EAAUnP,KAAKxB,MAAM2Q,QAEzB,GAAIA,EAAS,CACX,IAAIwuF,EAAettF,OAAO1C,IAAYI,iBAAiBsG,EAAM1F,KAAMQ,IAGjC,OAFlCuuF,EAAe19F,KAAKxB,MAAMk/F,aAAe1/E,EAAgB,GAAIhe,KAAKxB,MAAMk/F,cAAgB,IAEvEC,WACRD,EAAaC,GAEhB39F,KAAKxB,MAAMo/F,eACb59F,KAAKxB,MAAMo/F,cAAc,CACvBjoF,cAAetB,EACf1F,KAAM0F,EAAM1F,SAIhB+uF,EAAaC,IAAgB,EAEzB39F,KAAKxB,MAAMq/F,aACb79F,KAAKxB,MAAMq/F,YAAY,CACrBloF,cAAetB,EACf1F,KAAM0F,EAAM1F,YAIb,CACL,IAAImvF,EAAmB99F,KAAK+9F,aAAa/9F,KAAKxB,MAAMk/F,aAAcrpF,EAAM1F,MACxE+uF,EAAe19F,KAAKxB,MAAMk/F,aAAe3Q,EAAmB/sF,KAAKxB,MAAMk/F,cAAgB,IAE7D,IAAtBI,GACFJ,EAAeA,EAAa1/F,QAAO,SAAUqY,EAAKzb,GAChD,OAAOA,IAAMkjG,KAGX99F,KAAKxB,MAAMo/F,eACb59F,KAAKxB,MAAMo/F,cAAc,CACvBjoF,cAAetB,EACf1F,KAAM0F,EAAM1F,SAIhB+uF,EAAa7hG,KAAKwY,EAAM1F,MAEpB3O,KAAKxB,MAAMq/F,aACb79F,KAAKxB,MAAMq/F,YAAY,CACrBloF,cAAetB,EACf1F,KAAM0F,EAAM1F,QAMhB3O,KAAKxB,MAAMqzF,aACb7xF,KAAKxB,MAAMqzF,YAAY,CACrBljF,KAAM+uF,MAIX,CACD5/F,IAAK,eACLhC,MAAO,SAAsB8rE,EAAMC,GACjC,OAAOD,EAAOA,EAAKx4D,WAAU,SAAU4uF,GACrC,OAAOrwF,IAAY0B,OAAOw4D,EAAKm2B,OAC3B,IAEP,CACDlgG,IAAK,gBACLhC,MAAO,SAAuB+rE,GAC5B,IAAI14D,EAAUnP,KAAKxB,MAAM2Q,QAEzB,GAAIA,EAAS,CACX,IAAIwuF,EAAettF,OAAO1C,IAAYI,iBAAiB85D,EAAK14D,IAC5D,OAAOnP,KAAKxB,MAAMk/F,cAAyD,MAAzC19F,KAAKxB,MAAMk/F,aAAaC,GAE1D,OAA4D,IAArD39F,KAAK+9F,aAAa/9F,KAAKxB,MAAMk/F,aAAc71B,KAGrD,CACD/pE,IAAK,qBACLhC,MAAO,SAA4BuY,GACjC,IAAI4pF,EACA9uF,EAAUnP,KAAKxB,MAAM2Q,QAEzB,GAAIA,EAAS,CACX,IAAIwuF,EAAettF,OAAO1C,IAAYI,iBAAiBsG,EAAM1F,KAAMQ,IAElC,OADjC8uF,EAAcj+F,KAAKxB,MAAMy/F,YAAcjgF,EAAgB,GAAIhe,KAAKxB,MAAMy/F,aAAe,IACrEN,UAA8BM,EAAYN,GAAmBM,EAAYN,IAAgB,MACpG,CACL,IAAIO,EAAkBl+F,KAAK+9F,aAAa/9F,KAAKxB,MAAMy/F,YAAa5pF,EAAM1F,MACtEsvF,EAAcj+F,KAAKxB,MAAMy/F,YAAclR,EAAmB/sF,KAAKxB,MAAMy/F,aAAe,IAC3D,IAArBC,EAAwBD,EAAcA,EAAYjgG,QAAO,SAAUqY,EAAKzb,GAC1E,OAAOA,IAAMsjG,KACPD,EAAYpiG,KAAKwY,EAAM1F,MAG7B3O,KAAKxB,MAAM2/F,iBACbn+F,KAAKxB,MAAM2/F,gBAAgB,CACzBxoF,cAAetB,EAAMsB,cACrBhH,KAAMsvF,EACN5hC,MAAOhoD,EAAM++E,aAIlB,CACDt1F,IAAK,eACLhC,MAAO,SAAsB+rE,GAC3B,IAAI14D,EAAUnP,KAAKxB,MAAM2Q,QAEzB,GAAIA,EAAS,CACX,IAAIwuF,EAAettF,OAAO1C,IAAYI,iBAAiB85D,EAAK14D,IAC5D,OAAOnP,KAAKxB,MAAMy/F,aAAuD,MAAxCj+F,KAAKxB,MAAMy/F,YAAYN,GAExD,OAA2D,IAApD39F,KAAK+9F,aAAa/9F,KAAKxB,MAAMy/F,YAAap2B,KAGpD,CACD/pE,IAAK,qBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM69E,eAAqD,MAApCr8E,KAAKxB,MAAM04F,sBACzC,OAAO,EAEP,IAAIp8F,MAAME,QAAQgF,KAAKxB,MAAMgE,UAO3B,OAAOxC,KAAKxB,MAAMgE,UAAiD,MAArCxC,KAAKxB,MAAMgE,SAAS65E,cANlD,IAAK,IAAIzhF,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMgE,SAAS7H,OAAQC,IAC9C,GAAIoF,KAAKxB,MAAMgE,SAAS5H,GAAG4D,MAAM69E,cAC/B,OAAO,EAQf,OAAO,IAER,CACDv+E,IAAK,iBACLhC,MAAO,SAAwBuY,EAAOgoD,GACpCr8D,KAAKo+F,aAAc,EACnBp+F,KAAKq+F,gBAAkBhiC,EACvBhoD,EAAMiqF,aAAaC,QAAQ,OAAQ,OAEpC,CACDzgG,IAAK,eACLhC,MAAO,SAAsBuY,EAAOgoD,GAClCr8D,KAAKo+F,aAAc,EACnBp+F,KAAKq+F,gBAAkB,KACvBr+F,KAAKw+F,gBAAkB,OAExB,CACD1gG,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOgoD,GACnC,GAAIr8D,KAAKo+F,aAAep+F,KAAKq+F,kBAAoBhiC,EAAO,CACtD,IAAIw6B,EAAaxiF,EAAMwiF,WACnB4H,EAAO1+F,IAAWsa,UAAUw8E,GAAYz0F,IAAMrC,IAAW+E,qBACzDyV,EAAQlG,EAAMsB,cAAc4E,MAC5BmkF,EAAUD,EAAO1+F,IAAWyG,eAAeqwF,GAAc,EACzD8H,EAAiB9H,EAAWvI,uBAE5B/zE,EAAQmkF,GACV3+F,IAAWma,YAAY28E,EAAY,gCACnC72F,KAAKw+F,gBAAkBniC,EACnBsiC,EAAgB5+F,IAAWya,SAASmkF,EAAgB,gCAAqC5+F,IAAWya,SAASq8E,EAAY,+BAEzH8H,EAAgB5+F,IAAWma,YAAYykF,EAAgB,gCAAqC5+F,IAAWya,SAASq8E,EAAY,6BAChI72F,KAAKw+F,gBAAkBniC,EAAQ,EAC/Bt8D,IAAWya,SAASq8E,EAAY,oCAIrC,CACD/4F,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIwiF,EAAaxiF,EAAMwiF,WACnB8H,EAAiB9H,EAAWvI,uBAE5BqQ,GACF5+F,IAAWma,YAAYykF,EAAgB,gCAGzC5+F,IAAWma,YAAY28E,EAAY,gCACnC92F,IAAWma,YAAY28E,EAAY,+BAEpC,CACD/4F,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,GAA4B,MAAxBrU,KAAKw+F,gBAAyB,CAChC,IAAII,EAAY5+F,KAAKq+F,gBAAkBr+F,KAAKw+F,gBAAkBx+F,KAAKw+F,gBAA2C,IAAzBx+F,KAAKw+F,gBAAwB,EAAIx+F,KAAKw+F,gBAAkB,EAEzInoF,EAAM02E,EAAmB/sF,KAAKxB,MAAM1C,OAExC6R,IAAYkxF,aAAaxoF,EAAKrW,KAAKq+F,gBAAiBO,GAEhD5+F,KAAKxB,MAAMsgG,cACb9+F,KAAKxB,MAAMsgG,aAAa,CACtBnpF,cAAetB,EACfvY,MAAOua,EACP0oF,UAAW/+F,KAAKq+F,gBAChBO,UAAW5+F,KAAKw+F,kBAMtBx+F,KAAKg5F,eAAe3kF,GACpBrU,KAAK+4F,aAAa1kF,KAEnB,CACDvW,IAAK,uBACLhC,MAAO,WACDkE,KAAKxB,MAAMo9F,eACb57F,KAAKg/F,8BAGR,CACDlhG,IAAK,uBACLhC,MAAO,SAA8B+0F,EAASx0B,GAC5C,IAAIr9C,EAAU,KAUd,MARgC,cAA5Bhf,KAAKxB,MAAMm5F,cAAgC33F,KAAKxB,MAAMygG,sBACxDjgF,EAAuBnE,IAAM7P,cAAcqtF,EAAkB,CAC3Dr4B,QAAShgE,KAAK6xF,YACdhB,QAASA,EACT4D,SAAUz0F,KAAKk/F,cAAcrO,MAIbh2E,IAAM7P,cAAc,KAAM,CAC5C+Y,KAAM,MACNjmB,IAAKu+D,EAAQ,kBACb9+D,UAAW,qBACGsd,IAAM7P,cAAc,KAAM,CACxC+Y,KAAM,OACNqhD,QAASvqD,IAAMs8E,SAASzwF,MAAM1G,KAAKxB,MAAMgE,WACxCwc,EAAsBnE,IAAM7P,cAAc,OAAQ,CACnDzN,UAAW,0BACVyC,KAAKxB,MAAM2gG,uBAAuBtO,EAASx0B,QAE/C,CACDv+D,IAAK,uBACLhC,MAAO,SAA8B+0F,EAASx0B,GAC5C,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5C+Y,KAAM,MACNjmB,IAAKu+D,EAAQ,kBACb9+D,UAAW,qBACVyC,KAAKxB,MAAM4gG,uBAAuBvO,EAASx0B,MAE/C,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAEI8rE,EAFAjmD,EAAS3hB,KAIb,GAAIA,KAAKxB,MAAMgE,SAAU,CACvB,IAAI68F,EAAMr/F,KAAKxB,MAAMopE,MAAQ,EACzBj1D,EAAQ3S,KAAKxB,MAAMmU,OAAS,EAC5B2sF,EAAmBt/F,KAAKu/F,qBACxB5H,EAAe33F,KAAKxB,MAAMm5F,aAC1B6H,EAAuB7H,GAAiC,cAAjBA,EACvC8H,EAAkB9H,GAAiC,YAAjBA,EAClC+H,GAAyB,EAE7B,GAAI1/F,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/CitE,EAAO,GAoJP,IAnJA,IAAIxJ,EAAap+D,KAAKxB,MAAMu8F,KAAO,EAAI/6F,KAAKxB,MAAM1C,MAAMnB,OAASgY,EAAQA,EAAQ,EAC7E0rD,EAAWr+D,KAAKxB,MAAMwvF,cAAgB5vB,EAAmB,EAANihC,EAAUjhC,EAAaihC,GAAOr/F,KAAKxB,MAAM1C,MAAMnB,OAElGglG,EAAQ,SAAe/kG,GACzB,GAAIA,GAAK+mB,EAAOnjB,MAAM1C,MAAMnB,OAC1B,MAAO,QAGT,IAAIk2F,EAAUlvE,EAAOnjB,MAAM1C,MAAMlB,GAE7B65F,EAAW9yE,EAAOu9E,cAAcrO,GAEhCY,EAAU9vE,EAAOi+E,aAAa/O,GAE9BC,IAAWwO,GAAmB39E,EAAOqxD,WAAWrxD,EAAOnjB,MAAM1C,MAAMlB,IAEnE08F,EAAsB31E,EAAOk+E,sBAAsBhP,GAEnDgH,OAAe,EAEnB,GAAI2H,EAAsB,CACxB,IAAIM,EAAsBnyF,IAAYI,iBAAiB8iF,EAASlvE,EAAOnjB,MAAMuhG,YACzEC,EAAuBryF,IAAYI,iBAAiB4T,EAAOnjB,MAAM1C,MAAMlB,EAAI,GAAI+mB,EAAOnjB,MAAMuhG,YAEtF,IAANnlG,GAAWklG,IAAwBE,IACrCp4B,EAAK/rE,KAAK8lB,EAAOs+E,qBAAqBpP,EAASj2F,IAC/C8kG,EAAyBjL,GAI7B,GAAIgL,EAAiB,CACnB,IAAIS,EAAetlG,EAEfulG,EAAuBxyF,IAAYI,iBAAiB8iF,EAASlvE,EAAOnjB,MAAMs8E,WAI9E,GAFyBlgF,IAAMwjE,GAAczwD,IAAYI,iBAAiB4T,EAAOnjB,MAAM1C,MAAMlB,EAAI,GAAI+mB,EAAOnjB,MAAMs8E,aAAeqlB,EAEzG,CACtB,IAAIC,EAAmBD,EAGvB,IAFAtI,EAAe,EAERsI,IAAyBC,GAAkB,CAChDvI,IACA,IAAIwI,EAAc1+E,EAAOnjB,MAAM1C,QAAQokG,GAEvC,IAAIG,EAGF,MAFAD,EAAmBzyF,IAAYI,iBAAiBsyF,EAAa1+E,EAAOnjB,MAAMs8E,aAQlF,IAAIwlB,EAAqB3+E,EAAOnjB,MAAMygG,qBAAuBO,GAAwBE,EAErF,IAAK/9E,EAAOnjB,MAAMygG,qBAAuBqB,EAAoB,CAE3D,IAAIC,EAAuB1lF,IAAM7P,cAAckrF,EAAS,CACtDnF,QAASpvE,EAAOnjB,MAAMuyF,QACtBjzF,IAAKlD,EACLkB,MAAO6lB,EAAOnjB,MAAM1C,MACpB+0F,QAASA,EACTuC,SAAUx4F,EACVolE,QAASr+C,EAAO+2E,WAChBtC,cAAez0E,EAAOnjB,MAAMgiG,iBAC5BlK,aAAc30E,EAAOg3E,gBACrBtC,WAAY10E,EAAOi3E,cACnB9+E,YAAa6H,EAAOu3E,eACpBvH,UAAWhwE,EAAOw3E,aAClBpB,gBAAiBp2E,EAAOo2E,gBACxBC,cAAer2E,EAAOq2E,cACtBnG,YAAalwE,EAAOkwE,YACpB4C,SAAUA,EACVpY,cAAe16D,EAAOnjB,MAAM69E,cAC5BwW,aAAclxE,EAAOnjB,MAAMq0F,aAC3BiC,aAAcnzE,EAAOmzE,aACrBC,gBAAiBpzE,EAAOozE,gBACxBjE,SAAUA,EACVwG,oBAAqBA,EACrBE,aAAc71E,EAAOnjB,MAAMg5F,aAC3BlD,cAAe3yE,EAAOnjB,MAAM81F,cAC5BxZ,UAAWn5D,EAAOnjB,MAAMs8E,UACxB6c,aAAch2E,EAAOnjB,MAAMm5F,aAC3BE,aAAcA,EACdK,YAAa,SAAqB14F,GAChC,OAAOmiB,EAAO8+E,eAAejhG,EAAG5E,IAElC27F,UAAW50E,EAAOo3E,aAClBvC,WAAY,SAAoBh3F,GAC9B,OAAOmiB,EAAO++E,cAAclhG,EAAG5E,IAEjC67F,YAAa90E,EAAOq3E,eACpBtC,OAAQ/0E,EAAOs3E,UACfjL,cAAersE,EAAOnjB,MAAMwvF,cAC5BG,iBAAkBxsE,EAAOnjB,MAAM2vF,iBAC/B2D,SAAUnwE,EAAOnjB,MAAMszF,SACvBL,QAASA,EACT0E,yBAA0Bx0E,EAAOnjB,MAAM2/F,gBACvClH,mBAAoBt1E,EAAOnjB,MAAMy4F,mBACjCpB,cAAel0E,EAAOnjB,MAAMq3F,cAC5BR,cAAe1zE,EAAOnjB,MAAM62F,cAC5BI,gBAAiB9zE,EAAOnjB,MAAMi3F,gBAC9BuB,mBAAoBr1E,EAAOq1E,mBAC3B/B,sBAAuBtzE,EAAOnjB,MAAMy2F,sBACpCJ,qBAAsBlzE,EAAOnjB,MAAMq2F,qBACnCwF,kBAAmB14E,EAAOnjB,MAAM67F,kBAChCnD,sBAAuBv1E,EAAOnjB,MAAM04F,sBACpC0E,cAAej6E,EAAOnjB,MAAMo9F,cAC5Bv2D,UAAW1jB,EAAOnjB,MAAM6mC,UACxBkyD,kBAAmB51E,EAAO41E,oBAC1BvF,mBAAoBrwE,EAAOqwE,qBAC3BiG,YAAat2E,EAAOs2E,YACpB9E,oBAAqBxxE,EAAOnjB,MAAM20F,qBACjCxxE,EAAOnjB,MAAMgE,UAChBolE,EAAK/rE,KAAK0kG,GAIZ,GAAI9L,KAAc+K,IAAwB79E,EAAOnjB,MAAMygG,qBAAsB,CAC3E,IAAI0B,EAAqBh/E,EAAOnjB,MAAMoiG,qBAAqB/P,GAEvD/sE,EAAK,GAAG/lB,OAAO4jB,EAAOnjB,MAAMuyF,QAAUpvE,EAAOnjB,MAAMuyF,QAAU,IAAM,GAAI,YAAYhzF,OAAOnD,EAAG,aAC7FimG,EAA2BhmF,IAAM7P,cAAc,KAAM,CACvDlN,IAAKgmB,EACLA,GAAIA,EACJC,KAAM,MACNxmB,UAAW,kBACGsd,IAAM7P,cAAc,KAAM,CACxC+Y,KAAM,OACNqhD,QAASzjD,EAAOnjB,MAAMgE,SAAS7H,QAC9BgmG,IACH/4B,EAAK/rE,KAAKglG,GAIZ,GAAIrB,KAA0B79E,EAAOnjB,MAAMygG,qBAAuBqB,GAAqB,CACrF,IAAIQ,EAAwBnzF,IAAYI,iBAAiB8iF,EAASlvE,EAAOnjB,MAAMuhG,YAE3EgB,EAAoBpzF,IAAYI,iBAAiB4T,EAAOnjB,MAAM1C,MAAMlB,EAAI,GAAI+mB,EAAOnjB,MAAMuhG,YAEzFnlG,IAAM+mB,EAAOnjB,MAAM1C,MAAMnB,OAAS,GAAKmmG,IAA0BC,GACnEn5B,EAAK/rE,KAAK8lB,EAAOq/E,qBAAqBnQ,EAASj2F,MAK5CA,EAAIwjE,EAAYxjE,EAAIyjE,EAAUzjE,IAAK,CAG1C,GAAa,UAFF+kG,EAAM/kG,GAEK,WAEnB,CACL,IAAIqmG,EAAejhG,KAAKxB,MAAMyiG,aAC9Br5B,EAAQ5nE,KAAKxB,MAAMq6E,SAA4B,OAAjBooB,EAM6D,KANxBpmF,IAAM7P,cAAc,KAAM,CAC3F+Y,KAAM,MACNxmB,UAAW,4BACGsd,IAAM7P,cAAc,KAAM,CACxC+Y,KAAM,OACNqhD,QAASplE,KAAKxB,MAAMgE,SAAS7H,QACJ,oBAAjBsmG,EAA8BA,EAAajhG,KAAKxB,MAAM49E,QAAU6kB,KAI9E,OAAoBpmF,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVqqE,OAIA6wB,EAjhCoB,CAkhC3Bz9E,aAEF,SAASkmF,EAAeloF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P2hG,GAA+B,OAAO,WAAkC,IAAsCryF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIsyF,EAA0B,SAAUxnF,GACtCpB,EAAU4oF,EAAYxnF,GAEtB,IAAIC,EAASqnF,EAAeE,GAE5B,SAASA,IAGP,OAFAjjG,EAAgB6B,KAAMohG,GAEfvnF,EAAOvQ,MAAMtJ,KAAM7C,WAkB5B,OAfA2B,EAAasiG,EAAY,CAAC,CACxBtjG,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYyC,KAAKxB,MAAM09E,iBAAmBl8E,KAAKxB,MAAMjB,UACrD29E,EAASvtE,IAAY8rE,cAAcz5E,KAAKxB,MAAM08E,OAAQl7E,KAAKxB,OAC/D,OAAoBqc,IAAM7P,cAAc,KAAM,CAC5C+Y,KAAM,OACNxmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAMy9E,aAAej8E,KAAKxB,MAAM4B,MAC5CglE,QAASplE,KAAKxB,MAAM4mE,QACpBkX,QAASt8E,KAAKxB,MAAM89E,SACnBpB,OAIAkmB,EA1BqB,CA2B5BpmF,aAEF,SAASqmF,EAAeroF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P8hG,GAA+B,OAAO,WAAkC,IAAsCxyF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIyyF,EAA2B,SAAU3nF,GACvCpB,EAAU+oF,EAAa3nF,GAEvB,IAAIC,EAASwnF,EAAeE,GAE5B,SAASA,IAGP,OAFApjG,EAAgB6B,KAAMuhG,GAEf1nF,EAAOvQ,MAAMtJ,KAAM7C,WAwC5B,OArCA2B,EAAayiG,EAAa,CAAC,CACzBzjG,IAAK,oBACLhC,MAAO,SAA2B6nD,EAAMi0C,EAAQh9F,GAC9C,IAAI4H,EAAWqY,IAAMs8E,SAASC,QAAQzzC,EAAKnlD,MAAMgE,UACjD,OAAOqY,IAAMs8E,SAASx5F,IAAI6E,GAAU,SAAUo1F,EAAQh9F,GACpD,OAAoBigB,IAAM7P,cAAco2F,EAAY3oB,EAAS,CAC3D36E,IAAKlD,GACJg9F,EAAOp5F,aAGb,CACDV,IAAK,SACLhC,MAAO,WACL,IAEIkjB,EAFAzZ,EAAQvF,KAIRA,KAAKxB,MAAMgjG,YAEbxiF,EADWnE,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgjG,YAAYhjG,MAAMgE,UAChD7E,KAAI,SAAUkqE,EAAKjtE,GAChC,OAAoBigB,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKlD,EACLmpB,KAAM,OACLxe,EAAMk8F,kBAAkB55B,OAG7B7oD,EAAuBnE,IAAM7P,cAAc,KAAM,CAC/C+Y,KAAM,OACL/jB,KAAKyhG,kBAAkBzhG,OAG5B,OAAoB6a,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVyhB,OAIAuiF,EAhDsB,CAiD7BvmF,aAEF,SAASjC,EAAeC,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pga,GAA+B,OAAO,WAAkC,IAAsC1K,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI4yF,EAA0B,SAAU9nF,GACtCpB,EAAUkpF,EAAY9nF,GAEtB,IAAIC,EAASd,EAAe2oF,GAE5B,SAASA,EAAWljG,GAClB,IAAI+G,EAoBJ,OAlBApH,EAAgB6B,KAAM0hG,IAEtBn8F,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZvN,YAAa,GACb8xF,cAAc,GAEhBp8F,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMq8F,eAAiBr8F,EAAMq8F,eAAe7nF,KAAK7B,EAAuB3S,IACxEA,EAAMuU,YAAcvU,EAAMuU,YAAYC,KAAK7B,EAAuB3S,IAClEA,EAAMs8F,mBAAqBt8F,EAAMs8F,mBAAmB9nF,KAAK7B,EAAuB3S,IAChFA,EAAMu8F,eAAiBv8F,EAAMu8F,eAAe/nF,KAAK7B,EAAuB3S,IACxEA,EAAMw8F,qBAAuBx8F,EAAMw8F,qBAAqBhoF,KAAK7B,EAAuB3S,IACpFA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAM2yF,YAAc3yF,EAAM2yF,YAAYn+E,KAAK7B,EAAuB3S,IAClEA,EAAMixF,WAAajxF,EAAMixF,WAAWz8E,KAAK7B,EAAuB3S,IAChEA,EAAMkxF,YAAclxF,EAAMkxF,YAAY18E,KAAK7B,EAAuB3S,IAClEA,EAAMmxF,OAASnxF,EAAMmxF,OAAO38E,KAAK7B,EAAuB3S,IACjDA,EA4TT,OAzTAzG,EAAa4iG,EAAY,CAAC,CACxB5jG,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAI2tF,EAAwBhiG,KAAKxB,MAAMu0F,YACnCjlF,EAAQk0F,EAAsBl0F,MAC9BgtE,EAAYknB,EAAsBlnB,UAClCK,EAAW6mB,EAAsB7mB,SACjCE,EAAe2mB,EAAsB3mB,aAEzC,IAAKr7E,KAAKiiG,qBAAsB,CAC9B,IAAIrF,EAAavoF,EAAM9V,QAEnBwB,IAAW6uF,SAASgO,EAAY,sBAAwB78F,IAAW6uF,SAASgO,EAAY,mBAAqB78F,IAAW6uF,SAASgO,EAAY,2BAA6B78F,IAAW6uF,SAASgO,EAAW3iF,cAAe,6BAC1Nja,KAAKxB,MAAM0jG,OAAO,CAChBvsF,cAAetB,EACfymE,UAAWA,GAAahtE,EACxButE,aAAcA,EACdF,SAAUA,EACVgnB,uBAAwBniG,KAAKxB,MAAM2jG,yBAErCpiG,IAAWy6F,qBAIhB,CACD18F,IAAK,iBACLhC,MAAO,SAAwB0D,GAC7B,IAAImb,EAAS3a,KAET6P,EAAcrQ,EAAEjB,OAAOzC,MAEvBkE,KAAKxB,MAAMu0F,YAAY/0F,QAAUgC,KAAKxB,MAAM4jG,WAC1CpiG,KAAKqiG,eACPtsF,aAAa/V,KAAKqiG,eAGpBriG,KAAKqiG,cAAgBx5F,YAAW,WAC9B8R,EAAOnc,MAAM4jG,SAAS,CACpBtmG,MAAO+T,EACP/B,MAAO6M,EAAOnc,MAAMu0F,YAAYhY,aAAepgE,EAAOnc,MAAMu0F,YAAYjlF,MACxEw0F,UAAW3nF,EAAOnc,MAAMu0F,YAAYjjF,kBAGtC6K,EAAO0nF,cAAgB,OACtBriG,KAAKxB,MAAM+jG,cAGhBviG,KAAKwd,SAAS,CACZ3N,YAAaA,MAGhB,CACD/R,IAAK,qBACLhC,MAAO,SAA4BuY,GAC7BrU,KAAKxB,MAAMgkG,kBAAoBxiG,KAAKxB,MAAMikG,sBAC5CziG,KAAKxB,MAAMikG,oBAAoB,CAC7B9sF,cAAetB,EACfquF,SAAUruF,EAAM9V,OAAO0b,cACvB84E,YAAa/yF,KAAKxB,MAAMu0F,cAE1B1+E,EAAMY,oBAGT,CACDnX,IAAK,iBACLhC,MAAO,SAAwBuY,GACzBrU,KAAKxB,MAAMgkG,kBAAoBxiG,KAAKxB,MAAMmkG,uBAC5C3iG,KAAKxB,MAAMmkG,qBAAqB,CAC9BhtF,cAAetB,EACf9R,QAAS8R,EAAMoG,cAAcR,cAC7B29E,OAAQ53F,KAAKxB,MAAMu0F,cAErB1+E,EAAMY,oBAGT,CACDnX,IAAK,uBACLhC,MAAO,SAA8BuY,GAC/BrU,KAAKxB,MAAMgkG,kBAAoBxiG,KAAKxB,MAAMokG,6BAC5C5iG,KAAKxB,MAAMokG,2BAA2B,CACpCjtF,cAAetB,EACf9R,QAAS8R,EAAMoG,cAAcR,cAC7B29E,OAAQ53F,KAAKxB,MAAMu0F,cAErB1+E,EAAMY,oBAGT,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAMqkG,oBAAsB7iG,KAAKxB,MAAMu0F,YAAY3V,cAC5B,UAA1B/oE,EAAM9V,OAAOsL,SAAsB7J,KAAKC,GAAG22F,WAAY,EAAwC,UAA1BviF,EAAM9V,OAAOsL,WAAsB7J,KAAKC,GAAG22F,WAAY,MAGnI,CACD94F,IAAK,YACLhC,MAAO,SAAmBuY,GACN,UAAdA,EAAMvW,KAAmBuW,EAAMoG,gBAAkBza,KAAKC,KACxDD,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAGT,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAM05F,aACbl4F,KAAKxB,MAAM05F,YAAY,CACrBviF,cAAetB,EACfujF,OAAQ53F,KAAKxB,MAAMu0F,gBAIxB,CACDj1F,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKxB,MAAMg4F,YACbx2F,KAAKxB,MAAMg4F,WAAW,CACpB7gF,cAAetB,EACfujF,OAAQ53F,KAAKxB,MAAMu0F,gBAIxB,CACDj1F,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAMi4F,aACbz2F,KAAKxB,MAAMi4F,YAAY,CACrB9gF,cAAetB,EACfujF,OAAQ53F,KAAKxB,MAAMu0F,gBAIxB,CACDj1F,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKxB,MAAMk4F,QACb12F,KAAKxB,MAAMk4F,OAAO,CAChB/gF,cAAetB,EACfujF,OAAQ53F,KAAKxB,MAAMu0F,gBAIxB,CACDj1F,IAAK,4BACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMskG,cAGb,IAFA,IAAIC,EAAkB/iG,KAAKxB,MAAMu0F,YAAYjY,WAAa96E,KAAKxB,MAAMu0F,YAAYjlF,MAExElT,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMskG,cAAcnoG,OAAQC,IACnD,GAAIoF,KAAKxB,MAAMskG,cAAcloG,GAAGkT,QAAUi1F,EACxC,OAAOnoG,EAKb,OAAQ,IAET,CACDkD,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjC,IAAIw/E,EAAkBx/E,EAAUuvE,YAC5BA,EAAc/yF,KAAKxB,MAAMu0F,YACzBhY,EAAcgY,EAAYhY,aAAegY,EAAYjlF,MAErDk1F,EAAgB5nB,mBAAqB2X,EAAY3X,kBAAoB4nB,EAAgB7nB,WAAa4X,EAAY5X,UAChHn7E,KAAKxB,MAAMykG,qBAGTjjG,KAAKod,MAAMvN,aAAe2T,EAAU0/E,SAAW1/E,EAAU0/E,QAAQnoB,KAAkB/6E,KAAKxB,MAAM0kG,SAAYljG,KAAKxB,MAAM0kG,QAAQnoB,IAC/H/6E,KAAKwd,SAAS,CACZ3N,YAAa,OAIlB,CACD/R,IAAK,cACLhC,MAAO,SAAqBqnG,EAAQC,GAClC,GAAIpjG,KAAKxB,MAAMu0F,YAAY5X,SAAU,CACnC,IAAIkoB,EAAWF,EAASC,EAAY,EAAI,sBAAwB,wBAA0B,cAC1F,MAAiB,wBAAbC,EAA2C,aAAmC,0BAAbA,EAA6C,YAAwB,OAE1I,OAAO,OAGV,CACDvlG,IAAK,qBACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAMu0F,YAAY5X,UAAYn7E,KAAKxB,MAAMu0F,YAAY5X,WAAan7E,KAAKxB,MAAM8kG,qBAAuBtjG,KAAKxB,MAAMu0F,YAAY3X,oBAEzI,CACDt9E,IAAK,iBACLhC,MAAO,WACL,OAAgC,OAAzBkE,KAAKxB,MAAMs8E,YAAqB96E,KAAKxB,MAAMu0F,YAAYjlF,QAAU9N,KAAKxB,MAAMs8E,WAAa96E,KAAKxB,MAAMu0F,YAAYjY,YAAc96E,KAAKxB,MAAMs8E,aAEjJ,CACDh9E,IAAK,iBACLhC,MAAO,SAAwBqnG,EAAQC,GACrC,GAAIpjG,KAAKxB,MAAMu0F,YAAY5X,SAAU,CACnC,IAAIkoB,EAAWF,EAASC,EAAY,EAAI,sBAAwB,wBAA0B,cACtFG,EAAoBtmG,YAAW,kCAAmComG,GACtE,OAAoBxoF,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWgmG,IAGb,OAAO,OAGV,CACDzlG,IAAK,kBACLhC,MAAO,SAAyB0nG,GAC9B,OAA2B,IAAvBA,GAA4BxjG,KAAKod,MAAMukF,aACrB9mF,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,2BACVimG,EAAoB,GAGlB,OAER,CACD1lG,IAAK,SACLhC,MAAO,WACL,IAEI2/E,EAAegoB,EAFfviF,EAASlhB,KAuBb,GAnBIA,KAAKxB,MAAMu0F,YAAY/0F,QAAUgC,KAAKxB,MAAMklG,cAAcC,eAC5DloB,EAAgBz7E,KAAKxB,MAAMu0F,YAAYtX,eAA8B5gE,IAAM7P,cAAc2vE,IAAW,CAClGpoE,SAAUvS,KAAK4hG,eACfpkG,KAAMwC,KAAKxB,MAAMu0F,YAAYxX,WAC7Bz/E,MAAOkE,KAAKod,MAAMvN,YAClBtS,UAAW,kBACXqmG,YAAa5jG,KAAKxB,MAAMu0F,YAAYzX,kBACpCuoB,UAAW7jG,KAAKxB,MAAMu0F,YAAYvX,mBAIO,aAAzCx7E,KAAKxB,MAAMu0F,YAAY1W,eAAgCr8E,KAAKxB,MAAMklG,cAAcI,uBAClFL,EAA8B5oF,IAAM7P,cAAckmF,EAAa,CAC7DlxB,QAAShgE,KAAKxB,MAAMulG,sBACpBjT,SAAU9wF,KAAKxB,MAAMwlG,uBACrBvkF,UAAWzf,KAAKxB,MAAM1C,OAAqC,IAA5BkE,KAAKxB,MAAM1C,MAAMnB,UAIhDqF,KAAKxB,MAAMklG,cAAcO,WAC3B,OAAoBppF,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAOjhB,GAAKA,GAErB8jB,KAAM,eACNxmB,UAAWN,YAAW,kBAAmB+C,KAAKxB,MAAMu0F,YAAYnX,uBAChEx7E,MAAOJ,KAAKxB,MAAMu0F,YAAYpX,mBAAqB37E,KAAKxB,MAAMu0F,YAAY3yF,MAC1EglE,QAASplE,KAAKxB,MAAMu0F,YAAY3tB,QAChCkX,QAASt8E,KAAKxB,MAAMu0F,YAAYzW,SAC/Bb,EAAegoB,GAElB,IAAID,EAAoBxjG,KAAKkkG,4BACzBC,GAA2C,IAAvBX,EAA2BxjG,KAAKxB,MAAMskG,cAAcU,GAAqB,KAC7FY,EAAepkG,KAAKqkG,iBACpBC,EAAuC,OAAtBH,EACjBf,EAAY,EACZmB,EAAUvkG,KAAKxB,MAAMgkG,kBAAiC3nF,IAAM7P,cAAc,OAAQ,CACpFzN,UAAW,+BACXuc,YAAa9Z,KAAK6hG,mBAClB7hC,QAAShgE,KAAK8hG,eACd1L,cAAep2F,KAAK+hG,uBAElBqC,EAAchB,EAAYpjG,KAAKxB,MAAM4kG,UAAmBkB,IAAgBlB,EAAYe,EAAkB76E,OAC1G,IAAI65E,EAASnjG,KAAKxB,MAAMu0F,YAAY5X,WAAaipB,GAAgBE,GAC7DrC,EAAqBjiG,KAAKiiG,qBAC1B1kG,EAAYN,YAAW,CACzB,oBAAqB+C,KAAKxB,MAAMu0F,YAAY5X,SAC5C,cAAegoB,EACf,sBAAuBlB,EACvB,qBAAsBjiG,KAAKxB,MAAMgkG,iBACjC,qBAAsBxiG,KAAKxB,MAAMu0F,YAAY1W,eAC5Cr8E,KAAKxB,MAAMu0F,YAAYjX,iBAAmB97E,KAAKxB,MAAMu0F,YAAYx1F,WAChEinG,EAAkBxkG,KAAKykG,eAAetB,EAAQC,GAC9CsB,EAAe1kG,KAAK2kG,YAAYxB,EAAQC,GACxCwB,EAAY5kG,KAAK6kG,gBAAgBrB,GACjC1+B,EAAW9kE,KAAKxB,MAAMu0F,YAAY5X,WAAa8mB,EAAqBjiG,KAAKxB,MAAMsmE,SAAW,KAC9F,OAAoBjqD,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAOjhB,GAAKA,GAErB8jB,KAAM,eACN+gD,SAAUA,EACVvnE,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAMu0F,YAAYlX,aAAe77E,KAAKxB,MAAMu0F,YAAY3yF,MACpE4/D,QAAShgE,KAAKggE,QACdlmD,YAAa9Z,KAAK8Z,YAClBrF,UAAWzU,KAAKyU,UAChB2wD,QAASplE,KAAKxB,MAAMu0F,YAAY3tB,QAChCkX,QAASt8E,KAAKxB,MAAMu0F,YAAYzW,QAChC,YAAaooB,EACbxM,YAAal4F,KAAKk4F,YAClB1B,WAAYx2F,KAAKw2F,WACjBC,YAAaz2F,KAAKy2F,YAClBC,OAAQ12F,KAAK02F,QACZ6N,EAAsB1pF,IAAM7P,cAAc,OAAQ,CACnDzN,UAAW,kBACVyC,KAAKxB,MAAMu0F,YAAY/X,QAASwpB,EAAiBI,EAAWnpB,EAAegoB,MAGhF,CAAC,CACH3lG,IAAK,2BACLhC,MAAO,SAAkCojD,EAAWz7B,GAClD,MAAO,CACLk+E,aAAcziD,EAAU4jD,eAAiB5jD,EAAU4jD,cAAcnoG,OAAS,OAKzE+mG,EAtVqB,CAuV5B1mF,aAEF,SAAS/b,EAA6BhD,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAEhL,SAAuClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOiD,EAAoBnD,EAAGC,GAFvOmD,CAA8BpD,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAI79B,SAASqD,EAAoB3E,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAElL,SAAS4hB,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIg2F,EAA2B,SAAUlrF,GACvCpB,EAAUssF,EAAalrF,GAEvB,IAAIC,EAAS4C,EAAeqoF,GAE5B,SAASA,EAAYtmG,GACnB,IAAI+G,EAUJ,OARApH,EAAgB6B,KAAM8kG,IAEtBv/F,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ+kF,uBAAwB,GACxBmB,qBAAqB,GAEvB/9F,EAAM09F,iBAAmB19F,EAAM09F,iBAAiBlpF,KAAK7B,EAAuB3S,IACrEA,EA0KT,OAvKAzG,EAAagmG,EAAa,CAAC,CACzBhnG,IAAK,oBACLhC,MAAO,SAA2BwzF,EAASoU,GACzC,IAAI/oF,EAAS3a,KAEb,OAAO6a,IAAMs8E,SAASx5F,IAAI2xF,GAAS,SAAUsI,EAAQh9F,GACnD,OAAoBigB,IAAM7P,cAAc02F,EAAY,CAClD5jG,IAAK85F,EAAOp5F,MAAMq8E,WAAa+c,EAAOp5F,MAAMsP,OAASlT,EACrD0oG,oBAAqB3oF,EAAOoqF,wBAC5B9B,iBAAkBtoF,EAAOsoF,iBACzBlQ,YAAa6E,EAAOp5F,MACpB1C,MAAO6e,EAAOnc,MAAM1C,MACpBomG,OAAQvnF,EAAOnc,MAAM0jG,OACrBC,uBAAwBxnF,EAAOyC,MAAM+kF,uBACrC6C,SAAUrqF,EAAOnc,MAAMwmG,SACvBlqB,UAAWngE,EAAOnc,MAAMs8E,UACxBsoB,UAAWzoF,EAAOnc,MAAM4kG,UACxBN,cAAenoF,EAAOnc,MAAMskG,cAC5BN,iBAAkB7nF,EAAOnc,MAAMgkG,iBAC/BC,oBAAqB9nF,EAAOnc,MAAMikG,oBAClCE,qBAAsBhoF,EAAOnc,MAAMmkG,qBACnCC,2BAA4BjoF,EAAOnc,MAAMokG,2BACzCL,YAAa5nF,EAAOnc,MAAM+jG,YAC1BH,SAAUznF,EAAOnc,MAAM4jG,SACvBsB,cAAeA,EACfK,sBAAuBppF,EAAOnc,MAAMulG,sBACpCC,uBAAwBrpF,EAAOnc,MAAMwlG,uBACrCnB,mBAAoBloF,EAAOnc,MAAMqkG,mBACjC3K,YAAav9E,EAAOnc,MAAMymG,kBAC1BzO,WAAY77E,EAAOnc,MAAM0mG,iBACzBzO,YAAa97E,EAAOnc,MAAM2mG,kBAC1BzO,OAAQ/7E,EAAOnc,MAAM4mG,aACrBlC,QAASvoF,EAAOnc,MAAM0kG,QACtBp+B,SAAUnqD,EAAOnc,MAAMsmE,gBAI5B,CACDhnE,IAAK,kBACLhC,MAAO,SAAyBwzF,GAC9B,GAAIA,EAAS,CACX,IACIloF,EADAM,EAAYzI,EAA6BqwF,GAG7C,IACE,IAAK5nF,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAGlD,GAFUwL,EAAMtL,MAER0C,MAAMR,OACZ,OAAO,GAGX,MAAOjC,GACP2L,EAAUlI,EAAEzD,GATd,QAWE2L,EAAUjI,KAId,OAAO,IAER,CACD3B,IAAK,eACLhC,MAAO,WACL,MAA+B,WAAxBkE,KAAKxB,MAAMwmG,WAEnB,CACDlnG,IAAK,iBACLhC,MAAO,WACL,MAA+B,aAAxBkE,KAAKxB,MAAMwmG,WAEnB,CACDlnG,IAAK,wBACLhC,MAAO,WACL,OAAOkE,KAAKqlG,gBAAkBrlG,KAAKod,MAAMkmF,sBAE1C,CACDxlG,IAAK,iBACLhC,MAAO,SAAwB87F,GAC7B,OAAgC,OAAzB53F,KAAKxB,MAAMs8E,YAAqB8c,EAAOp5F,MAAMsP,QAAU9N,KAAKxB,MAAMs8E,WAAa8c,EAAOp5F,MAAMs8E,YAAc96E,KAAKxB,MAAMs8E,aAE7H,CACDh9E,IAAK,yBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,GAAIA,KAAKqlG,gBAAkBrlG,KAAKslG,kBAAoBtlG,KAAKxB,MAAM0jG,OAAQ,CACrE,IAAIC,EAAyB,GACzBmB,GAAsB,EAC1BzoF,IAAMs8E,SAASjmF,QAAQlR,KAAKxB,MAAMgE,UAAU,SAAUo1F,GAChDA,EAAOp5F,MAAM48E,mBACf+mB,EAAuBtmG,KAAK+7F,EAAOp5F,MAAMs8E,WAAa8c,EAAOp5F,MAAMsP,QAE9Dw1F,GAAuBpiF,EAAOqkF,eAAe3N,KAChD0L,GAAsB,OAI5BtjG,KAAKwd,SAAS,CACZ2kF,uBAAwBA,EACxBmB,oBAAqBA,OAI1B,CACDxlG,IAAK,mBACLhC,MAAO,WACLkE,KAAKwlG,2BAEN,CACD1nG,IAAK,oBACLhC,MAAO,WACLkE,KAAKwlG,2BAEN,CACD1nG,IAAK,SACLhC,MAAO,WACL,IAEIkjB,EAFA2C,EAAS3hB,KAIb,GAAIA,KAAKxB,MAAMgjG,YAAa,CAE1BxiF,EADWnE,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgjG,YAAYhjG,MAAMgE,UAChD7E,KAAI,SAAUkqE,EAAKjtE,GAChC,OAAoBigB,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKlD,EACLmpB,KAAM,OACLpC,EAAO8jF,kBAAkB5qF,IAAMs8E,SAASC,QAAQvvB,EAAIrpE,MAAMgE,UAAW,CACtEyhG,YAAY,EACZN,cAAc,EACdG,sBAAsB,YAGrB,CACL,IAAIxU,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAG9Cwc,EADEhf,KAAK0lG,gBAAgBpW,GACAz0E,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,KAAM,CACtG+Y,KAAM,OACL/jB,KAAKylG,kBAAkBnW,EAAS,CACjC2U,YAAY,EACZN,cAAc,EACdG,sBAAsB,KACNjpF,IAAM7P,cAAc,KAAM,CAC1C+Y,KAAM,OACL/jB,KAAKylG,kBAAkBnW,EAAS,CACjC2U,YAAY,EACZN,cAAc,EACdG,sBAAsB,MAGDjpF,IAAM7P,cAAc,KAAM,CAC/C+Y,KAAM,OACL/jB,KAAKylG,kBAAkBnW,EAAS,CACjC2U,YAAY,EACZN,cAAc,EACdG,sBAAsB,KAK5B,OAAoBjpF,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVyhB,OAIA8lF,EA1LsB,CA2L7B9pF,aAEF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI62F,GAAgC,SAAU/rF,GAC5CpB,EAAUmtF,EAAkB/rF,GAE5B,IAAIC,EAASgE,EAAe8nF,GAE5B,SAASA,IAGP,OAFAxnG,EAAgB6B,KAAM2lG,GAEf9rF,EAAOvQ,MAAMtJ,KAAM7C,WAuC5B,OApCA2B,EAAa6mG,EAAkB,CAAC,CAC9B7nG,IAAK,YACLhC,MAAO,SAAmBugE,GAGxB,IAFA,IAAImL,EAAQ,GAEH5sE,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM8wF,QAAQ30F,OAAQC,IAC7C4sE,EAAM3rE,KAAmBgf,IAAM7P,cAAc,KAAM,CACjDlN,IAAKlD,GACJoF,KAAKxB,MAAM8wF,QAAQ10F,GAAG4D,MAAMy8E,gBAGjC,OAAoBpgE,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,GACJmL,KAEJ,CACD1pE,IAAK,aACLhC,MAAO,WAGL,IAFA,IAAI8rE,EAAO,GAEFhtE,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMopE,KAAMhtE,IACnCgtE,EAAK/rE,KAAKmE,KAAK4lG,UAAUhrG,IAG3B,OAAOgtE,IAER,CACD9pE,IAAK,SACLhC,MAAO,WACL,IAAI8rE,EAAO5nE,KAAK6lG,aAChB,OAAoBhrF,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVqqE,OAIA+9B,EA/C2B,CAgDlC3qF,aAEF,SAASvL,GAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,GAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,GAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,GAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASgqB,GAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,GAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIg3F,GAAyB,SAAUlsF,GACrCpB,EAAUstF,EAAWlsF,GAErB,IAAIC,EAASkL,GAAa+gF,GAE1B,SAASA,EAAUtnG,GACjB,IAAI+G,EAwCJ,OAtCApH,EAAgB6B,KAAM8lG,IAEtBvgG,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ2oF,OAAQvnG,EAAMopE,KACdo+B,aAAc,IAGXzgG,EAAM/G,MAAMynG,SACf1gG,EAAM6X,MAAMzK,MAAQnU,EAAMmU,MAC1BpN,EAAM6X,MAAMwqD,KAAOppE,EAAMopE,MAGtBriE,EAAM/G,MAAM0jG,SACf38F,EAAM6X,MAAM09D,UAAYt8E,EAAMs8E,UAC9Bv1E,EAAM6X,MAAMgmF,UAAY5kG,EAAM4kG,UAC9B79F,EAAM6X,MAAM0lF,cAAgBtkG,EAAMskG,eAG/Bv9F,EAAM/G,MAAM4jG,WACf78F,EAAM6X,MAAM8lF,QAAU1kG,EAAM0kG,SAG1B39F,EAAM2gG,cACR3gG,EAAM4gG,aAAa5gG,EAAM6X,OAG3B7X,EAAM6gG,aAAe7gG,EAAM6gG,aAAarsF,KAAK7B,EAAuB3S,IACpEA,EAAM28F,OAAS38F,EAAM28F,OAAOnoF,KAAK7B,EAAuB3S,IACxDA,EAAM68F,SAAW78F,EAAM68F,SAASroF,KAAK7B,EAAuB3S,IAC5DA,EAAMk9F,oBAAsBl9F,EAAMk9F,oBAAoB1oF,KAAK7B,EAAuB3S,IAClFA,EAAMw+F,sBAAwBx+F,EAAMw+F,sBAAsBhqF,KAAK7B,EAAuB3S,IACtFA,EAAM0/F,kBAAoB1/F,EAAM0/F,kBAAkBlrF,KAAK7B,EAAuB3S,IAC9EA,EAAM2/F,iBAAmB3/F,EAAM2/F,iBAAiBnrF,KAAK7B,EAAuB3S,IAC5EA,EAAM4/F,kBAAoB5/F,EAAM4/F,kBAAkBprF,KAAK7B,EAAuB3S,IAC9EA,EAAM6/F,aAAe7/F,EAAM6/F,aAAarrF,KAAK7B,EAAuB3S,IACpEA,EAAM8pF,gBAAkB9pF,EAAM8pF,gBAAgBt1E,KAAK7B,EAAuB3S,IAC1EA,EAAM4tF,oBAAsB5tF,EAAM4tF,oBAAoBp5E,KAAK7B,EAAuB3S,IAC3EA,EAglDT,OA7kDAzG,EAAagnG,EAAW,CAAC,CACvBhoG,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMmU,MAAQ3S,KAAKod,MAAMzK,QAE1D,CACD7U,IAAK,UACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMopE,KAAO5nE,KAAKod,MAAMwqD,OAEzD,CACD9pE,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0jG,OAASliG,KAAKxB,MAAMs8E,UAAY96E,KAAKod,MAAM09D,YAE9D,CACDh9E,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0jG,OAASliG,KAAKxB,MAAM4kG,UAAYpjG,KAAKod,MAAMgmF,YAE9D,CACDtlG,IAAK,mBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0jG,OAASliG,KAAKxB,MAAMskG,cAAgB9iG,KAAKod,MAAM0lF,gBAElE,CACDhlG,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM4jG,SAAWpiG,KAAKxB,MAAM0kG,QAAUljG,KAAKod,MAAM8lF,UAE9D,CACDplG,IAAK,aACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAM6nG,cACjB,IAAK,QACH,OAAOzlG,OAAO0lG,aAEhB,IAAK,UACH,OAAO1lG,OAAO2lG,eAEhB,IAAK,SACH,OAAO,KAET,QACE,MAAM,IAAI78F,MAAM1J,KAAKxB,MAAM6nG,aAAe,yGAG/C,CACDvoG,IAAK,uBACLhC,MAAO,WACL,MAAmC,WAA5BkE,KAAKxB,MAAM6nG,eAEnB,CACDvoG,IAAK,aACLhC,MAAO,WACL,OAA8B,MAAvBkE,KAAKxB,MAAMgoG,UAAoBxmG,KAAKymG,yBAE5C,CACD3oG,IAAK,YACLhC,MAAO,WACL,IAAIshB,EAAQ,GAERpd,KAAKxB,MAAMw8F,YACb59E,EAAMzK,MAAQ3S,KAAK0mG,WACnBtpF,EAAMwqD,KAAO5nE,KAAK2mG,WAGpB,IAAI7rB,EAAY96E,KAAK4mG,eAEjB9rB,IACF19D,EAAM09D,UAAYA,EAClB19D,EAAMgmF,UAAYpjG,KAAK6mG,gBAGzB,IAAI/D,EAAgB9iG,KAAK8mG,mBA0BzB,GAxBIhE,IACF1lF,EAAM0lF,cAAgBA,GAGpB9iG,KAAK+mG,cACP3pF,EAAM8lF,QAAUljG,KAAKgnG,cAGnBhnG,KAAKxB,MAAMgkG,kBACbxiG,KAAKinG,iBAAiB7pF,GAGpBpd,KAAKxB,MAAMqkG,qBACbzlF,EAAM8pF,YAAclnG,KAAKod,MAAM8pF,aAG7BlnG,KAAKxB,MAAMk/F,eACbtgF,EAAMsgF,aAAe19F,KAAKxB,MAAMk/F,cAG9B19F,KAAKxB,MAAM6mC,WAAarlC,KAAKxB,MAAM67F,oBACrCj9E,EAAMioB,UAAYrlC,KAAKxB,MAAM6mC,WAG3BrlC,KAAKymG,uBACHzmG,KAAKxB,MAAM2oG,iBACbnnG,KAAKxB,MAAM2oG,gBAAgB/pF,OAExB,CACL,IAAIgqF,EAAUpnG,KAAKqnG,aAEfjrG,OAAOqS,KAAK2O,GAAOziB,QACrBysG,EAAQE,QAAQtnG,KAAKxB,MAAMgoG,SAAUvuD,KAAKC,UAAU96B,IAIpDpd,KAAKxB,MAAM+oG,aACbvnG,KAAKxB,MAAM+oG,YAAYnqF,KAG1B,CACDtf,IAAK,aACLhC,MAAO,WACL,IAAIsrG,EAAUpnG,KAAKqnG,aAEfD,GAAWpnG,KAAKxB,MAAMgoG,UACxBY,EAAQI,WAAWxnG,KAAKxB,MAAMgoG,YAGjC,CACD1oG,IAAK,eACLhC,MAAO,SAAsBshB,GAC3B,IAAIqqF,EAAgB,GAEpB,GAAIznG,KAAKymG,uBACHzmG,KAAKxB,MAAMkpG,qBACbD,EAAgBznG,KAAKxB,MAAMkpG,0BAExB,CACL,IACIC,EADU3nG,KAAKqnG,aACOO,QAAQ5nG,KAAKxB,MAAMgoG,UAEzCmB,IACFF,EAAgBxvD,KAAKxb,MAAMkrE,IAI/B3nG,KAAK6nG,cAAcJ,EAAerqF,KAEnC,CACDtf,IAAK,oBACLhC,MAAO,SAA2B2rG,GAChC,IAAIrqF,EAAQpd,KAAK6nG,cAAcJ,GAE3BrqF,GAAShhB,OAAOqS,KAAK2O,GAAOziB,QAC9BqF,KAAKwd,SAASJ,KAGjB,CACDtf,IAAK,gBACLhC,MAAO,SAAuB2rG,GAC5B,IAAI9sF,EAAS3a,KAETod,EAAQjgB,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,GAEhF,GAAIsqG,GAAiBrrG,OAAOqS,KAAKg5F,GAAe9sG,OAAQ,CACtD,GAAIqF,KAAKxB,MAAMw8F,UACb,GAAIh7F,KAAKxB,MAAMynG,OAAQ,CACrB,IAAI6B,EAAkB,SAAyBn1F,EAAOi1D,GACpD,IAAIsmB,EAAevzE,EAAOotF,gBAAgBptF,EAAOqtF,eAE7C/Y,EAAY7pF,KAAK8hE,KAAKgnB,EAAetmB,IAAS,EAElD,MAAO,CACLj1D,MAAOA,EACPi1D,KAAMA,EACNwnB,KAJShqF,KAAKsmB,MAAM/Y,EAAQi1D,GAK5BqnB,UAAWA,IAIfjvF,KAAKxB,MAAMynG,OAAO6B,EAAgBL,EAAc90F,MAAO80F,EAAc7/B,YAErExqD,EAAMzK,MAAQ80F,EAAc90F,MAC5ByK,EAAMwqD,KAAO6/B,EAAc7/B,KAI3B6/B,EAAc3sB,YACZ96E,KAAKxB,MAAM0jG,OACbliG,KAAKxB,MAAM0jG,OAAO,CAChBpnB,UAAW2sB,EAAc3sB,UACzBsoB,UAAWqE,EAAcrE,aAG3BhmF,EAAM09D,UAAY2sB,EAAc3sB,UAChC19D,EAAMgmF,UAAYqE,EAAcrE,YAIhCqE,EAAc3E,gBACZ9iG,KAAKxB,MAAM0jG,OACbliG,KAAKxB,MAAM0jG,OAAO,CAChBY,cAAe2E,EAAc3E,gBAG/B1lF,EAAM0lF,cAAgB2E,EAAc3E,eAIpC2E,EAAcvE,UACZljG,KAAKxB,MAAM4jG,SACbpiG,KAAKxB,MAAM4jG,SAAS,CAClBc,QAASuE,EAAcvE,UAGzB9lF,EAAM8lF,QAAUuE,EAAcvE,SAI9BljG,KAAKxB,MAAMgkG,mBACbxiG,KAAKioG,kBAAoBR,EAAcS,aACvCloG,KAAKmoG,gBAAkBV,EAAcW,YAGnCpoG,KAAKxB,MAAMqkG,qBACbzlF,EAAM8pF,YAAcO,EAAcP,aAGhCO,EAAc/J,cAAgB19F,KAAKxB,MAAMqzF,aAC3C7xF,KAAKxB,MAAMqzF,YAAY,CACrBljF,KAAM84F,EAAc/J,eAIpB+J,EAAcpiE,WAAarlC,KAAKxB,MAAM67F,mBACxCr6F,KAAKxB,MAAM67F,kBAAkB,CAC3Bv+F,MAAO2rG,EAAcpiE,YAIrBrlC,KAAKxB,MAAM6pG,gBACbroG,KAAKxB,MAAM6pG,eAAeZ,GAI9B,OAAOrqF,IAER,CACDtf,IAAK,mBACLhC,MAAO,SAA0BshB,GAC/B,IAAIkrF,EAAS,GACCvoG,IAAW+L,KAAK9L,KAAK8J,UAAW,mDACtCnM,KAAI,SAAUq9E,GACpB,OAAOstB,EAAOzsG,KAAKkE,IAAWoE,cAAc62E,OAE9C59D,EAAM8qF,aAAeI,EAAOpqG,KAAK,KAEG,WAAhC8B,KAAKxB,MAAM+pG,mBACbnrF,EAAMgrF,WAAapoG,KAAKxB,MAAMgqG,WAAazoG,IAAWiI,WAAWhI,KAAK8J,UAAW,wCAAwC1J,MAAMF,MAAQH,IAAWoE,cAAcnE,KAAKyoG,OAAS,QAGjL,CACD3qG,IAAK,sBACLhC,MAAO,WACL,GAAIkE,KAAKioG,kBAAmB,CAC1B,IAAIK,EAAStoG,KAAKioG,kBAAkBllG,MAAM,KAW1C,GAToC,WAAhC/C,KAAKxB,MAAM+pG,kBAAiCvoG,KAAKmoG,kBAC/CnoG,KAAKxB,MAAMgqG,WACbxoG,KAAK0oG,sCAAsC,KAAM1oG,KAAKmoG,gBAAiB,IAEvEnoG,KAAKyoG,MAAMroG,MAAMF,MAAQF,KAAKmoG,gBAC9BnoG,KAAK8J,UAAU1J,MAAMF,MAAQF,KAAKmoG,kBAIlCnoG,KAAKxB,MAAMgqG,WAAY,CACzB,IAAIG,EAAa5oG,IAAW+L,KAAK9L,KAAK8J,UAAW,yDAC7C8+F,EAAW7oG,IAAW+L,KAAK9L,KAAK8J,UAAW,uDAC/C6+F,EAAWhrG,KAAI,SAAUmqE,EAAKzL,GAC5B,OAAOyL,EAAI1nE,MAAMF,MAAQooG,EAAOjsC,GAAS,QAE3CusC,EAASjrG,KAAI,SAAUmqE,EAAKzL,GAC1B,OAAOyL,EAAI1nE,MAAMF,MAAQooG,EAAOjsC,GAAS,YAEtC,CACSt8D,IAAW+L,KAAK9L,KAAKyoG,MAAO,gCAClC9qG,KAAI,SAAUq9E,EAAQ3e,GAC5B,OAAO2e,EAAO56E,MAAMF,MAAQooG,EAAOjsC,GAAS,YAKnD,CACDv+D,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMynG,OAAQjmG,KAAKxB,MAAMynG,OAAO5xF,GAAYrU,KAAKwd,SAAS,CACjE7K,MAAO0B,EAAM1B,MACbi1D,KAAMvzD,EAAMuzD,OAGV5nE,KAAKxB,MAAMqqG,eACb7oG,KAAKxB,MAAMqqG,cAAc7oG,KAAKgoG,iBAGjC,CACDlqG,IAAK,kBACLhC,MAAO,SAAyBoK,EAAUgoF,EAAcv/E,GACtD,IAAIpR,EAAYN,YAAW,eAAiBiJ,EAAUlG,KAAKxB,MAAMsqG,oBACjE,OAAoBjuF,IAAM7P,cAAc+9F,IAAW,CACjDp2F,MAAO3S,KAAK0mG,WACZ9+B,KAAM5nE,KAAK2mG,UACXqC,aAAchpG,KAAKxB,MAAMwqG,aACzBzrG,UAAWA,EACX6oG,aAAcpmG,KAAKomG,aACnB6C,SAAUjpG,KAAKxB,MAAM0qG,kBACrBhb,aAAcA,EACdib,mBAAoBnpG,KAAKxB,MAAM2qG,mBAC/BC,0BAA2BppG,KAAKxB,MAAM4qG,0BACtCC,YAAarpG,KAAKxB,MAAM8qG,cACxBC,aAAcvpG,KAAKxB,MAAMgrG,eACzBC,WAAYzpG,KAAKxB,MAAMkrG,oBACvBC,iBAAkB3pG,KAAKxB,MAAMorG,8BAGhC,CACD9rG,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAEIyuF,EACA+G,EAHA/uB,EAAYzmE,EAAMymE,UAClBsoB,EAAYpjG,KAAKxB,MAAMsrG,iBAO3B,GAJA9pG,KAAK+pG,eAAiB11F,EAAM8mE,SAC5Bn7E,KAAKgqG,mBAAqB31F,EAAMgnE,aAChCr7E,KAAKiqG,YAAc51F,EAAMymE,UAEG,aAAxB96E,KAAKxB,MAAMwmG,SAAyB,CACtC,IAAIzvF,EAAUlB,EAAMsB,cAAcJ,SAAWlB,EAAMsB,cAAcN,QAC7D8sF,EAAyB9tF,EAAM8tF,uBAE/B+H,GADJpH,EAAgB/V,EAAmB/sF,KAAK8mG,oBAAsB,KACjCh7F,MAAK,SAAUo+F,GAC1C,OAAOA,EAASp8F,QAAUgtE,KAE5BsoB,EAAY8G,EAAWlqG,KAAKmqG,uBAAuBD,EAAS5gF,OAAS85E,EACrE,IAAIgH,EAAc,CAChBt8F,MAAOgtE,EACPxxD,MAAO85E,GAGLA,GACFN,EAAgBvtF,EAAUutF,EAAgBA,EAAc9kG,QAAO,SAAU4oB,GACvE,OAAOu7E,EAAuBkI,MAAK,SAAUv8F,GAC3C,OAAOA,IAAU8Y,EAAK9Y,YAG1B9N,KAAKsqG,YAAYF,EAAatH,IACrB9iG,KAAKxB,MAAM+rG,eACpBvqG,KAAKwqG,eAAeJ,EAAatH,GAGnC+G,EAAY,CACV/G,cAAeA,QAGjBM,EAAYpjG,KAAK4mG,iBAAmB9rB,EAAY96E,KAAKmqG,uBAAuBnqG,KAAK6mG,gBAAkBzD,EAE/FpjG,KAAKxB,MAAM+rG,gBACbzvB,EAAYsoB,EAAYtoB,EAAY,MAGtC+uB,EAAY,CACV/uB,UAAWA,EACXsoB,UAAWA,GAIXpjG,KAAKxB,MAAM0jG,OACbliG,KAAKxB,MAAM0jG,OAAO2H,IAElBA,EAAUl3F,MAAQ,EAClB3S,KAAKwd,SAASqsF,IAGZ7pG,KAAKxB,MAAMqqG,eACb7oG,KAAKxB,MAAMqqG,cAAc7oG,KAAKgoG,YAAY,CACxCltB,UAAWA,EACXsoB,UAAWA,EACXN,cAAeA,OAIpB,CACDhlG,IAAK,yBACLhC,MAAO,SAAgC2uG,GACrC,OAAOzqG,KAAKxB,MAAM+rG,cAAgBvqG,KAAKxB,MAAMsrG,mBAAqBW,GAA+B,EAAhBA,EAAoB,GAAoB,EAAhBA,IAE1G,CACD3sG,IAAK,cACLhC,MAAO,SAAqB8qB,EAAMk8E,GAGhC,IAFA,IAAIzmC,GAAS,EAEJzhE,EAAI,EAAGA,EAAIkoG,EAAcnoG,OAAQC,IACxC,GAAIkoG,EAAcloG,GAAGkT,QAAU8Y,EAAK9Y,MAAO,CACzCuuD,EAAQzhE,EACR,MAIAyhE,GAAS,EAAGymC,EAAczmC,GAASz1C,EAAUk8E,EAAcjnG,KAAK+qB,KAErE,CACD9oB,IAAK,iBACLhC,MAAO,SAAwB8qB,EAAMk8E,GAGnC,IAFA,IAAIzmC,GAAS,EAEJzhE,EAAI,EAAGA,EAAIkoG,EAAcnoG,OAAQC,IACxC,GAAIkoG,EAAcloG,GAAGkT,QAAU8Y,EAAK9Y,MAAO,CACzCuuD,EAAQzhE,EACR,MAIAyhE,GAAS,GACXymC,EAAc7zF,OAAOotD,EAAO,GAG9BymC,EAAgBA,EAAcnoG,OAAS,EAAImoG,EAAgB,OAE5D,CACDhlG,IAAK,aACLhC,MAAO,SAAoB6S,EAAMmsE,EAAWsoB,GAC1C,IAAItnG,EAAQixF,EAAmBp+E,GAmB/B,OAjBI3O,KAAK+pG,gBAAkB/pG,KAAKgqG,mBAC9BluG,EAAQkE,KAAKgqG,mBAAmB,CAC9Bl8F,MAAO9N,KAAK4mG,eACZt9E,MAAOtpB,KAAK6mG,iBAGd/qG,EAAMsjC,MAAK,SAAUm+D,EAAOC,GAC1B,IAAIkN,EAAS/8F,IAAYI,iBAAiBwvF,EAAOziB,GAC7C6vB,EAASh9F,IAAYI,iBAAiByvF,EAAO1iB,GAC7ChsE,EAAS,KAIb,OAHsCA,EAAxB,MAAV47F,GAA4B,MAAVC,GAA0B,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAA6B,kBAAXD,GAAyC,kBAAXC,EAA8BD,EAAOthF,cAAcuhF,OAAQllG,EAAW,CAChRmlG,SAAS,IACMF,EAASC,GAAU,EAAID,EAASC,EAAS,EAAI,EACvDvH,EAAYt0F,KAIhBhT,IAER,CACDgC,IAAK,eACLhC,MAAO,SAAsB6S,EAAMm0F,GACjC,IAAI5hF,EAASlhB,KAETlE,EAAQixF,EAAmBp+E,GAE/B,GAAI3O,KAAK+pG,gBAAkB/pG,KAAKgqG,mBAAoB,CAClD,IAAIpjF,EAAOk8E,EAAch3F,MAAK,SAAU8a,GACtC,OAAOA,EAAK9Y,QAAUoT,EAAO+oF,eAE3Bn8F,EAAQ9N,KAAKiqG,YACb3gF,EAAQ1C,EAAOA,EAAK0C,MAAQtpB,KAAK8pG,iBACrChuG,EAAQkE,KAAKgqG,mBAAmB,CAC9Bl8F,MAAOA,EACPwb,MAAOA,SAGTxtB,EAAMsjC,MAAK,SAAUm+D,EAAOC,GAC1B,OAAOt8E,EAAO2pF,eAAetN,EAAOC,EAAOsF,EAAe,MAI9D,OAAOhnG,IAER,CACDgC,IAAK,iBACLhC,MAAO,SAAwByhG,EAAOC,EAAOsF,EAAezmC,GAC1D,IAAIquC,EAAS/8F,IAAYI,iBAAiBwvF,EAAOuF,EAAczmC,GAAOvuD,OAClE68F,EAASh9F,IAAYI,iBAAiByvF,EAAOsF,EAAczmC,GAAOvuD,OAClEgB,EAAS,KAEb,GAAsB,kBAAX47F,GAAuBA,aAAkBr6F,QAClD,GAAIq6F,EAAOthF,eAAiBshF,IAAWC,EACrC,OAAO7H,EAAczmC,GAAO/yC,MAAQohF,EAAOthF,cAAcuhF,OAAQllG,EAAW,CAC1EmlG,SAAS,SAIb97F,EAAS47F,EAASC,GAAU,EAAI,EAGlC,OAAID,IAAWC,EACN7H,EAAcnoG,OAAS,EAAI0hE,EAAQr8D,KAAK6qG,eAAetN,EAAOC,EAAOsF,EAAezmC,EAAQ,GAAK,EAGnGymC,EAAczmC,GAAO/yC,MAAQxa,IAErC,CACDhR,IAAK,SACLhC,MAAO,SAAgBA,EAAOgS,EAAOg9F,GACnC9qG,KAAKoiG,SAAS,CACZtmG,MAAOA,EACPgS,MAAOA,EACPw0F,UAAWwI,MAGd,CACDhtG,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAI02F,EAAiB/qG,KAAKgnG,aACtBgE,EAAaD,EApjBvB,SAAuBxsG,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,GAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,GAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAojBreumB,CAAc,GAAIimF,GAAkB,GACjE/qG,KAAKirG,cAAc52F,EAAMvY,OAGnBkvG,EAAW32F,EAAMvG,eAAek9F,EAAW32F,EAAMvG,OAHtBk9F,EAAW32F,EAAMvG,OAAS,CAC9DhS,MAAOuY,EAAMvY,MACbwmG,UAAWjuF,EAAMiuF,WAGftiG,KAAKxB,MAAM4jG,SACbpiG,KAAKxB,MAAM4jG,SAAS,CAClBc,QAAS8H,IAGXhrG,KAAKwd,SAAS,CACZ7K,MAAO,EACPuwF,QAAS8H,IAIThrG,KAAKxB,MAAMqqG,eACb7oG,KAAKxB,MAAMqqG,cAAc7oG,KAAKgoG,YAAY,CACxC9E,QAAS8H,OAId,CACDltG,IAAK,YACLhC,MAAO,WACL,IAAIonG,EAAUljG,KAAKgnG,cAAgBhnG,KAAKxB,MAAM0sG,aAC9C,OAAOhI,GAAW9mG,OAAOqS,KAAKy0F,GAASvoG,OAAS,IAEjD,CACDmD,IAAK,gBACLhC,MAAO,SAAuBkC,GAC5B,OAAe,OAAXA,QAA8ByH,IAAXzH,IACC,kBAAXA,GAAgD,IAAzBA,EAAOsS,OAAO3V,QAAgBqD,aAAkBlD,OAA2B,IAAlBkD,EAAOrD,UAKrG,CACDmD,IAAK,YACLhC,MAAO,WACL,QAAIkE,KAAKxB,MAAMgE,aACTxC,KAAKxB,MAAM2sG,mBAGNnrG,KAAKorG,kBAAkBprG,KAAKxB,MAAMgE,aAM9C,CACD1E,IAAK,oBACLhC,MAAO,SAA2B0G,GAChC,IAAI6oG,GAAY,EAEhB,GAAI7oG,EAAU,CACZ,KAAIA,aAAoB1H,OAKtB,OAAO0H,EAAShE,OAAmC,OAA1BgE,EAAShE,MAAM08E,OAJxC,IAAK,IAAItgF,EAAI,EAAGA,EAAI4H,EAAS7H,OAAQC,IACnCywG,EAAYA,GAAarrG,KAAKorG,kBAAkB5oG,EAAS5H,IAO/D,OAAOywG,IAER,CACDvtG,IAAK,sBACLhC,MAAO,SAA6BuY,GAClC,IAAIi3F,EAAgBvrG,IAAWsa,UAAUra,KAAK8J,WAAWxH,KACzDtC,KAAKurG,aAAel3F,EAAMquF,SAC1B1iG,KAAKwrG,kBAAoBn3F,EAAM0+E,YAC/B/yF,KAAKyrG,gBAAiB,EACtBzrG,KAAK0rG,mBAAqBr3F,EAAMsB,cAAc2E,MAAQgxF,EAAgBtrG,KAAK8J,UAAU7I,WACrFjB,KAAK2rG,2BAEN,CACD7tG,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIi3F,EAAgBvrG,IAAWsa,UAAUra,KAAK8J,WAAWxH,KACzDvC,IAAWya,SAASxa,KAAK8J,UAAW,uBACpC9J,KAAK4rG,cAAcxrG,MAAMkB,OAAStB,KAAK8J,UAAUvI,aAAe,KAChEvB,KAAK4rG,cAAcxrG,MAAMgC,IAAM,MAC/BpC,KAAK4rG,cAAcxrG,MAAMkC,KAAO+R,EAAMiG,MAAQgxF,EAAgBtrG,KAAK8J,UAAU7I,WAAa,KAC1FjB,KAAK4rG,cAAcxrG,MAAM8H,QAAU,UAEpC,CACDpK,IAAK,oBACLhC,MAAO,SAA2BuY,GAChC,IAAI82B,EAAQnrC,KAAK4rG,cAAc1+F,WAAalN,KAAK0rG,mBAC7CG,EAAc7rG,KAAKurG,aAAaprG,YAChC2rG,EAAiBD,EAAc1gE,EAC/BjnC,EAAWlE,KAAKurG,aAAanrG,MAAM8D,UAAY,GAEnD,GAAI2nG,EAAc1gE,EAAQ3zB,SAAStT,EAAU,IAAK,CAChD,GAAoC,QAAhClE,KAAKxB,MAAM+pG,iBAA4B,CACzC,IAAIwD,EAAa/rG,KAAKurG,aAAa3X,mBAC/BoY,EAAkBD,EAAW5rG,YAAcgrC,EAE/C,GAAI2gE,EAAiB,IAAME,EAAkB,GAC3C,GAAIhsG,KAAKxB,MAAMgqG,WAAY,CACzB,IAAIyD,EAAiBjsG,KAAKksG,yBAAyBlsG,KAAKurG,cACpDY,EAAsBpsG,IAAWiI,WAAWikG,EAAgB,2CAC5DG,EAAwBrsG,IAAWiI,WAAWikG,EAAgB,6CAC9DI,EAAwBtsG,IAAWiI,WAAWikG,EAAgB,6CAC9DK,EAAoBvsG,IAAWs8D,MAAMr8D,KAAKurG,cAC9CvrG,KAAKusG,eAAeH,EAAuBE,EAAmBR,EAAgBE,GAC9EhsG,KAAKusG,eAAeJ,EAAqBG,EAAmBR,EAAgBE,GAC5EhsG,KAAKusG,eAAeF,EAAuBC,EAAmBR,EAAgBE,QAE9EhsG,KAAKurG,aAAanrG,MAAMF,MAAQ4rG,EAAiB,KAE7CC,IACFA,EAAW3rG,MAAMF,MAAQ8rG,EAAkB,UAIR,WAAhChsG,KAAKxB,MAAM+pG,mBAChBvoG,KAAKxB,MAAMgqG,WACbxoG,KAAK0oG,sCAAsC1oG,KAAKurG,aAAcO,EAAgB3gE,IAE9EnrC,KAAKyoG,MAAMroG,MAAMF,MAAQF,KAAKyoG,MAAMtoG,YAAcgrC,EAAQ,KAC1DnrC,KAAKurG,aAAanrG,MAAMF,MAAQ4rG,EAAiB,OAIjD9rG,KAAKxB,MAAMguG,mBACbxsG,KAAKxB,MAAMguG,kBAAkB,CAC3BjqG,QAASvC,KAAKurG,aACd3T,OAAQ53F,KAAKwrG,kBACbrgE,MAAOA,IAIPnrC,KAAKkmG,cACPlmG,KAAKysG,YAITzsG,KAAK4rG,cAAcxrG,MAAM8H,QAAU,OACnClI,KAAKurG,aAAe,KACpBvrG,KAAKwrG,kBAAoB,KACzBzrG,IAAWma,YAAYla,KAAK8J,UAAW,uBACvC9J,KAAK0sG,6BAEN,CACD5uG,IAAK,wCACLhC,MAAO,SAA+C87F,EAAQkU,EAAgB3gE,GAC5E,IAAI8gE,EAAiBrU,EAAS53F,KAAKksG,yBAAyBtU,GAAU53F,KAAK8J,UACvE6iG,EAAiB5sG,IAAWiI,WAAWikG,EAAgB,gCACvDW,EAAmB7sG,IAAWiI,WAAWikG,EAAgB,kCACzDY,EAAmB9sG,IAAWiI,WAAWikG,EAAgB,kCACzDE,EAAsBpsG,IAAWiI,WAAW2kG,EAAgB,2CAC5DP,EAAwBrsG,IAAWiI,WAAW4kG,EAAkB,6CAChEP,EAAwBtsG,IAAWiI,WAAW6kG,EAAkB,6CAChEC,EAA2BlV,EAASuU,EAAoBhsG,YAAcgrC,EAAQ2gE,EAC9EiB,EAA6BnV,EAASwU,EAAsBjsG,YAAcgrC,EAAQ2gE,EAClFkB,EAAwBhtG,KAAK8J,UAAU3J,aAAe2sG,EAEtDG,EAAW,SAAkBnjG,EAAW2+F,EAAOvoG,EAAO8sG,GACpDljG,GAAa2+F,IACf3+F,EAAU1J,MAAMF,MAAQ8sG,EAAwB9sG,EAAQH,IAAW4tF,wBAAwBgf,GAAkB,KAAO,OACpHlE,EAAMroG,MAAMF,MAAQA,EAAQ,OAQhC,GAJA+sG,EAASN,EAAgBR,EAAqBW,EAA0BE,GACxEC,EAASL,EAAkBR,EAAuBW,EAA4BC,GAC9EC,EAASJ,EAAkBR,EAAuBU,EAA4BC,GAE1EpV,EAAQ,CACV,IAAI0U,EAAoBvsG,IAAWs8D,MAAMu7B,GACzC53F,KAAKusG,eAAeH,EAAuBE,EAAmBR,EAAgB,MAC9E9rG,KAAKusG,eAAeJ,EAAqBG,EAAmBR,EAAgB,MAC5E9rG,KAAKusG,eAAeF,EAAuBC,EAAmBR,EAAgB,SAGjF,CACDhuG,IAAK,2BACLhC,MAAO,SAAkC87F,GACvC,GAAIA,EAAQ,CAGV,IAFA,IAAIjwF,EAASiwF,EAAO39E,cAEbtS,IAAW5H,IAAW6uF,SAASjnF,EAAQ,gCAC5CA,EAASA,EAAOsS,cAGlB,OAAOtS,EAEP,OAAO,OAGV,CACD7J,IAAK,iBACLhC,MAAO,SAAwB2sG,EAAO6D,EAAmBR,EAAgBE,GACvE,GAAIvD,EAAO,CACT,IAAIlZ,EAA0C,aAA/BkZ,EAAMjmG,SAAS,GAAGqH,SAA0B4+F,EAAMjmG,SAAS,GAAK,KAE/E,IAAI+sF,EASF,MAAM,IAAI7lF,MAAM,qEARhB,IAAIo+D,EAAMynB,EAAS/sF,SAAS8pG,GACxBY,EAAUplC,EAAI8rB,mBAClB9rB,EAAI1nE,MAAMF,MAAQ4rG,EAAiB,KAE/BoB,GAAWlB,IACbkB,EAAQ9sG,MAAMF,MAAQ8rG,EAAkB,SAO/C,CACDluG,IAAK,yBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEbA,KAAKmtG,6BAA+BzsG,SAAS8M,iBAAiB,aAAa,SAAU6G,GAC/EsN,EAAO8pF,gBACT9pF,EAAOyrF,eAAe/4F,MAG1BrU,KAAKqtG,gCAAkC3sG,SAAS8M,iBAAiB,WAAW,SAAU6G,GAChFsN,EAAO8pF,iBACT9pF,EAAO8pF,gBAAiB,EAExB9pF,EAAO6qF,kBAAkBn4F,SAI9B,CACDvW,IAAK,2BACLhC,MAAO,WACL4E,SAAS+M,oBAAoB,WAAYzN,KAAKmtG,8BAC9CzsG,SAAS+M,oBAAoB,WAAYzN,KAAKqtG,mCAE/C,CACDvvG,IAAK,mBACLhC,MAAO,SAA0ByG,GAC/B,GAAyB,OAArBA,EAAQsH,SACV,OAAOtH,EAIP,IAFA,IAAIoF,EAASpF,EAAQ0X,cAEM,OAApBtS,EAAOkC,WACZlC,EAASA,EAAOsS,iBAIlB,OAAOtS,IAGV,CACD7J,IAAK,oBACLhC,MAAO,SAA2B0D,GAChC,IAAI6U,EAAQ7U,EAAEmW,cACViiF,EAASp4F,EAAEo4F,OAEX53F,KAAKyrG,eACPp3F,EAAMY,kBAIRjV,KAAKstG,UAAYvtG,IAAWwtG,2BAA2BvtG,KAAKwtG,oBAC5DxtG,KAAKytG,WAAa1tG,IAAW2tG,4BAA4B1tG,KAAKwtG,oBAC9DxtG,KAAK2tG,gBAAkB3tG,KAAK4tG,iBAAiBv5F,EAAMoG,eACnDza,KAAK6tG,cAAgBjW,EACrBvjF,EAAMiqF,aAAaC,QAAQ,OAAQ,QAEpC,CACDzgG,IAAK,mBACLhC,MAAO,SAA0B0D,GAC/B,IAAI6U,EAAQ7U,EAAEmW,cACVm4F,EAAa9tG,KAAK4tG,iBAAiBv5F,EAAMoG,eAE7C,GAAIza,KAAKxB,MAAMqkG,oBAAsB7iG,KAAK2tG,iBAAmBG,EAAY,CACvEz5F,EAAMY,iBACN,IAAI84F,EAAkBhuG,IAAWsa,UAAUra,KAAK8J,WAC5CkkG,EAAmBjuG,IAAWsa,UAAUyzF,GAE5C,GAAI9tG,KAAK2tG,kBAAoBG,EAAY,CACvC,IAAIG,EAAaD,EAAiB1rG,KAAOyrG,EAAgBzrG,KAErD4rG,EAAeF,EAAiB1rG,KAAOwrG,EAAW3tG,YAAc,EACpEH,KAAKwtG,mBAAmBptG,MAAMgC,IAAM4rG,EAAiB5rG,IAAM2rG,EAAgB3rG,KAAOpC,KAAKytG,WAAa,GAAK,KACzGztG,KAAKmuG,qBAAqB/tG,MAAMgC,IAAM4rG,EAAiB5rG,IAAM2rG,EAAgB3rG,IAAM0rG,EAAWvsG,aAAe,KAEzG8S,EAAMiG,MAAQ4zF,GAChBluG,KAAKwtG,mBAAmBptG,MAAMkC,KAAO2rG,EAAaH,EAAW3tG,YAAciF,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KAC3GttG,KAAKmuG,qBAAqB/tG,MAAMkC,KAAO2rG,EAAaH,EAAW3tG,YAAciF,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KAC7GttG,KAAKouG,aAAe,IAEpBpuG,KAAKwtG,mBAAmBptG,MAAMkC,KAAO2rG,EAAa7oG,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KAClFttG,KAAKmuG,qBAAqB/tG,MAAMkC,KAAO2rG,EAAa7oG,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KACpFttG,KAAKouG,cAAgB,GAGvBpuG,KAAKwtG,mBAAmBptG,MAAM8H,QAAU,QACxClI,KAAKmuG,qBAAqB/tG,MAAM8H,QAAU,YAI/C,CACDpK,IAAK,oBACLhC,MAAO,SAA2B0D,GAChC,IAAI6U,EAAQ7U,EAAEmW,cAEV3V,KAAKxB,MAAMqkG,oBAAsB7iG,KAAK2tG,kBACxCt5F,EAAMY,iBACNjV,KAAKwtG,mBAAmBptG,MAAM8H,QAAU,OACxClI,KAAKmuG,qBAAqB/tG,MAAM8H,QAAU,UAG7C,CACDpK,IAAK,eACLhC,MAAO,SAAsB0D,GAC3B,IAAI8iB,EAAStiB,KAETqU,EAAQ7U,EAAEmW,cACViiF,EAASp4F,EAAEo4F,OAGf,GAFAvjF,EAAMY,iBAEFjV,KAAK2tG,gBAAiB,CACxB,IAAI5O,EAAYh/F,IAAWs8D,MAAMr8D,KAAK2tG,iBAClC/O,EAAY7+F,IAAWs8D,MAAMr8D,KAAK4tG,iBAAiBv5F,EAAMoG,gBACzD4zF,EAAYtP,IAAcH,EAM9B,GAJIyP,IAAczP,EAAYG,IAAc,IAA4B,IAAvB/+F,KAAKouG,cAAuBrP,EAAYH,IAAc,GAA2B,IAAtB5+F,KAAKouG,gBAC/GC,GAAY,GAGVA,EAAW,CACb,IAAI/e,EAAUtvF,KAAKod,MAAM8pF,YAAclnG,KAAKsuG,aAAezzF,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAEzF+rG,EAAe,SAAsBC,EAAMC,GAC7C,OAAOD,EAAK3zB,WAAa4zB,EAAK5zB,UAAYltE,IAAY0B,OAAOm/F,EAAMC,EAAM,aAAe9gG,IAAY0B,OAAOm/F,EAAMC,EAAM,UAGrHC,EAAepf,EAAQlgF,WAAU,SAAUu/F,GAC7C,OAAOJ,EAAaI,EAAMnwG,MAAO8jB,EAAOurF,kBAEtCe,EAAetf,EAAQlgF,WAAU,SAAUu/F,GAC7C,OAAOJ,EAAaI,EAAMnwG,MAAOo5F,MAG/BgX,EAAeF,GAAsC,IAAtB1uG,KAAKouG,cACtCQ,IAGEA,EAAeF,IAAuC,IAAvB1uG,KAAKouG,cACtCQ,IAGFjhG,IAAYkxF,aAAavP,EAASof,EAAcE,GAChD,IAGIxnG,EAHA8/F,EAAc,GAEdx/F,EAAY+H,GAA2B6/E,GAG3C,IACE,IAAK5nF,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAIizG,EAAUznG,EAAMtL,MACpBorG,EAAYrrG,KAAKgzG,EAAQrwG,MAAMq8E,WAAag0B,EAAQrwG,MAAMsP,QAE5D,MAAO/R,GACP2L,EAAUlI,EAAEzD,GANd,QAQE2L,EAAUjI,IAGZO,KAAKwd,SAAS,CACZ0pF,YAAaA,IAGXlnG,KAAKxB,MAAMswG,cACb9uG,KAAKxB,MAAMswG,aAAa,CACtBn5F,cAAetB,EACf0qF,UAAW2P,EACX9P,UAAWgQ,EACXtf,QAASA,IAKftvF,KAAKwtG,mBAAmBptG,MAAM8H,QAAU,OACxClI,KAAKmuG,qBAAqB/tG,MAAM8H,QAAU,OAC1ClI,KAAK2tG,gBAAgB/W,WAAY,EACjC52F,KAAK2tG,gBAAkB,KACvB3tG,KAAKouG,aAAe,QAGvB,CACDtwG,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,IAAIoO,EAASziB,KAETA,KAAK+uG,oBACPh5F,aAAa/V,KAAK+uG,oBAGpB/uG,KAAK+uG,mBAAqBlmG,YAAW,WAC/B4Z,EAAOjkB,MAAM6wF,iBACf5sE,EAAOjkB,MAAM6wF,gBAAgB,CAC3B18E,OAAQ0B,EAAM+6E,KAAO,GAAK3sE,EAAOjkB,MAAMopE,KACvCA,KAAMnlD,EAAOjkB,MAAMwvF,cAAoC,EAApBvrE,EAAOjkB,MAAMopE,KAAWnlD,EAAOjkB,MAAMopE,SAG3E5nE,KAAKxB,MAAMwwG,sBAEf,CACDlxG,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAM4oF,cAAmD,IAAnChmG,KAAKod,MAAM4oF,aAAarrG,SAE3D,CACDmD,IAAK,sBACLhC,MAAO,SAA6BuY,GAClC,IAAIiP,EAAStjB,KAETozF,EAAW/+E,EAAM++E,SACjBC,EAAYh/E,EAAMg/E,UAClB5B,EAAUp9E,EAAMo9E,QAEhBuU,EAAejZ,EAAmB/sF,KAAKod,MAAM4oF,cAE7CvU,EAASuU,EAAanqG,KAAK,CAC7Bu3F,SAAUA,EACVC,UAAWA,IACL2S,EAAeA,EAAahoG,QAAO,SAAUi0F,GACnD,QAASA,EAAKmB,WAAaA,GAAYnB,EAAKoB,YAAcA,MAE5DrzF,KAAKwd,SAAS,CACZwoF,aAAcA,IACb,WACD1iF,EAAO9kB,MAAMqqG,eAAiBvlF,EAAO9kB,MAAMqqG,cAAcvlF,EAAO0kF,oBAGnE,CACDlqG,IAAK,YACLhC,MAAO,SAAmBwV,GACxB,IAEI3C,EAFA+U,EAAS1jB,KAGTivG,EAAM,SACN3f,EAAUtvF,KAAKsuG,aAGjB3/F,EADE2C,GAAWA,EAAQ49F,cACdlvG,KAAKxB,MAAM6mC,WAAa,GAExB,GAAGtnC,OAAOgvF,EAAmB/sF,KAAKxB,MAAM2wG,aAAe,IAAKpiB,EAAmB/sF,KAAKgoG,eAAiB,KAI9G1Y,EAAQp+E,SAAQ,SAAU0mF,EAAQh9F,GAChC,IAAIw0G,EAAgBxX,EAAOp5F,MACvBsP,EAAQshG,EAActhG,MACtBktE,EAASo0B,EAAcp0B,OACVo0B,EAAcjyB,YAEbrvE,IAChBmhG,GAAO,KAAOj0B,GAAUltE,GAAS,IAE7BlT,EAAI00F,EAAQ30F,OAAS,IACvBs0G,GAAOvrF,EAAOllB,MAAM6wG,kBAK1B1gG,EAAKuC,SAAQ,SAAUo+F,GACrBL,GAAO,KACP3f,EAAQp+E,SAAQ,SAAU0mF,EAAQh9F,GAChC,IAAI20G,EAAiB3X,EAAOp5F,MACxBsP,EAAQyhG,EAAezhG,MAG3B,GAFiByhG,EAAepyB,YAEdrvE,EAAO,CACvB,IAAIymF,EAAW5mF,IAAYI,iBAAiBuhG,EAAQxhG,GAC9BymF,EAAN,MAAZA,EAA6B7wE,EAAOllB,MAAMgxG,eAAiB9rF,EAAOllB,MAAMgxG,eAAe,CACzF7gG,KAAM4lF,EACNzmF,MAAOA,IACJuC,OAAOkkF,GAAUpxF,QAAQ,KAAM,MAAsB,GAC1D8rG,GAAO,IAAM1a,EAAW,IAEpB35F,EAAI00F,EAAQ30F,OAAS,IACvBs0G,GAAOvrF,EAAOllB,MAAM6wG,qBAK5B,IAAII,EAAO,IAAIC,KAAK,CAACT,GAAM,CACzBzxG,KAAM,mCAGR,GAAIoD,OAAOsI,UAAUymG,iBACnBzmG,UAAUymG,iBAAiBF,EAAMzvG,KAAKxB,MAAMoxG,eAAiB,YACxD,CACL,IAAIC,EAAOnvG,SAASsK,cAAc,UAEZvF,IAAlBoqG,EAAKC,UACPD,EAAK1b,aAAa,OAAQ4b,IAAIC,gBAAgBP,IAC9CI,EAAK1b,aAAa,WAAYn0F,KAAKxB,MAAMoxG,eAAiB,QAC1DC,EAAKzvG,MAAM8H,QAAU,OACrBxH,SAAS2B,KAAKmH,YAAYqmG,GAC1BA,EAAKtgD,QACL7uD,SAAS2B,KAAKsH,YAAYkmG,KAE1BZ,EAAM,+BAAiCA,EACvCruG,OAAO6vD,KAAKw/C,UAAUhB,QAI3B,CACDnxG,IAAK,mBACLhC,MAAO,WACuB,QAAxBkE,KAAKxB,MAAMszF,UACbpxF,SAAS2B,KAAKktD,UAGjB,CACDzxD,IAAK,wBACLhC,MAAO,SAA+BuY,GACpC,IACIgxB,EADA1vB,EAAgBtB,EAAMsB,cAGrBtB,EAAM63E,SAST7mD,EAAY,GACZrlC,KAAKxB,MAAM0xG,mBAAqBlwG,KAAKxB,MAAM0xG,kBAAkB,CAC3Dv6F,cAAeA,EACfhH,KAAM02B,EACN7nC,KAAM,UAXR6nC,EAAY0nD,EADM/sF,KAAK+mG,YAAc/mG,KAAKgoG,cAAgBhoG,KAAKxB,MAAM1C,OAErEkE,KAAKxB,MAAM2xG,iBAAmBnwG,KAAKxB,MAAM2xG,gBAAgB,CACvDx6F,cAAeA,EACfhH,KAAM02B,EACN7nC,KAAM,SAWNwC,KAAKxB,MAAM67F,mBACbr6F,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAeA,EACf7Z,MAAOupC,MAIZ,CACDvnC,IAAK,cACLhC,MAAO,SAAqBA,EAAOs0G,GAKjC,IAJA,IAAIC,EAAgB,GAChBnN,EAAUkN,GAAgBpwG,KAAKgnG,aAC/B1X,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAEvC5H,EAAI,EAAGA,EAAIkB,EAAMnB,OAAQC,IAAK,CAIrC,IAHA,IAAI01G,GAAa,EACbC,GAAc,EAETt8F,EAAI,EAAGA,EAAIq7E,EAAQ30F,OAAQsZ,IAAK,CACvC,IAAI6zD,EAAMwnB,EAAQr7E,GACdg2F,EAAcniC,EAAItpE,MAAMu8E,aAAejT,EAAItpE,MAAMsP,MACjD0iG,EAAatN,EAAUA,EAAQ+G,GAAe,KAElD,GAAIuG,EAAY,CACd,IAAI3gG,EAAc2gG,EAAW10G,MACzB20G,EAAiB9iG,IAAYI,iBAAiBjS,EAAMlB,GAAIqvG,GACxDn6F,EAAkB0gG,EAAWlO,WAAax6B,EAAItpE,MAAMsR,gBACpD4gG,EAAuC,WAApB5gG,EAA+Bg4D,EAAItpE,MAAMk9E,eAAiB9rE,IAAYE,GACzFwB,EAAU,CACZu/E,QAAS/0F,EAAMlB,GACfsoG,QAASA,EACT1kG,MAAOwB,KAAKxB,MACZo5F,OAAQ,CACN4Y,WAAYA,EACZz1B,YAAakvB,EACbzrG,MAAOspE,EAAItpE,QAQf,GAJyB,OAArBkyG,GAA8BA,EAAiBD,EAAgB5gG,EAAa7P,KAAKxB,MAAMuR,aAAcuB,KACvGg/F,GAAa,IAGVA,EACH,MAICxoC,EAAItpE,MAAMu+E,sBAAuB/8E,KAAKxB,MAAM0sG,cAAiBqF,IAChEA,EAAc3gG,IAAW,SAAajC,IAAYI,iBAAiBjS,EAAMlB,GAAIqvG,GAAcjqG,KAAKxB,MAAM0sG,aAAclrG,KAAKxB,MAAMuR,eAInI,IAAIoX,EAAUmpF,EAEVtwG,KAAKxB,MAAM0sG,eACb/jF,EAAUmpF,GAAcC,GAGtBppF,GACFkpF,EAAcx0G,KAAKC,EAAMlB,IAQ7B,OAJIy1G,EAAc11G,SAAWmB,EAAMnB,SACjC01G,EAAgBv0G,GAGXu0G,IAER,CACDvyG,IAAK,cACLhC,MAAO,SAAqB60G,GAC1B,IAAIhiG,EAAO3O,KAAKxB,MAAM1C,MAEtB,IAAKkE,KAAKxB,MAAMu8F,OAAS/6F,KAAK4wG,kBACxBjiG,GAAQA,EAAKhU,OAAQ,CACvB,IAAImgF,EAAY61B,GAAcA,EAAW71B,WAAa96E,KAAK4mG,eACvDxD,EAAYuN,GAAcA,EAAWvN,WAAapjG,KAAK6mG,eACvD/D,EAAgB6N,GAAcA,EAAW7N,eAAiB9iG,KAAK8mG,oBAE/DhsB,GAAagoB,GAAiBA,EAAcnoG,UAClB,WAAxBqF,KAAKxB,MAAMwmG,SAAuBr2F,EAAO3O,KAAK6wG,WAAWliG,EAAMmsE,EAAWsoB,GAA4C,aAAxBpjG,KAAKxB,MAAMwmG,WAAyBr2F,EAAO3O,KAAK8wG,aAAaniG,EAAMm0F,KAGvK,IAAIsN,EAAeO,GAAcA,EAAWzN,SAAWljG,KAAKgnG,cAExDoJ,GAAgBpwG,KAAKxB,MAAM0sG,gBAC7Bv8F,EAAO3O,KAAK+wG,YAAYpiG,EAAMyhG,IAKpC,OAAOzhG,IAER,CACD7Q,IAAK,gBACLhC,MAAO,WACL,IAAIk1G,EAAchxG,KAAK+mG,YAAc/mG,KAAKgoG,cAAgBhoG,KAAKxB,MAAM1C,MAErE,OAAIkE,KAAKxB,MAAMu8F,KACN/6F,KAAKxB,MAAM6mC,WAAarlC,KAAKxB,MAAM0vF,cAAgBluF,KAAKxB,MAAM6mC,UAAU1qC,SAAWqF,KAAKxB,MAAM0vF,aAGhGluF,KAAKxB,MAAM6mC,WAAa2rE,GAAeA,EAAYr2G,QAAUqF,KAAKxB,MAAM6mC,UAAU1qC,SAAWq2G,EAAYr2G,SAEjH,CACDmD,IAAK,mBACLhC,MAAO,SAA0BwzF,GAC/B,IAGIxnF,EAHAmpG,EAAgB,KAEhBlpG,EAAa0H,GAA2B6/E,GAG5C,IACE,IAAKvnF,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAIksE,EAAMhgE,EAAOhM,MAEbgsE,EAAItpE,MAAM49E,SACZ60B,EAAgBA,GAAiB,IACnBp1G,KAAKisE,IAGvB,MAAO/rE,GACPgM,EAAWvI,EAAEzD,GAVf,QAYEgM,EAAWtI,IAGb,OAAOwxG,IAER,CACDnzG,IAAK,uBACLhC,MAAO,SAA8BwzF,GACnC,IAGI3jF,EAHAulG,EAAoB,KAEpBrlG,EAAa4D,GAA2B6/E,GAG5C,IACE,IAAKzjF,EAAWtM,MAAOoM,EAASE,EAAW1P,KAAKP,MAAO,CACrD,IAAIksE,EAAMn8D,EAAO7P,MAEZgsE,EAAItpE,MAAM49E,SACb80B,EAAoBA,GAAqB,IACvBr1G,KAAKisE,IAG3B,MAAO/rE,GACP8P,EAAWrM,EAAEzD,GAVf,QAYE8P,EAAWpM,IAGb,OAAOyxG,IAER,CACDpzG,IAAK,2BACLhC,MAAO,SAAkCwzF,GACvC,GAAIx0F,MAAME,QAAQs0F,GAAU,CAC1B,IACI6hB,EADAC,EAAa3hG,GAA2B6/E,GAG5C,IACE,IAAK8hB,EAAW7xG,MAAO4xG,EAASC,EAAWj1G,KAAKP,MAAO,CACrD,IAAIksE,EAAMqpC,EAAOr1G,MACjB,GAAIgsE,EAAItpE,MAAM69E,cAAe,OAAOvU,EAAItpE,MAAM69E,eAEhD,MAAOtgF,GACPq1G,EAAW5xG,EAAEzD,GANf,QAQEq1G,EAAW3xG,KAIf,OAAO,OAER,CACD3B,IAAK,oBACLhC,MAAO,SAA2BA,EAAOwzF,EAASkS,GAChD,OAAoB3mF,IAAM7P,cAAc85F,EAAa,CACnDhpG,MAAOA,EACPkpG,SAAUhlG,KAAKxB,MAAMwmG,SACrB9C,OAAQliG,KAAKkiG,OACbpnB,UAAW96E,KAAK4mG,eAChBxD,UAAWpjG,KAAK6mG,eAChB/D,cAAe9iG,KAAK8mG,mBACpBtF,YAAaA,EACbgB,iBAAkBxiG,KAAKxB,MAAMgkG,iBAC7BC,oBAAqBziG,KAAKyiG,oBAC1BE,qBAAsB3iG,KAAKxB,MAAMmkG,qBACjCC,2BAA4B5iG,KAAKxB,MAAMokG,2BACvCR,SAAUpiG,KAAKoiG,SACfG,YAAaviG,KAAKxB,MAAM+jG,YACxBwB,sBAAuB/jG,KAAK+jG,sBAC5BC,uBAAwBhkG,KAAKqxG,gBAC7BxO,mBAAoB7iG,KAAKxB,MAAMqkG,mBAC/BoC,kBAAmBjlG,KAAKilG,kBACxB/B,QAASljG,KAAKgnG,aACd9B,iBAAkBllG,KAAKklG,iBACvBC,kBAAmBnlG,KAAKmlG,kBACxBC,aAAcplG,KAAKolG,aACnBtgC,SAAU9kE,KAAKxB,MAAMsmE,UACpBwqB,KAEJ,CACDxxF,IAAK,kBACLhC,MAAO,SAAyBA,EAAOwzF,EAASlT,EAAQ8a,GACtD,OAAoBr8E,IAAM7P,cAAcytF,EAAW,CACjD1H,QAAS/wF,KAAKxB,MAAMslB,GACpBhoB,MAAOA,EACP6W,MAAO3S,KAAK0mG,WACZ9+B,KAAM5nE,KAAK2mG,UACX5L,KAAM/6F,KAAKxB,MAAMu8F,KACjBC,UAAWh7F,KAAKxB,MAAMw8F,UACtB7rF,QAASnP,KAAKxB,MAAM2Q,QACpBsuF,mBAAoBz9F,KAAKxB,MAAMi/F,mBAC/BphB,cAAer8E,KAAKxB,MAAM69E,cAC1Bh3C,UAAWrlC,KAAKxB,MAAM6mC,UACtBw3D,iBAAkB78F,KAAKxB,MAAMq+F,iBAC7BzgB,OAAQA,EACR8a,sBAAuBA,EACvBmD,kBAAmBr6F,KAAKxB,MAAM67F,kBAC9B3B,WAAY14F,KAAKxB,MAAMk6F,WACvB8H,iBAAkBxgG,KAAKxB,MAAMgiG,iBAC7B/E,YAAaz7F,KAAKxB,MAAMi9F,YACxBE,cAAe37F,KAAKxB,MAAMm9F,cAC1BwB,qBAAsBn9F,KAAKxB,MAAM2+F,qBACjCT,6BAA8B18F,KAAKxB,MAAMk+F,6BACzCjQ,cAAezsF,KAAKxB,MAAMiuF,cAC1BiR,aAAc19F,KAAKxB,MAAMk/F,aACzB7L,YAAa7xF,KAAKxB,MAAMqzF,YACxB+O,qBAAsB5gG,KAAKxB,MAAMoiG,qBACjC/N,aAAc7yF,KAAKxB,MAAMq0F,aACzBgL,YAAa79F,KAAKxB,MAAMq/F,YACxBD,cAAe59F,KAAKxB,MAAMo/F,cAC1BqD,aAAcjhG,KAAKxB,MAAMyiG,aACzBjT,cAAehuF,KAAKxB,MAAMwvF,cAC1BG,iBAAkBnuF,KAAKxB,MAAM2vF,iBAC7BtV,QAAS74E,KAAKxB,MAAMq6E,QACpBknB,WAAY//F,KAAKxB,MAAMuhG,WACvBpI,aAAc33F,KAAKxB,MAAMm5F,aACzBwH,uBAAwBn/F,KAAKxB,MAAM2gG,uBACnCC,uBAAwBp/F,KAAKxB,MAAM4gG,uBACnCtkB,UAAW96E,KAAK4mG,eAChBpP,aAAcx3F,KAAKxB,MAAMg5F,aACzBlD,cAAet0F,KAAKxB,MAAM81F,cAC1BwK,aAAc9+F,KAAKxB,MAAMsgG,aACzBhN,SAAU9xF,KAAKxB,MAAMszF,SACrBmM,YAAaj+F,KAAKxB,MAAMy/F,YACxBhH,mBAAoBj3F,KAAKxB,MAAMy4F,mBAC/BpB,cAAe71F,KAAKxB,MAAMq3F,cAC1BR,cAAer1F,KAAKxB,MAAM62F,cAC1BI,gBAAiBz1F,KAAKxB,MAAMi3F,gBAC5B0I,gBAAiBn+F,KAAKxB,MAAM2/F,gBAC5Bc,oBAAqBj/F,KAAKxB,MAAMygG,oBAChChK,sBAAuBj1F,KAAKxB,MAAMy2F,sBAClCJ,qBAAsB70F,KAAKxB,MAAMq2F,qBACjC+G,cAAe57F,KAAKxB,MAAMo9F,cAC1BoB,cAAeh9F,KAAKxB,MAAMw+F,cAC1B/E,YAAaj4F,KAAKxB,MAAMy5F,YACxBuD,aAAcx7F,KAAKxB,MAAMg9F,aACzBE,eAAgB17F,KAAKxB,MAAMk9F,eAC3BvI,oBAAqBnzF,KAAKmzF,qBACzB7D,KAEJ,CACDxxF,IAAK,yBACLhC,MAAO,SAAgCwzF,GACrC,OAAItvF,KAAKxB,MAAMwvF,cACOnzE,IAAM7P,cAAc26F,GAAkB,CACxDrW,QAASA,EACT1nB,KAAM5nE,KAAK2mG,YAGN,OAGV,CACD7oG,IAAK,oBACLhC,MAAO,SAA2BwzF,EAASkS,GACzC,OAAIxhG,KAAKqrG,YAAiCxwF,IAAM7P,cAAcu2F,EAAa,CACzEC,YAAaA,GACZlS,GAAqB,OAEzB,CACDxxF,IAAK,uBACLhC,MAAO,SAA8BA,EAAOwzF,EAASlT,EAAQk1B,EAAmBnG,EAAmBjd,EAAcgJ,GAC/G,OAAoBr8E,IAAM7P,cAAcsiF,EAAgB,CACtDgC,QAASA,EACTtU,OAAQh7E,KAAKuxG,kBAAkBz1G,EAAOwzF,EAASgiB,GAC/CjvG,KAAMrC,KAAKwxG,gBAAgB11G,EAAOwzF,EAASlT,EAAQ8a,GACnDjc,YAAaj7E,KAAKyxG,uBAAuBniB,GACzCY,WAAYlwF,KAAKxB,MAAM2wG,YAAcnvG,KAAKwxG,gBAAgBxxG,KAAKxB,MAAM2wG,YAAa7f,GAAS,EAAM4H,GAAyB,KAC1Hhc,OAAQl7E,KAAK0xG,kBAAkBpiB,EAAS6b,GACxCtb,WAAY7vF,KAAKxB,MAAMqxF,WACvBre,eAAgBxxE,KAAKxB,MAAMgzE,eAC3B50B,aAAc58C,KAAKxB,MAAMo+C,aACzBw/B,OAAQA,EACRoT,YAAaxvF,KAAKxB,MAAMgxF,YACxBxB,cAAehuF,KAAKxB,MAAMwvF,cAC1BG,iBAAkBnuF,KAAKxB,MAAM2vF,iBAC7BvmB,KAAM5nE,KAAKxB,MAAMopE,KACjBsmB,aAAcA,EACdmB,gBAAiBrvF,KAAKqvF,gBACtBxW,QAAS74E,KAAKxB,MAAMq6E,YAGvB,CACD/6E,IAAK,aACLhC,MAAO,WACL,IAAIwzF,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAEhD,GAAI8sF,GAAWA,EAAQ30F,OAAQ,CAC7B,GAAIqF,KAAKxB,MAAMqkG,oBAAsB7iG,KAAKod,MAAM8pF,YAAa,CAC3D,IAGIyK,EAHAC,EAAiB,GAEjBC,EAAapiG,GAA2BzP,KAAKod,MAAM8pF,aAGvD,IACE,IAAK2K,EAAWtyG,MAAOoyG,EAASE,EAAW11G,KAAKP,MAAO,CACrD,IAAIi/E,EAAY82B,EAAO71G,MACnB87F,EAAS53F,KAAK8xG,gBAAgBxiB,EAASzU,GAEvC+c,GACFga,EAAe/1G,KAAK+7F,IAGxB,MAAO77F,GACP81G,EAAWryG,EAAEzD,GAVf,QAYE81G,EAAWpyG,IAGb,MAAO,GAAG1B,OAAO6zG,EAAgB7kB,EAAmBuC,EAAQtxF,QAAO,SAAU+L,GAC3E,OAAO6nG,EAAelmG,QAAQ3B,GAAQ,OAGxC,OAAOulF,EAIX,OAAO,OAER,CACDxxF,IAAK,kBACLhC,MAAO,SAAyBwzF,EAASxxF,GACvC,GAAIwxF,GAAWA,EAAQ30F,OACrB,IAAK,IAAIC,EAAI,EAAGA,EAAI00F,EAAQ30F,OAAQC,IAAK,CACvC,IAAI+zG,EAAQrf,EAAQ10F,GAEpB,GAAI+zG,EAAMnwG,MAAMq8E,YAAc/8E,GAAO6wG,EAAMnwG,MAAMsP,QAAUhQ,EACzD,OAAO6wG,EAKb,OAAO,OAER,CACD7wG,IAAK,kBACLhC,MAAO,SAAyB6S,GAC9B,OAAO3O,KAAKxB,MAAMu8F,KAAO/6F,KAAKxB,MAAM0vF,aAAev/E,EAAOA,EAAKhU,OAAS,IAEzE,CACDmD,IAAK,QACLhC,MAAO,WACL,IAAIshB,EAAQ,GAEPpd,KAAKxB,MAAMynG,SACd7oF,EAAMzK,MAAQ3S,KAAKxB,MAAMmU,MACzByK,EAAMwqD,KAAO5nE,KAAKxB,MAAMopE,MAGrB5nE,KAAKxB,MAAM0jG,SACd9kF,EAAM09D,UAAY96E,KAAKxB,MAAMs8E,UAC7B19D,EAAMgmF,UAAYpjG,KAAKxB,MAAM4kG,UAC7BhmF,EAAM0lF,cAAgB9iG,KAAKxB,MAAMskG,eAG9B9iG,KAAKxB,MAAM4jG,WACdhlF,EAAM8lF,QAAUljG,KAAKxB,MAAM0kG,SAG7BljG,KAAK+xG,mBAED31G,OAAOqS,KAAK2O,GAAOziB,QACrBqF,KAAKwd,SAASJ,KAGjB,CACDtf,IAAK,mBACLhC,MAAO,WACL,IAIIk2G,EAHA9K,EAAc,GAEd+K,EAAaxiG,GAHHoL,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,WAMhD,IACE,IAAKyvG,EAAW1yG,MAAOyyG,EAASC,EAAW91G,KAAKP,MAAO,CACrD,IAAIg8F,EAASoa,EAAOl2G,MACpBorG,EAAYrrG,KAAK+7F,EAAOp5F,MAAMq8E,WAAa+c,EAAOp5F,MAAMsP,QAE1D,MAAO/R,GACPk2G,EAAWzyG,EAAEzD,GANf,QAQEk2G,EAAWxyG,IAGbO,KAAKwd,SAAS,CACZ0pF,YAAaA,MAGhB,CACDppG,IAAK,eACLhC,MAAO,WACL,IAAIq1F,EAAgBl0F,YAAW,mCAAoC+C,KAAKxB,MAAM26E,aAC9E,OAAoBt+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,mDACGsd,IAAM7P,cAAc,IAAK,CACvCzN,UAAW4zF,OAGd,CACDrzF,IAAK,oBACLhC,MAAO,WACDkE,KAAKkmG,cAAgBlmG,KAAKxB,MAAMgkG,kBAClCxiG,KAAKkyG,wBAGR,CACDp0G,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GACxCzjB,KAAKkmG,cACPlmG,KAAKysG,YAGHjpF,EAAU0nF,eAAiBlrG,KAAKxB,MAAM0sG,cACxClrG,KAAKhC,OAAOgC,KAAKxB,MAAM0sG,aAAc,eAAgB,cAGxD,CACDptG,IAAK,SACLhC,MAAO,WACL,IAsDIq2G,EAtDAxuF,EAAS3jB,KAETlE,EAAQkE,KAAKgoG,cACb1Y,EAAUtvF,KAAKsuG,aACfpgB,EAAeluF,KAAK+nG,gBAAgBjsG,GACpCo7F,EAAwBl3F,KAAKoyG,yBAAyB9iB,GACtD/xF,EAAYN,YAAW,0BAA2B,CACpD,wBAAyB+C,KAAKxB,MAAMgkG,iBACpC,4BAA6BxiG,KAAKxB,MAAMgkG,kBAAoD,QAAhCxiG,KAAKxB,MAAM+pG,iBACvE,yBAA0BvoG,KAAKxB,MAAMgqG,WACrC,iCAAkCxoG,KAAKxB,MAAMwvF,cAC7C,sBAAuBhuF,KAAKxB,MAAM6zG,YAClC,wBAAyBryG,KAAKxB,MAAM8zG,cACpC,0BAA2BtyG,KAAKxB,MAAM+zG,WACtC,6BAA8BvyG,KAAKxB,MAAMg0G,UAAYxyG,KAAKxB,MAAM69E,eAAiB6a,GAChFl3F,KAAKxB,MAAMjB,WACVk1G,EAAezyG,KAAKxB,MAAMw8F,WAA8C,WAAjCh7F,KAAKxB,MAAMk0G,mBAAkC1yG,KAAK2yG,gBAAgB,MAAOzkB,GAChH0kB,EAAkB5yG,KAAKxB,MAAMw8F,WAA8C,QAAjCh7F,KAAKxB,MAAMk0G,mBAA+B1yG,KAAK2yG,gBAAgB,SAAUzkB,GACnH2kB,EAAc7yG,KAAKxB,MAAMw8E,QAAuBngE,IAAM7P,cAAc,MAAO,CAC7EzN,UAAW,sBACVyC,KAAKxB,MAAMw8E,QACV83B,EAAc9yG,KAAKxB,MAAM08E,QAAuBrgE,IAAM7P,cAAc,MAAO,CAC7EzN,UAAW,sBACVyC,KAAKxB,MAAM08E,QACV63B,EAAe/yG,KAAKxB,MAAMgkG,kBAAiC3nF,IAAM7P,cAAc,MAAO,CACxF8P,IAAK,SAAa7a,GAChB0jB,EAAOioF,cAAgB3rG,GAEzB1C,UAAW,sCACX6C,MAAO,CACL8H,QAAS,UAGT8qG,EAAe,KACfC,EAAoBjzG,KAAKxB,MAAMqkG,oBAAmChoF,IAAM7P,cAAc,OAAQ,CAChG8P,IAAK,SAAa7a,GAChB0jB,EAAO6pF,mBAAqBvtG,GAE9B1C,UAAW,oDACX6C,MAAO,CACL8F,SAAU,WACVgC,QAAS,UAGTgrG,EAAsBlzG,KAAKxB,MAAMqkG,oBAAmChoF,IAAM7P,cAAc,OAAQ,CAClG8P,IAAK,SAAa7a,GAChB0jB,EAAOwqF,qBAAuBluG,GAEhC1C,UAAW,oDACX6C,MAAO,CACL8F,SAAU,WACVgC,QAAS,UASb,GAJIlI,KAAKxB,MAAMq6E,UACbs5B,EAASnyG,KAAKmzG,gBAGZr4G,MAAME,QAAQs0F,GAChB,GAAItvF,KAAKxB,MAAMgqG,WAAY,CACzB,IAEIna,EAAY4d,EAFZgF,EAAgBjxG,KAAKozG,iBAAiB9jB,GACtC4hB,EAAoBD,EAAgBjxG,KAAKqzG,qBAAqB/jB,GAAWA,EAGzE2hB,IACF5iB,EAAaruF,KAAKszG,qBAAqBx3G,EAAOm1G,GAAe,EAAMjxG,KAAKxB,MAAM+0G,wBAAyBvzG,KAAKxB,MAAMg1G,wBAAyBtlB,EAAcgJ,IAG3J+U,EAAiBjsG,KAAKszG,qBAAqBx3G,EAAOo1G,GAAmB,EAAOlxG,KAAKxB,MAAM8yG,kBAAmBtxG,KAAKxB,MAAM2sG,kBAAmBjd,EAAcgJ,GACtJ8b,EAA4Bn4F,IAAM7P,cAAc,MAAO,CACrDzN,UAAW,kCACV8wF,EAAY4d,OACV,CACL,IAAIwH,EAAczzG,KAAKuxG,kBAAkBz1G,EAAOwzF,EAAStvF,KAAKxB,MAAM8yG,mBAChEoC,EAAY1zG,KAAKwxG,gBAAgB11G,EAAOwzF,GAAS,EAAO4H,GACxDyc,EAAc3zG,KAAK0xG,kBAAkBpiB,EAAStvF,KAAKxB,MAAM2sG,mBAC7D6H,EAA4Bn4F,IAAM7P,cAAc,MAAO,CACrDzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C5K,MAAOJ,KAAKxB,MAAMqxF,WAClB9rE,KAAM,OACNxmB,UAAWyC,KAAKxB,MAAMgzE,eACtB12D,IAAK,SAAa7a,GAChB0jB,EAAO8kF,MAAQxoG,IAEhBwzG,EAAaE,EAAaD,IAIjC,OAAoB74F,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB0a,IAAK,SAAa7a,GAChB0jB,EAAO7Z,UAAY7J,GAErB,uBAAwB,yFACvBkyG,EAAQU,EAAaJ,EAAcO,EAAcJ,EAAiBE,EAAaC,EAAcE,EAAmBC,MAEnH,CAAC,CACHp1G,IAAK,2BACLhC,MAAO,SAAkCojD,EAAWz7B,GAClD,OAAIy7B,EAAU0oB,OAASnkD,EAAUsiF,QAAW7mD,EAAU+mD,OAO/C,KANE,CACLr+B,KAAM1oB,EAAU0oB,KAChBm+B,OAAQ7mD,EAAU0oB,UAQnBk+B,EA9nDoB,CA+nD3B9qF,aAEFxK,EAAgBs1F,GAAW,eAAgB,CACzChiF,GAAI,KACJhoB,MAAO,KACPk/E,OAAQ,KACRE,OAAQ,KACR96E,MAAO,KACP7C,UAAW,KACXsyF,WAAY,KACZre,eAAgB,KAChBwpB,WAAW,EACX0X,kBAAmB,SACnBhJ,qBAAqB,EACrBZ,mBAAoB,KACpBI,kBAAmB,qFACnBI,cAAe,KACfE,eAAgB,KAChBI,0BAA2B,KAC3BZ,aAAc,EACdG,mBAAoB,KACpBC,0BAA2B,kCAC3Bz2F,MAAO,EACPi1D,KAAM,KACNsmB,aAAc,KACd6M,MAAM,EACNjgB,UAAW,KACXsoB,UAAW,KACXN,cAAe,KACfkC,SAAU,SACV8E,iBAAkB,EAClBS,eAAe,EACftJ,aAAc,mBACd5kB,cAAe,KACfuf,eAAe,EACfoB,eAAe,EACf33D,UAAW,KACXg1D,kBAAmB,KACnB8C,qBAAsB,KACtBT,6BAA8B,KAC9Be,mBAAoB,aACpBtuF,QAAS,KACT0tF,kBAAkB,EAClBhK,cAAc,EACdye,kBAAmB,KACnBnG,kBAAmB,KACnBoI,wBAAyB,KACzBC,wBAAyB,KACzB5S,qBAAsB,KACtBlD,aAAc,KACd7L,YAAa,KACb2Q,kBAAkB,EAClB+F,iBAAkB,MAClB1F,oBAAoB,EACpBK,QAAS,KACTgI,aAAc,KACd3I,YAAa,IACbxyF,kBAActK,EACd+iG,YAAY,EACZ5rD,aAAc,KACdoxC,eAAe,EACfghB,mBAAoB,IACpB7gB,iBAAkB,GAClBqB,YAAa,KACb2f,YAAa,KACbE,aAAc,IACdO,eAAgB,WAChBjY,aAAc,KACd4a,YAAY,EACZ/a,aAAc,KACdlD,cAAe,KACf6K,uBAAwB,KACxBC,uBAAwB,KACxBvmB,SAAS,EACTM,YAAa,gBACbrU,SAAU,EACV0hC,SAAU,KACVH,aAAc,UACdtG,WAAY,KACZjO,SAAU,OACVmM,YAAa,KACbgB,qBAAqB,EACrBuT,UAAU,EACVF,eAAe,EACfD,aAAa,EACbxd,qBAAsB,KACtBI,sBAAuB,KACvBuX,kBAAmB,KACnB7J,qBAAsB,KACtBC,2BAA4B,KAC5BV,OAAQ,KACR+D,OAAQ,KACR7D,SAAU,KACV/S,gBAAiB,KACjB8gB,gBAAiB,KACjBD,kBAAmB,KACnBxX,WAAY,KACZ8H,iBAAkB,KAClB/E,YAAa,KACbE,cAAe,KACfkC,YAAa,KACbD,cAAe,KACfnR,cAAe,KACfqiB,aAAc,KACd7W,YAAa,KACbuD,aAAc,KACdE,eAAgB,KAChBoD,aAAc,KACd+J,cAAe,KACf5R,mBAAoB,KACpBpB,cAAe,KACfR,cAAe,KACfI,gBAAiB,KACjB0I,gBAAiB,KACjBqR,eAAgB,KAChBrI,gBAAiB,KACjBO,mBAAoB,KACpBH,YAAa,KACbc,eAAgB,Q,6BClsKlB,4EAKA,SAAS5vB,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASgB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASyf,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI8kG,EAA4B,SAAUh6F,GACxCpB,EAAUo7F,EAAch6F,GAExB,IAAIC,EAAS4C,EAAem3F,GAE5B,SAASA,EAAap1G,GACpB,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAM4zG,IAEtBruG,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IACnDA,EAiCT,OA9BAzG,EAAa80G,EAAc,CAAC,CAC1B91G,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfsL,OAAQ3f,KAAKxB,MAAMmhB,WAIxB,CACD7hB,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,kBAAmB,CAC5C,cAAe+C,KAAKxB,MAAMsyF,SAC1B,aAAc9wF,KAAKxB,MAAMihB,SACzB,yBAA0Bzf,KAAKxB,MAAM+6E,OAAqC,IAA5Bv5E,KAAKxB,MAAM+6E,MAAM5+E,QAC9DqF,KAAKxB,MAAMmhB,OAAOpiB,WACjByhB,EAAUhf,KAAKxB,MAAMyqG,SAAWt7F,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUjpG,KAAKxB,MAAMmhB,QAAU3f,KAAKxB,MAAM+6E,MACnH,OAAoB1+D,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACd,aAAchgE,KAAKxB,MAAM+6E,MACzBz7E,IAAKkC,KAAKxB,MAAM+6E,MAChBx1D,KAAM,SACN,gBAAiB/jB,KAAKxB,MAAMsyF,UAC3B9xE,EAAsBnE,IAAM7P,cAAc2O,IAAQ,WAIlDi6F,EA7CuB,CA8C9B54F,aAWF,SAAS+C,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAASsf,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAbha0B,EAAgBojG,EAAc,eAAgB,CAC5Cj0F,OAAQ,KACR45D,MAAO,KACP0vB,SAAU,KACVnY,UAAU,EACVrxE,UAAU,EACVugD,QAAS,OAWX,IAAI6zC,EAAsC,SAAUj6F,GAClDpB,EAAUq7F,EAAwBj6F,GAElC,IAAIC,EAASgE,EAAeg2F,GAE5B,SAASA,EAAuBr1G,GAC9B,IAAI+G,EAQJ,OANApH,EAAgB6B,KAAM6zG,IAEtBtuG,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB0mB,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAMuuG,oBAAsBvuG,EAAMuuG,oBAAoB/5F,KAAK7B,EAAuB3S,IAC3EA,EA+PT,OA5PAzG,EAAa+0G,EAAwB,CAAC,CACpC/1G,IAAK,UACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEbA,KAAKxB,MAAM0mB,SAAQ,WACjB,GAAIvK,EAAOo5F,mBAAoB,CAC7B,IAAIC,EAAgBr5F,EAAOnc,MAAMy1G,0BAEV,IAAnBD,GACFr5F,EAAOo5F,mBAAmBG,cAAcF,SAK/C,CACDl2G,IAAK,YACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEbA,KAAKxB,MAAM4mB,WAAU,WACflE,EAAO1iB,MAAMR,QAAUkjB,EAAO1iB,MAAM21G,sBACtCjzF,EAAOkzF,YAAYhoB,aAIxB,CACDtuF,IAAK,sBACLhC,MAAO,SAA6BuY,GAC9BrU,KAAK+zG,oBACP/zG,KAAK+zG,mBAAmBG,cAAc,GAGxCl0G,KAAKxB,MAAMs1G,qBAAuB9zG,KAAKxB,MAAMs1G,oBAAoBz/F,KAElE,CACDvW,IAAK,gBACLhC,MAAO,WACL,QAASkE,KAAKxB,MAAM61G,gBAAkBr0G,KAAKxB,MAAM61G,eAAe15G,SAAWqF,KAAKxB,MAAMuoG,cAEvF,CACDjpG,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,IAAI3yF,EAAS3hB,KAGb,OADoBA,KAAKxB,MAAM+1G,uBAAuBD,GACjC32G,KAAI,SAAUgiB,EAAQ1L,GACzC,IAAIugG,EAAc7yF,EAAOnjB,MAAMi2G,eAAe90F,GAE1C+0F,EAAYzgG,EAAI,IAAM0N,EAAOnjB,MAAMm2G,mBAAmBh1F,GAEtDF,EAAWkC,EAAOnjB,MAAMo2G,iBAAiBj1F,GAE7C,OAAoB9E,IAAM7P,cAAc4oG,EAAc,CACpD91G,IAAK42G,EACLn7B,MAAOi7B,EACP70F,OAAQA,EACRspF,SAAUtnF,EAAOnjB,MAAMq2G,aACvB/jB,SAAUnvE,EAAOnjB,MAAMw0E,WAAWrzD,GAClCF,SAAUA,EACVugD,QAASr+C,EAAOnjB,MAAMs2G,qBAI3B,CACDh3G,IAAK,qBACLhC,MAAO,SAA4BmlG,GACjC,IAAIt0C,EAAUh/C,IAAY8rE,cAAcwnB,EAAcjhG,KAAKxB,OAC3D,OAAoBqc,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,4BACVovD,KAEJ,CACD7uD,IAAK,aACLhC,MAAO,SAAoB6jB,EAAQ08C,GACjC,GAAIr8D,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAIC,EAAeh1G,KAAKxB,MAAMy2G,oBAAsBtnG,IAAY8rE,cAAcz5E,KAAKxB,MAAMy2G,oBAAqBt1F,EAAQ08C,GAASr8D,KAAKxB,MAAM02G,oBAAoBv1F,GAC1Jw1F,EAAuBn1G,KAAKo1G,oBAAoBz1F,GAChD7hB,EAAMu+D,EAAQ,IAAMr8D,KAAKxB,MAAM62G,wBAAwB11F,GAC3D,OAAoB9E,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKA,GACS+c,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,yBACVy3G,GAAeG,GAElB,IAAIX,EAAcx0G,KAAKxB,MAAMi2G,eAAe90F,GACxC+0F,EAAYr4C,EAAQ,IAAMr8D,KAAKxB,MAAMm2G,mBAAmBh1F,GACxDF,EAAWzf,KAAKxB,MAAMo2G,iBAAiBj1F,GAC3C,OAAoB9E,IAAM7P,cAAc4oG,EAAc,CACpD91G,IAAK42G,EACLn7B,MAAOi7B,EACP70F,OAAQA,EACRspF,SAAUjpG,KAAKxB,MAAMq2G,aACrB/jB,SAAU9wF,KAAKxB,MAAMw0E,WAAWrzD,GAChCF,SAAUA,EACVugD,QAAShgE,KAAKxB,MAAMs2G,kBAIzB,CACDh3G,IAAK,cACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,OAAIA,KAAKxB,MAAM61G,gBAAkBr0G,KAAKxB,MAAM61G,eAAe15G,OAClDqF,KAAKxB,MAAM61G,eAAe12G,KAAI,SAAUgiB,EAAQ08C,GACrD,OAAO/5C,EAAOgzF,WAAW31F,EAAQ08C,MAE1Br8D,KAAKxB,MAAMuoG,YACb/mG,KAAKu1G,mBAAmBv1G,KAAKxB,MAAMg3G,oBAGrCx1G,KAAKu1G,mBAAmBv1G,KAAKxB,MAAMyiG,gBAE3C,CACDnjG,IAAK,wBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEb,OAAIA,KAAKxB,MAAMi3G,iBAAmBz1G,KAAKxB,MAAMqR,YACvBgL,IAAM7P,cAAc,IAAK,CAC3CzN,UAAW,2CACXyiE,QAAS,WACP,OAAOv9C,EAAOjkB,MAAMk3G,wBAAuB,WACzC,OAAOjzF,EAAO2xF,YAAYhoB,cAM3B,OAER,CACDtuF,IAAK,eACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAEb,GAAIA,KAAKxB,MAAMR,OAAQ,CACrB,IAAI23G,EAAY31G,KAAK41G,wBACjBC,EAAqB54G,YAAW,8BAA+B,CACjE,gCAAiC04G,IAEnC,OAAoB96F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAWs4G,GACGh7F,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAO8wF,YAAcn0G,GAE9BzC,KAAM,OACNs4G,aAAc,MACdv4G,UAAW,4CACXqmG,YAAa5jG,KAAKxB,MAAM88E,kBACxB7mE,UAAWzU,KAAKxB,MAAMu3G,qBACtBxjG,SAAUvS,KAAK8zG,oBACfh4G,MAAOkE,KAAKxB,MAAMqR,cAChB8lG,EAAwB96F,IAAM7P,cAAc,IAAK,CACnDzN,UAAW,0CAIf,OAAO,OAER,CACDO,IAAK,gBACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAEb,GAAIA,KAAKxB,MAAMw3G,uBAAwB,CACrC,IAAIC,EAAuBj4F,EAAgBA,EAAgB,GAAIhe,KAAKxB,MAAMw3G,wBAAyB,CACjG51G,MAAO4d,EAAgBA,EAAgB,GAAIhe,KAAKxB,MAAMw3G,uBAAuB51G,OAAQ,CACnFkB,OAAQtB,KAAKxB,MAAMo+C,eAErBr/C,UAAWN,YAAW,2BAA4B+C,KAAKxB,MAAMw3G,uBAAuBz4G,WACpF24G,MAAOl2G,KAAKxB,MAAM61G,eAClB8B,WAAY,SAAoB9hG,GAC9B,OAAOqP,EAAOllB,MAAMw3G,uBAAuBG,WAAWn4F,EAAgBA,EAAgB,GAAI3J,GAAQ,CAChGrW,OAAQ0lB,EAAOllB,MAAMqR,gBAGzBglG,aAAc,SAAsB9qG,EAAMuH,GACxC,OAAOvH,GAAQ2Z,EAAO4xF,WAAWvrG,EAAMuH,EAAQ+qD,QAEjD+5C,gBAAiB,SAAyB9kG,GACxC,IAAI/T,EAAYN,YAAW,mBAAoBqU,EAAQ/T,WACnDyhB,EAAU0E,EAAO2yF,gBAAkB3yF,EAAO6xF,qBAAuBjkG,EAAQ9O,SAC7E,OAAoBqY,IAAM7P,cAAc,KAAM,CAC5C8P,IAAKxJ,EAAQwJ,IACbvd,UAAWA,EACXwmB,KAAM,WACL/E,MAIP,OAAoBnE,IAAM7P,cAAcsrG,IAAiB79B,EAAS,CAChE39D,IAAK,SAAa7a,GAChB,OAAOyjB,EAAOqwF,mBAAqB9zG,IAEpCg2G,IAEH,IAAIC,EAAQl2G,KAAKu2G,cACjB,OAAoB17F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,2BACX6C,MAAO,CACL0sE,UAAW9sE,KAAKxB,MAAMo+C,cAAgB,SAE1B/hC,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,mBACXwmB,KAAM,WACLmyF,MAGN,CACDp4G,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,+BAAgC+C,KAAKxB,MAAMg4G,gBAClEx4G,EAASgC,KAAK2jG,eACd3kF,EAAUhf,KAAKy2G,gBACnB,OAAoB57F,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKxB,MAAMo6E,WACpB37E,WAAY,sBACZ0oB,GAAI3lB,KAAKxB,MAAMmnB,GACfC,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdC,WAAYnlB,KAAKxB,MAAM2mB,WACvBC,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKxB,MAAM6mB,OACnBE,SAAUvlB,KAAKxB,MAAM+mB,UACP1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAMq4G,WAClB72C,QAAShgE,KAAKxB,MAAMwhE,SACnBhiE,EAAQghB,MAEZ,CACDlhB,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpB6vG,EA7QiC,CA8QxC74F,aAEE87F,EAA6Bj8F,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACjE,OAAoBD,IAAM7P,cAAc6oG,EAAwBp7B,EAAS,CACvEG,WAAY99D,GACXtc,OAGL,SAASqmB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASkR,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASkqB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIioG,EAAwB,SAAUn9F,GACpCpB,EAAUu+F,EAAUn9F,GAEpB,IAAIC,EAASkL,EAAagyF,GAE1B,SAASA,EAASv4G,GAChB,IAAI+G,EAsCJ,OApCApH,EAAgB6B,KAAM+2G,IAEtBxxG,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZpf,OAAQ,GACR6tF,SAAS,EACTmrB,gBAAgB,GAElBzxG,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM0xG,aAAe1xG,EAAM0xG,aAAal9F,KAAK7B,EAAuB3S,IACpEA,EAAM2xG,YAAc3xG,EAAM2xG,YAAYn9F,KAAK7B,EAAuB3S,IAClEA,EAAM4xG,eAAiB5xG,EAAM4xG,eAAep9F,KAAK7B,EAAuB3S,IACxEA,EAAM6xG,sBAAwB7xG,EAAM6xG,sBAAsBr9F,KAAK7B,EAAuB3S,IACtFA,EAAM8xG,qBAAuB9xG,EAAM8xG,qBAAqBt9F,KAAK7B,EAAuB3S,IACpFA,EAAMuvG,cAAgBvvG,EAAMuvG,cAAc/6F,KAAK7B,EAAuB3S,IACtEA,EAAMuuG,oBAAsBvuG,EAAMuuG,oBAAoB/5F,KAAK7B,EAAuB3S,IAClFA,EAAMwwG,qBAAuBxwG,EAAMwwG,qBAAqBh8F,KAAK7B,EAAuB3S,IACpFA,EAAMmwG,uBAAyBnwG,EAAMmwG,uBAAuB37F,KAAK7B,EAAuB3S,IACxFA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAMoyG,YAAcpyG,EAAMoyG,YAAY59F,KAAK7B,EAAuB3S,IAClEA,EAAMsS,MAAQtS,EAAMsS,MAAMkC,KAAK7B,EAAuB3S,IACtDA,EAAMwhG,UAAYxhG,EAAMwhG,UAAUhtF,KAAK7B,EAAuB3S,IAC9DA,EAAMkvG,eAAiBlvG,EAAMkvG,eAAe16F,KAAK7B,EAAuB3S,IACxEA,EAAMovG,mBAAqBpvG,EAAMovG,mBAAmB56F,KAAK7B,EAAuB3S,IAChFA,EAAMqvG,iBAAmBrvG,EAAMqvG,iBAAiB76F,KAAK7B,EAAuB3S,IAC5EA,EAAMgvG,uBAAyBhvG,EAAMgvG,uBAAuBx6F,KAAK7B,EAAuB3S,IACxFA,EAAM2vG,oBAAsB3vG,EAAM2vG,oBAAoBn7F,KAAK7B,EAAuB3S,IAClFA,EAAM8vG,wBAA0B9vG,EAAM8vG,wBAAwBt7F,KAAK7B,EAAuB3S,IAC1FA,EAAM0uG,uBAAyB1uG,EAAM0uG,uBAAuBl6F,KAAK7B,EAAuB3S,IACxFA,EAAMytE,WAAaztE,EAAMytE,WAAWj5D,KAAK7B,EAAuB3S,IAChEA,EAAMqyG,WAA0B5xF,sBAChCzgB,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EA++BT,OA5+BAzG,EAAai4G,EAAU,CAAC,CACtBj5G,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMihB,UAIX1f,IAAW6uF,SAASv6E,EAAM9V,OAAQ,0BAAqD,UAAzB8V,EAAM9V,OAAOs5G,SAEnE73G,KAAK43G,WAAW7oG,SAAa/O,KAAK43G,WAAW7oG,SAAW/O,KAAK43G,WAAW7oG,QAAQ1L,SAASgR,EAAM9V,UACzGyB,KAAK83G,WAAW1rB,QAEZpsF,KAAKod,MAAM45F,eACbh3G,KAAK+3G,cAEL/3G,KAAKg4G,iBAIV,CACDl6G,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAIsG,EAAS3a,KAEbqU,EAAM4jG,UAEFj4G,KAAKxB,MAAM05G,cAAgBl4G,KAAKod,MAAM45F,gBACxCh3G,KAAKg4G,cAGPh4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGlxE,EAAOnc,MAAMgU,SACfmI,EAAOnc,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAI6M,EAASlhB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACG3qE,EAAO1iB,MAAMiU,QACfyO,EAAO1iB,MAAMiU,OAAO4B,QAIzB,CACDvW,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B+P,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAGhB,CACDhM,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,OAAQA,EAAMM,OAEZ,KAAK,GACH3U,KAAKm4G,UAAU9jG,GACf,MAGF,KAAK,GACHrU,KAAKo4G,QAAQ/jG,GACb,MAGF,KAAK,GACCrU,KAAKod,MAAM45F,eAAgBh3G,KAAK+3G,cAAmB/3G,KAAKg4G,cAC5D3jG,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAK+3G,cACL1jG,EAAMY,iBACN,MAGF,KAAK,GACL,KAAK,EACHjV,KAAK+3G,cACL,MAEF,QACE/3G,KAAKiG,OAAOoO,MAIjB,CACDvW,IAAK,uBACLhC,MAAO,SAA8BuY,GACnC,OAAQA,EAAMM,OAEZ,KAAK,GACH3U,KAAKm4G,UAAU9jG,GACf,MAGF,KAAK,GACHrU,KAAKo4G,QAAQ/jG,GACb,MAGF,KAAK,GACL,KAAK,GACHrU,KAAK+3G,cACL1jG,EAAMY,oBAIX,CACDnX,IAAK,UACLhC,MAAO,SAAiBuY,GAGtB,GAFqBrU,KAAKq4G,oBAEN,CAClB,IAAIC,EAAat4G,KAAKu4G,eAAev4G,KAAKi0G,0BAEtCqE,GACFt4G,KAAKw4G,WAAW,CACd7iG,cAAetB,EACfsL,OAAQ24F,IAKdjkG,EAAMY,mBAEP,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GAGxB,GAFqBrU,KAAKq4G,oBAGxB,IAAKr4G,KAAKod,MAAM45F,gBAAkB3iG,EAAMiB,OACtCtV,KAAKg4G,kBACA,CACL,IAAIS,EAAaz4G,KAAK04G,eAAe14G,KAAKi0G,0BAEtCwE,GACFz4G,KAAKw4G,WAAW,CACd7iG,cAAetB,EACfsL,OAAQ84F,IAMhBpkG,EAAMY,mBAEP,CACDnX,IAAK,iBACLhC,MAAO,SAAwBugE,GAC7B,IAAIg4C,EAAiBr0G,KAAKq4G,oBAE1B,GAAIr4G,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAI4D,GAAwB,IAAXt8C,EAAe,EAAIA,EAAMu8C,MACtCC,GAAyB,IAAXx8C,GAAgB,EAAIA,EAAM18C,OACxCA,EAAS3f,KAAK84G,qBAAqB94G,KAAKu0G,uBAAuBF,EAAesE,IAAcE,GAChG,OAAIl5F,IAA+Bg5F,EAAa,IAAMtE,EAAe15G,OAAeqF,KAAK04G,eAAe,CACtGE,MAAOD,EAAa,EACpBh5F,QAAS,IACI,MAEf,OAAO3f,KAAK84G,qBAAqBzE,EAAgBh4C,KAGpD,CACDv+D,IAAK,uBACLhC,MAAO,SAA8BoT,EAAMmtD,GACzC,IAAIzhE,EAAIyhE,EAAQ,EAEhB,GAAIzhE,IAAMsU,EAAKvU,OACb,OAAO,KAGT,IAAIglB,EAASzQ,EAAKtU,GAClB,OAAIoF,KAAK40G,iBAAiBj1F,GAAgB3f,KAAK84G,qBAAqBl+G,GAAe+kB,IAEpF,CACD7hB,IAAK,iBACLhC,MAAO,SAAwBugE,GAC7B,IAAe,IAAXA,EACF,OAAO,KAGT,IAAIg4C,EAAiBr0G,KAAKq4G,oBAE1B,GAAIr4G,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAI4D,EAAat8C,EAAMu8C,MACnBC,EAAcx8C,EAAM18C,OACpBA,EAAS3f,KAAK+4G,qBAAqB/4G,KAAKu0G,uBAAuBF,EAAesE,IAAcE,GAChG,OAAIl5F,IAA+Bg5F,EAAa,EAAU34G,KAAKu4G,eAAe,CAC5EK,MAAOD,EAAa,EACpBh5F,OAAQ3f,KAAKu0G,uBAAuBF,EAAesE,EAAa,IAAIh+G,SACvD,MAEf,OAAOqF,KAAK+4G,qBAAqB1E,EAAgBh4C,KAGpD,CACDv+D,IAAK,uBACLhC,MAAO,SAA8BoT,EAAMmtD,GACzC,IAAIzhE,EAAIyhE,EAAQ,EAEhB,GAAIzhE,EAAI,EACN,OAAO,KAGT,IAAI+kB,EAASzQ,EAAKtU,GAClB,OAAIoF,KAAK40G,iBAAiBj1F,GAAgB3f,KAAKu4G,eAAe39G,GAAe+kB,IAE9E,CACD7hB,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAIsN,EAAS3hB,KAETA,KAAKg5G,eACPjjG,aAAa/V,KAAKg5G,eAGpB,IAAIC,EAAO5kG,EAAMvW,IAKjB,GAJAkC,KAAKk5G,mBAAqBl5G,KAAKm5G,kBAC/Bn5G,KAAKm5G,kBAAoBF,EACrBj5G,KAAKk5G,qBAAuBl5G,KAAKm5G,kBAAmBn5G,KAAKo5G,YAAcp5G,KAAKm5G,kBAAuBn5G,KAAKo5G,YAAcp5G,KAAKo5G,YAAcp5G,KAAKo5G,YAAcH,EAAOA,EAEnKj5G,KAAKo5G,YAAa,CACpB,IAAIC,EAAcr5G,KAAKi0G,yBACnBqF,EAAYt5G,KAAKxB,MAAMu2G,iBAAmB/0G,KAAKu5G,oBAAoBF,GAAer5G,KAAKw5G,eAAeH,GAEtGC,IACFt5G,KAAKw4G,WAAW,CACd7iG,cAAetB,EACfsL,OAAQ25F,IAEVt5G,KAAKy5G,uBAAwB,GAIjCz5G,KAAKg5G,cAAgBnwG,YAAW,WAC9B8Y,EAAOy3F,YAAc,OACpB,OAEJ,CACDt7G,IAAK,eACLhC,MAAO,SAAsBugE,GAC3B,IAAI18C,EAEJ,GAAI3f,KAAKo5G,YAAa,CACpB,IAAI/E,EAAiBr0G,KAAKq4G,qBAC1B14F,EAAS3f,KAAK05G,oBAAoBr9C,EAAOg4C,EAAe15G,WAGtDglB,EAAS3f,KAAK05G,oBAAoB,EAAGr9C,IAIzC,OAAO18C,IAER,CACD7hB,IAAK,sBACLhC,MAAO,SAA6B8Z,EAAO9C,GAGzC,IAFA,IAAIuhG,EAAiBr0G,KAAKq4G,oBAEjBz9G,EAAIgb,EAAOhb,EAAIkY,EAAKlY,IAAK,CAChC,IAAI++G,EAAMtF,EAAez5G,GAEzB,GAAIoF,KAAK45G,mBAAmBD,GAC1B,OAAOA,EAIX,OAAO,OAER,CACD77G,IAAK,sBACLhC,MAAO,SAA6BugE,GAOlC,IANA,IAAIg9C,GAAyB,IAAXh9C,EAAe,CAC/Bu8C,MAAO,EACPj5F,QAAS,GACP08C,EACAg4C,EAAiBr0G,KAAKq4G,oBAEjBz9G,EAAIy+G,EAAYT,MAAOh+G,EAAIy5G,EAAe15G,OAAQC,IAGzD,IAFA,IAAIi/G,EAAe75G,KAAKu0G,uBAAuBF,EAAez5G,IAErDqZ,EAAIolG,EAAYT,QAAUh+G,EAAIy+G,EAAY15F,OAAS,EAAI,EAAG1L,EAAI4lG,EAAal/G,OAAQsZ,IAC1F,GAAIjU,KAAK45G,mBAAmBC,EAAa5lG,IACvC,OAAO4lG,EAAa5lG,GAK1B,IAAK,IAAI/Y,EAAK,EAAGA,GAAMm+G,EAAYT,MAAO19G,IAGxC,IAFA,IAAI4+G,EAAgB95G,KAAKu0G,uBAAuBF,EAAen5G,IAEtD6+G,EAAK,EAAGA,GAAMV,EAAYT,QAAU19G,EAAKm+G,EAAY15F,OAASm6F,EAAcn/G,QAASo/G,IAC5F,GAAI/5G,KAAK45G,mBAAmBE,EAAcC,IACxC,OAAOD,EAAcC,GAK3B,OAAO,OAER,CACDj8G,IAAK,qBACLhC,MAAO,SAA4B6jB,GAEjC,OADY3f,KAAKy0G,eAAe90F,GAAQxP,kBAAkBnQ,KAAKxB,MAAMuR,cACxDiqG,WAAWh6G,KAAKo5G,YAAYjpG,kBAAkBnQ,KAAKxB,MAAMuR,iBAEvE,CACDjS,IAAK,wBACLhC,MAAO,SAA+BuY,GAChCrU,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EAAMsB,cACrB7Z,MAAOuY,EAAM9V,OAAOzC,MACpBqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOuY,EAAM9V,OAAOzC,WAK3B,CACDgC,IAAK,uBACLhC,MAAO,SAA8BuY,GACnC,IAAIiO,EAAStiB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACDvpE,EAAOy1F,cAEHz1F,EAAO9jB,MAAMgU,SACf8P,EAAO9jB,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,gBACLhC,MAAO,SAAuBuY,GACfA,EAAMsL,OAEPF,WACVzf,KAAKw4G,WAAWnkG,GAChBrU,KAAK83G,WAAW1rB,SAGlBpsF,KAAK+3G,gBAEN,CACDj6G,IAAK,sBACLhC,MAAO,SAA6BuY,GAClC,IAAIoO,EAASziB,KAEThC,EAASqW,EAAM9V,OAAOzC,MAC1BkE,KAAKwd,SAAS,CACZxf,OAAQA,IACP,WACGykB,EAAOjkB,MAAM4jG,UACf3/E,EAAOjkB,MAAM4jG,SAAS,CACpBzsF,cAAetB,EACfrW,OAAQA,SAKf,CACDF,IAAK,yBACLhC,MAAO,SAAgC6J,GACrC3F,KAAK23G,YAAYhyG,KAElB,CACD7H,IAAK,cACLhC,MAAO,SAAqB6J,GAC1B,IAAI2d,EAAStjB,KAGbA,KAAKwd,SAAS,CACZxf,OAFW,KAGV,WACDslB,EAAO9kB,MAAM4jG,UAAY9+E,EAAO9kB,MAAM4jG,SAAS,CAC7CpkG,OALS,KAOX2H,GAAYA,SAGf,CACD7H,IAAK,QACLhC,MAAO,SAAeuY,GAChBrU,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,WAAO2J,EACP0mF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,WAAO2J,KAKbzF,KAAKi6G,wBAEN,CACDn8G,IAAK,aACLhC,MAAO,SAAoBuY,GAGzB,GAF4BrU,KAAKk6G,sBAEH7lG,EAAMsL,OAAQ,CAC1C3f,KAAKi6G,oBAAoB5lG,EAAMsL,QAC/B,IAAIw6F,EAAcn6G,KAAKo6G,eAAe/lG,EAAMsL,QAExC3f,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EAAMsB,cACrB7Z,MAAOq+G,EACPhuB,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOq+G,QAMhB,CACDr8G,IAAK,oBACLhC,MAAO,WACL,IAAIugE,EAAQr8D,KAAKi0G,yBACbI,EAAiBr0G,KAAKq4G,oBAC1B,OAAkB,IAAXh8C,EAAer8D,KAAKxB,MAAMu2G,iBAAmB/0G,KAAKu0G,uBAAuBF,EAAeh4C,EAAMu8C,QAAQv8C,EAAM18C,QAAU00F,EAAeh4C,GAAS,OAEtJ,CACDv+D,IAAK,yBACLhC,MAAO,WACL,IAAIu4G,EAAiBr0G,KAAKq4G,oBAE1B,GAAwB,MAApBr4G,KAAKxB,MAAM1C,OAAiBu4G,EAAgB,CAC9C,IAAIr0G,KAAKxB,MAAMu2G,iBAYb,OAAO/0G,KAAKq6G,sBAAsBr6G,KAAKxB,MAAM1C,MAAOu4G,GAXpD,IAAK,IAAIz5G,EAAI,EAAGA,EAAIy5G,EAAe15G,OAAQC,IAAK,CAC9C,IAAI0/G,EAAsBt6G,KAAKq6G,sBAAsBr6G,KAAKxB,MAAM1C,MAAOkE,KAAKu0G,uBAAuBF,EAAez5G,KAElH,IAA6B,IAAzB0/G,EACF,MAAO,CACL1B,MAAOh+G,EACP+kB,OAAQ26F,IASlB,OAAQ,IAET,CACDx8G,IAAK,wBACLhC,MAAO,SAA+BA,EAAOoT,GAG3C,IAFA,IAAIpR,EAAMkC,KAAKu6G,cAEN3/G,EAAI,EAAGA,EAAIsU,EAAKvU,OAAQC,IAC/B,GAAI+S,IAAY0B,OAAOvT,EAAOkE,KAAKo6G,eAAelrG,EAAKtU,IAAKkD,GAC1D,OAAOlD,EAIX,OAAQ,IAET,CACDkD,IAAK,aACLhC,MAAO,SAAoB6jB,GACzB,OAAOhS,IAAY0B,OAAOrP,KAAKxB,MAAM1C,MAAOkE,KAAKo6G,eAAez6F,GAAS3f,KAAKu6G,iBAE/E,CACDz8G,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM27G,YAAc,KAAOn6G,KAAKxB,MAAM2Q,UAEnD,CACDrR,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,iBACLhC,MAAO,SAAwB6J,GAC7BmR,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAKw6G,eACL70G,GAAYA,MAEb,CACD7H,IAAK,mBACLhC,MAAO,SAA0B6J,GAC/B3F,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBACL/0G,GAAYA,IACZ3F,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,kBACLhC,MAAO,WACDkE,KAAKxB,MAAMR,QAAUgC,KAAKxB,MAAMq8G,mBAClC76G,KAAK23G,cAGP7gG,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,eACLhC,MAAO,WACLiE,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAAS/O,KAAK+vB,MAAM9V,cAAeja,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAE9G,CACDlG,IAAK,eACLhC,MAAO,WACL,IAAIg/G,EAAgB/6G,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,kBAE/D+rG,GACFA,EAAcC,eAAe,CAC3BC,MAAO,UACPC,OAAQ,YAIb,CACDn9G,IAAK,4BACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCqP,EAAOtG,MAAM45F,gBAAkBtzF,EAAOwvE,iBAAiB7+E,IACzDqP,EAAOq0F,eAIXr3G,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAI6nB,EAAS3jB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK8J,WAAW,WACjE6Z,EAAOvG,MAAM45F,gBACfrzF,EAAOo0F,kBAKb/3G,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAIq/G,EAAUn7G,KAETA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChBD,EAAQ/9F,MAAM45F,iBAAmBj3G,IAAWs7G,iBAC9CF,EAAQpD,eAIZn3G,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAK8J,aAAe9J,KAAK8J,UAAUypF,WAAWl/E,EAAM9V,SAAWyB,KAAKs7G,eAAejnG,IAAUrU,KAAK8J,UAAUzG,SAASgR,EAAM9V,SAAWyB,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,QAAQ1L,SAASgR,EAAM9V,WAExM,CACDT,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,OAAOtU,IAAW6uF,SAASv6E,EAAM9V,OAAQ,2BAE1C,CACDT,IAAK,sBACLhC,MAAO,SAA6B6jB,GAC9B3f,KAAK+vB,QACP/vB,KAAK+vB,MAAMj0B,MAAQ6jB,EAAS3f,KAAKy0G,eAAe90F,GAAU3f,KAAKxB,MAAM1C,OAAS,MAGjF,CACDgC,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAMpf,QAAUgC,KAAKod,MAAMpf,OAAOsS,OAAO3V,OAAS,IAE/D,CACDmD,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAMg2G,YAAc7mG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAMg2G,aAAe70F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAM27G,YAAcxsG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM27G,aAAex6F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,qBACLhC,MAAO,SAA4B6jB,GACjC,OAAO3f,KAAKxB,MAAM2Q,QAAUxB,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM2Q,SAAWnP,KAAKy0G,eAAe90F,KAE5G,CACD7hB,IAAK,mBACLhC,MAAO,SAA0B6jB,GAC/B,OAAI3f,KAAKxB,MAAM+8G,eACN5tG,IAAY5G,WAAW/G,KAAKxB,MAAM+8G,gBAAkBv7G,KAAKxB,MAAM+8G,eAAe57F,GAAUhS,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM+8G,mBAG1I57F,QAAiCla,IAAvBka,EAAM,WAA6BA,EAAM,WAE3D,CACD7hB,IAAK,0BACLhC,MAAO,SAAiCw4G,GACtC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,yBACLhC,MAAO,SAAgCw4G,GACrC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMg9G,uBAE7D,CACD19G,IAAK,gBACLhC,MAAO,WACL,OAAOkE,KAAK8rF,SAAS/8E,QAAQ0sG,kBAE9B,CACD39G,IAAK,oBACLhC,MAAO,WACL,GAAIkE,KAAK+mG,YAAa,CACpB,IAAIl3F,EAAc7P,KAAKod,MAAMpf,OAAOsS,OAAOH,kBAAkBnQ,KAAKxB,MAAMuR,cACpE2rG,EAAe17G,KAAKxB,MAAMm9G,SAAW37G,KAAKxB,MAAMm9G,SAAS54G,MAAM,KAAO,CAAC/C,KAAKxB,MAAMg2G,aAAe,SAErG,GAAIx0G,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAGI3tG,EAHAw0G,EAAiB,GAEjBl0G,EAAY+H,EAA2BzP,KAAKxB,MAAM8S,SAGtD,IACE,IAAK5J,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAIigH,EAAWz0G,EAAMtL,MACjBggH,EAAqBlsG,IAAY5R,OAAOgC,KAAKu0G,uBAAuBsH,GAAWH,EAAc7rG,EAAa7P,KAAKxB,MAAMsR,gBAAiB9P,KAAKxB,MAAMuR,cAEjJ+rG,GAAsBA,EAAmBnhH,QAC3CihH,EAAe//G,KAAKipB,EAAcA,EAAc,GAAI+2F,GAAW,CAC7D3F,MAAO4F,MAIb,MAAO//G,GACP2L,EAAUlI,EAAEzD,GAZd,QAcE2L,EAAUjI,IAGZ,OAAOm8G,EAEP,OAAOhsG,IAAY5R,OAAOgC,KAAKxB,MAAM8S,QAASoqG,EAAc7rG,EAAa7P,KAAKxB,MAAMsR,gBAAiB9P,KAAKxB,MAAMuR,cAGlH,OAAO/P,KAAKxB,MAAM8S,UAGrB,CACDxT,IAAK,mBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMg8B,UAAYx6B,KAAK+vB,MAAO,CACrC,IAAIgsF,EAAiB/7G,KAAKk6G,oBAEtBp+G,GADQigH,EAAiB/7G,KAAKy0G,eAAesH,GAAkB,OAC9C/7G,KAAKxB,MAAM1C,OAAS,GACzCkE,KAAK+vB,MAAMj0B,MAAQA,KAGtB,CACDgC,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMw9G,WAAah8G,KAAK83G,YAC/B93G,KAAK83G,WAAW1rB,QAGdpsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,gBAGPh5E,KAAKi8G,mBACLj8G,KAAK8rF,SAAS/8E,QAAQilG,cAAgB,IAEvC,CACDl2G,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGb/4E,KAAKk8G,cACPnmG,aAAa/V,KAAKk8G,aAClBl8G,KAAKk8G,YAAc,MAGrBplG,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BxjB,KAAKod,MAAM45F,iBACTh3G,KAAKxB,MAAMR,QACbgC,KAAKw6G,eAGHh3F,EAAU1nB,QAAUkE,KAAKxB,MAAM1C,OACjCkE,KAAKm8G,gBAIL34F,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAAO6F,EAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,kBAG7Ch5E,KAAKod,MAAMpf,QAAYgC,KAAKxB,MAAM8S,SAAyC,IAA9BtR,KAAKxB,MAAM8S,QAAQ3W,QAClEqF,KAAKwd,SAAS,CACZxf,OAAQ,KAIZgC,KAAKi8G,mBACLj8G,KAAK8rF,SAAS/8E,QAAQilG,cAAgB,IAEvC,CACDl2G,IAAK,qBACLhC,MAAO,SAA4BigH,GACjC,IAAIK,EAAiCvhG,IAAM7P,cAAc,SAAU,CACjElP,MAAO,IACNkE,KAAKxB,MAAMolG,aACVjkF,EAASo8F,EAA8BlhG,IAAM7P,cAAc,SAAU,CACvElP,MAAOigH,EAAejgH,OACrBkE,KAAKy0G,eAAesH,IAAmB,KAC1C,OAAoBlhG,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,gDACGsd,IAAM7P,cAAc,SAAU,CAC5C8P,IAAK9a,KAAK8rF,SACVe,SAAU7sF,KAAKxB,MAAMquF,SACrBpwF,KAAMuD,KAAKxB,MAAM/B,KACjBqoE,UAAW,EACX,cAAe,QACds3C,EAAmBz8F,MAEvB,CACD7hB,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,uBACLhC,MAAO,WACL,IAAIugH,EAAUr8G,KAEd,OAAoB6a,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK,SAAa7a,GAChB,OAAOo8G,EAAQvE,WAAa73G,GAE9B6jB,GAAI9jB,KAAKxB,MAAMmuF,QACfnvF,KAAM,OACN6U,UAAU,EACV,gBAAiB,UACjBG,QAASxS,KAAKi3G,aACdxkG,OAAQzS,KAAKk3G,YACbziG,UAAWzU,KAAKm3G,eAChB13F,SAAUzf,KAAKxB,MAAMihB,SACrBqlD,SAAU9kE,KAAKxB,MAAMsmE,SACrB,aAAc9kE,KAAKxB,MAAM89G,UACzB,kBAAmBt8G,KAAKxB,MAAMkuF,oBAGjC,CACD5uF,IAAK,cACLhC,MAAO,SAAqBigH,GAC1B,IAAIQ,EAAUv8G,KAEVu5E,EAAQwiC,EAAiB/7G,KAAKy0G,eAAesH,GAAkB,KAEnE,GAAI/7G,KAAKxB,MAAMg8B,SAAU,CACvB,IAAI1+B,EAAQy9E,GAASv5E,KAAKxB,MAAM1C,OAAS,GACzC,OAAoB+e,IAAM7P,cAAc,QAAS,CAC/C8P,IAAK,SAAa7a,GAChB,OAAOs8G,EAAQxsF,MAAQ9vB,GAEzBzC,KAAM,OACN+8E,aAAcz+E,EACdyB,UAAW,+BACXkiB,SAAUzf,KAAKxB,MAAMihB,SACrBmkF,YAAa5jG,KAAKxB,MAAMolG,YACxBC,UAAW7jG,KAAKxB,MAAMqlG,UACtB7tF,QAAShW,KAAKo3G,sBACd5kG,QAASxS,KAAKq3G,qBACd5kG,OAAQzS,KAAKk3G,YACb,aAAcl3G,KAAKxB,MAAM89G,UACzB,kBAAmBt8G,KAAKxB,MAAMkuF,eAC9B,gBAAiB,YAGnB,IAAInvF,EAAYN,YAAW,+BAAgC,CACzD,gBAA2B,OAAVs8E,GAAkBv5E,KAAKxB,MAAMolG,YAC9C,yBAAoC,OAAVrqB,IAAmBv5E,KAAKxB,MAAMolG,cAEtD5kF,EAAUhf,KAAKxB,MAAMg+G,cAAgB7uG,IAAY8rE,cAAcz5E,KAAKxB,MAAMg+G,cAAeT,EAAgB/7G,KAAKxB,OAAS+6E,GAASv5E,KAAKxB,MAAMolG,aAAe,QAC9J,OAAoB/oF,IAAM7P,cAAc,OAAQ,CAC9C8P,IAAK,SAAa7a,GAChB,OAAOs8G,EAAQxsF,MAAQ9vB,GAEzB1C,UAAWA,GACVyhB,KAGN,CACDlhB,IAAK,kBACLhC,MAAO,WACL,OAAwB,MAApBkE,KAAKxB,MAAM1C,OAAiBkE,KAAKxB,MAAMi+G,YAAcz8G,KAAKxB,MAAMihB,SAC9C5E,IAAM7P,cAAc,IAAK,CAC3CzN,UAAW,oCACXyiE,QAAShgE,KAAK6X,QAIX,OAER,CACD/Z,IAAK,qBACLhC,MAAO,WACL,IAAI4gH,EAAU18G,KAEVmxF,EAAgBl0F,YAAW,sCAAuC+C,KAAKxB,MAAMm+G,cACjF,OAAoB9hG,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOy8G,EAAQl3E,QAAUvlC,GAE3B1C,UAAW,qBACXwmB,KAAM,SACN,gBAAiB,UACjB,gBAAiB/jB,KAAKod,MAAM45F,gBACdn8F,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,OAGd,CACDrzF,IAAK,SACLhC,MAAO,WACL,IAAI8gH,EAAU58G,KAEVzC,EAAYN,YAAW,wCAAyC+C,KAAKxB,MAAMjB,UAAW,CACxF,aAAcyC,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,QACtB,uBAAwB7rF,KAAKxB,MAAMi+G,YAAcz8G,KAAKxB,MAAMihB,SAC5D,wBAAyBzf,KAAKxB,MAAM1C,MACpC,uBAAwBkE,KAAKod,MAAMyuE,SAAW7rF,KAAKod,MAAM45F,iBAEvD3C,EAAiBr0G,KAAKq4G,oBACtB0D,EAAiB/7G,KAAKk6G,oBACtB2C,EAAe78G,KAAK88G,mBAAmBf,GACvCgB,EAAiB/8G,KAAKg9G,uBACtBC,EAAej9G,KAAK+5E,YAAYgiC,GAChCY,EAAe38G,KAAKk9G,qBACpBvH,EAAY31G,KAAKm9G,kBACrB,OAAoBtiG,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfhJ,IAAK,SAAa7a,GAChB,OAAO28G,EAAQ9yG,UAAY7J,GAE7B1C,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKggE,QACdlmD,YAAa9Z,KAAKxB,MAAMsb,YACxB2yE,cAAezsF,KAAKxB,MAAMiuF,eACzBswB,EAAgBF,EAAcI,EAActH,EAAWgH,EAA2B9hG,IAAM7P,cAAc8rG,EAAer+B,EAAS,CAC/H39D,IAAK9a,KAAK43G,WACVvD,eAAgBA,GACfr0G,KAAKxB,MAAO,CACbwhE,QAAShgE,KAAKs3G,aACdxC,cAAe90G,KAAK80G,cACpBjlG,YAAa7P,KAAKod,MAAMpf,OACxB+oG,UAAW/mG,KAAK+mG,UAChB2O,uBAAwB11G,KAAK01G,uBAC7BK,qBAAsB/1G,KAAK+1G,qBAC3BjC,oBAAqB9zG,KAAK8zG,oBAC1BW,eAAgBz0G,KAAKy0G,eACrBE,mBAAoB30G,KAAK20G,mBACzBC,iBAAkB50G,KAAK40G,iBACvBL,uBAAwBv0G,KAAKu0G,uBAC7BW,oBAAqBl1G,KAAKk1G,oBAC1BG,wBAAyBr1G,KAAKq1G,wBAC9BriC,WAAYhzE,KAAKgzE,WACjBihC,uBAAwBj0G,KAAKi0G,uBAC7BtuF,GAAI3lB,KAAKod,MAAM45F,eACf9xF,QAASllB,KAAKu3G,eACdnyF,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,wBAKdX,EA3hCmB,CA4hC1B/7F,aAEFxK,EAAgBumG,EAAU,eAAgB,CACxCjzF,GAAI,KACJgoE,SAAU,KACVrvF,KAAM,KACNX,MAAO,KACPwV,QAAS,KACTkjG,YAAa,KACb2F,YAAa,KACboB,eAAgB,KAChBxG,iBAAkB,KAClByG,oBAAqB,KACrBvG,oBAAqB,KACrBuH,cAAe,KACf3H,aAAc,KACdz0G,MAAO,KACP7C,UAAW,KACXy4G,uBAAwB,KACxBp5D,aAAc,QACd5+C,QAAQ,EACR29G,SAAU,KACV7rG,gBAAiB,WACjBwrE,kBAAmB,KACnBvrE,kBAActK,EACdw7F,aAAc,mBACduU,mBAAoB,mBACpBh7E,UAAU,EACVopE,YAAa,KACb/W,UAAU,EACVptE,UAAU,EACVzb,SAAU,KACV8gE,SAAU,KACVk3C,WAAW,EACX7H,sBAAsB,EACtB0G,mBAAmB,EACnBpF,iBAAiB,EACjBe,eAAgB,KAChBK,WAAY,KACZ1nG,QAAS,KACTw9E,QAAS,KACT8vB,WAAW,EACX5Y,UAAW,KACX9qB,QAAS,KACTE,eAAgB,KAChBqjC,UAAW,KACX5vB,eAAgB,KAChBkqB,kBAAmB,KACnB+F,aAAc,qBACdzE,aAAa,EACb3lG,SAAU,KACVC,QAAS,KACTC,OAAQ,KACRqH,YAAa,KACb2yE,cAAe,KACf1rE,OAAQ,KACRU,OAAQ,KACR2gF,SAAU,Q,6BCvjDG,SAAS3pB,IAetB,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAf9B,mC,6BCAA,+CAEA,SAAS0nB,EAAQnU,EAAQC,GACvB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAEvB,GAAItU,OAAOwU,sBAAuB,CAChC,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GACvCC,IAAgBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GACrD,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAEtD+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAGxB,OAAOpC,EAGM,SAAS2uG,EAAe7+G,GACrC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAE/CA,EAAI,EACNiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAC9C,YAAeS,EAAQT,EAAKmT,EAAOnT,OAE5B1B,OAAO+U,0BAChB/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAEjE4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GACxC1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAKjF,OAAOS,I,qYC9BH8+G,EAAqB,SAAA5gH,G,IACnB2pB,EAAUF,c,OAChBE,gBAEA,GCLIk3F,EAA+BD,EAArC,kBCAMj3F,EAAwBi3F,EAA9B,UCQME,c,WAKJ,G,2BACE,UAEA,MAAa,CACXn8C,SAAU5iE,UAAc4iE,U,EAQ1B,c,EACA,sBAEK5iE,EAAL,gB,EACE,SAAgBA,EAAA,gBAAqB,SAAA4iE,GAC/B,EAAJ,W,EACE,SAAc,CAAEA,a,EAEhB,uB,qBAxBDo8C,iBAAP,Y,MACS,CAAEC,KAAF,IAAa52F,IAAb,IAAuBvX,OAAvB,GAAmCouG,QAAsB,MAAbC,I,2BA6BrD14D,6B,KACE,cAEIjlD,KAAJ,kB,KACE,SAAc,CAAEohE,SAAUphE,KAAK49G,oB,EAInCx4D,gCACMplD,KAAJ,W,KACE,W,KACA,c,KACA,wB,EAIJse,kB,OAEI,kBAACu/F,EAAD,UACE/hH,MAAO,CACLgiH,QAAS99G,KAAKxB,MADT,QAEL4iE,SAAUphE,KAAKod,MAFV,SAGL5R,MAAO+xG,mBAAwBv9G,KAAKod,MAAMgkD,SAHrC,UAIL28C,cAAe/9G,KAAKxB,MAAMu/G,gBAG5B,kBAACC,EAAD,UACEx7G,SAAUxC,KAAKxB,MAAMgE,UADvB,KAEE1G,MAAOkE,KAAKxB,MAAMs/G,Y,EA3DtBP,CAAe1iG,IAAMG,WCAAH,IAAMG,UCRTH,IAAMG,UCA9B,IAAMijG,EAAN,GAEIC,EAAJ,EAuBA,SAASC,EAAUR,EAAUrsG,QAAc,IAAdA,MAAU,KACd,kBAAZA,GAAwBxW,cAAnC,MACEwW,EAAU,CAAEmsG,KAAMnsG,I,MAFqB,EAKjCmsG,EALiC,O,IAAA,MAK3BW,OAL2B,S,IAAA,OAKZC,OALY,S,IAAA,UAKIC,OALJ,S,MAO3B,GAAGvgH,OAAjB,GAEO,QAAa,c,IACb0/G,GAAL,KAAaA,EAAa,OAAO,K,GACjC,EAAa,OAAOtyG,E,MAhCxB,c,IACQozG,EAAW,GAAGjtG,EAAN,IAAoBA,EAApB,OAAqCA,EAAnD,UACMktG,EAAYP,OAAoBA,KAAtC,I,GAEIO,EAAJ,GAAqB,OAAOA,EAAP,G,IAEf/vG,EAAN,GAEMK,EAAS,CAAE2vG,OADFC,IAAajB,EAAMhvG,EAAlC,GACyBA,Q,OAErByvG,EAbN,MAcIM,OACAN,KAGF,EAmB2BS,CAAYlB,EAAM,CACzC3qG,IADyC,EAEzCurG,OAFyC,EAGzCC,cAHMG,EAJ6B,SAIrBhwG,EAJqB,OAS/BjD,EAAQizG,OAAd,G,IAEA,EAAY,OAAO,K,IAEZ53F,EAAkBrb,EAbY,GAatBozG,EAAUpzG,EAbY,SAc/BkyG,EAAUC,IAAhB,E,OAEIS,IAAJ,EAA8B,KAEvB,CACLX,KADK,EAEL52F,IAAK42F,cAAgB52F,EAAhB42F,IAFA,EAGLC,QAHK,EAILpuG,OAAQb,EAAA,QAAY,gB,OAClBowG,EAAK/gH,EAAL+gH,MAAiBD,EAAjBC,GACA,IAFM,OAtBZ,M,ICPIC,c,sFACJxgG,kB,kBAEI,kBAACu/F,EAAD,eACG,YACC,mB,IAEMz8C,EAAW,kBAAuBh7C,EAAxC,SACM5a,EAAQ,sBACV,QADU,cAEV,aACA2yG,EAAU/8C,EAAD,SAAoB,EAD7B,OAEAh7C,EAJJ,MAMM5nB,EAAQ,OAAH,IAAG,CAAH,MAAiB4iE,SAAjB,EAA2B51D,U,EAEA,EAZ5B,MAYJhJ,EAZI,WAYM8gD,EAZN,YAYiBhlC,EAZjB,S,OAgBNxjB,kBAxCd,SAAyB0H,G,OACvB,IAAOqY,sBAuCgCkkG,CAA/B,KACEv8G,QAIA,kBAACq7G,EAAD,UAAwB/hH,MAAO0C,GAC5BA,QACGgE,EACsB,oBAAbA,EAGHA,EAHJ,GADM,EAMN8gD,EACAzoC,oBADS,GAETyD,EACAA,EADM,GATX9f,KAYuB,oBAAbgE,EAGLA,EAHF,GAdR,U,EAxBJs8G,CAAcjkG,IAAMG,WCrB1B,SAASgkG,EAAgBvB,G,MAChBA,oBAAgC,IAAvC,EAYF,SAASwB,EAAcC,EAAU99C,G,IAC/B,EAAe,OAAOA,E,IAEhB+9C,EAAOH,EAAb,G,OAEA,IAAI59C,sBAA8CA,E,eAElD,GAEEu8C,SAAUv8C,kBAAyB+9C,EAAzB/9C,UAId,SAASg+C,EAAUh+C,G,MACU,kBAAbA,EAAwBA,EAAWi+C,YAAjD,GAGF,SAASC,EAAcC,G,OACd,WACLC,iBAIJ,SAASC,KAQkB5kG,IAAMG,UCzCZH,IAAMG,UCD3B,SAAS0kG,EAAW1kG,G,IACZ2kG,EAAc,eAAc3kG,eAAyBA,EAA1C,MAAjB,IACM4kG,EAAI,SAAAphH,G,IACAqhH,EAA2CrhH,EADlC,oBACeshH,EADf,uC,OAIf,kBAACjC,EAAD,eACG,SAAAz3F,G,OACC,mBAKE,wCAGEtL,IAAK+kG,S,OAQjBD,gBACAA,qBAYOG,IAAaH,EAApB,GCxCF,IAAMI,EAAanlG,IAAnB,WAEO,SAASolG,I,OAQPD,EAAP,GAGK,SAASE,I,OAQPF,KAAP,W,8BC1BF,SAASG,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAcxC,IAEEC,+BAA+BD,SAASA,GACxC,MAAOpkH,GAGP+iB,QAAQjU,MAAM9O,IAOhBokH,GACA9lH,EAAOC,QAAUC,EAAQ,M,6BClC3B,6DASA,SAAS+D,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIuxG,EAA2B,SAAUzmG,IApEzC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAU6nG,EAAazmG,GAEvB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAas7F,GAE1B,SAASA,EAAY7hH,GACnB,IAAI+G,EAUJ,OA3HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMqgH,IAEtB96G,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,GACd7X,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAkJT,OA7PoBlH,EA8GPgiH,EA9GoBthH,EA8GP,CAAC,CACzBjB,IAAK,SACLhC,MAAO,SAAgB0D,GACrBQ,KAAK8rF,SAAS/8E,QAAQm9E,SAAU,EAChClsF,KAAKggE,QAAQxgE,KAEd,CACD1B,IAAK,UACLhC,MAAO,SAAiB0D,IACjBQ,KAAKxB,MAAMihB,UAAYzf,KAAKxB,MAAM+T,WACrCvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAenW,EACf1D,MAAOkE,KAAKxB,MAAM1C,MAClBowF,SAAUlsF,KAAKxB,MAAM0tF,QACrBC,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOkE,KAAKxB,MAAM1C,MAClBowF,SAAUlsF,KAAKxB,MAAM0tF,WAGzBlsF,KAAK8rF,SAAS/8E,QAAQm9E,SAAWlsF,KAAKxB,MAAM0tF,QAC5ClsF,KAAK8rF,SAAS/8E,QAAQq9E,WAGzB,CACDtuF,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OA3FvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EA2F/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETA,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,UACjC/O,KAAK8rF,SAAS/8E,QAAQm9E,QAAUlsF,KAAKxB,MAAM0tF,SAG7C,IAAII,EAAiBrvF,YAAW,4BAA6B,CAC3D,wBAAyB+C,KAAKxB,MAAM0tF,QACpC,yBAA0BlsF,KAAKxB,MAAMihB,SACrC,wBAAyBzf,KAAKod,MAAMyuE,SACnC7rF,KAAKxB,MAAMjB,WACVgvF,EAAWtvF,YAAW,oBAAqB,CAC7C,cAAe+C,KAAKxB,MAAM0tF,QAC1B,aAAclsF,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,UAExB,OAAoBhxE,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAOpY,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAW+uF,EACXlsF,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKggE,SACAnlD,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACVhoE,GAAI9jB,KAAKxB,MAAMmuF,QACfnvF,KAAM,QACN,kBAAmBwC,KAAKxB,MAAMkuF,eAC9BjwF,KAAMuD,KAAKxB,MAAM/B,KACjBmwF,eAAgB5sF,KAAKxB,MAAM0tF,QAC3B15E,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbgN,SAAUzf,KAAKxB,MAAMihB,SACrBotE,SAAU7sF,KAAKxB,MAAMquF,SACrB/nB,SAAU9kE,KAAKxB,MAAMsmE,YACLjqD,IAAM7P,cAAc,MAAO,CAC3CzN,UAAWgvF,EACXzxE,IAAK,SAAa7a,GAChB0a,EAAOmyE,IAAM7sF,GAEf8jB,KAAM,QACN,eAAgB/jB,KAAKxB,MAAM0tF,SACbrxE,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,4BAvPbwB,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA2PzCqhH,EAlKsB,CAmK7BrlG,aAEFxK,EAAgB6vG,EAAa,eAAgB,CAC3Cv8F,GAAI,KACJgoE,SAAU,KACVa,QAAS,KACTlwF,KAAM,KACNX,MAAO,KACPowF,SAAS,EACT9rF,MAAO,KACP7C,UAAW,KACXkiB,UAAU,EACVotE,UAAU,EACV/nB,SAAU,KACViU,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBn6E,SAAU,Q,6BClSG,SAAS8F,EAAgBpc,EAAGkZ,GAMzC,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GCLb,SAASmrG,EAAe7nG,EAAUC,GAC/CD,EAASpc,UAAYD,OAAOuc,OAAOD,EAAWrc,WAC9Coc,EAASpc,UAAUG,YAAcic,EACjC,EAAeA,EAAUC,G,iDCF3Bre,EAAOC,QAAU,SAAUimH,GACzB,MAA2B,oBAAbA,I,6BCHhB,6DASA,SAASjiH,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B0kH,EAAoB,SAAU5mG,IAhElC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUgoG,EAAM5mG,GAEhB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAay7F,GAE1B,SAASA,EAAKhiH,GACZ,IAAI+G,EAUJ,OAvHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAMwgH,IAEtBj7G,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAS,GAEX/X,EAAMy+C,MAAQz+C,EAAMy+C,MAAMjqC,KAAK7B,EAAuB3S,IACtDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EA4FT,OAnMoBlH,EA0GPmiH,GA1GoBzhH,EA0Gd,CAAC,CAClBjB,IAAK,YACLhC,MAAO,SAAmBuY,GACF,KAAlBA,EAAMO,SAER5U,KAAKgkD,MAAM3vC,KAGd,CACDvW,IAAK,QACLhC,MAAO,SAAeuY,GACpB,IAAIsG,EAAS3a,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZF,SAAS,IACR,WACG3C,EAAOnc,MAAMiiH,UACf9lG,EAAOnc,MAAMiiH,SAASpsG,QAI3B,CACDvW,IAAK,gBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAETgf,EAAU,GAEd,GAAIhf,KAAKxB,MAAMkiH,MAOb1hG,EAAQnjB,KAAmBgf,IAAM7P,cAAc,MAAO,CACpDlN,IAAK,QACL6iH,IAAK3gH,KAAKxB,MAAMkiH,MAChBE,IAAK5gH,KAAKxB,MAAMqiH,SAChBC,QAVY,SAAiBthH,GACzB0hB,EAAO1iB,MAAMuiH,cACf7/F,EAAO1iB,MAAMuiH,aAAavhH,YAUzB,GAAIQ,KAAKxB,MAAM06E,KAAM,CAC1B,IAAIiY,EAAgBl0F,YAAW,cAAe+C,KAAKxB,MAAM06E,MACzDl6D,EAAQnjB,KAAmBgf,IAAM7P,cAAc,OAAQ,CACrDlN,IAAK,OACLP,UAAW4zF,KAWf,GAPInxF,KAAKxB,MAAM+6E,OACbv6D,EAAQnjB,KAAmBgf,IAAM7P,cAAc,OAAQ,CACrDlN,IAAK,QACLP,UAAW,eACVyC,KAAKxB,MAAM+6E,QAGZv5E,KAAKxB,MAAMwiH,UAAW,CACxB,IAAIC,EAAyBhkH,YAAW,qBAAsB+C,KAAKxB,MAAM0iH,YACzEliG,EAAQnjB,KAAmBgf,IAAM7P,cAAc,OAAQ,CACrDlN,IAAK,aACLgnE,SAAU,EACVvnE,UAAW0jH,EACXjhD,QAAShgE,KAAKgkD,MACdvvC,UAAWzU,KAAKyU,aAIpB,OAAOuK,IAER,CACDlhB,IAAK,gBACLhC,MAAO,WACL,IAAI+5G,EAAqB54G,YAAW,qBAAsB,CACxD,eAAoC,MAApB+C,KAAKxB,MAAMkiH,OAC1B1gH,KAAKxB,MAAMjB,WACVyhB,EAAUhf,KAAKxB,MAAMyqG,SAAWt7F,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUjpG,KAAKxB,OAASwB,KAAKy2G,gBACtG,OAAoB57F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWs4G,EACXz1G,MAAOJ,KAAKxB,MAAM4B,OACjB4e,KAEJ,CACDlhB,IAAK,SACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAME,SAAWtd,KAAKgkB,qBA9LtB1lB,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAiMzCwhH,EA5Ge,CA6GtBxlG,aA/HiClf,EAiIG,CACpCy9E,MAAO,KACPL,KAAM,KACNwnC,MAAO,KACPM,WAAW,EACXE,WAAY,qBACZ3jH,UAAW,KACX6C,MAAO,KACP6oG,SAAU,KACV4X,SAAU,OACVE,aAAc,KACdN,SAAU,OA5IkB3iH,EAiIR,kBAjIGd,EAiITwjH,GA/HZpkH,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,gBCjGf,IAAIqlH,EAAS5mH,EAAQ,IACjB6mH,EAAS7mH,EAAQ,KACjB8mH,EAAM9mH,EAAQ,IACdqlD,EAAMrlD,EAAQ,KACd+mH,EAAgB/mH,EAAQ,KACxBgnH,EAAoBhnH,EAAQ,KAE5BinH,EAAwBJ,EAAO,OAC/BjmH,EAASgmH,EAAOhmH,OAChBsmH,EAAwBF,EAAoBpmH,EAASA,GAAUA,EAAOumH,eAAiB9hE,EAE3FvlD,EAAOC,QAAU,SAAUmC,GAOvB,OANG4kH,EAAIG,EAAuB/kH,KAAW6kH,GAAuD,iBAA/BE,EAAsB/kH,MACnF6kH,GAAiBD,EAAIlmH,EAAQsB,GAC/B+kH,EAAsB/kH,GAAQtB,EAAOsB,GAErC+kH,EAAsB/kH,GAAQglH,EAAsB,UAAYhlH,IAE3D+kH,EAAsB/kH,K,gBClBjC,IAAIghH,EAAOljH,EAAQ,KACf8mH,EAAM9mH,EAAQ,IACdonH,EAA+BpnH,EAAQ,KACvCsE,EAAiBtE,EAAQ,IAAuCkF,EAEpEpF,EAAOC,QAAU,SAAUsnH,GACzB,IAAIzmH,EAASsiH,EAAKtiH,SAAWsiH,EAAKtiH,OAAS,IACtCkmH,EAAIlmH,EAAQymH,IAAO/iH,EAAe1D,EAAQymH,EAAM,CACnD9lH,MAAO6lH,EAA6BliH,EAAEmiH,O,+MCCd/mG,IAAMG,U,ICA5B6mG,c,wIACJ/D,QAAUgE,YAAc,EAAD,O,sCAEvBxjG,kB,OACS,uBAAQw/F,QAAS99G,KAAjB,QAA+BwC,SAAUxC,KAAKxB,MAAMgE,Y,EAJzDq/G,CAAmBhnG,IAAMG,WCPxB,IAAM+mG,EAAoB,SAAC/yG,EAAIgzG,G,MACtB,oBAAPhzG,EAAoBA,EAA3B,GAD+B,GAGpBizG,EAAsB,SAACjzG,EAAIgzG,G,MACjB,kBAAPhzG,EACVkzG,YAAelzG,EAAI,KAAM,KADtB,GAAP,GCKImzG,EAAiB,SAAAvC,G,OAAC,GAClBhnC,EAAe/9D,IAAf+9D,WACN,qBAAWA,IACTA,KAOF,IAAMwpC,EAAaxpC,GACjB,c,IAEIypC,EAMC,EANDA,SACAC,EAKC,EALDA,SACAtiD,EAIC,EAJDA,QACGuiD,EAGF,iDACKhkH,EAAWgkH,EADhB,OAGC/jH,EAAQ,OAAH,IAAG,CAAH,MAEPwhE,QAAS,SAAA3rD,G,IAEL,GAAa2rD,KACb,MAAOwiD,G,MACPnuG,mBACA,EAICA,EAAD,sBACAA,UACC,GAFD,UAEY9V,GA7BtB,SAAyB8V,G,SACbA,WAAiBA,EAAjBA,QAAiCA,EAAjCA,SAAkDA,EAA5D,UA6BSouG,CAJH,KAMEpuG,mBACAiuG,Q,OAOJ9jH,MADE2jH,IAAJ,GACcO,GAEZlkH,EAIK,sBAAP,MAWJ,IAAMmkH,EAAO/pC,GACX,c,QAEIt1B,iBAOC,MAPW8+D,EAOX,EANDj/G,EAMC,EANDA,QACA6L,EAKC,EALDA,GACAqzG,EAIC,EAJDA,SACGE,EAGF,uD,OAED,kBAAC1E,IAAD,eACG,SAAAz3F,GACC,mB,IAEQ03F,EAAY13F,EAHV,QAKJg7C,EAAW6gD,EACfF,EAAkB/yG,EAAIoX,EADY,UAElCA,EAFF,UAKM86C,EAAOE,EAAW08C,aAAH,GAArB,GACMt/G,EAAQ,OAAH,IAAG,CAAH,MAET0iE,KAFS,EAGTohD,SAHS,W,IAIDlhD,EAAW2gD,EAAkB/yG,EAAIoX,EAAvC,UACMw8F,EAAwBvD,YAAWj5F,EAAXi5F,YAAiCA,YAAW4C,EAA1E,KACgB9+G,GAAD,EAAqC26G,EAArC,QAAuDA,EAAtE,MAEA5tD,M,OAKAiyD,IAAJ,EACE3jH,MAAYkkH,GAAZlkH,EAEAA,aAGKqc,oBAAP,SC1GJsnG,EAAiB,SAAAvC,G,OAAC,GAClBhnC,EAAe/9D,IAAf+9D,WACN,qBAAW,IACTA,KAUF,IAAMiqC,EAAUjqC,GACd,c,QAEI,gBAAgBkqC,OAef,MAf6B,OAe7B,E,IAdDC,uBAcC,MAdiB,SAcjB,EAbDC,EAaC,EAbDA,YACWC,EAYV,EAZD1lH,UACA6gH,EAWC,EAXDA,MACU8E,EAUT,EAVDC,SACUC,EAST,EATDhiD,SACAk9C,EAQC,EARDA,UACAD,EAOC,EAPDA,OACOgF,EAMN,EANDjjH,MACA4O,EAKC,EALDA,GACAqzG,EAIC,EAJDA,SACGE,EAGF,uJ,OAED,kBAAC1E,IAAD,eACG,SAAAz3F,GACC,mB,IAEM47F,EAAkBoB,GAAgBh9F,EAAxC,SACMk9F,EAAarB,EACjBF,EAAkB/yG,EADkB,GAAtC,GAIkByuG,EAAS6F,EARjB,SAUJC,EACJ9F,GAAQA,sCADV,QAGMjyG,EAAQ+3G,EACVpF,YAAU6D,EAAD,SAA2B,CAClCvE,KADkC,EAElCW,MAFkC,EAGlCE,UAHkC,EAIlCD,WALN,KAQM8E,KAAcD,EAChBA,EAAa13G,EADe,GAAhC,GAIIjO,EACuB,oBAAlB0lH,EACHA,EADJ,GADF,EAKI7iH,EACmB,oBAAdijH,EAA2BA,EAAlC,GADF,EAGA,IACE9lH,EA9DZ,W,2BAA2BimH,EAAY,yBAAZA,EAAY,gB,OAC9BA,EAAA,QAAkB,SAAA5oH,G,OAAC,KAAnB,KAAP,KA6DsB6oH,CAAelmH,EAA3BA,GACA6C,EAAQ,OAAH,IAAG,CAAH,KAALA,I,IAGI5B,EAAQ,OAAH,IAAG,CAAH,C,eACQ2kH,GAAD,GADP,KAET5lH,UAFS,EAGT6C,MAHS,EAIT4O,GAAIs0G,GA1CI,G,OA+CNnB,IAAJ,EACE3jH,MAAYkkH,GAAZlkH,EAEAA,aAGK,oBAAP,U,6BClGK,SAASL,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAFxB,mC,6BCAA,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAInC,SAASK,EAAaT,EAAaU,EAAYC,GAG5D,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAbT,mC,6BCAA,6DAGA,SAASo6E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAS9B,SAASmB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAI5Z,IAAI40G,EAAsC,SAAU9pG,IArEpD,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA0D1CF,CAAUkrG,EAAwB9pG,GAElC,IA/FoBvb,EAAaU,EAAYC,EA+FzC6a,EAASkL,EAAa2+F,GAE1B,SAASA,EAAuBllH,GAC9B,IAAI+G,EAUJ,OA5HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAkHpBsB,CAAgB6B,KAAM0jH,IAEtBn+G,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBgU,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMo+G,QAAUp+G,EAAMo+G,QAAQ5pG,KAAK7B,EAAuB3S,IAC1DA,EAAMyQ,QAAUzQ,EAAMyQ,QAAQ+D,KAAK7B,EAAuB3S,IAC1DA,EAAMozE,WAA0B3yD,oBAAUzgB,EAAM/G,MAAMo6E,YAC/CrzE,EA6JT,OAzQoBlH,EA+GPqlH,EA/GoB3kH,EA+GI,CAAC,CACpCjB,IAAK,UACLhC,MAAO,SAAiB0D,GAClBQ,KAAKxB,MAAMolH,YACb5jH,KAAK6jH,SAGH7jH,KAAKxB,MAAMgU,SACbxS,KAAKxB,MAAMgU,QAAQhT,KAGtB,CACD1B,IAAK,SACLhC,MAAO,SAAgB0D,GACjBQ,KAAKxB,MAAMolH,YACb5jH,KAAK6jH,SAGH7jH,KAAKxB,MAAMiU,QACbzS,KAAKxB,MAAMiU,OAAOjT,KAGrB,CACD1B,IAAK,UACLhC,MAAO,SAAiB0D,GAClBQ,KAAKxB,MAAMolH,YACb5jH,KAAK6jH,SAGH7jH,KAAKxB,MAAMmlH,SACb3jH,KAAKxB,MAAMmlH,QAAQnkH,KAGtB,CACD1B,IAAK,UACLhC,MAAO,SAAiB0D,GAClBQ,KAAKxB,MAAMolH,YACb5jH,KAAK6jH,SAGHrkH,EAAEjB,OAAOzC,MAAMnB,OAAS,EAAGoF,IAAWya,SAAShb,EAAEjB,OAAQ,YAAiBwB,IAAWma,YAAY1a,EAAEjB,OAAQ,YAE3GyB,KAAKxB,MAAMwX,SACbhW,KAAKxB,MAAMwX,QAAQxW,KAGtB,CACD1B,IAAK,SACLhC,MAAO,SAAgBgoH,GACrB,IAAIC,EAAU/jH,KAAK24E,YAAc34E,KAAK24E,WAAW5pE,QAE7Cg1G,GAAWhkH,IAAWikH,UAAUD,KAC7B/jH,KAAKikH,qBACRjkH,KAAKikH,mBAAqBF,EAAQnnE,aAClCmnE,EAAQ3jH,MAAMmM,SAAW,WAGvBvM,KAAKikH,qBAAuBF,EAAQnnE,cAAgBknE,KACtDC,EAAQ3jH,MAAMkB,OAAS,GACvByiH,EAAQ3jH,MAAMkB,OAASyiH,EAAQnnE,aAAe,KAE1Ct8C,WAAWyjH,EAAQ3jH,MAAMkB,SAAWhB,WAAWyjH,EAAQ3jH,MAAM0sE,YAC/Di3C,EAAQ3jH,MAAM05C,UAAY,SAC1BiqE,EAAQ3jH,MAAMkB,OAASyiH,EAAQ3jH,MAAM0sE,WAErCi3C,EAAQ3jH,MAAMmM,SAAW,SAG3BvM,KAAKikH,mBAAqBF,EAAQnnE,iBAIvC,CACD9+C,IAAK,WACLhC,MAAO,WACL,OAA2B,MAApBkE,KAAKxB,MAAM1C,OAAiBkE,KAAKxB,MAAM1C,MAAMQ,WAAW3B,OAAS,GAAgC,MAA3BqF,KAAKxB,MAAM+7E,cAAwBv6E,KAAKxB,MAAM+7E,aAAaj+E,WAAW3B,OAAS,GAAKqF,KAAK24E,YAAc34E,KAAK24E,WAAW5pE,SAAW/O,KAAK24E,WAAW5pE,QAAQjT,MAAMQ,WAAW3B,OAAS,IAElQ,CACDmD,IAAK,mBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMo6E,WAEjB99D,IACiB,oBAARA,EACTA,EAAI9a,KAAK24E,WAAW5pE,SAEpB+L,EAAI/L,QAAU/O,KAAK24E,WAAW5pE,WAInC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAK84E,mBAED94E,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,gBAGHh5E,KAAKxB,MAAMolH,YACb5jH,KAAK6jH,QAAO,KAGf,CACD/lH,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OApIvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAoI/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,iBAG7Ch5E,KAAKxB,MAAMolH,YACb5jH,KAAK6jH,QAAO,KAGf,CACD/lH,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK24E,WAAW5pE,QACxBiQ,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,0CAA2C,CACpE,aAAc+C,KAAKxB,MAAMihB,SACzB,WAAYzf,KAAKy6E,WACjB,4BAA6Bz6E,KAAKxB,MAAMolH,YACvC5jH,KAAKxB,MAAMjB,WACV2mH,EAAgBv2G,IAAYusE,aAAal6E,KAAKxB,MAAOklH,EAAuBvpC,cAChF,OAAoBt/D,IAAM7P,cAAc,WAAYytE,EAAS,CAC3D39D,IAAK9a,KAAK24E,YACTurC,EAAe,CAChB3mH,UAAWA,EACXiV,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbkxG,QAAS3jH,KAAK2jH,QACd3tG,QAAShW,KAAKgW,cAnQhBjX,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAuQzC0kH,EA7KiC,CA8KxC1oG,aAEFxK,EAAgBkzG,EAAwB,eAAgB,CACtDE,YAAY,EACZ7qC,QAAS,KACTE,eAAgB,KAChBjjE,QAAS,KACT4iE,WAAY,OAGd,IAAIurC,EAA6BtpG,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACjE,OAAoBD,IAAM7P,cAAc04G,EAAwBjrC,EAAS,CACvEG,WAAY99D,GACXtc,Q,6BC5TL,SAAS4lH,EAAmBC,EAAKC,EAAS7mC,EAAQ8mC,EAAOC,EAAQ1mH,EAAK6xD,GACpE,IACE,IAAItZ,EAAOguE,EAAIvmH,GAAK6xD,GAChB7zD,EAAQu6C,EAAKv6C,MACjB,MAAO+O,GAEP,YADA4yE,EAAO5yE,GAILwrC,EAAKz6C,KACP0oH,EAAQxoH,GAER2oH,QAAQH,QAAQxoH,GAAOi0D,KAAKw0D,EAAOC,GAIxB,SAASE,EAAkBC,GACxC,OAAO,WACL,IAAIxsG,EAAOnY,KACP5C,EAAOD,UACX,OAAO,IAAIsnH,SAAQ,SAAUH,EAAS7mC,GACpC,IAAI4mC,EAAMM,EAAGr7G,MAAM6O,EAAM/a,GAEzB,SAASmnH,EAAMzoH,GACbsoH,EAAmBC,EAAKC,EAAS7mC,EAAQ8mC,EAAOC,EAAQ,OAAQ1oH,GAGlE,SAAS0oH,EAAOzoH,GACdqoH,EAAmBC,EAAKC,EAAS7mC,EAAQ8mC,EAAOC,EAAQ,QAASzoH,GAGnEwoH,OAAM9+G,OA/BZ,mC,6BCAA,6DAGA,SAAStH,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B8oH,EAAmB,SAAUhrG,IAxEjC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUosG,EAAKhrG,GAEf,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa6/F,GAE1B,SAASA,IAGP,OAFAzmH,EAAgB6B,KAAM4kH,GAEf/qG,EAAOvQ,MAAMtJ,KAAM7C,WAyB5B,OAxHoBkB,EAkGPumH,GAlGoB7lH,EAkGf,CAAC,CACjBjB,IAAK,SACLhC,MAAO,WACL,IAAI+oH,EAAe5nH,YAAW,oBAAqB,CACjD,aAAsC,SAAxB+C,KAAKxB,MAAMi2B,SACzB,gBAAyC,YAAxBz0B,KAAKxB,MAAMi2B,SAC5B,gBAAyC,YAAxBz0B,KAAKxB,MAAMi2B,SAC5B,eAAwC,WAAxBz0B,KAAKxB,MAAMi2B,SAC3B,gBAAiBz0B,KAAKxB,MAAMsmH,SAC3B9kH,KAAKxB,MAAMjB,WACVivF,EAAYvvF,YAAW,aAAc+C,KAAKxB,MAAM06E,MACpD,OAAoBr+D,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWsnH,EACXzkH,MAAOJ,KAAKxB,MAAM4B,OACjBJ,KAAKxB,MAAM06E,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC7DzN,UAAWivF,IACI3xE,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,eACVyC,KAAKxB,MAAM1C,OAAqB+e,IAAM7P,cAAc,OAAQ,KAAMhL,KAAKxB,MAAMgE,gBAnHpElE,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAsHzC4lH,EAjCc,CAkCrB5pG,aApDiClf,EAsDE,CACnCA,MAAO,KACP24B,SAAU,KACVqwF,SAAS,EACT5rC,KAAM,KACN94E,MAAO,KACP7C,UAAW,OA5DiBO,EAsDT,kBAtDId,EAsDT4nH,GApDZxoH,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,iBCjGf,gBAAIipH,EAAQ,SAAU5lH,GACpB,OAAOA,GAAMA,EAAGiG,MAAQA,MAAQjG,GAIlC9E,EAAOC,QAELyqH,EAA2B,iBAAdC,YAA0BA,aACvCD,EAAuB,iBAAVnkH,QAAsBA,SAEnCmkH,EAAqB,iBAAR5sG,MAAoBA,OACjC4sG,EAAuB,iBAAV5D,GAAsBA,IAElC,WAAc,OAAOnhH,KAArB,IAAmCilH,SAAS,cAATA,K,+CCbtC,6DAGA,SAAS9mH,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/BopH,EAAqB,SAAUtrG,IAxEnC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAU0sG,EAAOtrG,GAEjB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAamgG,GAE1B,SAASA,IAGP,OAFA/mH,EAAgB6B,KAAMklH,GAEfrrG,EAAOvQ,MAAMtJ,KAAM7C,WAuB5B,OAtHoBkB,EAkGP6mH,GAlGoBnmH,EAkGb,CAAC,CACnBjB,IAAK,SACLhC,MAAO,WACL,IAAI+9E,EAAiB58E,YAAW,sBAAuB,CACrD,oBAAqB+C,KAAKxB,MAAM1C,OAA6C,IAApCuU,OAAOrQ,KAAKxB,MAAM1C,OAAOnB,OAClE,eAAgBqF,KAAKxB,MAAM1C,MAC3B,aAAkC,UAApBkE,KAAKxB,MAAM2mH,KACzB,aAAkC,WAApBnlH,KAAKxB,MAAM2mH,KACzB,eAAwC,SAAxBnlH,KAAKxB,MAAMi2B,SAC3B,kBAA2C,YAAxBz0B,KAAKxB,MAAMi2B,SAC9B,kBAA2C,YAAxBz0B,KAAKxB,MAAMi2B,SAC9B,iBAA0C,WAAxBz0B,KAAKxB,MAAMi2B,UAC5Bz0B,KAAKxB,MAAMjB,WACd,OAAoBsd,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWs8E,EACXz5E,MAAOJ,KAAKxB,MAAM4B,OACjBJ,KAAKxB,MAAM1C,YAjHFwC,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAoHzCkmH,EA/BgB,CAgCvBlqG,aAlDiClf,EAoDI,CACrCA,MAAO,KACP24B,SAAU,KACV0wF,KAAM,KACN/kH,MAAO,KACP7C,UAAW,OAzDiBO,EAoDP,kBApDEd,EAoDTkoH,GAlDZ9oH,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,+FAGA,SAAS4T,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASN,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASwb,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIs2G,EAA4B,SAAUxrG,GACxCpB,EAAU4sG,EAAcxrG,GAExB,IAAIC,EAASkL,EAAaqgG,GAE1B,SAASA,IAGP,OAFAjnH,EAAgB6B,KAAMolH,GAEfvrG,EAAOvQ,MAAMtJ,KAAM7C,WAG5B,OAAOioH,EAXuB,CAY9BpqG,aAEFxK,EAAgB40G,EAAc,eAAgB,CAC5CpqC,OAAQ,KACRv7D,UAAU,EACVo8D,YAAa,KACbC,gBAAiB,KACjBupC,eAAgB,KAChBC,aAAc,KACdC,iBAAkB,OAGpB,IAAIC,EAAyB,SAAUC,GACrCjtG,EAAUgtG,EAAWC,GAErB,IA5HoBpnH,EAAaU,EAAYC,EA4HzC0mH,EAAU3gG,EAAaygG,GAE3B,SAASA,EAAUhnH,GACjB,IAAI+G,EAEJpH,EAAgB6B,KAAMwlH,GAGtB,IAAIpoG,EAAQ,CACV0G,IAFFve,EAAQmgH,EAAQhqH,KAAKsE,KAAMxB,IAEfA,MAAMslB,IAWlB,OARKve,EAAM/G,MAAMmnH,cACfvoG,EAAQ0H,EAAcA,EAAc,GAAI1H,GAAQ,GAAI,CAClDwoG,YAAapnH,EAAMonH,eAIvBrgH,EAAM6X,MAAQA,EACd7X,EAAMsgH,gBAAkB,GACjBtgH,EAmKT,OAnToBlH,EAmJPmnH,GAnJoBzmH,EAmJT,CAAC,CACvBjB,IAAK,mBACLhC,MAAO,SAA0BuY,EAAOyxG,EAAKzpD,GAC3C,IAAKypD,EAAItnH,MAAMihB,SAAU,CACvB,IAAIqxE,EAAW9wF,KAAKgzE,WAAW3W,GAC3B0pD,EAAiB,KAErB,GAAI/lH,KAAKxB,MAAMwnH,SAAU,CACvB,IAAIC,GAAWjmH,KAAKxB,MAAMmnH,YAAc3lH,KAAKxB,MAAMonH,YAAc5lH,KAAKod,MAAMwoG,cAAgB,GAI5FG,EAHcE,EAAVn1B,EAAoBm1B,EAAQjoH,QAAO,SAAUpD,GAC/C,OAAOA,IAAMyhE,KACG,GAAGt+D,OAAOgvF,EAAmBk5B,GAAU,CAAC5pD,SAG1D0pD,EAAiBj1B,EAAW,KAAOz0B,EAGrC,IAAI12D,EAAWmrF,EAAW9wF,KAAKxB,MAAM0nH,WAAalmH,KAAKxB,MAAM2nH,UAEzDxgH,GACFA,EAAS,CACPgQ,cAAetB,EACfgoD,MAAOA,IAIPr8D,KAAKxB,MAAMmnH,YACb3lH,KAAKxB,MAAMmnH,YAAY,CACrBhwG,cAAetB,EACfgoD,MAAO0pD,IAGT/lH,KAAKwd,SAAS,CACZooG,YAAaG,IAKnB1xG,EAAMY,mBAEP,CACDnX,IAAK,aACLhC,MAAO,SAAoBugE,GACzB,IAAIupD,EAAc5lH,KAAKxB,MAAMmnH,YAAc3lH,KAAKxB,MAAMonH,YAAc5lH,KAAKod,MAAMwoG,YAC/E,OAAO5lH,KAAKxB,MAAMwnH,SAAWJ,GAAeA,EAAYl6G,QAAQ2wD,IAAU,EAAIupD,IAAgBvpD,IAE/F,CACDv+D,IAAK,oBACLhC,MAAO,WACAkE,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,kBAIT,CACD9Y,IAAK,kBACLhC,MAAO,SAAyBgqH,EAAKh1B,EAAUz0B,GAC7C,IAAI+c,EACAz+D,EAAS3a,KAETomH,EAAiBnpH,YAAW,qBAAsB,CACpD,cAAe6zF,EACf,aAAcg1B,EAAItnH,MAAMihB,UACvBqmG,EAAItnH,MAAMs9E,iBACTqV,EAAgBl0F,YAAW,2BAA8CuT,EAAlB4oE,EAAc,GAAiC,GAAGr7E,OAAOiC,KAAKxB,MAAM6nH,aAAcv1B,GAAWtgF,EAAgB4oE,EAAa,GAAGr7E,OAAOiC,KAAKxB,MAAM8nH,cAAex1B,GAAW1X,IAChOt1D,EAAK9jB,KAAKod,MAAM0G,GAAK,WAAau4C,EAClCq4B,EAAe10F,KAAKod,MAAM0G,GAAK,YAAcu4C,EAC7CyI,EAAWghD,EAAItnH,MAAMihB,UAAY,EAAI,KACrCu7D,EAAS8qC,EAAItnH,MAAM6mH,eAAiB13G,IAAY8rE,cAAcqsC,EAAItnH,MAAM6mH,eAAgBS,EAAItnH,OAAsBqc,IAAM7P,cAAc,OAAQ,CAChJzN,UAAW,2BACVuoH,EAAItnH,MAAMw8E,QACb,OAAoBngE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW6oH,EACXhmH,MAAO0lH,EAAItnH,MAAMq9E,aACHhhE,IAAM7P,cAAc,IAAK,CACvCk2D,KAAM,IAAMwzB,EACZ5wE,GAAIA,EACJvmB,UAAW,0BACX,gBAAiBm3F,EACjB3wE,KAAM,MACN,gBAAiB+sE,EACjB9wB,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO4rG,iBAAiBlyG,EAAOyxG,EAAKzpD,IAE7CyI,SAAUA,GACIjqD,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACTnW,MAEL,CACDl9E,IAAK,mBACLhC,MAAO,SAA0BgqH,EAAKh1B,EAAUz0B,GAC9C,IAAI9+D,EAAYN,YAAW,uBAAwB6oH,EAAItnH,MAAM+mH,kBACzDzhG,EAAK9jB,KAAKod,MAAM0G,GAAK,YAAcu4C,EACnCmqD,EAAoC3rG,IAAMmL,YAC9C,OAAoBnL,IAAM7P,cAAcia,IAAe,CACrDS,QAAS8gG,EACTvpH,WAAY,uBACZ2oB,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERhxF,GAAImrE,EACJjrE,eAAe,EACfvU,QAAStR,KAAKxB,MAAMo4G,mBACN/7F,IAAM7P,cAAc,MAAO,CACzC8P,IAAK0rG,EACL1iG,GAAIA,EACJvmB,UAAWA,EACX6C,MAAO0lH,EAAItnH,MAAM8mH,aACjBvhG,KAAM,SACN,kBAAmB/jB,KAAKod,MAAM0G,GAAK,WAAau4C,GAClCxhD,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACVuoH,EAAItnH,MAAMgE,cAEd,CACD1E,IAAK,YACLhC,MAAO,SAAmBgqH,EAAKzpD,GAC7B,IAAIy0B,EAAW9wF,KAAKgzE,WAAW3W,GAC3BoqD,EAAYzmH,KAAK0mH,gBAAgBZ,EAAKh1B,EAAUz0B,GAChDsqD,EAAa3mH,KAAK4mH,iBAAiBd,EAAKh1B,EAAUz0B,GAClDwqD,EAAe5pH,YAAW,kBAAmB,CAC/C,yBAA0B6zF,IAE5B,OAAoBj2E,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKgoH,EAAItnH,MAAMw8E,OACfz9E,UAAWspH,GACVJ,EAAWE,KAEf,CACD7oH,IAAK,aACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAO6a,IAAMs8E,SAASx5F,IAAIqC,KAAKxB,MAAMgE,UAAU,SAAUsjH,EAAKzpD,GAC5D,GAAIypD,GAAOA,EAAItoH,OAAS4nH,EACtB,OAAOlkG,EAAO4lG,UAAUhB,EAAKzpD,QAIlC,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETzC,EAAYN,YAAW,0BAA2B+C,KAAKxB,MAAMjB,WAC7DwpH,EAAO/mH,KAAKgnH,aAChB,OAAoBnsG,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO7X,UAAY7J,GAE5B6jB,GAAI9jB,KAAKod,MAAM0G,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB2mH,QA9SSzoH,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAiTzCwmH,EA1LoB,CA2L3BxqG,aAEFxK,EAAgBg1G,EAAW,eAAgB,CACzC1hG,GAAI,KACJ8hG,YAAa,KACbroH,UAAW,KACX6C,MAAO,KACP4lH,UAAU,EACVK,WAAY,sBACZC,aAAc,qBACd1P,kBAAmB,KACnBuP,UAAW,KACXD,WAAY,KACZP,YAAa,Q,qPCjXf,SAASj5C,EAAWixC,GAClB,MAA8B,MAAvBA,EAAShqG,OAAO,GAIzB,SAASszG,EAAU/3G,EAAMmtD,GACvB,IAAK,IAAIzhE,EAAIyhE,EAAO3nD,EAAI9Z,EAAI,EAAGuB,EAAI+S,EAAKvU,OAAQ+Z,EAAIvY,EAAGvB,GAAK,EAAG8Z,GAAK,EAClExF,EAAKtU,GAAKsU,EAAKwF,GAGjBxF,EAAKg4G,MAgEQC,MA5Df,SAAyBn4G,EAAItS,QACd+I,IAAT/I,IAAoBA,EAAO,IAE/B,IAkBI0qH,EAlBAC,EAAWr4G,GAAMA,EAAGjM,MAAM,MAAS,GACnCukH,EAAa5qH,GAAQA,EAAKqG,MAAM,MAAS,GAEzCwkH,EAAUv4G,GAAM09D,EAAW19D,GAC3Bw4G,EAAY9qH,GAAQgwE,EAAWhwE,GAC/B+qH,EAAaF,GAAWC,EAW5B,GATIx4G,GAAM09D,EAAW19D,GAEnBs4G,EAAYD,EACHA,EAAQ1sH,SAEjB2sH,EAAUJ,MACVI,EAAYA,EAAUvpH,OAAOspH,KAG1BC,EAAU3sH,OAAQ,MAAO,IAG9B,GAAI2sH,EAAU3sH,OAAQ,CACpB,IAAI6N,EAAO8+G,EAAUA,EAAU3sH,OAAS,GACxCysH,EAA4B,MAAT5+G,GAAyB,OAATA,GAA0B,KAATA,OAEpD4+G,GAAmB,EAIrB,IADA,IAAIM,EAAK,EACA9sH,EAAI0sH,EAAU3sH,OAAQC,GAAK,EAAGA,IAAK,CAC1C,IAAI+sH,EAAOL,EAAU1sH,GAER,MAAT+sH,EACFV,EAAUK,EAAW1sH,GACH,OAAT+sH,GACTV,EAAUK,EAAW1sH,GACrB8sH,KACSA,IACTT,EAAUK,EAAW1sH,GACrB8sH,KAIJ,IAAKD,EAAY,KAAOC,IAAMA,EAAIJ,EAAU95F,QAAQ,OAGlDi6F,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAO56C,EAAW46C,EAAU,KAExCA,EAAU95F,QAAQ,IAEpB,IAAI1e,EAASw4G,EAAUppH,KAAK,KAI5B,OAFIkpH,GAA0C,MAAtBt4G,EAAO0a,QAAQ,KAAY1a,GAAU,KAEtDA,GCvET,SAASyK,EAAQvc,GACf,OAAOA,EAAIuc,QAAUvc,EAAIuc,UAAYnd,OAAOC,UAAUkd,QAAQ7d,KAAKsB,GAkCtD4qH,MA/Bf,SAASA,EAAW35G,EAAGC,GAErB,GAAID,IAAMC,EAAG,OAAO,EAGpB,GAAS,MAALD,GAAkB,MAALC,EAAW,OAAO,EAEnC,GAAIpT,MAAME,QAAQiT,GAChB,OACEnT,MAAME,QAAQkT,IACdD,EAAEtT,SAAWuT,EAAEvT,QACfsT,EAAE45G,OAAM,SAAS99G,EAAMsyD,GACrB,OAAOurD,EAAW79G,EAAMmE,EAAEmuD,OAKhC,GAAiB,kBAANpuD,GAA+B,kBAANC,EAAgB,CAClD,IAAI45G,EAASvuG,EAAQtL,GACjB85G,EAASxuG,EAAQrL,GAErB,OAAI45G,IAAW75G,GAAK85G,IAAW75G,EAAU05G,EAAWE,EAAQC,GAErD3rH,OAAOqS,KAAKrS,OAAOg8E,OAAO,GAAInqE,EAAGC,IAAI25G,OAAM,SAAS/pH,GACzD,OAAO8pH,EAAW35G,EAAEnQ,GAAMoQ,EAAEpQ,OAIhC,OAAO,G,QC1BT,SAASkhH,EAAgBvB,GACvB,MAA0B,MAAnBA,EAAK9pG,OAAO,GAAa8pG,EAAO,IAAMA,EAE/C,SAASuK,EAAkBvK,GACzB,MAA0B,MAAnBA,EAAK9pG,OAAO,GAAa8pG,EAAKj0F,OAAO,GAAKi0F,EAKnD,SAASwB,EAAcxB,EAAM5mG,GAC3B,OAJF,SAAqB4mG,EAAM5mG,GACzB,OAA4D,IAArD4mG,EAAKlyG,cAAcG,QAAQmL,EAAOtL,iBAAuE,IAA/C,MAAMG,QAAQ+xG,EAAK9pG,OAAOkD,EAAOlc,SAG3FstH,CAAYxK,EAAM5mG,GAAU4mG,EAAKj0F,OAAO3S,EAAOlc,QAAU8iH,EAElE,SAASyK,EAAmBzK,GAC1B,MAAwC,MAAjCA,EAAK9pG,OAAO8pG,EAAK9iH,OAAS,GAAa8iH,EAAKlhH,MAAM,GAAI,GAAKkhH,EA0BpE,SAAS4B,EAAWj+C,GAClB,IAAIu8C,EAAWv8C,EAASu8C,SACpB13G,EAASm7D,EAASn7D,OAClBynB,EAAO0zC,EAAS1zC,KAChB+vF,EAAOE,GAAY,IAGvB,OAFI13G,GAAqB,MAAXA,IAAgBw3G,GAA6B,MAArBx3G,EAAO0N,OAAO,GAAa1N,EAAS,IAAMA,GAC5EynB,GAAiB,MAATA,IAAc+vF,GAA2B,MAAnB/vF,EAAK/Z,OAAO,GAAa+Z,EAAO,IAAMA,GACjE+vF,EAGT,SAASyE,EAAezE,EAAMrgG,EAAOtf,EAAKkkH,GACxC,IAAI5gD,EAEgB,kBAATq8C,GAETr8C,EAvCJ,SAAmBq8C,GACjB,IAAIE,EAAWF,GAAQ,IACnBx3G,EAAS,GACTynB,EAAO,GACPy6F,EAAYxK,EAASjyG,QAAQ,MAEd,IAAfy8G,IACFz6F,EAAOiwF,EAASn0F,OAAO2+F,GACvBxK,EAAWA,EAASn0F,OAAO,EAAG2+F,IAGhC,IAAI9O,EAAcsE,EAASjyG,QAAQ,KAOnC,OALqB,IAAjB2tG,IACFpzG,EAAS03G,EAASn0F,OAAO6vF,GACzBsE,EAAWA,EAASn0F,OAAO,EAAG6vF,IAGzB,CACLsE,SAAUA,EACV13G,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BynB,KAAe,MAATA,EAAe,GAAKA,GAkBf06F,CAAU3K,GACrBr8C,EAAShkD,MAAQA,SAIS3X,KAD1B27D,EAAWqX,YAAS,GAAIglC,IACXE,WAAwBv8C,EAASu8C,SAAW,IAErDv8C,EAASn7D,OACuB,MAA9Bm7D,EAASn7D,OAAO0N,OAAO,KAAYytD,EAASn7D,OAAS,IAAMm7D,EAASn7D,QAExEm7D,EAASn7D,OAAS,GAGhBm7D,EAAS1zC,KACqB,MAA5B0zC,EAAS1zC,KAAK/Z,OAAO,KAAYytD,EAAS1zC,KAAO,IAAM0zC,EAAS1zC,MAEpE0zC,EAAS1zC,KAAO,QAGJjoB,IAAV2X,QAA0C3X,IAAnB27D,EAAShkD,QAAqBgkD,EAAShkD,MAAQA,IAG5E,IACEgkD,EAASu8C,SAAW0K,UAAUjnD,EAASu8C,UACvC,MAAOn+G,GACP,MAAIA,aAAa8oH,SACT,IAAIA,SAAS,aAAelnD,EAASu8C,SAAxB,iFAEbn+G,EAoBV,OAhBI1B,IAAKsjE,EAAStjE,IAAMA,GAEpBkkH,EAEG5gD,EAASu8C,SAE6B,MAAhCv8C,EAASu8C,SAAShqG,OAAO,KAClCytD,EAASu8C,SAAWwJ,EAAgB/lD,EAASu8C,SAAUqE,EAAgBrE,WAFvEv8C,EAASu8C,SAAWqE,EAAgBrE,SAMjCv8C,EAASu8C,WACZv8C,EAASu8C,SAAW,KAIjBv8C,EAET,SAASmnD,EAAkBt6G,EAAGC,GAC5B,OAAOD,EAAE0vG,WAAazvG,EAAEyvG,UAAY1vG,EAAEhI,SAAWiI,EAAEjI,QAAUgI,EAAEyf,OAASxf,EAAEwf,MAAQzf,EAAEnQ,MAAQoQ,EAAEpQ,KAAO8pH,EAAW35G,EAAEmP,MAAOlP,EAAEkP,OAG7H,SAASorG,IACP,IAAIC,EAAS,KAiCb,IAAIC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6BznD,EAAUr4B,EAAQ+/E,EAAqBnjH,GAIlE,GAAc,MAAV8iH,EAAgB,CAClB,IAAI35G,EAA2B,oBAAX25G,EAAwBA,EAAOrnD,EAAUr4B,GAAU0/E,EAEjD,kBAAX35G,EAC0B,oBAAxBg6G,EACTA,EAAoBh6G,EAAQnJ,GAG5BA,GAAS,GAIXA,GAAoB,IAAXmJ,QAGXnJ,GAAS,IAmCXojH,eA7BF,SAAwBpE,GACtB,IAAIxB,GAAW,EAEf,SAAS71G,IACH61G,GAAUwB,EAAGr7G,WAAM,EAAQnM,WAIjC,OADAurH,EAAU7sH,KAAKyR,GACR,WACL61G,GAAW,EACXuF,EAAYA,EAAU1qH,QAAO,SAAU+L,GACrC,OAAOA,IAASuD,OAmBpB07G,gBAdF,WACE,IAAK,IAAI9rH,EAAOC,UAAUxC,OAAQyC,EAAO,IAAItC,MAAMoC,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzBqrH,EAAUx3G,SAAQ,SAAU5D,GAC1B,OAAOA,EAAShE,WAAM,EAAQlM,QAYpC,IAAI6rH,IAAiC,qBAAXroH,SAA0BA,OAAOF,WAAYE,OAAOF,SAASsK,eACvF,SAASk+G,EAAgBv8D,EAAShnD,GAChCA,EAAS/E,OAAOuoH,QAAQx8D,IAwC1B,IAAIy8D,EAAgB,WAChBC,EAAkB,aAEtB,SAASC,IACP,IACE,OAAO1oH,OAAOk9G,QAAQ1gG,OAAS,GAC/B,MAAO5d,GAGP,MAAO,IASX,SAAS+pH,EAAqB/qH,QACd,IAAVA,IACFA,EAAQ,IAGTyqH,GAAsGzJ,aAAU,GACjH,IAAIgK,EAAgB5oH,OAAOk9G,QACvB2L,EAvDN,WACE,IAAIn+G,EAAK1K,OAAOsI,UAAUC,UAC1B,QAAmC,IAA9BmC,EAAGI,QAAQ,gBAAuD,IAA/BJ,EAAGI,QAAQ,iBAA2D,IAAjCJ,EAAGI,QAAQ,mBAAqD,IAA1BJ,EAAGI,QAAQ,YAAqD,IAAjCJ,EAAGI,QAAQ,mBACtJ9K,OAAOk9G,SAAW,cAAel9G,OAAOk9G,QAoD3B4L,GAChBC,KA7CsD,IAAnD/oH,OAAOsI,UAAUC,UAAUuC,QAAQ,YA8CtCk+G,EAASprH,EACTqrH,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOd,oBAC/BA,OAAgD,IAA1BiB,EAAmCb,EAAkBa,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9C9K,EAAW1gH,EAAM0gH,SAAWgJ,EAAmBlJ,EAAgBxgH,EAAM0gH,WAAa,GAEtF,SAASgL,EAAeC,GACtB,IAAIvsH,EAAOusH,GAAgB,GACvBrsH,EAAMF,EAAKE,IACXsf,EAAQxf,EAAKwf,MAEbgtG,EAAmBxpH,OAAOwgE,SAI1Bq8C,EAHW2M,EAAiBzM,SACnByM,EAAiBnkH,OACnBmkH,EAAiB18F,KAI5B,OADIwxF,IAAUzB,EAAOwB,EAAcxB,EAAMyB,IAClCgD,EAAezE,EAAMrgG,EAAOtf,GAGrC,SAASusH,IACP,OAAOjlH,KAAKklH,SAAShuH,SAAS,IAAIktB,OAAO,EAAGygG,GAG9C,IAAIM,EAAoB/B,IAExB,SAAShrG,EAAS2hC,GAChBs5B,YAASqlC,EAAS3+D,GAElB2+D,EAAQnjH,OAAS6uH,EAAc7uH,OAC/B4vH,EAAkBvB,gBAAgBlL,EAAQ18C,SAAU08C,EAAQ/0E,QAG9D,SAASyhF,EAAen2G,IApE1B,SAAmCA,GACjC,YAAuB5O,IAAhB4O,EAAM+I,QAAiE,IAA1ClU,UAAUC,UAAUuC,QAAQ,UAqE1D++G,CAA0Bp2G,IAC9Bq2G,EAAUR,EAAe71G,EAAM+I,QAGjC,SAASutG,IACPD,EAAUR,EAAeZ,MAG3B,IAAIsB,GAAe,EAEnB,SAASF,EAAUtpD,GACjB,GAAIwpD,EACFA,GAAe,EACfptG,QACK,CAEL+sG,EAAkB1B,oBAAoBznD,EADzB,MAC2C0nD,GAAqB,SAAU+B,GACjFA,EACFrtG,EAAS,CACPurB,OAJO,MAKPq4B,SAAUA,IASpB,SAAmB0pD,GACjB,IAAIxH,EAAaxF,EAAQ18C,SAIrB2pD,EAAUC,EAAQt/G,QAAQ43G,EAAWxlH,MACxB,IAAbitH,IAAgBA,EAAU,GAC9B,IAAIE,EAAYD,EAAQt/G,QAAQo/G,EAAahtH,MAC1B,IAAfmtH,IAAkBA,EAAY,GAClC,IAAI9/E,EAAQ4/E,EAAUE,EAElB9/E,IACFy/E,GAAe,EACfM,EAAG//E,IAnBCggF,CAAU/pD,OAuBlB,IAAIgqD,EAAkBlB,EAAeZ,KACjC0B,EAAU,CAACI,EAAgBttH,KAE/B,SAASutH,EAAWjqD,GAClB,OAAO89C,EAAWG,EAAWj+C,GAuE/B,SAAS8pD,EAAG/uH,GACVqtH,EAAc0B,GAAG/uH,GAWnB,IAAImvH,EAAgB,EAEpB,SAASC,EAAkBpgF,GAGH,KAFtBmgF,GAAiBngF,IAEoB,IAAVA,GACzBvqC,OAAO4M,iBAAiB47G,EAAeoB,GACnCb,GAAyB/oH,OAAO4M,iBAAiB67G,EAAiBsB,IAC3C,IAAlBW,IACT1qH,OAAO6M,oBAAoB27G,EAAeoB,GACtCb,GAAyB/oH,OAAO6M,oBAAoB47G,EAAiBsB,IAI7E,IAAIa,GAAY,EAiChB,IAAI1N,EAAU,CACZnjH,OAAQ6uH,EAAc7uH,OACtBouC,OAAQ,MACRq4B,SAAUgqD,EACVC,WAAYA,EACZxvH,KApIF,SAAc4hH,EAAMrgG,GAElB,IAAI2rB,EAAS,OACTq4B,EAAW8gD,EAAezE,EAAMrgG,EAAOitG,IAAavM,EAAQ18C,UAChEmpD,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAI3pD,EAAOmqD,EAAWjqD,GAClBtjE,EAAMsjE,EAAStjE,IACfsf,EAAQgkD,EAAShkD,MAErB,GAAIqsG,EAMF,GALAD,EAAciC,UAAU,CACtB3tH,IAAKA,EACLsf,MAAOA,GACN,KAAM8jD,GAEL4oD,EACFlpH,OAAOwgE,SAASF,KAAOA,MAClB,CACL,IAAIwqD,EAAYV,EAAQt/G,QAAQoyG,EAAQ18C,SAAStjE,KAC7C6tH,EAAWX,EAAQzuH,MAAM,EAAGmvH,EAAY,GAC5CC,EAAS9vH,KAAKulE,EAAStjE,KACvBktH,EAAUW,EACVnuG,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,SAKdxgE,OAAOwgE,SAASF,KAAOA,OAuG3B/9D,QAlGF,SAAiBs6G,EAAMrgG,GAErB,IAAI2rB,EAAS,UACTq4B,EAAW8gD,EAAezE,EAAMrgG,EAAOitG,IAAavM,EAAQ18C,UAChEmpD,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAI3pD,EAAOmqD,EAAWjqD,GAClBtjE,EAAMsjE,EAAStjE,IACfsf,EAAQgkD,EAAShkD,MAErB,GAAIqsG,EAMF,GALAD,EAAcoC,aAAa,CACzB9tH,IAAKA,EACLsf,MAAOA,GACN,KAAM8jD,GAEL4oD,EACFlpH,OAAOwgE,SAASj+D,QAAQ+9D,OACnB,CACL,IAAIwqD,EAAYV,EAAQt/G,QAAQoyG,EAAQ18C,SAAStjE,MAC9B,IAAf4tH,IAAkBV,EAAQU,GAAatqD,EAAStjE,KACpD0f,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,SAKdxgE,OAAOwgE,SAASj+D,QAAQ+9D,QAuE5BgqD,GAAIA,EACJW,OA/DF,WACEX,GAAI,IA+DJY,UA5DF,WACEZ,EAAG,IA4DHlQ,MAzCF,SAAeyN,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIsD,EAAUxB,EAAkB5B,UAAUF,GAO1C,OALK+C,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdQ,MAwBTC,OApBF,SAAgB1+G,GACd,IAAI2+G,EAAW1B,EAAkBxB,eAAez7G,GAEhD,OADAi+G,EAAkB,GACX,WACLA,GAAmB,GACnBU,OAiBJ,OAAOnO,EAGT,IAAIoO,EAAoB,aACpBC,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoB5O,GAC9B,MAA0B,MAAnBA,EAAK9pG,OAAO,GAAa8pG,EAAO,KAAOuK,EAAkBvK,IAElE6O,WAAY,SAAoB7O,GAC9B,MAA0B,MAAnBA,EAAK9pG,OAAO,GAAa8pG,EAAKj0F,OAAO,GAAKi0F,IAGrD8O,QAAS,CACPF,WAAYrE,EACZsE,WAAYtN,GAEdwN,MAAO,CACLH,WAAYrN,EACZsN,WAAYtN,IAIhB,SAASyN,EAAU5lG,GACjB,IAAIshG,EAAYthG,EAAInb,QAAQ,KAC5B,OAAsB,IAAfy8G,EAAmBthG,EAAMA,EAAItqB,MAAM,EAAG4rH,GAG/C,SAASuE,IAGP,IAAIxrD,EAAOtgE,OAAOwgE,SAASF,KACvBinD,EAAYjnD,EAAKx1D,QAAQ,KAC7B,OAAsB,IAAfy8G,EAAmB,GAAKjnD,EAAKl7D,UAAUmiH,EAAY,GAO5D,SAASwE,EAAgBlP,GACvB78G,OAAOwgE,SAASj+D,QAAQspH,EAAU7rH,OAAOwgE,SAASF,MAAQ,IAAMu8C,GAGlE,SAASmP,EAAkBpuH,QACX,IAAVA,IACFA,EAAQ,IAGTyqH,GAAmGzJ,aAAU,GAC9G,IAAIgK,EAAgB5oH,OAAOk9G,QAEvB8L,GAnUGhpH,OAAOsI,UAAUC,UAAUuC,QAAQ,WAmU7BlN,GACTurH,EAAwBH,EAAOd,oBAC/BA,OAAgD,IAA1BiB,EAAmCb,EAAkBa,EAC3E8C,EAAkBjD,EAAOkD,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClD3N,EAAW1gH,EAAM0gH,SAAWgJ,EAAmBlJ,EAAgBxgH,EAAM0gH,WAAa,GAClF6N,EAAwBZ,EAAeW,GACvCT,EAAaU,EAAsBV,WACnCC,EAAaS,EAAsBT,WAEvC,SAASpC,IACP,IAAIzM,EAAO6O,EAAWI,KAGtB,OADIxN,IAAUzB,EAAOwB,EAAcxB,EAAMyB,IAClCgD,EAAezE,GAGxB,IAAI8M,EAAoB/B,IAExB,SAAShrG,EAAS2hC,GAChBs5B,YAASqlC,EAAS3+D,GAElB2+D,EAAQnjH,OAAS6uH,EAAc7uH,OAC/B4vH,EAAkBvB,gBAAgBlL,EAAQ18C,SAAU08C,EAAQ/0E,QAG9D,IAAI6hF,GAAe,EACfoC,EAAa,KAMjB,SAASrC,IACP,IAL4B18G,EAAGC,EAK3BuvG,EAAOiP,IACPO,EAAcZ,EAAW5O,GAE7B,GAAIA,IAASwP,EAEXN,EAAgBM,OACX,CACL,IAAI7rD,EAAW8oD,IACXgD,EAAepP,EAAQ18C,SAC3B,IAAKwpD,IAdwB18G,EAc2BkzD,GAd9BnzD,EAcgBi/G,GAbnCvP,WAAazvG,EAAEyvG,UAAY1vG,EAAEhI,SAAWiI,EAAEjI,QAAUgI,EAAEyf,OAASxf,EAAEwf,MAaL,OAEnE,GAAIs/F,IAAe3N,EAAWj+C,GAAW,OAEzC4rD,EAAa,KAKjB,SAAmB5rD,GACjB,GAAIwpD,EACFA,GAAe,EACfptG,QACK,CACL,IAAIurB,EAAS,MACbwhF,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GACjFA,EACFrtG,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,IASpB,SAAmB0pD,GACjB,IAAIxH,EAAaxF,EAAQ18C,SAIrB2pD,EAAUoC,EAASC,YAAY/N,EAAWiE,KAC7B,IAAbyH,IAAgBA,EAAU,GAC9B,IAAIE,EAAYkC,EAASC,YAAY/N,EAAWyL,KAC7B,IAAfG,IAAkBA,EAAY,GAClC,IAAI9/E,EAAQ4/E,EAAUE,EAElB9/E,IACFy/E,GAAe,EACfM,EAAG//E,IAnBCggF,CAAU/pD,OAjBdspD,CAAUtpD,IAyCd,IAAIq8C,EAAOiP,IACPO,EAAcZ,EAAW5O,GACzBA,IAASwP,GAAaN,EAAgBM,GAC1C,IAAI7B,EAAkBlB,IAClBiD,EAAW,CAAC9N,EAAW+L,IAuE3B,SAASF,EAAG/uH,GAEVqtH,EAAc0B,GAAG/uH,GAWnB,IAAImvH,EAAgB,EAEpB,SAASC,EAAkBpgF,GAGH,KAFtBmgF,GAAiBngF,IAEoB,IAAVA,EACzBvqC,OAAO4M,iBAAiB0+G,EAAmBvB,GAChB,IAAlBW,GACT1qH,OAAO6M,oBAAoBy+G,EAAmBvB,GAIlD,IAAIa,GAAY,EAiChB,IAAI1N,EAAU,CACZnjH,OAAQ6uH,EAAc7uH,OACtBouC,OAAQ,MACRq4B,SAAUgqD,EACVC,WAnIF,SAAoBjqD,GAClB,IAAIisD,EAAU3sH,SAAS8C,cAAc,QACjC09D,EAAO,GAMX,OAJImsD,GAAWA,EAAQztG,aAAa,UAClCshD,EAAOurD,EAAU7rH,OAAOwgE,SAASF,OAG5BA,EAAO,IAAMmrD,EAAWnN,EAAWG,EAAWj+C,KA4HrDvlE,KAzHF,SAAc4hH,EAAMrgG,GAElB,IAAI2rB,EAAS,OACTq4B,EAAW8gD,EAAezE,OAAMh4G,OAAWA,EAAWq4G,EAAQ18C,UAClEmpD,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAIpN,EAAO4B,EAAWj+C,GAClB6rD,EAAcZ,EAAWnN,EAAWzB,GAGxC,GAFkBiP,MAAkBO,EAEnB,CAIfD,EAAavP,EAxIrB,SAAsBA,GACpB78G,OAAOwgE,SAAS1zC,KAAO+vF,EAwIjB6P,CAAaL,GACb,IAAIvB,EAAYyB,EAASC,YAAY/N,EAAWvB,EAAQ18C,WACpDmsD,EAAYJ,EAAS5wH,MAAM,EAAGmvH,EAAY,GAC9C6B,EAAU1xH,KAAK4hH,GACf0P,EAAWI,EACX/vG,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,SAIZ5jD,SAgGJra,QA3FF,SAAiBs6G,EAAMrgG,GAErB,IAAI2rB,EAAS,UACTq4B,EAAW8gD,EAAezE,OAAMh4G,OAAWA,EAAWq4G,EAAQ18C,UAClEmpD,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IAAIpN,EAAO4B,EAAWj+C,GAClB6rD,EAAcZ,EAAWnN,EAAWzB,GACtBiP,MAAkBO,IAMlCD,EAAavP,EACbkP,EAAgBM,IAGlB,IAAIvB,EAAYyB,EAASzhH,QAAQ2zG,EAAWvB,EAAQ18C,YACjC,IAAfsqD,IAAkByB,EAASzB,GAAajO,GAC5CjgG,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,SAsEd8pD,GAAIA,EACJW,OA7DF,WACEX,GAAI,IA6DJY,UA1DF,WACEZ,EAAG,IA0DHlQ,MAzCF,SAAeyN,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIsD,EAAUxB,EAAkB5B,UAAUF,GAO1C,OALK+C,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdQ,MAwBTC,OApBF,SAAgB1+G,GACd,IAAI2+G,EAAW1B,EAAkBxB,eAAez7G,GAEhD,OADAi+G,EAAkB,GACX,WACLA,GAAmB,GACnBU,OAiBJ,OAAOnO,EAGT,SAAS0P,EAAMrxH,EAAGsxH,EAAYC,GAC5B,OAAOtoH,KAAKs6B,IAAIt6B,KAAKC,IAAIlJ,EAAGsxH,GAAaC,GAO3C,SAASC,EAAoBnvH,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAIorH,EAASprH,EACTsqH,EAAsBc,EAAOd,oBAC7B8E,EAAwBhE,EAAOiE,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBlE,EAAOmE,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpD9D,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CO,EAAoB/B,IAExB,SAAShrG,EAAS2hC,GAChBs5B,YAASqlC,EAAS3+D,GAElB2+D,EAAQnjH,OAASmjH,EAAQpgH,QAAQ/C,OACjC4vH,EAAkBvB,gBAAgBlL,EAAQ18C,SAAU08C,EAAQ/0E,QAG9D,SAASshF,IACP,OAAOjlH,KAAKklH,SAAShuH,SAAS,IAAIktB,OAAO,EAAGygG,GAG9C,IAAI5tD,EAAQmxD,EAAMO,EAAc,EAAGF,EAAelzH,OAAS,GACvD+C,EAAUmwH,EAAelwH,KAAI,SAAU29D,GACzC,OAAmC4mD,EAAe5mD,OAAO71D,EAAjC,kBAAV61D,EAAsD+uD,IAAgD/uD,EAAMx9D,KAAOusH,QAG/HgB,EAAahM,EAyCjB,SAAS6L,EAAG/uH,GACV,IAAI8rE,EAAYulD,EAAM1P,EAAQzhD,MAAQlgE,EAAG,EAAG2hH,EAAQpgH,QAAQ/C,OAAS,GAEjEymE,EAAW08C,EAAQpgH,QAAQuqE,GAC/BsiD,EAAkB1B,oBAAoBznD,EAFzB,MAE2C0nD,GAAqB,SAAU+B,GACjFA,EACFrtG,EAAS,CACPurB,OALO,MAMPq4B,SAAUA,EACV/E,MAAO4L,IAKTzqD,OA8BN,IAAIsgG,EAAU,CACZnjH,OAAQ+C,EAAQ/C,OAChBouC,OAAQ,MACRq4B,SAAU1jE,EAAQ2+D,GAClBA,MAAOA,EACP3+D,QAASA,EACT2tH,WAAYA,EACZxvH,KA1FF,SAAc4hH,EAAMrgG,GAElB,IAAI2rB,EAAS,OACTq4B,EAAW8gD,EAAezE,EAAMrgG,EAAOitG,IAAavM,EAAQ18C,UAChEmpD,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GACrF,GAAKA,EAAL,CACA,IACI5iD,EADY61C,EAAQzhD,MACI,EACxB2xD,EAAclQ,EAAQpgH,QAAQnB,MAAM,GAEpCyxH,EAAYrzH,OAASstE,EACvB+lD,EAAY/+G,OAAOg5D,EAAW+lD,EAAYrzH,OAASstE,EAAW7G,GAE9D4sD,EAAYnyH,KAAKulE,GAGnB5jD,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,EACV/E,MAAO4L,EACPvqE,QAASswH,SAuEb7qH,QAlEF,SAAiBs6G,EAAMrgG,GAErB,IAAI2rB,EAAS,UACTq4B,EAAW8gD,EAAezE,EAAMrgG,EAAOitG,IAAavM,EAAQ18C,UAChEmpD,EAAkB1B,oBAAoBznD,EAAUr4B,EAAQ+/E,GAAqB,SAAU+B,GAChFA,IACL/M,EAAQpgH,QAAQogH,EAAQzhD,OAAS+E,EACjC5jD,EAAS,CACPurB,OAAQA,EACRq4B,SAAUA,SA0Dd8pD,GAAIA,EACJW,OAnCF,WACEX,GAAI,IAmCJY,UAhCF,WACEZ,EAAG,IAgCH+C,MA7BF,SAAe9xH,GACb,IAAI8rE,EAAY61C,EAAQzhD,MAAQlgE,EAChC,OAAO8rE,GAAa,GAAKA,EAAY61C,EAAQpgH,QAAQ/C,QA4BrDqgH,MAzBF,SAAeyN,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJ8B,EAAkB5B,UAAUF,IAqBnCuD,OAlBF,SAAgB1+G,GACd,OAAOi9G,EAAkBxB,eAAez7G,KAmB1C,OAAOwwG,I,6BCj5BT,IAAI/jG,EAAOxf,EAAQ,KAMf+B,EAAWF,OAAOC,UAAUC,SAQhC,SAAStB,EAAQqb,GACf,MAA8B,mBAAvB/Z,EAASZ,KAAK2a,GASvB,SAAS63G,EAAY73G,GACnB,MAAsB,qBAARA,EA4EhB,SAAS83G,EAAS93G,GAChB,OAAe,OAARA,GAA+B,kBAARA,EAuChC,SAAStP,EAAWsP,GAClB,MAA8B,sBAAvB/Z,EAASZ,KAAK2a,GAwEvB,SAASnF,EAAQlU,EAAK2nH,GAEpB,GAAY,OAAR3nH,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLhC,EAAQgC,GAEV,IAAK,IAAIpC,EAAI,EAAG49E,EAAIx7E,EAAIrC,OAAQC,EAAI49E,EAAG59E,IACrC+pH,EAAGjpH,KAAK,KAAMsB,EAAIpC,GAAIA,EAAGoC,QAI3B,IAAK,IAAIc,KAAOd,EACVZ,OAAOC,UAAUqS,eAAehT,KAAKsB,EAAKc,IAC5C6mH,EAAGjpH,KAAK,KAAMsB,EAAIc,GAAMA,EAAKd,GAoFrC3C,EAAOC,QAAU,CACfU,QAASA,EACTozH,cApRF,SAAuB/3G,GACrB,MAA8B,yBAAvB/Z,EAASZ,KAAK2a,IAoRrBg4G,SAhSF,SAAkBh4G,GAChB,OAAe,OAARA,IAAiB63G,EAAY73G,IAA4B,OAApBA,EAAI7Z,cAAyB0xH,EAAY73G,EAAI7Z,cAChD,oBAA7B6Z,EAAI7Z,YAAY6xH,UAA2Bh4G,EAAI7Z,YAAY6xH,SAASh4G,IA+RhFi4G,WA5QF,SAAoBj4G,GAClB,MAA4B,qBAAbk4G,UAA8Bl4G,aAAek4G,UA4Q5DC,kBAnQF,SAA2Bn4G,GAOzB,MAL4B,qBAAhBo4G,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOr4G,GAElBA,GAASA,EAAIrE,QAAYqE,EAAIrE,kBAAkBy8G,aA+P3DE,SApPF,SAAkBt4G,GAChB,MAAsB,kBAARA,GAoPdu4G,SA3OF,SAAkBv4G,GAChB,MAAsB,kBAARA,GA2Od83G,SAAUA,EACVD,YAAaA,EACbW,OA1NF,SAAgBx4G,GACd,MAA8B,kBAAvB/Z,EAASZ,KAAK2a,IA0NrBy4G,OAjNF,SAAgBz4G,GACd,MAA8B,kBAAvB/Z,EAASZ,KAAK2a,IAiNrB04G,OAxMF,SAAgB14G,GACd,MAA8B,kBAAvB/Z,EAASZ,KAAK2a,IAwMrBtP,WAAYA,EACZioH,SAtLF,SAAkB34G,GAChB,OAAO83G,EAAS93G,IAAQtP,EAAWsP,EAAI44G,OAsLvCC,kBA7KF,SAA2B74G,GACzB,MAAkC,qBAApB84G,iBAAmC94G,aAAe84G,iBA6KhEC,qBAjJF,WACE,OAAyB,qBAAdlmH,WAAoD,gBAAtBA,UAAUmmH,SACY,iBAAtBnmH,UAAUmmH,SACY,OAAtBnmH,UAAUmmH,WAI/B,qBAAXzuH,QACa,qBAAbF,WA0ITwQ,QAASA,EACT+sD,MA/EF,SAASA,IACP,IAAInvD,EAAS,GACb,SAASwgH,EAAYj5G,EAAKvY,GACG,kBAAhBgR,EAAOhR,IAAoC,kBAARuY,EAC5CvH,EAAOhR,GAAOmgE,EAAMnvD,EAAOhR,GAAMuY,GAEjCvH,EAAOhR,GAAOuY,EAIlB,IAAK,IAAIzb,EAAI,EAAG49E,EAAIr7E,UAAUxC,OAAQC,EAAI49E,EAAG59E,IAC3CsW,EAAQ/T,UAAUvC,GAAI00H,GAExB,OAAOxgH,GAmEPygH,UAxDF,SAASA,IACP,IAAIzgH,EAAS,GACb,SAASwgH,EAAYj5G,EAAKvY,GACG,kBAAhBgR,EAAOhR,IAAoC,kBAARuY,EAC5CvH,EAAOhR,GAAOyxH,EAAUzgH,EAAOhR,GAAMuY,GAErCvH,EAAOhR,GADiB,kBAARuY,EACFk5G,EAAU,GAAIl5G,GAEdA,EAIlB,IAAK,IAAIzb,EAAI,EAAG49E,EAAIr7E,UAAUxC,OAAQC,EAAI49E,EAAG59E,IAC3CsW,EAAQ/T,UAAUvC,GAAI00H,GAExB,OAAOxgH,GA0CP0gH,OA/BF,SAAgBvhH,EAAGC,EAAGuhH,GAQpB,OAPAv+G,EAAQhD,GAAG,SAAqBmI,EAAKvY,GAEjCmQ,EAAEnQ,GADA2xH,GAA0B,oBAARp5G,EACX0D,EAAK1D,EAAKo5G,GAEVp5G,KAGNpI,GAwBPqC,KAzKF,SAAcf,GACZ,OAAOA,EAAIpM,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,O,6BC9KjD,sEAIA,SAASuM,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASy7E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAAS0nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASsf,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAI4gH,EAAqC,SAAU91G,GACjDpB,EAAUk3G,EAAuB91G,GAEjC,IAAIC,EAASgE,EAAe6xG,GAE5B,SAASA,EAAsBlxH,GAC7B,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAM0vH,IAEtBnqH,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM8vE,QAAU9vE,EAAM8vE,QAAQt7D,KAAK7B,EAAuB3S,IACnDA,EAmHT,OAhHAzG,EAAa4wH,EAAuB,CAAC,CACnC5xH,IAAK,uBACLhC,MAAO,WACDkE,KAAK4lB,SACP7P,aAAa/V,KAAK4lB,WAGrB,CACD9nB,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKxB,MAAMmuD,QAAQgjE,SACtB3vH,KAAK4lB,QAAU/c,YAAW,WACxB8R,EAAO06D,QAAQ,QACdr1E,KAAKxB,MAAMmuD,QAAQijE,MAAQ,QAGjC,CACD9xH,IAAK,UACLhC,MAAO,WACDkE,KAAK4lB,SACP7P,aAAa/V,KAAK4lB,SAGhB5lB,KAAKxB,MAAM62E,SACbr1E,KAAKxB,MAAM62E,QAAQr1E,KAAKxB,MAAMmuD,WAGjC,CACD7uD,IAAK,UACLhC,MAAO,SAAiBuY,IAClBrU,KAAKxB,MAAMwhE,SAAajgE,IAAW6uF,SAASv6E,EAAM9V,OAAQ,uBAAyBwB,IAAW6uF,SAASv6E,EAAM9V,OAAQ,4BACvHyB,KAAKxB,MAAMwhE,QAAQhgE,KAAKxB,MAAMmuD,WAGjC,CACD7uD,IAAK,kBACLhC,MAAO,WACL,OAAoC,IAAhCkE,KAAKxB,MAAMmuD,QAAQkjE,SACDh1G,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAW,4BACXyiE,QAAShgE,KAAKq1E,SACAx6D,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,wCACIsd,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,gBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMmuD,QAAS,CACtB,IAAImjE,EAAsB9vH,KAAKxB,MAAMmuD,QACjCl4B,EAAWq7F,EAAoBr7F,SAC/BzV,EAAU8wG,EAAoB9wG,QAC9B+wG,EAAUD,EAAoBC,QAC9BC,EAASF,EAAoBE,OAC7BC,EAAYtiH,IAAY8rE,cAAcz6D,EAAS8F,EAAcA,EAAc,GAAI9kB,KAAKxB,OAAQ,GAAI,CAClG62E,QAASr1E,KAAKq1E,WAEZ8b,EAAgBl0F,YAAW,0BAA2B,CACxD,iBAA+B,SAAbw3B,EAClB,0BAAwC,SAAbA,EAC3B,WAAyB,UAAbA,EACZ,WAAyB,YAAbA,IAEd,OAAOw7F,GAA0Bp1G,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,OAAQ,CAClHzN,UAAW4zF,IACIt2E,IAAM7P,cAAc,MAAO,CAC1CzN,UAAW,wBACGsd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,mBACVwyH,GAAUC,GAAuBn1G,IAAM7P,cAAc,MAAO,CAC7DzN,UAAW,kBACVyyH,KAGL,OAAO,OAER,CACDlyH,IAAK,SACLhC,MAAO,WACL,IAAI24B,EAAWz0B,KAAKxB,MAAMmuD,QAAQl4B,SAC9B8wF,EAAmBvlH,KAAKxB,MAAMmuD,QAAQ44D,iBACtCD,EAAetlH,KAAKxB,MAAMmuD,QAAQ24D,aAClCllH,EAAQJ,KAAKxB,MAAMmuD,QAAQvsD,MAC3B7C,EAAYN,YAAW,kBAAmB,CAC5C,uBAAqC,SAAbw3B,EACxB,uBAAqC,SAAbA,EACxB,wBAAsC,UAAbA,EACzB,0BAAwC,YAAbA,GAC1Bz0B,KAAKxB,MAAMmuD,QAAQpvD,WAClBovD,EAAU3sD,KAAKkwH,gBACfC,EAAYnwH,KAAKowH,kBACrB,OAAoBv1G,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWA,EACX6C,MAAOA,EACP2jB,KAAM,QACN,YAAa,YACb,cAAe,OACfi8C,QAAShgE,KAAKggE,SACAnlD,IAAM7P,cAAc,MAAO,CACzCzN,UAAWN,YAAW,0BAA2BsoH,GACjDnlH,MAAOklH,GACN34D,EAASwjE,QAITT,EAhIgC,CAiIvC10G,aAEFxK,EAAgBk/G,EAAuB,eAAgB,CACrD/iE,QAAS,KACT0oB,QAAS,KACTrV,QAAS,OAGX,IAAIqwD,EAA4Bx1G,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GAChE,OAAoBD,IAAM7P,cAAc0kH,EAAuBj3C,EAAS,CACtEG,WAAY99D,GACXtc,OAGL,SAASumB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIwhH,EAAa,EACbC,EAAqB,SAAU32G,GACjCpB,EAAU+3G,EAAO32G,GAEjB,IAAIC,EAASkL,EAAawrG,GAE1B,SAASA,EAAM/xH,GACb,IAAI+G,EAWJ,OATApH,EAAgB6B,KAAMuwH,IAEtBhrH,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZozG,SAAU,IAEZjrH,EAAM8vE,QAAU9vE,EAAM8vE,QAAQt7D,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IACrDA,EAoGT,OAjGAzG,EAAayxH,EAAO,CAAC,CACnBzyH,IAAK,OACLhC,MAAO,SAAcA,GACnB,GAAIA,EAAO,CACT,IAAI20H,EAEJ,GAAI31H,MAAME,QAAQc,GAChB,IAAK,IAAIlB,EAAI,EAAGA,EAAIkB,EAAMnB,OAAQC,IAChCkB,EAAMlB,GAAGkpB,GAAKwsG,IACdG,EAAc,GAAG1yH,OAAOgvF,EAAmB/sF,KAAKod,MAAMozG,UAAWzjC,EAAmBjxF,SAGtFA,EAAMgoB,GAAKwsG,IACXG,EAAczwH,KAAKod,MAAMozG,SAAW,GAAGzyH,OAAOgvF,EAAmB/sF,KAAKod,MAAMozG,UAAW,CAAC10H,IAAU,CAACA,GAGtE,IAA/BkE,KAAKod,MAAMozG,SAAS71H,QAAgBmc,IAAYW,IAAI,QAASzX,KAAK8J,UAAW9J,KAAKxB,MAAM4Y,YACxFpX,KAAKwd,SAAS,CACZgzG,SAAUC,OAIf,CACD3yH,IAAK,QACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK8J,WACvB9J,KAAKwd,SAAS,CACZgzG,SAAU,OAGb,CACD1yH,IAAK,UACLhC,MAAO,SAAiB6wD,GACtB,IAAI8jE,EAAczwH,KAAKod,MAAMozG,SAASxyH,QAAO,SAAU0yH,GACrD,OAAOA,EAAI5sG,KAAO6oC,EAAQ7oC,MAE5B9jB,KAAKwd,SAAS,CACZgzG,SAAUC,IAGRzwH,KAAKxB,MAAMiiH,UACbzgH,KAAKxB,MAAMiiH,SAAS9zD,KAGvB,CACD7uD,IAAK,YACLhC,MAAO,WACLkE,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,WACLhC,MAAO,WAC0B,IAA/BkE,KAAKod,MAAMozG,SAAS71H,QAAgBmc,IAAYe,MAAM7X,KAAK8J,WAC3D9J,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,uBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK8J,aAExB,CACDhM,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,+BAAiC+C,KAAKxB,MAAM0H,SAAUlG,KAAKxB,MAAMjB,WAC5F,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB0a,EAAO7Q,UAAY7J,GAErB6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc2lH,IAAiB,KAAM3wH,KAAKod,MAAMozG,SAAS7yH,KAAI,SAAUgvD,GAC3F,IAAIikE,EAA0B/1G,IAAMmL,YACpC,OAAoBnL,IAAM7P,cAAcia,IAAe,CACrDS,QAASkrG,EACT9yH,IAAK6uD,EAAQ7oC,GACb7mB,WAAY,kBACZ4oB,eAAe,EACfD,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERvxF,UAAWzK,EAAOyK,UAClBG,SAAU5K,EAAO4K,SACjBjU,QAASqJ,EAAOnc,MAAMo4G,mBACR/7F,IAAM7P,cAAcqlH,EAAc,CAChDv1G,IAAK81G,EACLjkE,QAASA,EACTqT,QAASrlD,EAAOnc,MAAMwhE,QACtBqV,QAAS16D,EAAO06D,oBAMjBk7C,EArHgB,CAsHvBv1G,aAEFxK,EAAgB+/G,EAAO,eAAgB,CACrCzsG,GAAI,KACJvmB,UAAW,KACX6C,MAAO,KACPgX,WAAY,EACZlR,SAAU,YACV0wG,kBAAmB,KACnB52C,QAAS,KACTygD,SAAU,KACV1/F,OAAQ,KACRU,OAAQ,Q,6BC1bK,SAAS8uE,EAA8Bt/E,EAAQo/E,GAC5D,GAAc,MAAVp/E,EAAgB,MAAO,GAC3B,IAEInT,EAAKlD,EAFL2D,EAAS,GACT+xF,EAAal0F,OAAOqS,KAAKwC,GAG7B,IAAKrW,EAAI,EAAGA,EAAI01F,EAAW31F,OAAQC,IACjCkD,EAAMwyF,EAAW11F,GACby1F,EAAS3kF,QAAQ5N,IAAQ,IAC7BS,EAAOT,GAAOmT,EAAOnT,IAGvB,OAAOS,EAZT,mC,6BCAA,IACIsY,EAAS,mBAWE2oG,IAVf,SAAmBqR,EAAWlkE,GAC1B,IAAIkkE,EAIA,MAAM,IAAInnH,MAAMmN,K,6BCPxB,+FAGA,SAASvY,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASha,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASwb,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIgiH,EAAwB,SAAUl3G,GACpCpB,EAAUs4G,EAAUl3G,GAEpB,IAAIC,EAASkL,EAAa+rG,GAE1B,SAASA,IAGP,OAFA3yH,EAAgB6B,KAAM8wH,GAEfj3G,EAAOvQ,MAAMtJ,KAAM7C,WAG5B,OAAO2zH,EAXmB,CAY1B91G,aAEFxK,EAAgBsgH,EAAU,eAAgB,CACxC91C,OAAQ,KACRqqC,eAAgB,KAChB0L,SAAU,KACVC,UAAW,KACXvxG,UAAU,EACVo8D,YAAa,KACbC,gBAAiB,KACjBwpC,aAAc,KACdC,iBAAkB,OAGpB,IAAI0L,EAAuB,SAAUxL,GACnCjtG,EAAUy4G,EAASxL,GAEnB,IA9HoBpnH,EAAaU,EAAYC,EA8HzC0mH,EAAU3gG,EAAaksG,GAE3B,SAASA,EAAQzyH,GACf,IAAI+G,EAEJpH,EAAgB6B,KAAMixH,GAEtB1rH,EAAQmgH,EAAQhqH,KAAKsE,KAAMxB,GAC3B,IAAI4e,EAAQ,CACV0G,GAAItlB,EAAMslB,GACVotG,oBAAoB,EACpBC,mBAAmB,GAarB,OAVK5rH,EAAM/G,MAAMmnH,cACfvoG,EAAQ0H,EAAcA,EAAc,GAAI1H,GAAQ,GAAI,CAClDwoG,YAAapnH,EAAMonH,eAIvBrgH,EAAM6X,MAAQA,EACd7X,EAAM6rH,YAAc7rH,EAAM6rH,YAAYr3G,KAAK7B,EAAuB3S,IAClEA,EAAM8rH,WAAa9rH,EAAM8rH,WAAWt3G,KAAK7B,EAAuB3S,IAChEA,EAAM0qF,SAAW1qF,EAAM0qF,SAASl2E,KAAK7B,EAAuB3S,IACrDA,EAkTT,OAxcoBlH,EAyJP4yH,GAzJoBlyH,EAyJX,CAAC,CACrBjB,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMmnH,YAAc3lH,KAAKxB,MAAMonH,YAAc5lH,KAAKod,MAAMwoG,cAErE,CACD9nH,IAAK,aACLhC,MAAO,SAAoBugE,GACzB,OAAOA,IAAUr8D,KAAKsxH,mBAEvB,CACDxzH,IAAK,mBACLhC,MAAO,SAA0BuY,EAAOyxG,EAAKzpD,GACtCypD,EAAItnH,MAAMihB,WACTzf,KAAKxB,MAAMmnH,YACb3lH,KAAKxB,MAAMmnH,YAAY,CACrBhwG,cAAetB,EACfgoD,MAAOA,IAGTr8D,KAAKwd,SAAS,CACZooG,YAAavpD,KAKnBr8D,KAAKuxH,gBAAgBl1D,GACrBhoD,EAAMY,mBAEP,CACDnX,IAAK,eACLhC,MAAO,WACL,IAAI8pH,EAAc5lH,KAAKsxH,iBACnB7K,EAAYzmH,KAAK,OAAOjC,OAAO6nH,IACnC5lH,KAAKwxH,OAAOpxH,MAAMF,MAAQH,IAAWqa,SAASqsG,GAAa,KAC3DzmH,KAAKwxH,OAAOpxH,MAAMkC,KAAOvC,IAAWsa,UAAUosG,GAAWnkH,KAAOvC,IAAWsa,UAAUra,KAAKyxH,KAAKnvH,KAAO,OAEvG,CACDxE,IAAK,kBACLhC,MAAO,SAAyBugE,GACdr8D,KAAK,OAAOjC,OAAOs+D,IACzB0+C,eAAe,CACvBC,MAAO,cAGV,CACDl9G,IAAK,oBACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKgf,QACf/d,EAAa+d,EAAQ/d,WACrB07C,EAAc39B,EAAQ29B,YACtBz8C,EAAQH,IAAWqa,SAAS4E,GAChChf,KAAKwd,SAAS,CACZ0zG,mBAAmC,IAAfjwH,IAEtBjB,KAAKwd,SAAS,CACZ2zG,kBAAmBlwH,IAAe07C,EAAcz8C,MAGnD,CACDpC,IAAK,WACLhC,MAAO,SAAkBuY,GACvBrU,KAAKxB,MAAMgqG,YAAcxoG,KAAK0xH,oBAC9Br9G,EAAMY,mBAEP,CACDnX,IAAK,yBACLhC,MAAO,WAGL,MAAO,CAFOkE,KAAK2xH,QACL3xH,KAAK4xH,SACO/iH,QAAO,SAAUgjH,EAAK5xH,GAC9C,OAAOA,EAAK4xH,EAAM9xH,IAAWqa,SAASna,GAAM4xH,IAC3C,KAEJ,CACD/zH,IAAK,cACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKgf,QACf9e,EAAQH,IAAWqa,SAAS4E,GAAWhf,KAAK8xH,yBAC5C/9G,EAAMiL,EAAQ/d,WAAaf,EAC/B8e,EAAQ/d,WAAa8S,GAAO,EAAI,EAAIA,IAErC,CACDjW,IAAK,aACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKgf,QACf9e,EAAQH,IAAWqa,SAAS4E,GAAWhf,KAAK8xH,yBAC5C/9G,EAAMiL,EAAQ/d,WAAaf,EAC3B6xH,EAAU/yG,EAAQ29B,YAAcz8C,EACpC8e,EAAQ/d,WAAa8S,GAAOg+G,EAAUA,EAAUh+G,IAEjD,CACDjW,IAAK,oBACLhC,MAAO,WACAkE,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,gBAIR5W,KAAKgyH,iBAEN,CACDl0H,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjCxjB,KAAKgyH,eAEDxuG,EAAUoiG,cAAgB5lH,KAAKxB,MAAMonH,aACvC5lH,KAAKuxH,gBAAgBvxH,KAAKxB,MAAMonH,eAGnC,CACD9nH,IAAK,kBACLhC,MAAO,SAAyBgqH,EAAKzpD,GACnC,IAAI1hD,EAAS3a,KAET8wF,EAAW9wF,KAAKgzE,WAAW3W,GAC3B9+D,EAAYN,YAAW,sBAAuB,CAChD,iCAAkC6zF,EAClC,aAAcg1B,EAAItnH,MAAMihB,UACvBqmG,EAAItnH,MAAMs9E,iBACTh4D,EAAK9jB,KAAKod,MAAM0G,GAAK,WAAau4C,EAClCq4B,EAAe10F,KAAKod,MAAM0G,GAAK,YAAcu4C,EAC7CyI,EAAWghD,EAAItnH,MAAMihB,SAAW,KAAO,EACvCwyG,EAAkBnM,EAAItnH,MAAMuyH,UAAyBl2G,IAAM7P,cAAc,IAAK,CAChFzN,UAAWuoH,EAAItnH,MAAMuyH,WAEnBmB,EAA4Br3G,IAAM7P,cAAc,OAAQ,CAC1DzN,UAAW,mBACVuoH,EAAItnH,MAAMw8E,QACTm3C,EAAmBrM,EAAItnH,MAAMwyH,WAA0Bn2G,IAAM7P,cAAc,IAAK,CAClFzN,UAAWuoH,EAAItnH,MAAMwyH,YAEnBhyG,EAIJnE,IAAM7P,cAAc,IAAK,CACvB+Y,KAAM,MACNxmB,UAAW,qBACXyiE,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO4rG,iBAAiBlyG,EAAOyxG,EAAKzpD,IAE7Cv4C,GAAIA,EACJ,gBAAiB4wE,EACjB,gBAAiB5D,EACjBhsB,SAAUA,GACTmtD,EAAiBC,EAAcC,EAA+Bt3G,IAAM7P,cAAc2O,IAAQ,OAI7F,GAAImsG,EAAItnH,MAAM6mH,eAAgB,CAC5B,IAAI7rC,EAAwB,CAC1Bj8E,UAAW,qBACX60H,eAAgB,kBAChBpyD,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO4rG,iBAAiBlyG,EAAOyxG,EAAKzpD,IAE7C41D,gBAAiBA,EACjBC,aAAcA,EACdC,iBAAkBA,EAClB5vH,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZ69D,MAAOA,EACPy0B,SAAUA,EACV4D,aAAcA,GAEhB11E,EAAUrR,IAAY8rE,cAAcqsC,EAAItnH,MAAM6mH,eAAgB7rC,GAGhE,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAO,OAAO5c,OAAOs+D,IAAUp8D,GAExC1C,UAAWA,EACX6C,MAAO0lH,EAAItnH,MAAMq9E,YACjB93D,KAAM,gBACL/E,KAEJ,CACDlhB,IAAK,mBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAO6a,IAAMs8E,SAASx5F,IAAIqC,KAAKxB,MAAMgE,UAAU,SAAUsjH,EAAKzpD,GAC5D,OAAOn7C,EAAOwlG,gBAAgBZ,EAAKzpD,QAGtC,CACDv+D,IAAK,kBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETqyH,EAAUryH,KAAKsyH,mBACnB,OAAoBz3G,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO3C,QAAU/e,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAW,wBACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB6vF,SAAUjwF,KAAKiwF,UACDp1E,IAAM7P,cAAc,KAAM,CACxC8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO8vG,IAAMxxH,GAEtB1C,UAAW,gBACXwmB,KAAM,WACLsuG,EAAsBx3G,IAAM7P,cAAc,KAAM,CACjD8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO6vG,OAASvxH,GAEzB1C,UAAW,0BAGd,CACDO,IAAK,gBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAETuyH,EAAW13G,IAAMs8E,SAASx5F,IAAIqC,KAAKxB,MAAMgE,UAAU,SAAUsjH,EAAKzpD,GACpE,IAAK/5C,EAAO9jB,MAAMg0H,kBAAoBlwG,EAAO0wD,WAAW3W,GACtD,OAAO/5C,EAAOmwG,cAAc3M,EAAKzpD,MAGrC,OAAoBxhD,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,oBACVg1H,KAEJ,CACDz0H,IAAK,gBACLhC,MAAO,SAAuBgqH,EAAKzpD,GACjC,IAAIy0B,EAAW9wF,KAAKgzE,WAAW3W,GAC3B9+D,EAAYN,YAAW6oH,EAAItnH,MAAM+mH,iBAAkB,kBAAmB,CACxE,YAAaz0B,IAEXhtE,EAAK9jB,KAAKod,MAAM0G,GAAK,YAAcu4C,EACnCqwB,EAAiB1sF,KAAKod,MAAM0G,GAAK,WAAau4C,EAClD,OAAoBxhD,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAIA,EACJ,kBAAmB4oE,EACnB,eAAgBoE,EAChBvzF,UAAWA,EACX6C,MAAO0lH,EAAItnH,MAAM8mH,aACjBvhG,KAAM,YACJ/jB,KAAKxB,MAAMg0H,iBAAwC1hC,GAAYg1B,EAAItnH,MAAMgE,SAA3CsjH,EAAItnH,MAAMgE,YAE7C,CACD1E,IAAK,mBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEb,OAAIA,KAAKxB,MAAMgqG,aAAexoG,KAAKod,MAAM8zG,mBACnBr2G,IAAM7P,cAAc,SAAU,CAChD8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOkvG,QAAU1xH,GAE1B1C,UAAW,8CACXyiE,QAAShgE,KAAKoxH,YACd5zH,KAAM,UACQqd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACIsd,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,mBACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAEb,GAAIA,KAAKxB,MAAMgqG,aAAexoG,KAAKod,MAAM+zG,kBACvC,OAAoBt2G,IAAM7P,cAAc,SAAU,CAChD8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOsuG,QAAU3xH,GAE1B1C,UAAW,8CACXyiE,QAAShgE,KAAKqxH,WACd7zH,KAAM,UACQqd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,wBACIsd,IAAM7P,cAAc2O,IAAQ,SAGhD,CACD7b,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,wBAAyB+C,KAAKxB,MAAMjB,UAAW,CACxE,uBAAwByC,KAAKxB,MAAMgqG,aAEjCt/F,EAAYlJ,KAAK0yH,kBACjB1zG,EAAUhf,KAAKy2G,gBACfkc,EAAa3yH,KAAK4yH,mBAClBC,EAAa7yH,KAAK8yH,mBACtB,OAAoBj4G,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,GACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,2BACVo1H,EAAYzpH,EAAW2pH,GAAa7zG,QAnc3B1gB,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAsczCiyH,EA7UkB,CA8UzBj2G,aAEFxK,EAAgBygH,EAAS,eAAgB,CACvCntG,GAAI,KACJ8hG,YAAa,EACbxlH,MAAO,KACP7C,UAAW,KACXi1H,kBAAkB,EAClB7M,YAAa,KACbnd,YAAY,K,gBC/dd,IAAIuqB,EAAWx4H,EAAQ,IAEnBmU,EAAiB,GAAGA,eAExBrU,EAAOC,QAAU8B,OAAOovF,QAAU,SAAgBrsF,EAAIrB,GACpD,OAAO4Q,EAAehT,KAAKq3H,EAAS5zH,GAAKrB,K,cCL3CzD,EAAOC,QAAU,SAAUmR,GACzB,IACE,QAASA,IACT,MAAOZ,GACP,OAAO,K,6BCJX,oEAIA,SAAS6E,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GASjG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIkkH,EAA2B,SAAUp5G,IApEzC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUw6G,EAAap5G,GAEvB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAaiuG,GAE1B,SAASA,EAAYx0H,GACnB,IAAI+G,EA6BJ,OA9IJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMgzH,IAEtBztH,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAGXtmF,EAAM0tH,kBAEN1tH,EAAMyQ,QAAUzQ,EAAMyQ,QAAQ+D,KAAK7B,EAAuB3S,IAC1DA,EAAM4xG,eAAiB5xG,EAAM4xG,eAAep9F,KAAK7B,EAAuB3S,IACxEA,EAAM2tH,gBAAkB3tH,EAAM2tH,gBAAgBn5G,KAAK7B,EAAuB3S,IAC1EA,EAAM4tH,aAAe5tH,EAAM4tH,aAAap5G,KAAK7B,EAAuB3S,IACpEA,EAAM2xG,YAAc3xG,EAAM2xG,YAAYn9F,KAAK7B,EAAuB3S,IAClEA,EAAM0xG,aAAe1xG,EAAM0xG,aAAal9F,KAAK7B,EAAuB3S,IACpEA,EAAM6tH,QAAU7tH,EAAM6tH,QAAQr5G,KAAK7B,EAAuB3S,IAC1DA,EAAM8tH,qBAAuB9tH,EAAM8tH,qBAAqBt5G,KAAK7B,EAAuB3S,IACpFA,EAAM+tH,oBAAsB/tH,EAAM+tH,oBAAoBv5G,KAAK7B,EAAuB3S,IAClFA,EAAMguH,kBAAoBhuH,EAAMguH,kBAAkBx5G,KAAK7B,EAAuB3S,IAC9EA,EAAMiuH,kBAAoBjuH,EAAMiuH,kBAAkBz5G,KAAK7B,EAAuB3S,IAC9EA,EAAMkuH,gBAAkBluH,EAAMkuH,gBAAgB15G,KAAK7B,EAAuB3S,IAC1EA,EAAMmuH,uBAAyBnuH,EAAMmuH,uBAAuB35G,KAAK7B,EAAuB3S,IACxFA,EAAMouH,sBAAwBpuH,EAAMouH,sBAAsB55G,KAAK7B,EAAuB3S,IACtFA,EAAMquH,oBAAsBruH,EAAMquH,oBAAoB75G,KAAK7B,EAAuB3S,IAClFA,EAAMsuH,oBAAsBtuH,EAAMsuH,oBAAoB95G,KAAK7B,EAAuB3S,IAClFA,EAAMuuH,kBAAoBvuH,EAAMuuH,kBAAkB/5G,KAAK7B,EAAuB3S,IAC9EA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAwmCT,OAtuCoBlH,EAiIP20H,EAjIoBj0H,EAiIP,CAAC,CACzBjB,IAAK,aACLhC,MAAO,WACL,MAAO,CACLi4H,cAAe/zH,KAAKxB,MAAMu1H,cAC1B3zH,MAAOJ,KAAKxB,MAAMssG,KAClBkpB,SAAUh0H,KAAKxB,MAAMw1H,SACrBC,gBAAiBj0H,KAAKxB,MAAMy1H,gBAC5BC,YAAal0H,KAAKxB,MAAM01H,YACxBC,sBAAuBn0H,KAAKxB,MAAM41H,kBAClCC,sBAAuBr0H,KAAKxB,MAAM81H,qBAGrC,CACDx2H,IAAK,kBACLhC,MAAO,WACLkE,KAAKu0H,aAAe,IAAIh9F,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ72B,KAAKw0H,cAElE,IAAIC,EAAW1nC,EAAmB,IAAIx1D,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ,CACzEq9F,aAAa,IACZptG,OAAO,aAAazP,UAEnBglD,EAAQ,IAAI/3C,IAAImwG,EAAS92H,KAAI,SAAUiE,EAAGhH,GAC5C,MAAO,CAACgH,EAAGhH,OAEboF,KAAK00H,SAAW,IAAItxH,OAAO,IAAIrF,OAAO02H,EAASv2H,KAAK,IAAK,KAAM,KAC/D8B,KAAK20H,OAAS30H,KAAK40H,wBACnB50H,KAAK60H,WAAa70H,KAAK80H,yBACvB90H,KAAK+0H,UAAY/0H,KAAKg1H,wBACtBh1H,KAAKi1H,SAAWj1H,KAAKk1H,uBACrBl1H,KAAKm1H,QAAUn1H,KAAKo1H,sBACpBp1H,KAAKq1H,QAAUr1H,KAAKs1H,sBAEpBt1H,KAAKu1H,OAAS,SAAU3zH,GACtB,OAAOy6D,EAAM9kD,IAAI3V,MAGpB,CACD9D,IAAK,eACLhC,MAAO,SAAsBkR,GAC3B,OAAOA,EAAK7J,QAAQ,2BAA4B,UAEjD,CACDrF,IAAK,uBACLhC,MAAO,WACL,IAAIuvC,EAAY,IAAI9T,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ/R,EAAcA,EAAc,GAAI9kB,KAAKw0H,cAAe,GAAI,CAC/GN,aAAa,KAEf,OAAO,IAAI9wH,OAAO,IAAIrF,OAAOstC,EAAUvkB,OAAO,KAAK3jB,QAAQnD,KAAK+0H,UAAW,IAAIzkH,OAAOnN,QAAQnD,KAAK00H,SAAU,IAAK,KAAM,OAEzH,CACD52H,IAAK,wBACLhC,MAAO,WACL,IAAIuvC,EAAY,IAAI9T,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ,CACvDq9F,aAAa,IAGf,OADAl0H,KAAKw1H,UAAYnqF,EAAUvkB,OAAO,KAASxW,OAAOnN,QAAQnD,KAAK00H,SAAU,IAAI/gH,OAAO,GAC7E,IAAIvQ,OAAO,IAAIrF,OAAOiC,KAAKw1H,UAAW,KAAM,OAEpD,CACD13H,IAAK,yBACLhC,MAAO,WACL,IAAIuvC,EAAY,IAAI9T,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ,CACvDq9F,aAAa,IAEf,OAAO,IAAI9wH,OAAO,IAAIrF,OAAOstC,EAAUvkB,QAAQ,GAAGxW,OAAOnN,QAAQnD,KAAK00H,SAAU,IAAK,KAAM,OAE5F,CACD52H,IAAK,wBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMw1H,SAAU,CACvB,IAAI3oF,EAAY,IAAI9T,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ,CACvDz2B,MAAO,WACP4zH,SAAUh0H,KAAKxB,MAAMw1H,SACrBC,gBAAiBj0H,KAAKxB,MAAMy1H,gBAC5BE,sBAAuB,EACvBE,sBAAuB,IAEzB,OAAO,IAAIjxH,OAAO,IAAIrF,OAAOstC,EAAUvkB,OAAO,GAAG3jB,QAAQ,MAAO,IAAIA,QAAQnD,KAAK00H,SAAU,IAAIvxH,QAAQnD,KAAK20H,OAAQ,IAAK,KAAM,KAGjI,OAAO,IAAIvxH,OAAO,KAAM,OAEzB,CACDtF,IAAK,sBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMqY,OACb7W,KAAKy1H,WAAaz1H,KAAKxB,MAAMqY,WACxB,CACL,IAAIw0B,EAAY,IAAI9T,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ,CACvDz2B,MAAOJ,KAAKxB,MAAMssG,KAClBkpB,SAAUh0H,KAAKxB,MAAMw1H,SACrBC,gBAAiBj0H,KAAKxB,MAAMy1H,kBAE9Bj0H,KAAKy1H,WAAapqF,EAAUvkB,OAAO,GAAG/jB,MAAM,KAAK,GAGnD,OAAO,IAAIK,OAAO,GAAGrF,OAAOiC,KAAK01H,aAAa11H,KAAKy1H,YAAc,KAAM,OAExE,CACD33H,IAAK,sBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMm3H,OACb31H,KAAK41H,WAAa51H,KAAKxB,MAAMm3H,WACxB,CACL,IAAItqF,EAAY,IAAI9T,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ,CACvDz2B,MAAOJ,KAAKxB,MAAMssG,KAClBkpB,SAAUh0H,KAAKxB,MAAMw1H,SACrBC,gBAAiBj0H,KAAKxB,MAAMy1H,gBAC5BE,sBAAuB,EACvBE,sBAAuB,IAEzBr0H,KAAK41H,WAAavqF,EAAUvkB,OAAO,GAAG/jB,MAAM,KAAK,GAGnD,OAAO,IAAIK,OAAO,GAAGrF,OAAOiC,KAAK01H,aAAa11H,KAAK41H,YAAc,KAAM,OAExE,CACD93H,IAAK,cACLhC,MAAO,SAAqBA,GAC1B,GAAa,MAATA,EAAe,CACjB,GAAc,MAAVA,EAEF,OAAOA,EAGT,GAAIkE,KAAKxB,MAAMsoB,OAAQ,CACrB,IACI+uG,EADY,IAAIt+F,KAAK+b,aAAatzC,KAAKxB,MAAMq4B,OAAQ72B,KAAKw0H,cAC/B1tG,OAAOhrB,GAUtC,OARIkE,KAAKxB,MAAMqY,SACbg/G,EAAiB71H,KAAKxB,MAAMqY,OAASg/G,GAGnC71H,KAAKxB,MAAMm3H,SACbE,GAAkC71H,KAAKxB,MAAMm3H,QAGxCE,EAGT,OAAO/5H,EAAMQ,WAGf,MAAO,KAER,CACDwB,IAAK,aACLhC,MAAO,SAAoBkR,GACzB,IAAI8oH,EAAe9oH,EAAK7J,QAAQnD,KAAKm1H,QAAS,IAAIhyH,QAAQnD,KAAKq1H,QAAS,IAAI/kH,OAAOnN,QAAQ,MAAO,IAAIA,QAAQnD,KAAK+0H,UAAW,IAAI5xH,QAAQnD,KAAK20H,OAAQ,IAAIxxH,QAAQnD,KAAK60H,WAAY,KAAK1xH,QAAQnD,KAAKi1H,SAAU,KAAK9xH,QAAQnD,KAAK00H,SAAU10H,KAAKu1H,QAEjP,GAAIO,EAAc,CAChB,GAAqB,MAAjBA,EACF,OAAOA,EACT,IAAIC,GAAeD,EACnB,OAAOjpG,MAAMkpG,GAAe,KAAOA,EAGrC,OAAO,OAER,CACDj4H,IAAK,SACLhC,MAAO,SAAgBuY,EAAO2hH,EAAUC,GACtC,IAAIt7G,EAAS3a,KAETpF,EAAIo7H,GAAY,IACpBh2H,KAAKk2H,aACLl2H,KAAKm2H,MAAQttH,YAAW,WACtB8R,EAAOy7G,OAAO/hH,EAAO,GAAI4hH,KACxBr7H,GACHoF,KAAKq2H,KAAKhiH,EAAO4hH,KAElB,CACDn4H,IAAK,OACLhC,MAAO,SAAcuY,EAAO4hH,GAC1B,GAAIj2H,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,QAAS,CAC1C,IAAInP,EAAOI,KAAKxB,MAAMoB,KAAOq2H,EACzBK,EAAet2H,KAAKu2H,WAAWv2H,KAAK8rF,SAAS/8E,QAAQjT,QAAU,EAC/D06H,EAAWx2H,KAAKy2H,cAAcH,EAAe12H,GACjDI,KAAK02H,YAAYF,EAAU,KAAM,QACjCx2H,KAAKoU,YAAYC,EAAOmiH,GACxBx2H,KAAK22H,eAAetiH,EAAOiiH,EAAcE,MAG5C,CACD14H,IAAK,sBACLhC,MAAO,SAA6BuY,GAC7BrU,KAAKxB,MAAMihB,WACdzf,KAAK8rF,SAAS/8E,QAAQq9E,QACtBpsF,KAAKo2H,OAAO/hH,EAAO,KAAM,GACzBA,EAAMY,oBAGT,CACDnX,IAAK,oBACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKk2H,eAGR,CACDp4H,IAAK,uBACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKk2H,eAGR,CACDp4H,IAAK,kBACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKk2H,eAGR,CACDp4H,IAAK,oBACLhC,MAAO,SAA2BuY,GACV,KAAlBA,EAAMO,SAAoC,KAAlBP,EAAMO,SAChC5U,KAAKo2H,OAAO/hH,EAAO,KAAM,KAG5B,CACDvW,IAAK,wBACLhC,MAAO,SAA+BuY,GAC/BrU,KAAKxB,MAAMihB,WACdzf,KAAK8rF,SAAS/8E,QAAQq9E,QACtBpsF,KAAKo2H,OAAO/hH,EAAO,MAAO,GAC1BA,EAAMY,oBAGT,CACDnX,IAAK,sBACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKk2H,eAGR,CACDp4H,IAAK,yBACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKk2H,eAGR,CACDp4H,IAAK,oBACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKk2H,eAGR,CACDp4H,IAAK,sBACLhC,MAAO,SAA6BuY,GACZ,KAAlBA,EAAMO,SAAoC,KAAlBP,EAAMO,SAChC5U,KAAKo2H,OAAO/hH,EAAO,MAAO,KAG7B,CACDvW,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAK42H,gBACPviH,EAAM9V,OAAOzC,MAAQkE,KAAK62H,WAG5B72H,KAAK42H,eAAgB,IAEtB,CACD94H,IAAK,iBACLhC,MAAO,SAAwBuY,GAG7B,GAFArU,KAAK62H,UAAYxiH,EAAM9V,OAAOzC,MAE1BuY,EAAMqH,UAAYrH,EAAMiB,OAC1BtV,KAAK42H,eAAgB,MADvB,CAKA,IAAI3jH,EAAiBoB,EAAM9V,OAAO0U,eAC9BC,EAAemB,EAAM9V,OAAO2U,aAC5B4jH,EAAaziH,EAAM9V,OAAOzC,MAC1Bi7H,EAAc,KAMlB,OAJI1iH,EAAMiB,QACRjB,EAAMY,iBAGAZ,EAAMM,OAEZ,KAAK,GACH3U,KAAKq2H,KAAKhiH,EAAO,GACjBA,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAKq2H,KAAKhiH,GAAQ,GAClBA,EAAMY,iBACN,MAGF,KAAK,GACEjV,KAAKg3H,cAAcF,EAAWnjH,OAAOV,EAAiB,KACzDoB,EAAMY,iBAGR,MAGF,KAAK,GACEjV,KAAKg3H,cAAcF,EAAWnjH,OAAOV,KACxCoB,EAAMY,iBAGR,MAGF,KAAK,GACH8hH,EAAc/2H,KAAKy2H,cAAcz2H,KAAKu2H,WAAWO,IACjD92H,KAAK8rF,SAAS/8E,QAAQjT,MAAQkE,KAAKi3H,YAAYF,GAC/C/2H,KAAK8rF,SAAS/8E,QAAQolF,aAAa,gBAAiB4iC,GACpD/2H,KAAKoU,YAAYC,EAAO0iH,GACxB,MAGF,KAAK,EAGH,GAFA1iH,EAAMY,iBAEFhC,IAAmBC,EAAc,CACnC,IAAIgkH,EAAaJ,EAAWnjH,OAAOV,EAAiB,GAEhDkkH,EAAwBn3H,KAAKo3H,sBAAsBN,GACnDO,EAAmBF,EAAsBE,iBACzCC,EAAgCH,EAAsBG,8BAE1D,GAAIt3H,KAAKg3H,cAAcE,GAAa,CAClC,IAAIK,EAAgBv3H,KAAKw3H,iBAAiBV,GAE1C,GAAI92H,KAAK20H,OAAOh4H,KAAKu6H,GACnBl3H,KAAK20H,OAAO5tD,UAAY,EACxBgwD,EAAcD,EAAWv6H,MAAM,EAAG0W,EAAiB,GAAK6jH,EAAWv6H,MAAM0W,EAAiB,QACrF,GAAIjT,KAAKi1H,SAASt4H,KAAKu6H,GAC5Bl3H,KAAKi1H,SAASluD,UAAY,EAEtBwwD,EACFv3H,KAAK8rF,SAAS/8E,QAAQiE,kBAAkBC,EAAiB,EAAGA,EAAiB,GAE7E8jH,EAAcD,EAAWv6H,MAAM,EAAG0W,EAAiB,GAAK6jH,EAAWv6H,MAAM0W,QAEtE,GAAIokH,EAAmB,GAAKpkH,EAAiBokH,EAAkB,CACpE,IAAII,EAAez3H,KAAK03H,kBAAoB13H,KAAKxB,MAAM41H,mBAAqB,GAAKmD,EAAgB,GAAK,IACtGR,EAAcD,EAAWv6H,MAAM,EAAG0W,EAAiB,GAAKwkH,EAAeX,EAAWv6H,MAAM0W,QAC7C,IAAlCqkH,GACTP,EAAcD,EAAWv6H,MAAM,EAAG0W,EAAiB,GAAK,IAAM6jH,EAAWv6H,MAAM0W,GAC/E8jH,EAAc/2H,KAAKu2H,WAAWQ,GAAe,EAAIA,EAAc,IAE/DA,EAAcD,EAAWv6H,MAAM,EAAG0W,EAAiB,GAAK6jH,EAAWv6H,MAAM0W,GAI7EjT,KAAK23H,YAAYtjH,EAAO0iH,EAAa,KAAM,sBAE3CA,EAAc/2H,KAAK43H,YAAYd,EAAY7jH,EAAgBC,GAC3DlT,KAAK23H,YAAYtjH,EAAO0iH,EAAa,KAAM,gBAG7C,MAGF,KAAK,GAGH,GAFA1iH,EAAMY,iBAEFhC,IAAmBC,EAAc,CACnC,IAAI2kH,EAAcf,EAAWnjH,OAAOV,GAEhC6kH,EAAyB93H,KAAKo3H,sBAAsBN,GACpDiB,EAAoBD,EAAuBT,iBAC3CW,EAAiCF,EAAuBR,8BAE5D,GAAIt3H,KAAKg3H,cAAca,GAAc,CACnC,IAAII,EAAiBj4H,KAAKw3H,iBAAiBV,GAE3C,GAAI92H,KAAK20H,OAAOh4H,KAAKk7H,GACnB73H,KAAK20H,OAAO5tD,UAAY,EACxBgwD,EAAcD,EAAWv6H,MAAM,EAAG0W,GAAkB6jH,EAAWv6H,MAAM0W,EAAiB,QACjF,GAAIjT,KAAKi1H,SAASt4H,KAAKk7H,GAC5B73H,KAAKi1H,SAASluD,UAAY,EAEtBkxD,EACFj4H,KAAKk4H,MAAMnoG,MAAMooG,IAAInlH,kBAAkBC,EAAiB,EAAGA,EAAiB,GAE5E8jH,EAAcD,EAAWv6H,MAAM,EAAG0W,GAAkB6jH,EAAWv6H,MAAM0W,EAAiB,QAEnF,GAAI8kH,EAAoB,GAAK9kH,EAAiB8kH,EAAmB,CACtE,IAAIK,EAAgBp4H,KAAK03H,kBAAoB13H,KAAKxB,MAAM41H,mBAAqB,GAAK6D,EAAiB,GAAK,IAExGlB,EAAcD,EAAWv6H,MAAM,EAAG0W,GAAkBmlH,EAAgBtB,EAAWv6H,MAAM0W,EAAiB,QAC1D,IAAnC+kH,GACTjB,EAAcD,EAAWv6H,MAAM,EAAG0W,GAAkB,IAAM6jH,EAAWv6H,MAAM0W,EAAiB,GAC5F8jH,EAAc/2H,KAAKu2H,WAAWQ,GAAe,EAAIA,EAAc,IAE/DA,EAAcD,EAAWv6H,MAAM,EAAG0W,GAAkB6jH,EAAWv6H,MAAM0W,EAAiB,GAI1FjT,KAAK23H,YAAYtjH,EAAO0iH,EAAa,KAAM,2BAE3CA,EAAc/2H,KAAK43H,YAAYd,EAAY7jH,EAAgBC,GAC3DlT,KAAK23H,YAAYtjH,EAAO0iH,EAAa,KAAM,gBAM7C/2H,KAAKxB,MAAMiW,WACbzU,KAAKxB,MAAMiW,UAAUJ,MAGxB,CACDvW,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9BA,EAAMY,iBACN,IAAIg9B,EAAO59B,EAAMM,OAASN,EAAMO,QAC5BqkG,EAAO5oG,OAAOmF,aAAay8B,GAC3BomF,EAAgBr4H,KAAKq4H,cAAcpf,GACnCqf,EAAct4H,KAAKs4H,YAAYrf,IAE/B,IAAMhnE,GAAQA,GAAQ,IAAMqmF,GAAeD,IAC7Cr4H,KAAKu4H,OAAOlkH,EAAO4kG,EAAM,CACvBof,cAAeA,EACfC,YAAaA,MAIlB,CACDx6H,IAAK,UACLhC,MAAO,SAAiBuY,GACtBA,EAAMY,iBACN,IAAItG,GAAQ0F,EAAMmkH,eAAiB53H,OAAM,eAAmB63H,QAAQ,QAEpE,GAAI9pH,EAAM,CACR,IAAI+pH,EAAe14H,KAAKu2H,WAAW5nH,GAEf,MAAhB+pH,GACF14H,KAAKu4H,OAAOlkH,EAAOqkH,EAAap8H,eAIrC,CACDwB,IAAK,iBACLhC,MAAO,WACL,OAA0B,OAAnBkE,KAAKxB,MAAMkhC,KAAgB1/B,KAAKxB,MAAMkhC,IAAM,IAEpD,CACD5hC,IAAK,cACLhC,MAAO,SAAqBm9G,GAC1B,SAAIj5G,KAAK60H,WAAWl4H,KAAKs8G,IAAkB,MAATA,KAChCj5G,KAAK60H,WAAW9tD,UAAY,GACrB,KAKV,CACDjpE,IAAK,gBACLhC,MAAO,SAAuBm9G,GAC5B,QAAIj5G,KAAKi1H,SAASt4H,KAAKs8G,KACrBj5G,KAAKi1H,SAASluD,UAAY,GACnB,KAKV,CACDjpE,IAAK,gBACLhC,MAAO,WACL,MAA2B,YAApBkE,KAAKxB,MAAMssG,OAEnB,CACDhtG,IAAK,wBACLhC,MAAO,SAA+Bua,GACpC,IAAIghH,EAAmBhhH,EAAIpQ,OAAOjG,KAAKi1H,UACvCj1H,KAAKi1H,SAASluD,UAAY,EAC1B,IACIuwD,EADcjhH,EAAIlT,QAAQnD,KAAKq1H,QAAS,IAAI/kH,OAAOnN,QAAQ,MAAO,IAAIA,QAAQnD,KAAK+0H,UAAW,IAClD9uH,OAAOjG,KAAKi1H,UAE5D,OADAj1H,KAAKi1H,SAASluD,UAAY,EACnB,CACLswD,iBAAkBA,EAClBC,8BAA+BA,KAGlC,CACDx5H,IAAK,iBACLhC,MAAO,SAAwBua,GAC7B,IAAIghH,EAAmBhhH,EAAIpQ,OAAOjG,KAAKi1H,UACvCj1H,KAAKi1H,SAASluD,UAAY,EAC1B,IAAI4xD,EAAiBtiH,EAAIpQ,OAAOjG,KAAK60H,YACrC70H,KAAK60H,WAAW9tD,UAAY,EAC5B,IAAI6xD,EAAkBviH,EAAIpQ,OAAOjG,KAAKm1H,SACtCn1H,KAAKm1H,QAAQpuD,UAAY,EACzB,IAAI8xD,EAAoBxiH,EAAIpQ,OAAOjG,KAAK+0H,WAExC,OADA/0H,KAAK+0H,UAAUhuD,UAAY,EACpB,CACLswD,iBAAkBA,EAClBsB,eAAgBA,EAChBC,gBAAiBA,EACjBC,kBAAmBA,KAGtB,CACD/6H,IAAK,SACLhC,MAAO,SAAgBuY,EAAOrH,GAC5B,IAAIijB,EAAO9yB,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,CAC7Ek7H,eAAe,EACfC,aAAa,GAEXQ,EAAuB9rH,EAAK/G,OAAOjG,KAAK60H,YAG5C,GAFA70H,KAAK60H,WAAW9tD,UAAY,EAEvB/mE,KAAK+4H,mBAA8C,IAA1BD,EAA9B,CAIA,IAUI/B,EAVA9jH,EAAiBjT,KAAK8rF,SAAS/8E,QAAQkE,eACvCC,EAAelT,KAAK8rF,SAAS/8E,QAAQmE,aACrC4jH,EAAa92H,KAAK8rF,SAAS/8E,QAAQjT,MAAMwU,OAEzC0oH,EAAuBh5H,KAAKi5H,eAAenC,GAC3CO,EAAmB2B,EAAqB3B,iBACxCsB,EAAiBK,EAAqBL,eACtCC,EAAkBI,EAAqBJ,gBACvCC,EAAoBG,EAAqBH,kBAI7C,GAAI5oG,EAAKqoG,YACgB,IAAnBrlH,IACF8jH,EAAcD,GAEU,IAApB6B,GAA0C,IAAjBzlH,IAC3B6jH,EAAc/2H,KAAKk5H,WAAWpC,EAAY9pH,EAAM,EAAGkG,IAGrDlT,KAAK23H,YAAYtjH,EAAO0iH,EAAa/pH,EAAM,gBAExC,GAAIijB,EAAKooG,cACVhB,EAAmB,GAAKpkH,IAAmBokH,EAC7Cr3H,KAAK23H,YAAYtjH,EAAOyiH,EAAY9pH,EAAM,WACjCqqH,EAAmBpkH,GAAkBokH,EAAmBnkH,IAGlC,IAAtBmkH,GAA2Br3H,KAAKxB,MAAM81H,qBAF/CyC,EAAc/2H,KAAKk5H,WAAWpC,EAAY9pH,EAAMiG,EAAgBC,GAChElT,KAAK23H,YAAYtjH,EAAO0iH,EAAa/pH,EAAM,eAKxC,CACL,IAAIsnH,EAAoBt0H,KAAKu0H,aAAa4E,kBAAkB9E,sBACxDhxG,EAAYpQ,IAAmBC,EAAe,eAAiB,SAEnE,GAAImkH,EAAmB,GAAKpkH,EAAiBokH,GAC3C,GAAIpkH,EAAiBjG,EAAKrS,QAAU08H,EAAmB,IAAM/C,EAAmB,CAC9E,IAAI8E,EAAYP,GAAqB5lH,EAAiB4lH,EAAoB,EAAID,GAAmB3lH,EAAiB2lH,EAAkB9B,EAAWn8H,OAC/Io8H,EAAcD,EAAWv6H,MAAM,EAAG0W,GAAkBjG,EAAO8pH,EAAWv6H,MAAM0W,EAAiBjG,EAAKrS,OAAQy+H,GAAatC,EAAWv6H,MAAM68H,GACxIp5H,KAAK23H,YAAYtjH,EAAO0iH,EAAa/pH,EAAMqW,SAG7C0zG,EAAc/2H,KAAKk5H,WAAWpC,EAAY9pH,EAAMiG,EAAgBC,GAChElT,KAAK23H,YAAYtjH,EAAO0iH,EAAa/pH,EAAMqW,OAIhD,CACDvlB,IAAK,aACLhC,MAAO,SAAoBA,EAAOkR,EAAM4I,EAAO9C,GAG7C,GAAyB,KAFA,MAAT9F,EAAeA,EAAOA,EAAKjK,MAAM,MAEnCpI,OAAc,CAC1B,IAAI08H,EAAmBv7H,EAAMS,MAAMqZ,EAAO9C,GAAK7M,OAAOjG,KAAKi1H,UAE3D,OADAj1H,KAAKi1H,SAASluD,UAAY,EACnBswD,EAAmB,EAAIv7H,EAAMS,MAAM,EAAGqZ,GAAS5V,KAAKi3H,YAAYjqH,GAAQlR,EAAMS,MAAMuW,GAAOhX,GAASkE,KAAKi3H,YAAYjqH,GACvH,OAAI8F,EAAM8C,IAAU9Z,EAAMnB,OACxBqF,KAAKi3H,YAAYjqH,GACL,IAAV4I,EACF5I,EAAOlR,EAAMS,MAAMuW,GACjBA,IAAQhX,EAAMnB,OAChBmB,EAAMS,MAAM,EAAGqZ,GAAS5I,EAExBlR,EAAMS,MAAM,EAAGqZ,GAAS5I,EAAOlR,EAAMS,MAAMuW,KAGrD,CACDhV,IAAK,cACLhC,MAAO,SAAqBA,EAAO8Z,EAAO9C,GAGxC,OADIA,EAAM8C,IAAU9Z,EAAMnB,OAAsB,GAAsB,IAAVib,EAA2B9Z,EAAMS,MAAMuW,GAAcA,IAAQhX,EAAMnB,OAAsBmB,EAAMS,MAAM,EAAGqZ,GAA0B9Z,EAAMS,MAAM,EAAGqZ,GAAS9Z,EAAMS,MAAMuW,KAGnO,CACDhV,IAAK,aACLhC,MAAO,WACL,IAAImX,EAAiBjT,KAAK8rF,SAAS/8E,QAAQkE,eACvC6jH,EAAa92H,KAAK8rF,SAAS/8E,QAAQjT,MACnCu9H,EAAcvC,EAAWn8H,OACzB0hE,EAAQ,KAERi9D,GAAgBt5H,KAAKy1H,YAAc,IAAI96H,OAE3CsY,GAAkCqmH,EAClC,IAAIrgB,GAFJ6d,EAAaA,EAAW3zH,QAAQnD,KAAKq1H,QAAS,KAExB1hH,OAAOV,GAE7B,GAAIjT,KAAKg3H,cAAc/d,GACrB,OAAOhmG,EAAiBqmH,EAM1B,IAFA,IAAI1+H,EAAIqY,EAAiB,EAElBrY,GAAK,GAAG,CAGb,GAFAq+G,EAAO6d,EAAWnjH,OAAO/Y,GAErBoF,KAAKg3H,cAAc/d,GAAO,CAC5B58C,EAAQzhE,EAAI0+H,EACZ,MAEA1+H,IAIJ,GAAc,OAAVyhE,EACFr8D,KAAK8rF,SAAS/8E,QAAQiE,kBAAkBqpD,EAAQ,EAAGA,EAAQ,OACtD,CAGL,IAFAzhE,EAAIqY,EAEGrY,EAAIy+H,GAAa,CAGtB,GAFApgB,EAAO6d,EAAWnjH,OAAO/Y,GAErBoF,KAAKg3H,cAAc/d,GAAO,CAC5B58C,EAAQzhE,EAAI0+H,EACZ,MAEA1+H,IAIU,OAAVyhE,GACFr8D,KAAK8rF,SAAS/8E,QAAQiE,kBAAkBqpD,EAAOA,GAInD,OAAOA,GAAS,IAEjB,CACDv+D,IAAK,eACLhC,MAAO,WACLkE,KAAKu5H,eAEN,CACDz7H,IAAK,gBACLhC,MAAO,SAAuBm9G,GAC5B,QAAoB,IAAhBA,EAAKt+G,UAAiBqF,KAAK00H,SAAS/3H,KAAKs8G,IAASj5G,KAAKi1H,SAASt4H,KAAKs8G,IAASj5G,KAAK20H,OAAOh4H,KAAKs8G,IAASj5G,KAAK60H,WAAWl4H,KAAKs8G,OAC/Hj5G,KAAKw5H,cACE,KAKV,CACD17H,IAAK,aACLhC,MAAO,WACLkE,KAAK00H,SAAS3tD,UAAY,EAC1B/mE,KAAKi1H,SAASluD,UAAY,EAC1B/mE,KAAK20H,OAAO5tD,UAAY,EACxB/mE,KAAK60H,WAAW9tD,UAAY,IAE7B,CACDjpE,IAAK,cACLhC,MAAO,SAAqBuY,EAAOolH,EAAUC,EAAkBr2G,GAC7D,IAAIizG,EAAet2H,KAAK8rF,SAAS/8E,QAAQjT,MACrC06H,EAAW,KAEC,MAAZiD,IAEFjD,GADAA,EAAWx2H,KAAKu2H,WAAWkD,KACFz5H,KAAKxB,MAAMm7H,WAAiBnD,EAAJ,EACjDx2H,KAAK02H,YAAYF,EAAUkD,EAAkBr2G,EAAWo2G,GACxDz5H,KAAK22H,eAAetiH,EAAOiiH,EAAcE,MAG5C,CACD14H,IAAK,iBACLhC,MAAO,SAAwBuY,EAAOiiH,EAAcE,GAC9Cx2H,KAAKxB,MAAM+T,UAAYvS,KAAK45H,eAAetD,EAAcE,IAC3Dx2H,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAO06H,MAIZ,CACD14H,IAAK,iBACLhC,MAAO,SAAwBw6H,EAAcE,GAC3C,OAAiB,OAAbA,GAAsC,OAAjBF,GAIT,MAAZE,GAEKA,KAD0C,kBAAjBF,EAA4Bt2H,KAAKu2H,WAAWD,GAAgBA,KAM/F,CACDx4H,IAAK,gBACLhC,MAAO,SAAuBA,GAC5B,MAAc,MAAVA,GAA0B,MAATA,EACZ,KAGc,OAAnBkE,KAAKxB,MAAMkhC,KAAgB5jC,EAAQkE,KAAKxB,MAAMkhC,IACzC1/B,KAAKxB,MAAMkhC,IAGG,OAAnB1/B,KAAKxB,MAAM6G,KAAgBvJ,EAAQkE,KAAKxB,MAAM6G,IACzCrF,KAAKxB,MAAM6G,IAGbvJ,IAER,CACDgC,IAAK,cACLhC,MAAO,SAAqBA,EAAO49H,EAAkBr2G,EAAWo2G,GAC9DC,EAAmBA,GAAoB,GACvC,IAAI3V,EAAU/jH,KAAK8rF,SAAS/8E,QACxB+nH,EAAa/S,EAAQjoH,MACrB06H,EAAWx2H,KAAKi3H,YAAYn7H,GAC5B+9H,EAAgB/C,EAAWn8H,OAM/B,GAJI67H,IAAaiD,IACfjD,EAAWx2H,KAAK85H,aAAatD,EAAUiD,IAGnB,IAAlBI,EAAqB,CACvB9V,EAAQjoH,MAAQ06H,EAChBzS,EAAQ/wG,kBAAkB,EAAG,GAC7B,IACIE,EADQlT,KAAKu5H,aACUG,EAAiB/+H,OAC5CopH,EAAQ/wG,kBAAkBE,EAAcA,OACnC,CACL,IAAID,EAAiB8wG,EAAQ9wG,eACzB8mH,EAAgBhW,EAAQ7wG,aAC5B6wG,EAAQjoH,MAAQ06H,EAChB,IAAIwD,EAAYxD,EAAS77H,OAEzB,GAAkB,iBAAd0oB,EAA8B,CAChC,IAAI42G,EAAaj6H,KAAKu2H,YAAYO,GAAc,IAAIv6H,MAAM,EAAG0W,IAEzDinH,GAD+B,OAAfD,EAAsBA,EAAW39H,WAAa,IACpCyG,MAAM,IAAI7E,KAAK,IAAIH,OAAOiC,KAAKw1H,UAAW,OACpE2E,EAAS,IAAI/2H,OAAO82H,EAAW,KACnCC,EAAOx9H,KAAK65H,GACZ,IAAI4D,EAAQV,EAAiB32H,MAAM,IAAI7E,KAAK,IAAIH,OAAOiC,KAAKw1H,UAAW,OACnE6E,EAAS,IAAIj3H,OAAOg3H,EAAO,KAC/BC,EAAO19H,KAAK65H,EAASj6H,MAAM49H,EAAOpzD,YAClCgzD,EAAgBI,EAAOpzD,UAAYszD,EAAOtzD,UAC1Cg9C,EAAQ/wG,kBAAkB+mH,EAAeA,QACpC,GAAIC,IAAcH,EACL,WAAdx2G,GAAwC,uBAAdA,EAAoC0gG,EAAQ/wG,kBAAkB+mH,EAAgB,EAAGA,EAAgB,GAA0B,kBAAd12G,EAA+B0gG,EAAQ/wG,kBAAkB+mH,EAAgB,EAAGA,EAAgB,GAA0B,iBAAd12G,GAA8C,SAAdA,GAAsB0gG,EAAQ/wG,kBAAkB+mH,EAAeA,QAC7U,GAAkB,uBAAd12G,EAAoC,CAC7C,IAAIi3G,EAAWxD,EAAWnjH,OAAOomH,EAAgB,GAC7CQ,EAAWzD,EAAWnjH,OAAOomH,GAC7BppF,EAAOkpF,EAAgBG,EAEvBQ,EAAcx6H,KAAK20H,OAAOh4H,KAAK49H,GAE/BC,GAAwB,IAAT7pF,EACjBopF,GAAiB,GACPS,GAAex6H,KAAKg3H,cAAcsD,KAC5CP,IAAkB,EAAIppF,EAAO,GAG/B3wC,KAAK20H,OAAO5tD,UAAY,EACxBg9C,EAAQ/wG,kBAAkB+mH,EAAeA,QACpC,GAAmB,MAAfjD,GAAoC,WAAdzzG,EAAwB,CACvD0gG,EAAQ/wG,kBAAkB,EAAG,GAE7B,IAEIynH,EAFSz6H,KAAKu5H,aAEYG,EAAiB/+H,OAAS,EAExDopH,EAAQ/wG,kBAAkBynH,EAAgBA,QAE1CV,GAAiCC,EAAYH,EAC7C9V,EAAQ/wG,kBAAkB+mH,EAAeA,GAI7ChW,EAAQ5vB,aAAa,gBAAiBr4F,KAEvC,CACDgC,IAAK,mBACLhC,MAAO,SAA0B06H,GAC/BA,EAAYA,GAAax2H,KAAKxB,MAAMm7H,WAAiBnD,EAAJ,EACjD,IAAIzS,EAAU/jH,KAAK8rF,SAAS/8E,QACxBjT,EAAQioH,EAAQjoH,MAChB+5H,EAAiB71H,KAAK61H,eAAeW,GAErC16H,IAAU+5H,IACZ9R,EAAQjoH,MAAQ+5H,EAChB9R,EAAQ5vB,aAAa,gBAAiBqiC,MAGzC,CACD14H,IAAK,iBACLhC,MAAO,SAAwBua,GAC7B,IAAIqkH,EAAUrkH,GAAQrW,KAAKxB,MAAMm7H,WAAiBtjH,EAAJ,EAC9C,OAAOrW,KAAKi3H,YAAYyD,KAEzB,CACD58H,IAAK,eACLhC,MAAO,SAAsByyB,EAAMosG,GACjC,GAAIpsG,GAAQosG,EAAM,CAChB,IAAItD,EAAmBsD,EAAK10H,OAAOjG,KAAKi1H,UAExC,OADAj1H,KAAKi1H,SAASluD,UAAY,GACG,IAAtBswD,EAA0B9oG,EAAKxrB,MAAM/C,KAAKi1H,UAAU,GAAK0F,EAAKp+H,MAAM86H,GAAoB9oG,EAGjG,OAAOA,IAER,CACDzwB,IAAK,mBACLhC,MAAO,SAA0BA,GAC/B,GAAIA,EAAO,CACT,IAAI8+H,EAAa9+H,EAAMiH,MAAM/C,KAAKi1H,UAElC,GAA0B,IAAtB2F,EAAWjgI,OACb,OAAOigI,EAAW,GAAGz3H,QAAQnD,KAAKm1H,QAAS,IAAI7kH,OAAOnN,QAAQ,MAAO,IAAIA,QAAQnD,KAAK+0H,UAAW,IAAIp6H,OAIzG,OAAO,IAER,CACDmD,IAAK,cACLhC,MAAO,SAAqBuY,EAAOvY,GAC7BkE,KAAKxB,MAAMqqG,eACb7oG,KAAKxB,MAAMqqG,cAAc,CACvBlzF,cAAetB,EACfvY,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOA,OAKd,CACDgC,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAI6M,EAASlhB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACG3qE,EAAO1iB,MAAMgU,SACf0O,EAAO1iB,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAIsN,EAAS3hB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACD,IAAIyqC,EAAe30G,EAAOmqE,SAAS/8E,QAAQjT,MAE3C,GAAI6lB,EAAOi4G,eAAetD,EAAc30G,EAAOnjB,MAAM1C,OAAQ,CAC3D,IAAI06H,EAAW70G,EAAO80G,cAAc90G,EAAO40G,WAAWD,IAEtD30G,EAAOk5G,iBAAiBrE,GAExB70G,EAAOvN,YAAYC,EAAOmiH,GAGxB70G,EAAOnjB,MAAMiU,QACfkP,EAAOnjB,MAAMiU,OAAO4B,QAIzB,CACDvW,IAAK,aACLhC,MAAO,WACDkE,KAAKm2H,OACPltH,cAAcjJ,KAAKm2H,SAGtB,CACDr4H,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMs8H,aAA2C,YAA5B96H,KAAKxB,MAAMu8H,eAE7C,CACDj9H,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMs8H,aAA2C,eAA5B96H,KAAKxB,MAAMu8H,eAE7C,CACDj9H,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMs8H,aAA2C,aAA5B96H,KAAKxB,MAAMu8H,eAE7C,CACDj9H,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMw8H,YAAkC,YAApBh7H,KAAKxB,MAAMssG,MAAuB9qG,KAAKxB,MAAM41H,kBAAgC,UAAZ,aAElG,CACDt2H,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKu0H,eAEb,CACDz2H,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,gBAGP,IAAIw9C,EAAWx2H,KAAKy2H,cAAcz2H,KAAKxB,MAAM1C,OAEpB,OAArBkE,KAAKxB,MAAM1C,OAAkBkE,KAAKxB,MAAM1C,QAAU06H,GACpDx2H,KAAKoU,YAAY,KAAMoiH,KAG1B,CACD14H,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAAO6F,EAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,iBAGjD,IAAIiiD,EAAkBj7H,KAAKi7H,gBAAgBz3G,GAM3C,GAJIy3G,GACFj7H,KAAKizH,kBAGHzvG,EAAU1nB,QAAUkE,KAAKxB,MAAM1C,OAASm/H,EAAiB,CAC3D,IAAIzE,EAAWx2H,KAAKy2H,cAAcz2H,KAAKxB,MAAM1C,OAC7CkE,KAAK66H,iBAAiBrE,GAEG,OAArBx2H,KAAKxB,MAAM1C,OAAkBkE,KAAKxB,MAAM1C,QAAU06H,GACpDx2H,KAAKoU,YAAY,KAAMoiH,MAI5B,CACD14H,IAAK,kBACLhC,MAAO,SAAyB0nB,GAC9B,IAAIlB,EAAStiB,KAGb,MADkB,CAAC,SAAU,gBAAiB,OAAQ,WAAY,kBAAmB,cAAe,oBAAqB,oBAAqB,SAAU,UACrIqqG,MAAK,SAAU1qF,GAChC,OAAO6D,EAAU7D,KAAY2C,EAAO9jB,MAAMmhB,QAG7C,CACD7hB,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,qBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,sBAAuB+C,KAAKxB,MAAM08H,gBACzDC,EAAgBn7H,KAAK61H,eAAe71H,KAAKxB,MAAM1C,OACnD,OAAoB+e,IAAM7P,cAAc2vE,IAAW,CACjD7/D,IAAK9a,KAAK8rF,SACVhoE,GAAI9jB,KAAKxB,MAAMmuF,QACfvsF,MAAOJ,KAAKxB,MAAM48H,WAClBr3G,KAAM,aACNxmB,UAAWA,EACXg9E,aAAc4gD,EACd39H,KAAMwC,KAAKxB,MAAMhB,KACjB2nH,KAAMnlH,KAAKxB,MAAM2mH,KACjBrgD,SAAU9kE,KAAKxB,MAAMsmE,SACrBk2D,UAAWh7H,KAAKq7H,eAChBx3B,UAAW7jG,KAAKxB,MAAM88H,UACtB77G,SAAUzf,KAAKxB,MAAMihB,SACrBotE,SAAU7sF,KAAKxB,MAAMquF,SACrB0uC,QAASv7H,KAAKxB,MAAM+8H,QACpB33B,YAAa5jG,KAAKxB,MAAMolG,YACxBvxF,SAAUrS,KAAKxB,MAAM6T,SACrB5V,KAAMuD,KAAKxB,MAAM/B,KACjBu/G,UAAWh8G,KAAKxB,MAAMw9G,UACtBvnG,UAAWzU,KAAKm3G,eAChBjiG,WAAYlV,KAAKkzH,gBACjBl9G,QAAShW,KAAKgW,QACdgqD,QAAShgE,KAAKmzH,aACd1gH,OAAQzS,KAAKk3G,YACb1kG,QAASxS,KAAKi3G,aACdmc,QAASpzH,KAAKozH,QACd1zF,IAAK1/B,KAAKxB,MAAMkhC,IAChBr6B,IAAKrF,KAAKxB,MAAM6G,IAChB,gBAAiBrF,KAAKxB,MAAMkhC,IAC5B,gBAAiB1/B,KAAKxB,MAAM6G,IAC5B,gBAAiBrF,KAAKxB,MAAM1C,MAC5B,kBAAmBkE,KAAKxB,MAAMkuF,mBAGjC,CACD5uF,IAAK,iBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,uFAAwF,CACjH,aAAc+C,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMg9H,0BACVtiD,EAAOj8E,YAAW,gBAAiB+C,KAAKxB,MAAMi9H,qBAClD,OAAoB5gH,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAWA,EACX8hB,aAAcrf,KAAKqzH,qBACnBv5G,YAAa9Z,KAAKszH,oBAClB3hC,UAAW3xF,KAAKuzH,kBAChB9+G,UAAWzU,KAAKwzH,kBAChB7P,QAAS3jH,KAAKyzH,gBACdh0G,SAAUzf,KAAKxB,MAAMihB,SACrBqlD,UAAW,GACGjqD,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW27E,IACIr+D,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,mBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,yFAA0F,CACnH,aAAc+C,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMk9H,0BACVxiD,EAAOj8E,YAAW,gBAAiB+C,KAAKxB,MAAMm9H,qBAClD,OAAoB9gH,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAWA,EACX8hB,aAAcrf,KAAK0zH,uBACnB55G,YAAa9Z,KAAK2zH,sBAClBhiC,UAAW3xF,KAAK4zH,oBAChBn/G,UAAWzU,KAAK6zH,oBAChBlQ,QAAS3jH,KAAK8zH,kBACdr0G,SAAUzf,KAAKxB,MAAMihB,SACrBqlD,UAAW,GACGjqD,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW27E,IACIr+D,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,oBACLhC,MAAO,WACL,IAAI8/H,EAAW57H,KAAKxB,MAAMs8H,aAAe96H,KAAK67H,iBAC1CC,EAAa97H,KAAKxB,MAAMs8H,aAAe96H,KAAK+7H,mBAEhD,OAAI/7H,KAAKg8H,YACanhH,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,8BACVq+H,EAAUE,GAGKjhH,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAM21G,EAAUE,KAEzE,CACDh+H,IAAK,SACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAETzC,EAAYN,YAAW,2CAA4C+C,KAAKxB,MAAMjB,UAAW,CAC3F,wBAA6C,MAApByC,KAAKxB,MAAM1C,OAAiBkE,KAAKxB,MAAM1C,MAAMQ,WAAW3B,OAAS,EAC1F,uBAAwBqF,KAAKod,MAAMyuE,QACnC,gCAAiC7rF,KAAKg8H,YACtC,mCAAoCh8H,KAAK06C,eACzC,iCAAkC16C,KAAK26C,eAErCshF,EAAej8H,KAAKk8H,qBACpBr4E,EAAc7jD,KAAKm8H,oBACvB,OAAoBthH,IAAM7P,cAAc,OAAQ,CAC9C8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOlgB,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB67H,EAAcp4E,MAjuCjB9kD,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAouCzCg0H,EA3oCsB,CA4oC7Bh4G,aAEFxK,EAAgBwiH,EAAa,eAAgB,CAC3Cl3H,MAAO,KACPgwF,SAAU,KACVhlE,QAAQ,EACRg0G,aAAa,EACbC,aAAc,UACdS,yBAA0B,KAC1BE,yBAA0B,KAC1BD,oBAAqB,iBACrBE,oBAAqB,mBACrB9kG,YAAQpxB,EACRsuH,mBAAetuH,EACfqlG,KAAM,UACN6qB,OAAQ,KACR9+G,OAAQ,KACRm9G,cAAUvuH,EACVwuH,qBAAiBxuH,EACjByuH,aAAa,EACbE,uBAAmB3uH,EACnB6uH,uBAAmB7uH,EACnBqe,GAAI,KACJrnB,KAAM,KACNe,KAAM,OACNm8H,YAAY,EACZ/5H,KAAM,EACN8/B,IAAK,KACLr6B,IAAK,KACLoa,UAAU,EACVotE,UAAU,EACV/nB,SAAU,KACVy2D,QAAS,KACTP,UAAW,KACXp3B,YAAa,KACbvxF,UAAU,EACV8yG,KAAM,KACN/kH,MAAO,KACP7C,UAAW,KACXovF,QAAS,KACTqvB,WAAW,EACXof,WAAY,KACZF,eAAgB,KAChBniD,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBmc,cAAe,KACft2F,SAAU,KACVE,OAAQ,KACRD,QAAS,KACTiC,UAAW,Q,6BCh1Cb,kFAMA,SAASgkE,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASJ,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAASoC,EAAoB3E,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2E,EAAoB3E,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWiD,EAAoBnD,EAAGC,QAA3G,GAQ2DmD,CAA8B5E,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAASE,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAIstH,EAAsC,SAAUxiH,GAClDpB,EAAU4jH,EAAwBxiH,GAElC,IAAIC,EAASgE,EAAeu+G,GAE5B,SAASA,IAGP,OAFAj+H,EAAgB6B,KAAMo8H,GAEfviH,EAAOvQ,MAAMtJ,KAAM7C,WAsC5B,OAnCA2B,EAAas9H,EAAwB,CAAC,CACpCt+H,IAAK,gBACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKxB,MAAMo6E,WACpB37E,WAAY,sBACZ0oB,GAAI3lB,KAAKxB,MAAMmnB,GACfC,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKxB,MAAM0mB,QACpBE,UAAWplB,KAAKxB,MAAM4mB,UACtBC,OAAQrlB,KAAKxB,MAAM6mB,OACnBE,SAAUvlB,KAAKxB,MAAM+mB,UACP1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWyC,KAAKxB,MAAMjB,UACtB6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKxB,MAAMwhE,SACnBhgE,KAAKxB,MAAMgE,aAEf,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAOhkB,KAAKxB,MAAMy8G,OAAS14G,EAAuBsY,IAAM7P,cAAcmS,IAAQ,CAC5E5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpBo4H,EA9CiC,CA+CxCphH,aAEFxK,EAAgB4rH,EAAwB,eAAgB,CACtDp4H,SAAU,KACV5D,MAAO,KACP7C,UAAW,OAGb,IAAI8+H,EAA6BxhH,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACjE,OAAoBD,IAAM7P,cAAcoxH,EAAwB3jD,EAAS,CACvEG,WAAY99D,GACXtc,OAGL,SAASiR,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASgqB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIwtH,EAAwB,SAAU1iH,GACpCpB,EAAU8jH,EAAU1iH,GAEpB,IAAIC,EAASkL,EAAau3G,GAE1B,SAASA,EAAS99H,GAChB,IAAI+G,EAUJ,GARApH,EAAgB6B,KAAMs8H,IAEtB/2H,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,EACTmrB,gBAAgB,IAGbzxG,EAAM/G,MAAM+9H,iBAAkB,CACjC,IAAIC,EAAYj3H,EAAM/G,MAAM1C,MAExBhB,MAAME,QAAQwhI,KAChBA,EAAYA,EAAU,IAGxB,IAAIC,EAAWl3H,EAAM/G,MAAMi+H,UAAYl3H,EAAMqnB,YAAYrnB,EAAM/G,MAAMi+H,UAAYl3H,EAAM/G,MAAMi+H,SAAWD,GAAaj3H,EAAMqnB,YAAY4vG,GAAaA,EAAY,IAAI/zH,KAEpKlD,EAAMm3H,aAAaD,GAEnBl3H,EAAM6X,MAAQ0H,EAAcA,EAAc,GAAIvf,EAAM6X,OAAQ,GAAI,CAC9Dq/G,SAAUA,IAkCd,OA9BAl3H,EAAMo3H,WAAa,KACnBp3H,EAAMq3H,YAAcr3H,EAAMq3H,YAAY7iH,KAAK7B,EAAuB3S,IAClEA,EAAM0xG,aAAe1xG,EAAM0xG,aAAal9F,KAAK7B,EAAuB3S,IACpEA,EAAM2xG,YAAc3xG,EAAM2xG,YAAYn9F,KAAK7B,EAAuB3S,IAClEA,EAAM4xG,eAAiB5xG,EAAM4xG,eAAep9F,KAAK7B,EAAuB3S,IACxEA,EAAMs3H,cAAgBt3H,EAAMs3H,cAAc9iH,KAAK7B,EAAuB3S,IACtEA,EAAMu3H,kBAAoBv3H,EAAMu3H,kBAAkB/iH,KAAK7B,EAAuB3S,IAC9EA,EAAMw3H,kBAAoBx3H,EAAMw3H,kBAAkBhjH,KAAK7B,EAAuB3S,IAC9EA,EAAMy3H,sBAAwBz3H,EAAMy3H,sBAAsBjjH,KAAK7B,EAAuB3S,IACtFA,EAAM03H,qBAAuB13H,EAAM03H,qBAAqBljH,KAAK7B,EAAuB3S,IACpFA,EAAM23H,mBAAqB33H,EAAM23H,mBAAmBnjH,KAAK7B,EAAuB3S,IAChFA,EAAM43H,mBAAqB53H,EAAM43H,mBAAmBpjH,KAAK7B,EAAuB3S,IAChFA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAM63H,cAAgB73H,EAAM63H,cAAcrjH,KAAK7B,EAAuB3S,IACtEA,EAAM83H,cAAgB93H,EAAM83H,cAActjH,KAAK7B,EAAuB3S,IACtEA,EAAM+3H,gBAAkB/3H,EAAM+3H,gBAAgBvjH,KAAK7B,EAAuB3S,IAC1EA,EAAMg4H,gBAAkBh4H,EAAMg4H,gBAAgBxjH,KAAK7B,EAAuB3S,IAC1EA,EAAMi4H,gBAAkBj4H,EAAMi4H,gBAAgBzjH,KAAK7B,EAAuB3S,IAC1EA,EAAMk4H,gBAAkBl4H,EAAMk4H,gBAAgB1jH,KAAK7B,EAAuB3S,IAC1EA,EAAMm4H,WAAan4H,EAAMm4H,WAAW3jH,KAAK7B,EAAuB3S,IAChEA,EAAMo4H,6BAA+Bp4H,EAAMo4H,6BAA6B5jH,KAAK7B,EAAuB3S,IACpGA,EAAMq4H,2BAA6Br4H,EAAMq4H,2BAA2B7jH,KAAK7B,EAAuB3S,IAChGA,EAAMs4H,8BAAgCt4H,EAAMs4H,8BAA8B9jH,KAAK7B,EAAuB3S,IACtGA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAMu4H,kBAAoBv4H,EAAMu4H,kBAAkB/jH,KAAK7B,EAAuB3S,IAC9EA,EAAMqyG,WAA0B5xF,sBAChCzgB,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAmrGT,OAhrGAzG,EAAaw9H,EAAU,CAAC,CACtBx+H,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEbA,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,gBAGHh5E,KAAKxB,MAAMy8G,OACbj7G,KAAK+9H,oBACI/9H,KAAKxB,MAAM6S,MACpBA,YAAKrR,KAAK8rF,SAAS/8E,QAAS,CAC1BsC,KAAMrR,KAAKxB,MAAM6S,KACjBgB,SAAUrS,KAAKxB,MAAMw/H,eAAiBh+H,KAAKxB,MAAMihB,SACjDlN,SAAU,SAAkB/S,GAC1B,OAAOmb,EAAOsjH,mBAAmBz+H,EAAEmW,cAAenW,EAAE1D,UAKtDkE,KAAKxB,MAAM1C,OACbkE,KAAKk+H,iBAAiBl+H,KAAKxB,MAAM1C,SAGpC,CACDgC,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjC,IAAItC,EAASlhB,KAQb,GANIwjB,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAAO6F,EAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,kBAG5Ch5E,KAAKxB,MAAM+9H,mBAAqBv8H,KAAKm+H,iBAAkB,CAC1D,IAAI3B,EAAYx8H,KAAKxB,MAAM1C,MAEvBhB,MAAME,QAAQwhI,KAChBA,EAAYA,EAAU,IAGxB,IAAI4B,EAAgB56G,EAAU1nB,MAM9B,GAJIhB,MAAME,QAAQojI,KAChBA,EAAgBA,EAAc,KAG3BA,GAAiB5B,GAAaA,GAAaA,aAAqB/zH,MAAQ+zH,EAAU7zH,YAAcy1H,EAAcz1H,UAAW,CAC5H,IAAI8zH,EAAWz8H,KAAKxB,MAAMi+H,UAAYz8H,KAAK4sB,YAAY5sB,KAAKxB,MAAMi+H,UAAYz8H,KAAKxB,MAAMi+H,SAAWD,GAAax8H,KAAK4sB,YAAY4vG,GAAaA,EAAY,IAAI/zH,KAC/JzI,KAAK08H,aAAaD,GAClBz8H,KAAKwd,SAAS,CACZi/G,SAAUA,IACT,WACDv7G,EAAOi9G,kBAAmB,MAK5Bn+H,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,SACrC/O,KAAKq+H,eAGH76G,EAAU1nB,QAAUkE,KAAKxB,MAAM1C,OAAWkE,KAAKm+H,kBAAqBn+H,KAAKgkH,eAAgBhkH,KAAKi7H,gBAAgBz3G,IAChHxjB,KAAKk+H,iBAAiBl+H,KAAKxB,MAAM1C,SAGpC,CACDgC,IAAK,uBACLhC,MAAO,WACDkE,KAAKk8G,aACPnmG,aAAa/V,KAAKk8G,aAGhBl8G,KAAKs+H,cACPt+H,KAAKu+H,kBACLv+H,KAAKs+H,YAAc,MAGjBt+H,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGjB/4E,KAAK26G,8BACL36G,KAAKuhB,+BAEDvhB,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGvB1K,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8rF,SAAS/8E,QACtBiQ,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMggI,gBAAkBx+H,KAAKxB,MAAM8e,QAAUtd,KAAKod,MAAM45F,iBAErE,CACDl5G,IAAK,kBACLhC,MAAO,SAAyB0nB,GAC9B,IAAI7B,EAAS3hB,KAGb,MADkB,CAAC,aAAc,aAAc,WAAY,cAAe,gBACvDqqG,MAAK,SAAU1qF,GAChC,OAAO6D,EAAU7D,KAAYgC,EAAOnjB,MAAMmhB,QAG7C,CACD7hB,IAAK,gBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM4/E,YAAcK,YAAa,aAAcz+E,KAAKxB,MAAMq4B,UAEvE,CACD/4B,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAIiO,EAAStiB,KAETA,KAAKy+H,yBACPz+H,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACDvpE,EAAOm8G,0BAA2B,MAGpCpqH,EAAM4jG,UAEFj4G,KAAKxB,MAAM05G,cAAgBl4G,KAAKgkH,aAClChkH,KAAKg4G,cAGPh4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGvpE,EAAO9jB,MAAMgU,SACf8P,EAAO9jB,MAAMgU,QAAQ6B,SAK5B,CACDvW,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAIoO,EAASziB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGppE,EAAOjkB,MAAMiU,QACfgQ,EAAOjkB,MAAMiU,OAAO4B,GAGjBoO,EAAOjkB,MAAMkgI,aAChBj8G,EAAOy7G,iBAAiBz7G,EAAOjkB,MAAM1C,YAI1C,CACDgC,IAAK,iBACLhC,MAAO,SAAwBuY,GAG7B,OAFArU,KAAK2+H,WAAY,EAETtqH,EAAMM,OAEZ,KAAK,GAED3U,KAAK+3G,cACL,MAIJ,KAAK,EAEG/3G,KAAKgkH,aACPhkH,KAAK4+H,UAAUvqH,GAGbrU,KAAKxB,MAAMqgI,SACb7+H,KAAKu+H,qBAOd,CACDzgI,IAAK,cACLhC,MAAO,SAAqBuY,GAErBrU,KAAK2+H,YAIV3+H,KAAK2+H,WAAY,EACjB3+H,KAAKi+H,mBAAmB5pH,EAAOA,EAAM9V,OAAOzC,OAExCkE,KAAKxB,MAAMwX,SACbhW,KAAKxB,MAAMwX,QAAQ3B,MAGtB,CACDvW,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOyqH,GACxC,IACE,IAAIhjI,EAAQkE,KAAK++H,qBAAqBD,GAElC9+H,KAAKg/H,iBAAiBljI,KACxBkE,KAAKoU,YAAYC,EAAOvY,GACxBkE,KAAKi/H,eAAe5qH,EAAOvY,EAAMnB,OAASmB,EAAM,GAAKA,IAEvD,MAAOC,GAEP,IAAImjI,EAASl/H,KAAKxB,MAAMkgI,YAAcI,EAAW,KAEjD9+H,KAAKoU,YAAYC,EAAO6qH,MAG3B,CACDphI,IAAK,oBACLhC,MAAO,YACAkE,KAAKxB,MAAMy8G,QAAUj7G,KAAK8rF,SAAS/8E,UACtC/O,KAAKy+H,0BAA2B,EAChCz+H,KAAK8rF,SAAS/8E,QAAQq9E,WAGzB,CACDtuF,IAAK,mBACLhC,MAAO,SAA0BA,GAC/B,IAAIwnB,EAAStjB,KAETipD,GAAU,EAcd,OAZIjpD,KAAK65F,oBACD75F,KAAKm/H,aAAarjI,EAAMmwB,UAAWnwB,EAAMkwB,WAAYlwB,EAAMiwB,eAAe,IAAU/rB,KAAKo/H,iBAAiBtjI,KAC9GmtD,GAAU,GAEHntD,EAAM+rH,OAAM,SAAUwX,GAC/B,OAAO/7G,EAAO67G,aAAaE,EAAEpzG,UAAWozG,EAAErzG,WAAYqzG,EAAEtzG,eAAe,IAAUzI,EAAO87G,iBAAiBtjI,OAErGkE,KAAKs/H,qBACPr2E,EAAUntD,EAAMnB,OAAS,GAAKmB,EAAM,GAAKA,EAAM,IAI5CmtD,IAER,CACDnrD,IAAK,gBACLhC,MAAO,WACDkE,KAAKgkH,YACPhkH,KAAK+3G,cAEL/3G,KAAKg4G,gBAGR,CACDl6G,IAAK,oBACLhC,MAAO,SAA2BuY,GAChCrU,KAAK28H,WAAa,CAChB4C,UAAU,EACVz7E,QAAQ,GAEV9jD,KAAKoxH,YAAY/8G,KAElB,CACDvW,IAAK,oBACLhC,MAAO,SAA2BuY,GAChCrU,KAAK28H,WAAa,CAChB4C,UAAU,EACVz7E,QAAQ,GAEV9jD,KAAKqxH,WAAWh9G,KAEjB,CACDvW,IAAK,2BACLhC,MAAO,SAAkCuY,GACvC,OAAQA,EAAMM,OAEZ,KAAK,EACH3U,KAAK4+H,UAAUvqH,GACf,MAGF,KAAK,GACHrU,KAAK+3G,YAAY,KAAM/3G,KAAK89H,mBAC5BzpH,EAAMY,oBAIX,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GACxBA,EAAMY,iBACN,IAAIjJ,EAAoBjM,IAAWkM,qBAAqBjM,KAAK43G,WAAW7oG,SAExE,GAAI/C,GAAqBA,EAAkBrR,OAAS,EAClD,GAAK+F,SAASqS,cAEP,CACL,IAAIysH,EAAexzH,EAAkBN,QAAQhL,SAASqS,eAElDsB,EAAMqH,UACc,IAAlB8jH,GAAwC,IAAjBA,EAAoBxzH,EAAkBA,EAAkBrR,OAAS,GAAGyxF,QAAapgF,EAAkBwzH,EAAe,GAAGpzC,SAE1H,IAAlBozC,GAAuBA,IAAiBxzH,EAAkBrR,OAAS,EAAGqR,EAAkB,GAAGogF,QAAapgF,EAAkBwzH,EAAe,GAAGpzC,aAPlJpgF,EAAkB,GAAGogF,UAY1B,CACDtuF,IAAK,cACLhC,MAAO,WACL,IAAIm2F,EAEJ,GAAIjyF,KAAK28H,WAAY,CACnB,GAAI38H,KAAK28H,WAAW74E,OAClB9jD,KAAK+9H,oBACD/9H,KAAK28H,WAAW4C,SAAUx/H,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,sBAAsBq9E,QAAarsF,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,sBAAsBq9E,YAChL,CACL,GAAIpsF,KAAK28H,WAAW4C,SAAU,CAC5B,IAAI/3D,EAAQznE,IAAW+L,KAAK9L,KAAK43G,WAAW7oG,QAAS,mDACrDkjF,EAAOzqB,EAAMA,EAAM7sE,OAAS,QAE5Bs3F,EAAOlyF,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,mDAGpDkjF,IACFA,EAAKntB,SAAW,IAChBmtB,EAAK7F,SAITpsF,KAAK28H,WAAa,UAElB38H,KAAK+9H,sBAGR,CACDjgI,IAAK,oBACLhC,MAAO,WACL,IAAIm2F,EAEJ,GAAkB,UAAdjyF,KAAK6lC,KAAkB,CACzB,IAAI2hC,EAAQznE,IAAW+L,KAAK9L,KAAK43G,WAAW7oG,QAAS,uCACjDilF,EAAej0F,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,mDAClEy4D,EAAMt2D,SAAQ,SAAU+gF,GACtB,OAAOA,EAAKntB,UAAY,KAE1BmtB,EAAO+B,GAAgBxsB,EAAM,QAI7B,KAFAyqB,EAAOlyF,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,qBAE3C,CACT,IAAI0wH,EAAY1/H,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,+CAChDkjF,EAAXwtC,GAAwC1/H,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,mDAI3FkjF,IACFA,EAAKntB,SAAW,OAGnB,CACDhnE,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAIrU,KAAKxB,MAAMihB,SACbpL,EAAMY,qBADR,CAKA,IAAIyqH,EAAc,IAAIj3H,KAAKzI,KAAK2/H,cAAch3H,WAG9C,GAFA+2H,EAAYE,QAAQ,GAEI,SAApB5/H,KAAKxB,MAAMqnC,KACkB,IAA3B65F,EAAY1zG,YACd0zG,EAAYG,SAAS,IACrBH,EAAYI,YAAYJ,EAAY3zG,cAAgB,IAEpD2zG,EAAYG,SAASH,EAAY1zG,WAAa,QAE3C,GAAwB,UAApBhsB,KAAKxB,MAAMqnC,KAAkB,CACtC,IACIk6F,EADcL,EAAY3zG,cACF,EAE5B,GAAI/rB,KAAKxB,MAAMwhI,cAAe,CAC5B,IAAIC,EAAUzoH,SAASxX,KAAKxB,MAAM0hI,UAAUn9H,MAAM,KAAK,GAAI,IAEvDg9H,EAAUE,IACZF,EAAUE,GAIdP,EAAYI,YAAYC,GAG1B//H,KAAKi/H,eAAe5qH,EAAOqrH,GAC3BrrH,EAAMY,oBAEP,CACDnX,IAAK,aACLhC,MAAO,SAAoBuY,GACzB,GAAIrU,KAAKxB,MAAMihB,SACbpL,EAAMY,qBADR,CAKA,IAAIyqH,EAAc,IAAIj3H,KAAKzI,KAAK2/H,cAAch3H,WAG9C,GAFA+2H,EAAYE,QAAQ,GAEI,SAApB5/H,KAAKxB,MAAMqnC,KACkB,KAA3B65F,EAAY1zG,YACd0zG,EAAYG,SAAS,GACrBH,EAAYI,YAAYJ,EAAY3zG,cAAgB,IAEpD2zG,EAAYG,SAASH,EAAY1zG,WAAa,QAE3C,GAAwB,UAApBhsB,KAAKxB,MAAMqnC,KAAkB,CACtC,IACIk6F,EADcL,EAAY3zG,cACF,EAE5B,GAAI/rB,KAAKxB,MAAMwhI,cAAe,CAC5B,IAAIG,EAAU3oH,SAASxX,KAAKxB,MAAM0hI,UAAUn9H,MAAM,KAAK,GAAI,IAEvDg9H,EAAUI,IACZJ,EAAUI,GAIdT,EAAYI,YAAYC,GAG1B//H,KAAKi/H,eAAe5qH,EAAOqrH,GAC3BrrH,EAAMY,oBAEP,CACDnX,IAAK,wBACLhC,MAAO,SAA+BuY,EAAOvY,GAC3C,IAAIskI,EAAkBpgI,KAAK2/H,cACvBD,EAAc,IAAIj3H,KAAK23H,EAAgBz3H,WAC3C+2H,EAAYG,SAASroH,SAAS1b,EAAO,KACrCkE,KAAKi/H,eAAe5qH,EAAOqrH,KAE5B,CACD5hI,IAAK,uBACLhC,MAAO,SAA8BuY,EAAOvY,GAC1C,IAAIskI,EAAkBpgI,KAAK2/H,cACvBD,EAAc,IAAIj3H,KAAK23H,EAAgBz3H,WAC3C+2H,EAAYI,YAAYtoH,SAAS1b,EAAO,KACxCkE,KAAKi/H,eAAe5qH,EAAOqrH,KAE5B,CACD5hI,IAAK,qBACLhC,MAAO,SAA4BuY,GACjC,IAAIu2B,EAAQ,IAAIniC,KACZ88D,EAAW,CACb/0C,IAAKoa,EAAM3e,UACXsE,MAAOqa,EAAM5e,WACbb,KAAMyf,EAAM7e,cACZ6e,OAAO,EACPy1F,YAAY,GAEVC,EAAW,CACb7vG,MAAOma,EAAM1e,WACbyE,QAASia,EAAMze,aACf0E,QAAS+Z,EAAMxe,aACfgE,aAAcwa,EAAMve,mBAEtBrsB,KAAKi/H,eAAe5qH,EAAOu2B,GAC3B5qC,KAAKugI,aAAalsH,EAAOkxD,EAAU+6D,GAE/BtgI,KAAKxB,MAAM0+H,oBACbl9H,KAAKxB,MAAM0+H,mBAAmB7oH,KAGjC,CACDvW,IAAK,qBACLhC,MAAO,SAA4BuY,GACjCrU,KAAKoU,YAAYC,EAAO,MACxBrU,KAAKk+H,iBAAiB,MACtBl+H,KAAK+3G,YAAY,KAAM/3G,KAAK89H,mBAExB99H,KAAKxB,MAAM2+H,oBACbn9H,KAAKxB,MAAM2+H,mBAAmB9oH,KAGjC,CACDvW,IAAK,eACLhC,MAAO,SAAsBuY,GACtBrU,KAAKxB,MAAMy8G,QACd72F,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAIlB,CACDhM,IAAK,+BACLhC,MAAO,SAAsCuY,EAAO7W,EAAMw5B,GACnDh3B,KAAKxB,MAAMihB,WACdzf,KAAKo2H,OAAO/hH,EAAO,KAAM7W,EAAMw5B,GAC/B3iB,EAAMY,oBAGT,CACDnX,IAAK,6BACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKwgI,yBAGR,CACD1iI,IAAK,gCACLhC,MAAO,WACAkE,KAAKxB,MAAMihB,UACdzf,KAAKwgI,yBAGR,CACD1iI,IAAK,SACLhC,MAAO,SAAgBuY,EAAO2hH,EAAUx4H,EAAMw5B,GAC5C,IAAItT,EAAS1jB,KAEbqU,EAAM4jG,UACN,IAAIr9G,EAAIo7H,GAAY,IAMpB,OALAh2H,KAAKwgI,uBACLxgI,KAAKygI,gBAAkB53H,YAAW,WAChC6a,EAAO0yG,OAAO/hH,EAAO,IAAK7W,EAAMw5B,KAC/Bp8B,GAEK4C,GACN,KAAK,EACe,IAAdw5B,EAAiBh3B,KAAKo9H,cAAc/oH,GAAYrU,KAAKq9H,cAAchpH,GACvE,MAEF,KAAK,EACe,IAAd2iB,EAAiBh3B,KAAKs9H,gBAAgBjpH,GAAYrU,KAAKu9H,gBAAgBlpH,GAC3E,MAEF,KAAK,EACe,IAAd2iB,EAAiBh3B,KAAKw9H,gBAAgBnpH,GAAYrU,KAAKy9H,gBAAgBppH,GAC3E,MAEF,KAAK,EACe,IAAd2iB,EAAiBh3B,KAAK0gI,qBAAqBrsH,GAAYrU,KAAK2gI,qBAAqBtsH,MAI1F,CACDvW,IAAK,uBACLhC,MAAO,WACDkE,KAAKygI,iBACP1qH,aAAa/V,KAAKygI,mBAGrB,CACD3iI,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBC,EADcF,EAAY10G,WACFlsB,KAAKxB,MAAMuiI,SACvCD,EAAUA,GAAW,GAAKA,EAAU,GAAKA,EAErC9gI,KAAKghI,aAAaF,EAASF,KACzB5gI,KAAKxB,MAAMyiI,SAAWjhI,KAAKxB,MAAMyiI,QAAQC,iBAAmBN,EAAYM,gBAAkBlhI,KAAKxB,MAAMyiI,QAAQ/0G,aAAe40G,IAC1H9gI,KAAKxB,MAAMyiI,QAAQ90G,aAAey0G,EAAYz0G,cAUvCnsB,KAAKxB,MAAMyiI,QAAQ90G,eAAiBy0G,EAAYz0G,cATrDnsB,KAAKxB,MAAMyiI,QAAQ70G,aAAew0G,EAAYx0G,aAC5CpsB,KAAKxB,MAAMyiI,QAAQ50G,kBAAoBu0G,EAAYv0G,kBACrDrsB,KAAKmhI,WAAW9sH,EAAOysH,EAAS9gI,KAAKxB,MAAMyiI,QAAQ90G,aAAcnsB,KAAKxB,MAAMyiI,QAAQ70G,aAAcpsB,KAAKxB,MAAMyiI,QAAQ50G,mBAErHrsB,KAAKmhI,WAAW9sH,EAAOysH,EAAS9gI,KAAKxB,MAAMyiI,QAAQ90G,aAAcnsB,KAAKxB,MAAMyiI,QAAQ70G,aAAcw0G,EAAYv0G,mBAGhHrsB,KAAKmhI,WAAW9sH,EAAOysH,EAAS9gI,KAAKxB,MAAMyiI,QAAQ90G,aAAcy0G,EAAYx0G,aAAcw0G,EAAYv0G,mBAgB3GrsB,KAAKmhI,WAAW9sH,EAAOysH,EAASF,EAAYz0G,aAAcy0G,EAAYx0G,aAAcw0G,EAAYv0G,oBAIpGhY,EAAMY,mBAEP,CACDnX,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBC,EADcF,EAAY10G,WACFlsB,KAAKxB,MAAMuiI,SACvCD,EAAUA,EAAU,EAAIA,EAAU,GAAKA,EAEnC9gI,KAAKghI,aAAaF,EAASF,KACzB5gI,KAAKxB,MAAM4iI,SAAWphI,KAAKxB,MAAM4iI,QAAQF,iBAAmBN,EAAYM,gBAAkBlhI,KAAKxB,MAAM4iI,QAAQl1G,aAAe40G,IAC1H9gI,KAAKxB,MAAM4iI,QAAQj1G,aAAey0G,EAAYz0G,cAUvCnsB,KAAKxB,MAAM4iI,QAAQj1G,eAAiBy0G,EAAYz0G,cATrDnsB,KAAKxB,MAAM4iI,QAAQh1G,aAAew0G,EAAYx0G,aAC5CpsB,KAAKxB,MAAM4iI,QAAQ/0G,kBAAoBu0G,EAAYv0G,kBACrDrsB,KAAKmhI,WAAW9sH,EAAOysH,EAAS9gI,KAAKxB,MAAM4iI,QAAQj1G,aAAcnsB,KAAKxB,MAAM4iI,QAAQh1G,aAAcpsB,KAAKxB,MAAM4iI,QAAQ/0G,mBAErHrsB,KAAKmhI,WAAW9sH,EAAOysH,EAAS9gI,KAAKxB,MAAM4iI,QAAQj1G,aAAcnsB,KAAKxB,MAAM4iI,QAAQh1G,aAAcw0G,EAAYv0G,mBAGhHrsB,KAAKmhI,WAAW9sH,EAAOysH,EAAS9gI,KAAKxB,MAAM4iI,QAAQj1G,aAAcy0G,EAAYx0G,aAAcw0G,EAAYv0G,mBAgB3GrsB,KAAKmhI,WAAW9sH,EAAOysH,EAASF,EAAYz0G,aAAcy0G,EAAYx0G,aAAcw0G,EAAYv0G,oBAIpGhY,EAAMY,mBAEP,CACDnX,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBQ,EADgBT,EAAYz0G,aACAnsB,KAAKxB,MAAM8iI,WAC3CD,EAAYA,EAAY,GAAKA,EAAY,GAAKA,EAE1CrhI,KAAKuhI,eAAeF,EAAWT,KAC7B5gI,KAAKxB,MAAMyiI,SAAWjhI,KAAKxB,MAAMyiI,QAAQC,iBAAmBN,EAAYM,gBAAkBlhI,KAAKxB,MAAMyiI,QAAQ90G,eAAiBk1G,GAC5HrhI,KAAKxB,MAAMyiI,QAAQ70G,aAAew0G,EAAYx0G,aAC5CpsB,KAAKxB,MAAMyiI,QAAQ50G,kBAAoBu0G,EAAYv0G,kBACrDrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAYm1G,EAAWrhI,KAAKxB,MAAMyiI,QAAQ70G,aAAcpsB,KAAKxB,MAAMyiI,QAAQ50G,mBAE9GrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAYm1G,EAAWrhI,KAAKxB,MAAMyiI,QAAQ70G,aAAcw0G,EAAYv0G,mBAM3GrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAYm1G,EAAWT,EAAYx0G,aAAcw0G,EAAYv0G,oBAIpGhY,EAAMY,mBAEP,CACDnX,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBQ,EADgBT,EAAYz0G,aACAnsB,KAAKxB,MAAM8iI,WAC3CD,EAAYA,EAAY,EAAIA,EAAY,GAAKA,EAEzCrhI,KAAKuhI,eAAeF,EAAWT,KAC7B5gI,KAAKxB,MAAM4iI,SAAWphI,KAAKxB,MAAM4iI,QAAQF,iBAAmBN,EAAYM,gBAAkBlhI,KAAKxB,MAAM4iI,QAAQj1G,eAAiBk1G,GAC5HrhI,KAAKxB,MAAM4iI,QAAQh1G,aAAew0G,EAAYx0G,aAC5CpsB,KAAKxB,MAAM4iI,QAAQ/0G,kBAAoBu0G,EAAYv0G,kBACrDrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAYm1G,EAAWrhI,KAAKxB,MAAM4iI,QAAQh1G,aAAcpsB,KAAKxB,MAAM4iI,QAAQ/0G,mBAE9GrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAYm1G,EAAWrhI,KAAKxB,MAAM4iI,QAAQh1G,aAAcw0G,EAAYv0G,mBAM3GrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAYm1G,EAAWT,EAAYx0G,aAAcw0G,EAAYv0G,oBAIpGhY,EAAMY,mBAEP,CACDnX,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBW,EADgBZ,EAAYx0G,aACApsB,KAAKxB,MAAMijI,WAC3CD,EAAYA,EAAY,GAAKA,EAAY,GAAKA,EAE1CxhI,KAAK0hI,eAAeF,EAAWZ,KAC7B5gI,KAAKxB,MAAMyiI,SAAWjhI,KAAKxB,MAAMyiI,QAAQC,iBAAmBN,EAAYM,gBAAkBlhI,KAAKxB,MAAMyiI,QAAQ70G,eAAiBo1G,GAC5HxhI,KAAKxB,MAAMyiI,QAAQ50G,kBAAoBu0G,EAAYv0G,kBACrDrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAY00G,EAAYz0G,aAAcq1G,EAAWxhI,KAAKxB,MAAMyiI,QAAQ50G,mBAKzGrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAY00G,EAAYz0G,aAAcq1G,EAAWZ,EAAYv0G,oBAIpGhY,EAAMY,mBAEP,CACDnX,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBW,EADgBZ,EAAYx0G,aACApsB,KAAKxB,MAAMijI,WAC3CD,EAAYA,EAAY,EAAIA,EAAY,GAAKA,EAEzCxhI,KAAK0hI,eAAeF,EAAWZ,KAC7B5gI,KAAKxB,MAAM4iI,SAAWphI,KAAKxB,MAAM4iI,QAAQF,iBAAmBN,EAAYM,gBAAkBlhI,KAAKxB,MAAM4iI,QAAQh1G,eAAiBo1G,GAC5HxhI,KAAKxB,MAAM4iI,QAAQ/0G,kBAAoBu0G,EAAYv0G,kBACrDrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAY00G,EAAYz0G,aAAcq1G,EAAWxhI,KAAKxB,MAAM4iI,QAAQ/0G,mBAKzGrsB,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAY00G,EAAYz0G,aAAcq1G,EAAWZ,EAAYv0G,oBAIpGhY,EAAMY,mBAEP,CACDnX,IAAK,uBACLhC,MAAO,SAA8BuY,GACnC,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBc,EADqBf,EAAYv0G,kBACKrsB,KAAKxB,MAAMojI,aACrDD,EAAiBA,EAAiB,IAAMA,EAAiB,IAAOA,EAE5D3hI,KAAK6hI,oBAAoBF,EAAgBf,IAC3C5gI,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAY00G,EAAYz0G,aAAcy0G,EAAYx0G,aAAcu1G,GAGrGttH,EAAMY,mBAEP,CACDnX,IAAK,uBACLhC,MAAO,SAA8BuY,GACnC,IAAIusH,EAAc5gI,KAAK6gI,qBAEnBc,EADqBf,EAAYv0G,kBACKrsB,KAAKxB,MAAMojI,aACrDD,EAAiBA,EAAiB,EAAIA,EAAiB,IAAMA,EAEzD3hI,KAAK6hI,oBAAoBF,EAAgBf,IAC3C5gI,KAAKmhI,WAAW9sH,EAAOusH,EAAY10G,WAAY00G,EAAYz0G,aAAcy0G,EAAYx0G,aAAcu1G,GAGrGttH,EAAMY,mBAEP,CACDnX,IAAK,aACLhC,MAAO,SAAoBuY,GACzB,IAAIusH,EAAc5gI,KAAK6gI,qBACnBiB,EAAclB,EAAY10G,WAC1B40G,EAAUgB,GAAe,GAAKA,EAAc,GAAKA,EAAc,GACnE9hI,KAAKmhI,WAAW9sH,EAAOysH,EAASF,EAAYz0G,aAAcy0G,EAAYx0G,aAAcw0G,EAAYv0G,mBAChGhY,EAAMY,mBAEP,CACDnX,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM+9H,iBAAmBv8H,KAAKxB,MAAMi+H,SAAWz8H,KAAKod,MAAMq/G,WAEvE,CACD3+H,IAAK,qBACLhC,MAAO,WACL,GAAIkE,KAAK65F,oBACP,OAAO75F,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,iBAAiB2M,KAAOzI,KAAKxB,MAAM1C,MAAQkE,KAAK2/H,cACjF,GAAI3/H,KAAKu6F,uBACd,GAAIv6F,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OACvC,OAAOqF,KAAKxB,MAAM1C,MAAMkE,KAAKxB,MAAM1C,MAAMnB,OAAS,QAE/C,GAAIqF,KAAKs/H,oBACVt/H,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/C,IAAIs7E,EAAYj2E,KAAKxB,MAAM1C,MAAM,GAEjC,OADckE,KAAKxB,MAAM1C,MAAM,IACbm6E,EAItB,OAAO,IAAIxtE,OAEZ,CACD3K,IAAK,cACLhC,MAAO,SAAqBgwB,GAC1B,OAAOA,aAAgBrjB,OAASokB,MAAMf,KAEvC,CACDhuB,IAAK,eACLhC,MAAO,SAAsB40B,EAAM50B,GACjC,IAAI43F,GAAQ,EACRquC,EAAkBjmI,EAAQA,EAAMolI,eAAiB,KAcrD,OAZIlhI,KAAKxB,MAAM4iI,SAAWW,GAAmB/hI,KAAKxB,MAAM4iI,QAAQF,iBAAmBa,GAC7E/hI,KAAKxB,MAAM4iI,QAAQl1G,WAAawE,IAClCgjE,GAAQ,GAIR1zF,KAAKxB,MAAMyiI,SAAWc,GAAmB/hI,KAAKxB,MAAMyiI,QAAQC,iBAAmBa,GAC7E/hI,KAAKxB,MAAMyiI,QAAQ/0G,WAAawE,IAClCgjE,GAAQ,GAILA,IAER,CACD51F,IAAK,iBACLhC,MAAO,SAAwB80B,EAAQ90B,GACrC,IAAI43F,GAAQ,EACRquC,EAAkBjmI,EAAQA,EAAMolI,eAAiB,KAkBrD,OAhBIlhI,KAAKxB,MAAM4iI,SAAWW,GAAmB/hI,KAAKxB,MAAM4iI,QAAQF,iBAAmBa,GAC7EjmI,EAAMowB,aAAelsB,KAAKxB,MAAM4iI,QAAQl1G,YACtClsB,KAAKxB,MAAM4iI,QAAQj1G,aAAeyE,IACpC8iE,GAAQ,GAKV1zF,KAAKxB,MAAMyiI,SAAWc,GAAmB/hI,KAAKxB,MAAMyiI,QAAQC,iBAAmBa,GAC7EjmI,EAAMowB,aAAelsB,KAAKxB,MAAMyiI,QAAQ/0G,YACtClsB,KAAKxB,MAAMyiI,QAAQ90G,aAAeyE,IACpC8iE,GAAQ,GAKPA,IAER,CACD51F,IAAK,iBACLhC,MAAO,SAAwBg1B,EAAQh1B,GACrC,IAAI43F,GAAQ,EACRquC,EAAkBjmI,EAAQA,EAAMolI,eAAiB,KAkBrD,OAhBIlhI,KAAKxB,MAAM4iI,SAAWW,GAAmB/hI,KAAKxB,MAAM4iI,QAAQF,iBAAmBa,GAC7EjmI,EAAMowB,aAAelsB,KAAKxB,MAAM4iI,QAAQl1G,YAAcpwB,EAAMqwB,eAAiBnsB,KAAKxB,MAAM4iI,QAAQj1G,cAC9FnsB,KAAKxB,MAAM4iI,QAAQh1G,aAAe0E,IACpC4iE,GAAQ,GAKV1zF,KAAKxB,MAAMyiI,SAAWc,GAAmB/hI,KAAKxB,MAAMyiI,QAAQC,iBAAmBa,GAC7EjmI,EAAMowB,aAAelsB,KAAKxB,MAAMyiI,QAAQ/0G,YAAcpwB,EAAMqwB,eAAiBnsB,KAAKxB,MAAMyiI,QAAQ90G,cAC9FnsB,KAAKxB,MAAMyiI,QAAQ70G,aAAe0E,IACpC4iE,GAAQ,GAKPA,IAER,CACD51F,IAAK,sBACLhC,MAAO,SAA6Bi1B,EAAaj1B,GAC/C,IAAI43F,GAAQ,EACRquC,EAAkBjmI,EAAQA,EAAMolI,eAAiB,KAkBrD,OAhBIlhI,KAAKxB,MAAM4iI,SAAWW,GAAmB/hI,KAAKxB,MAAM4iI,QAAQF,iBAAmBa,GAC7EjmI,EAAMowB,aAAelsB,KAAKxB,MAAM4iI,QAAQl1G,YAAcpwB,EAAMswB,eAAiBpsB,KAAKxB,MAAM4iI,QAAQh1G,cAAgBtwB,EAAMqwB,eAAiBnsB,KAAKxB,MAAM4iI,QAAQj1G,cACxJnsB,KAAKxB,MAAM4iI,QAAQ/0G,kBAAoB0E,IACzC2iE,GAAQ,GAKV1zF,KAAKxB,MAAMyiI,SAAWc,GAAmB/hI,KAAKxB,MAAMyiI,QAAQC,iBAAmBa,GAC7EjmI,EAAMowB,aAAelsB,KAAKxB,MAAMyiI,QAAQ/0G,YAAcpwB,EAAMswB,eAAiBpsB,KAAKxB,MAAMyiI,QAAQ70G,cAAgBtwB,EAAMqwB,eAAiBnsB,KAAKxB,MAAMyiI,QAAQ90G,cACxJnsB,KAAKxB,MAAMyiI,QAAQ50G,kBAAoB0E,IACzC2iE,GAAQ,GAKPA,IAER,CACD51F,IAAK,eACLhC,MAAO,SAAsBA,GAC3B,GAAIkE,KAAKxB,MAAMwhI,cAAe,CAC5B,IAAIgC,EAAWlmI,EAAMiwB,cACjBk2G,EAAejiI,KAAKxB,MAAM0hI,UAAY1oH,SAASxX,KAAKxB,MAAM0hI,UAAUn9H,MAAM,KAAK,GAAI,IAAM,KACzFm/H,EAAeliI,KAAKxB,MAAM0hI,UAAY1oH,SAASxX,KAAKxB,MAAM0hI,UAAUn9H,MAAM,KAAK,GAAI,IAAM,KACzFk9H,EAAUjgI,KAAKxB,MAAM4iI,SAA2B,MAAhBa,EAAuB78H,KAAKC,IAAIrF,KAAKxB,MAAM4iI,QAAQr1G,cAAek2G,GAAgBjiI,KAAKxB,MAAM4iI,SAAWa,EACxI9B,EAAUngI,KAAKxB,MAAMyiI,SAA2B,MAAhBiB,EAAuB98H,KAAKs6B,IAAI1/B,KAAKxB,MAAMyiI,QAAQl1G,cAAem2G,GAAgBliI,KAAKxB,MAAMyiI,SAAWiB,EAExIjC,GAAWA,EAAU+B,IACvBA,EAAW/B,GAGTE,GAAWA,EAAU6B,IACvBA,EAAW7B,GAGbrkI,EAAMgkI,YAAYkC,GAGpB,GAAIhiI,KAAKxB,MAAM2jI,gBAAsC,UAApBniI,KAAKxB,MAAMqnC,KAAkB,CAC5D,IAAIu8F,EAAYtmI,EAAMkwB,WAClBq2G,EAAsB7qH,SAASxX,KAAKsiI,YAAYxmI,IAAUsJ,KAAKC,IAAIrF,KAAKxB,MAAM4iI,QAAQp1G,WAAYo2G,GAAW9lI,YAAc0D,KAAKuiI,YAAYzmI,IAAUsJ,KAAKs6B,IAAI1/B,KAAKxB,MAAMyiI,QAAQj1G,WAAYo2G,GAAW9lI,YAAc8lI,GAC3NtmI,EAAM+jI,SAASwC,MAGlB,CACDvkI,IAAK,aACLhC,MAAO,SAAoBuY,EAAOqc,EAAME,EAAQE,EAAQC,GACtD,IAAIyxG,EAAcxiI,KAAK6gI,qBAMvB,GALA2B,EAAYC,SAAS/xG,GACrB8xG,EAAYE,WAAW9xG,GACvB4xG,EAAYG,WAAW7xG,GACvB0xG,EAAYI,gBAAgB7xG,GAExB/wB,KAAKu6F,sBACP,GAAIv6F,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/C,IAAImB,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAE1CA,EAAMA,EAAMnB,OAAS,GAAK6nI,EAC1BA,EAAc1mI,OAEd0mI,EAAc,CAACA,QAEZ,GAAIxiI,KAAKs/H,mBACd,GAAIt/H,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/C,IAAIs7E,EAAYj2E,KAAKxB,MAAM1C,MAAM,GAEjC0mI,EADcxiI,KAAKxB,MAAM1C,MAAM,GACP,CAACm6E,EAAWusD,GAAe,CAACA,EAAa,WAEjEA,EAAc,CAACA,EAAa,MAIhCxiI,KAAKoU,YAAYC,EAAOmuH,GAEpBxiI,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACfvY,MAAO0mI,IAIXxiI,KAAKk+H,iBAAiBsE,KAEvB,CACD1kI,IAAK,iBACLhC,MAAO,SAAwBuY,EAAOvY,GACpCkE,KAAK08H,aAAa5gI,GAEdkE,KAAKxB,MAAM+9H,iBACbv8H,KAAKxB,MAAM+9H,iBAAiB,CAC1B5mH,cAAetB,EACfvY,MAAOA,KAGTkE,KAAKm+H,kBAAmB,EACxBn+H,KAAKwd,SAAS,CACZi/G,SAAU3gI,OAIf,CACDgC,IAAK,oBACLhC,MAAO,SAA2BuY,EAAOyX,EAAM6sF,GAC7C,IAAIkqB,EAAcxuH,EAAMoG,cACpBw3E,EAAO4wC,EAAY5oH,cAEvB,OAAQ5F,EAAMM,OAEZ,KAAK,GAEDkuH,EAAY/9D,SAAW,KACvB,IAAIuuB,EAAYtzF,IAAWs8D,MAAM41B,GAC7BS,EAAUT,EAAKh4E,cAAc25E,mBAEjC,GAAIlB,EAAS,CACX,IAAIowC,EAAYpwC,EAAQlwF,SAAS6wF,GAAW7wF,SAAS,GAEjDzC,IAAW6uF,SAASk0C,EAAW,eACjC9iI,KAAK28H,WAAa,CAChB4C,UAAU,GAEZv/H,KAAKqxH,WAAWh9G,KAEhBq+E,EAAQlwF,SAAS6wF,GAAW7wF,SAAS,GAAGsiE,SAAW,IACnD4tB,EAAQlwF,SAAS6wF,GAAW7wF,SAAS,GAAG4pF,cAG1CpsF,KAAK28H,WAAa,CAChB4C,UAAU,GAEZv/H,KAAKqxH,WAAWh9G,GAGlBA,EAAMY,iBACN,MAIJ,KAAK,GAED4tH,EAAY/9D,SAAW,KAEvB,IAAIi+D,EAAahjI,IAAWs8D,MAAM41B,GAE9BM,EAAUN,EAAKh4E,cAAcq0E,uBAEjC,GAAIiE,EAAS,CACX,IAAIywC,EAAazwC,EAAQ/vF,SAASugI,GAAYvgI,SAAS,GAEnDzC,IAAW6uF,SAASo0C,EAAY,eAClChjI,KAAK28H,WAAa,CAChB4C,UAAU,GAEZv/H,KAAKoxH,YAAY/8G,KAEjB2uH,EAAWl+D,SAAW,IAEtBk+D,EAAW52C,cAGbpsF,KAAK28H,WAAa,CAChB4C,UAAU,GAEZv/H,KAAKoxH,YAAY/8G,GAGnBA,EAAMY,iBACN,MAIJ,KAAK,GAED4tH,EAAY/9D,SAAW,KACvB,IAAIotB,EAAWD,EAAK3D,uBAEpB,GAAI4D,EAAU,CACZ,IAAI+wC,EAAc/wC,EAAS1vF,SAAS,GAEhCzC,IAAW6uF,SAASq0C,EAAa,cACnCjjI,KAAKkjI,iBAAgB,EAAMvqB,EAAYtkG,IAEvC4uH,EAAYn+D,SAAW,IAEvBm+D,EAAY72C,cAGdpsF,KAAKkjI,iBAAgB,EAAMvqB,EAAYtkG,GAGzCA,EAAMY,iBACN,MAIJ,KAAK,GAED4tH,EAAY/9D,SAAW,KACvB,IAAIutB,EAAWJ,EAAK2B,mBAEpB,GAAIvB,EAAU,CACZ,IAAI8wC,EAAc9wC,EAAS7vF,SAAS,GAEhCzC,IAAW6uF,SAASu0C,EAAa,cACnCnjI,KAAKkjI,iBAAgB,EAAOvqB,EAAYtkG,IAExC8uH,EAAYr+D,SAAW,IAEvBq+D,EAAY/2C,cAGdpsF,KAAKkjI,iBAAgB,EAAOvqB,EAAYtkG,GAG1CA,EAAMY,iBACN,MAIJ,KAAK,GAEDjV,KAAKugI,aAAalsH,EAAOyX,GACzBzX,EAAMY,iBACN,MAIJ,KAAK,GAEDjV,KAAK+3G,YAAY,KAAM/3G,KAAK89H,mBAC5BzpH,EAAMY,iBACN,MAIJ,KAAK,EAEDjV,KAAK4+H,UAAUvqH,MAKtB,CACDvW,IAAK,kBACLhC,MAAO,SAAyByuC,EAAMouE,EAAYtkG,GAChD,GAAIk2B,EACF,GAAkC,IAA9BvqC,KAAKxB,MAAM4kI,gBAAuC,IAAfzqB,EACrC34G,KAAK28H,WAAa,CAChB4C,UAAU,GAEZv/H,KAAKoxH,YAAY/8G,OACZ,CACL,IAAIgvH,EAAqBrjI,KAAK43G,WAAW7oG,QAAQvM,SAASm2G,EAAa,GACnEnxC,EAAQznE,IAAW+L,KAAKu3H,EAAoB,mDAC5CP,EAAYt7D,EAAMA,EAAM7sE,OAAS,GACrCmoI,EAAUh+D,SAAW,IACrBg+D,EAAU12C,aAGZ,GAAkC,IAA9BpsF,KAAKxB,MAAM4kI,gBAAwBzqB,IAAe34G,KAAKxB,MAAM4kI,eAAiB,EAChFpjI,KAAK28H,WAAa,CAChB4C,UAAU,GAEZv/H,KAAKqxH,WAAWh9G,OACX,CACL,IAAIivH,EAAqBtjI,KAAK43G,WAAW7oG,QAAQvM,SAASm2G,EAAa,GAEnE4qB,EAAcxjI,IAAWiI,WAAWs7H,EAAoB,mDAE5DC,EAAYz+D,SAAW,IAEvBy+D,EAAYn3C,WAIjB,CACDtuF,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOgoD,GACxC,IAAI41B,EAAO59E,EAAMoG,cAEjB,OAAQpG,EAAMM,OAEZ,KAAK,GACL,KAAK,GAEDs9E,EAAKntB,SAAW,KAChB,IAAI0C,EAAQyqB,EAAKh4E,cAAczX,SAC3B6wF,EAAYtzF,IAAWs8D,MAAM41B,GAC7BI,EAAW7qB,EAAsB,KAAhBnzD,EAAMM,MAAe0+E,EAAY,EAAIA,EAAY,GAElEhB,IACFA,EAASvtB,SAAW,IACpButB,EAASjG,SAGX/3E,EAAMY,iBACN,MAIJ,KAAK,GAEDg9E,EAAKntB,SAAW,KAChB,IAAIotB,EAAWD,EAAK3D,uBAEhB4D,IACFA,EAASptB,SAAW,IACpBotB,EAAS9F,SAGX/3E,EAAMY,iBACN,MAIJ,KAAK,GAEDg9E,EAAKntB,SAAW,KAChB,IAAI0+D,EAAYvxC,EAAK2B,mBAEjB4vC,IACFA,EAAU1+D,SAAW,IAErB0+D,EAAUp3C,SAGZ/3E,EAAMY,iBACN,MAIJ,KAAK,GAEDjV,KAAKyjI,cAAcpvH,EAAOgoD,GAC1BhoD,EAAMY,iBACN,MAIJ,KAAK,GAEDjV,KAAK+3G,YAAY,KAAM/3G,KAAK89H,mBAC5BzpH,EAAMY,iBACN,MAIJ,KAAK,EAEDjV,KAAK4+H,UAAUvqH,MAKtB,CACDvW,IAAK,eACLhC,MAAO,SAAsBuY,EAAOkxD,EAAU+6D,GAC5C,IAAI38G,EAAS3jB,KAEb,IAAIA,KAAKxB,MAAMihB,UAAa8lD,EAAS86D,WAArC,CAUA,GALAtgI,IAAW+L,KAAK9L,KAAK43G,WAAW7oG,QAAS,mDAAmDmC,SAAQ,SAAU+gF,GAC5G,OAAOA,EAAKntB,UAAY,KAE1BzwD,EAAMoG,cAAc2xE,QAEhBpsF,KAAKu6F,sBACP,GAAIv6F,KAAKgzE,WAAWzN,GAAW,CAC7B,IAAIzpE,EAAQkE,KAAKxB,MAAM1C,MAAMkC,QAAO,SAAU8tB,EAAMlxB,GAClD,OAAQ+oB,EAAO+/G,aAAa53G,EAAMy5C,MAEpCvlE,KAAKoU,YAAYC,EAAOvY,GACxBkE,KAAKk+H,iBAAiBpiI,SACZkE,KAAKxB,MAAMmlI,eAAiB3jI,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAMmlI,aAAe3jI,KAAKxB,MAAM1C,MAAMnB,SACrGqF,KAAK4jI,WAAWvvH,EAAOkxD,EAAU+6D,QAGnCtgI,KAAK4jI,WAAWvvH,EAAOkxD,EAAU+6D,GAG9BtgI,KAAKxB,MAAMy8G,SAAUj7G,KAAK65F,qBAAyB75F,KAAKxB,MAAMqlI,WAAY7jI,KAAKxB,MAAMslI,uBACxFj7H,YAAW,WACT8a,EAAOo0F,YAAY,gBAClB,KAEC/3G,KAAKs+H,aACPt+H,KAAKu+H,mBAITlqH,EAAMY,sBAjCJZ,EAAMY,mBAmCT,CACDnX,IAAK,aACLhC,MAAO,SAAoBgwB,EAAMw0G,GAC/B,GAAItgI,KAAKxB,MAAMqlI,SAAU,CACvB,IAAIpzG,EAAOE,EAASE,EAAST,EAE7B,GAAIkwG,EACF7vG,EAAQ6vG,EAAS7vG,MACjBE,EAAU2vG,EAAS3vG,QACnBE,EAAUyvG,EAASzvG,QACnBT,EAAekwG,EAASlwG,iBACnB,CACL,IAAIqd,EAAOztC,KAAK6gI,qBACZjjI,EAAO,CAAC6vC,EAAKvhB,WAAYuhB,EAAKthB,aAAcshB,EAAKrhB,aAAcqhB,EAAKphB,mBACxEoE,EAAQ7yB,EAAK,GACb+yB,EAAU/yB,EAAK,GACfizB,EAAUjzB,EAAK,GACfwyB,EAAexyB,EAAK,GAGtBkuB,EAAK22G,SAAShyG,GACd3E,EAAK42G,WAAW/xG,GAChB7E,EAAK62G,WAAW9xG,GAChB/E,EAAK82G,gBAAgBxyG,MAGxB,CACDtyB,IAAK,aACLhC,MAAO,SAAoBuY,EAAOkxD,EAAU+6D,GAC1C,IAAIx0G,EAAO,IAAIrjB,KAAK88D,EAASp6C,KAAMo6C,EAASh1C,MAAOg1C,EAAS/0C,KAC5DxwB,KAAK+jI,WAAWj4G,EAAMw0G,GAElBtgI,KAAKxB,MAAM4iI,SAAWphI,KAAKxB,MAAM4iI,QAAUt1G,IAC7CA,EAAO9rB,KAAKxB,MAAM4iI,SAGhBphI,KAAKxB,MAAMyiI,SAAWjhI,KAAKxB,MAAMyiI,QAAUn1G,IAC7CA,EAAO9rB,KAAKxB,MAAMyiI,SAGpB,IAAI+C,EAAiBl4G,EAErB,GAAI9rB,KAAK65F,oBACP75F,KAAKoU,YAAYC,EAAOyX,QACnB,GAAI9rB,KAAKu6F,sBACdypC,EAAiBhkI,KAAKxB,MAAM1C,MAAQ,GAAGiC,OAAOgvF,EAAmB/sF,KAAKxB,MAAM1C,OAAQ,CAACgwB,IAAS,CAACA,GAC/F9rB,KAAKoU,YAAYC,EAAO2vH,QACnB,GAAIhkI,KAAKs/H,mBACd,GAAIt/H,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/C,IAAIs7E,EAAYj2E,KAAKxB,MAAM1C,MAAM,GAC7B0vC,EAAUxrC,KAAKxB,MAAM1C,MAAM,IAE1B0vC,GAAW1f,EAAKnjB,WAAastE,EAAUttE,UAC1C6iC,EAAU1f,GAEVmqD,EAAYnqD,EACZ0f,EAAU,MAGZw4F,EAAiB,CAAC/tD,EAAWzqC,GAC7BxrC,KAAKoU,YAAYC,EAAO2vH,QAExBA,EAAiB,CAACl4G,EAAM,MACxB9rB,KAAKoU,YAAYC,EAAO2vH,GAIxBhkI,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACfvY,MAAOgwB,IAIX9rB,KAAKk+H,iBAAiB8F,KAEvB,CACDlmI,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOkc,GACnCvwB,KAAKugI,aAAalsH,EAAO,CACvB8W,KAAMnrB,KAAK2/H,cAAc5zG,cACzBwE,MAAOA,EACPC,IAAK,EACL6vG,YAAY,IAEdhsH,EAAMY,mBAEP,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,EAAOvY,GACjC,GAAIkE,KAAKxB,MAAM+T,SAAU,CACvB,IAAIikH,EAAW16H,GAASA,aAAiB2M,KAAO,IAAIA,KAAK3M,EAAM6M,WAAa7M,EAC5EkE,KAAKm+H,kBAAmB,EACxBn+H,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAO06H,EACPrqC,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAO06H,QAKd,CACD14H,IAAK,cACLhC,MAAO,SAAqB0B,GAC1B,IAAI29G,EAAUn7G,KAEVA,KAAKxB,MAAMggI,gBACbx+H,KAAKxB,MAAMggI,gBAAgB,CACzBlhH,SAAS,EACT9f,KAAMA,IAGRwC,KAAKwd,SAAS,CACZw5F,gBAAgB,IACf,WACDmE,EAAQloB,qBAAuB,SAAUzzF,GAClC27G,EAAQjoB,iBAAiB1zF,EAAEjB,UAC9B48G,EAAQ8oB,kBAAmB,IAI/B7/G,IAAeG,GAAG,gBAAiB42F,EAAQloB,2BAIhD,CACDn1F,IAAK,cACLhC,MAAO,SAAqB0B,EAAMmI,GAChC,IAAI02G,EAAUr8G,KAEVkkI,EAAgB,WAClB7nB,EAAQ8hB,kBAAmB,EAC3B9hB,EAAQoiB,0BAA2B,EACnCpiB,EAAQ4nB,kBAAmB,EAEvBt+H,GACFA,IAGFye,IAAeK,IAAI,gBAAiB43F,EAAQppB,sBAC5CopB,EAAQppB,qBAAuB,MAG7BjzF,KAAKxB,MAAMggI,gBAAiBx+H,KAAKxB,MAAMggI,gBAAgB,CACzDlhH,SAAS,EACT9f,KAAMA,EACNmI,SAAUu+H,IACJlkI,KAAKwd,SAAS,CACpBw5F,gBAAgB,GACfktB,KAEJ,CACDpmI,IAAK,iBACLhC,MAAO,WACDkE,KAAKxB,MAAM8Y,YACbR,IAAYW,IAAIzX,KAAKxB,MAAMqgI,QAAU,QAAU,UAAW7+H,KAAK43G,WAAW7oG,QAAS/O,KAAKxB,MAAM4Y,YAGhGpX,KAAKw6G,iBAEN,CACD18G,IAAK,mBACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKghB,6BACLhhB,KAAKihB,qBACLjhB,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAKuhB,+BACLvhB,KAAK0N,yBAEN,CACD5P,IAAK,kBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,4BACLhC,MAAO,WACL,IAAIygH,EAAUv8G,KAETA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,IAChCkoG,EAAQ0nB,kBAAoB1nB,EAAQyH,aAAezH,EAAQrpB,iBAAiB7+E,EAAM9V,SACrFg+G,EAAQxE,YAAY,WAGtBwE,EAAQ0nB,kBAAmB,GAG7BvjI,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,6BACLhC,MAAO,WACAkE,KAAKuiB,wBAA2BviB,KAAKxB,MAAMqgI,UAC9C7+H,KAAKuiB,uBAAyBviB,KAAKmkI,eAAepqH,KAAK/Z,MACvDY,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,2BAG1C,CACDzkB,IAAK,+BACLhC,MAAO,WACDkE,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,qBACLhC,MAAO,WACL,IAAI4gH,EAAU18G,KAETA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK8J,WAAW,WACjE4yG,EAAQsH,aACVtH,EAAQ3E,kBAKd/3G,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/B,OAAOyB,KAAK8J,aAAe9J,KAAK8J,UAAUypF,WAAWh1F,IAAWyB,KAAKokI,iBAAiB7lI,IAAWyB,KAAK8J,UAAUzG,SAAS9E,IAAWyB,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,QAAQ1L,SAAS9E,MAEzL,CACDT,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/B,OAAOwB,IAAW6uF,SAASrwF,EAAQ,sBAAwBwB,IAAW6uF,SAASrwF,EAAQ,2BAA6BwB,IAAW6uF,SAASrwF,EAAQ,sBAAwBwB,IAAW6uF,SAASrwF,EAAQ,4BAErM,CACDT,IAAK,iBACLhC,MAAO,WACDkE,KAAKgkH,cAAgBjkH,IAAWyiB,aAClCxiB,KAAK+3G,gBAGR,CACDj6G,IAAK,eACLhC,MAAO,WACDkE,KAAKxB,MAAMqgI,QACb7+H,KAAKqkI,iBAELtkI,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAAS/O,KAAK8rF,SAAS/8E,QAAQkL,cAAeja,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAG3H,CACDlG,IAAK,iBACLhC,MAAO,WACL,IAAI8gH,EAAU58G,KAETA,KAAKs+H,cACRt+H,KAAKs+H,YAAc59H,SAASsK,cAAc,OAC1ChL,KAAKs+H,YAAYl+H,MAAM8W,OAAS7G,OAAOyG,IAAYS,IAAIvX,KAAK43G,WAAW7oG,SAAW,GAClFhP,IAAWukI,mBAAmBtkI,KAAKs+H,YAAa,mGAEhDt+H,KAAKukI,yBAA2B,WAC9B3nB,EAAQ2hB,mBAGVv+H,KAAKs+H,YAAY9wH,iBAAiB,QAASxN,KAAKukI,0BAChD7jI,SAAS2B,KAAKmH,YAAYxJ,KAAKs+H,aAC/Bv+H,IAAWya,SAAS9Z,SAAS2B,KAAM,wBAGtC,CACDvE,IAAK,kBACLhC,MAAO,WACL,IAAI0oI,EAAUxkI,KAEVA,KAAKs+H,cACPv+H,IAAWya,SAASxa,KAAKs+H,YAAa,6BACtCt+H,KAAKs+H,YAAY9wH,iBAAiB,gBAAgB,WAChDg3H,EAAQC,oBAIb,CACD3mI,IAAK,cACLhC,MAAO,WACLkE,KAAKs+H,YAAY7wH,oBAAoB,QAASzN,KAAKukI,0BACnDvkI,KAAKukI,yBAA2B,KAChC7jI,SAAS2B,KAAKsH,YAAY3J,KAAKs+H,aAC/Bt+H,KAAKs+H,YAAc,KAInB,IAHA,IACIoG,EADAC,EAAejkI,SAAS2B,KAAKG,SAGxB5H,EAAI,EAAGA,EAAI+pI,EAAahqI,OAAQC,IAAK,CAC5C,IAAIgqI,EAAYD,EAAa/pI,GAE7B,GAAImF,IAAW6uF,SAASg2C,EAAW,mCAAoC,CACrEF,GAAkB,EAClB,OAICA,GACH3kI,IAAWma,YAAYxZ,SAAS2B,KAAM,uBAGzC,CACDvE,IAAK,0BACLhC,MAAO,SAAiCy0B,EAAOpF,GAC7C,IAAIqF,EAAM,IAAI/nB,KACd+nB,EAAIovG,QAAQ,GACZpvG,EAAIqvG,SAAStvG,GACbC,EAAIsvG,YAAY30G,GAChB,IAAIu7C,EAAWl2C,EAAIq0G,SAAW7kI,KAAK8kI,iBACnC,OAAOp+D,GAAY,EAAIA,EAAW,EAAIA,IAEvC,CACD5oE,IAAK,sBACLhC,MAAO,SAA6By0B,EAAOpF,GACzC,OAAO,GAAKnrB,KAAK+kI,qBAAqB,IAAIt8H,KAAK0iB,EAAMoF,EAAO,KAAKtE,YAElE,CACDnuB,IAAK,0BACLhC,MAAO,SAAiCy0B,EAAOpF,GAC7C,IAAIof,EAAOvqC,KAAKglI,wBAAwBz0G,EAAOpF,GAC/C,OAAOnrB,KAAKilI,oBAAoB16F,EAAKha,MAAOga,EAAKpf,QAElD,CACDrtB,IAAK,uBACLhC,MAAO,SAA8BgwB,GACnC,OAAKA,GAILA,EAAK22G,SAAS32G,EAAKI,WAAa,GAAKJ,EAAKI,WAAa,EAAI,GACpDJ,GAJE,OAMV,CACDhuB,IAAK,0BACLhC,MAAO,SAAiCy0B,EAAOpF,GAC7C,IAAIlB,EAAG7jB,EAUP,OARc,IAAVmqB,GACFtG,EAAI,GACJ7jB,EAAI+kB,EAAO,IAEXlB,EAAIsG,EAAQ,EACZnqB,EAAI+kB,GAGC,CACL,MAASlB,EACT,KAAQ7jB,KAGX,CACDtI,IAAK,sBACLhC,MAAO,SAA6By0B,EAAOpF,GACzC,IAAIlB,EAAG7jB,EAUP,OARc,KAAVmqB,GACFtG,EAAI,EACJ7jB,EAAI+kB,EAAO,IAEXlB,EAAIsG,EAAQ,EACZnqB,EAAI+kB,GAGC,CACL,MAASlB,EACT,KAAQ7jB,KAGX,CACDtI,IAAK,iBACLhC,MAAO,WACL,IAAIqiF,EAAiBM,YAAa,iBAAkBz+E,KAAKxB,MAAMq4B,QAC/D,OAAOsnD,EAAiB,EAAI,EAAIA,EAAiB,IAElD,CACDrgF,IAAK,iBACLhC,MAAO,WAOL,IANA,IAAIopI,EAAW,GAEXC,EAAiBzmD,YAAc1+E,KAAKxB,MAAMq4B,QAC1C6vC,EAAWy+D,EAAehnD,eAC1BJ,EAAconD,EAAepnD,YAExBnjF,EAAI,EAAGA,EAAI,EAAGA,IACrBsqI,EAASrpI,KAAKkiF,EAAYrX,IAC1BA,EAAwB,IAAbA,EAAiB,IAAMA,EAGpC,OAAOw+D,IAER,CACDpnI,IAAK,eACLhC,MAAO,SAAsBy0B,EAAOpF,GAGlC,IAFA,IAAIgF,EAAS,GAEJv1B,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM4kI,eAAgBxoI,IAAK,CAClD,IAAIqvB,EAAIsG,EAAQ31B,EACZwL,EAAI+kB,EAEJlB,EAAI,KACNA,EAAIA,EAAI,GAAK,EACb7jB,EAAI+kB,EAAO,GAGbgF,EAAOt0B,KAAKmE,KAAKolI,YAAYn7G,EAAG7jB,IAGlC,OAAO+pB,IAER,CACDryB,IAAK,cACLhC,MAAO,SAAqBy0B,EAAOpF,GAUjC,IATA,IAAIg7C,EAAQ,GACRn2B,EAAWhwC,KAAKqlI,wBAAwB90G,EAAOpF,GAC/Cm6G,EAAatlI,KAAKilI,oBAAoB10G,EAAOpF,GAC7Co6G,EAAsBvlI,KAAKwlI,wBAAwBj1G,EAAOpF,GAC1Ds6G,EAAQ,EACR76F,EAAQ,IAAIniC,KACZi9H,EAAc,GACdC,EAAYvgI,KAAK8hE,MAAMo+D,EAAat1F,GAAY,GAE3Cp1C,EAAI,EAAGA,EAAI+qI,EAAW/qI,IAAK,CAClC,IAAIs2B,EAAO,GAEX,GAAU,IAANt2B,EAAS,CACX,IAAK,IAAIqZ,EAAIsxH,EAAsBv1F,EAAW,EAAG/7B,GAAKsxH,EAAqBtxH,IAAK,CAC9E,IAAIs2B,EAAOvqC,KAAKglI,wBAAwBz0G,EAAOpF,GAC/C+F,EAAKr1B,KAAK,CACR20B,IAAKvc,EACLsc,MAAOga,EAAKha,MACZpF,KAAMof,EAAKpf,KACXy6G,YAAY,EACZh7F,MAAO5qC,KAAK+jC,QAAQ6G,EAAO32B,EAAGs2B,EAAKha,MAAOga,EAAKpf,MAC/Ck1G,WAAYrgI,KAAKm/H,aAAalrH,EAAGs2B,EAAKha,MAAOga,EAAKpf,MAAM,KAM5D,IAFA,IAAI06G,EAAsB,EAAI30G,EAAKv2B,OAE1Bo/G,EAAK,EAAGA,EAAK8rB,EAAqB9rB,IACzC7oF,EAAKr1B,KAAK,CACR20B,IAAKi1G,EACLl1G,MAAOA,EACPpF,KAAMA,EACNyf,MAAO5qC,KAAK+jC,QAAQ6G,EAAO66F,EAAOl1G,EAAOpF,GACzCk1G,WAAYrgI,KAAKm/H,aAAasG,EAAOl1G,EAAOpF,GAAM,KAEpDs6G,SAGF,IAAK,IAAIK,EAAM,EAAGA,EAAM,EAAGA,IAAO,CAChC,GAAIL,EAAQH,EAAY,CACtB,IAAI3pI,EAAOqE,KAAK+lI,oBAAoBx1G,EAAOpF,GAC3C+F,EAAKr1B,KAAK,CACR20B,IAAKi1G,EAAQH,EACb/0G,MAAO50B,EAAK40B,MACZpF,KAAMxvB,EAAKwvB,KACXy6G,YAAY,EACZh7F,MAAO5qC,KAAK+jC,QAAQ6G,EAAO66F,EAAQH,EAAY3pI,EAAK40B,MAAO50B,EAAKwvB,MAChEk1G,WAAYrgI,KAAKm/H,aAAasG,EAAQH,EAAY3pI,EAAK40B,MAAO50B,EAAKwvB,MAAM,UAG3E+F,EAAKr1B,KAAK,CACR20B,IAAKi1G,EACLl1G,MAAOA,EACPpF,KAAMA,EACNyf,MAAO5qC,KAAK+jC,QAAQ6G,EAAO66F,EAAOl1G,EAAOpF,GACzCk1G,WAAYrgI,KAAKm/H,aAAasG,EAAOl1G,EAAOpF,GAAM,KAItDs6G,IAIAzlI,KAAKxB,MAAMwnI,UACbN,EAAY7pI,KAAKmE,KAAKimI,cAAc,IAAIx9H,KAAKyoB,EAAK,GAAG/F,KAAM+F,EAAK,GAAGX,MAAOW,EAAK,GAAGV,OAGpF21C,EAAMtqE,KAAKq1B,GAGb,MAAO,CACLX,MAAOA,EACPpF,KAAMA,EACNg7C,MAAOA,EACPu/D,YAAaA,KAGhB,CACD5nI,IAAK,gBACLhC,MAAO,SAAuBgwB,GAC5B,IAAIo6G,EAAY,IAAIz9H,KAAKqjB,EAAKnjB,WAC9Bu9H,EAAUtG,QAAQsG,EAAUj6G,UAAY,GAAKi6G,EAAUrB,UAAY,IACnE,IAAIp3F,EAAOy4F,EAAUv9H,UAGrB,OAFAu9H,EAAUrG,SAAS,GACnBqG,EAAUtG,QAAQ,GACXx6H,KAAKsmB,MAAMtmB,KAAKwlB,OAAO6iB,EAAOy4F,EAAUv9H,WAAa,OAAY,GAAK,IAE9E,CACD7K,IAAK,eACLhC,MAAO,SAAsB00B,EAAKD,EAAOpF,EAAMy6G,GAC7C,IAAIO,GAAW,EACXC,GAAW,EACXC,GAAY,EACZC,GAAW,EACXC,GAAa,EA0CjB,OAxCIvmI,KAAKxB,MAAM4iI,UACTphI,KAAKxB,MAAM4iI,QAAQr1G,cAAgBZ,GAE5BnrB,KAAKxB,MAAM4iI,QAAQr1G,gBAAkBZ,IAC1CnrB,KAAKxB,MAAM4iI,QAAQp1G,WAAauE,GAEzBvwB,KAAKxB,MAAM4iI,QAAQp1G,aAAeuE,GACvCvwB,KAAKxB,MAAM4iI,QAAQn1G,UAAYuE,MALrC21G,GAAW,GAYXnmI,KAAKxB,MAAMyiI,UACTjhI,KAAKxB,MAAMyiI,QAAQl1G,cAAgBZ,GAE5BnrB,KAAKxB,MAAMyiI,QAAQl1G,gBAAkBZ,IAC1CnrB,KAAKxB,MAAMyiI,QAAQj1G,WAAauE,GAEzBvwB,KAAKxB,MAAMyiI,QAAQj1G,aAAeuE,GACvCvwB,KAAKxB,MAAMyiI,QAAQh1G,UAAYuE,MALrC41G,GAAW,GAYXpmI,KAAKxB,MAAMgoI,gBACbH,GAAarmI,KAAKymI,eAAej2G,EAAKD,EAAOpF,IAG3CnrB,KAAKxB,MAAMkoI,eACbJ,GAAYtmI,KAAK2mI,cAAcn2G,EAAKD,EAAOpF,KAGR,IAAjCnrB,KAAKxB,MAAMooI,mBAA+BhB,IAC5CW,GAAa,GAGRJ,GAAYC,GAAYC,GAAaC,GAAYC,IAEzD,CACDzoI,IAAK,mBACLhC,MAAO,SAA0BA,GAC/B,IAAIqqI,GAAW,EACXC,GAAW,EAsCf,OApCIpmI,KAAKxB,MAAM4iI,SAAWphI,KAAKxB,MAAM4iI,QAAQF,iBAAmBplI,EAAMolI,iBAChElhI,KAAKxB,MAAM4iI,QAAQl1G,WAAapwB,EAAMowB,YAE/BlsB,KAAKxB,MAAM4iI,QAAQl1G,aAAepwB,EAAMowB,aAC7ClsB,KAAKxB,MAAM4iI,QAAQj1G,aAAerwB,EAAMqwB,cAEjCnsB,KAAKxB,MAAM4iI,QAAQj1G,eAAiBrwB,EAAMqwB,eAC/CnsB,KAAKxB,MAAM4iI,QAAQh1G,aAAetwB,EAAMswB,cAEjCpsB,KAAKxB,MAAM4iI,QAAQh1G,eAAiBtwB,EAAMswB,cAC/CpsB,KAAKxB,MAAM4iI,QAAQ/0G,kBAAoBvwB,EAAMuwB,uBARrD85G,GAAW,GAgBXnmI,KAAKxB,MAAMyiI,SAAWjhI,KAAKxB,MAAMyiI,QAAQC,iBAAmBplI,EAAMolI,iBAChElhI,KAAKxB,MAAMyiI,QAAQ/0G,WAAapwB,EAAMowB,YAE/BlsB,KAAKxB,MAAMyiI,QAAQ/0G,aAAepwB,EAAMowB,aAC7ClsB,KAAKxB,MAAMyiI,QAAQ90G,aAAerwB,EAAMqwB,cAEjCnsB,KAAKxB,MAAMyiI,QAAQ90G,eAAiBrwB,EAAMqwB,eAC/CnsB,KAAKxB,MAAMyiI,QAAQ70G,aAAetwB,EAAMswB,cAEjCpsB,KAAKxB,MAAMyiI,QAAQ70G,eAAiBtwB,EAAMswB,cAC/CpsB,KAAKxB,MAAMyiI,QAAQ50G,kBAAoBvwB,EAAMuwB,uBARrD+5G,GAAW,GAgBRD,GAAYC,IAEpB,CACDtoI,IAAK,aACLhC,MAAO,SAAoBypE,GACzB,IAAIvlE,KAAKxB,MAAM1C,MA+Bb,OAAO,EA9BP,GAAIkE,KAAK65F,oBACP,OAAO75F,KAAK0jI,aAAa1jI,KAAKxB,MAAM1C,MAAOypE,GACtC,GAAIvlE,KAAKu6F,sBAAuB,CACrC,IAGInzF,EAHA0pF,GAAW,EAEXppF,EAAY+H,EAA2BzP,KAAKxB,MAAM1C,OAGtD,IACE,IAAK4L,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAIkwB,EAAO1kB,EAAMtL,MAGjB,GAFAg1F,EAAW9wF,KAAK0jI,aAAa53G,EAAMy5C,GAGjC,OAGJ,MAAOxpE,GACP2L,EAAUlI,EAAEzD,GAVd,QAYE2L,EAAUjI,IAGZ,OAAOqxF,EACF,OAAI9wF,KAAKs/H,mBACVt/H,KAAKxB,MAAM1C,MAAM,GAAWkE,KAAK0jI,aAAa1jI,KAAKxB,MAAM1C,MAAM,GAAIypE,IAAavlE,KAAK0jI,aAAa1jI,KAAKxB,MAAM1C,MAAM,GAAIypE,IAAavlE,KAAK6mI,cAAc7mI,KAAKxB,MAAM1C,MAAM,GAAIkE,KAAKxB,MAAM1C,MAAM,GAAIypE,GAC5LvlE,KAAK0jI,aAAa1jI,KAAKxB,MAAM1C,MAAM,GAAIypE,QAF3C,IASV,CACDznE,IAAK,kBACLhC,MAAO,SAAyBy0B,GAC9B,IAAIksG,EAAWz8H,KAAK2/H,cACpB,SAAI3/H,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,iBAAiB2M,QAA4C,IAA/BzI,KAAKxB,MAAM1C,MAAMmwB,WAAmBjsB,KAAKxB,MAAM1C,MAAMkwB,aAAeuE,GAASvwB,KAAKxB,MAAM1C,MAAMiwB,gBAAkB0wG,EAAS1wG,iBAE3L,CACDjuB,IAAK,eACLhC,MAAO,SAAsBA,EAAOypE,GAClC,SAAIzpE,GAASA,aAAiB2M,QAAa3M,EAAMmwB,YAAcs5C,EAAS/0C,KAAO10B,EAAMkwB,aAAeu5C,EAASh1C,OAASz0B,EAAMiwB,gBAAkBw5C,EAASp6C,QAExJ,CACDrtB,IAAK,gBACLhC,MAAO,SAAuB8Z,EAAO9C,EAAKyyD,GAGxC,GAAI3vD,GAAS9C,EAAK,CAChB,IAAIgZ,EAAO,IAAIrjB,KAAK88D,EAASp6C,KAAMo6C,EAASh1C,MAAOg1C,EAAS/0C,KAC5D,OAAO5a,EAAMjN,WAAamjB,EAAKnjB,WAAamK,EAAInK,WAAamjB,EAAKnjB,UAGpE,OAPc,IASf,CACD7K,IAAK,oBACLhC,MAAO,WACL,MAAoC,WAA7BkE,KAAKxB,MAAM69E,gBAEnB,CACDv+E,IAAK,mBACLhC,MAAO,WACL,MAAoC,UAA7BkE,KAAKxB,MAAM69E,gBAEnB,CACDv+E,IAAK,sBACLhC,MAAO,WACL,MAAoC,aAA7BkE,KAAKxB,MAAM69E,gBAEnB,CACDv+E,IAAK,UACLhC,MAAO,SAAiB8uC,EAAOpa,EAAKD,EAAOpF,GACzC,OAAOyf,EAAM3e,YAAcuE,GAAOoa,EAAM5e,aAAeuE,GAASqa,EAAM7e,gBAAkBZ,IAEzF,CACDrtB,IAAK,iBACLhC,MAAO,SAAwB00B,EAAKD,EAAOpF,GACzC,GAAInrB,KAAKxB,MAAMgoI,cACb,IAAK,IAAI5rI,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMgoI,cAAc7rI,OAAQC,IAAK,CACxD,IAAIksI,EAAe9mI,KAAKxB,MAAMgoI,cAAc5rI,GAE5C,GAAIksI,EAAa/6G,gBAAkBZ,GAAQ27G,EAAa96G,aAAeuE,GAASu2G,EAAa76G,YAAcuE,EACzG,OAAO,EAKb,OAAO,IAER,CACD1yB,IAAK,gBACLhC,MAAO,SAAuB00B,EAAKD,EAAOpF,GACxC,GAAInrB,KAAKxB,MAAMkoI,aAAc,CAC3B,IACIK,EADU,IAAIt+H,KAAK0iB,EAAMoF,EAAOC,GACRq0G,SAC5B,OAA2D,IAApD7kI,KAAKxB,MAAMkoI,aAAah7H,QAAQq7H,GAGzC,OAAO,IAER,CACDjpI,IAAK,mBACLhC,MAAO,SAA0BA,GAC/B,GAAMkE,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,QAArC,CAIA,IAAI8mH,EAAiB,GAErB,GAAI/5H,EACF,IACE,GAAIkE,KAAK65F,oBACPg8B,EAAiB71H,KAAK4sB,YAAY9wB,GAASkE,KAAKgnI,eAAelrI,GAAS,QACnE,GAAIkE,KAAKu6F,sBACd,IAAK,IAAI3/F,EAAI,EAAGA,EAAIkB,EAAMnB,OAAQC,IAAK,CACrC,IAAIqsI,EAAgBnrI,EAAMlB,GAE1Bi7H,GADmB71H,KAAK4sB,YAAYq6G,GAAiBjnI,KAAKgnI,eAAeC,GAAiB,GAGtFrsI,IAAMkB,EAAMnB,OAAS,IACvBk7H,GAAkB,WAGjB,GAAI71H,KAAKs/H,oBACVxjI,GAASA,EAAMnB,OAAQ,CACzB,IAAIs7E,EAAYn6E,EAAM,GAClB0vC,EAAU1vC,EAAM,GACpB+5H,EAAiB71H,KAAK4sB,YAAYqpD,GAAaj2E,KAAKgnI,eAAe/wD,GAAa,GAE5EzqC,IACFqqF,GAAkB71H,KAAK4sB,YAAY4e,GAAW,MAAQxrC,KAAKgnI,eAAex7F,GAAW,KAI3F,MAAOzvC,GACP85H,EAAiB/5H,EAIrBkE,KAAK8rF,SAAS/8E,QAAQjT,MAAQ+5H,KAE/B,CACD/3H,IAAK,iBACLhC,MAAO,SAAwBgwB,GAC7B,IAAI+pG,EAAiB,KAcrB,OAZI/pG,IACE9rB,KAAKxB,MAAM0oI,SACbrR,EAAiB71H,KAAKmnI,WAAWr7G,IAEjC+pG,EAAiB71H,KAAKorC,WAAWtf,EAAM9rB,KAAKonI,iBAExCpnI,KAAKxB,MAAMqlI,WACbhO,GAAkB,IAAM71H,KAAKmnI,WAAWr7G,MAKvC+pG,IAER,CACD/3H,IAAK,aACLhC,MAAO,SAAoBgwB,EAAMhF,GAC/B,IAAKgF,EACH,MAAO,GAGT,IAAIu7G,EAEAC,EAAY,SAAmB97H,GACjC,IAAI2b,EAAUkgH,EAAU,EAAIvgH,EAAOnsB,QAAUmsB,EAAOnT,OAAO0zH,EAAU,KAAO77H,EAM5E,OAJI2b,GACFkgH,IAGKlgH,GAELogH,EAAe,SAAsB/7H,EAAO1P,EAAOpB,GACrD,IAAIiI,EAAM,GAAK7G,EAEf,GAAIwrI,EAAU97H,GACZ,KAAO7I,EAAIhI,OAASD,GAClBiI,EAAM,IAAMA,EAIhB,OAAOA,GAEL6kI,EAAa,SAAoBh8H,EAAO1P,EAAO2rI,EAAYC,GAC7D,OAAOJ,EAAU97H,GAASk8H,EAAU5rI,GAAS2rI,EAAW3rI,IAGtD6rI,EAAS,GACTC,GAAU,EAEVC,EAAkBnpD,YAAc1+E,KAAKxB,MAAMq4B,QAC3CinD,EAAgB+pD,EAAgB/pD,cAChCD,EAAWgqD,EAAgBhqD,SAC3BI,EAAkB4pD,EAAgB5pD,gBAClCD,EAAa6pD,EAAgB7pD,WAEjC,GAAIlyD,EACF,IAAKu7G,EAAU,EAAGA,EAAUvgH,EAAOnsB,OAAQ0sI,IACzC,GAAIO,EAC6B,MAA3B9gH,EAAOnT,OAAO0zH,IAAsBC,EAAU,KAGhDK,GAAU7gH,EAAOnT,OAAO0zH,GAFxBO,GAAU,OAKZ,OAAQ9gH,EAAOnT,OAAO0zH,IACpB,IAAK,IACHM,GAAUJ,EAAa,IAAKz7G,EAAKG,UAAW,GAC5C,MAEF,IAAK,IACH07G,GAAUH,EAAW,IAAK17G,EAAK+4G,SAAU/mD,EAAeD,GACxD,MAEF,IAAK,IACH8pD,GAAUJ,EAAa,IAAKniI,KAAKwlB,OAAO,IAAIniB,KAAKqjB,EAAKC,cAAeD,EAAKE,WAAYF,EAAKG,WAAWtjB,UAAY,IAAIF,KAAKqjB,EAAKC,cAAe,EAAG,GAAGpjB,WAAa,OAAW,GAC7K,MAEF,IAAK,IACHg/H,GAAUJ,EAAa,IAAKz7G,EAAKE,WAAa,EAAG,GACjD,MAEF,IAAK,IACH27G,GAAUH,EAAW,IAAK17G,EAAKE,WAAYiyD,EAAiBD,GAC5D,MAEF,IAAK,IACH2pD,GAAUL,EAAU,KAAOx7G,EAAKC,eAAiBD,EAAKC,cAAgB,IAAM,GAAK,IAAM,IAAMD,EAAKC,cAAgB,IAClH,MAEF,IAAK,IACH47G,GAAU77G,EAAKnjB,UACf,MAEF,IAAK,IACHg/H,GAA2B,IAAjB77G,EAAKnjB,UAAoB3I,KAAK8nI,YACxC,MAEF,IAAK,IACCR,EAAU,KACZK,GAAU,IAEVC,GAAU,EAGZ,MAEF,QACED,GAAU7gH,EAAOnT,OAAO0zH,GAMlC,OAAOM,IAER,CACD7pI,IAAK,aACLhC,MAAO,SAAoBgwB,GACzB,IAAKA,EACH,MAAO,GAGT,IAAI67G,EAAS,GACTl3G,EAAQ3E,EAAKI,WACbyE,EAAU7E,EAAKK,aACf0E,EAAU/E,EAAKM,aACfgE,EAAetE,EAAKO,kBA6BxB,MA3B8B,OAA1BrsB,KAAKxB,MAAMupI,YAAuBt3G,EAAQ,IAAgB,KAAVA,IAClDA,GAAS,IAGmB,OAA1BzwB,KAAKxB,MAAMupI,WACbJ,GAAoB,IAAVl3G,EAAc,GAAKA,EAAQ,GAAK,IAAMA,EAAQA,EAExDk3G,GAAUl3G,EAAQ,GAAK,IAAMA,EAAQA,EAGvCk3G,GAAU,IACVA,GAAUh3G,EAAU,GAAK,IAAMA,EAAUA,EAErC3wB,KAAKxB,MAAMwpI,cACbL,GAAU,IACVA,GAAU92G,EAAU,GAAK,IAAMA,EAAUA,GAGvC7wB,KAAKxB,MAAMypI,eACbN,GAAU,IACVA,GAAUv3G,EAAe,KAAOA,EAAe,GAAK,KAAO,KAAOA,EAAeA,GAGrD,OAA1BpwB,KAAKxB,MAAMupI,aACbJ,GAAU77G,EAAKI,WAAa,GAAK,MAAQ,OAGpCy7G,IAER,CACD7pI,IAAK,uBACLhC,MAAO,SAA8BkR,GACnC,IAAKA,GAA+B,IAAvBA,EAAKsD,OAAO3V,OACvB,OAAO,KAGT,IAAImB,EAEJ,GAAIkE,KAAK65F,oBACP/9F,EAAQkE,KAAKkoI,cAAcl7H,QACtB,GAAIhN,KAAKu6F,sBAAuB,CAErCz+F,EAAQ,GAER,IACIgM,EADAC,EAAa0H,EAHJzC,EAAKjK,MAAM,MAMxB,IACE,IAAKgF,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAIi9B,EAAQ/wB,EAAOhM,MACnBA,EAAMD,KAAKmE,KAAKkoI,cAAcrvG,EAAMvoB,UAEtC,MAAOvU,GACPgM,EAAWvI,EAAEzD,GANf,QAQEgM,EAAWtI,UAER,GAAIO,KAAKs/H,mBAAoB,CAClC,IAAI6I,EAAUn7H,EAAKjK,MAAM,OAEzBjH,EAAQ,GAER,IAAK,IAAIlB,EAAI,EAAGA,EAAIutI,EAAQxtI,OAAQC,IAClCkB,EAAMlB,GAAKoF,KAAKkoI,cAAcC,EAAQvtI,GAAG0V,QAI7C,OAAOxU,IAER,CACDgC,IAAK,gBACLhC,MAAO,SAAuBkR,GAC5B,IAAI8e,EACAgL,EAAQ9pB,EAAKjK,MAAM,KAcvB,OAZI/C,KAAKxB,MAAM0oI,UACbp7G,EAAO,IAAIrjB,KACXzI,KAAKooI,aAAat8G,EAAMgL,EAAM,GAAIA,EAAM,KAEpC92B,KAAKxB,MAAMqlI,UACb/3G,EAAO9rB,KAAKqoI,UAAUvxG,EAAM,GAAI92B,KAAKonI,iBACrCpnI,KAAKooI,aAAat8G,EAAMgL,EAAM,GAAIA,EAAM,KAExChL,EAAO9rB,KAAKqoI,UAAUr7H,EAAMhN,KAAKonI,iBAI9Bt7G,IAER,CACDhuB,IAAK,eACLhC,MAAO,SAAsBA,EAAOwsI,EAAYC,GAC9C,GAA8B,OAA1BvoI,KAAKxB,MAAMupI,YAAgC,OAATQ,GAA0B,OAATA,EACrD,MAAM,IAAI7+H,MAAM,gBAGlB,IAAI+jC,EAAOztC,KAAKwoI,UAAUF,EAAYC,GACtCzsI,EAAM2mI,SAASh1F,EAAK/c,MACpB50B,EAAM4mI,WAAWj1F,EAAK7c,QACtB90B,EAAM6mI,WAAWl1F,EAAK3c,QACtBh1B,EAAM8mI,gBAAgBn1F,EAAK1c,eAE5B,CACDjzB,IAAK,YACLhC,MAAO,SAAmBA,EAAOysI,GAE/B,IAAIxvG,GADJj9B,EAAQkE,KAAKxB,MAAMypI,aAAensI,EAAMqH,QAAQ,IAAK,KAAOrH,GACzCiH,MAAM,KACrB0lI,EAAmBzoI,KAAKxB,MAAMwpI,YAAc,EAAI,EAGpD,GAFAS,EAAmBzoI,KAAKxB,MAAMypI,aAAeQ,EAAmB,EAAIA,EAEhE1vG,EAAOp+B,SAAW8tI,GAAyC,IAArB1vG,EAAO,GAAGp+B,QAAqC,IAArBo+B,EAAO,GAAGp+B,QAAgBqF,KAAKxB,MAAMwpI,aAAoC,IAArBjvG,EAAO,GAAGp+B,QAAgBqF,KAAKxB,MAAMypI,cAAqC,IAArBlvG,EAAO,GAAGp+B,OACrL,MAAM,IAAI+O,MAAM,gBAGlB,IAAIg/H,EAAIlxH,SAASuhB,EAAO,GAAI,IACxB9O,EAAIzS,SAASuhB,EAAO,GAAI,IACxBx5B,EAAIS,KAAKxB,MAAMwpI,YAAcxwH,SAASuhB,EAAO,GAAI,IAAM,KACvD/H,EAAKhxB,KAAKxB,MAAMypI,aAAezwH,SAASuhB,EAAO,GAAI,IAAM,KAE7D,GAAIlM,MAAM67G,IAAM77G,MAAM5C,IAAMy+G,EAAI,IAAMz+G,EAAI,IAAgC,OAA1BjqB,KAAKxB,MAAMupI,YAAuBW,EAAI,IAAM1oI,KAAKxB,MAAMwpI,cAAgBn7G,MAAMttB,IAAMA,EAAI,KAAOS,KAAKxB,MAAMypI,eAAiBp7G,MAAMttB,IAAMA,EAAI,KACxL,MAAM,IAAImK,MAAM,gBAMhB,MAJ8B,OAA1B1J,KAAKxB,MAAMupI,YAA6B,KAANW,GAAqB,OAATH,IAChDG,GAAK,IAGA,CACLh4G,KAAMg4G,EACN93G,OAAQ3G,EACR6G,OAAQvxB,EACRwxB,YAAaC,KAKlB,CACDlzB,IAAK,YACLhC,MAAO,SAAmBA,EAAOgrB,GAC/B,GAAc,MAAVA,GAA2B,MAAThrB,EACpB,MAAM,IAAI4N,MAAM,qBAKlB,GAAc,MAFd5N,EAA2B,WAAnBiB,EAAQjB,GAAsBA,EAAMQ,WAAaR,EAAQ,IAG/D,OAAO,KAGT,IAAIurI,EACAsB,EACAvsG,EAQAtQ,EAPA88G,EAAS,EACTC,EAAwD,kBAA/B7oI,KAAKxB,MAAMqqI,gBAA+B7oI,KAAKxB,MAAMqqI,iBAAkB,IAAIpgI,MAAOsjB,cAAgB,IAAMvU,SAASxX,KAAKxB,MAAMqqI,gBAAiB,IACtK19G,GAAQ,EACRoF,GAAS,EACTC,GAAO,EACPnF,GAAO,EACPu8G,GAAU,EAEVN,EAAY,SAAmB97H,GACjC,IAAI2b,EAAUkgH,EAAU,EAAIvgH,EAAOnsB,QAAUmsB,EAAOnT,OAAO0zH,EAAU,KAAO77H,EAM5E,OAJI2b,GACFkgH,IAGKlgH,GAEL2hH,EAAY,SAAmBt9H,GACjC,IAAIu9H,EAAYzB,EAAU97H,GACtB25G,EAAiB,MAAV35G,EAAgB,GAAe,MAAVA,EAAgB,GAAe,MAAVA,GAAiBu9H,EAAY,EAAc,MAAVv9H,EAAgB,EAAI,EAEtGw9H,EAAS,IAAI5lI,OAAO,SADA,MAAVoI,EAAgB25G,EAAO,GACO,IAAMA,EAAO,KACrDxiH,EAAM7G,EAAMkK,UAAU4iI,GAAQp9H,MAAMw9H,GAExC,IAAKrmI,EACH,MAAM,IAAI+G,MAAM,8BAAgCk/H,GAIlD,OADAA,GAAUjmI,EAAI,GAAGhI,OACV6c,SAAS7U,EAAI,GAAI,KAEtBsmI,EAAU,SAAiBz9H,EAAOi8H,EAAYC,GAKhD,IAJA,IAAIrrE,GAAS,EACT5hE,EAAM6sI,EAAU97H,GAASk8H,EAAYD,EACrCyB,EAAQ,GAEHtuI,EAAI,EAAGA,EAAIH,EAAIE,OAAQC,IAC9BsuI,EAAMrtI,KAAK,CAACjB,EAAGH,EAAIG,KAGrBsuI,EAAM9pG,MAAK,SAAUnxB,EAAGC,GACtB,QAASD,EAAE,GAAGtT,OAASuT,EAAE,GAAGvT,WAG9B,IAAK,IAAIO,EAAK,EAAGA,EAAKguI,EAAMvuI,OAAQO,IAAM,CACxC,IAAIuB,EAAOysI,EAAMhuI,GAAI,GAErB,GAAIY,EAAM0tB,OAAOo/G,EAAQnsI,EAAK9B,QAAQ4Q,gBAAkB9O,EAAK8O,cAAe,CAC1E8wD,EAAQ6sE,EAAMhuI,GAAI,GAClB0tI,GAAUnsI,EAAK9B,OACf,OAIJ,IAAe,IAAX0hE,EACF,OAAOA,EAAQ,EAEf,MAAM,IAAI3yD,MAAM,4BAA8Bk/H,IAG9CO,EAAe,WACjB,GAAIrtI,EAAM6X,OAAOi1H,KAAY9hH,EAAOnT,OAAO0zH,GACzC,MAAM,IAAI39H,MAAM,kCAAoCk/H,GAGtDA,KAGsB,UAApB5oI,KAAKxB,MAAMqnC,OACbrV,EAAM,GAGR,IAAI44G,EAAkB1qD,YAAc1+E,KAAKxB,MAAMq4B,QAC3CinD,EAAgBsrD,EAAgBtrD,cAChCD,EAAWurD,EAAgBvrD,SAC3BI,EAAkBmrD,EAAgBnrD,gBAClCD,EAAaorD,EAAgBprD,WAEjC,IAAKqpD,EAAU,EAAGA,EAAUvgH,EAAOnsB,OAAQ0sI,IACzC,GAAIO,EAC6B,MAA3B9gH,EAAOnT,OAAO0zH,IAAqBC,EAAU,KAG/C6B,IAFAvB,GAAU,OAKZ,OAAQ9gH,EAAOnT,OAAO0zH,IACpB,IAAK,IACH72G,EAAMs4G,EAAU,KAChB,MAEF,IAAK,IACHG,EAAQ,IAAKnrD,EAAeD,GAC5B,MAEF,IAAK,IACHxyD,EAAMy9G,EAAU,KAChB,MAEF,IAAK,IACHv4G,EAAQu4G,EAAU,KAClB,MAEF,IAAK,IACHv4G,EAAQ04G,EAAQ,IAAKhrD,EAAiBD,GACtC,MAEF,IAAK,IACH7yD,EAAO29G,EAAU,KACjB,MAEF,IAAK,IAEH39G,GADAW,EAAO,IAAIrjB,KAAKqgI,EAAU,OACd/8G,cACZwE,EAAQzE,EAAKE,WAAa,EAC1BwE,EAAM1E,EAAKG,UACX,MAEF,IAAK,IAEHd,GADAW,EAAO,IAAIrjB,MAAMqgI,EAAU,KAAO9oI,KAAK8nI,aAAe,MAC1C/7G,cACZwE,EAAQzE,EAAKE,WAAa,EAC1BwE,EAAM1E,EAAKG,UACX,MAEF,IAAK,IACCq7G,EAAU,KACZ6B,IAEAvB,GAAU,EAGZ,MAEF,QACEuB,IAKR,GAAIP,EAAS9sI,EAAMnB,SACjByhC,EAAQtgC,EAAM0tB,OAAOo/G,IAEhB,OAAOjsI,KAAKy/B,IACf,MAAM,IAAI1yB,MAAM,4CAA8C0yB,GAUlE,IANc,IAAVjR,EACFA,GAAO,IAAI1iB,MAAOsjB,cACTZ,EAAO,MAChBA,IAAQ,IAAI1iB,MAAOsjB,eAAgB,IAAItjB,MAAOsjB,cAAgB,KAAOZ,GAAQ09G,EAAkB,GAAK,MAGlGx9G,GAAO,EAIT,IAHAkF,EAAQ,EACRC,EAAMnF,IAEH,CAGD,GAAImF,IAFJm4G,EAAM3oI,KAAKilI,oBAAoB95G,EAAMoF,EAAQ,IAG3C,MAGFA,IACAC,GAAOm4G,EAMX,IAFA78G,EAAO9rB,KAAK+kI,qBAAqB,IAAIt8H,KAAK0iB,EAAMoF,EAAQ,EAAGC,KAElDzE,gBAAkBZ,GAAQW,EAAKE,WAAa,IAAMuE,GAASzE,EAAKG,YAAcuE,EACrF,MAAM,IAAI9mB,MAAM,gBAGlB,OAAOoiB,IAER,CACDhuB,IAAK,0BACLhC,MAAO,SAAiCkoH,GACtC,IAAIqlB,EAAUrpI,KAEVspI,EAAiBtlB,EAAY,CAC/B,QAAWhkH,KAAK88H,kBAChB,UAAa,SAAmBt9H,GAC9B,OAAO6pI,EAAQE,yBAAyB/pI,KAExC,CACF,MAAS,CACPyI,WAAY,WAGhB,OAAoB4S,IAAM7P,cAAc,SAAUytE,EAAS,CACzDj7E,KAAM,SACND,UAAW,4BACV+rI,GAA8BzuH,IAAM7P,cAAc,OAAQ,CAC3DzN,UAAW,8CACIsd,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,yBACLhC,MAAO,SAAgCkoH,GACrC,IAAIwlB,EAAUxpI,KAEVspI,EAAiBtlB,EAAY,CAC/B,QAAWhkH,KAAK+8H,kBAChB,UAAa,SAAmBv9H,GAC9B,OAAOgqI,EAAQD,yBAAyB/pI,KAExC,CACF,MAAS,CACPyI,WAAY,WAGhB,OAAoB4S,IAAM7P,cAAc,SAAUytE,EAAS,CACzDj7E,KAAM,SACND,UAAW,4BACV+rI,GAA8BzuH,IAAM7P,cAAc,OAAQ,CAC3DzN,UAAW,+CACIsd,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,cACLhC,MAAO,SAAqB2gI,GAC1B,OAAOz8H,KAAKxB,MAAM4iI,SAAWphI,KAAKxB,MAAM4iI,QAAQr1G,gBAAkB0wG,EAAS1wG,gBAE5E,CACDjuB,IAAK,cACLhC,MAAO,SAAqB2gI,GAC1B,OAAOz8H,KAAKxB,MAAMyiI,SAAWjhI,KAAKxB,MAAMyiI,QAAQl1G,gBAAkB0wG,EAAS1wG,gBAE5E,CACDjuB,IAAK,0BACLhC,MAAO,SAAiCy0B,GACtC,IAAIk5G,EAAUzpI,KAEVg+E,EAAaS,YAAa,aAAcz+E,KAAKxB,MAAMq4B,QAEvD,GAAI72B,KAAKxB,MAAM2jI,gBAAsC,UAApBniI,KAAKxB,MAAMqnC,KAAkB,CAC5D,IAAI42F,EAAWz8H,KAAK2/H,cAChByC,EAAY3F,EAASzwG,WACrB09G,EAAwB1rD,EAAWrgF,KAAI,SAAU4yB,EAAO8rC,GAC1D,QAASotE,EAAQnH,YAAY7F,IAAapgE,GAASotE,EAAQjrI,MAAM4iI,QAAQp1G,eAAiBy9G,EAAQlH,YAAY9F,IAAapgE,GAASotE,EAAQjrI,MAAMyiI,QAAQj1G,YAAc,CACtKutD,MAAOhpD,EACPz0B,MAAOugE,EACPA,MAAOA,GACL,QACHr+D,QAAO,SAAU2hB,GAClB,QAASA,KAEPgqH,EAAsBD,EAAsB/rI,KAAI,SAAUgiB,GAC5D,OAAOA,EAAO45D,SAEZv6D,EAAuBnE,IAAM7P,cAAc,SAAU,CACvDzN,UAAW,qBACXgV,SAAU,SAAkB/S,GAC1B,OAAOiqI,EAAQzM,sBAAsBx9H,EAAGA,EAAEjB,OAAOzC,QAEnDA,MAAOsmI,GACNsH,EAAsB/rI,KAAI,SAAUgiB,GACrC,OAAoB9E,IAAM7P,cAAc,SAAU,CAChDlN,IAAK6hB,EAAO45D,MACZz9E,MAAO6jB,EAAO7jB,OACb6jB,EAAO45D,WAGZ,GAAIv5E,KAAKxB,MAAMorI,uBAAwB,CACrC,IAAIpwD,EAAwB,CAC1BjnE,SAAUvS,KAAKg9H,sBACfz/H,UAAW,qBACXzB,MAAOsmI,EACP8G,MAAOS,EACPr4H,QAASo4H,EACTnnI,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMorI,uBAAwBpwD,GAGtE,OAAOx6D,EAEP,OAAoBnE,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,sBACVygF,EAAWztD,MAGjB,CACDzyB,IAAK,yBACLhC,MAAO,SAAgCqvB,GACrC,IAAI0+G,EAAU7pI,KAEd,GAAIA,KAAKxB,MAAMwhI,cAAe,CAM5B,IALA,IAAI8J,EAAc,GACd55G,EAAQlwB,KAAKxB,MAAM0hI,UAAUn9H,MAAM,KACnCgnI,EAAYvyH,SAAS0Y,EAAM,GAAI,IAC/B85G,EAAUxyH,SAAS0Y,EAAM,GAAI,IAExBt1B,EAAImvI,EAAWnvI,GAAKovI,EAASpvI,IACpCkvI,EAAYjuI,KAAKjB,GAGnB,IACIonI,EADWhiI,KAAK2/H,cACI5zG,cACpBk+G,EAAqBH,EAAY9rI,QAAO,SAAUmtB,GACpD,QAAS0+G,EAAQrrI,MAAM4iI,SAAWyI,EAAQrrI,MAAM4iI,QAAQr1G,cAAgBZ,MAAW0+G,EAAQrrI,MAAMyiI,SAAW4I,EAAQrrI,MAAMyiI,QAAQl1G,cAAgBZ,MAEhJnM,EAAuBnE,IAAM7P,cAAc,SAAU,CACvDzN,UAAW,oBACXgV,SAAU,SAAkB/S,GAC1B,OAAOqqI,EAAQ5M,qBAAqBz9H,EAAGA,EAAEjB,OAAOzC,QAElDA,MAAOkmI,GACNiI,EAAmBtsI,KAAI,SAAUwtB,GAClC,OAAoBtQ,IAAM7P,cAAc,SAAU,CAChDlN,IAAKqtB,EACLrvB,MAAOqvB,GACNA,OAGL,GAAInrB,KAAKxB,MAAM0rI,sBAAuB,CACpC,IAAI54H,EAAU24H,EAAmBtsI,KAAI,SAAUlB,EAAM7B,GACnD,MAAO,CACL2+E,MAAO98E,EACPX,MAAOW,EACP4/D,MAAOzhE,MAGP4+E,EAAwB,CAC1BjnE,SAAUvS,KAAKi9H,qBACf1/H,UAAW,oBACXzB,MAAOkmI,EACPkH,MAAOe,EACP34H,QAASA,EACT/O,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAM0rI,sBAAuB1wD,GAGrE,OAAOx6D,EAEP,OAAoBnE,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,qBACV4tB,KAGN,CACDrtB,IAAK,cACLhC,MAAO,SAAqBquI,GAC1B,IAAI55G,EAAQvwB,KAAKoqI,wBAAwBD,EAAc55G,OACnDpF,EAAOnrB,KAAKqqI,uBAAuBF,EAAch/G,MACrD,OAAoBtQ,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,sBACVgzB,EAAOpF,KAEX,CACDrtB,IAAK,iBACLhC,MAAO,SAAwBopI,GAC7B,IAAIrnD,EAAWqnD,EAASvnI,KAAI,SAAU2sI,EAASjuE,GAC7C,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,GAAGC,OAAOusI,EAAS,KAAKvsI,OAAOs+D,GACpC7I,MAAO,OACO34C,IAAM7P,cAAc,OAAQ,KAAMs/H,OAGpD,OAAItqI,KAAKxB,MAAMwnI,SAMN,CALuBnrH,IAAM7P,cAAc,KAAM,CACtDwoD,MAAO,MACP11D,IAAK,KACLP,UAAW,sCACGsd,IAAM7P,cAAc,OAAQ,KAAMyzE,YAAa,aAAcz+E,KAAKxB,MAAMq4B,WACpE94B,OAAOgvF,EAAmBlP,IAEvCA,IAGV,CACD//E,IAAK,wBACLhC,MAAO,SAA+BgwB,EAAMvuB,EAAWo7G,GACrD,IAAI4xB,EAAUvqI,KAEVgf,EAAUhf,KAAKxB,MAAMgsI,aAAexqI,KAAKxB,MAAMgsI,aAAa1+G,GAAQA,EAAK0E,IAC7E,OAAoB3V,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWA,EACXyiE,QAAS,SAAiBxgE,GACxB,OAAO+qI,EAAQhK,aAAa/gI,EAAGssB,IAEjCrX,UAAW,SAAmBjV,GAC5B,OAAO+qI,EAAQE,kBAAkBjrI,EAAGssB,EAAM6sF,KAE3C35F,EAAsBnE,IAAM7P,cAAc2O,IAAQ,SAEtD,CACD7b,IAAK,aACLhC,MAAO,SAAoB4uI,EAAWC,EAAYhyB,GAChD,IAAIiyB,EAAU5qI,KAEVkxB,EAAOw5G,EAAU/sI,KAAI,SAAUmuB,GACjC,IAAIglE,EAAW85C,EAAQ53D,WAAWlnD,GAE9BwoE,EAAgBr3F,YAAW,CAC7B,2BAA4B6uB,EAAK85G,WACjC,qBAAsB95G,EAAK8e,QAEzBigG,EAAgB5tI,YAAW,CAC7B,cAAe6zF,EACf,cAAehlE,EAAKu0G,aAElBrhH,EAAU8M,EAAK85G,aAAegF,EAAQpsI,MAAMssI,gBAAkB,KAAOF,EAAQG,sBAAsBj/G,EAAM++G,EAAelyB,GAC5H,OAAoB99F,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKguB,EAAK0E,IACVjzB,UAAW+2F,GACVt1E,MAGL,OAAIhf,KAAKxB,MAAMwnI,SAON,CAN2BnrH,IAAM7P,cAAc,KAAM,CAC1DlN,IAAK,KAAO6sI,EACZptI,UAAW,2BACGsd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,cACVotI,KACqB5sI,OAAOgvF,EAAmB77D,IAE3CA,IAGV,CACDpzB,IAAK,cACLhC,MAAO,SAAqBquI,EAAexxB,GACzC,IAAIqyB,EAAUhrI,KAEd,OAAOmqI,EAAchkE,MAAMxoE,KAAI,SAAU+sI,EAAWruE,GAClD,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,GACJ2uE,EAAQC,WAAWP,EAAWP,EAAczE,YAAYrpE,GAAQs8C,SAGtE,CACD76G,IAAK,qBACLhC,MAAO,SAA4BquI,EAAejF,EAAUvsB,GAC1D,IAAI96B,EAAW79E,KAAKkrI,eAAehG,GAC/B/+D,EAAQnmE,KAAKmrI,YAAYhB,EAAexxB,GAC5C,OAAoB99F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,mCACGsd,IAAM7P,cAAc,QAAS,CAC3CzN,UAAW,yBACGsd,IAAM7P,cAAc,QAAS,KAAmB6P,IAAM7P,cAAc,KAAM,KAAM6yE,IAAyBhjE,IAAM7P,cAAc,QAAS,KAAMm7D,OAE7J,CACDroE,IAAK,cACLhC,MAAO,SAAqBquI,EAAe9tE,GACzC,IAAI6oE,EAAWllI,KAAKorI,iBAChBC,EAAoBrrI,KAAKsrI,wBAAkC,IAAVjvE,GACjDkvE,EAAmBvrI,KAAKwrI,uBAAqD,IAA9BxrI,KAAKxB,MAAM4kI,gBAAwB/mE,IAAUr8D,KAAKxB,MAAM4kI,eAAiB,GACxHtnG,EAAQ97B,KAAKyrI,YAAYtB,GACzBuB,EAAe1rI,KAAK2rI,mBAAmBxB,EAAejF,EAAU7oE,GAChE2e,EAASh7E,KAAKxB,MAAM6mH,eAAiBrlH,KAAKxB,MAAM6mH,iBAAmB,KACvE,OAAoBxqG,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKqsI,EAAc55G,MACnBhzB,UAAW,sBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACVy9E,EAAQqwD,EAAmBvvG,EAAOyvG,GAAmBG,KAEzD,CACD5tI,IAAK,eACLhC,MAAO,SAAsB8vI,GAC3B,IAAIC,EAAU7rI,KAEV8rI,EAASF,EAAejuI,KAAI,SAAUwsI,EAAe9tE,GACvD,OAAOwvE,EAAQE,YAAY5B,EAAe9tE,MAE5C,OAAoBxhD,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,gCACVuuI,KAEJ,CACDhuI,IAAK,iBACLhC,MAAO,WACL,IAAI2gI,EAAWz8H,KAAK2/H,cAChBiM,EAAiB5rI,KAAKgsI,aAAavP,EAASzwG,WAAYywG,EAAS1wG,eACjEoE,EAASnwB,KAAKisI,aAAaL,GAC/B,OAAoB/wH,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAMkK,KAE/D,CACDryB,IAAK,uBACLhC,MAAO,SAA8BugE,GACnC,IAAI6vE,EAAUlsI,KAEVzC,EAAYN,YAAW,sBAAuB,CAChD,cAAe+C,KAAKmsI,gBAAgB9vE,KAGlC+vE,EADkB3tD,YAAa,kBAAmBz+E,KAAKxB,MAAMq4B,QACjCwlC,GAChC,OAAoBxhD,IAAM7P,cAAc,OAAQ,CAC9ClN,IAAKsuI,EACL7uI,UAAWA,EACXyiE,QAAS,SAAiB3rD,GACxB,OAAO63H,EAAQzI,cAAcpvH,EAAOgoD,IAEtC5nD,UAAW,SAAmBJ,GAC5B,OAAO63H,EAAQG,mBAAmBh4H,EAAOgoD,KAE1C+vE,EAAwBvxH,IAAM7P,cAAc2O,IAAQ,SAExD,CACD7b,IAAK,wBACLhC,MAAO,WAGL,IAFA,IAAIq0B,EAAS,GAEJv1B,EAAI,EAAGA,GAAK,GAAIA,IACvBu1B,EAAOt0B,KAAKmE,KAAKssI,qBAAqB1xI,IAGxC,OAAOu1B,IAER,CACDryB,IAAK,kBACLhC,MAAO,WACL,IAAIuvI,EAAoBrrI,KAAKsrI,yBAAwB,GACjDC,EAAmBvrI,KAAKwrI,wBAAuB,GAC/Ce,EAAcvsI,KAAKqqI,uBAAuBrqI,KAAK2/H,cAAc5zG,eAC7DoE,EAASnwB,KAAKwsI,wBAClB,OAAoB3xH,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,MAAO,CACpGzN,UAAW,gCACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,sBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACV8tI,EAAgCxwH,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,sBACVgvI,GAAchB,KAAkC1wH,IAAM7P,cAAc,MAAO,CAC5EzN,UAAW,iBACV4yB,MAEJ,CACDryB,IAAK,mBACLhC,MAAO,WACL,IAAKkE,KAAKxB,MAAM0oI,SACd,MAAwB,SAApBlnI,KAAKxB,MAAMqnC,KACN7lC,KAAKysI,iBACiB,UAApBzsI,KAAKxB,MAAMqnC,KACb7lC,KAAK0sI,kBAEL,OAIZ,CACD5uI,IAAK,mBACLhC,MAAO,WACL,IAAI6wI,EAAU3sI,KAGV0wB,EADc1wB,KAAK6gI,qBACA30G,WAEO,OAA1BlsB,KAAKxB,MAAMupI,aACA,IAATr3G,EAAYA,EAAO,GAAYA,EAAO,IAAe,KAATA,IAAaA,GAAc,KAG7E,IAAIk8G,EAAcl8G,EAAO,GAAK,IAAMA,EAAOA,EAC3C,OAAoB7V,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,iBACGsd,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOmtI,EAAQhP,6BAA6Bn+H,EAAG,EAAG,IAEpDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOmtI,EAAQpD,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,qBACIsd,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,OAAQ,KAAM4hI,GAA2B/xH,IAAM7P,cAAc,SAAU,CAC3JxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOmtI,EAAQhP,6BAA6Bn+H,EAAG,GAAI,IAErDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOmtI,EAAQpD,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACIsd,IAAM7P,cAAc2O,IAAQ,UAE9C,CACD7b,IAAK,qBACLhC,MAAO,WACL,IAAI+wI,EAAU7sI,KAGV4wB,EADc5wB,KAAK6gI,qBACE10G,aACrB2gH,EAAgBl8G,EAAS,GAAK,IAAMA,EAASA,EACjD,OAAoB/V,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,mBACGsd,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOqtI,EAAQlP,6BAA6Bn+H,EAAG,EAAG,IAEpDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOqtI,EAAQtD,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,qBACIsd,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,OAAQ,KAAM8hI,GAA6BjyH,IAAM7P,cAAc,SAAU,CAC7JxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOqtI,EAAQlP,6BAA6Bn+H,EAAG,GAAI,IAErDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOqtI,EAAQtD,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACIsd,IAAM7P,cAAc2O,IAAQ,UAE9C,CACD7b,IAAK,qBACLhC,MAAO,WACL,IAAIixI,EAAU/sI,KAEd,GAAIA,KAAKxB,MAAMwpI,YAAa,CAC1B,IACIl3G,EADc9wB,KAAK6gI,qBACEz0G,aACrB4gH,EAAgBl8G,EAAS,GAAK,IAAMA,EAASA,EACjD,OAAoBjW,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,mBACGsd,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOutI,EAAQpP,6BAA6Bn+H,EAAG,EAAG,IAEpDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOutI,EAAQxD,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,qBACIsd,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,OAAQ,KAAMgiI,GAA6BnyH,IAAM7P,cAAc,SAAU,CAC7JxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOutI,EAAQpP,6BAA6Bn+H,EAAG,GAAI,IAErDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOutI,EAAQxD,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACIsd,IAAM7P,cAAc2O,IAAQ,QAG/C,OAAO,OAER,CACD7b,IAAK,yBACLhC,MAAO,WACL,IAAImxI,EAAUjtI,KAEd,GAAIA,KAAKxB,MAAMypI,aAAc,CAC3B,IACIl3G,EADc/wB,KAAK6gI,qBACOx0G,kBAC1B6gH,EAAqBn8G,EAAc,KAAOA,EAAc,GAAK,KAAO,KAAOA,EAAcA,EAC7F,OAAoBlW,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,wBACGsd,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOytI,EAAQtP,6BAA6Bn+H,EAAG,EAAG,IAEpDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOytI,EAAQ1D,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,qBACIsd,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,OAAQ,KAAMkiI,GAAkCryH,IAAM7P,cAAc,SAAU,CAClKxN,KAAM,SACND,UAAW,SACXuc,YAAa,SAAqBta,GAChC,OAAOytI,EAAQtP,6BAA6Bn+H,EAAG,GAAI,IAErDmyF,UAAW3xF,KAAK49H,2BAChBv+G,aAAcrf,KAAK69H,8BACnBppH,UAAW,SAAmBjV,GAC5B,OAAOytI,EAAQ1D,yBAAyB/pI,KAE5Bqb,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACIsd,IAAM7P,cAAc2O,IAAQ,QAG/C,OAAO,OAER,CACD7b,IAAK,mBACLhC,MAAO,WACL,GAA8B,OAA1BkE,KAAKxB,MAAMupI,WAAqB,CAClC,IAEI7/H,EAFclI,KAAK6gI,qBACA30G,WACF,GAAK,KAAO,KACjC,OAAoBrR,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,iBACGsd,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAW,SACXyiE,QAAShgE,KAAK09H,YACA7iH,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,qBACIsd,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,OAAQ,KAAM9C,GAAuB2S,IAAM7P,cAAc,SAAU,CACvJxN,KAAM,SACND,UAAW,SACXyiE,QAAShgE,KAAK09H,YACA7iH,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACIsd,IAAM7P,cAAc2O,IAAQ,QAG/C,OAAO,OAER,CACD7b,IAAK,kBACLhC,MAAO,SAAyB23B,GAC9B,OAAoB5Y,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,eACGsd,IAAM7P,cAAc,OAAQ,KAAMyoB,MAEnD,CACD31B,IAAK,mBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMqlI,UAAY7jI,KAAKxB,MAAM0oI,SAChBrsH,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,gBACVyC,KAAKmtI,mBAAoBntI,KAAKotI,gBAAgB,KAAMptI,KAAKqtI,qBAAsBrtI,KAAKxB,MAAMwpI,aAAehoI,KAAKotI,gBAAgB,KAAMptI,KAAKstI,qBAAsBttI,KAAKxB,MAAMypI,cAAgBjoI,KAAKotI,gBAAgB,KAAMptI,KAAKutI,yBAAoD,OAA1BvtI,KAAKxB,MAAMupI,YAAuB/nI,KAAKotI,gBAAgB,KAAMptI,KAAKwtI,oBAGpT,OAER,CACD1vI,IAAK,qBACLhC,MAAO,WACL,OAAKkE,KAAKxB,MAAMy8G,OAsBT,KArBepgG,IAAM7P,cAAc2vE,IAAW,CACjD7/D,IAAK9a,KAAK8rF,SACVhoE,GAAI9jB,KAAKxB,MAAMmuF,QACflwF,KAAMuD,KAAKxB,MAAM/B,KACjBe,KAAM,OACND,UAAWyC,KAAKxB,MAAM08H,eACtB96H,MAAOJ,KAAKxB,MAAM48H,WAClB/oH,SAAUrS,KAAKxB,MAAMw/H,cACrBv+G,SAAUzf,KAAKxB,MAAMihB,SACrBotE,SAAU7sF,KAAKxB,MAAMquF,SACrBipB,aAAc,MACdlS,YAAa5jG,KAAKxB,MAAMolG,YACxB5tF,QAAShW,KAAK48H,YACdpqH,QAASxS,KAAKi3G,aACdxkG,OAAQzS,KAAKk3G,YACbziG,UAAWzU,KAAKm3G,eAChB,kBAAmBn3G,KAAKxB,MAAMkuF,eAC9BsuC,UAAWh7H,KAAKxB,MAAMw8H,cAM3B,CACDl9H,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMivI,SACO5yH,IAAM7P,cAAcovE,IAAQ,CAC9C58E,KAAM,SACN07E,KAAMl5E,KAAKxB,MAAM06E,KACjBlZ,QAAShgE,KAAK68H,cACd/3D,SAAU,KACVrlD,SAAUzf,KAAKxB,MAAMihB,SACrBliB,UAAW,yBAIR,OAER,CACDO,IAAK,kBACLhC,MAAO,WACL,IAAI4xI,EAAU1tI,KAEd,GAAIA,KAAKxB,MAAMmvI,cAAe,CAC5B,IAAIC,EAAiB3wI,YAAW,gBAAiB+C,KAAKxB,MAAMqvI,sBACxDC,EAAiB7wI,YAAW,gBAAiB+C,KAAKxB,MAAMuvI,sBAExDC,EAAkBtvD,YAAc1+E,KAAKxB,MAAMq4B,QAC3C+T,EAAQojG,EAAgBpjG,MACxB/yB,EAAQm2H,EAAgBn2H,MAE5B,OAAoBgD,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,0BACGsd,IAAM7P,cAAcovE,IAAQ,CAC1C58E,KAAM,SACN+7E,MAAO3uC,EACPo1B,QAAShgE,KAAKk9H,mBACdzoH,UAAW,SAAmBjV,GAC5B,OAAOkuI,EAAQnE,yBAAyB/pI,IAE1CjC,UAAWqwI,IACI/yH,IAAM7P,cAAcovE,IAAQ,CAC3C58E,KAAM,SACN+7E,MAAO1hE,EACPmoD,QAAShgE,KAAKm9H,mBACd1oH,UAAW,SAAmBjV,GAC5B,OAAOkuI,EAAQnE,yBAAyB/pI,IAE1CjC,UAAWuwI,KAIf,OAAO,OAER,CACDhwI,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMyvI,eAAgB,CAC7B,IAAIjvH,EAAUhf,KAAKxB,MAAMyvI,iBACzB,OAAoBpzH,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,uBACVyhB,GAGL,OAAO,OAER,CACDlhB,IAAK,SACLhC,MAAO,WACL,IAAIoyI,EAAUluI,KAEVzC,EAAYN,YAAW,wCAAyC+C,KAAKxB,MAAMjB,UAAW,CACxF,mBAAoByC,KAAKxB,MAAMivI,SAC/B,sBAAuBztI,KAAKxB,MAAMihB,SAClC,sBAAuBzf,KAAKxB,MAAM0oI,SAClC,wBAAyBlnI,KAAKxB,MAAM1C,OAASiE,IAAW6uF,SAAS5uF,KAAK8rF,SAAS/8E,QAAS,aAA+C,KAAhC/O,KAAK8rF,SAAS/8E,QAAQjT,MAC7H,uBAAwBkE,KAAKod,MAAMyuE,UAEjC2qB,EAAiBv5G,YAAW,2BAA4B+C,KAAKxB,MAAMg4G,eAAgB,CACrF,sBAAuBx2G,KAAKxB,MAAMy8G,OAClC,aAAcj7G,KAAKxB,MAAMihB,SACzB,wBAAyBzf,KAAKxB,MAAM0oI,SACpC,8BAA+BlnI,KAAKxB,MAAM4kI,eAAiB,EAC3D,2BAAgD,UAApBpjI,KAAKxB,MAAMqnC,KACvC,wBAAyB7lC,KAAKxB,MAAMqgI,UAElC9uG,EAAQ/vB,KAAKk8H,qBACbp4E,EAAS9jD,KAAKmuI,eACdC,EAAapuI,KAAKquI,mBAClBC,EAAatuI,KAAKuuI,mBAClBC,EAAYxuI,KAAKyuI,kBACjBvzD,EAASl7E,KAAK0uI,eACd1qB,EAAYhkH,KAAKxB,MAAMy8G,QAAUj7G,KAAKgkH,YAC1C,OAAoBnpG,IAAM7P,cAAc,OAAQ,CAC9C8P,IAAK,SAAa7a,GAChB,OAAOiuI,EAAQpkI,UAAY7J,GAE7B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB2vB,EAAO+zB,EAAqBjpC,IAAM7P,cAAcqxH,EAAe,CAChEvhH,IAAK9a,KAAK43G,WACVr6G,UAAWi5G,EACXp2G,MAAOJ,KAAKxB,MAAMq4G,WAClB7yG,SAAUhE,KAAKxB,MAAMwF,SACrBi3G,OAAQj7G,KAAKxB,MAAMy8G,OACnBj7C,QAAShgE,KAAKs3G,aACd3xF,GAAIq+F,EACJ9+F,QAASllB,KAAKu3G,eACdnyF,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,gBACfd,kBAAmB52G,KAAKxB,MAAMo4G,mBAC7Bw3B,EAAYE,EAAYE,EAAWtzD,QAInCohD,EAjvGmB,CAkvG1BthH,aAEFxK,EAAgB8rH,EAAU,eAAgB,CACxCx4G,GAAI,KACJgoE,SAAU,KACVrvF,KAAM,KACNX,MAAO,KACPwhB,SAAS,EACTm/G,SAAU,KACVr8H,MAAO,KACP7C,UAAW,KACX09G,QAAQ,EACR5+B,cAAe,SACfsQ,QAAS,KACTyuC,WAAY,KACZF,eAAgB,KAChBF,UAAW,OACXnuC,UAAU,EACVmxC,eAAe,EACfU,aAAa,EACbrtH,KAAM,KACNoO,UAAU,EACVqlD,SAAU,KACV8+B,YAAa,KACb6pC,UAAU,EACVv0D,KAAM,iBACNg/B,aAAa,EACbkrB,eAAgB,EAChBv9F,KAAM,OACNg5F,SAAS,EACTgF,UAAU,EACVqD,UAAU,EACVc,aAAa,EACbC,cAAc,EACdF,WAAY,KACZhH,SAAU,EACVO,WAAY,EACZG,WAAY,EACZG,aAAc,EACdiH,gBAAiB,MACjB/E,sBAAsB,EACtBkC,UAAU,EACVnvG,OAAQ,KACRunD,WAAY,KACZy4B,WAAY,KACZL,eAAgB,KAChB2rB,gBAAgB,EAChBnC,eAAe,EACfE,UAAW,KACXsG,cAAe,KACfE,aAAc,KACdtF,QAAS,KACTH,QAAS,KACT0C,aAAc,KACdmH,iBAAiB,EACjBlE,mBAAmB,EACnB+G,eAAe,EACfE,qBAAsB,qBACtBE,qBAAsB,qBACtBz2H,YAAY,EACZF,WAAY,EACZpT,SAAU,KACV+0E,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChB89C,aAAc,KACdnlB,eAAgB,KAChB4oB,eAAgB,KAChBrE,uBAAwB,KACxBM,sBAAuB,KACvBtzB,kBAAmB,KACnB4nB,gBAAiB,KACjBhsH,QAAS,KACTC,OAAQ,KACRuD,QAAS,KACTokF,SAAU,KACV7nF,SAAU,KACVgqH,iBAAkB,KAClBW,mBAAoB,KACpBC,mBAAoB,KACpBp8G,OAAQ,KACRU,OAAQ,Q,6BChjHV,6DAGA,SAAStjB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B6yI,EAAsB,SAAU/0H,IAxEpC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUm2H,EAAQ/0H,GAElB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa4pH,GAE1B,SAASA,IAGP,OAFAxwI,EAAgB6B,KAAM2uI,GAEf90H,EAAOvQ,MAAMtJ,KAAM7C,WAoD5B,OAnJoBkB,EAkGPswI,GAlGoB5vI,EAkGZ,CAAC,CACpBjB,IAAK,gBACLhC,MAAO,WACL,IAAIyJ,EAAQvF,KAEZ,GAAIA,KAAKxB,MAAM+6E,MACb,OAAoB1+D,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,iBACVyC,KAAKxB,MAAM+6E,OACT,GAAIv5E,KAAKxB,MAAM06E,KAAM,CAC1B,IAAIiY,EAAgBl0F,YAAW,gBAAiB+C,KAAKxB,MAAM06E,MAC3D,OAAoBr+D,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW4zF,IAER,OAAInxF,KAAKxB,MAAMkiH,MAOA7lG,IAAM7P,cAAc,MAAO,CAC7C21G,IAAK3gH,KAAKxB,MAAMkiH,MAChBE,IAAK5gH,KAAKxB,MAAMqiH,SAChBC,QATY,SAAiBthH,GACzB+F,EAAM/G,MAAMuiH,cACdx7G,EAAM/G,MAAMuiH,aAAavhH,MAWxB,OAER,CACD1B,IAAK,SACLhC,MAAO,WACL,IAAI+5G,EAAqB54G,YAAW,uBAAwB,CAC1D,iBAAsC,MAApB+C,KAAKxB,MAAMkiH,MAC7B,kBAAwC,WAArB1gH,KAAKxB,MAAMowI,MAC9B,cAAmC,UAApB5uI,KAAKxB,MAAM2mH,KAC1B,cAAmC,WAApBnlH,KAAKxB,MAAM2mH,KAC1B,uBAAwBnlH,KAAKxB,MAAMwhE,SAClChgE,KAAKxB,MAAMjB,WACVyhB,EAAUhf,KAAKxB,MAAMyqG,SAAWt7F,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUjpG,KAAKxB,OAASwB,KAAKy2G,gBACtG,OAAoB57F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWs4G,EACXz1G,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKxB,MAAMwhE,SACnBhhD,EAAShf,KAAKxB,MAAMgE,eA9IXlE,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAiJzC2vI,EA5DiB,CA6DxB3zH,aA/EiClf,EAiFK,CACtCy9E,MAAO,KACPL,KAAM,KACNwnC,MAAO,KACPyE,KAAM,SACNypB,MAAO,SACPxuI,MAAO,KACP7C,UAAW,KACX0rG,SAAU,KACV4X,SAAU,SACVE,aAAc,KACd/gD,QAAS,OA5FmBliE,EAiFN,kBAjFCd,EAiFT2xI,GA/EZvyI,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,gBCjGf,IAAI+yI,EAAat0I,EAAQ,IAEzBF,EAAOC,QAAU,SAAU6E,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAAc0vI,EAAW1vI,K,gBCH3D,IAAI2vI,EAAcv0I,EAAQ,IACtBw0I,EAAiBx0I,EAAQ,KACzBy0I,EAAWz0I,EAAQ,IACnB00I,EAAgB10I,EAAQ,IAGxB20I,EAAkB9yI,OAAOyC,eAI7BvE,EAAQmF,EAAIqvI,EAAcI,EAAkB,SAAwBC,EAAGC,EAAGC,GAIxE,GAHAL,EAASG,GACTC,EAAIH,EAAcG,GAClBJ,EAASK,GACLN,EAAgB,IAClB,OAAOG,EAAgBC,EAAGC,EAAGC,GAC7B,MAAOxkI,IACT,GAAI,QAASwkI,GAAc,QAASA,EAAY,MAAMxyI,UAAU,2BAEhE,MADI,UAAWwyI,IAAYF,EAAEC,GAAKC,EAAWvzI,OACtCqzI,I,gBCnBT,IAAIhhB,EAAW5zH,EAAQ,IAGvBF,EAAOC,QAAU,SAAUimH,GACzB,GAAI4N,EAAS5N,GAAW,OAAOA,EAC/B,MAAM1jH,UAAUwT,OAAOkwG,GAAY,uB,6BCLrC,6DAGA,SAASpiH,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/BwzI,EAA2B,SAAU11H,IAxEzC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAU82H,EAAa11H,GAEvB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAauqH,GAE1B,SAASA,IAGP,OAFAnxI,EAAgB6B,KAAMsvI,GAEfz1H,EAAOvQ,MAAMtJ,KAAM7C,WA+D5B,OA9JoBkB,EAkGPixI,GAlGoBvwI,EAkGP,CAAC,CACzBjB,IAAK,cACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM+wI,WAAiC,MAApBvvI,KAAKxB,MAAM1C,MAAe,CACpD,IAAIy9E,EAAQv5E,KAAKxB,MAAMgxI,qBAAuBxvI,KAAKxB,MAAMgxI,qBAAqBxvI,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAQkE,KAAKxB,MAAMwxB,KAChI,OAAoBnV,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,uBACVg8E,GAGL,OAAO,OAER,CACDz7E,IAAK,oBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,sDAAuD+C,KAAKxB,MAAMjB,WACzFg8E,EAAQv5E,KAAK+5E,cACjB,OAAoBl/D,IAAM7P,cAAc,MAAO,CAC7C+Y,KAAM,cACND,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB,gBAAiB,IACjB,gBAAiBJ,KAAKxB,MAAM1C,MAC5B,gBAAiB,MACjB,aAAckE,KAAKxB,MAAM1C,OACX+e,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,kDACX6C,MAAO,CACLF,MAAOF,KAAKxB,MAAM1C,MAAQ,IAC1BoM,QAAS,QACT6yB,gBAAiB/6B,KAAKxB,MAAMs8B,SAE5By+C,KAEL,CACDz7E,IAAK,sBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,wDAAyD+C,KAAKxB,MAAMjB,WAC/F,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7C+Y,KAAM,cACND,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,yCACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,kDACX6C,MAAO,CACL26B,gBAAiB/6B,KAAKxB,MAAMs8B,aAIjC,CACDh9B,IAAK,SACLhC,MAAO,WACL,GAAwB,gBAApBkE,KAAKxB,MAAMssG,KAAwB,OAAO9qG,KAAKyvI,oBAAyB,GAAwB,kBAApBzvI,KAAKxB,MAAMssG,KAA0B,OAAO9qG,KAAK0vI,sBAA2B,MAAM,IAAIhmI,MAAM1J,KAAKxB,MAAMssG,KAAO,qGAzJlLxsG,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA4JzCswI,EAvEsB,CAwE7Bt0H,aA1FiClf,EA4FU,CAC3CgoB,GAAI,KACJhoB,MAAO,KACPyzI,WAAW,EACXv/G,KAAM,IACN5vB,MAAO,KACP7C,UAAW,KACXutG,KAAM,cACN0kC,qBAAsB,KACtB10G,MAAO,OArGqBh9B,EA4FD,kBA5FJd,EA4FTsyI,GA1FZlzI,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI6gI,EAAsB,SAAU/1H,IApEpC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUm3H,EAAQ/1H,GAElB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAa4qH,GAE1B,SAASA,EAAOnxI,GACd,IAAI+G,EAQJ,OAzHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAM2vI,IAEtBpqI,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBqZ,MAAQtS,EAAMsS,MAAMkC,KAAK7B,EAAuB3S,IACtDA,EAAMqqI,cAAgBrqI,EAAMqqI,cAAc71H,KAAK7B,EAAuB3S,IACtEA,EAAMsqI,gBAAkBtqI,EAAMsqI,gBAAgB91H,KAAK7B,EAAuB3S,IACnEA,EAwKT,OAjRoBlH,EA4GPsxI,EA5GoB5wI,EA4GZ,CAAC,CACpBjB,IAAK,OACLhC,MAAO,SAAcuY,EAAOzZ,GACrBoF,KAAKxB,MAAM6T,UAAarS,KAAKxB,MAAMihB,WAAYzf,KAAKxB,MAAM+T,UAC7DvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOlB,EACPuxF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOlB,KAKbyZ,EAAMY,mBAEP,CACDnX,IAAK,QACLhC,MAAO,SAAeuY,GACfrU,KAAKxB,MAAM6T,UAAarS,KAAKxB,MAAMihB,WAAYzf,KAAKxB,MAAM+T,UAC7DvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAO,KACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAO,QAKbuY,EAAMY,mBAEP,CACDnX,IAAK,wBACLhC,MAAO,SAA+BojD,EAAWC,GAC/C,OAAID,EAAUpjD,QAAUkE,KAAKxB,MAAM1C,OAASojD,EAAUz/B,WAAazf,KAAKxB,MAAMihB,WAM/E,CACD3hB,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOvY,GACjB,UAAduY,EAAMvW,KACRkC,KAAK8vI,KAAKz7H,EAAOvY,KAGpB,CACDgC,IAAK,kBACLhC,MAAO,SAAyBuY,GACZ,UAAdA,EAAMvW,KACRkC,KAAK6X,MAAMxD,KAGd,CACDvW,IAAK,gBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMihB,UAAYzf,KAAKxB,MAAM6T,SAAW,KAAO,IAE5D,CACDvU,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAnGvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAmG/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,cACLhC,MAAO,WAKL,IAJA,IAAI6e,EAAS3a,KAET+vI,EAAa,GAERn1I,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMwxI,MAAOp1I,IACpCm1I,EAAWn1I,GAAKA,EAAI,EAoBtB,OAjBYm1I,EAAWpyI,KAAI,SAAU7B,GACnC,IAAI0wF,EAAYvvF,YAAW,gBAAiB,CAC1C,gBAAiB0d,EAAOnc,MAAM1C,OAASA,EAAQ6e,EAAOnc,MAAM1C,MAC5D,aAAcA,GAAS6e,EAAOnc,MAAM1C,QAEtC,OAAoB+e,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWivF,EACXxsB,QAAS,SAAiBxgE,GACxB,OAAOmb,EAAOm1H,KAAKtwI,EAAG1D,IAExBgC,IAAKhC,EACLgpE,SAAUnqD,EAAOs1H,gBACjBx7H,UAAW,SAAmBjV,GAC5B,OAAOmb,EAAOi1H,cAAcpwI,EAAG1D,WAMtC,CACDgC,IAAK,mBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMo/E,OACO/iE,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,0CACXyiE,QAAShgE,KAAK6X,MACditD,SAAU9kE,KAAKiwI,gBACfx7H,UAAWzU,KAAK6vI,kBAIb,OAER,CACD/xI,IAAK,SACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAETzC,EAAYN,YAAW,WAAY,CACrC,aAAc+C,KAAKxB,MAAMihB,SACzB,oBAAqBzf,KAAKxB,MAAM6T,UAC/BrS,KAAKxB,MAAMjB,WACV2yI,EAAalwI,KAAKmwI,mBAClBH,EAAQhwI,KAAKowI,cACjB,OAAoBv1H,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAO3e,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB8vI,EAAYF,MA5QfjxI,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA+QzC2wI,EAtLiB,CAuLxB30H,aAEFxK,EAAgBm/H,EAAQ,eAAgB,CACtC7rH,GAAI,KACJhoB,MAAO,KACP2jB,UAAU,EACVpN,UAAU,EACV29H,MAAO,EACPpyD,QAAQ,EACRx9E,MAAO,KACP7C,UAAW,KACXw7E,QAAS,KACTE,eAAgB,KAChB1mE,SAAU,Q,6BClTZ,6DAGA,SAAS7C,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GASjG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/Bu0I,EAAsB,SAAUz2H,IAhEpC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAU63H,EAAQz2H,GAElB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAasrH,GAE1B,SAASA,EAAO7xI,GACd,IAAI+G,EAyBJ,OAtIJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAMqwI,IAEtB9qI,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ0G,GAAItlB,EAAMslB,GACVwsH,YAAa9xI,EAAM8e,QACnBA,SAAS,GAGN/X,EAAM/G,MAAM+xI,aACfhrI,EAAM6X,MAAMozH,UAAYhyI,EAAMgyI,WAGhCjrI,EAAM8vE,QAAU9vE,EAAM8vE,QAAQt7D,KAAK7B,EAAuB3S,IAC1DA,EAAMkrI,eAAiBlrI,EAAMkrI,eAAe12H,KAAK7B,EAAuB3S,IACxEA,EAAM2yF,YAAc3yF,EAAM2yF,YAAYn+E,KAAK7B,EAAuB3S,IAClEA,EAAMmrI,cAAgBnrI,EAAMmrI,cAAc32H,KAAK7B,EAAuB3S,IACtEA,EAAMorI,YAAcprI,EAAMorI,YAAY52H,KAAK7B,EAAuB3S,IAClEA,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAMqrI,kBAAoBh6H,cAC1BrR,EAAMsrI,UAAyBh2H,IAAMmL,YAC9BzgB,EA2oBT,OAjwBoBlH,EAyHPgyI,GAzHoBtxI,EAyHZ,CAAC,CACpBjB,IAAK,UACLhC,MAAO,SAAiBuY,GACtBrU,KAAKxB,MAAMijB,SACXpN,EAAMY,mBAEP,CACDnX,IAAK,QACLhC,MAAO,WACL,IAAIiX,EAAgBrS,SAASqS,gBACCA,GAAiB/S,KAAK6wI,WAAa7wI,KAAK6wI,UAAU9hI,QAAQ1L,SAAS0P,KAEjE/S,KAAKxB,MAAMqxH,UAAY7vH,KAAKxB,MAAMsyI,YAChE9wI,KAAK+wI,aAAa3kD,UAGrB,CACDtuF,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAMwyI,iBAAmBhxI,KAAKxB,MAAM6+E,OAASr9E,KAAKqR,OAASgD,EAAM9V,QACxEyB,KAAKq1E,QAAQhhE,GAGfrU,KAAKxB,MAAMmyI,aAAe3wI,KAAKxB,MAAMmyI,YAAYt8H,KAElD,CACDvW,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIm8H,GAAaxwI,KAAKwwI,UAElBxwI,KAAKxB,MAAM+xI,WACbvwI,KAAKxB,MAAM+xI,WAAW,CACpB56H,cAAetB,EACfm8H,UAAWA,IAGbxwI,KAAKwd,SAAS,CACZgzH,UAAWA,GACVxwI,KAAKixI,2BAGV58H,EAAMY,mBAEP,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GACtBtU,IAAW6uF,SAASv6E,EAAM9V,OAAQ,yBAA2BwB,IAAW6uF,SAASv6E,EAAM9V,OAAO0b,cAAe,yBAI7Gja,KAAKxB,MAAMo4F,YACb52F,KAAKkxI,UAAW,EAChBlxI,KAAKmxI,UAAY98H,EAAMiG,MACvBta,KAAKoxI,UAAY/8H,EAAMkG,MACvBva,KAAKqxI,SAASjxI,MAAMe,OAAS,IAC7BpB,IAAWya,SAAS9Z,SAAS2B,KAAM,uBAE/BrC,KAAKxB,MAAM05F,aACbl4F,KAAKxB,MAAM05F,YAAY7jF,MAI5B,CACDvW,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,GAAIrU,KAAKkxI,SAAU,CACjB,IAAIhxI,EAAQH,IAAWoE,cAAcnE,KAAKqxI,UACtC/vI,EAASvB,IAAWyG,eAAexG,KAAKqxI,UACxCC,EAASj9H,EAAMiG,MAAQta,KAAKmxI,UAC5BI,EAASl9H,EAAMkG,MAAQva,KAAKoxI,UAC5BhnI,EAASpK,KAAKqxI,SAASlvI,wBACvBqvI,EAAUpnI,EAAO9H,KAAOgvI,EACxBG,EAASrnI,EAAOhI,IAAMmvI,EACtBtsI,EAAWlF,IAAWmF,cAC1BlF,KAAKqxI,SAASjxI,MAAM8F,SAAW,QAE3BlG,KAAKxB,MAAMkzI,gBACTF,GAAWxxI,KAAKxB,MAAMmzI,MAAQH,EAAUtxI,EAAQ+E,EAAS/E,QAC3DF,KAAKmxI,UAAY98H,EAAMiG,MACvBta,KAAKqxI,SAASjxI,MAAMkC,KAAOkvI,EAAU,MAGnCC,GAAUzxI,KAAKxB,MAAMozI,MAAQH,EAASnwI,EAAS2D,EAAS3D,SAC1DtB,KAAKoxI,UAAY/8H,EAAMkG,MACvBva,KAAKqxI,SAASjxI,MAAMgC,IAAMqvI,EAAS,QAGrCzxI,KAAKmxI,UAAY98H,EAAMiG,MACvBta,KAAKqxI,SAASjxI,MAAMkC,KAAOkvI,EAAU,KACrCxxI,KAAKoxI,UAAY/8H,EAAMkG,MACvBva,KAAKqxI,SAASjxI,MAAMgC,IAAMqvI,EAAS,MAGjCzxI,KAAKxB,MAAMqzI,QACb7xI,KAAKxB,MAAMqzI,OAAOx9H,MAIvB,CACDvW,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKkxI,WACPlxI,KAAKkxI,UAAW,EAChBnxI,IAAWma,YAAYxZ,SAAS2B,KAAM,uBAElCrC,KAAKxB,MAAM+3F,WACbv2F,KAAKxB,MAAM+3F,UAAUliF,MAI1B,CACDvW,IAAK,gBACLhC,MAAO,SAAuBuY,GACxBrU,KAAKxB,MAAMszI,YACb9xI,KAAK+xI,UAAW,EAChB/xI,KAAKmxI,UAAY98H,EAAMiG,MACvBta,KAAKoxI,UAAY/8H,EAAMkG,MACvBxa,IAAWya,SAAS9Z,SAAS2B,KAAM,uBAE/BrC,KAAKxB,MAAMkyI,eACb1wI,KAAKxB,MAAMkyI,cAAcr8H,MAI9B,CACDvW,IAAK,cACLhC,MAAO,SAAqBA,EAAOk2I,EAAU/sI,IAC1CA,IAAaA,EAAWlF,IAAWmF,eACpC,IAAImR,EAAMmB,SAAS1b,GAEnB,MAAI,2BAA2Ba,KAAKb,GAC3Bua,GAAOpR,EAAS+sI,GAAY,KAG9B37H,IAER,CACDvY,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,GAAIrU,KAAK+xI,SAAU,CACjB,IAAIT,EAASj9H,EAAMiG,MAAQta,KAAKmxI,UAC5BI,EAASl9H,EAAMkG,MAAQva,KAAKoxI,UAC5BlxI,EAAQH,IAAWoE,cAAcnE,KAAKqxI,UACtC/vI,EAASvB,IAAWyG,eAAexG,KAAKqxI,UACxCjnI,EAASpK,KAAKqxI,SAASlvI,wBACvB8C,EAAWlF,IAAWmF,cACtB+sI,EAAW/xI,EAAQoxI,EACnBY,EAAY5wI,EAASiwI,EACrBrtI,EAAWlE,KAAKmyI,YAAYnyI,KAAKqxI,SAASjxI,MAAM8D,SAAU,QAASe,GACnEmtI,EAAYpyI,KAAKmyI,YAAYnyI,KAAKqxI,SAASjxI,MAAMgyI,UAAW,SAAUntI,KACpDuS,SAASxX,KAAKqxI,SAASjxI,MAAMgC,OAASoV,SAASxX,KAAKqxI,SAASjxI,MAAMkC,SAGvF2vI,GAAYX,EACZY,GAAaX,KAGTrtI,GAAY+tI,EAAW/tI,IAAakG,EAAO9H,KAAO2vI,EAAWhtI,EAAS/E,QAC1EF,KAAKqxI,SAASjxI,MAAMF,MAAQ+xI,EAAW,QAGnCG,GAAaF,EAAYE,IAAchoI,EAAOhI,IAAM8vI,EAAYjtI,EAAS3D,SAC7EtB,KAAKqxI,SAASjxI,MAAMkB,OAAS4wI,EAAY,MAG3ClyI,KAAKmxI,UAAY98H,EAAMiG,MACvBta,KAAKoxI,UAAY/8H,EAAMkG,MAEnBva,KAAKxB,MAAM6zI,UACbryI,KAAKxB,MAAM6zI,SAASh+H,MAIzB,CACDvW,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAK+xI,WACP/xI,KAAK+xI,UAAW,EAChBhyI,IAAWma,YAAYxZ,SAAS2B,KAAM,uBAElCrC,KAAKxB,MAAM8zI,aACbtyI,KAAKxB,MAAM8zI,YAAYj+H,MAI5B,CACDvW,IAAK,gBACLhC,MAAO,WACLkE,KAAKqxI,SAASjxI,MAAM8F,SAAW,GAC/BlG,KAAKqxI,SAASjxI,MAAMkC,KAAO,GAC3BtC,KAAKqxI,SAASjxI,MAAMgC,IAAM,GAC1BpC,KAAKqxI,SAASjxI,MAAMe,OAAS,KAE9B,CACDrD,IAAK,mBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAGT+T,EADY,CAAC,SAAU,OAAQ,QAAS,MAAO,WAAY,YAAa,SAAU,cAAe,gBACjFjI,MAAK,SAAU/B,GACjC,OAAOA,IAAS4Q,EAAOnc,MAAM0H,UAAY6D,EAAK5G,QAAQ,IAAK,MAAQwX,EAAOnc,MAAM0H,YAElF,OAAO6N,EAAM,YAAYhW,OAAOgW,GAAO,KAExC,CACDjW,IAAK,YACLyZ,IAAK,WACH,OAAOvX,KAAKxB,MAAM+xI,WAAavwI,KAAKxB,MAAMgyI,UAAYxwI,KAAKod,MAAMozH,YAElE,CACD1yI,IAAK,WACLyZ,IAAK,WACH,OAAOvX,KAAK6wI,UAAU9hI,UAEvB,CACDjR,IAAK,UACLhC,MAAO,WACLkE,KAAKqxI,SAASl9C,aAAan0F,KAAK4wI,kBAAmB,MAEpD,CACD9yI,IAAK,YACLhC,MAAO,WACDkE,KAAKxB,MAAMuiB,QACb/gB,KAAKxB,MAAMuiB,SAGT/gB,KAAKxB,MAAM+zI,aACbvyI,KAAKosF,QAGPpsF,KAAKwyI,2BAEN,CACD10I,IAAK,WACLhC,MAAO,WACLkE,KAAKkxI,UAAW,EAChBp6H,IAAYe,MAAM7X,KAAKqR,MACvBrR,KAAKwd,SAAS,CACZ8yH,aAAa,IAEfvwI,IAAWya,SAASxa,KAAKqR,KAAM,6BAC/BrR,KAAKyyI,4BAEN,CACD30I,IAAK,yBACLhC,MAAO,WACLkE,KAAK0yI,uBAED1yI,KAAKxB,MAAMm0I,aAAe3yI,KAAKxB,MAAMo0I,aAAe5yI,KAAKwwI,YAC3DzwI,IAAWya,SAAS9Z,SAAS2B,KAAM,uBAGtC,CACDvE,IAAK,0BACLhC,MAAO,WACLkE,KAAK6yI,wBAED7yI,KAAKxB,MAAM6+E,MACQ38E,SAASoyI,mBAAqBpyI,SAASoyI,kBAAkBzoC,MAAK,SAAU0oC,GAC3F,OAAOA,EAAMC,mBAIbjzI,IAAWma,YAAYxZ,SAAS2B,KAAM,sBAE/BrC,KAAKxB,MAAMm0I,aAAe3yI,KAAKxB,MAAMo0I,aAAe5yI,KAAKwwI,YAClEzwI,IAAWma,YAAYxZ,SAAS2B,KAAM,uBAGzC,CACDvE,IAAK,sBACLhC,MAAO,WACDkE,KAAKxB,MAAMo4F,WACb52F,KAAKizI,2BAGHjzI,KAAKxB,MAAMszI,WACb9xI,KAAKkzI,8BAGHlzI,KAAKxB,MAAM20I,eAAiBnzI,KAAKxB,MAAMqxH,UACzC7vH,KAAKozI,gCAGR,CACDt1I,IAAK,wBACLhC,MAAO,WACLkE,KAAKqzI,6BACLrzI,KAAKszI,gCACLtzI,KAAKuzI,kCAEN,CACDz1I,IAAK,2BACLhC,MAAO,WACLkE,KAAKwzI,qBAAuBxzI,KAAK6xI,OAAO93H,KAAK/Z,MAC7CA,KAAKyzI,wBAA0BzzI,KAAKu2F,UAAUx8E,KAAK/Z,MACnDY,OAAOF,SAAS8M,iBAAiB,YAAaxN,KAAKwzI,sBACnD5yI,OAAOF,SAAS8M,iBAAiB,UAAWxN,KAAKyzI,2BAElD,CACD31I,IAAK,6BACLhC,MAAO,WACDkE,KAAKwzI,sBAAwBxzI,KAAKyzI,0BACpC7yI,OAAOF,SAAS+M,oBAAoB,YAAazN,KAAKwzI,sBACtD5yI,OAAOF,SAAS+M,oBAAoB,UAAWzN,KAAKyzI,yBACpDzzI,KAAKwzI,qBAAuB,KAC5BxzI,KAAKyzI,wBAA0B,QAGlC,CACD31I,IAAK,8BACLhC,MAAO,WACLkE,KAAKuiB,uBAAyBviB,KAAKqyI,SAASt4H,KAAK/Z,MACjDA,KAAK0zI,0BAA4B1zI,KAAKsyI,YAAYv4H,KAAK/Z,MACvDY,OAAOF,SAAS8M,iBAAiB,YAAaxN,KAAKuiB,wBACnD3hB,OAAOF,SAAS8M,iBAAiB,UAAWxN,KAAK0zI,6BAElD,CACD51I,IAAK,gCACLhC,MAAO,WACDkE,KAAKuiB,wBAA0BviB,KAAK0zI,4BACtC9yI,OAAOF,SAAS+M,oBAAoB,YAAazN,KAAKuiB,wBACtD3hB,OAAOF,SAAS+M,oBAAoB,UAAWzN,KAAK0zI,2BACpD1zI,KAAKuiB,uBAAyB,KAC9BviB,KAAK0zI,0BAA4B,QAGpC,CACD51I,IAAK,8BACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEbA,KAAK2zI,wBAA0B,SAAUt/H,GACvC,IAAIoG,EAAgBpG,EAAMoG,cAE1B,GAAIA,GAAiBA,EAAcq4H,kBAAmB,CACpD,IAAIxjI,EAASmL,EAAcq4H,kBACvBc,EAActkI,EAAO3U,OACrBk5I,EAAWvkI,EAAOskI,EAAc,GAAKtkI,EAAOskI,EAAc,GAAG9vH,QAAKre,EAEtE,GAAIouI,IAAa3yH,EAAO9D,MAAM0G,GAAI,CAChC,IAAIgwH,EAASpzI,SAASqzI,eAAeF,GAErC,GAAoB,KAAhBx/H,EAAMM,MACRuM,EAAOm0D,QAAQhhE,GAEfA,EAAM2/H,2BACN1kI,EAAOL,OAAO2kI,EAAc,EAAG,QAC1B,GAAoB,IAAhBv/H,EAAMM,MAAa,CAC5BN,EAAMY,iBACN,IAAIjJ,EAAoBjM,IAAWkM,qBAAqB6nI,GAExD,GAAI9nI,GAAqBA,EAAkBrR,OAAS,EAClD,GAAK+F,SAASqS,cAEP,CACL,IAAIysH,EAAexzH,EAAkBN,QAAQhL,SAASqS,eAElDsB,EAAMqH,UACc,IAAlB8jH,GAAwC,IAAjBA,EAAoBxzH,EAAkBA,EAAkBrR,OAAS,GAAGyxF,QAAapgF,EAAkBwzH,EAAe,GAAGpzC,SAE1H,IAAlBozC,GAAuBA,IAAiBxzH,EAAkBrR,OAAS,EAAGqR,EAAkB,GAAGogF,QAAapgF,EAAkBwzH,EAAe,GAAGpzC,aAPlJpgF,EAAkB,GAAGogF,YAgBjC,IAAI6nD,EAAW,CACbnwH,GAAI9jB,KAAKod,MAAM0G,GACfkvH,eAAgBhzI,KAAKxB,MAAMm0I,aAE7BjyI,SAASoyI,kBAAoBpyI,SAASoyI,kBAAoB,GAAG/0I,OAAOgvF,EAAmBrsF,SAASoyI,mBAAoB,CAACmB,IAAa,CAACA,GACnIvzI,SAAS8M,iBAAiB,UAAWxN,KAAK2zI,2BAE3C,CACD71I,IAAK,gCACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETA,KAAK2zI,0BACPjzI,SAAS+M,oBAAoB,UAAWzN,KAAK2zI,yBAC7CjzI,SAASoyI,kBAAoBpyI,SAASoyI,mBAAqBpyI,SAASoyI,kBAAkB90I,QAAO,SAAU+0I,GACrG,OAAOA,EAAMjvH,KAAOnC,EAAOvE,MAAM0G,MAEnC9jB,KAAK2zI,wBAA0B,QAGlC,CACD71I,IAAK,cACLhC,MAAO,WACL,IAAKkE,KAAKk0I,aAAc,CACtBl0I,KAAKk0I,aAAexzI,SAASsK,cAAc,SAC3CtK,SAASyzI,KAAK3qI,YAAYxJ,KAAKk0I,cAC/B,IAAIrnI,EAAY,GAEhB,IAAK,IAAIunI,KAAcp0I,KAAKxB,MAAM61I,YAChCxnI,GAAa,uDAAuD9O,OAAOq2I,EAAY,2CAA2Cr2I,OAAOiC,KAAK4wI,kBAAmB,4CAA4C7yI,OAAOiC,KAAKxB,MAAM61I,YAAYD,GAAa,oFAG1Pp0I,KAAKk0I,aAAarnI,UAAYA,KAGjC,CACD/O,IAAK,oBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAERA,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,gBAIJ5W,KAAKxB,MAAM8e,SACbtd,KAAKwd,SAAS,CACZF,SAAS,IACR,WACDxG,IAAYW,IAAI,QAAS6K,EAAOjR,KAAMiR,EAAO9jB,MAAM4Y,eAInDpX,KAAKxB,MAAM61I,aACbr0I,KAAKs0I,gBAGR,CACDx2I,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjC,IAAIf,EAASziB,KAETA,KAAKxB,MAAM8e,UAAYtd,KAAKod,MAAMkzH,aACpCtwI,KAAKwd,SAAS,CACZ8yH,aAAa,IACZ,WACDx5H,IAAYW,IAAI,QAASgL,EAAOpR,KAAMoR,EAAOjkB,MAAM4Y,eAInDpX,KAAKxB,MAAM8e,UAAYtd,KAAKod,MAAME,SAAWtd,KAAKod,MAAMkzH,aAC1DtwI,KAAKwd,SAAS,CACZF,QAAStd,KAAKxB,MAAM8e,UAIpBkG,EAAUgtH,YAAcxwI,KAAKxB,MAAMgyI,WAAaxwI,KAAKxB,MAAM+xI,YAC7DvwI,KAAKixI,8BAGR,CACDnzI,IAAK,4BACLhC,MAAO,WACL,IAAKkE,KAAKxB,MAAMm0I,YAAa,CAC3B,IAAI4B,EAAWv0I,KAAKwwI,UAAY,WAAa,cAC7CzwI,IAAWw0I,GAAU7zI,SAAS2B,KAAM,wBAGvC,CACDvE,IAAK,uBACLhC,MAAO,WACLkE,KAAKyyI,0BAEDzyI,KAAKk0I,eACPxzI,SAASyzI,KAAKxqI,YAAY3J,KAAKk0I,cAC/Bl0I,KAAKk0I,aAAe,MAGtBp9H,IAAYe,MAAM7X,KAAKqR,QAExB,CACDvT,IAAK,kBACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAEb,OAAIA,KAAKxB,MAAMqxH,SACOh1G,IAAM7P,cAAc,SAAU,CAChD8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOytH,aAAe9wI,GAE/BzC,KAAM,SACND,UAAW,oDACX,aAAcyC,KAAKxB,MAAMg2I,mBACzBx0E,QAAShgE,KAAKq1E,SACAx6D,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,2CACIsd,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,qBACLhC,MAAO,WACL,IAAIq1F,EAAgBl0F,YAAW,mCAAoC,CACjE,sBAAuB+C,KAAKwwI,UAC5B,qBAAsBxwI,KAAKwwI,YAG7B,OAAIxwI,KAAKxB,MAAMo0I,YACO/3H,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAW,uDACXyiE,QAAShgE,KAAKywI,gBACA51H,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,eACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAEb,GAAIA,KAAKxB,MAAMsyI,WAAY,CACzB,IAAI3gB,EAAYnwH,KAAKowH,kBACjBqkB,EAAez0I,KAAK00I,qBACpBC,EAAQhnI,IAAY8rE,cAAcz5E,KAAKxB,MAAMm2I,MAAO30I,KAAKxB,OACzDw8E,EAASrtE,IAAY8rE,cAAcz5E,KAAKxB,MAAMw8E,OAAQh7E,KAAKxB,OAC/D,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOyjB,EAAOkxH,SAAW30I,GAE3B1C,UAAW,kBACXuc,YAAa9Z,KAAKk4F,aACJr9E,IAAM7P,cAAc,MAAO,CACzC8Y,GAAI9jB,KAAKod,MAAM0G,GAAK,UACpBvmB,UAAW,kBACVy9E,GAAsBngE,IAAM7P,cAAc,MAAO,CAClDzN,UAAW,yBACVo3I,EAAOF,EAActkB,IAG1B,OAAO,OAER,CACDryH,IAAK,gBACLhC,MAAO,WACL,IAAI6nB,EAAS3jB,KAETulH,EAAmBtoH,YAAW,mBAAoB+C,KAAKxB,MAAM+mH,kBACjE,OAAoB1qG,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKod,MAAM0G,GAAK,WACpBhJ,IAAK,SAAa7a,GAChB,OAAO0jB,EAAOssG,UAAYhwH,GAE5B1C,UAAWgoH,EACXnlH,MAAOJ,KAAKxB,MAAM8mH,cACjBtlH,KAAKxB,MAAMgE,YAEf,CACD1E,IAAK,eACLhC,MAAO,WACL,IAAIq/G,EAAUn7G,KAEVk7E,EAASvtE,IAAY8rE,cAAcz5E,KAAKxB,MAAM08E,OAAQl7E,KAAKxB,OAC/D,OAAO08E,GAAuBrgE,IAAM7P,cAAc,MAAO,CACvD8P,IAAK,SAAa7a,GAChB,OAAOk7G,EAAQ05B,cAAgB50I,GAEjC1C,UAAW,mBACV29E,KAEJ,CACDp9E,IAAK,gBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMszI,UACOj3H,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACX6C,MAAO,CACL8W,OAAQ,IAEV4C,YAAa9Z,KAAK0wI,gBAIf,OAER,CACD5yI,IAAK,gBACLhC,MAAO,WACL,IAAIugH,EAAUr8G,KAEVzC,EAAYN,YAAW,uBAAwB+C,KAAKxB,MAAMjB,UAAW,CACvE,eAAgByC,KAAKxB,MAAMs2I,IAC3B,qBAAsB90I,KAAKwwI,YAEzBuE,EAAgB93I,YAAW,gBAAiB,CAC9C,gDAAiD+C,KAAKxB,MAAM6+E,MAC5D,mBAAoBr9E,KAAKod,MAAMkzH,YAC/B,qBAAsBtwI,KAAKxB,MAAMo4F,UACjC,qBAAsB52F,KAAKxB,MAAMszI,WAChC9xI,KAAKxB,MAAMu2I,cAAe/0I,KAAKg1I,oBAC9Bh6D,EAASh7E,KAAKi1I,eACdj2H,EAAUhf,KAAKy2G,gBACfv7B,EAASl7E,KAAK0uI,eACdnqC,EAAUvkG,KAAKk1I,gBACfC,EAAoB,CACtBz+B,MAA+B,WAAxB12G,KAAKxB,MAAM0H,SAAwB,IAAM,IAChDywG,KAA8B,WAAxB32G,KAAKxB,MAAM0H,SAAwB,IAAM,KAEjD,OAAoB2U,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOo8G,EAAQhrG,KAAOpR,GAExB1C,UAAWw3I,EACX/0E,QAAShgE,KAAK2wI,aACA91H,IAAM7P,cAAcia,IAAe,CACjDS,QAAS1lB,KAAK6wI,UACd5zI,WAAY,WACZ2oB,QAASuvH,EACTxvH,GAAI3lB,KAAKod,MAAME,QACfhM,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBG,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAK6wI,UACV/sH,GAAI9jB,KAAKod,MAAM0G,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKxB,MAAMwhE,QACpBj8C,KAAM,SACN,kBAAmB/jB,KAAKod,MAAM0G,GAAK,UACnC,mBAAoB9jB,KAAKod,MAAM0G,GAAK,WACpC,aAAc9jB,KAAKxB,MAAM6+E,OACxBrC,EAAQh8D,EAASk8D,EAAQqpB,OAE7B,CACDzmG,IAAK,SACLhC,MAAO,WACL,GAAIkE,KAAKod,MAAMkzH,YAAa,CAC1B,IAAI/tI,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,SACrBsZ,SAAS,IAIb,OAAO,UA5vBKhf,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA+vBzCqxI,EA1qBiB,CA2qBxBr1H,aA7rBiClf,EA+rBK,CACtCgoB,GAAI,KACJk3D,OAAQ,KACRE,OAAQ,KACR59D,SAAS,EACTpX,SAAU,SACV0wF,WAAW,EACXk7C,WAAW,EACXz0D,OAAO,EACP57D,OAAQ,KACRV,OAAQ,KACRukG,aAAc,KACdC,iBAAkB,KAClB4tB,eAAe,EACfnC,iBAAiB,EACjB8D,KAAK,EACLjlB,UAAU,EACVzvH,MAAO,KACP7C,UAAW,KACXw3I,cAAe,KACfjE,YAAY,EACZ9sI,SAAU,KACVoT,WAAY,EACZw7H,aAAa,EACbD,aAAa,EACbgC,MAAO,KACPH,mBAAoB,QACpBjC,aAAa,EACbZ,KAAM,EACNC,KAAM,EACNF,gBAAgB,EAChBlB,WAAW,EACX6D,YAAa,KACbz9B,kBAAmB,KACnB25B,WAAY,KACZr4C,YAAa,KACb25C,OAAQ,KACRt7C,UAAW,KACXm6C,cAAe,KACf2B,SAAU,KACVC,YAAa,KACbtyE,QAAS,KACT2wE,YAAa,OAzuBe7yI,EA+rBN,kBA/rBCd,EA+rBTqzI,GA7rBZj0I,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,gBCpIf,IAAIs5I,EAAQ76I,EAAQ,IAGpBF,EAAOC,SAAW86I,GAAM,WAEtB,OAA8E,GAAvEh5I,OAAOyC,eAAe,GAAI,EAAG,CAAE0Y,IAAK,WAAc,OAAO,KAAQ,O,gBCYxEld,EAAOC,QAAUC,EAAQ,IAARA,I,uFCbJ,SAASwyF,EAAmBtyF,GACzC,OCJa,SAA4BA,GACzC,GAAIK,MAAME,QAAQP,GAAM,OAAO,OAAA46I,EAAA,GAAiB56I,GDGzC,CAAkBA,IELZ,SAA0BwyF,GACvC,GAAsB,qBAAX9xF,QAA0BA,OAAOC,YAAYgB,OAAO6wF,GAAO,OAAOnyF,MAAM4B,KAAKuwF,GFIvD,CAAgBxyF,IAAQ,OAAA4/E,EAAA,GAA2B5/E,IGLvE,WACb,MAAM,IAAIoC,UAAU,wIHIwE,K,6BIL9F,6DASA,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIwnG,EAA+B,SAAU18F,IApE7C,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAU89F,EAAiB18F,GAE3B,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAauxF,GAE1B,SAASA,EAAgB93G,GACvB,IAAI+G,GAjHR,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMs2G,GAItB,IAAIg/B,GAFJ/vI,EAAQsU,EAAOne,KAAKsE,KAAMxB,IAEP82I,SAuBnB,OArBA/vI,EAAM6X,MAAQ,CACZzK,MAAO2iI,EAAS,CACd1tE,KAAM,EACNiH,KAAM,GACJ,EACJrmE,KAAM8sI,EAAS,CACb1tE,KAAM,EACNiH,KAAM,GACJ,EACJ0mE,mBAAoBD,EAAS,CAC3B1tE,KAAM,EACNiH,KAAM,GACJ,EACJ2mE,kBAAmBh3I,EAAMg3I,kBACzB38D,SAAS,GAEXtzE,EAAM0qF,SAAW1qF,EAAM0qF,SAASl2E,KAAK7B,EAAuB3S,IAC5DA,EAAMkwI,cAAgBH,EAAS,CAC7BlzI,IAAK,EACLE,KAAM,GACJ,EACGiD,EA0qBT,OAxyBoBlH,EAiIPi4G,EAjIoBv3G,EAiIH,CAAC,CAC7BjB,IAAK,WACLhC,MAAO,SAAkBwV,GACvBtR,KAAKuC,SAAWvC,KAAKuC,QAAQmzI,SAASpkI,KAEvC,CACDxT,IAAK,gBACLhC,MAAO,SAAuBugE,GAC5B,IAAI1hD,EAAS3a,KAET21I,EAAWx4I,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,OAC/Em4I,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpB/nC,EAAQ3S,KAAKod,MAAMzK,MACnBijI,EAAW51I,KAAKxB,MAAMo3I,SACtBC,EAAiB71I,KAAK81I,oBAEtBC,EAAiB,WACnB,IAAIxgB,EAASp4H,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAEjF,OAAOo4H,GAAU56G,EAAOyC,MAAMo4H,kBAAoB,EAAIjgB,GAGpDygB,EAAiB,SAAwBC,EAAQC,EAAOC,GAC1D,OAAOF,EAASC,EAAQC,GAGtBT,EAAW,WACb,IAAIpzI,EAAOnF,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAC3EiF,EAAMjF,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAC9E,OAAOwd,EAAO+6H,SAAS,CACrBpzI,KAAMA,EACNF,IAAKA,EACLuzI,SAAUA,KAId,GAAIL,EAAQ,CACV,IAAIc,EAAW,CACbxuE,KAAMmuE,EAAe15E,EAAM,IAC3BwS,KAAMknE,EAAe15E,EAAM,MAE5B+5E,EAASxuE,OAASj1D,EAAMi1D,MAAQwuE,EAASvnE,OAASl8D,EAAMk8D,OAAS6mE,EAASM,EAAeI,EAASvnE,KAAM+mE,EAAS,GAAIC,EAAevzI,MAAO0zI,EAAeI,EAASxuE,KAAMguE,EAAS,GAAIC,EAAezzI,UACjM,CACL,IAAIi0I,EAAYN,EAAe15E,GAE3Bg6E,IAAc1jI,IAChB+nC,EAAeg7F,EAASM,EAAeK,EAAWT,EAAUC,EAAevzI,MAAO,GAAKozI,EAAS,EAAGM,EAAeK,EAAWT,EAAUC,EAAezzI,UAI3J,CACDtE,IAAK,eACLhC,MAAO,SAAsBugE,EAAOrtD,GAClC,IAAIkS,EAASlhB,KAET21I,EAAWx4I,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,OAEnF,GAAI6R,EAAI,CACN,IAAIsmI,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eAEpB47F,EAAwBt2I,KAAKu2I,mBAC7B5jI,EAAQ2jI,EAAsB3jI,MAC9B1N,EAAWqxI,EAAsBrxI,SAEjC2wI,EAAW51I,KAAKxB,MAAMo3I,SAEtBF,EAAW,WACb,IAAIpzI,EAAOnF,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAC3EiF,EAAMjF,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAC9E,OAAO+jB,EAAOw0H,SAAS,CACrBpzI,KAAMA,EACNF,IAAKA,EACLuzI,SAAUA,KAIVa,EAAmB,aAAPxnI,EACZynI,EAAiB,WAAPznI,EAEd,GAAIwnI,GACF,GAAIlB,EACErwI,EAAS0N,MAAMi1D,KAAOj1D,EAAMi1D,KAAOvL,EAAM,GAC3Cq5E,EAASzwI,EAAS0N,MAAMk8D,KAAO+mE,GAAW3wI,EAAS0N,MAAMi1D,KAAO,GAAKguE,GAC5D3wI,EAAS0N,MAAMk8D,KAAOl8D,EAAMk8D,KAAOxS,EAAM,IAClDq5E,GAAUzwI,EAAS0N,MAAMk8D,KAAO,GAAK+mE,EAAU3wI,EAAS0N,MAAMi1D,KAAOguE,QAGvE,GAAI3wI,EAAS0N,MAAQA,EAAQ0pD,EAAO,CAClC,IAAItoD,GAAO9O,EAAS0N,MAAQ,GAAKijI,EACjCl7F,EAAeg7F,EAAS3hI,EAAK,GAAK2hI,EAAS,EAAG3hI,SAG7C,GAAI0iI,EACT,GAAInB,EACErwI,EAASuD,KAAKo/D,KAAOj1D,EAAMi1D,MAAQvL,EAAM,GAAK,EAChDq5E,EAASzwI,EAAS0N,MAAMk8D,KAAO+mE,GAAW3wI,EAAS0N,MAAMi1D,KAAO,GAAKguE,GAC5D3wI,EAASuD,KAAKqmE,KAAOl8D,EAAMk8D,MAAQxS,EAAM,GAAK,GACvDq5E,GAAUzwI,EAAS0N,MAAMk8D,KAAO,GAAK+mE,EAAU3wI,EAAS0N,MAAMi1D,KAAOguE,QAGvE,GAAI3wI,EAASuD,KAAOmK,GAAS0pD,EAAQ,EAAG,CACtC,IAAIq6E,GAASzxI,EAAS0N,MAAQ,GAAKijI,EAEnCl7F,EAAeg7F,EAASgB,EAAO,GAAKhB,EAAS,EAAGgB,SAKtD12I,KAAKk0G,cAAc73C,EAAOs5E,KAG7B,CACD73I,IAAK,mBACLhC,MAAO,WACL,IAAIw5I,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpBi8F,EAAc32I,KAAKod,MACnBzK,EAAQgkI,EAAYhkI,MACpBnK,EAAOmuI,EAAYnuI,KACnB+sI,EAAqBoB,EAAYpB,mBACjCK,EAAW51I,KAAKxB,MAAMo3I,SAEtBgB,EAA2B,SAAkCC,EAAMX,GACrE,OAAO9wI,KAAKsmB,MAAMmrH,GAAQX,GAASW,KAGjCC,EAAkBnkI,EAClBokI,EAAiB,EAErB,GAAI/2I,KAAKuC,QAAS,CAChB,IAAIzB,EAAYd,KAAKuC,QAAQzB,UACzBG,EAAajB,KAAKuC,QAAQtB,WAO5B81I,EALEzB,EAKe,CACf1tE,MALFkvE,EAAkB,CAChBlvE,KAAMgvE,EAAyB91I,EAAW80I,EAAS,IACnD/mE,KAAM+nE,EAAyB31I,EAAY20I,EAAS,MAG9BhuE,KAAO2tE,EAAmB3tE,KAChDiH,KAAMioE,EAAgBjoE,KAAO0mE,EAAmB1mE,OAIlDioE,EAAkBF,EADFl8F,EAAez5C,EAAaH,EACU80I,IACnBL,EAIvC,MAAO,CACL5iI,MAAOA,EACPnK,KAAMA,EACNvD,SAAU,CACR0N,MAAOmkI,EACPtuI,KAAMuuI,MAIX,CACDj5I,IAAK,eACLhC,MAAO,WACL,MAAkC,eAA3BkE,KAAKxB,MAAMw4I,cAEnB,CACDl5I,IAAK,SACLhC,MAAO,WACL,MAAkC,SAA3BkE,KAAKxB,MAAMw4I,cAEnB,CACDl5I,IAAK,mBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETs1I,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpB/nC,EAAQ3S,KAAKod,MAAMzK,MACnBijI,EAAW51I,KAAKxB,MAAMo3I,SACtBC,EAAiB71I,KAAK81I,oBACtBmB,EAAej3I,KAAKuC,QAAUvC,KAAKuC,QAAQpC,YAAc01I,EAAevzI,KAAO,EAC/E8gE,EAAgBpjE,KAAKuC,QAAUvC,KAAKuC,QAAQhB,aAAes0I,EAAezzI,IAAM,EAEhF80I,EAA8B,SAAqCC,EAAcC,GACnF,OAAOhyI,KAAK8hE,KAAKiwE,GAAgBC,GAAaD,KAG5C5B,EAAqBD,EAAS,CAChC1tE,KAAMsvE,EAA4B9zE,EAAewyE,EAAS,IAC1D/mE,KAAMqoE,EAA4BD,EAAcrB,EAAS,KACvDsB,EAA4Bx8F,EAAeu8F,EAAe7zE,EAAewyE,GACzEJ,EAAoBx1I,KAAKod,MAAMo4H,mBAAqBpwI,KAAK8hE,MAAMouE,EAASC,EAAmB3tE,KAAO2tE,GAAsB,GAExH8B,EAAgB,SAAuBpB,EAAQqB,EAAMC,GACvD,OAAO51H,EAAO61H,QAAQvB,EAASqB,GAAQrB,EAAST,EAAoB,EAAI,GAAKA,EAAmB+B,IAO9Fn6H,EAAQ,CACVm4H,mBAAoBA,EACpB/sI,KANS8sI,EAAS,CAClB1tE,KAAMyvE,EAAc1kI,EAAMi1D,KAAM2tE,EAAmB3tE,MACnDiH,KAAMwoE,EAAc1kI,EAAMk8D,KAAM0mE,EAAmB1mE,MAAM,IACvDwoE,EAAc1kI,EAAO4iI,GAIvBC,kBAAmBA,GAGjBx1I,KAAKxB,MAAMi5I,aACbr6H,EAAK,UAAgBtiB,MAAM4B,KAAK,CAC9B/B,OAAQ26I,EAASC,EAAmB3tE,KAAO2tE,KAI/Cv1I,KAAKwd,SAASJ,GAAO,WACfuE,EAAOnjB,MAAMu8F,MACfp5E,EAAOnjB,MAAM23G,YAAcx0F,EAAOnjB,MAAM23G,WAAW,CACjDxjG,MAAOgP,EAAOvE,MAAMzK,MACpBnK,KAAMmZ,EAAOvE,MAAM5U,YAK1B,CACD1K,IAAK,UACLhC,MAAO,SAAiB0M,EAAMkvI,GAC5B,OAAO13I,KAAKxB,MAAM03G,MAAQ9wG,KAAKs6B,IAAIg4G,EAAS13I,KAAKxB,MAAM03G,MAAM,GAAGv7G,OAASqF,KAAKxB,MAAM03G,MAAMv7G,OAAQ6N,GAAQ,IAE3G,CACD1K,IAAK,oBACLhC,MAAO,WACL,GAAIkE,KAAKgf,QAAS,CAChB,IAAI5e,EAAQC,iBAAiBL,KAAKgf,SAC9B1c,EAAOkV,SAASpX,EAAMG,YAAa,IACnCoG,EAAQ6Q,SAASpX,EAAMI,aAAc,IACrC4B,EAAMoV,SAASpX,EAAMqD,WAAY,IACjCmD,EAAS4Q,SAASpX,EAAMsD,cAAe,IAC3C,MAAO,CACLpB,KAAMA,EACNqE,MAAOA,EACPvE,IAAKA,EACLwE,OAAQA,EACRT,EAAG7D,EAAOqE,EACVP,EAAGhE,EAAMwE,GAIb,MAAO,CACLtE,KAAM,EACNqE,MAAO,EACPvE,IAAK,EACLwE,OAAQ,EACRT,EAAG,EACHC,EAAG,KAGN,CACDtI,IAAK,UACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,GAAIA,KAAKuC,QAAS,CAChB,IAAI+yI,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpBzgC,EAAgBja,KAAKuC,QAAQ0X,cAC7B/Z,EAAQF,KAAKxB,MAAMm+C,aAAe,GAAG5+C,OAAOiC,KAAKuC,QAAQpC,aAAe8Z,EAAc9Z,YAAa,MACnGmB,EAAStB,KAAKxB,MAAMo+C,cAAgB,GAAG7+C,OAAOiC,KAAKuC,QAAQhB,cAAgB0Y,EAAc1Y,aAAc,MAEvGosC,EAAU,SAAiBgqG,EAAOzY,GACpC,OAAO58G,EAAO/f,QAAQnC,MAAMu3I,GAASzY,GAGnCoW,GACF3nG,EAAQ,SAAUrsC,GAClBqsC,EAAQ,QAASztC,IAEjBw6C,EAAe/M,EAAQ,QAASztC,GAASytC,EAAQ,SAAUrsC,MAIhE,CACDxD,IAAK,gBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAETk2G,EAAQl2G,KAAKxB,MAAM03G,MAEvB,GAAIl2G,KAAK43I,QAAU1hC,EAAO,CACxB,IAAIo/B,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpBk7F,EAAW51I,KAAKxB,MAAMo3I,SACtBC,EAAiB71I,KAAK81I,oBAEtBnoG,EAAU,SAAiBgqG,EAAOzY,EAAQgX,GAC5C,IAAIC,EAAWh5I,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAEnF,OAAOslB,EAAOm1H,OAAOx3I,MAAMu3I,IAAUzY,GAAU,IAAIvkI,OAASu7I,EAAQC,EAAW,MAG7Eb,GACF3nG,EAAQ,SAAUuoE,EAAM,GAAI0/B,EAAS,GAAIC,EAAezvI,GACxDunC,EAAQ,QAASuoE,EAAM,GAAI0/B,EAAS,GAAIC,EAAe1vI,IAEvDu0C,EAAe/M,EAAQ,QAASuoE,EAAO0/B,EAAUC,EAAe1vI,GAAKwnC,EAAQ,SAAUuoE,EAAO0/B,EAAUC,EAAezvI,MAI5H,CACDtI,IAAK,qBACLhC,MAAO,SAA4BiY,GACjC,IAAIuP,EAAStjB,KAEb,GAAIA,KAAKgf,QAAS,CAChB,IAAIs2H,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpB/nC,EAAQoB,EAAMA,EAAIpB,MAAQ3S,KAAKod,MAAMzK,MACrCijI,EAAW51I,KAAKxB,MAAMo3I,SAEtBiC,EAAwB,SAA+B5B,EAAQC,GACjE,OAAOD,EAASC,GAGd4B,EAAe,WACjB,IAAIC,EAAK56I,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAEzE66I,EAAK76I,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAE7E,OAAOmmB,EAAOtE,QAAQ5e,MAAM6lC,UAAY,eAAeloC,OAAOg6I,EAAI,QAAQh6I,OAAOi6I,EAAI,WAGvF,GAAI1C,EACFwC,EAAaD,EAAsBllI,EAAMk8D,KAAM+mE,EAAS,IAAKiC,EAAsBllI,EAAMi1D,KAAMguE,EAAS,SACnG,CACL,IAAIqC,EAAeJ,EAAsBllI,EAAOijI,GAChDl7F,EAAeo9F,EAAaG,EAAc,GAAKH,EAAa,EAAGG,OAIpE,CACDn6I,IAAK,yBACLhC,MAAO,SAAgCuY,GACrC,IAAIqP,EAAS1jB,KAETzB,EAAS8V,EAAM9V,OACf+2I,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpBw9F,EAAel4I,KAAKod,MACpBzK,EAAQulI,EAAavlI,MACrBnK,EAAO0vI,EAAa1vI,KACpB+sI,EAAqB2C,EAAa3C,mBAClCC,EAAoB0C,EAAa1C,kBACjCI,EAAW51I,KAAKxB,MAAMo3I,SACtBC,EAAiB71I,KAAK81I,oBAEtBqC,EAAqB,SAA4BtB,EAAMV,GACzD,OAAOU,EAAOA,EAAOV,EAAWU,EAAOV,EAAWU,EAAO,GAGvDuB,EAAwB,SAA+BvB,EAAMX,GAC/D,OAAO9wI,KAAKsmB,MAAMmrH,GAAQX,GAASW,KAGjCwB,EAAwB,SAA+BC,EAAerC,EAAQsC,EAAOjB,EAAMkB,GAC7F,OAAOF,GAAiB9C,EAAoBA,EAAoBgD,EAAuBD,EAAQjB,EAAO9B,EAAoBS,EAAST,EAAoB,GAGrJO,EAAiB,SAAwBuC,EAAeG,EAAexC,EAAQsC,EAAOjB,EAAMkB,GAC9F,OAAIF,GAAiB9C,EAA0B,EAAcgD,EAAuBF,EAAgBG,EAAgBxC,EAASqC,EAAgB9C,EAAoB8C,EAAgBG,EAAgBxC,EAASqC,EAAgB,EAAI9C,GAG5N6B,EAAgB,SAAuBiB,EAAerC,EAAQsC,EAAOjB,EAAMC,GAC7E,IAAI1gB,EAAYof,EAASqB,EAAO,EAAI9B,EAMpC,OAJI8C,GAAiB9C,IACnB3e,GAAa2e,EAAoB,GAG5B9xH,EAAO8zH,QAAQ3gB,EAAW0gB,IAG/Bz2I,EAAYq3I,EAAmB55I,EAAOuC,UAAW+0I,EAAezzI,KAChEnB,EAAak3I,EAAmB55I,EAAO0C,WAAY40I,EAAevzI,MAClE8zI,EAAW,EACXsC,EAAUlwI,EACVmwI,GAAiB,EAErB,GAAIrD,EAAQ,CACV,IAAIsD,EAAe54I,KAAKy1I,cAAcrzI,KAAOtB,EACzC+3I,EAAgB74I,KAAKy1I,cAAcnzI,MAAQrB,EAC3C63I,EAAe,CACjBlxE,KAAMwwE,EAAsBt3I,EAAW80I,EAAS,IAChD/mE,KAAMupE,EAAsBn3I,EAAY20I,EAAS,KAE/CmD,EAAe,CACjBnxE,KAAMywE,EAAsBS,EAAalxE,KAAMj1D,EAAMi1D,KAAMp/D,EAAKo/D,KAAM2tE,EAAmB3tE,KAAMgxE,GAC/F/pE,KAAMwpE,EAAsBS,EAAajqE,KAAMl8D,EAAMk8D,KAAMrmE,EAAKqmE,KAAM0mE,EAAmB1mE,KAAMgqE,IAEjGzC,EAAW,CACTxuE,KAAMmuE,EAAe+C,EAAalxE,KAAMmxE,EAAanxE,KAAMj1D,EAAMi1D,KAAMp/D,EAAKo/D,KAAM2tE,EAAmB3tE,KAAMgxE,GAC3G/pE,KAAMknE,EAAe+C,EAAajqE,KAAMkqE,EAAalqE,KAAMl8D,EAAMk8D,KAAMrmE,EAAKqmE,KAAM0mE,EAAmB1mE,KAAMgqE,IAE7GH,EAAU,CACR9wE,KAAMyvE,EAAcyB,EAAalxE,KAAMwuE,EAASxuE,KAAMp/D,EAAKo/D,KAAM2tE,EAAmB3tE,MACpFiH,KAAMwoE,EAAcyB,EAAajqE,KAAMunE,EAASvnE,KAAMrmE,EAAKqmE,KAAM0mE,EAAmB1mE,MAAM,IAE5F8pE,EAAiBvC,EAASxuE,OAASj1D,EAAMi1D,MAAQwuE,EAASvnE,OAASl8D,EAAMk8D,MAAQ6pE,EAAQ9wE,OAASp/D,EAAKo/D,MAAQ8wE,EAAQ7pE,OAASrmE,EAAKqmE,KACrI7uE,KAAKy1I,cAAgB,CACnBrzI,IAAKtB,EACLwB,KAAMrB,OAEH,CACL,IAAI+3I,EAAYt+F,EAAez5C,EAAaH,EACxCm4I,EAAsBj5I,KAAKy1I,eAAiBuD,EAE5CE,EAAiBd,EAAsBY,EAAWpD,GAKtD8C,EAAUrB,EAAc6B,EADxB9C,EAAWL,EAAemD,EAFLb,EAAsBa,EAAgBvmI,EAAOnK,EAAM+sI,EAAoB0D,GAElCtmI,EAAOnK,EAAM+sI,EAAoB0D,GACzCzwI,EAAM+sI,GACxDoD,EAAiBvC,IAAazjI,GAAS+lI,IAAYlwI,EACnDxI,KAAKy1I,cAAgBuD,EAGvB,MAAO,CACLrmI,MAAOyjI,EACP5tI,KAAMkwI,EACNC,eAAgBA,KAGnB,CACD76I,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIsP,EAAS3jB,KAETm5I,EAAwBn5I,KAAKo5I,uBAAuB/kI,GACpD1B,EAAQwmI,EAAsBxmI,MAC9BnK,EAAO2wI,EAAsB3wI,KAGjC,GAFqB2wI,EAAsBR,eAEvB,CAClB,IAAIxhF,EAAW,CACbxkD,MAAOA,EACPnK,KAAMA,GAERxI,KAAKq5I,mBAAmBliF,GAEpBn3D,KAAKxB,MAAMu8F,MACb/6F,KAAKxB,MAAM23G,YAAcn2G,KAAKxB,MAAM23G,WAAWh/C,GAGjDn3D,KAAKwd,SAAS25C,GAAU,WACtBxzC,EAAOnlB,MAAM86I,qBAAuB31H,EAAOnlB,MAAM86I,oBAAoBniF,SAI1E,CACDr5D,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAI8mG,EAAUn7G,KAEdA,KAAKxB,MAAMyxF,UAAYjwF,KAAKxB,MAAMyxF,SAAS57E,GAEvCrU,KAAKxB,MAAMskB,OACT9iB,KAAKu5I,eACPxjI,aAAa/V,KAAKu5I,gBAGfv5I,KAAKod,MAAMy7D,SAAW74E,KAAKxB,MAAMi5I,YACPz3I,KAAKo5I,uBAAuB/kI,GACpBskI,gBAE1B34I,KAAKwd,SAAS,CACvBq7D,SAAS,IAIb74E,KAAKu5I,cAAgB1wI,YAAW,WAC9BsyG,EAAQq+B,eAAenlI,GAEnB8mG,EAAQ/9F,MAAMy7D,SAAWsiC,EAAQ38G,MAAMi5I,aAAet8B,EAAQ38G,MAAMu8F,MACtEogB,EAAQ39F,SAAS,CACfq7D,SAAS,MAGZ74E,KAAKxB,MAAMskB,QAEd9iB,KAAKw5I,eAAenlI,KAGvB,CACDvW,IAAK,aACLhC,MAAO,SAAoBugE,EAAO31D,GAChC,MAAO,CACL21D,MAAOA,EACP31D,MAAOA,EACPiM,MAAiB,IAAV0pD,EACP7zD,KAAM6zD,IAAU31D,EAAQ,EACxB+yI,KAAMp9E,EAAQ,IAAM,EACpBq9E,IAAKr9E,EAAQ,IAAM,EACnB79D,MAAOwB,KAAKxB,SAGf,CACDV,IAAK,OACLhC,MAAO,WACLkE,KAAK25I,UACL35I,KAAK45I,mBACL55I,KAAK65I,kBAEN,CACD/7I,IAAK,oBACLhC,MAAO,WACLkE,KAAKuW,SAEN,CACDzY,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GACxCD,EAAUoyH,WAAa51I,KAAKxB,MAAMo3I,UAAapyH,EAAU0yF,OAAS1yF,EAAU0yF,MAAMv7G,UAAYqF,KAAKxB,MAAM03G,OAAS,IAAIv7G,QACxHqF,KAAKuW,OAGHvW,KAAKxB,MAAMu8F,MAAQv3E,EAAUq1D,UAAY74E,KAAKxB,MAAMq6E,SAAW74E,KAAKod,MAAMy7D,UAAY74E,KAAKxB,MAAMq6E,SACnG74E,KAAKwd,SAAS,CACZq7D,QAAS74E,KAAKxB,MAAMq6E,UAIpBr1D,EAAUwzH,cAAgBh3I,KAAKxB,MAAMw4I,cACvCh3I,KAAKy1I,cAAgBz1I,KAAKs1I,SAAW,CACnClzI,IAAK,EACLE,KAAM,GACJ,KAGP,CACDxE,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,EAAO31D,EAAOozI,GAC7C,IAAIxoI,EAAUtR,KAAKw0H,WAAWn4D,EAAO31D,GACjCsY,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMq2G,aAAcilC,GAAc/vI,EAAMuH,GACrF,OAAoBuJ,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKu+D,GACJr9C,KAEJ,CACDlhB,IAAK,cACLhC,MAAO,WACL,IAAIugH,EAAUr8G,KAEVk2G,EAAQl2G,KAAKxB,MAAM03G,MAEvB,GAAIA,IAAUl2G,KAAKod,MAAMy7D,QAAS,CAChC,IAAIy8D,EAASt1I,KAAKs1I,SACdyE,EAAe/5I,KAAKod,MACpBzK,EAAQonI,EAAapnI,MACrBnK,EAAOuxI,EAAavxI,KACpB9B,EAAQwvG,EAAMv7G,OAElB,OAAI26I,EACKp/B,EAAM35G,MAAMoW,EAAMi1D,KAAMp/D,EAAKo/D,MAAMjqE,KAAI,SAAUoM,EAAMnP,GAC5D,IAAIs7G,EAAQnsG,EAAKxN,MAAMoW,EAAMk8D,KAAMrmE,EAAKqmE,MACpCxS,EAAQ1pD,EAAMi1D,KAAOhtE,EACzB,OAAOyhH,EAAQ/G,WAAWvrG,EAAMsyD,EAAO31D,EAAOwvG,MAGzCA,EAAM35G,MAAMoW,EAAOnK,GAAM7K,KAAI,SAAUoM,EAAMnP,GAClD,IAAIyhE,EAAQ1pD,EAAQ/X,EACpB,OAAOyhH,EAAQ/G,WAAWvrG,EAAMsyD,EAAO31D,MAK7C,OAAO,OAER,CACD5I,IAAK,mBACLhC,MAAO,SAA0BugE,EAAO31D,EAAOszI,GAC7C,IAAI1oI,EAAUwT,EAAcA,EAAc,GAAI9kB,KAAKw0H,WAAWn4D,EAAO31D,IAASszI,GAAc,IAExFh7H,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMy7I,gBAAiB3oI,GACpE,OAAoBuJ,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKu+D,GACJr9C,KAEJ,CACDlhB,IAAK,eACLhC,MAAO,WACL,IAAIygH,EAAUv8G,KAEd,GAAIA,KAAKod,MAAMy7D,QAAS,CACtB,IAAIt7E,EAAYN,YAAW,2BAA4B,CACrD,uBAAwB+C,KAAKxB,MAAMy7I,kBAEjCj7H,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDzN,UAAW,yDAGb,GAAIyC,KAAKxB,MAAMy7I,gBAAiB,CAC9B,IAAI3E,EAASt1I,KAAKs1I,SACdC,EAAqBv1I,KAAKod,MAAMm4H,mBAChC56I,EAAS26I,EAASC,EAAmB3tE,KAAO2tE,EAChDv2H,EAAUhf,KAAKod,MAAM88H,UAAUv8I,KAAI,SAAUw8I,EAAG99E,GAC9C,OAAOkgD,EAAQ69B,iBAAiB/9E,EAAO1hE,EAAQ26I,GAAU,CACvD+E,QAAS9E,EAAmB1mE,UAKlC,OAAoBh0D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,GACVyhB,GAGL,OAAO,OAER,CACDlhB,IAAK,gBACLhC,MAAO,WACL,IAAI4gH,EAAU18G,KAEVk2G,EAAQl2G,KAAKu2G,cACbv3F,EAAuBnE,IAAM7P,cAAc,MAAO,CACpDzN,UAAW,4BACXud,IAAK,SAAa7a,GAChB,OAAOy8G,EAAQ19F,QAAU/e,IAE1Bi2G,GAEH,GAAIl2G,KAAKxB,MAAM43G,gBAAiB,CAC9B,IAAIkkC,EAAet6I,KAAKod,MACpBy7D,EAAUyhE,EAAazhE,QACvBlmE,EAAQ2nI,EAAa3nI,MACrBnK,EAAO8xI,EAAa9xI,KACpB+xI,EAAiB,CACnBh9I,UAAW,4BACXud,IAAK,SAAa7a,GAChB,OAAOy8G,EAAQ19F,QAAU/e,GAE3BuC,SAAU0zG,EACV3zG,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZq6E,QAASA,EACTlmE,MAAOA,EACPnK,KAAMA,GAER,OAAOmF,IAAY8rE,cAAcz5E,KAAKxB,MAAM43G,gBAAiBmkC,GAG/D,OAAOv7H,IAER,CACDlhB,IAAK,SACLhC,MAAO,WACL,IAAI8gH,EAAU58G,KAEVs1I,EAASt1I,KAAKs1I,SACd56F,EAAe16C,KAAK06C,eACpBn9C,EAAYN,YAAW,oBAAqB,CAC9C,gBAAiBq4I,EACjB,sBAAuB56F,GACtB16C,KAAKxB,MAAMjB,WACV40G,EAASnyG,KAAKmzG,eACdn0F,EAAUhf,KAAKy2G,gBACnB,OAAoB57F,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO28G,EAAQr6G,QAAUtC,GAE3B1C,UAAWA,EACXunE,SAAU,EACV1kE,MAAOJ,KAAKxB,MAAM4B,MAClB6vF,SAAUjwF,KAAKiwF,UACdjxE,EAAsBnE,IAAM7P,cAAc,MAAO,CAClD8P,IAAK,SAAa7a,GAChB,OAAO28G,EAAQg7B,OAAS33I,GAE1B1C,UAAW,6BACT40G,MAnyBJpzG,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAsyBzCs3G,EA7sB0B,CA8sBjCt7F,aAEFxK,EAAgB8lG,EAAiB,eAAgB,CAC/CxyF,GAAI,KACJ1jB,MAAO,KACP7C,UAAW,KACX24G,MAAO,KACP0/B,SAAU,EACVh5F,aAAc,KACdD,YAAa,KACbq6F,YAAa,WACbxB,kBAAmB,KACnB1yH,MAAO,EACPi4E,MAAM,EACN08C,YAAY,EACZwC,gBAAiB,KACjBplC,aAAc,KACduB,gBAAiB,KACjBnmB,SAAU,KACVqpD,oBAAqB,KACrBnjC,WAAY,Q,6BCh1Bd,2EAKA,SAASh4G,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASyf,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI0rI,EAA+B,SAAU5gI,GAC3CpB,EAAUgiI,EAAiB5gI,GAE3B,IAAIC,EAAS4C,EAAe+9H,GAE5B,SAASA,EAAgBh8I,GACvB,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAMw6I,IAEtBj1I,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IACnDA,EA6FT,OA1FAzG,EAAa07I,EAAiB,CAAC,CAC7B18I,IAAK,UACLhC,MAAO,SAAiB0D,GAClBQ,KAAKxB,MAAMi8I,SAASC,SACtB16I,KAAKxB,MAAMi8I,SAASC,QAAQ,CAC1B/kI,cAAenW,EACfuK,KAAM/J,KAAKxB,MAAMi8I,WAIjBz6I,KAAKxB,MAAMm8I,aACb36I,KAAKxB,MAAMm8I,YAAYn7I,GAGzBA,EAAEyV,mBAEH,CACDnX,IAAK,kBACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,mBACXwmB,KAAM,gBAGT,CACDjmB,IAAK,iBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAET46I,EAAuB56I,KAAKxB,MAAMi8I,SAClCh7H,EAAWm7H,EAAqBn7H,SAChCy5D,EAAO0hE,EAAqB1hE,KAC5BK,EAAQqhE,EAAqBrhE,MAC7B0vB,EAAW2xC,EAAqB3xC,SAChCpiF,EAAM+zH,EAAqB/zH,IAC3BtoB,EAASq8I,EAAqBr8I,OAC9BhB,EAAYN,YAAW,kBAAmB,CAC5C,aAAcwiB,IAEZ0xE,EAAgBl0F,YAAW,kBAAmBi8E,GAClDA,EAAOA,GAAqBr+D,IAAM7P,cAAc,OAAQ,CACtDzN,UAAW4zF,IAEb5X,EAAQA,GAAsB1+D,IAAM7P,cAAc,OAAQ,CACxDzN,UAAW,mBACVg8E,GACH,IAAIv6D,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMr6C,GAAO,IACb9C,KAAM,WACNxmB,UAAWA,EACXgB,OAAQA,EACRyhE,QAAShgE,KAAKggE,SACbkZ,EAAMK,GAET,GAAI0vB,EAAU,CACZ,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOqlD,QAAQ3rD,IAExB9W,UAAWA,EACXs9I,eAAgB,kBAChB1pD,cAAeA,EACf5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAcwvB,EAAUjpG,KAAKxB,MAAMi8I,SAAUjhE,GAGrE,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,aACXwmB,KAAM,QACL/E,KAEJ,CACDlhB,IAAK,aACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMi8I,SAAShnH,UACfzzB,KAAKotI,kBAGPptI,KAAK86I,mBAEb,CACDh9I,IAAK,SACLhC,MAAO,WAEL,OADWkE,KAAKs1G,iBAKbklC,EAzG0B,CA0GjCx/H,aAOF,SAASy9D,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAAS0gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAvBha0B,EAAgBgqI,EAAiB,eAAgB,CAC/CC,SAAU,KACVE,YAAa,OAyBf,IAAII,EAAyC,SAAUnhI,GACrDpB,EAAUuiI,EAA2BnhI,GAErC,IAAIC,EAASgE,EAAek9H,GAE5B,SAASA,IAGP,OAFA58I,EAAgB6B,KAAM+6I,GAEflhI,EAAOvQ,MAAMtJ,KAAM7C,WA2C5B,OAxCA2B,EAAai8I,EAA2B,CAAC,CACvCj9I,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,oCAAqC+C,KAAKxB,MAAMw8I,eAC3E,OAAoBngI,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKxB,MAAMo6E,WACpB37E,WAAY,sBACZ0oB,GAAI3lB,KAAKxB,MAAMmnB,GACfC,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKxB,MAAM0mB,QACpBE,UAAWplB,KAAKxB,MAAM4mB,UACtBC,OAAQrlB,KAAKxB,MAAM6mB,OACnBE,SAAUvlB,KAAKxB,MAAM+mB,UACP1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAMy8I,UAClBn3H,GAAI9jB,KAAKxB,MAAMslB,GACfk8C,QAAShgE,KAAKggE,SACAnlD,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,sBACXwmB,KAAM,QACL/jB,KAAKxB,MAAMgE,cAEf,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpB+2I,EAnDoC,CAoD3C//H,aAEFxK,EAAgBuqI,EAA2B,eAAgB,CACzD/2I,SAAU,KACVi3I,UAAW,KACXD,cAAe,KACfl3H,GAAI,KACJk8C,QAAS,OAGX,IAAIk7E,EAAgCrgI,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACpE,OAAoBD,IAAM7P,cAAc+vI,EAA2BtiE,EAAS,CAC1EG,WAAY99D,GACXtc,OAGL,SAASqmB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIqsI,EAA2B,SAAUvhI,GACvCpB,EAAU2iI,EAAavhI,GAEvB,IAAIC,EAASkL,EAAao2H,GAE1B,SAASA,EAAY38I,GACnB,IAAI+G,EAiBJ,OAfApH,EAAgB6B,KAAMm7I,IAEtB51I,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ0G,GAAItlB,EAAMslB,GACVkzF,gBAAgB,GAElBzxG,EAAM61I,sBAAwB71I,EAAM61I,sBAAsBrhI,KAAK7B,EAAuB3S,IACtFA,EAAMo1I,YAAcp1I,EAAMo1I,YAAY5gI,KAAK7B,EAAuB3S,IAClEA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAMqyG,WAA0B/8F,IAAMmL,YAC/BzgB,EAoQT,OAjQAzG,EAAaq8I,EAAa,CAAC,CACzBr9I,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B+P,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAGhB,CACDhM,IAAK,wBACLhC,MAAO,WACDkE,KAAKod,MAAM45F,eAAgBh3G,KAAKmf,OAAYnf,KAAKkf,SAEtD,CACDphB,IAAK,cACLhC,MAAO,WACLkE,KAAKmf,SAEN,CACDrhB,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,iBACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAKw6G,iBAEN,CACD18G,IAAK,mBACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBACL16G,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,kBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,eACLhC,MAAO,WACLiE,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAAS/O,KAAKq7I,cAAcphI,cAAeja,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAEtH,CACDlG,IAAK,4BACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsG,EAAOyC,MAAM45F,gBAAkBr8F,EAAOu4E,iBAAiB7+E,IACzDsG,EAAOwE,QAIXze,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK8J,WAAW,WACjEoX,EAAO9D,MAAM45F,gBACf91F,EAAO/B,WAKbnf,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChBz5F,EAAOvE,MAAM45F,iBAAmBj3G,IAAWyiB,aAC7Cb,EAAOxC,QAIXve,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAK8J,WAAa9J,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,UAAY/O,KAAK43G,WAAW7oG,QAAQ1L,SAASgR,EAAM9V,UAEhH,CACDT,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,oBACLhC,MAAO,WACAkE,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,gBAIJ5W,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAzLvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAyL/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGjBjiE,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,cACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAU88I,EAAUp+E,GAC9C,OAAoBxhD,IAAM7P,cAAcwvI,EAAiB,CACvDC,SAAUA,EACV38I,IAAKu+D,EACLs+E,YAAar4H,EAAOq4H,iBAKnB,OAER,CACD78I,IAAK,SACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAETzC,EAAYN,YAAW,4BAA6B+C,KAAKxB,MAAMjB,UAAW,CAC5E,aAAcyC,KAAKxB,MAAMihB,WAEvBy2F,EAAQl2G,KAAKu2G,cACb+kC,EAAgBt7I,KAAKxB,MAAM+8I,eAAiB5tI,IAAY8rE,cAAcz5E,KAAKxB,MAAM+8I,eAAgBv7I,KAAKxB,OAAS,KACnH,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKod,MAAM0G,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB0a,IAAK,SAAa7a,GAChB,OAAOwiB,EAAO3Y,UAAY7J,IAEd4a,IAAM7P,cAAcovE,IAAQ,CAC1Ct/D,IAAK,SAAa7a,GAChB,OAAOwiB,EAAO44H,cAAgBp7I,GAEhCzC,KAAM,SACND,UAAW,8BACX27E,KAAMl5E,KAAKxB,MAAM06E,KACjBK,MAAOv5E,KAAKxB,MAAM+6E,MAClBvZ,QAAShgE,KAAKxB,MAAMwhE,QACpBvgD,SAAUzf,KAAKxB,MAAMihB,SACrBqlD,SAAU9kE,KAAKxB,MAAMsmE,UACpBw2E,GAA6BzgI,IAAM7P,cAAcovE,IAAQ,CAC1D58E,KAAM,SACND,UAAW,2BACX27E,KAAMl5E,KAAKxB,MAAMm+G,aACjB38C,QAAShgE,KAAKo7I,sBACd37H,SAAUzf,KAAKxB,MAAMihB,SACrB,gBAAiBzf,KAAKod,MAAM45F,eAC5B,iBAAiB,EACjB,YAAah3G,KAAKod,MAAM0G,GAAK,aACdjJ,IAAM7P,cAAckwI,EAAkB,CACrDpgI,IAAK9a,KAAK43G,WACV5zG,SAAUhE,KAAKxB,MAAMwF,SACrB8f,GAAI9jB,KAAKod,MAAM0G,GAAK,WACpBm3H,UAAWj7I,KAAKxB,MAAMy8I,UACtBD,cAAeh7I,KAAKxB,MAAMw8I,cAC1Bh7E,QAAShgE,KAAKs3G,aACd3xF,GAAI3lB,KAAKod,MAAM45F,eACf9xF,QAASllB,KAAKu3G,eACdnyF,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,gBACfd,kBAAmB52G,KAAKxB,MAAMo4G,mBAC7BV,QAIAilC,EA3RsB,CA4R7BngI,aAEFxK,EAAgB2qI,EAAa,eAAgB,CAC3Cr3H,GAAI,KACJy1D,MAAO,KACPL,KAAM,KACN9Y,MAAO,KACP3gD,SAAU,KACVrf,MAAO,KACP7C,UAAW,KACX09I,UAAW,KACXD,cAAe,KACfl2E,SAAU,KACV9gE,SAAU,KACV+0E,QAAS,KACTE,eAAgB,KAChBsiE,eAAgB,KAChB3kC,kBAAmB,KACnB+F,aAAc,qBACd38C,QAAS,KACTj/C,OAAQ,KACRU,OAAQ,Q,6BC/mBV,6DAGA,SAAStjB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B0/I,EAAwB,SAAU5hI,IAxEtC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUgjI,EAAU5hI,GAEpB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAay2H,GAE1B,SAASA,IAGP,OAFAr9I,EAAgB6B,KAAMw7I,GAEf3hI,EAAOvQ,MAAMtJ,KAAM7C,WA+B5B,OA9HoBkB,EAkGPm9I,GAlGoBz8I,EAkGV,CAAC,CACtBjB,IAAK,gBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM2mH,KAAa,CAC1BjlH,MAAOF,KAAKxB,MAAM2mH,KAClB7jH,OAAQtB,KAAKxB,MAAM2mH,KACnBs2B,aAAcz7I,KAAKxB,MAAMi9I,cACb,CACZv7I,MAAOF,KAAKxB,MAAM0B,MAClBoB,OAAQtB,KAAKxB,MAAM8C,OACnBm6I,aAAcz7I,KAAKxB,MAAMi9I,gBAG5B,CACD39I,IAAK,SACLhC,MAAO,WACL,IAAI4/I,EAAoBz+I,YAAW,yBAA0B,CAC3D,oBAA0C,WAArB+C,KAAKxB,MAAMowI,MAChC,kBAA4C,SAAzB5uI,KAAKxB,MAAMm9I,WAC7B37I,KAAKxB,MAAMjB,WACV6C,EAAQJ,KAAK47I,gBACjB,OAAoB/gI,IAAM7P,cAAc,MAAO,CAC7C5K,MAAOA,EACP7C,UAAWm+I,SAxHDp9I,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA4HzCw8I,EAvCmB,CAwC1BxgI,aA1DiClf,EA4DO,CACxC8yI,MAAO,YACPzpB,KAAM,KACNjlH,MAAO,OACPoB,OAAQ,OACRm6I,aAAc,KACdE,UAAW,OACXv7I,MAAO,KACP7C,UAAW,OApEiBO,EA4DJ,kBA5DDd,EA4DTw+I,GA1DZp/I,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,+FAGA,SAAS4T,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASN,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASwb,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+nB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI+sI,EAA6B,SAAUjiI,GACzCpB,EAAUqjI,EAAejiI,GAEzB,IAAIC,EAASkL,EAAa82H,GAE1B,SAASA,IAGP,OAFA19I,EAAgB6B,KAAM67I,GAEfhiI,EAAOvQ,MAAMtJ,KAAM7C,WAG5B,OAAO0+I,EAXwB,CAY/B7gI,aAEFxK,EAAgBqrI,EAAe,eAAgB,CAC7C12B,KAAM,KACN22B,QAAS,KACT17I,MAAO,KACP7C,UAAW,OAGb,IAAIw+I,EAAwB,SAAUt2B,GACpCjtG,EAAUujI,EAAUt2B,GAEpB,IArHoBpnH,EAAaU,EAAYC,EAqHzC0mH,EAAU3gG,EAAag3H,GAE3B,SAASA,IAGP,OAFA59I,EAAgB6B,KAAM+7I,GAEfr2B,EAAQp8G,MAAMtJ,KAAM7C,WA2S7B,OAraoBkB,EA6HP09I,GA7HoBh9I,EA6HV,CAAC,CACtBjB,IAAK,qBACLhC,MAAO,WACL,IAAIyJ,EAAQvF,KAEPA,KAAKg8I,oBACRh8I,KAAKg8I,kBAAoB,SAAU3nI,GACjC,OAAO9O,EAAM8sI,SAASh+H,IAGxB3T,SAAS8M,iBAAiB,YAAaxN,KAAKg8I,oBAGzCh8I,KAAKi8I,kBACRj8I,KAAKi8I,gBAAkB,SAAU5nI,GAC/B9O,EAAM+sI,YAAYj+H,GAElB9O,EAAM22I,wBAGRx7I,SAAS8M,iBAAiB,UAAWxN,KAAKi8I,oBAG7C,CACDn+I,IAAK,iBACLhC,MAAO,SAAwBqgJ,EAAkBC,GAC/C,QAAIp8I,KAAKxB,MAAMgE,SAASxC,KAAKq8I,gBAAgB79I,OAASwB,KAAKxB,MAAMgE,SAASxC,KAAKq8I,gBAAgB79I,MAAMs9I,SAAW97I,KAAKxB,MAAMgE,SAASxC,KAAKq8I,gBAAgB79I,MAAMs9I,QAAUK,MAIrKn8I,KAAKxB,MAAMgE,SAASxC,KAAKq8I,eAAiB,GAAG79I,OAASwB,KAAKxB,MAAMgE,SAASxC,KAAKq8I,eAAiB,GAAG79I,MAAMs9I,SAAW97I,KAAKxB,MAAMgE,SAASxC,KAAKq8I,eAAiB,GAAG79I,MAAMs9I,QAAUM,KAMtL,CACDt+I,IAAK,uBACLhC,MAAO,WACDkE,KAAKg8I,oBACPt7I,SAAS+M,oBAAoB,YAAazN,KAAKg8I,mBAC/Ch8I,KAAKg8I,kBAAoB,MAGvBh8I,KAAKi8I,kBACPv7I,SAAS+M,oBAAoB,UAAWzN,KAAKi8I,iBAC7Cj8I,KAAKi8I,gBAAkB,QAG1B,CACDn+I,IAAK,QACLhC,MAAO,WACLkE,KAAKkxI,UAAW,EAChBlxI,KAAKmlH,KAAO,KACZnlH,KAAKs8I,SAAW,KAChBt8I,KAAKu8I,iBAAmB,KACxBv8I,KAAKw8I,iBAAmB,KACxBx8I,KAAKy8I,cAAgB,KACrBz8I,KAAK08I,cAAgB,KACrB18I,KAAK28I,cAAgB,KACrB38I,KAAKq8I,eAAiB,OAEvB,CACDv+I,IAAK,aACLhC,MAAO,WACL,OAA8B,MAAvBkE,KAAKxB,MAAMgoG,WAEnB,CACD1oG,IAAK,aACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAM6nG,cACjB,IAAK,QACH,OAAOzlG,OAAO0lG,aAEhB,IAAK,UACH,OAAO1lG,OAAO2lG,eAEhB,QACE,MAAM,IAAI78F,MAAM1J,KAAKxB,MAAM6nG,aAAe,+FAG/C,CACDvoG,IAAK,YACLhC,MAAO,WACLkE,KAAKqnG,aAAaC,QAAQtnG,KAAKxB,MAAMgoG,SAAUvuD,KAAKC,UAAUl4C,KAAK48I,eAEpE,CACD9+I,IAAK,eACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAGT2nG,EADU3nG,KAAKqnG,aACOO,QAAQ5nG,KAAKxB,MAAMgoG,UAE7C,QAAImB,IACF3nG,KAAK48I,WAAa3kG,KAAKxb,MAAMkrE,GAEd5a,EAAmB/sF,KAAK8J,UAAUtH,UAAUxE,QAAO,SAAU2wG,GAC1E,OAAO5uG,IAAW6uF,SAAS+f,EAAO,uBAG3Bz9F,SAAQ,SAAUy9F,EAAO/zG,GAChC+zG,EAAMvuG,MAAMy8I,UAAY,QAAUliI,EAAOiiI,WAAWhiJ,GAAK,QAAU+f,EAAOnc,MAAMgE,SAAS7H,OAAS,GAAKggB,EAAOnc,MAAMs+I,WAAa,UAE5H,KAKV,CACDh/I,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOgoD,GACnC,IAAI/hD,EAAuB,eAAfjG,EAAM7W,KAAwB6W,EAAM0oI,QAAQ,GAAGziI,MAAQjG,EAAMiG,MACrEC,EAAuB,eAAflG,EAAM7W,KAAwB6W,EAAM0oI,QAAQ,GAAGxiI,MAAQlG,EAAMkG,MACzEva,KAAK28I,cAAgBtoI,EAAMoG,cAC3Bza,KAAKmlH,KAA6B,eAAtBnlH,KAAKxB,MAAMw+I,OAA0Bj9I,IAAWqa,SAASpa,KAAK8J,WAAa/J,IAAWoa,UAAUna,KAAK8J,WACjH9J,KAAKkxI,UAAW,EAChBlxI,KAAKs8I,SAAiC,eAAtBt8I,KAAKxB,MAAMw+I,OAA0B1iI,EAAQC,EAC7Dva,KAAKu8I,iBAAmBv8I,KAAK28I,cAAcruD,uBAC3CtuF,KAAKw8I,iBAAmBx8I,KAAK28I,cAAc/oD,mBAC3C5zF,KAAKy8I,cAAgB,KAA6B,eAAtBz8I,KAAKxB,MAAMw+I,OAA0Bj9I,IAAWoE,cAAcnE,KAAKu8I,kBAAkB,GAAQx8I,IAAWyG,eAAexG,KAAKu8I,kBAAkB,IAASv8I,KAAKmlH,KACxLnlH,KAAK08I,cAAgB,KAA6B,eAAtB18I,KAAKxB,MAAMw+I,OAA0Bj9I,IAAWoE,cAAcnE,KAAKw8I,kBAAkB,GAAQz8I,IAAWyG,eAAexG,KAAKw8I,kBAAkB,IAASx8I,KAAKmlH,KACxLnlH,KAAKq8I,eAAiBhgF,EACtBt8D,IAAWya,SAASxa,KAAK28I,cAAe,8BACxC58I,IAAWya,SAASxa,KAAK8J,UAAW,yBAErC,CACDhM,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAI4oI,EACA3iI,EAAuB,cAAfjG,EAAM7W,KAAuB6W,EAAM0oI,QAAQ,GAAGziI,MAAQjG,EAAMiG,MACpEC,EAAuB,cAAflG,EAAM7W,KAAuB6W,EAAM0oI,QAAQ,GAAGxiI,MAAQlG,EAAMkG,MAChC0iI,EAAd,eAAtBj9I,KAAKxB,MAAMw+I,OAA0C,IAAR1iI,EAActa,KAAKmlH,KAAuB,IAAhBnlH,KAAKs8I,SAAiBt8I,KAAKmlH,KAA2B,IAAR5qG,EAAcva,KAAKmlH,KAAuB,IAAhBnlH,KAAKs8I,SAAiBt8I,KAAKmlH,KAC9K,IAAIg3B,EAAmBn8I,KAAKy8I,cAAgBQ,EACxCb,EAAmBp8I,KAAK08I,cAAgBO,EAExCj9I,KAAKk9I,eAAef,EAAkBC,KACxCp8I,KAAKu8I,iBAAiBn8I,MAAMy8I,UAAY,QAAUV,EAAmB,QAAUn8I,KAAKxB,MAAMgE,SAAS7H,OAAS,GAAKqF,KAAKxB,MAAMs+I,WAAa,MACzI98I,KAAKw8I,iBAAiBp8I,MAAMy8I,UAAY,QAAUT,EAAmB,QAAUp8I,KAAKxB,MAAMgE,SAAS7H,OAAS,GAAKqF,KAAKxB,MAAMs+I,WAAa,MACzI98I,KAAK48I,WAAW58I,KAAKq8I,gBAAkBF,EACvCn8I,KAAK48I,WAAW58I,KAAKq8I,eAAiB,GAAKD,KAG9C,CACDt+I,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKkmG,cACPlmG,KAAKysG,YAGHzsG,KAAKxB,MAAM8zI,aACbtyI,KAAKxB,MAAM8zI,YAAY,CACrB38H,cAAetB,EACf8oI,MAAOn9I,KAAK48I,aAIhB78I,IAAWma,YAAYla,KAAK28I,cAAe,8BAC3C58I,IAAWma,YAAYla,KAAK8J,UAAW,uBACvC9J,KAAK6X,UAEN,CACD/Z,IAAK,oBACLhC,MAAO,SAA2BuY,EAAOgoD,GACvCr8D,KAAK0wI,cAAcr8H,EAAOgoD,GAC1Br8D,KAAKo9I,uBAEN,CACDt/I,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOgoD,GACxCr8D,KAAK0wI,cAAcr8H,EAAOgoD,GAC1Br8D,KAAKq9I,wBAA0Br9I,KAAKs9I,kBAAkBvjI,KAAK/Z,MAC3DA,KAAKu9I,uBAAyBv9I,KAAKw9I,iBAAiBzjI,KAAK/Z,MACzDY,OAAO4M,iBAAiB,YAAaxN,KAAKq9I,wBAAyB,CACjEI,SAAS,EACTC,YAAY,IAEd98I,OAAO4M,iBAAiB,WAAYxN,KAAKu9I,0BAE1C,CACDz/I,IAAK,oBACLhC,MAAO,SAA2BuY,GAChCrU,KAAKqyI,SAASh+H,KAEf,CACDvW,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/BrU,KAAKsyI,YAAYj+H,GACjBzT,OAAO6M,oBAAoB,YAAazN,KAAKq9I,yBAC7Cz8I,OAAO6M,oBAAoB,WAAYzN,KAAKu9I,wBAC5Cv9I,KAAKq9I,wBAA0B,KAC/Br9I,KAAKu9I,uBAAyB,OAE/B,CACDz/I,IAAK,oBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAQb,GANIA,KAAK29I,cACH39I,KAAK29I,aAAaj7I,YAAc3C,IAAW+L,KAAK9L,KAAK29I,aAAc,gBACrE59I,IAAWya,SAASxa,KAAK29I,aAAc,2BAIvC39I,KAAKxB,MAAMgE,UAAYxC,KAAKxB,MAAMgE,SAAS7H,OAAQ,CACrD,IAAIijJ,GAAc,EAMlB,GAJI59I,KAAKkmG,eACP03C,EAAc59I,KAAKmmG,iBAGhBy3C,EAAa,CAChB,IAAIp7I,EAAWuqF,EAAmB/sF,KAAK8J,UAAUtH,UAAUxE,QAAO,SAAU2wG,GAC1E,OAAO5uG,IAAW6uF,SAAS+f,EAAO,uBAGhCkvC,EAAc,GAClB79I,KAAKxB,MAAMgE,SAAS7E,KAAI,SAAUmgJ,EAAOljJ,GACvC,IACImjJ,GADmBD,EAAMt/I,OAASs/I,EAAMt/I,MAAM2mH,KAAO24B,EAAMt/I,MAAM2mH,KAAO,OACxC,IAAMjkG,EAAO1iB,MAAMgE,SAAS7H,OAGhE,OAFAkjJ,EAAYjjJ,GAAKmjJ,EACjBv7I,EAAS5H,GAAGwF,MAAMy8I,UAAY,QAAUkB,EAAY,QAAU78H,EAAO1iB,MAAMgE,SAAS7H,OAAS,GAAKumB,EAAO1iB,MAAMs+I,WAAa,MACrHe,KAET79I,KAAK48I,WAAaiB,MAIvB,CACD//I,IAAK,cACLhC,MAAO,SAAqBgiJ,EAAOzhF,GACjC,IAAI16C,EAAS3hB,KAETw2G,EAAiBv5G,YAAW,mBAAoB6gJ,EAAMt/I,MAAMjB,WAC5DygJ,EAAoC,eAAtBh+I,KAAKxB,MAAMw+I,OAA0B,CACrD98I,MAAOF,KAAKxB,MAAMs+I,WAAa,MAC7B,CACFx7I,OAAQtB,KAAKxB,MAAMs+I,WAAa,MAE9BmB,EAAS5hF,IAAUr8D,KAAKxB,MAAMgE,SAAS7H,OAAS,GAAkBkgB,IAAM7P,cAAc,MAAO,CAC/F8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAOg7H,cAAgB18I,GAEhC1C,UAAW,oBACX6C,MAAO49I,EACPlkI,YAAa,SAAqBzF,GAChC,OAAOsN,EAAOu8H,kBAAkB7pI,EAAOgoD,IAEzC8hF,aAAc,SAAsB9pI,GAClC,OAAOsN,EAAOy8H,mBAAmB/pI,EAAOgoD,IAE1CgiF,YAAa,SAAqBhqI,GAChC,OAAOsN,EAAO27H,kBAAkBjpI,IAElCgiF,WAAY,SAAoBhiF,GAC9B,OAAOsN,EAAO67H,iBAAiBnpI,KAEnBwG,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,8BAEb,OAAoBsd,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,MAAO,CACpG8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAOg8H,aAAe19I,GAE/BnC,IAAKu+D,EACL9+D,UAAWi5G,EACXp2G,MAAO09I,EAAMt/I,MAAM4B,OAClB09I,EAAMt/I,MAAMgE,UAAWy7I,KAE3B,CACDngJ,IAAK,eACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,OAAO6a,IAAMs8E,SAASx5F,IAAIqC,KAAKxB,MAAMgE,UAAU,SAAUs7I,EAAOzhF,GAC9D,OAAO/5C,EAAOg8H,YAAYR,EAAOzhF,QAGpC,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAETzC,EAAYN,YAAW,qCAAqCc,OAAOiC,KAAKxB,MAAMw+I,QAASh9I,KAAKxB,MAAMjB,WAClGghJ,EAASv+I,KAAKw+I,eAClB,OAAoB3jI,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAO3Y,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjBm+I,QAhaSjgJ,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAmazC+8I,EAnTmB,CAoT1B/gI,aAEFxK,EAAgBurI,EAAU,eAAgB,CACxCj4H,GAAI,KACJvmB,UAAW,KACX6C,MAAO,KACP48I,OAAQ,aACRF,WAAY,EACZt2C,SAAU,KACVH,aAAc,UACdisC,YAAa,Q,6BChef,6DAGA,SAASn0I,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B2iJ,EAAqB,SAAU7kI,IAxEnC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUimI,EAAO7kI,GAEjB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa05H,GAE1B,SAASA,IAGP,OAFAtgJ,EAAgB6B,KAAMy+I,GAEf5kI,EAAOvQ,MAAMtJ,KAAM7C,WA8G5B,OA7MoBkB,EAkGPogJ,EAlGoB1/I,EAkGb,CAAC,CACnBjB,IAAK,YACLhC,MAAO,WACL,IAAIyJ,EAAQvF,KAEZ,8BAAwB+vD,MAAK,SAAU11D,GACjCkL,EAAMm5I,QACRn5I,EAAMm5I,MAAMhgI,UAEZnZ,EAAMm5I,MAAQ,MAGZrkJ,GAAUA,EAAOsxF,UACnBpmF,EAAMm5I,MAAQ,IAAIrkJ,EAAOsxF,QAAQpmF,EAAMo5I,OAAQ,CAC7CnhJ,KAAM+H,EAAM/G,MAAMhB,KAClBmR,KAAMpJ,EAAM/G,MAAMmQ,KAClB2C,QAAS/L,EAAM/G,MAAM8S,QACrBinD,QAAShzD,EAAM/G,MAAM+5D,gBAK5B,CACDz6D,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAK2+I,SAEb,CACD7gJ,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAK0+I,QAEb,CACD5gJ,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAK0+I,MAAME,kBAEnB,CACD9gJ,IAAK,iBACLhC,MAAO,WACDkE,KAAK0+I,OACP1+I,KAAK0+I,MAAMG,mBAGd,CACD/gJ,IAAK,UACLhC,MAAO,WACDkE,KAAK0+I,OACP1+I,KAAK0+I,MAAMz/H,WAGd,CACDnhB,IAAK,SACLhC,MAAO,WACLkE,KAAK8+I,cAEN,CACDhhJ,IAAK,wBACLhC,MAAO,SAA+BojD,GACpC,OAAIA,EAAUvwC,OAAS3O,KAAKxB,MAAMmQ,MAAQuwC,EAAU5tC,UAAYtR,KAAKxB,MAAM8S,SAAW4tC,EAAU1hD,OAASwC,KAAKxB,MAAMhB,OAMrH,CACDM,IAAK,oBACLhC,MAAO,WACLkE,KAAK8+I,cAEN,CACDhhJ,IAAK,qBACLhC,MAAO,WACLkE,KAAK++I,WAEN,CACDjhJ,IAAK,uBACLhC,MAAO,WACDkE,KAAK0+I,QACP1+I,KAAK0+I,MAAMhgI,UACX1e,KAAK0+I,MAAQ,QAGhB,CACD5gJ,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,UAAW+C,KAAKxB,MAAMjB,WAC7C6C,EAAQhE,OAAOg8E,OAAO,CACxBl4E,MAAOF,KAAKxB,MAAM0B,MAClBoB,OAAQtB,KAAKxB,MAAM8C,QAClBtB,KAAKxB,MAAM4B,OACd,OAAoBya,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACf1jB,MAAOA,EACP7C,UAAWA,GACGsd,IAAM7P,cAAc,SAAU,CAC5C8P,IAAK,SAAa7a,GAChB0a,EAAOgkI,OAAS1+I,GAElBC,MAAOF,KAAKxB,MAAM0B,MAClBoB,OAAQtB,KAAKxB,MAAM8C,aAvMrBvC,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA2MzCy/I,EAtHgB,CAuHvBzjI,aAzIiClf,EA2II,CACrCgoB,GAAI,KACJtmB,KAAM,KACNmR,KAAM,KACN2C,QAAS,KACTinD,QAAS,KACTr4D,MAAO,KACPoB,OAAQ,KACRlB,MAAO,KACP7C,UAAW,OApJiBO,EA2IP,kBA3IEd,EA2ITyhJ,GAzIZriJ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,gBChGf,IAAIkjJ,EAAgBzkJ,EAAQ,KACxB0kJ,EAAyB1kJ,EAAQ,KAErCF,EAAOC,QAAU,SAAU6E,GACzB,OAAO6/I,EAAcC,EAAuB9/I,M,gBCL9C,IAAIgiH,EAAS5mH,EAAQ,IACjBs0I,EAAat0I,EAAQ,IAErB2kJ,EAAY,SAAU3+B,GACxB,OAAOsuB,EAAWtuB,GAAYA,OAAW96G,GAG3CpL,EAAOC,QAAU,SAAU6kJ,EAAWjvF,GACpC,OAAO/yD,UAAUxC,OAAS,EAAIukJ,EAAU/9B,EAAOg+B,IAAch+B,EAAOg+B,IAAch+B,EAAOg+B,GAAWjvF,K,gBCRtG,IAAI+uF,EAAyB1kJ,EAAQ,KAIrCF,EAAOC,QAAU,SAAUimH,GACzB,OAAOnkH,OAAO6iJ,EAAuB1+B,M,6BCLvC,8CACe,SAAS5wG,EAA4B1T,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGC,GACtD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAW,YAAiBF,EAAGC,QAAxG,K,6BCPF,6EAuCA,SAASwT,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAgBT,SAASE,EAAeN,EAAKG,GAC3B,OA1DF,SAAyBH,GACvB,GAAIK,MAAME,QAAQP,GAAM,OAAOA,EAyDxBQ,CAAgBR,IAtDzB,SAA+BA,EAAKG,GAClC,IAAIM,EAAKT,IAA0B,qBAAXU,QAA0BV,EAAIU,OAAOC,WAAaX,EAAI,eAE9E,GAAU,MAANS,EAAJ,CACA,IAIIG,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKP,EAAKA,EAAGQ,KAAKjB,KAAQe,GAAMH,EAAKH,EAAGS,QAAQC,QAC9CL,EAAKM,KAAKR,EAAGS,QAETlB,GAAKW,EAAKZ,SAAWC,GAH4BY,GAAK,IAK5D,MAAOO,GACPN,GAAK,EACLH,EAAKS,EARP,QAUE,IACOP,GAAsB,MAAhBN,EAAE,QAAoBA,EAAE,SADrC,QAGE,GAAIO,EAAI,MAAMH,GAIlB,OAAOC,GA2BwBS,CAAsBvB,EAAKG,IAd5D,SAAqCqB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQgEyT,CAA4BlV,EAAKG,IALnG,WACE,MAAM,IAAIiC,UAAU,6IAImFC,GAGzG,SAASC,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAASmB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAASE,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASg5F,EAAeh9E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Py2F,GAA+B,OAAO,WAAkC,IAAsCnnF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIswI,EAA6B,SAAUxlI,GACzCpB,EAAU4mI,EAAexlI,GAEzB,IAAIC,EAASm8E,EAAeopD,GAE5B,SAASA,IAGP,OAFAjhJ,EAAgB6B,KAAMo/I,GAEfvlI,EAAOvQ,MAAMtJ,KAAM7C,WAmC5B,OAhCA2B,EAAasgJ,EAAe,CAAC,CAC3BthJ,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,+CAAgD,CACzE,aAAc+C,KAAKxB,MAAMihB,WAEvB0xE,EAAgB,2CAChB5uF,EAAuBsY,IAAM7P,cAAc,SAAU,CACvDxN,KAAM,SACND,UAAWA,EACXyiE,QAAShgE,KAAKxB,MAAMwhE,QACpBvgD,SAAUzf,KAAKxB,MAAMihB,UACP5E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAE7C,GAAI3Z,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBv6E,QAAShgE,KAAKxB,MAAMwhE,QACpBziE,UAAWA,EACX4zF,cAAeA,EACf1xE,SAAUzf,KAAKxB,MAAMihB,SACrBld,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJ68I,EA3CwB,CA4C/BpkI,aAQF,SAASm9E,EAAen/E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P44F,GAA+B,OAAO,WAAkC,IAAsCtpF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IANha0B,EAAgB4uI,EAAe,eAAgB,CAC7C3/H,UAAU,EACVugD,QAAS,KACTipC,SAAU,OAMZ,IAAIo2C,EAA4B,SAAUzlI,GACxCpB,EAAU6mI,EAAczlI,GAExB,IAAIC,EAASs+E,EAAeknD,GAE5B,SAASA,IAGP,OAFAlhJ,EAAgB6B,KAAMq/I,GAEfxlI,EAAOvQ,MAAMtJ,KAAM7C,WAmC5B,OAhCA2B,EAAaugJ,EAAc,CAAC,CAC1BvhJ,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,8CAA+C,CACxE,aAAc+C,KAAKxB,MAAMihB,WAEvB0xE,EAAgB,qCAChB5uF,EAAuBsY,IAAM7P,cAAc,SAAU,CACvDxN,KAAM,SACND,UAAWA,EACXyiE,QAAShgE,KAAKxB,MAAMwhE,QACpBvgD,SAAUzf,KAAKxB,MAAMihB,UACP5E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAE7C,GAAI3Z,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBv6E,QAAShgE,KAAKxB,MAAMwhE,QACpBziE,UAAWA,EACX4zF,cAAeA,EACf1xE,SAAUzf,KAAKxB,MAAMihB,SACrBld,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJ88I,EA3CuB,CA4C9BrkI,aAQF,SAASu9E,EAAev/E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pg5F,GAA+B,OAAO,WAAkC,IAAsC1pF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IANha0B,EAAgB6uI,EAAc,eAAgB,CAC5C5/H,UAAU,EACVugD,QAAS,KACTipC,SAAU,OAMZ,IAAIq2C,EAA4B,SAAU1lI,GACxCpB,EAAU8mI,EAAc1lI,GAExB,IAAIC,EAAS0+E,EAAe+mD,GAE5B,SAASA,IAGP,OAFAnhJ,EAAgB6B,KAAMs/I,GAEfzlI,EAAOvQ,MAAMtJ,KAAM7C,WAmC5B,OAhCA2B,EAAawgJ,EAAc,CAAC,CAC1BxhJ,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,8CAA+C,CACxE,aAAc+C,KAAKxB,MAAMihB,WAEvB0xE,EAAgB,oCAChB5uF,EAAuBsY,IAAM7P,cAAc,SAAU,CACvDxN,KAAM,SACND,UAAWA,EACXyiE,QAAShgE,KAAKxB,MAAMwhE,QACpBvgD,SAAUzf,KAAKxB,MAAMihB,UACP5E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAE7C,GAAI3Z,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBv6E,QAAShgE,KAAKxB,MAAMwhE,QACpBziE,UAAWA,EACX4zF,cAAeA,EACf1xE,SAAUzf,KAAKxB,MAAMihB,SACrBld,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJ+8I,EA3CuB,CA4C9BtkI,aAQF,SAASkmF,EAAeloF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P2hG,GAA+B,OAAO,WAAkC,IAAsCryF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IANha0B,EAAgB8uI,EAAc,eAAgB,CAC5C7/H,UAAU,EACVugD,QAAS,KACTipC,SAAU,OAMZ,IAAIs2C,EAA4B,SAAU3lI,GACxCpB,EAAU+mI,EAAc3lI,GAExB,IAAIC,EAASqnF,EAAeq+C,GAE5B,SAASA,IAGP,OAFAphJ,EAAgB6B,KAAMu/I,GAEf1lI,EAAOvQ,MAAMtJ,KAAM7C,WAmC5B,OAhCA2B,EAAaygJ,EAAc,CAAC,CAC1BzhJ,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,8CAA+C,CACxE,aAAc+C,KAAKxB,MAAMihB,WAEvB0xE,EAAgB,4CAChB5uF,EAAuBsY,IAAM7P,cAAc,SAAU,CACvDxN,KAAM,SACND,UAAWA,EACXyiE,QAAShgE,KAAKxB,MAAMwhE,QACpBvgD,SAAUzf,KAAKxB,MAAMihB,UACP5E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAE7C,GAAI3Z,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBv6E,QAAShgE,KAAKxB,MAAMwhE,QACpBziE,UAAWA,EACX4zF,cAAeA,EACf1xE,SAAUzf,KAAKxB,MAAMihB,SACrBld,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJg9I,EA3CuB,CA4C9BvkI,aAQF,SAASqmF,EAAeroF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P8hG,GAA+B,OAAO,WAAkC,IAAsCxyF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IANha0B,EAAgB+uI,EAAc,eAAgB,CAC5C9/H,UAAU,EACVugD,QAAS,KACTipC,SAAU,OAMZ,IAAIu2C,EAAyB,SAAU5lI,GACrCpB,EAAUgnI,EAAW5lI,GAErB,IAAIC,EAASwnF,EAAem+C,GAE5B,SAASA,IAGP,OAFArhJ,EAAgB6B,KAAMw/I,GAEf3lI,EAAOvQ,MAAMtJ,KAAM7C,WAsE5B,OAnEA2B,EAAa0gJ,EAAW,CAAC,CACvB1hJ,IAAK,kBACLhC,MAAO,SAAyBuY,EAAOorI,GACjCz/I,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfvY,MAAO2jJ,IAIXprI,EAAMY,mBAEP,CACDnX,IAAK,SACLhC,MAAO,WACL,IAEI4jJ,EAFAn6I,EAAQvF,KAIZ,GAAIA,KAAKxB,MAAM1C,MAAO,CACpB,IAAI6jJ,EAAkB3/I,KAAKxB,MAAM1C,MAAM,GACnC8jJ,EAAgB5/I,KAAKxB,MAAM1C,MAAMkE,KAAKxB,MAAM1C,MAAMnB,OAAS,GAC/D+kJ,EAAW1/I,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAU8hJ,EAAU7kJ,GAClD,IAAI2C,EAAYN,YAAW,8CAA+C,CACxE,yBAA0BwiJ,IAAaE,EACvC,uBAAwBF,IAAaG,EACrC,cAAeH,EAAW,IAAMl6I,EAAM/G,MAAM4wF,OAE1C7sF,EAAuBsY,IAAM7P,cAAc,SAAU,CACvDxN,KAAM,SACND,UAAWA,EACXyiE,QAAS,SAAiBxgE,GACxB,OAAO+F,EAAMs6I,gBAAgBrgJ,EAAGigJ,KAEjCA,EAAuB5kI,IAAM7P,cAAc2O,IAAQ,OAEtD,GAAIpU,EAAM/G,MAAMyqG,SAAU,CACxB,IAAIsxC,EAAiB,CACnBv6E,QAAS,SAAiBxgE,GACxB,OAAO+F,EAAMs6I,gBAAgBrgJ,EAAGigJ,IAElCliJ,UAAWA,EACXsoC,KAAM,CACJi6G,UAAWH,EAAkB,EAC7BI,QAASH,EAAgB,GAE3BxwD,KAAMqwD,EAAW,EACjBO,YAAaz6I,EAAM/G,MAAM4wF,KACzB6wD,WAAY16I,EAAM/G,MAAMywF,UACxB1sF,QAASA,EACT/D,MAAO+G,EAAM/G,OAEf+D,EAAUoL,IAAY8rE,cAAcl0E,EAAM/G,MAAMyqG,SAAUsxC,GAG5D,OAAoB1/H,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAK2hJ,GACJl9I,MAIP,OAAoBsY,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,qBACVmiJ,OAIAF,EA9EoB,CA+E3BxkI,aAWF,SAASjC,EAAeC,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pga,GAA+B,OAAO,WAAkC,IAAsC1K,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IATha0B,EAAgBgvI,EAAW,eAAgB,CACzC1jJ,MAAO,KACPszF,KAAM,KACNxnB,KAAM,KACNqnB,UAAW,KACXixD,MAAO,KACPj3C,SAAU,OAMZ,IAAIk3C,EAAmC,SAAUvmI,GAC/CpB,EAAU2nI,EAAqBvmI,GAE/B,IAAIC,EAASd,EAAeonI,GAE5B,SAASA,IAGP,OAFAhiJ,EAAgB6B,KAAMmgJ,GAEftmI,EAAOvQ,MAAMtJ,KAAM7C,WA8C5B,OA3CA2B,EAAaqhJ,EAAqB,CAAC,CACjCriJ,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQ3W,OAAS,IAE1D,CACDmD,IAAK,SACLhC,MAAO,WACL,IAAIskJ,EAAapgJ,KAAKogJ,aAClB9uI,EAAU8uI,EAAapgJ,KAAKxB,MAAM8S,QAAQ3T,KAAI,SAAUg8G,GAC1D,MAAO,CACLpgC,MAAOlpE,OAAOspG,GACd79G,MAAO69G,MAEN,GACDp3G,EAAU69I,EAA0BvlI,IAAM7P,cAAc+rG,IAAU,CACpEj7G,MAAOkE,KAAKxB,MAAM1C,MAClBwV,QAASA,EACTiB,SAAUvS,KAAKxB,MAAM+T,SACrBvO,SAAUhE,KAAKxB,MAAMwF,SACrByb,SAAUzf,KAAKxB,MAAMihB,WAClB,KAEL,GAAIzf,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBz+I,MAAOkE,KAAKxB,MAAM1C,MAClBwV,QAASA,EACTiB,SAAUvS,KAAKxB,MAAM+T,SACrBvO,SAAUhE,KAAKxB,MAAMwF,SACrBg8I,YAAahgJ,KAAKxB,MAAM4wF,KACxB6wD,WAAYjgJ,KAAKxB,MAAMywF,UACvBf,aAAcluF,KAAKxB,MAAM0vF,aACzBzuE,SAAUzf,KAAKxB,MAAMihB,SACrBld,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJ49I,EAtD8B,CAuDrCnlI,aAcF,SAAS6J,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASke,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAhBha0B,EAAgB2vI,EAAqB,eAAgB,CACnD7uI,QAAS,KACTxV,MAAO,KACPszF,KAAM,KACNH,UAAW,KACXf,aAAc,EACdlqF,SAAU,KACVuO,SAAU,KACV02F,SAAU,KACVxpF,UAAU,IAUZ,IAAI4gI,EAAiC,SAAUzmI,GAC7CpB,EAAU6nI,EAAmBzmI,GAE7B,IAAIC,EAAS4C,EAAe4jI,GAE5B,SAASA,IAGP,OAFAliJ,EAAgB6B,KAAMqgJ,GAEfxmI,EAAOvQ,MAAMtJ,KAAM7C,WAiC5B,OA9BA2B,EAAauhJ,EAAmB,CAAC,CAC/BviJ,IAAK,SACLhC,MAAO,WACL,IAAIwkJ,EAAS,CACXN,YAAahgJ,KAAKxB,MAAM4wF,KAAO,EAC/B6wD,WAAYjgJ,KAAKxB,MAAMywF,UACvBt8E,MAAOvN,KAAKs6B,IAAI1/B,KAAKxB,MAAMmU,MAAQ,EAAG3S,KAAKxB,MAAM0vF,cACjD1lF,KAAMpD,KAAKs6B,IAAI1/B,KAAKxB,MAAMmU,MAAQ3S,KAAKxB,MAAMopE,KAAM5nE,KAAKxB,MAAM0vF,cAC9DtmB,KAAM5nE,KAAKxB,MAAMopE,KACjBsmB,aAAcluF,KAAKxB,MAAM0vF,cAEvBlhF,EAAOhN,KAAKxB,MAAM+hJ,eAAep9I,QAAQ,gBAAiBm9I,EAAON,aAAa78I,QAAQ,eAAgBm9I,EAAOL,YAAY98I,QAAQ,UAAWm9I,EAAO3tI,OAAOxP,QAAQ,SAAUm9I,EAAO93I,MAAMrF,QAAQ,SAAUm9I,EAAO14E,MAAMzkE,QAAQ,iBAAkBm9I,EAAOpyD,cACzP3rF,EAAuBsY,IAAM7P,cAAc,OAAQ,CACrDzN,UAAW,uBACVyP,GAEH,GAAIhN,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiBz1H,EAAcA,EAAc,GAAIw7H,GAAS,CAC5D/iJ,UAAW,sBACXgF,QAASA,EACT/D,MAAOwB,KAAKxB,QAGd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJ89I,EAzC4B,CA0CnCrlI,aAYF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAVha0B,EAAgB6vI,EAAmB,eAAgB,CACjDpxD,UAAW,KACXG,KAAM,KACNz8E,MAAO,KACPi1D,KAAM,KACNsmB,aAAc,KACdqyD,eAAgB,kCAChBt3C,SAAU,OAMZ,IAAIu3C,EAA+B,SAAU5mI,GAC3CpB,EAAUgoI,EAAiB5mI,GAE3B,IAAIC,EAASgE,EAAe2iI,GAE5B,SAASA,EAAgBhiJ,GACvB,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAMwgJ,IAEtBj7I,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB+T,SAAWhN,EAAMgN,SAASwH,KAAK7B,EAAuB3S,IACrDA,EAqCT,OAlCAzG,EAAa0hJ,EAAiB,CAAC,CAC7B1iJ,IAAK,WACLhC,MAAO,SAAkBuY,GACnBrU,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAASvS,KAAKxB,MAAMopE,MAAQvzD,EAAMvY,MAAQ,GAAIkE,KAAKxB,MAAMopE,QAGvE,CACD9pE,IAAK,SACLhC,MAAO,WACL,IAAIA,EAAQkE,KAAKxB,MAAMywF,UAAY,EAAIjvF,KAAKxB,MAAM4wF,KAAO,EAAI,EACzD7sF,EAAuBsY,IAAM7P,cAAcgoH,IAAa,CAC1Dl3H,MAAOA,EACPyW,SAAUvS,KAAKuS,SACfhV,UAAW,yBACXkiB,SAAUzf,KAAKxB,MAAMihB,WAGvB,GAAIzf,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBz+I,MAAOA,EACPyW,SAAUvS,KAAKuS,SACfkN,SAAUzf,KAAKxB,MAAMihB,SACrBliB,UAAW,yBACXgF,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJi+I,EAjD0B,CAkDjCxlI,aAWF,SAAS+J,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAT5Z0B,EAAgBgwI,EAAiB,eAAgB,CAC/CpxD,KAAM,KACNxnB,KAAM,KACNqnB,UAAW,KACXxvE,UAAU,EACVwpF,SAAU,KACV12F,SAAU,OAMZ,IAAIw2F,EAAyB,SAAUnvF,GACrCpB,EAAUuwF,EAAWnvF,GAErB,IAAIC,EAASkL,EAAagkF,GAE1B,SAASA,EAAUvqG,GACjB,IAAI+G,EAYJ,OAVApH,EAAgB6B,KAAM+oG,IAEtBxjG,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBiiJ,kBAAoBl7I,EAAMk7I,kBAAkB1mI,KAAK7B,EAAuB3S,IAC9EA,EAAMm7I,iBAAmBn7I,EAAMm7I,iBAAiB3mI,KAAK7B,EAAuB3S,IAC5EA,EAAMo7I,iBAAmBp7I,EAAMo7I,iBAAiB5mI,KAAK7B,EAAuB3S,IAC5EA,EAAMq7I,iBAAmBr7I,EAAMq7I,iBAAiB7mI,KAAK7B,EAAuB3S,IAC5EA,EAAMs7I,aAAet7I,EAAMs7I,aAAa9mI,KAAK7B,EAAuB3S,IACpEA,EAAMu7I,WAAav7I,EAAMu7I,WAAW/mI,KAAK7B,EAAuB3S,IAChEA,EAAMs6I,gBAAkBt6I,EAAMs6I,gBAAgB9lI,KAAK7B,EAAuB3S,IACnEA,EAmRT,OAhRAzG,EAAaiqG,EAAW,CAAC,CACvBjrG,IAAK,cACLhC,MAAO,WACL,OAA0B,IAAnBkE,KAAK+gJ,YAEb,CACDjjJ,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAK+gJ,YAAc/gJ,KAAKghJ,eAAiB,IAEjD,CACDljJ,IAAK,eACLhC,MAAO,WACL,OAAOsJ,KAAK8hE,KAAKlnE,KAAKxB,MAAM0vF,aAAeluF,KAAKxB,MAAMopE,QAEvD,CACD9pE,IAAK,8BACLhC,MAAO,WACL,IAAImlJ,EAAgBjhJ,KAAKghJ,eACrBE,EAAe97I,KAAKs6B,IAAI1/B,KAAKxB,MAAMwqG,aAAci4C,GAEjDrrI,EAAQxQ,KAAKC,IAAI,EAAGD,KAAK8hE,KAAKlnE,KAAK+gJ,UAAYG,EAAe,IAC9DpuI,EAAM1N,KAAKs6B,IAAIuhH,EAAgB,EAAGrrI,EAAQsrI,EAAe,GAEzD/1G,EAAQnrC,KAAKxB,MAAMwqG,cAAgBl2F,EAAM8C,EAAQ,GAErD,MAAO,CADPA,EAAQxQ,KAAKC,IAAI,EAAGuQ,EAAQu1B,GACbr4B,KAEhB,CACDhV,IAAK,kBACLhC,MAAO,WAML,IALA,IAAIqlJ,EAAY,GACZC,EAAaphJ,KAAKqhJ,8BAClBzrI,EAAQwrI,EAAW,GACnBtuI,EAAMsuI,EAAW,GAEZxmJ,EAAIgb,EAAOhb,GAAKkY,EAAKlY,IAC5BumJ,EAAUtlJ,KAAKjB,EAAI,GAGrB,OAAOumJ,IAER,CACDrjJ,IAAK,aACLhC,MAAO,SAAoB6W,EAAOi1D,GAChC,IAAI05E,EAAKthJ,KAAKghJ,eACV7rI,EAAI/P,KAAKsmB,MAAM/Y,EAAQi1D,GAE3B,GAAIzyD,GAAK,GAAKA,EAAImsI,EAAI,CACpB,IAAIC,EAAe,CACjB5uI,MAAOA,EACPi1D,KAAMA,EACNwnB,KAAMj6E,EACN85E,UAAWqyD,GAGTthJ,KAAKxB,MAAM4nG,cACbpmG,KAAKxB,MAAM4nG,aAAam7C,MAI7B,CACDzjJ,IAAK,UACLhC,MAAO,WACL,OAAOsJ,KAAKsmB,MAAM1rB,KAAKxB,MAAMmU,MAAQ3S,KAAKxB,MAAMopE,QAEjD,CACD9pE,IAAK,QACLhC,MAAO,WAEL,OAAqB,IADLkE,KAAKghJ,iBAGtB,CACDljJ,IAAK,oBACLhC,MAAO,SAA2BuY,GAChCrU,KAAK8gJ,WAAW,EAAG9gJ,KAAKxB,MAAMopE,MAC9BvzD,EAAMY,mBAEP,CACDnX,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/BrU,KAAK8gJ,WAAW9gJ,KAAKxB,MAAMmU,MAAQ3S,KAAKxB,MAAMopE,KAAM5nE,KAAKxB,MAAMopE,MAC/DvzD,EAAMY,mBAEP,CACDnX,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9BrU,KAAK8gJ,YAAYzsI,EAAMvY,MAAQ,GAAKkE,KAAKxB,MAAMopE,KAAM5nE,KAAKxB,MAAMopE,QAEjE,CACD9pE,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/BrU,KAAK8gJ,WAAW9gJ,KAAKxB,MAAMmU,MAAQ3S,KAAKxB,MAAMopE,KAAM5nE,KAAKxB,MAAMopE,MAC/DvzD,EAAMY,mBAEP,CACDnX,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/BrU,KAAK8gJ,YAAY9gJ,KAAKghJ,eAAiB,GAAKhhJ,KAAKxB,MAAMopE,KAAM5nE,KAAKxB,MAAMopE,MACxEvzD,EAAMY,mBAEP,CACDnX,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAIuzD,EAAOvzD,EAAMvY,MACjBkE,KAAKwhJ,aAAe55E,IAAS5nE,KAAKxB,MAAMopE,KACxC5nE,KAAK8gJ,WAAW,EAAGl5E,KAEpB,CACD9pE,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GACxCzjB,KAAKxB,MAAMopE,OAASpkD,EAAUokD,MAAS5nE,KAAKwhJ,aAErCxhJ,KAAK+gJ,UAAY,GAAKv9H,EAAU0qE,eAAiBluF,KAAKxB,MAAM0vF,cAAgBluF,KAAKxB,MAAMmU,OAAS3S,KAAKxB,MAAM0vF,cACpHluF,KAAK8gJ,YAAY9gJ,KAAKghJ,eAAiB,GAAKhhJ,KAAKxB,MAAMopE,KAAM5nE,KAAKxB,MAAMopE,MAFxE5nE,KAAK8gJ,WAAW,EAAG9gJ,KAAKxB,MAAMopE,MAKhC5nE,KAAKwhJ,cAAe,IAErB,CACD1jJ,IAAK,gBACLhC,MAAO,SAAuBgC,EAAKmrG,GACjC,IAAI1mG,EAEJ,OAAQzE,GACN,IAAK,gBACHyE,EAAuBsY,IAAM7P,cAAco0I,EAAe,CACxDthJ,IAAKA,EACLkiE,QAAShgE,KAAKygJ,kBACdhhI,SAAUzf,KAAKyhJ,eAAiBzhJ,KAAKwK,QACrCy+F,SAAUA,IAEZ,MAEF,IAAK,eACH1mG,EAAuBsY,IAAM7P,cAAcs0I,EAAc,CACvDxhJ,IAAKA,EACLkiE,QAAShgE,KAAK0gJ,iBACdjhI,SAAUzf,KAAKyhJ,eAAiBzhJ,KAAKwK,QACrCy+F,SAAUA,IAEZ,MAEF,IAAK,eACH1mG,EAAuBsY,IAAM7P,cAAcq0I,EAAc,CACvDvhJ,IAAKA,EACLkiE,QAAShgE,KAAK2gJ,iBACdlhI,SAAUzf,KAAK0hJ,cAAgB1hJ,KAAKwK,QACpCy+F,SAAUA,IAEZ,MAEF,IAAK,eACH1mG,EAAuBsY,IAAM7P,cAAcu0I,EAAc,CACvDzhJ,IAAKA,EACLkiE,QAAShgE,KAAK4gJ,iBACdnhI,SAAUzf,KAAK0hJ,cAAgB1hJ,KAAKwK,QACpCy+F,SAAUA,IAEZ,MAEF,IAAK,YACH1mG,EAAuBsY,IAAM7P,cAAcw0I,EAAW,CACpD1hJ,IAAKA,EACLhC,MAAOkE,KAAK2hJ,kBACZvyD,KAAMpvF,KAAK+gJ,UACXn5E,KAAM5nE,KAAKxB,MAAMopE,KACjBqnB,UAAWjvF,KAAKghJ,eAChBhhF,QAAShgE,KAAK6/I,gBACd52C,SAAUA,IAEZ,MAEF,IAAK,sBACH1mG,EAAuBsY,IAAM7P,cAAcm1I,EAAqB,CAC9DriJ,IAAKA,EACLhC,MAAOkE,KAAKxB,MAAMopE,KAClBwnB,KAAMpvF,KAAK+gJ,UACX9xD,UAAWjvF,KAAKghJ,eAChB9yD,aAAcluF,KAAKxB,MAAM0vF,aACzB58E,QAAStR,KAAKxB,MAAM2qG,mBACpB52F,SAAUvS,KAAK6gJ,aACf78I,SAAUhE,KAAKxB,MAAMmrG,iBACrBV,SAAUA,EACVxpF,SAAUzf,KAAKwK,UAEjB,MAEF,IAAK,oBACHjI,EAAuBsY,IAAM7P,cAAcq1I,EAAmB,CAC5DE,eAAgBvgJ,KAAKxB,MAAM4qG,0BAC3BtrG,IAAKA,EACLsxF,KAAMpvF,KAAK+gJ,UACX9xD,UAAWjvF,KAAKghJ,eAChBruI,MAAO3S,KAAKxB,MAAMmU,MAClBi1D,KAAM5nE,KAAKxB,MAAMopE,KACjBsmB,aAAcluF,KAAKxB,MAAM0vF,aACzB+a,SAAUA,IAEZ,MAEF,IAAK,kBACH1mG,EAAuBsY,IAAM7P,cAAcw1I,EAAiB,CAC1D1iJ,IAAKA,EACL8pE,KAAM5nE,KAAKxB,MAAMopE,KACjBwnB,KAAMpvF,KAAK+gJ,UACX9xD,UAAWjvF,KAAKghJ,eAChBzuI,SAAUvS,KAAK8gJ,WACfrhI,SAAUzf,KAAKwK,QACfy+F,SAAUA,IAEZ,MAEF,QACE1mG,EAAU,KAId,OAAOA,IAER,CACDzE,IAAK,iBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETipG,EAAWjpG,KAAKxB,MAAMyqG,SAE1B,OAAIA,EACwB,WAAtBlsG,EAAQksG,GACHA,EAAS+zC,OAAS/zC,EAAS+zC,OAAOj6I,MAAM,KAAKpF,KAAI,SAAU7B,GAChE,IAAIgC,EAAMhC,EAAMwU,OAChB,OAAOqK,EAAOqJ,cAAclmB,EAAKmrG,EAASnrG,OACvC1B,OAAOsB,QAAQurG,GAAUtrG,KAAI,SAAUC,GAC1C,IAAIC,EAAQ9C,EAAe6C,EAAM,GAC7BE,EAAMD,EAAM,GACZ+jJ,EAAY/jJ,EAAM,GAEtB,OAAO8c,EAAOqJ,cAAclmB,EAAK8jJ,MAI9B34C,EAASlmG,MAAM,KAAKpF,KAAI,SAAU7B,GACvC,OAAO6e,EAAOqJ,cAAcloB,EAAMwU,WAI/B,OAER,CACDxS,IAAK,SACLhC,MAAO,WACL,GAAKkE,KAAKxB,MAAMirG,YAAsC,IAAxBzpG,KAAKghJ,eAE5B,CACL,IAAIzjJ,EAAYN,YAAW,0BAA2B+C,KAAKxB,MAAMjB,WAC7D8rG,EAAc17F,IAAY8rE,cAAcz5E,KAAKxB,MAAM6qG,YAAarpG,KAAKxB,OACrE+qG,EAAe57F,IAAY8rE,cAAcz5E,KAAKxB,MAAM+qG,aAAcvpG,KAAKxB,OACvEkhJ,EAAW1/I,KAAK6hJ,iBAChBC,EAAcz4C,GAA4BxuF,IAAM7P,cAAc,MAAO,CACvEzN,UAAW,4BACV8rG,GACC04C,EAAex4C,GAA6B1uF,IAAM7P,cAAc,MAAO,CACzEzN,UAAW,6BACVgsG,GACH,OAAoB1uF,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB0hJ,EAAapC,EAAUqC,GAf1B,OAAO,SAoBNh5C,EArSoB,CAsS3B/tF,aAEFxK,EAAgBu4F,EAAW,eAAgB,CACzC7a,aAAc,EACdtmB,KAAM,EACNj1D,MAAO,EACPq2F,aAAc,EACdG,mBAAoB,KACpBM,YAAY,EACZrpG,MAAO,KACP7C,UAAW,KACX0rG,SAAU,qFACV7C,aAAc,KACdiD,YAAa,KACbE,aAAc,KACdI,iBAAkB,KAClBP,0BAA2B,qC,sGCt8B7B,2D,OACY,EAAA44C,YAA+C,e,EAkH3D,OAnH0D,iBAGxD,YAAAC,mBAAA,SACEC,EACAC,GAEI,IAAE3jJ,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAChBqwE,EAAsC,GACtCd,EAAoB,aAAqBnpD,EAAQ9U,SAsBrD,OApBI4wI,GACF7xE,EAASx0E,KAAK,CACZ2B,KAAM,SACNM,IAAK,SACLwnE,SAAUiK,EACV2B,MAAO,CACL/sB,MAAOnkD,KAAKgiJ,YACZxwE,eAAgB,gBAChBG,WAAYuwE,KAKlB7xE,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,OACLgjE,QAAQ,EACRoQ,MAAO,CAAElyD,QAASmjI,KAIlB,aAAC,IAAQ,CAAC1jG,SAAUr4B,EAAQq4B,WACzB,SAACwF,EAAWhnD,GAAe,OAC1B,oBAAK6d,IAAKmpC,EAAW1mD,UAAW,CAAC,cAAcQ,OAAOd,GAAYiB,KAAK,MACrE,aAAC,IAAgB,CACf4iE,QAAStiE,EAAM0kE,eAAiB1kE,EAAM2kE,SACtCqN,iBAAkBhyE,EAAM2kE,SACxB0L,KAAM,GACNwB,SAAUA,SAQtB,YAAA+xE,oBAAA,SACEF,EACAC,EACAt9E,EACAw9E,GAEA,IAAIC,EAAatiJ,KAAKomB,QAAQyI,YAAY6yB,eAE1C,IAAK4gG,EACH,MAAM,IAAI54I,MAAM,gCAGd,IAAElL,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAChBuvE,GAAqB/wE,EAAM2kE,UAAY,aAAqB/8C,EAAQ9U,SACpEm+D,GAAyBjxE,EAAM2kE,UAAY,aAAyB/8C,EAAQ9U,SAC5E++D,EAAsC,GAsC1C,OApCI6xE,GACF7xE,EAASx0E,KAAK,CACZ2B,KAAM,SACNM,IAAK,SACLwnE,SAAUiK,EACVgzE,OAAQ,CAAC,CACPzkJ,IAAK,OACLqmD,MAAOnkD,KAAKgiJ,YACZxwE,eAAgB,gBAChBG,WAAYuwE,MAKlB7xE,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,OACLgjE,QAAQ,EACRyhF,OAAQ,CAAC,CACPzkJ,IAAK,OACLkhB,QAASmjI,MAIT1yE,GACFY,EAASx0E,KAAK,CACZ2B,KAAM,SACNM,IAAK,SACLwnE,UAAU,EACVi9E,OAAQ,CAAC,CACPzkJ,IAAK,OACLkhB,QAAS,SAMb,aAAC,IAAQ,CAACy/B,SAAUr4B,EAAQq4B,WACzB,SAACwF,EAAWhnD,GAAe,OAC1B,oBAAK6d,IAAKmpC,EAAW1mD,UAAW,CAAC,cAAcQ,OAAOd,GAAYiB,KAAK,MACrE,aAACokJ,EAAU,CACTxhF,QAAStiE,EAAM0kE,eAAiB1kE,EAAM2kE,SACtCqN,iBAAkBhyE,EAAM2kE,SACxBq/E,UAAW,CAAC,CAAE3zE,KAAM,CAAC,CAAEzqC,KAAMygC,EAAQ3gE,SAAUm+I,MAC/ChyE,SAAUA,SAOxB,E,CAnH0D,K,SCb1CoyE,EAAehhH,EAAkB8lC,GAG/C,IAFA,IAAIm7E,EAAsB,GAEjB9nJ,EAAI,EAAGA,EAAI2sE,EAAQ3sE,GAAK,EAC/B8nJ,EAAM9nJ,GAAK,GAGb,IAAgB,UAAA6mC,EAAA,eAAM,CAAjB,IAAIN,EAAG,KACVuhH,EAAMvhH,EAAI0mC,KAAKhsE,KAAKslC,GAGtB,OAAOuhH,E,SAGOC,EAAoBlhH,EAAkBojC,GAGpD,IAFA,IAAI+9E,EAAsB,GAEjBhoJ,EAAI,EAAGA,EAAIiqE,EAAQjqE,GAAK,EAC/BgoJ,EAAMhoJ,GAAK,GAGb,IAAgB,UAAA6mC,EAAA,eAAM,CAAjB,IAAIN,EAAG,KACVyhH,EAAMzhH,EAAI+mC,UAAUrsE,KAAKslC,GAG3B,OAAOyhH,E,SAGOC,EAAsBnlH,EAAuC6pC,GAC3E,IAAIm7E,EAAsC,GAE1C,GAAKhlH,EAIE,CACL,IAAS9iC,EAAI,EAAGA,EAAI2sE,EAAQ3sE,GAAK,EAC/B8nJ,EAAM9nJ,GAAK,CACT4uE,kBAAmB9rC,EAAG8rC,kBACtBlyB,QAAS5Z,EAAG4Z,QACZ7V,KAAM,IAIV,IAAgB,UAAA/D,EAAG+D,KAAH,eAAS,CAApB,IAAIN,EAAG,KACVuhH,EAAMvhH,EAAI0mC,KAAKpmC,KAAK5lC,KAAKslC,SAb3B,IAAK,IAAIvmC,EAAI,EAAGA,EAAI2sE,EAAQ3sE,GAAK,EAC/B8nJ,EAAM9nJ,GAAK,KAgBf,OAAO8nJ,ECrCT,+B,+CA6BA,OA7BkC,iBAChC,YAAApkI,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MAEP2kE,EAAe3kE,KAAKomB,QAAQ9U,QAAQszD,SACpC,CAAE,eAAgB,YAAiBpmE,EAAMstB,MAAOg5C,SAAU,GAC1D,GAEJ,OACE,aAAC,IAAc,CACbh5C,KAAMttB,EAAMstB,KACZsb,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClBwwC,cAAe11E,EAAM01E,cACrBnP,eAAgBvmE,EAAMumE,eACtBvgB,eAAgBs+F,IAEf,SAACp+F,EAAYC,GAAiB,OAC5BA,GAAgBnmD,EAAMukJ,cACrB,oBAAKxlJ,UAAU,qBAAqBud,IAAK4pC,GACvC,8BAAGnnD,UAAU,yBAA4BonE,GACtChgB,GAAgB,aAAC,IAAQ,mBAQ1C,EA7BA,CAAkC,KA+BlC,SAASm+F,EAAetkJ,GACtB,OAAOA,EAAM61E,cCnDR,IAAM2uE,EAAkC,aAAgB,CAC7DtyH,KAAM,UACNE,OAAQ,UACR8C,gBAAgB,EAChBC,SAAU,W,SAGIsvH,EAAmB9hH,GAC3B,IAAAj5B,EAAYi5B,EAAIc,WAAWvE,GAApB,QAEb,MAAmB,cAAZx1B,GACO,SAAZA,IACCi5B,EAAIc,WAAWjT,IAAIC,QACpBkS,EAAI+mC,WAAa/mC,EAAIgnC,SACrBhnC,EAAIP,SACJO,EAAIN,MCXR,+B,+CAcA,OAdqC,iBACnC,YAAAviB,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MAEX,OACE,aAAC,IAAa,eACRxB,EAAK,CACTgnE,gBAAiB,CAAC,mBAAoB,yBAA0B,cAChEgO,kBAAmBwvE,EACnBngH,uBAAwBrkC,EAAMqkC,uBAC9B6vC,iBAAkBl0E,EAAM2iC,IAAIc,WAAWjT,IAAIC,WAInD,EAdA,CAAqC,KCMrC,2B,+CAqCA,OArCwC,iBACtC,YAAA3Q,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAChB2iC,EAAavc,EAAQ9U,QAAQiiE,iBAAmByvE,EAChD1wE,EAAW,YACb9zE,EAAM2iC,IACNwB,EACAvc,GACA,EACA5nB,EAAMqkC,wBAGR,OACE,aAAC,IAAS,CACR1B,IAAK3iC,EAAM2iC,IACXmxC,SAAUA,EACV9tB,eAAgBQ,EAChB6tB,WAAYr0E,EAAMq0E,WAClBC,YAAY,EACZC,iBAAiB,EACjBC,WAAYx0E,EAAMw0E,WAClBnvC,OAAQrlC,EAAMqlC,OACdC,SAAUtlC,EAAMslC,SAChBC,QAASvlC,EAAMulC,UAEd,SAACkgB,EAAWhnD,EAAYynD,EAAYC,GAAiB,OACpD,YADoD,CACpD,iBACEpnD,UAAW,CAAC,mBAAoB,wBAAwBQ,OAAOd,GAAYiB,KAAK,KAChF4c,IAAKmpC,GA4BjB,SAA2B9iB,GACnB,IAAAta,EAAQsa,EAAIc,WAAWjT,IAApB,IACT,OAAOnI,EAAM,CAAEq6C,KAAMr6C,GAAQ,GA7Bf4sD,CAAkBj1E,EAAM2iC,MAE3BwjB,OAMb,EArCA,CAAwC,KAuCxC,SAASK,EAAmB0uB,GAC1B,OACE,aAAC,IAAQ,KACP,oBACEn2E,UAAU,uBACV6C,MAAO,CAAE46B,YAAa04C,EAAW14C,aAAe04C,EAAW34C,mBAE5D24C,EAAWpB,UACV,oBAAK/0E,UAAU,iBAAiBm2E,EAAWpB,UAE7C,oBAAK/0E,UAAU,kBACZm2E,EAAWr/D,MAAMynB,OAAS,aAAC,IAAQ,eC7B5C,6E,OACE,EAAAonH,YAAc,aAAQA,G,EAwExB,OAzEuC,iBAGrC,YAAA5kI,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MACP,EAA6BA,KAAKkjJ,YAAY1kJ,EAAM2kJ,kBAAlDrsE,EAAO,UAAEssE,EAAa,gBAE5B,OACE,aAAC,IAAY,CACXh8G,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClBmzC,WAAYr4E,EAAMq4E,WAClBI,QAASz4E,EAAMy4E,QACfH,QAASA,EACTC,WAAYqsE,EACZ5rE,eAAgBh5E,EAAMg5E,eACtB/B,aAAcj3E,EAAMi3E,aACpBW,cAAe53E,EAAM43E,cACrBqB,eAAgB,WACd,IAAI4rE,GACD7kJ,EAAM03C,UAAY13C,EAAM03C,UAAUszB,kBAAoB,QACtDhrE,EAAM43C,YAAc53C,EAAM43C,YAAYozB,kBAAoB,OAC3D,GACF,OACE,aAAC,IAAQ,KACNsN,EAAQn5E,KAAI,SAACwjC,GACZ,IAAIjU,EAAaiU,EAAIc,WAAW7jC,SAAS8uB,WACzC,OACE,oBACE3vB,UAAU,2BACVO,IAAKovB,EACL9sB,MAAO,CACL6H,WAAYo7I,EAAkBn2H,GAAc,SAAY,KAGzD+1H,EAAmB9hH,GAClB,aAACmiH,EAAkB,aACjBniH,IAAKA,EACL0xC,YAAY,EACZG,WAAY9lD,IAAe1uB,EAAMk4C,eACjC7T,wBAAwB,GACpB,aAAW1B,EAAK3iC,EAAMklC,cAG5B,aAAC6/G,EAAe,aACdpiH,IAAKA,EACL0xC,YAAY,EACZC,YAAY,EACZC,iBAAiB,EACjBC,WAAY9lD,IAAe1uB,EAAMk4C,eACjC7T,wBAAwB,GACpB,aAAW1B,EAAK3iC,EAAMklC,sBAUzC,SAACugB,EAAWhnD,EAAYynD,EAAYC,EAAc8xB,GAAgB,OACjE,kBACE37D,IAAKmpC,EACL1mD,UAAW,CAAC,wBAAwBQ,OAAOd,GAAYiB,KAAK,KAC5D8hE,QAASyW,GAER9xB,OAMb,EAzEA,CAAuC,KA2EvC,SAASu+F,EAAYC,GAOnB,IAHA,IAAIrsE,EAAsB,GACtBssE,EAA4B,GAEV,MAAAD,EAAA,eAAkB,CAAnC,IAAIK,EAAS,KAChB1sE,EAAQj7E,KAAK2nJ,EAAUriH,KAElBqiH,EAAUx/B,WACbo/B,EAAcvnJ,KAAK2nJ,EAAUriH,KAIjC,MAAO,CAAE21C,QAAO,EAAEssE,cAAa,GC/EjC,IAAMK,EAA0B,aAAgB,CAAEvyH,KAAM,WAExD,yE,OACU,EAAA+yB,UAAY,eAiFpB,EAAAC,aAAe,SAACjkD,GACd,aAAO,EAAKgkD,UAAWhkD,GACvB,aAAO,EAAKzB,MAAM2lD,MAAOlkD,I,EAE7B,OAtF+B,iBAG7B,YAAAqe,OAAA,WACM,MAAgCte,KAA9BxB,EAAK,QAAE4nB,EAAO,UAAE69B,EAAS,YACzB3yC,EAAY8U,EAAL,QACP0F,EAAsBttB,EAAlB,KAAE4oC,EAAgB5oC,EAAL,YACnBmmE,EAAerzD,EAAQszD,SACvB,CAAE,eAAgB,YAAiB94C,EAAM,QAASg5C,SAAU,GAC5D,GAEJ,OACE,aAAC,IAAW,CACVh5C,KAAMA,EACNsb,YAAaA,EACb1D,WAAYllC,EAAMklC,WAClBwwC,cAAe11E,EAAM01E,cACrBnP,eAAgBvmE,EAAMumE,eACtB5gB,MAAOnkD,KAAKkkD,eAEX,SAACw/F,EAAUvtE,EAAewtE,EAAetjI,GAAe,OACvD,+BACEvF,IAAK4oI,EACLnmJ,UAAW,CAAC,kBAAkBQ,OAAOo4E,EAAe33E,EAAMgnE,iBAAmB,IAAItnE,KAAK,MAClFylJ,EACAnlJ,EAAM6mE,gBAEV,oBAAK9nE,UAAU,gDAAgDud,IAAKtc,EAAMkmD,YACvElmD,EAAMolJ,gBACL,aAAC,IAAc,CAAC93H,KAAMA,EAAMgpD,cAAe2uE,IACxC,SAACI,EAAWC,EAAgBp/F,EAAYC,GAAiB,OACxD,8BACE7pC,IAAK+oI,EACLtmJ,UAAW,CAAC,0BAA0BQ,OAAO+lJ,GAAgB5lJ,KAAK,MAC9DymE,GAEHhgB,OAKPtkC,GACA,aAAC0jI,EAAY,CACXj4H,KAAMA,EACNsb,YAAaA,EACb8sC,cAAe11E,EAAM01E,cACrB6uE,YAAavkJ,EAAMukJ,YACnBr/G,WAAYllC,EAAMklC,WAClBqhC,eAAgBvmE,EAAMumE,iBAG1B,oBACExnE,UAAU,wBACVud,IAAKtc,EAAMwlJ,gBAEVxlJ,EAAMylJ,UACP,oBAAK1mJ,UAAU,wBAAwB6C,MAAO,CAAEoB,UAAWhD,EAAM0lJ,gBAC/D,aAACC,EAAiB,CAChBttE,WAAY/qD,EACZq3H,iBAAkB3kJ,EAAM2kJ,iBACxBlsE,QAASz4E,EAAMy4E,QACfO,eAAgBvzB,EAChBwxB,cAAej3E,EAAM01E,cACrBkC,cAAe53E,EAAM43E,cACrBhvC,YAAa5oC,EAAM4oC,YACnBsP,eAAgBl4C,EAAMk4C,eACtBR,UAAW13C,EAAM03C,UACjBE,YAAa53C,EAAM43C,YACnB1S,WAAYllC,EAAMklC,eAIxB,oBAAKnmC,UAAU,qBACZiB,EAAM4lJ,iBAavB,EAtFA,CAA+B,K,SCzBf,EACd,EACA,EACA,EACA,EACA,EACA,EACA,GAEE,IAAE,EAAY,IAAI,EAClB,EAAQ,gBAAiB,EACzB,EAAQ,YAAc,GAEH,IAAjB,IAA6C,IAApB,GACvB,EAAM,SAAW,EACrB,EAAU,gBAAiB,GACM,kBAAjB,EAChB,EAAU,YAAc,EACY,kBAApB,IAChB,EAAU,YAAc,EACxB,EAAU,gBAAiB,GAM7B,IAFA,IAAI,EAAwB,GACxB,EAAgC,GAC3B,EAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EAAG,CACvC,IAEI,EAAc,GAFd,EAAM,EAAK,IACU,WAAW,SAApB,YAGG,MAAf,EACF,EAAU,KAAK,CACb,MAAO,EACP,UAAW,EACX,KAAM,CACJ,MAAO,EAAI,SACX,IAAK,EAAI,QAAU,KAIvB,EAAkB,KAAK,GAY3B,IARA,IAAI,EAAgB,EAAU,QAAQ,GAElC,EA+DN,SAAoB,EAAqB,EAAkB,GAMzD,IALA,IAAI,EAmEN,SAA6B,EAAkB,GAG7C,IAFA,IAAI,EAA8B,GAEzB,EAAM,EAAG,EAAM,EAAQ,GAAO,EACrC,EAAe,KAAK,IAGtB,IAAiB,2BAAZ,KAAI,EAAI,KACX,IAAS,EAAM,EAAK,KAAK,MAAO,EAAM,EAAK,KAAK,IAAK,GAAO,EAC1D,EAAe,GAAK,KAAK,GAI7B,OAAO,EAhFc,CAAoB,EAAU,EAAM,QACrD,EAA6C,GAC7C,EAA4C,GAC5C,EAA4B,GAEvB,EAAM,EAAG,EAAM,EAAM,OAAQ,GAAO,EAAG,CAO9C,IANA,IAAI,EAAQ,EAAe,GAGvB,EAAwC,GACxC,EAAgB,EAChB,EAAmB,EACN,uBAAO,CAAnB,IACC,EAAM,GADH,EAAI,MACS,OACpB,EAAiB,KAAK,CACpB,IAAK,EAAW,EAAK,EAAK,EAAM,EAAG,GACnC,WAAW,EACX,YAAY,EACZ,YAAa,EAAK,WAClB,UAAW,EAAK,WAAa,IAE/B,EAAgB,EAAK,WAAa,EAAK,UAIzC,IAAI,EAAuC,GAC3C,EAAgB,EAChB,EAAmB,EACnB,IAAiB,2BAAO,CAClB,EAAM,GADH,EAAI,MACS,OADjB,IAAI,EAEH,EAAa,EAAK,KAAK,IAAM,EAAK,KAAK,MAAQ,EAC/C,EAAa,EAAK,KAAK,QAAU,EAErC,GAAoB,EAAK,WAAa,EACtC,EAAgB,EAAK,WAAa,EAAK,UAEnC,GACF,GAAoB,EAAK,UACrB,GACF,EAAgB,KAAK,CACnB,IAAK,EAAW,EAAK,EAAK,KAAK,MAAO,EAAK,KAAK,IAAK,GACrD,WAAW,EACX,YAAY,EACZ,YAAa,EAAK,WAClB,UAAW,KAGN,IACT,EAAgB,KAAK,CACnB,IAAK,EAAW,EAAK,EAAK,KAAK,MAAO,EAAK,KAAK,IAAK,GACrD,WAAW,EACX,YAAY,EACZ,YAAa,EAAK,WAClB,UAAW,IAEb,EAAmB,GAIvB,EAAoB,KAAK,GACzB,EAAmB,KAAK,GACxB,EAAgB,KAAK,GAGvB,MAAO,CAAE,oBAAmB,EAAE,mBAAkB,EAAE,gBAAe,GAhIE,CADpD,EAAU,UAC+D,EAAM,GAAxF,EAAmB,sBAAE,EAAkB,qBAAE,EAAe,kBAE1D,EAAqB,GACrB,EAA2B,GAGf,uBAAmB,CACjC,GADO,EAAG,MACa,UAAU,KAAK,CACpC,IAAG,EACH,WAAW,EACX,YAAY,EACZ,YAAa,EACb,UAAW,IAGb,IAAK,IAAI,EAAM,EAAI,SAAU,GAAO,EAAI,QAAS,GAAO,EACtD,EAAoB,GAAK,KAAK,CAC5B,IAAK,EAAW,EAAK,EAAK,EAAM,EAAG,GACnC,WAAW,EACX,YAAY,EACZ,YAAa,EACb,UAAW,IAMjB,IAAS,EAAM,EAAG,EAAM,EAAM,OAAQ,GAAO,EAC3C,EAAS,KAAK,GAEhB,IAAwB,2BAAe,CAAlC,IAAI,EAAW,KACd,EAAM,EAAK,EAAY,OACvB,EAAa,EAAY,KAE7B,EAAmB,EAAW,OAAO,KAAK,CACxC,IAAK,EAAW,EAAK,EAAW,MAAO,EAAW,IAAK,GACvD,WAAW,EACX,YAAY,EACZ,YAAa,EACb,UAAW,IAGb,IAAS,EAAM,EAAW,MAAO,EAAM,EAAW,IAAK,GAAO,EAC5D,EAAS,IAAQ,EACjB,EAAoB,GAAK,KAAK,CAC5B,IAAK,EAAW,EAAK,EAAK,EAAM,EAAG,GACnC,WAAW,EACX,YAAY,EACZ,YAAa,EACb,UAAW,IAMjB,IAAS,EAAM,EAAG,EAAM,EAAM,OAAQ,GAAO,EAC3C,EAAe,KAAK,EAAgB,IAGtC,MAAO,CAAE,oBAAmB,EAAE,mBAAkB,EAAE,SAAQ,EAAE,eAAc,GAwF5E,SAAS,EAAW,EAAe,EAAmB,EAAiB,GACrE,GAAI,EAAI,WAAa,GAAa,EAAI,UAAY,EAAU,EAC1D,OAAO,EAGT,IAAI,EAAa,EAAI,WACjB,EAAY,EAAW,MACvB,EAAc,aAAgB,EAAW,CAC3C,MAAO,EAAM,GAAW,KACxB,IAAK,YAAQ,EAAM,EAAU,GAAG,KAAM,KAGxC,kCACK,GAAG,CACN,SAAU,EACV,QAAS,EAAU,EACnB,WAAY,CACV,IAAK,EAAW,IAChB,GAAE,2BAAO,EAAW,IAAE,CAAE,kBAAkB,IAC1C,SAAU,EAAW,SACrB,MAAO,GAET,QAAS,EAAI,SAAW,EAAY,MAAM,YAAc,EAAU,MAAM,UACxE,MAAO,EAAI,OAAS,EAAY,IAAI,YAAc,EAAU,IAAI,YAIpE,6E,OAEE,kBAA0B,EAG1B,cAA2C,G,EAyC7C,OA9CkC,iBAOhC,6BAAQ,GAMN,IANF,WACQ,EAAa,YAAM,QAAO,UAAC,GACzB,EAAmB,KAAL,eAChB,EAAgB,SAAC,GAAoB,OAAC,EAAK,YAAY,YAAc,KAGlE,EAAQ,EAAG,EAAQ,EAAe,OAAQ,GAAS,EAC1D,EAAe,GAAS,EAAe,GAAO,OAAO,GAGvD,OAAO,GAGT,4CAAuB,EAAyB,EAAiB,GACzD,IAAE,EAAgC,KAAlB,eAAE,EAAgB,KAAL,YAC3B,EAAkD,EAArC,cAAE,EAAmC,EAAtB,cAAE,EAAoB,EAAL,gBAErD,GAAI,KAAK,gBAAkB,EAAe,CACxC,IAAM,EAAkB,YAAc,GAEtC,IAAK,EAAY,GACf,GAAI,KAAK,eAAgB,CACvB,IAAM,EAAgB,2BACjB,GAAa,CAChB,KAAM,aAAe,EAAc,KAAM,EAAM,QAGjD,EAD2B,YAAc,KACP,EAClC,EAAe,GAAe,GAAmB,EACjD,KAAK,WAAW,EAAe,EAAO,QAEtC,EAAY,IAAmB,EAC/B,EAAc,KAAK,GAKzB,OAAO,YAAM,uBAAsB,UAAC,EAAW,EAAO,IAE1D,EA9CA,CAAkC,KC3LlC,yE,OACU,EAAAC,WAAa,IAAI,IACjB,EAAAC,YAAc,IAAI,IAClB,EAAAC,SAAW,IAAI,IACf,EAAAC,eAAiB,IAAI,IACrB,EAAAvgG,UAAY,eAEpB,EAAA7mC,MAAuB,CACrBqnI,eAAgB,KAChBC,iBAAkB,KAClBC,qBAAsB,I,EA4S1B,OAtT8B,iBAa5B,YAAArmI,OAAA,sBACM,EAA4Bte,KAA1BxB,EAAK,QAAE4e,EAAK,QACZ9L,EADqB,UACd,QACTuzD,EAASrmE,EAAMgpE,MAAM7sE,OAErBiqJ,EAAqBjC,EAAoBnkJ,EAAMyqE,iBAAkBpE,GACjEggF,EAAmBlC,EAAoBnkJ,EAAM2qE,YAAatE,GAC1DigF,EAAqBnC,EAAoB3iJ,KAAK+kJ,mBAAoBlgF,GAClEmgF,EAAkBrC,EAAoB3iJ,KAAKilJ,gBAAiBpgF,GAE5D,EAAwEqgF,EAC1E,aAAc1mJ,EAAM0qE,YAAa53D,EAAQ6zI,YACzC3mJ,EAAM4mJ,aACN5mJ,EAAM6mJ,gBACN/zI,EAAQg0I,iBACRloI,EAAMunI,qBACNvnI,EAAMsnI,iBACNlmJ,EAAMgpE,OAPF+9E,EAAmB,sBAAEC,EAAkB,qBAAEC,EAAQ,WAAEC,EAAc,iBAUnErC,EACD7kJ,EAAM03C,WAAa13C,EAAM03C,UAAUszB,mBACnChrE,EAAM43C,aAAe53C,EAAM43C,YAAYozB,mBACxC,GAEF,OACE,mBAAI1uD,IAAK9a,KAAKikD,WACXzlD,EAAM6nE,aAAe7nE,EAAM6nE,cAC3B7nE,EAAMgpE,MAAM7pE,KAAI,SAACs0F,EAAMnqB,GACtB,IAAI69E,EAAgB,EAAKC,aACvB99E,EACAtpE,EAAM2kE,SAAWoiF,EAAoBz9E,GAAO09E,EAAmB19E,GAC/DtpE,EAAMklC,WACN2/G,GAGEwC,EAAgB,EAAKD,aACvB99E,EA0QZ,SAA+Bg+E,EAAwBC,GACrD,IAAKD,EAAWnrJ,OACd,MAAO,GAET,IAAIqrJ,EAUN,SAA8BD,GAG5B,IAFA,IAAIC,EAAqD,GAElC,MAAAD,EAAA,eACrB,IADG,IACmB,MADL,KACK,eAAY,CAA7B,IAAIvC,EAAS,KAChBwC,EAAiBxC,EAAUriH,IAAIc,WAAW7jC,SAAS8uB,YAAcs2H,EAAUyC,YAI/E,OAAOD,EAnBgBE,CAAqBH,GAC5C,OAAOD,EAAWnoJ,KAAI,SAACwjC,GAAkB,MAAC,CACxCA,IAAG,EACH6iF,WAAW,EACXt3C,YAAY,EACZu5E,YAAaD,EAAiB7kH,EAAIc,WAAW7jC,SAAS8uB,YACtD1rB,UAAW,MAnRH2kJ,CAAsBnB,EAAgBl9E,GAAM09E,GAC5ChnJ,EAAMklC,WACN,GACApqB,QAAQ9a,EAAM03C,WACd58B,QAAQ9a,EAAM43C,cACd,GAGF,OACE,aAACgwG,EAAS,CACRtoJ,IAAKm0F,EAAKn0F,IACVqmD,MAAO,EAAKkgG,WAAWr+H,UAAUisE,EAAKn0F,KACtC4mD,WAAY,EAAK4/F,YAAYt+H,UAAUisE,EAAKn0F,KAC5CspC,YAAa5oC,EAAM4oC,YACnBtb,KAAMmmE,EAAKnmE,KACXooD,cAAe11E,EAAM6nJ,eACrBzC,eAAgBplJ,EAAM8nJ,iBAA2B,IAARx+E,EACzCi7E,YAAavkJ,EAAM8nJ,gBACnB5iH,WAAYllC,EAAMklC,WAClBgT,eAAgBl4C,EAAMk4C,eACtBR,UAAW13C,EAAM03C,UACjBE,YAAa53C,EAAM43C,YACnB2uB,eAAgBktB,EAAKltB,eACrBM,eAAgB4sB,EAAK5sB,eACrBG,gBAAiBysB,EAAKzsB,gBACtB4Q,cAAe6b,EAAK7b,cACpBa,QAASwuE,EAAS39E,GAClBo8E,cAAewB,EAAe59E,GAC9Bq7E,iBAAkBoC,EAAoBz9E,GACtCk8E,eAAgB,EAAKO,SAASv+H,UAAUisE,EAAKn0F,KAC7CmmJ,UACE,aAAC,IAAQ,KACP,aAAC,IAAQ,KAAE0B,GACX,aAAC,IAAQ,KAAEE,IAGfzB,UACE,aAAC,IAAQ,KACN,EAAKmC,eAAezB,EAAmBh9E,GAAM,aAC7C,EAAKy+E,eAAe3B,EAAmB98E,GAAM,gBAC7C,EAAKy+E,eAAe1B,EAAiB/8E,GAAM,oBAU5D,YAAA7iB,kBAAA,WACEjlD,KAAKwmJ,cAAa,IAGpB,YAAArhG,mBAAA,SAAmB3hC,EAA0BC,GAC3C,IAAIgjI,EAAezmJ,KAAKxB,MAExBwB,KAAKwmJ,cACF,aAAahjI,EAAWijI,KAI7B,YAAA1B,iBAAA,WACQ,IAAAvmJ,EAAUwB,KAAL,MAEX,OAAIxB,EAAM03C,WAAa13C,EAAM03C,UAAUzU,KAAK9mC,OACnC6D,EAAM03C,UAAUzU,KAGrBjjC,EAAM43C,aAAe53C,EAAM43C,YAAY3U,KAAK9mC,OACvC6D,EAAM43C,YAAY3U,KAGpBjjC,EAAMwqE,mBAGf,YAAAi8E,cAAA,WACQ,IAAAzmJ,EAAUwB,KAAL,MAEX,OAAIxB,EAAM43C,aAAe53C,EAAM43C,YAAY3U,KAAK9mC,OACvC6D,EAAM43C,YAAY3U,KAGpB,IAGT,YAAAmkH,aAAA,SACE99E,EACA4+E,EACAhjH,EACA2/G,EACAxwE,EACAC,EACAC,GAEM,IAAA3sD,EAAYpmB,KAAL,QACP02C,EAAmB12C,KAAKxB,MAAV,eACdimJ,EAAmBzkJ,KAAKod,MAAV,eAChBylB,EAAqD,IAA5B7iC,KAAKxB,MAAMgpE,MAAM7sE,OAC1Ci4E,EAAWC,GAAcC,GAAcC,EACvC4zE,EAAiB,GAErB,GAAIlC,EACF,IAAsB,UAAAiC,EAAA,eAAe,CAAhC,IAAIlD,EAAS,KACVriH,EAAQqiH,EAAL,IACHt2H,EAAeiU,EAAIc,WAAW7jC,SAApB,WACZN,EAAMovB,EAAa,IAAM46C,EACzBk8C,EAAYw/B,EAAUx/B,YAAcq/B,EAAkBn2H,GACtDw/C,EAAa82E,EAAU92E,WACvBpqE,EAAoB,GACpBqE,EAAqB,GAErB+lE,IACEtmD,EAAQm3B,OACV52C,EAAQ,EACRrE,EAAOmiJ,EAAezpG,MAAM7Z,EAAIgnC,SAAWs8E,EAAezpG,MAAM7Z,EAAI+mC,YAEpE5lE,EAAO,EACPqE,EAAQ89I,EAAexpG,OAAO9Z,EAAI+mC,UAAYu8E,EAAexpG,OAAO9Z,EAAIgnC,WAQ5Ew+E,EAAM9qJ,KACJ,oBACE0B,UAAW,4BAA8BmvE,EAAa,gCAAkC,IACxF5uE,IAAKA,EACLgd,IAAK83D,EAAW,KAAO5yE,KAAKwkJ,eAAex+H,UAAUloB,GACrDsC,MAAO,CACL6H,WAAY+7G,EAAa,GAAa,SACtCxiH,UAAWkrE,EAAa,GAAK82E,EAAUhiJ,UACvCY,IAAKsqE,EAAa82E,EAAUyC,YAAc,GAC1C3jJ,KAAI,EACJqE,MAAK,IAGNs8I,EAAmB9hH,GAClB,aAACmiH,EAAkB,aACjBniH,IAAKA,EACL0xC,WAAYA,EACZG,WAAY9lD,IAAewpB,EAC3B7T,uBAAwBA,GACpB,aAAW1B,EAAKuC,KAGtB,aAAC6/G,EAAe,aACdpiH,IAAKA,EACL0xC,WAAYA,EACZC,WAAYA,EACZC,gBAAiBA,EACjBC,WAAY9lD,IAAewpB,EAC3B7T,uBAAwBA,GACpB,aAAW1B,EAAKuC,OAQhC,OAAOijH,GAGT,YAAAJ,eAAA,SAAe9kH,EAAkBmzC,GACzB,IAAAr3B,EAAUv9C,KAAKomB,QAAV,MACLsd,EAAe1jC,KAAKxB,MAAV,WACVimJ,EAAmBzkJ,KAAKod,MAAV,eAChBupI,EAAiB,GAErB,GAAIlC,EACF,IAAgB,UAAAhjH,EAAA,eAAM,CAAjB,IAAIN,EAAG,KACNylH,EAAerpG,EAAQ,CACzB52C,MAAO,EACPrE,KAAMmiJ,EAAezpG,MAAM7Z,EAAIgnC,SAAWs8E,EAAezpG,MAAM7Z,EAAI+mC,WACjE,CACF5lE,KAAM,EACNqE,MAAO89I,EAAexpG,OAAO9Z,EAAI+mC,UAAYu8E,EAAexpG,OAAO9Z,EAAIgnC,UAGzEw+E,EAAM9qJ,KACJ,oBACEiC,IAAK,YAAmBqjC,EAAIc,YAC5B1kC,UAAU,wBACV6C,MAAOwmJ,GAEO,aAAbhyE,EACC,aAAC,IAAO,aAACzzC,IAAKA,GAAS,aAAWA,EAAKuC,KACvC,aAAWkxC,KAMrB,OAAO,KAAa,0BAAC,IAAU,IAAO+xE,KAGxC,YAAAH,aAAA,SAAaK,GACP,IAAEroJ,EAAuBwB,KAAlB,MAAEskJ,EAAgBtkJ,KAAL,YAExB,IACGxB,EAAM2kE,UACe,OAAtB3kE,EAAMwD,YACN,CACA,GAAI6kJ,EAAwB,CAC1B,IAAIC,EAAWtoJ,EAAMgpE,MAAM7pE,KAAI,SAACs0F,GAAS,OAAAqyD,EAAYh3E,WAAW2kB,EAAKn0F,QAErE,GAAIgpJ,EAASnsJ,OAAQ,CACnB,IAAI6/C,EAAWx6C,KAAKikD,UAAUl1C,QAE9B/O,KAAKwd,SAAS,CACZinI,eAAgB,IAAI,IAClBjqG,EACAssG,GACA,GACA,MAMR,IAAIC,GAA8C,IAAvBvoJ,EAAM4mJ,eAAmD,IAA1B5mJ,EAAM6mJ,gBAEhErlJ,KAAKwd,SAAS,CACZmnI,qBAAsB3kJ,KAAKgnJ,4BAC3BtC,iBAAkBqC,EAAuB/mJ,KAAKinJ,0BAA4B,SAKhF,YAAAD,0BAAA,WACE,IAAIE,EAAWlnJ,KAAKwkJ,eAAel3E,WAC/Bq3E,EAAkD,GAGtD,IAAK,IAAI7mJ,KAAOopJ,EAAU,CACxB,IAAI5lJ,EAAS8D,KAAKwlB,MAAMs8H,EAASppJ,GAAKqE,wBAAwBb,QAC1D4rB,EAAapvB,EAAIiF,MAAM,KAAK,GAChC4hJ,EAAqBz3H,GAAc9nB,KAAKC,IAAIs/I,EAAqBz3H,IAAe,EAAG5rB,GAGrF,OAAOqjJ,GAGT,YAAAsC,wBAAA,WACE,IAAIE,EAAWnnJ,KAAKxB,MAAMgpE,MAAM,GAAG1pE,IAC/B8rB,EAAS5pB,KAAKqkJ,WAAW/2E,WAAW65E,GACpCC,EAAgBpnJ,KAAKukJ,SAASj3E,WAAW65E,GAE7C,OAAOv9H,EAAOznB,wBAAwByE,OAASwgJ,EAAcjlJ,wBAAwBC,KAGhF,YAAAilJ,WAAP,WACE,IAAIC,EAAQtnJ,KAAKqkJ,WAAW/2E,WAE5B,OAAOttE,KAAKxB,MAAMgpE,MAAM7pE,KAAI,SAACs0F,GAAS,OAAAq1D,EAAMr1D,EAAKn0F,SAErD,EAtTA,CAA8B,KAwT9BypJ,EAAS9nG,iBAAiB,CACxBklG,qBAAsB,O,kBCnUxB,2D,OACU,EAAA6C,sBAAwB,aAAQ/E,GAChC,EAAAgF,iBAAmB,aAAQhF,GAC3B,EAAAiF,iBAAmB,aAAQjF,GAC3B,EAAAkF,uBAAyB,aAAQlF,GACjC,EAAAntG,eAAiB,aAAQutG,GACzB,EAAArtG,iBAAmB,aAAQqtG,GAE3B,EAAA+E,QAAU,IAAI,IA6FtB,EAAA1jG,aAAe,SAAC2B,GACd,EAAKA,OAASA,EAEVA,EACF,EAAKz/B,QAAQw4B,6BAA6B,EAAM,CAC9C3+C,GAAI4lD,EACJ2Y,kBAAmB,EAAKhgE,MAAMggE,oBAGhC,EAAKp4C,QAAQy4B,+BAA+B,I,EA6DlD,OA3K2B,iBAYzB,YAAAvgC,OAAA,sBACQ9f,EAAUwB,KAAL,MACLonC,EAA2D5oC,EAAhD,YAAE6mJ,EAA8C7mJ,EAA/B,gBAAE4mJ,EAA6B5mJ,EAAjB,aAAE+yE,EAAe/yE,EAAL,WACxD+oE,EAAS/oE,EAAMgpE,MAAM7sE,OAErBktJ,EAAwB7nJ,KAAKwnJ,sBAAsBhpJ,EAAMyqE,iBAAkB1B,GAC3EugF,EAAmB9nJ,KAAKynJ,iBAAiBjpJ,EAAM2qE,YAAa5B,GAC5DwgF,EAAmB/nJ,KAAK0nJ,iBAAiBlpJ,EAAM0qE,YAAa3B,GAC5DygF,EAAyBhoJ,KAAK2nJ,uBAAuBnpJ,EAAMwqE,kBAAmBzB,GAC9E0gF,EAAiBjoJ,KAAKs1C,eAAe92C,EAAM03C,UAAWqxB,GACtD2gF,EAAmBloJ,KAAKw1C,iBAAiBh3C,EAAM43C,YAAamxB,GAE5D4gF,GAAoC,IAAjB/C,IAA6C,IAApBC,EAI5C8C,IAAqB52E,IACvB42E,GAAmB,EACnB9C,EAAkB,KAClBD,EAAe,MAGjB,IAAInoJ,EAAa,CACf,kBACAkrJ,EAAmB,2BAA6B,6BAChD52E,EAAa,GAAK,2BAGpB,OACE,oBACEh0E,UAAWN,EAAWiB,KAAK,KAC3B4c,IAAK9a,KAAKkkD,aACV9jD,MAAO,CAGLF,MAAO1B,EAAMwD,YACbkC,SAAU1F,EAAM6wE,gBAGlB,aAAC,IAAQ,CAACr/C,KAAK,QACZ,SAAC2T,EAAqBD,GAA0B,OAC/C,aAAC,IAAQ,KACP,sBACEnmC,UAAU,2BACV6C,MAAO,CACLF,MAAO1B,EAAMwD,YACbkC,SAAU1F,EAAM6wE,cAChB/tE,OAAQiwE,EAAa/yE,EAAMkD,aAAe,KAG3ClD,EAAM4pJ,aACP,0BACG5pJ,EAAMgpE,MAAM7pE,KAAI,SAAC6pE,EAAOK,GAAQ,OAC/B,aAAC0/E,EAAQ,CACPzsI,IAAK,EAAK8sI,QAAQ5hI,UAAU6hD,GAC5B/pE,IACE0pE,EAAM7sE,OACF6sE,EAAM,GAAG17C,KAAKsG,cACdy1C,EAENw+E,eAAgB9+E,EAAS,EACzB++E,gBAAiB9nJ,EAAM8nJ,gBACvB5iH,WAAYA,EACZ0D,YAAaA,EACbogC,MAAOA,EACPnB,YAAa7nE,EAAM6pJ,eACnBp/E,iBAAkB4+E,EAAsBhgF,GACxCnxB,eAAgBl4C,EAAMk4C,eACtByyB,YAAa2+E,EAAiBjgF,GAAK7pE,OAAOsqJ,GAC1Cp/E,YAAa6+E,EAAiBlgF,GAC9BmB,kBAAmBg/E,EAAuBngF,GAC1C3xB,UAAW+xG,EAAepgF,GAC1BzxB,YAAa8xG,EAAiBrgF,GAC9Bu9E,aAAcA,EACdC,gBAAiBA,EACjBrjJ,YAAaxD,EAAMwD,YACnBN,aAAclD,EAAMkD,aACpByhE,SAAU3kE,EAAM2kE,sBA4BpC,YAAAtjB,YAAA,WACE7/C,KAAKuoJ,aAAe,IAAI,IACtBvoJ,KAAK6lD,OACL7lD,KAAK4nJ,QAAQ/5E,UAAUlwE,KAAI,SAAC6qJ,GAAW,OAAAA,EAAOnB,aAAa,OAC3D,GACA,GAGFrnJ,KAAKyoJ,aAAe,IAAI,IACtBzoJ,KAAK6lD,OACL7lD,KAAK4nJ,QAAQt6E,WAAW,GAAG+5E,cAC3B,GACA,IAIJ,YAAAvnG,SAAA,SAASC,EAAsBC,GACzB,IAAEyoG,EAA+BzoJ,KAAnB,aAAEuoJ,EAAiBvoJ,KAAL,aAC5B8nE,EAAM2gF,EAAaptG,YAAY0E,GAC/B8nB,EAAM0gF,EAAahtG,WAAWyE,GAElC,GAAW,MAAP6nB,GAAsB,MAAPC,EAAa,CAC9B,IAAImqB,EAAOjyF,KAAKxB,MAAMgpE,MAAMK,GAAKC,GAEjC,MAAO,CACL1gC,YAAapnC,KAAKxB,MAAM4oC,YACxBjC,SAAU,OAAF,IAAE,CAAF,CACNvyB,MAAO5S,KAAK0oJ,aAAa7gF,EAAKC,GAC9B74C,QAAQ,GACLgjE,EAAK7b,eAEVC,MAAOr2E,KAAK2oJ,UAAU9gF,EAAKC,GAC3B5lE,KAAM,CACJI,KAAMmmJ,EAAaztG,MAAM8sB,GACzBnhE,MAAO8hJ,EAAaxtG,OAAO6sB,GAC3B1lE,IAAKmmJ,EAAaptG,KAAK0sB,GACvBjhE,OAAQ2hJ,EAAantG,QAAQysB,IAE/ByO,MAAO,GAIX,OAAO,MAGD,YAAAqyE,UAAR,SAAkB9gF,EAAKC,GACrB,OAAO9nE,KAAK4nJ,QAAQt6E,WAAWzF,GAAKw/E,aAAav/E,IAG3C,YAAA4gF,aAAR,SAAqB7gF,EAAKC,GACxB,IAAIlyD,EAAQ5V,KAAKxB,MAAMgpE,MAAMK,GAAKC,GAAKh8C,KAEvC,MAAO,CAAElW,MAAK,EAAE9C,IADN,YAAQ8C,EAAO,KAG7B,E,CA3K2B,KA6K3B,SAAS0yI,EAAYnnH,GACnB,OAAOA,EAAIc,WAAWjT,IAAIC,O,kBCzN5B,2D,OACE,EAAA25C,oBAAqB,E,EAKvB,OANoC,iBAGlC,YAAAhC,WAAA,SAAW1nC,EAAsB0pH,GAC/B,OAAOA,EAAchiF,WAAW1nC,IAEpC,E,CANoC,K,cCsCpC,2D,OACU,EAAA2pH,OAAS,IAAIC,EACb,EAAAC,SAAW,e,EAyBrB,OA3B8B,iBAI5B,YAAAzqI,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAEpB,OACE,aAACgpJ,EAAK,aACJluI,IAAK9a,KAAK+oJ,UACN/oJ,KAAK6oJ,OAAOhgF,WAAWrqE,EAAOA,EAAM4oC,YAAa5oC,EAAM0/B,iBAAkB9X,EAAS5nB,EAAMoqJ,eAAc,CAC1GxhH,YAAa5oC,EAAM4oC,YACnBogC,MAAOhpE,EAAMoqJ,cAAcphF,MAC3B4gF,aAAc5pJ,EAAM4pJ,aACpB/4E,cAAe7wE,EAAM6wE,cACrBg5E,eAAgB7pJ,EAAM6pJ,eACtBjD,aAAc5mJ,EAAM4mJ,aACpBC,gBAAiB7mJ,EAAM6mJ,gBACvBiB,gBAAiB9nJ,EAAM8nJ,gBACvB/0E,WAAY/yE,EAAM+yE,WAClB03E,iBAAkBzqJ,EAAMyqJ,iBACxBjnJ,YAAaxD,EAAMwD,YACnBN,aAAclD,EAAMkD,aACpByhE,SAAU3kE,EAAM2kE,aAIxB,E,CA3B8B,K,cC5B9B,2D,OACU,EAAA+lF,mBAAqB,aAAQA,GAC7B,EAAA7mF,UAAY,eACZ,EAAA0mF,SAAW,e,EA8CrB,OAjDkC,iBAKhC,YAAAzqI,OAAA,sBACM,EAAoCte,KAAKomB,QAAvC9U,EAAO,UAAEqtC,EAAoB,uBAC7BngD,EAAUwB,KAAL,MACP4oJ,EAAgB5oJ,KAAKkpJ,mBAAmB1qJ,EAAM4oC,YAAauX,GAE3DwqG,EAAgB73I,EAAQ83I,YAC1B,aAAC,IAAS,CACRtuI,IAAK9a,KAAKqiE,UACVj7B,YAAa5oC,EAAM4oC,YACnB++B,MAAOyiF,EAAclhF,YACrBtB,qBAA+C,IAAzBwiF,EAAcrhF,SAIpC46E,EAAc,SAACkH,GAAyC,OAC1D,aAACC,EAAQ,CACPxuI,IAAK,EAAKiuI,SACV3hH,YAAa5oC,EAAM4oC,YACnBwhH,cAAeA,EACfnyG,cAAej4C,EAAMi4C,cACrB/K,cAAeltC,EAAMktC,cACrBhd,WAAYlwB,EAAMkwB,WAClBuR,aAAczhC,EAAMyhC,aACpByW,eAAgBl4C,EAAMk4C,eACtBR,UAAW13C,EAAM03C,UACjBE,YAAa53C,EAAM43C,YACnBlY,iBAAkB5sB,EAAQ4sB,iBAC1BkqH,aAAciB,EAAW33E,kBACzBrC,cAAeg6E,EAAWh6E,cAC1B+1E,aAAc9zI,EAAQ8zI,aACtBC,gBAAiB/zI,EAAQ+zI,gBACzBiB,gBAAiBh1I,EAAQo0H,YACzBn0D,YAAa/yE,EAAM0kE,aACnB+lF,iBAAkB,EAAKjH,YACvBhgJ,YAAaqnJ,EAAWrnJ,YACxBN,aAAc2nJ,EAAW3nJ,aACzByhE,SAAU3kE,EAAM2kE,YAIpB,OAAO7xD,EAAQ+wI,YACXriJ,KAAKoiJ,oBAAoB+G,EAAehH,EAAayG,EAAc/jF,OAAQvzD,EAAQ+wI,aACnFriJ,KAAKiiJ,mBAAmBkH,EAAehH,IAE/C,E,CAjDkCoH,G,SAmDlBL,EAAmB9hH,EAA0BuX,GAC3D,IAAIyoB,EAAY,IAAI,IAAehgC,EAAY4hB,YAAarK,GAE5D,OAAO,IAAI,IACTyoB,EACA,kBAAkBzqE,KAAKyqC,EAAYohB,mBC/DvC,+B,+CAiCA,OAjC+C,iBAE7C,YAAAa,iBAAA,SAAiB/hB,EAAckhB,EAAkBO,GACzC,IAIFygG,EAJE56H,EAAY5uB,KAAKxB,MAAV,QACTwqD,EAAc,YAAMK,iBAAgB,UAAC/hB,EAAckhB,EAAkBO,GACrEnzC,EAAQozC,EAAYpzC,MACpB9C,EAAMk2C,EAAYl2C,IAetB,GAXI,iBAAiBnW,KAAK6rD,KACxB5yC,EAAQgZ,EAAQoiB,YAAYp7B,IAG5B4zI,EAAY56H,EAAQoiB,YAAYl+B,IAClByG,YAAczG,EAAIyG,YAC9BzG,EAAM,YAAS02I,EAAW,KAM5BxpJ,KAAKxB,MAAM06D,WACXl5D,KAAKxB,MAAM26D,eACX,CACA,IAAIoO,EAASniE,KAAK8hE,KAChB,aAAUtxD,EAAO9C,IAEnBA,EAAM,YAASA,EAAK,EAAIy0D,GAG1B,MAAO,CAAE3xD,MAAK,EAAE9C,IAAG,IAEvB,EAjCA,CAA+C,KCO/C,EAAe,aAAa,CAC1B,YAAa,eACb,MAAO,CAEL,QAAS,CACP,UAAW,EACX,0BAA2B,GAG7B,WAAY,CACV,KAAM,UACN,SAAU,CAAE,KAAM,IAGpB,YAAa,CACX,KAAM,UACN,SAAU,CAAE,MAAO,IAGrB,aAAc,CACZ,KAAM,UACN,SAAU,CAAE,OAAQ,GACpB,WAAW,EACX,gBAAgB,M,oCCpCtB,0FAOA,SAAS2lE,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASiC,EAAoB3E,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2E,EAAoB3E,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWiD,EAAoBnD,EAAGC,QAA3G,GAQ2DmD,CAA8B5E,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+gB,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAASsf,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAI26I,EAA0C,SAAU7vI,GACtDpB,EAAUixI,EAA4B7vI,GAEtC,IAAIC,EAASgE,EAAe4rI,GAE5B,SAASA,IAGP,OAFAtrJ,EAAgB6B,KAAMypJ,GAEf5vI,EAAOvQ,MAAMtJ,KAAM7C,WAqJ5B,OAlJA2B,EAAa2qJ,EAA4B,CAAC,CACxC3rJ,IAAK,0BACLhC,MAAO,SAAiCw4G,GACtC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,sBACLhC,MAAO,SAA6Bw4G,EAAa15G,GAC/C,IAAI2K,EAAQvF,KAGZ,OADoBA,KAAKxB,MAAM+1G,uBAAuBD,GACjC32G,KAAI,SAAUoM,EAAMkK,GACvC,IAAIy1I,EAAcnkJ,EAAM/G,MAAMq2G,aAAelnG,IAAY8rE,cAAcl0E,EAAM/G,MAAMq2G,aAAc9qG,EAAMkK,GAAK1O,EAAM/G,MAAMsP,MAAQH,IAAYI,iBAAiBhE,EAAMxE,EAAM/G,MAAMsP,OAAS/D,EACxL,OAAoB8Q,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKmW,EAAI,QACT8P,KAAM,SACN,gBAAiBxe,EAAM/G,MAAMmrJ,eAAiB5/I,EAC9CxM,UAAW,sBACXyiE,QAAS,SAAiBxgE,GACxB,OAAO+F,EAAM/G,MAAMm8I,YAAYn7I,EAAGuK,IAEpC,aAAcnP,EACd,aAAcqZ,GACby1I,EAA0B7uI,IAAM7P,cAAc2O,IAAQ,YAG5D,CACD7b,IAAK,aACLhC,MAAO,SAAoB8tJ,EAAYvtF,GACrC,IAAI1hD,EAAS3a,KAEb,GAAIA,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAIC,EAAeh1G,KAAKxB,MAAMy2G,oBAAsBtnG,IAAY8rE,cAAcz5E,KAAKxB,MAAMy2G,oBAAqB20C,EAAYvtF,GAASr8D,KAAKxB,MAAM02G,oBAAoB00C,GAC9Jz0C,EAAuBn1G,KAAKo1G,oBAAoBw0C,EAAYvtF,GAC5Dv+D,EAAMu+D,EAAQ,IAAMr8D,KAAKq1G,wBAAwBu0C,GACrD,OAAoB/uI,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKA,GACS+c,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,6BACVy3G,GAAeG,GAElB,IAAIu0C,EAAc1pJ,KAAKxB,MAAMq2G,aAAelnG,IAAY8rE,cAAcz5E,KAAKxB,MAAMq2G,aAAc+0C,EAAYvtF,GAASr8D,KAAKxB,MAAMsP,MAAQH,IAAYI,iBAAiB67I,EAAY5pJ,KAAKxB,MAAMsP,OAAS87I,EACpM,OAAoB/uI,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,EAAQ,QACbt4C,KAAM,SACN,gBAAiB/jB,KAAKxB,MAAMmrJ,eAAiBC,EAC7CrsJ,UAAW,sBACXyiE,QAAS,SAAiBxgE,GACxB,OAAOmb,EAAOnc,MAAMm8I,YAAYn7I,EAAGoqJ,KAEpCF,EAA0B7uI,IAAM7P,cAAc2O,IAAQ,SAG5D,CACD7b,IAAK,cACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAIA,KAAKxB,MAAMqrJ,YACN7pJ,KAAKxB,MAAMqrJ,YAAYlsJ,KAAI,SAAUisJ,EAAYvtF,GACtD,OAAOn7C,EAAOo0F,WAAWs0C,EAAYvtF,MAIlC,OAER,CACDv+D,IAAK,gBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,GAAIA,KAAKxB,MAAMw3G,uBAAwB,CACrC,IAAIC,EAAuBj4F,EAAgBA,EAAgB,GAAIhe,KAAKxB,MAAMw3G,wBAAyB,CACjG51G,MAAO4d,EAAgBA,EAAgB,GAAIhe,KAAKxB,MAAMw3G,uBAAuB51G,OAAQ,CACnFkB,OAAQtB,KAAKxB,MAAMo+C,eAErBs5D,MAAOl2G,KAAKxB,MAAMqrJ,YAClBh1C,aAAc,SAAsB9qG,EAAMuH,GACxC,OAAOvH,GAAQ4X,EAAO2zF,WAAWvrG,EAAMuH,EAAQ+qD,QAEjD+5C,gBAAiB,SAAyB9kG,GACxC,IAAI/T,EAAYN,YAAW,uBAAwBqU,EAAQ/T,WAC3D,OAAoBsd,IAAM7P,cAAc,KAAM,CAC5C8P,IAAKxJ,EAAQwJ,IACbvd,UAAWA,EACXwmB,KAAM,UACND,GAAInC,EAAOnjB,MAAMsrJ,QAChBx4I,EAAQ9O,aAIf,OAAoBqY,IAAM7P,cAAcsrG,IAAiB79B,EAAS,CAChE39D,IAAK9a,KAAKxB,MAAMu1G,oBACfkC,IAEH,IAAIC,EAAQl2G,KAAKu2G,cACjB,OAAoB17F,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,uBACXwmB,KAAM,UACND,GAAI9jB,KAAKxB,MAAMsrJ,QACd5zC,KAGN,CACDp4G,IAAK,gBACLhC,MAAO,WACL,IAAI06G,EAAiBv5G,YAAW,mCAAoC+C,KAAKxB,MAAMg4G,gBAE3EK,EAAa74F,EAAgB,CAC/B8uD,UAAW9sE,KAAKxB,MAAMo+C,cACrB58C,KAAKxB,MAAMq4G,YAEV73F,EAAUhf,KAAKy2G,gBACnB,OAAoB57F,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKxB,MAAMo6E,WACpB37E,WAAY,sBACZ0oB,GAAI3lB,KAAKxB,MAAMmnB,GACfC,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKxB,MAAM0mB,QACpBC,WAAYnlB,KAAKxB,MAAM2mB,WACvBC,UAAWplB,KAAKxB,MAAM4mB,UACtBC,OAAQrlB,KAAKxB,MAAM6mB,OACnBE,SAAUvlB,KAAKxB,MAAM+mB,UACP1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWi5G,EACXp2G,MAAOy2G,EACP72C,QAAShgE,KAAKxB,MAAMwhE,SACnBhhD,MAEJ,CACDlhB,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpBylJ,EA7JqC,CA8J5CzuI,aAEE+uI,EAAiClvI,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACrE,OAAoBD,IAAM7P,cAAcy+I,EAA4BhxE,EAAS,CAC3EG,WAAY99D,GACXtc,OAGL,SAASqmB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASgB,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASkqB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIk7I,EAA4B,SAAUpwI,GACxCpB,EAAUwxI,EAAcpwI,GAExB,IAAIC,EAASkL,EAAailI,GAE1B,SAASA,EAAaxrJ,GACpB,IAAI+G,EA+BJ,OA7BApH,EAAgB6B,KAAMgqJ,IAEtBzkJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ0G,GAAIve,EAAM/G,MAAMslB,GAChBmmI,WAAW,EACXp+D,SAAS,EACTmrB,gBAAgB,GAElBzxG,EAAM2kJ,cAAgB3kJ,EAAM2kJ,cAAcnwI,KAAK7B,EAAuB3S,IACtEA,EAAM0xG,aAAe1xG,EAAM0xG,aAAal9F,KAAK7B,EAAuB3S,IACpEA,EAAM2xG,YAAc3xG,EAAM2xG,YAAYn9F,KAAK7B,EAAuB3S,IAClEA,EAAM4xG,eAAiB5xG,EAAM4xG,eAAep9F,KAAK7B,EAAuB3S,IACxEA,EAAM4kJ,gBAAkB5kJ,EAAM4kJ,gBAAgBpwI,KAAK7B,EAAuB3S,IAC1EA,EAAM6kJ,sBAAwB7kJ,EAAM6kJ,sBAAsBrwI,KAAK7B,EAAuB3S,IACtFA,EAAM8kJ,kBAAoB9kJ,EAAM8kJ,kBAAkBtwI,KAAK7B,EAAuB3S,IAC9EA,EAAM+kJ,iBAAmB/kJ,EAAM+kJ,iBAAiBvwI,KAAK7B,EAAuB3S,IAC5EA,EAAMizG,WAAajzG,EAAMizG,WAAWz+F,KAAK7B,EAAuB3S,IAChEA,EAAM2vG,oBAAsB3vG,EAAM2vG,oBAAoBn7F,KAAK7B,EAAuB3S,IAClFA,EAAMgvG,uBAAyBhvG,EAAMgvG,uBAAuBx6F,KAAK7B,EAAuB3S,IACxFA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMglJ,kBAAoBhlJ,EAAMglJ,kBAAkBxwI,KAAK7B,EAAuB3S,IAC9EA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAMqyG,WAA0B5xF,sBAChCzgB,EAAMwuG,mBAAkC/tF,sBACxCzgB,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAszBT,OAnzBAzG,EAAakrJ,EAAc,CAAC,CAC1BlsJ,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIsG,EAAS3a,KAGTA,KAAK4lB,SACP7P,aAAa/V,KAAK4lB,SAGpB,IAAI4kI,EAAQn2I,EAAM9V,OAAOzC,MAEpBkE,KAAKxB,MAAMwnH,UACdhmH,KAAKoU,YAAYC,EAAOm2I,GAGL,IAAjBA,EAAM7vJ,QACRqF,KAAK+3G,cAED/3G,KAAKxB,MAAMisJ,SACbzqJ,KAAKxB,MAAMisJ,QAAQp2I,IAGjBm2I,EAAM7vJ,QAAUqF,KAAKxB,MAAMksJ,UAC7B1qJ,KAAK4lB,QAAU/c,YAAW,WACxB8R,EAAO1U,OAAOoO,EAAOm2I,EAAO,WAC3BxqJ,KAAKxB,MAAMskB,OAEd9iB,KAAK+3G,gBAIV,CACDj6G,IAAK,SACLhC,MAAO,SAAgBuY,EAAOm2I,EAAOv5I,QAErBxL,IAAV+kJ,GAAiC,OAAVA,IAKZ,UAAXv5I,GAA8C,IAAxBu5I,EAAMl6I,OAAO3V,QAInCqF,KAAKxB,MAAMmsJ,iBACb3qJ,KAAKwd,SAAS,CACZysI,WAAW,IAEbjqJ,KAAKxB,MAAMmsJ,eAAe,CACxBh1I,cAAetB,EACfm2I,MAAOA,QAIZ,CACD1sJ,IAAK,aACLhC,MAAO,SAAoBuY,EAAOsL,EAAQirI,GACxC,GAAI5qJ,KAAKxB,MAAMwnH,UAGb,GAFAhmH,KAAK8rF,SAAS/8E,QAAQjT,MAAQ,IAEzBkE,KAAKgzE,WAAWrzD,GAAS,CAC5B,IAAI62G,EAAWx2H,KAAKxB,MAAM1C,MAAQ,GAAGiC,OAAOgvF,EAAmB/sF,KAAKxB,MAAM1C,OAAQ,CAAC6jB,IAAW,CAACA,GAC/F3f,KAAKoU,YAAYC,EAAOmiH,SAG1Bx2H,KAAKi8G,iBAAiBt8F,GACtB3f,KAAKoU,YAAYC,EAAOsL,GAGtB3f,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACfvY,MAAO6jB,IAINirI,IACH5qJ,KAAK8rF,SAAS/8E,QAAQq9E,QACtBpsF,KAAK+3G,iBAGR,CACDj6G,IAAK,cACLhC,MAAO,SAAqBuY,EAAOvY,GAC7BkE,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKod,MAAM0G,GACfhoB,MAAOA,KAKbkE,KAAK2pJ,aAAe7tJ,IAErB,CACDgC,IAAK,cACLhC,MAAO,SAAqBA,GAC1B,GAAIA,EAAO,CACT,GAAIkE,KAAKxB,MAAMqsJ,uBAAyB7qJ,KAAKxB,MAAMwnH,SAAWhmH,KAAKgzE,WAAWl3E,GAASkE,KAAK8qJ,gBAAgBhvJ,IAAU,GAAI,CACxH,IAAIivJ,EAAoBp9I,IAAY8rE,cAAcz5E,KAAKxB,MAAMqsJ,qBAAsB/uJ,GACnF,OAAOivJ,GAAwCjvJ,EAC1C,GAAIkE,KAAKxB,MAAMsP,MAAO,CAC3B,IAAIk9I,EAAqBr9I,IAAYI,iBAAiBjS,EAAOkE,KAAKxB,MAAMsP,OAExE,OAA8B,OAAvBk9I,QAAsDvlJ,IAAvBulJ,EAAmCA,EAAqBlvJ,EACzF,OAAOA,EACT,MAAO,KAEf,CACDgC,IAAK,mBACLhC,MAAO,SAA0BA,GAC/B,IAAI+5H,EAAiB71H,KAAKi3H,YAAYn7H,GACtCkE,KAAK8rF,SAAS/8E,QAAQjT,MAAQ+5H,IAE/B,CACD/3H,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,EAChBizC,WAAW,MAGd,CACDnsJ,IAAK,iBACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAKw6G,iBAEN,CACD18G,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAMysJ,eAAiBjrJ,KAAKxB,MAAMqrJ,aAAe7pJ,KAAKxB,MAAMqrJ,YAAYlvJ,QAC/EoF,IAAWya,SAASxa,KAAK43G,WAAW7oG,QAAQwpC,WAAWA,WAAY,iBAGtE,CACDz6C,IAAK,mBACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBACL16G,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,kBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,eACLhC,MAAO,WACL,IAAIyC,EAASyB,KAAKxB,MAAMwnH,SAAWhmH,KAAKkrJ,eAAiBlrJ,KAAK8rF,SAAS/8E,QACvEhP,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAASxQ,EAAQyB,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAE5F,CACDlG,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B+P,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAGhB,CACDhM,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9BrU,KAAK8rF,SAAS/8E,QAAQq9E,QACU,UAA5BpsF,KAAKxB,MAAM2sJ,aAA0BnrJ,KAAKiG,OAAOoO,EAAO,GAAI,YAAiD,YAA5BrU,KAAKxB,MAAM2sJ,cAA4BnrJ,KAAKiG,OAAOoO,EAAOrU,KAAK8rF,SAAS/8E,QAAQjT,MAAO,YAExKkE,KAAKxB,MAAM2rJ,iBACbnqJ,KAAKxB,MAAM2rJ,gBAAgB,CACzBx0I,cAAetB,EACfm2I,MAAOxqJ,KAAK8rF,SAAS/8E,QAAQjT,UAIlC,CACDgC,IAAK,aACLhC,MAAO,SAAoBuY,EAAOgoD,GAChC,IAAI+uF,EAAeprJ,KAAKxB,MAAM1C,MAAMugE,GAChCm6D,EAAWx2H,KAAKxB,MAAM1C,MAAMkC,QAAO,SAAUqY,EAAKzb,GACpD,OAAOyhE,IAAUzhE,KAEnBoF,KAAKoU,YAAYC,EAAOmiH,GAEpBx2H,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACfvY,MAAOsvJ,MAIZ,CACDttJ,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,GAAIrU,KAAKod,MAAM45F,eAAgB,CAC7B,IAAI8D,EAAgB/6G,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,kBAEnE,OAAQsF,EAAMM,OAEZ,KAAK,GACH,GAAImmG,EAAe,CACjB,IAAIuwC,EAAcrrJ,KAAKsrJ,aAAaxwC,GAEhCuwC,IACFtrJ,IAAWya,SAAS6wI,EAAa,eACjCtrJ,IAAWma,YAAY4gG,EAAe,eACtC/6G,IAAWo8G,aAAan8G,KAAK43G,WAAW7oG,QAASs8I,SAGnDvwC,EAAgB/6G,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,MAE3DhP,IAAW6uF,SAASksB,EAAe,+BACrCA,EAAgB96G,KAAKsrJ,aAAaxwC,IAGhCA,GACF/6G,IAAWya,SAASsgG,EAAe,eAIvCzmG,EAAMY,iBACN,MAGF,KAAK,GACH,GAAI6lG,EAAe,CACjB,IAAIywC,EAAkBvrJ,KAAKwrJ,aAAa1wC,GAEpCywC,IACFxrJ,IAAWya,SAAS+wI,EAAiB,eACrCxrJ,IAAWma,YAAY4gG,EAAe,eACtC/6G,IAAWo8G,aAAan8G,KAAK43G,WAAW7oG,QAASw8I,IAIrDl3I,EAAMY,iBACN,MAGF,KAAK,GACC6lG,IACF96G,KAAKyrJ,oBAAoBp3I,EAAOymG,GAChC96G,KAAK+3G,eAGP1jG,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAK+3G,cACL1jG,EAAMY,iBACN,MAGF,KAAK,EACC6lG,GACF96G,KAAKyrJ,oBAAoBp3I,EAAOymG,GAGlC96G,KAAK+3G,eAKX,GAAI/3G,KAAKxB,MAAMwnH,UAGN,IAFC3xG,EAAMM,MAGV,GAAI3U,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,SAAWqF,KAAK8rF,SAAS/8E,QAAQjT,MAAO,CAC/E,IAAIsvJ,EAAeprJ,KAAKxB,MAAM1C,MAAMkE,KAAKxB,MAAM1C,MAAMnB,OAAS,GAC1D67H,EAAWx2H,KAAKxB,MAAM1C,MAAMS,MAAM,GAAI,GAC1CyD,KAAKoU,YAAYC,EAAOmiH,GAEpBx2H,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACfvY,MAAOsvJ,OASpB,CACDttJ,IAAK,sBACLhC,MAAO,SAA6BuY,EAAOtK,GACzC,GAAI/J,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAIT,EAAct0G,KAAKxB,MAAMqrJ,YAAY9/I,EAAKlC,QAAQ+wG,OACtD54G,KAAKw4G,WAAWnkG,EAAOrU,KAAKu0G,uBAAuBD,GAAavqG,EAAKlC,QAAQw0D,aAE7Er8D,KAAKw4G,WAAWnkG,EAAOrU,KAAKxB,MAAMqrJ,YAAY9pJ,IAAWs8D,MAAMtyD,OAGlE,CACDjM,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAO83D,EAAW3rJ,IAAW6uF,SAAS88D,EAAU,6BAA+B1rJ,KAAKsrJ,aAAaI,GAAYA,EAAW,OAEzH,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAOq9D,EAAW5rJ,IAAW6uF,SAAS+8D,EAAU,6BAA+B3rJ,KAAKwrJ,aAAaG,GAAYA,EAAW,OAEzH,CACD7tJ,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAI6M,EAASlhB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACG3qE,EAAO1iB,MAAMgU,SACf0O,EAAO1iB,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,qBACLhC,MAAO,SAA4BuY,GACjC,IAAIq/E,GAAQ,EACRojC,EAAaziH,EAAM9V,OAAOzC,MAAMwU,OAEpC,GAAItQ,KAAKxB,MAAMqrJ,YAAa,CAC1B,IACIziJ,EADAM,EAAY+H,EAA2BzP,KAAKxB,MAAMqrJ,aAGtD,IACE,IAAKniJ,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAImO,EAAO3C,EAAMtL,MACb8vJ,EAAY5rJ,KAAKxB,MAAMsP,MAAQH,IAAYI,iBAAiBhE,EAAM/J,KAAKxB,MAAMsP,OAAS/D,EAE1F,GAAI6hJ,GAAa90B,IAAe80B,EAAUt7I,OAAQ,CAChDojF,GAAQ,EACR1zF,KAAKw4G,WAAWnkG,EAAOtK,GAAM,GAC7B,QAGJ,MAAOhO,GACP2L,EAAUlI,EAAEzD,GAZd,QAcE2L,EAAUjI,KAITi0F,IACH1zF,KAAK8rF,SAAS/8E,QAAQjT,MAAQ,GAC9BkE,KAAKoU,YAAYC,EAAO,MAEpBrU,KAAKxB,MAAMisJ,SACbzqJ,KAAKxB,MAAMisJ,QAAQp2I,MAIxB,CACDvW,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAIsN,EAAS3hB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGlqE,EAAOnjB,MAAMqtJ,gBACflqI,EAAOmqI,mBAAmBz3I,GAGxBsN,EAAOnjB,MAAMiU,QACfkP,EAAOnjB,MAAMiU,OAAO4B,QAIzB,CACDvW,IAAK,wBACLhC,MAAO,SAA+BuY,GACpCrU,KAAK8rF,SAAS/8E,QAAQq9E,QAElBpsF,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ3rD,KAGtB,CACDvW,IAAK,oBACLhC,MAAO,SAA2BuY,GAChCrU,KAAKi3G,aAAa5iG,GAClBtU,IAAWya,SAASxa,KAAKkrJ,eAAgB,aAE1C,CACDptJ,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/BrU,KAAKk3G,YAAY7iG,GACjBtU,IAAWma,YAAYla,KAAKkrJ,eAAgB,aAE7C,CACDptJ,IAAK,aACLhC,MAAO,SAAoBua,GACzB,IAAIy6E,GAAW,EAEf,GAAI9wF,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OACvC,IAAK,IAAIC,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM1C,MAAMnB,OAAQC,IAC3C,GAAI+S,IAAY0B,OAAOrP,KAAKxB,MAAM1C,MAAMlB,GAAIyb,GAAM,CAChDy6E,GAAW,EACX,MAKN,OAAOA,IAER,CACDhzF,IAAK,kBACLhC,MAAO,SAAyB6jB,GAC9B,IAAI08C,GAAS,EAEb,GAAIr8D,KAAKxB,MAAMqrJ,YACb,IAAK,IAAIjvJ,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMqrJ,YAAYlvJ,OAAQC,IACjD,GAAI+S,IAAY0B,OAAOsQ,EAAQ3f,KAAKxB,MAAMqrJ,YAAYjvJ,IAAK,CACzDyhE,EAAQzhE,EACR,MAKN,OAAOyhE,IAER,CACDv+D,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,OAAOt0G,KAAKxB,MAAMu2G,iBAAmBpnG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,kBAAoBT,IAE/G,CACDx2G,IAAK,yBACLhC,MAAO,SAAgCw4G,GACrC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMg9G,uBAE7D,CACD19G,IAAK,4BACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjB,IAAhBA,EAAMM,OAKN2N,EAAOlF,MAAM45F,gBAAkB10F,EAAO4wE,iBAAiB7+E,IACzDiO,EAAOy1F,eAIXr3G,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK8J,WAAW,WACjE2Y,EAAOrF,MAAM45F,gBACfv0F,EAAOs1F,kBAKb/3G,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAERA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChB93F,EAAOlG,MAAM45F,iBAAmBj3G,IAAWyiB,aAC7Cc,EAAOy0F,eAIXn3G,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAK8J,WAAa9J,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,UAAY/O,KAAK43G,WAAW7oG,QAAQ1L,SAASgR,EAAM9V,UAAYyB,KAAK+rJ,eAAe13I,KAEhJ,CACDvW,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,OAAIrU,KAAKxB,MAAMwnH,SAAiB3xG,EAAM9V,SAAWyB,KAAKkrJ,gBAAkBlrJ,KAAKkrJ,eAAe7nJ,SAASgR,EAAM9V,QAAoB8V,EAAM9V,SAAWyB,KAAK8rF,SAAS/8E,UAE/J,CACDjR,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEArsF,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,gBAIJ5W,KAAKxB,MAAMw9G,WAAah8G,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SACzD/O,KAAK8rF,SAAS/8E,QAAQq9E,QAGpBpsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUqmI,cAAgB7pJ,KAAKxB,MAAMqrJ,aAAe7pJ,KAAKod,MAAM6sI,YAC7DjqJ,KAAKxB,MAAMqrJ,aAAe7pJ,KAAKxB,MAAMqrJ,YAAYlvJ,OACnDqF,KAAKg4G,cAELh4G,KAAK+3G,cAGP/3G,KAAKwd,SAAS,CACZysI,WAAW,KAIXjqJ,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,UAAY/O,KAAKxB,MAAMwnH,UACxDhmH,KAAKi8G,iBAAiBj8G,KAAKxB,MAAM1C,OAG/B0nB,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAxoBvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAwoB/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGb/4E,KAAK4lB,SACP7P,aAAa/V,KAAK4lB,SAGpB9O,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,2BACLhC,MAAO,WACL,IAAIo/H,EAAiBj+H,YAAW,uBAAwB+C,KAAKxB,MAAM08H,eAAgB,CACjF,0BAA2Bl7H,KAAKxB,MAAMwtJ,WAExC,OAAoBnxI,IAAM7P,cAAc2vE,IAAW,CACjD7/D,IAAK9a,KAAK8rF,SACVhoE,GAAI9jB,KAAKxB,MAAMmuF,QACfnvF,KAAMwC,KAAKxB,MAAMhB,KACjBf,KAAMuD,KAAKxB,MAAM/B,KACjB89E,aAAcv6E,KAAKi3H,YAAYj3H,KAAKxB,MAAM1C,OAC1CioB,KAAM,YACN,oBAAqB,OACrB,gBAAiB/jB,KAAKod,MAAM0G,GAAK,QACjC,kBAAmB9jB,KAAKxB,MAAMkuF,eAC9BnvF,UAAW29H,EACX96H,MAAOJ,KAAKxB,MAAM48H,WAClBtlB,aAAc,MACdzjG,SAAUrS,KAAKxB,MAAM6T,SACrBoN,SAAUzf,KAAKxB,MAAMihB,SACrBmkF,YAAa5jG,KAAKxB,MAAMolG,YACxBuhB,KAAMnlH,KAAKxB,MAAM2mH,KACjBthB,UAAW7jG,KAAKxB,MAAM88H,UACtBx2D,SAAU9kE,KAAKxB,MAAMsmE,SACrBryD,OAAQzS,KAAKk3G,YACb1kG,QAASxS,KAAKi3G,aACd1kG,SAAUvS,KAAKkqJ,cACfpwI,YAAa9Z,KAAKxB,MAAMsb,YACxB6pG,QAAS3jH,KAAKxB,MAAMmlH,QACpBlvG,UAAWzU,KAAKm3G,eAChBjiG,WAAYlV,KAAKxB,MAAM0W,WACvBu3E,cAAezsF,KAAKxB,MAAMiuF,cAC1BzsB,QAAShgE,KAAKxB,MAAMwhE,QACpBo2B,cAAep2F,KAAKxB,MAAMytJ,eAG7B,CACDnuJ,IAAK,cACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAEb,OAAIA,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAChCqF,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAU0Y,EAAKgmD,GACzC,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,EAAQ,aACb9+D,UAAW,oCACGsd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,8BACVmmB,EAAOuzG,YAAY5gH,KAAQqN,EAAOllB,MAAMihB,UAAyB5E,IAAM7P,cAAc,OAAQ,CAC9FzN,UAAW,+CACXyiE,QAAS,SAAiBxgE,GACxB,OAAOkkB,EAAO8jF,WAAWhoG,EAAG68D,UAM7B,OAER,CACDv+D,IAAK,mBACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,8BACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACVtuF,KAAMwC,KAAKxB,MAAMhB,KACjBiiB,SAAUzf,KAAKxB,MAAMihB,SACrBmkF,YAAa5jG,KAAKxB,MAAMolG,YACxB7/E,KAAM,YACN,oBAAqB,OACrB,gBAAiB/jB,KAAKod,MAAM0G,GAAK,QACjC,kBAAmB9jB,KAAKxB,MAAMkuF,eAC9BopB,aAAc,MACdhxC,SAAU9kE,KAAKxB,MAAMsmE,SACrBvyD,SAAUvS,KAAKkqJ,cACfpmI,GAAI9jB,KAAKxB,MAAMmuF,QACflwF,KAAMuD,KAAKxB,MAAM/B,KACjB2D,MAAOJ,KAAKxB,MAAM48H,WAClB79H,UAAWyC,KAAKxB,MAAM08H,eACtBr3B,UAAW7jG,KAAKxB,MAAM88H,UACtB3X,QAAS3jH,KAAKxB,MAAMmlH,QACpBlvG,UAAWzU,KAAKm3G,eAChBjiG,WAAYlV,KAAKxB,MAAM0W,WACvB1C,QAASxS,KAAKqqJ,kBACd53I,OAAQzS,KAAKsqJ,sBAGhB,CACDxsJ,IAAK,6BACLhC,MAAO,WACL,IAAI6nB,EAAS3jB,KAETksJ,EAAsBjvJ,YAAW,4DAA6D,CAChG,aAAc+C,KAAKxB,MAAMihB,WAEvBsZ,EAAS/4B,KAAKmsJ,cACdp8H,EAAQ/vB,KAAKosJ,mBACjB,OAAoBvxI,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB0jB,EAAOunI,eAAiBjrJ,GAE1B1C,UAAW2uJ,EACXz/D,cAAezsF,KAAKxB,MAAMiuF,cAC1B3yE,YAAa9Z,KAAKxB,MAAMsb,YACxBkmD,QAAShgE,KAAKoqJ,sBACdh0D,cAAep2F,KAAKxB,MAAMytJ,YACzBlzH,EAAQhJ,KAEZ,CACDjyB,IAAK,iBACLhC,MAAO,WACL,IAAIq/G,EAAUn7G,KAEd,OAAoB6a,IAAM7P,cAAcovE,IAAQ,CAC9Ct/D,IAAK,SAAa7a,GAChB,OAAOk7G,EAAQkxC,eAAiBpsJ,GAElCzC,KAAM,SACN07E,KAAMl5E,KAAKxB,MAAMm+G,aACjBp/G,UAAW,0BACXkiB,SAAUzf,KAAKxB,MAAMihB,SACrBugD,QAAShgE,KAAKmqJ,oBAGjB,CACDrsJ,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKod,MAAM6sI,UACOpvI,IAAM7P,cAAc,IAAK,CAC3CzN,UAAW,gDAIR,OAER,CACDO,IAAK,SACLhC,MAAO,WACL,IAEIi0B,EAAOi8H,EAFP3vC,EAAUr8G,KAGVzC,EAAYN,YAAW,4CAA6C+C,KAAKxB,MAAMjB,UAAW,CAC5F,oBAAqByC,KAAKxB,MAAMwtJ,SAChC,0BAA2BhsJ,KAAKxB,MAAMwnH,SACtC,wBAAyBhmH,KAAKxB,MAAM1C,MACpC,uBAAwBkE,KAAKod,MAAMyuE,UAEjCsmB,EAASnyG,KAAKmzG,eAOlB,OANyBpjF,EAArB/vB,KAAKxB,MAAMwnH,SAAkBhmH,KAAKssJ,6BAA0CtsJ,KAAKusJ,2BAEjFvsJ,KAAKxB,MAAMwtJ,WACbA,EAAWhsJ,KAAKwsJ,kBAGE3xI,IAAM7P,cAAc,OAAQ,CAC9C8P,IAAK,SAAa7a,GAChB,OAAOo8G,EAAQvyG,UAAY7J,GAE7B6jB,GAAI9jB,KAAKod,MAAM0G,GACf1jB,MAAOJ,KAAKxB,MAAM4B,MAClB7C,UAAWA,EACX,gBAAiB,UACjB,gBAAiByC,KAAKod,MAAM45F,eAC5B,YAAah3G,KAAKod,MAAM0G,GAAK,SAC5BiM,EAAOoiF,EAAQ65C,EAAuBnxI,IAAM7P,cAAc++I,EAAmBtxE,EAAS,CACvF39D,IAAK9a,KAAK43G,WACV7D,mBAAoB/zG,KAAK+zG,oBACxB/zG,KAAKxB,MAAO,CACbsrJ,OAAQ9pJ,KAAKod,MAAM0G,GAAK,QACxB62H,YAAa36I,KAAKw4G,WAClBmxC,aAAc3pJ,KAAK2pJ,aACnB3pF,QAAShgE,KAAKs3G,aACdpC,oBAAqBl1G,KAAKk1G,oBAC1BX,uBAAwBv0G,KAAKu0G,uBAC7B5uF,GAAI3lB,KAAKod,MAAM45F,eACf9xF,QAASllB,KAAKu3G,eACdpyF,WAAYnlB,KAAKuqJ,kBACjBnlI,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,wBAKdsyC,EA31BuB,CA41B9BhvI,aAEFxK,EAAgBw5I,EAAc,eAAgB,CAC5ClmI,GAAI,KACJgoE,SAAU,KACVhwF,MAAO,KACPW,KAAM,KACNe,KAAM,OACNqsJ,YAAa,KACb/7I,MAAO,KACPinG,iBAAkB,KAClByG,oBAAqB,KACrBvG,oBAAqB,KACrB42C,gBAAgB,EAChBZ,eAAe,EACfj1C,uBAAwB,KACxBp5D,aAAc,QACdovG,UAAU,EACVb,aAAc,QACdnlC,UAAU,EACV0kC,UAAW,EACX5nI,MAAO,IACP1iB,MAAO,KACP7C,UAAW,KACXovF,QAAS,KACTyuC,WAAY,KACZF,eAAgB,KAChB1kB,eAAgB,KAChBK,WAAY,KACZjT,YAAa,KACbvxF,UAAU,EACVoN,UAAU,EACV67G,UAAW,KACXnW,KAAM,KACNnhH,SAAU,KACV8gE,SAAU,KACVk3C,WAAW,EACXjjC,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBi+D,eAAgB,KAChB91C,aAAc,KACdg2C,qBAAsB,KACtBj0C,kBAAmB,KACnB+F,aAAc,qBACdpqG,SAAU,KACVC,QAAS,KACTC,OAAQ,KACR2nF,SAAU,KACVD,WAAY,KACZgwD,gBAAiB,KACjBnqF,QAAS,KACTisF,WAAY,KACZnyI,YAAa,KACb6pG,QAAS,KACTzuG,WAAY,KACZu3E,cAAe,KACfg+D,QAAS,KACT1pI,OAAQ,KACRU,OAAQ,Q,6BClvCV,6DAGA,SAAS/R,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GASjG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI29I,EAAqB,SAAU7yI,IApEnC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUi0I,EAAO7yI,GAEjB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAa0nI,GAE1B,SAASA,EAAMjuJ,GACb,IAAI+G,EAcJ,OA/HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMysJ,IAEtBlnJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMmnJ,eAAiBnnJ,EAAMmnJ,eAAe3yI,KAAK7B,EAAuB3S,IACxEA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAM6tH,QAAU7tH,EAAM6tH,QAAQr5G,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAiUT,OAhboBlH,EAkHPouJ,EAlHoB1tJ,EAkHb,CAAC,CACnBjB,IAAK,aACLhC,MAAO,SAAoBuY,EAAOgoD,GAChC,IAAIr8D,KAAKxB,MAAMihB,SAAf,CAIA,IAAIm/F,EAAS7xB,EAAmB/sF,KAAKxB,MAAM1C,OAEvC6wJ,EAAc/tC,EAAO3vG,OAAOotD,EAAO,GAEnCr8D,KAAKxB,MAAMiiH,UACbzgH,KAAKxB,MAAMiiH,SAAS,CAClB9qG,cAAetB,EACfvY,MAAO6wJ,IAIP3sJ,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAO8iH,EACPzyB,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAO8iH,QAKd,CACD9gH,IAAK,UACLhC,MAAO,SAAiBuY,EAAOtK,EAAMkL,GACnC,GAAIlL,GAAQA,EAAKuG,OAAO3V,OAAQ,CAC9B,IAAIikH,EAAS5+G,KAAKxB,MAAM1C,MAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAAS,IAEnEkE,KAAKxB,MAAMouJ,iBAA4C,IAA1BhuC,EAAOlzG,QAAQ3B,MAC9C60G,EAAO/iH,KAAKkO,GAER/J,KAAKxB,MAAMquJ,OACb7sJ,KAAKxB,MAAMquJ,MAAM,CACfl3I,cAAetB,EACfvY,MAAOiO,KAKb/J,KAAK02H,YAAYriH,EAAOuqG,EAAQ3pG,MAGnC,CACDnX,IAAK,iBACLhC,MAAO,WACLkE,KAAK8rF,SAAS/8E,QAAQq9E,UAEvB,CACDtuF,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,IAAIyiH,EAAaziH,EAAM9V,OAAOzC,MAC1B8iH,EAAS5+G,KAAKxB,MAAM1C,OAAS,GAEjC,OAAQuY,EAAMM,OAEZ,KAAK,EACwC,IAAvC3U,KAAK8rF,SAAS/8E,QAAQjT,MAAMnB,QAAgBikH,EAAOjkH,OAAS,GAC9DqF,KAAKwnG,WAAWnzF,EAAOuqG,EAAOjkH,OAAS,GAGzC,MAGF,KAAK,GACCm8H,GAAcA,EAAWxmH,OAAO3V,UAAYqF,KAAKxB,MAAM6G,KAAOrF,KAAKxB,MAAM6G,IAAMu5G,EAAOjkH,SACxFqF,KAAK8sJ,QAAQz4I,EAAOyiH,GAAY,GAGlC,MAEF,QACM92H,KAAK+sJ,aACP14I,EAAMY,iBACGjV,KAAKxB,MAAMi1B,WACS,MAAzBzzB,KAAKxB,MAAMi1B,WAAqC,MAAhBpf,EAAMM,OACxC3U,KAAK8sJ,QAAQz4I,EAAOyiH,GAAY,MAOzC,CACDh5H,IAAK,cACLhC,MAAO,SAAqBuY,EAAO6hG,EAAOjhG,GACpCjV,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOo6G,EACP/pB,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOo6G,KAKbl2G,KAAK8rF,SAAS/8E,QAAQjT,MAAQ,GAE1BmZ,GACFZ,EAAMY,mBAGT,CACDnX,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIsG,EAAS3a,KAEb,GAAIA,KAAKxB,MAAMi1B,UAAW,CACxB,IAAIu5H,GAAc34I,EAAMmkH,eAAiB53H,OAAM,eAAmB63H,QAAQ,QAE1E,GAAIu0B,EAAY,CACd,IAAIpuC,EAAS5+G,KAAKxB,MAAM1C,OAAS,GAC7BmxJ,EAAeD,EAAWjqJ,MAAM/C,KAAKxB,MAAMi1B,WAC/Cw5H,EAAeA,EAAajvJ,QAAO,SAAUqY,GAC3C,OAAQsE,EAAOnc,MAAMouJ,iBAA2C,IAAzBhuC,EAAOlzG,QAAQ2K,KAAgBA,EAAI/F,OAAO3V,UAEnFikH,EAAS,GAAG7gH,OAAOgvF,EAAmB6xB,GAAS7xB,EAAmBkgE,IAClEjtJ,KAAK02H,YAAYriH,EAAOuqG,GAAQ,OAIrC,CACD9gH,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAI6M,EAASlhB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACG3qE,EAAO1iB,MAAMgU,SACf0O,EAAO1iB,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAIsN,EAAS3hB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGlqE,EAAOnjB,MAAMiU,QACfkP,EAAOnjB,MAAMiU,OAAO4B,QAIzB,CACDvW,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM6G,KAAOrF,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM6G,MAAQrF,KAAKxB,MAAM1C,MAAMnB,SAElF,CACDmD,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,QAAUqF,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SAAW/O,KAAK8rF,SAAS/8E,QAAQjT,OAASkE,KAAK8rF,SAAS/8E,QAAQjT,MAAMnB,SAE5J,CACDmD,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjC,IAAI0pI,EAAcltJ,KAAKxB,MAAM1C,OAAS0nB,EAAU1nB,OAAS0nB,EAAU1nB,MAAMnB,SAAWqF,KAAKxB,MAAM1C,MAAMnB,OAEjGqF,KAAKxB,MAAMu6E,UACTv1D,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,eAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OArOzC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAqO7dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,iBACrCk0E,GAAeltJ,KAAK+4E,UAC9B/4E,KAAK+4E,QAAQo0E,aACbntJ,KAAK+4E,QAAQq0E,eAIlB,CACDtvJ,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8rF,SAAS/8E,QACtBs+I,gBAAiBrtJ,KAAKstJ,YACtBtuI,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,aACLhC,MAAO,SAAoBA,EAAOugE,GAChC,IAAI/5C,EAAStiB,KAETgf,EAAUhf,KAAKxB,MAAMq2G,aAAe70G,KAAKxB,MAAMq2G,aAAa/4G,GAASA,EACrEo9E,EAAOl5E,KAAKxB,MAAMihB,SAAW,KAAoB5E,IAAM7P,cAAc,OAAQ,CAC/EzN,UAAW,wCACXyiE,QAAS,SAAiB3rD,GACxB,OAAOiO,EAAOklF,WAAWnzF,EAAOgoD,MAGpC,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,EACL9+D,UAAW,6BACGsd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,uBACVyhB,GAAUk6D,KAEd,CACDp7E,IAAK,qBACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACV8X,YAAa5jG,KAAKxB,MAAMolG,YACxBpmG,KAAM,OACNf,KAAMuD,KAAKxB,MAAM/B,KACjBgjB,SAAUzf,KAAKxB,MAAMihB,UAAYzf,KAAK+sJ,aACtCt4I,UAAWzU,KAAKyU,UAChB2+G,QAASpzH,KAAKozH,QACd5gH,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACb,kBAAmBzS,KAAKxB,MAAMkuF,oBAGjC,CACD5uF,IAAK,cACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEb,OAAIA,KAAKxB,MAAM1C,MACNkE,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAU7B,EAAOugE,GAC3C,OAAO55C,EAAO6yF,WAAWx5G,EAAOugE,MAI7B,OAER,CACDv+D,IAAK,aACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAETzC,EAAYN,YAAW,yCAA0C,CACnE,aAAc+C,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,UAEpBqqB,EAAQl2G,KAAKu2G,cACb0lB,EAAej8H,KAAKk8H,qBACxB,OAAoBrhH,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOgqI,YAAcrtJ,GAE9B1C,UAAWA,EACXyiE,QAAShgE,KAAK0sJ,gBACbx2C,EAAO+lB,KAEX,CACDn+H,IAAK,SACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAETzC,EAAYN,YAAW,qCAAsC+C,KAAKxB,MAAMjB,UAAW,CACrF,wBAAyByC,KAAKy6E,WAC9B,uBAAwBz6E,KAAKod,MAAMyuE,UAEjC38E,EAAOlP,KAAKutJ,aAChB,OAAoB1yI,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOyjB,EAAOnhB,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB8O,MA3aHnQ,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA8azCytJ,EArVgB,CAsVvBzxI,aAEFxK,EAAgBi8I,EAAO,eAAgB,CACrC3oI,GAAI,KACJgoE,SAAU,KACVrvF,KAAM,KACNmnG,YAAa,KACb9nG,MAAO,KACPuJ,IAAK,KACLoa,SAAU,KACVrf,MAAO,KACP7C,UAAW,KACXw7E,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBj5D,UAAW,KACXm5H,gBAAgB,EAChB/3C,aAAc,KACdg4C,MAAO,KACPpsC,SAAU,KACVluG,SAAU,KACVC,QAAS,KACTC,OAAQ,Q,6BC7fV,mFAMA,SAASgmE,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASiC,EAAoB3E,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2E,EAAoB3E,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWiD,EAAoBnD,EAAGC,QAA3G,GAQ2DmD,CAA8B5E,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASyT,EAAUC,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIpV,SAAS4yF,EAAeroF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P8hG,GAA+B,OAAO,WAAkC,IAAsCxyF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI88E,EAAwB,SAAUhyE,GACpCpB,EAAUozE,EAAUhyE,GAEpB,IAAIC,EAASwnF,EAAezV,GAE5B,SAASA,EAASptF,GAChB,IAAI+G,EAaJ,OAXApH,EAAgB6B,KAAM4rF,IAEtBrmF,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EA+JT,OA5JAzG,EAAa8sF,EAAU,CAAC,CACtB9tF,IAAK,UACLhC,MAAO,SAAiB0D,GACtB,IAAKQ,KAAKxB,MAAMihB,WAAazf,KAAKxB,MAAM6T,UAAYrS,KAAKxB,MAAM+T,SAAU,CACvE,IAAIzW,EAAQkE,KAAK+rF,YAAc/rF,KAAKxB,MAAMwtF,WAAahsF,KAAKxB,MAAMytF,UAClEjsF,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAenW,EACf1D,MAAOkE,KAAKxB,MAAM1C,MAClBowF,QAASpwF,EACTqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACNf,KAAM,WACNf,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOkE,KAAKxB,MAAM1C,MAClBowF,QAASpwF,KAGbkE,KAAK8rF,SAAS/8E,QAAQm9E,SAAWlsF,KAAK+rF,YACtC/rF,KAAK8rF,SAAS/8E,QAAQq9E,QACtB5sF,EAAEyV,oBAGL,CACDnX,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GACjCxjB,KAAK8rF,SAAS/8E,QAAQm9E,QAAUlsF,KAAK+rF,YAEjCvoE,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAvFvC,SAAyB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAK6V,EAAUrU,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmBR,EAAUrU,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAuFreyS,CAAgB,CACpDgO,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,YACLhC,MAAO,SAAmBuY,GACN,UAAdA,EAAMvW,MACRkC,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAGT,CACDnX,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0tF,UAAYlsF,KAAKxB,MAAMytF,YAE1C,CACDnuF,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETssF,EAAiBrvF,YAAW,yBAA0B,CACxD,qBAAsB+C,KAAK+rF,YAC3B,sBAAuB/rF,KAAKxB,MAAMihB,SAClC,qBAAsBzf,KAAKod,MAAMyuE,SAChC7rF,KAAKxB,MAAMjB,WACVgvF,EAAWtvF,YAAW,iBAAkB,CAC1C,cAAe+C,KAAK+rF,YACpB,aAAc/rF,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,UAEpBW,EAAYvvF,YAAW,sBAAuBuT,EAAgB,GAAIxQ,KAAKxB,MAAM06E,KAAMl5E,KAAK+rF,cAC5F,OAAoBlxE,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAOpY,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAW+uF,EACXlsF,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKggE,QACdysB,cAAezsF,KAAKxB,MAAMiuF,cAC1B3yE,YAAa9Z,KAAKxB,MAAMsb,aACVe,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACVtuF,KAAM,WACN,kBAAmBwC,KAAKxB,MAAMkuF,eAC9B5oE,GAAI9jB,KAAKxB,MAAMmuF,QACflwF,KAAMuD,KAAKxB,MAAM/B,KACjBqoE,SAAU9kE,KAAKxB,MAAMsmE,SACrB8nB,eAAgB5sF,KAAK+rF,YACrBt3E,UAAWzU,KAAKyU,UAChBjC,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbgN,SAAUzf,KAAKxB,MAAMihB,SACrBpN,SAAUrS,KAAKxB,MAAM6T,SACrBw6E,SAAU7sF,KAAKxB,MAAMquF,YACLhyE,IAAM7P,cAAc,MAAO,CAC3CzN,UAAWgvF,EACXzxE,IAAK,SAAa7a,GAChB,OAAO0a,EAAOmyE,IAAM7sF,GAEtB8jB,KAAM,WACN,eAAgB/jB,KAAK+rF,aACPlxE,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAWivF,UAKVZ,EAlLmB,CAmL1B5wE,aA0BF,SAASjC,EAAeC,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pga,GAA+B,OAAO,WAAkC,IAAsC1K,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAxBha0B,EAAgBo7E,EAAU,eAAgB,CACxC9nE,GAAI,KACJgoE,SAAU,KACVa,QAAS,KACT7wF,MAAO,KACPW,KAAM,KACNyvF,SAAS,EACTD,WAAW,EACXD,YAAY,EACZ5rF,MAAO,KACP7C,UAAW,KACXkiB,UAAU,EACVotE,UAAU,EACVx6E,UAAU,EACVyyD,SAAU,KACVoU,KAAM,cACNH,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBn6E,SAAU,KACVuH,YAAa,KACb2yE,cAAe,OAMjB,IAAI+gE,EAAiC,SAAU5zI,GAC7CpB,EAAUg1I,EAAmB5zI,GAE7B,IAAIC,EAASd,EAAey0I,GAE5B,SAASA,EAAkBhvJ,GACzB,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAMwtJ,IAEtBjoJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4jG,SAAW78F,EAAM68F,SAASroF,KAAK7B,EAAuB3S,IAC5DA,EAAMkoJ,YAAcloJ,EAAMkoJ,YAAY1zI,KAAK7B,EAAuB3S,IAC3DA,EAqFT,OAlFAzG,EAAa0uJ,EAAmB,CAAC,CAC/B1vJ,IAAK,WACLhC,MAAO,SAAkBuY,GACnBrU,KAAKxB,MAAM4jG,UACbpiG,KAAKxB,MAAM4jG,SAAS,CAClBzsF,cAAetB,EACfm2I,MAAOn2I,EAAM9V,OAAOzC,UAIzB,CACDgC,IAAK,cACLhC,MAAO,SAAqBuY,GACtBrU,KAAKxB,MAAMivJ,aACbztJ,KAAKxB,MAAMivJ,YAAY,CACrB93I,cAAetB,EACf63E,QAASlsF,KAAKxB,MAAMkvJ,cAIzB,CACD5vJ,IAAK,sBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMR,OACO6c,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,kCACGsd,IAAM7P,cAAc2vE,IAAW,CAC7Cn9E,KAAM,OACNumB,KAAM,UACNjoB,MAAOkE,KAAKxB,MAAMqR,YAClB0C,SAAUvS,KAAKoiG,SACf7kG,UAAW,uBACXqmG,YAAa5jG,KAAKxB,MAAM88E,oBACTzgE,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,4CAIR,OAER,CACDO,IAAK,SACLhC,MAAO,WACL,IAAI2/E,EAAgBz7E,KAAK2tJ,sBACrBC,EAAkB5tJ,KAAKxB,MAAMqvJ,eAA8BhzI,IAAM7P,cAAc4gF,EAAU,CAC3FM,QAASlsF,KAAKxB,MAAMkvJ,UACpBn7I,SAAUvS,KAAKytJ,YACf1pI,KAAM,WACN,eAAgB/jB,KAAKxB,MAAMkvJ,YAEzB3c,EAA4Bl2H,IAAM7P,cAAc,SAAU,CAC5DxN,KAAM,SACND,UAAW,6BACXyiE,QAAShgE,KAAKxB,MAAM62E,SACNx6D,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,yCACIsd,IAAM7P,cAAc2O,IAAQ,OACzCpX,EAAuBsY,IAAM7P,cAAc,MAAO,CACpDzN,UAAW,wBACVqwJ,EAAiBnyE,EAAes1D,GAEnC,GAAI/wI,KAAKxB,MAAMyqG,SAAU,CACvB,IAAIsxC,EAAiB,CACnBh9I,UAAW,uBACXqwJ,gBAAiBA,EACjB1hE,QAASlsF,KAAKxB,MAAMkvJ,UACpBn7I,SAAUvS,KAAKytJ,YACfhyE,cAAeA,EACfs1D,aAAcA,EACd+c,sBAAuB,6BACvBC,mBAAoB,uCACpBC,aAAchuJ,KAAKxB,MAAM62E,QACzB9yE,QAASA,EACT/D,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUsxC,GAGxD,OAAOh4I,MAIJirJ,EAlG4B,CAmGnCxyI,aAEF,SAASyB,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIm/I,EAA+B,SAAUr0I,GAC3CpB,EAAUy1I,EAAiBr0I,GAE3B,IAAIC,EAAS4C,EAAewxI,GAE5B,SAASA,EAAgBzvJ,GACvB,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAMiuJ,IAEtB1oJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EAyDT,OAtDAzG,EAAamvJ,EAAiB,CAAC,CAC7BnwJ,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfsL,OAAQ3f,KAAKxB,MAAMmhB,SAIvBtL,EAAMY,mBAEP,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAMiW,WACbzU,KAAKxB,MAAMiW,UAAU,CACnBkB,cAAetB,EACfsL,OAAQ3f,KAAKxB,MAAMmhB,WAIxB,CACD7hB,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,qBAAsB,CAC/C,cAAe+C,KAAKxB,MAAMsyF,SAC1B,aAAc9wF,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMmhB,OAAOpiB,WACjB2wJ,EAAoBjxJ,YAAW,iBAAkB,CACnD,cAAe+C,KAAKxB,MAAMsyF,WAExBq9D,EAAelxJ,YAAW,sBAAuB,CACnD,cAAe+C,KAAKxB,MAAMsyF,WAExB9xE,EAAUhf,KAAKxB,MAAMyqG,SAAWt7F,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUjpG,KAAKxB,MAAMmhB,QAAU3f,KAAKxB,MAAM+6E,MAC/GzU,EAAW9kE,KAAKxB,MAAMihB,SAAW,KAAOzf,KAAKxB,MAAMsmE,UAAY,EACnE,OAAoBjqD,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACd8E,SAAUA,EACVrwD,UAAWzU,KAAKyU,UAChBsP,KAAM,SACN,gBAAiB/jB,KAAKxB,MAAMsyF,UACdj2E,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,0BACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW2wJ,GACGrzI,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4wJ,MACMtzI,IAAM7P,cAAc,OAAQ,KAAMgU,GAAuBnE,IAAM7P,cAAc2O,IAAQ,WAIrGs0I,EAtE0B,CAuEjCjzI,aAaF,SAAS+C,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAASsf,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAfha0B,EAAgBy9I,EAAiB,eAAgB,CAC/CtuI,OAAQ,KACR45D,MAAO,KACPuX,UAAU,EACVrxE,UAAU,EACVqlD,SAAU,KACVmkC,SAAU,KACVjpC,QAAS,KACTvrD,UAAW,OAWb,IAAI25I,EAAyC,SAAUx0I,GACrDpB,EAAU41I,EAA2Bx0I,GAErC,IAAIC,EAASgE,EAAeuwI,GAE5B,SAASA,EAA0B5vJ,GACjC,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAMouJ,IAEtB7oJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB0mB,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAMuuG,oBAAsBvuG,EAAMuuG,oBAAoB/5F,KAAK7B,EAAuB3S,IAC3EA,EAuOT,OApOAzG,EAAasvJ,EAA2B,CAAC,CACvCtwJ,IAAK,UACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEbA,KAAKxB,MAAM0mB,SAAQ,WACjB,GAAIvK,EAAOo5F,mBAAoB,CAC7B,IAAIC,EAAgBr5F,EAAOnc,MAAMy1G,0BAEV,IAAnBD,GACFr5F,EAAOo5F,mBAAmBG,cAAcF,SAK/C,CACDl2G,IAAK,sBACLhC,MAAO,SAA6BuY,GAC9BrU,KAAK+zG,oBACP/zG,KAAK+zG,mBAAmBG,cAAc,GAGxCl0G,KAAKxB,MAAMs1G,qBAAuB9zG,KAAKxB,MAAMs1G,oBAAoBz/F,KAElE,CACDvW,IAAK,gBACLhC,MAAO,WACL,QAASkE,KAAKxB,MAAM61G,gBAAkBr0G,KAAKxB,MAAM61G,eAAe15G,SAAWqF,KAAKxB,MAAMuoG,cAEvF,CACDjpG,IAAK,eACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAcwiJ,EAAmB,CACzDxvJ,OAAQgC,KAAKxB,MAAMR,OACnB6R,YAAa7P,KAAKxB,MAAMqR,YACxBuyF,SAAUpiG,KAAK8zG,oBACfx4B,kBAAmBt7E,KAAKxB,MAAM88E,kBAC9BjG,QAASr1E,KAAKxB,MAAMwvJ,aACpBH,cAAe7tJ,KAAKxB,MAAMqvJ,cAC1BH,UAAW1tJ,KAAKxB,MAAM6yG,gBACtBo8C,YAAaztJ,KAAKxB,MAAMivJ,YACxBxkD,SAAUjpG,KAAKxB,MAAM6vJ,wBAGxB,CACDvwJ,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM8vJ,oBAAqB,CAClC,IAAItvI,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAM8vJ,oBAAqBtuJ,KAAKxB,MAAOwB,KAAKxB,MAAM+vJ,eAC/F,OAAoB1zI,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,wBACVyhB,GAGL,OAAO,OAER,CACDlhB,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,IAAIpzF,EAASlhB,KAGb,OADoBA,KAAKxB,MAAM+1G,uBAAuBD,GACjC32G,KAAI,SAAUgiB,EAAQ1L,GACzC,IAAIugG,EAActzF,EAAO1iB,MAAMi2G,eAAe90F,GAE1C+0F,EAAYzgG,EAAI,IAAMiN,EAAO1iB,MAAMm2G,mBAAmBh1F,GAEtDF,EAAWyB,EAAO1iB,MAAMo2G,iBAAiBj1F,GAEzCmlD,EAAWrlD,EAAW,KAAOyB,EAAO1iB,MAAMsmE,UAAY,EAC1D,OAAoBjqD,IAAM7P,cAAcijJ,EAAiB,CACvDnwJ,IAAK42G,EACLn7B,MAAOi7B,EACP70F,OAAQA,EACRspF,SAAU/nF,EAAO1iB,MAAMq2G,aACvB/jB,SAAU5vE,EAAO1iB,MAAMw0E,WAAWrzD,GAClCqgD,QAAS9+C,EAAO1iB,MAAMgwJ,eACtB/5I,UAAWyM,EAAO1iB,MAAMiwJ,gBACxB3pF,SAAUA,EACVrlD,SAAUA,SAIf,CACD3hB,IAAK,oBACLhC,MAAO,WACL,IAAI05G,EAAqB7nG,IAAY8rE,cAAcz5E,KAAKxB,MAAMg3G,mBAAoBx1G,KAAKxB,OACvF,OAAoBqc,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,+BACVi4G,KAEJ,CACD13G,IAAK,aACLhC,MAAO,SAAoB6jB,EAAQ08C,GACjC,GAAIr8D,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAIC,EAAeh1G,KAAKxB,MAAMy2G,oBAAsBtnG,IAAY8rE,cAAcz5E,KAAKxB,MAAMy2G,oBAAqBt1F,EAAQ08C,GAASr8D,KAAKxB,MAAM02G,oBAAoBv1F,GAC1Jw1F,EAAuBn1G,KAAKo1G,oBAAoBz1F,GAChD7hB,EAAMu+D,EAAQ,IAAMr8D,KAAKxB,MAAM62G,wBAAwB11F,GAC3D,OAAoB9E,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKA,GACS+c,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,4BACVy3G,GAAeG,GAElB,IAAIX,EAAcx0G,KAAKxB,MAAMi2G,eAAe90F,GACxC+0F,EAAYr4C,EAAQ,IAAMr8D,KAAKxB,MAAMm2G,mBAAmBh1F,GACxDF,EAAWzf,KAAKxB,MAAMo2G,iBAAiBj1F,GACvCmlD,EAAWrlD,EAAW,KAAOzf,KAAKxB,MAAMsmE,UAAY,EACxD,OAAoBjqD,IAAM7P,cAAcijJ,EAAiB,CACvDnwJ,IAAK42G,EACLn7B,MAAOi7B,EACP70F,OAAQA,EACRspF,SAAUjpG,KAAKxB,MAAMq2G,aACrB/jB,SAAU9wF,KAAKxB,MAAMw0E,WAAWrzD,GAChCqgD,QAAShgE,KAAKxB,MAAMgwJ,eACpB/5I,UAAWzU,KAAKxB,MAAMiwJ,gBACtB3pF,SAAUA,EACVrlD,SAAUA,MAIf,CACD3hB,IAAK,cACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,OAAIA,KAAKxB,MAAM61G,gBAAkBr0G,KAAKxB,MAAM61G,eAAe15G,OAClDqF,KAAKxB,MAAM61G,eAAe12G,KAAI,SAAUgiB,EAAQ08C,GACrD,OAAO16C,EAAO2zF,WAAW31F,EAAQ08C,MAE1Br8D,KAAKxB,MAAMuoG,YACb/mG,KAAK0uJ,oBAGP,OAER,CACD5wJ,IAAK,gBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,GAAIA,KAAKxB,MAAMw3G,uBAAwB,CACrC,IAAIC,EAAuBj4F,EAAgBA,EAAgB,GAAIhe,KAAKxB,MAAMw3G,wBAAyB,CACjG51G,MAAO4d,EAAgBA,EAAgB,GAAIhe,KAAKxB,MAAMw3G,uBAAuB51G,OAAQ,CACnFkB,OAAQtB,KAAKxB,MAAMo+C,eAErBr/C,UAAWN,YAAW,8BAA+B+C,KAAKxB,MAAMw3G,uBAAuBz4G,WACvF24G,MAAOl2G,KAAKxB,MAAM61G,eAClB8B,WAAY,SAAoB9hG,GAC9B,OAAOiO,EAAO9jB,MAAMw3G,uBAAuBG,WAAWn4F,EAAgBA,EAAgB,GAAI3J,GAAQ,CAChGrW,OAAQskB,EAAO9jB,MAAMqR,gBAGzBglG,aAAc,SAAsB9qG,EAAMuH,GACxC,OAAOvH,GAAQuY,EAAOgzF,WAAWvrG,EAAMuH,EAAQ+qD,QAEjD+5C,gBAAiB,SAAyB9kG,GACxC,IAAI/T,EAAYN,YAAW,kCAAmCqU,EAAQ/T,WAClEyhB,EAAUsD,EAAO+zF,gBAAkB/zF,EAAOosI,oBAAsBp9I,EAAQ9O,SAC5E,OAAoBqY,IAAM7P,cAAc,KAAM,CAC5C8P,IAAKxJ,EAAQwJ,IACbvd,UAAWA,EACXwmB,KAAM,UACN,wBAAwB,GACvB/E,MAIP,OAAoBnE,IAAM7P,cAAcsrG,IAAiB79B,EAAS,CAChE39D,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOyxF,mBAAqB9zG,IAEpCg2G,IAEH,IAAIC,EAAQl2G,KAAKu2G,cACjB,OAAoB17F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,8BACX6C,MAAO,CACL0sE,UAAW9sE,KAAKxB,MAAMo+C,eAEV/hC,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,kCACXwmB,KAAM,UACN,wBAAwB,GACvBmyF,MAGN,CACDp4G,IAAK,gBACLhC,MAAO,WACL,IAAI06G,EAAiBv5G,YAAW,kCAAmC,CACjE,yBAA0B+C,KAAKxB,MAAMmwJ,qBACpC3uJ,KAAKxB,MAAMg4G,gBACVx7B,EAASh7E,KAAKi1I,eACdj2H,EAAUhf,KAAKy2G,gBACfv7B,EAASl7E,KAAK0uI,eAClB,OAAoB7zH,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKxB,MAAMo6E,WACpB37E,WAAY,sBACZ0oB,GAAI3lB,KAAKxB,MAAMmnB,GACfC,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKxB,MAAM4mB,UACtBC,OAAQrlB,KAAKxB,MAAM6mB,OACnBE,SAAUvlB,KAAKxB,MAAM+mB,UACP1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWi5G,EACXp2G,MAAOJ,KAAKxB,MAAMq4G,WAClB72C,QAAShgE,KAAKxB,MAAMwhE,SACnBgb,EAAQh8D,EAASk8D,MAErB,CACDp9E,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpBoqJ,EApPoC,CAqP3CpzI,aAEE4zI,EAAgC/zI,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACpE,OAAoBD,IAAM7P,cAAcojJ,EAA2B31E,EAAS,CAC1EG,WAAY99D,GACXtc,OAGL,SAASqmB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASkR,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASkqB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI+/I,EAA2B,SAAUj1I,GACvCpB,EAAUq2I,EAAaj1I,GAEvB,IAAIC,EAASkL,EAAa8pI,GAE1B,SAASA,EAAYrwJ,GACnB,IAAI+G,EAuCJ,OArCApH,EAAgB6B,KAAM6uJ,IAEtBtpJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZpf,OAAQ,GACR6tF,SAAS,EACTmrB,gBAAgB,GAElBzxG,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMipJ,eAAiBjpJ,EAAMipJ,eAAez0I,KAAK7B,EAAuB3S,IACxEA,EAAMkpJ,gBAAkBlpJ,EAAMkpJ,gBAAgB10I,KAAK7B,EAAuB3S,IAC1EA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMuuG,oBAAsBvuG,EAAMuuG,oBAAoB/5F,KAAK7B,EAAuB3S,IAClFA,EAAMyoJ,aAAezoJ,EAAMyoJ,aAAaj0I,KAAK7B,EAAuB3S,IACpEA,EAAMkoJ,YAAcloJ,EAAMkoJ,YAAY1zI,KAAK7B,EAAuB3S,IAClEA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAMkvG,eAAiBlvG,EAAMkvG,eAAe16F,KAAK7B,EAAuB3S,IACxEA,EAAMovG,mBAAqBpvG,EAAMovG,mBAAmB56F,KAAK7B,EAAuB3S,IAChFA,EAAMqvG,iBAAmBrvG,EAAMqvG,iBAAiB76F,KAAK7B,EAAuB3S,IAC5EA,EAAMgvG,uBAAyBhvG,EAAMgvG,uBAAuBx6F,KAAK7B,EAAuB3S,IACxFA,EAAM2vG,oBAAsB3vG,EAAM2vG,oBAAoBn7F,KAAK7B,EAAuB3S,IAClFA,EAAM8vG,wBAA0B9vG,EAAM8vG,wBAAwBt7F,KAAK7B,EAAuB3S,IAC1FA,EAAMopJ,kBAAoBppJ,EAAMopJ,kBAAkB50I,KAAK7B,EAAuB3S,IAC9EA,EAAMytE,WAAaztE,EAAMytE,WAAWj5D,KAAK7B,EAAuB3S,IAChEA,EAAM8rG,cAAgB9rG,EAAM8rG,cAAct3F,KAAK7B,EAAuB3S,IACtEA,EAAMwhG,UAAYxhG,EAAMwhG,UAAUhtF,KAAK7B,EAAuB3S,IAC9DA,EAAM0uG,uBAAyB1uG,EAAM0uG,uBAAuBl6F,KAAK7B,EAAuB3S,IACxFA,EAAM4Z,KAAO5Z,EAAM4Z,KAAKpF,KAAK7B,EAAuB3S,IACpDA,EAAMkpJ,gBAAkBlpJ,EAAMkpJ,gBAAgB10I,KAAK7B,EAAuB3S,IAC1EA,EAAMqyG,WAA0B5xF,sBAChCzgB,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAg9BT,OA78BAzG,EAAa+vJ,EAAa,CAAC,CACzB/wJ,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B+P,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAGhB,CACDhM,IAAK,oBACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAMswJ,iBAAmB9uJ,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKxB,MAAMswJ,iBAEpH,CACDhxJ,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIsG,EAAS3a,KAET2V,EAAgBtB,EAAMsB,cACtBgK,EAAStL,EAAMsL,OAEnB,IAAI3f,KAAKxB,MAAMihB,WAAYzf,KAAK40G,iBAAiBj1F,GAAjD,CAIA,IAAIw6F,EAAcn6G,KAAKo6G,eAAez6F,GAClCovI,EAAoB/uJ,KAAK+uJ,kBAAkBpvI,GAC3CmxE,EAAW9wF,KAAKgzE,WAAWrzD,GAC3BgvI,EAAoB3uJ,KAAK2uJ,oBACzB79D,EAAU9wF,KAAKoU,YAAYuB,EAAe3V,KAAKxB,MAAM1C,MAAMkC,QAAO,SAAUqY,GAC9E,OAAQ1I,IAAY0B,OAAO0/I,EAAoB14I,EAAMsE,EAAOy/F,eAAe/jG,GAAM8jG,EAAax/F,EAAO4/F,mBAC1Fo0C,GAAmB3uJ,KAAKoU,YAAYuB,EAAe,GAAG5X,OAAOgvF,EAAmB/sF,KAAKxB,MAAM1C,OAAS,IAAK,CAACq+G,QAExH,CACDr8G,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,IAAIsB,EAAgBtB,EAAMsB,cACtBq5I,EAAWr5I,EAAc8E,cAE7B,OAAQ9E,EAAchB,OAEpB,KAAK,GACH,IAAI+2I,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASt/D,QAGXz2E,EAAcV,iBACd,MAGF,KAAK,GACH,IAAI02I,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASv/D,QAGXz2E,EAAcV,iBACd,MAGF,KAAK,GACL,KAAK,GACHjV,KAAKwuJ,eAAen6I,GACpBsB,EAAcV,iBACd,MAGF,KAAK,GACHjV,KAAKmf,OACLnf,KAAK8rF,SAAS/8E,QAAQq9E,WAI3B,CACDtuF,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAiB3rJ,IAAW6uF,SAAS88D,EAAU,eAAiB3rJ,IAAW6uF,SAAS88D,EAAU,4BAA8B1rJ,KAAKsrJ,aAAaI,GAAYA,EAAqB,OAEpL,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,eAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,4BAA8B3rJ,KAAKwrJ,aAAaG,GAAYA,EAAqB,OAEpL,CACD7tJ,IAAK,UACLhC,MAAO,SAAiBuY,GACjBrU,KAAKxB,MAAMihB,UAAazf,KAAKivJ,eAAe56I,IAAWtU,IAAW6uF,SAASv6E,EAAM9V,OAAQ,6BAAgCyB,KAAKs7G,eAAejnG,KAC5IrU,KAAKod,MAAM45F,eACbh3G,KAAKmf,OAELnf,KAAKkf,OAGPlf,KAAK8rF,SAAS/8E,QAAQq9E,WAGzB,CACDtuF,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,OAAQA,EAAMM,OAEZ,KAAK,IACE3U,KAAKod,MAAM45F,gBAAkB3iG,EAAMiB,SACtCtV,KAAKkf,OACL7K,EAAMY,kBAGR,MAGF,KAAK,GACCjV,KAAKod,MAAM45F,eAAgBh3G,KAAKmf,OAAYnf,KAAKkf,OACrD7K,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAKmf,OACL,MAGF,KAAK,EACH,GAAInf,KAAKod,MAAM45F,eAAgB,CAC7B,IAAIk4C,EAAwBnvJ,IAAWovJ,yBAAyBnvJ,KAAK43G,WAAW7oG,SAE5EmgJ,IACFA,EAAsB9iE,QACtB/3E,EAAMY,sBAOf,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAI6M,EAASlhB,KAEb,GAAIA,KAAKxB,MAAMivJ,YACbztJ,KAAKxB,MAAMivJ,YAAYp5I,OAClB,CACL,IAAIvY,EAAQ,KACRu4G,EAAiBr0G,KAAKq4G,oBAE1B,GAAIhkG,EAAM63E,SAGR,GAFApwF,EAAQ,GAEJu4G,EAAgB,CAClB,IAAI+6C,EAAkB/6C,EAAer2G,QAAO,SAAU2hB,GACpD,OAAOuB,EAAO0zF,iBAAiBj1F,IAAWuB,EAAO8xD,WAAWrzD,MAE9D7jB,EAAQszJ,EAAgBzxJ,KAAI,SAAUgiB,GACpC,OAAOuB,EAAOk5F,eAAez6F,YAGxB00F,IACTA,EAAiBA,EAAer2G,QAAO,SAAU2hB,GAC/C,OAAQuB,EAAO0zF,iBAAiBj1F,MAG9B3f,KAAKxB,MAAMu2G,kBACbj5G,EAAQ,GACRu4G,EAAenjG,SAAQ,SAAUojG,GAC/B,OAAOx4G,EAAQ,GAAGiC,OAAOgvF,EAAmBjxF,GAAQixF,EAAmB7rE,EAAOqzF,uBAAuBD,GAAat2G,QAAO,SAAU2hB,GACjI,OAAQuB,EAAO0zF,iBAAiBj1F,MAC/BhiB,KAAI,SAAUgiB,GACf,OAAOuB,EAAOk5F,eAAez6F,YAIjC7jB,EAAQu4G,EAAe12G,KAAI,SAAUgiB,GACnC,OAAOuB,EAAOk5F,eAAez6F,MAIjC7jB,EAAQixF,EAAmB,IAAI4N,IAAI,GAAG58F,OAAOgvF,EAAmBjxF,GAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAAS,QAGjHkE,KAAKoU,YAAYC,EAAMsB,cAAe7Z,MAGzC,CACDgC,IAAK,cACLhC,MAAO,SAAqBuY,EAAOvY,GAC7BkE,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOA,OAKd,CACDgC,IAAK,sBACLhC,MAAO,SAA6BuY,GAClC,IAAIsN,EAAS3hB,KAEThC,EAASqW,EAAMm2I,MACnBxqJ,KAAKwd,SAAS,CACZxf,OAAQA,IACP,WACG2jB,EAAOnjB,MAAM4jG,UACfzgF,EAAOnjB,MAAM4jG,SAAS,CACpBzsF,cAAetB,EACfrW,OAAQA,SAKf,CACDF,IAAK,cACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAGbA,KAAKwd,SAAS,CACZxf,OAFW,KAGV,WACDskB,EAAO9jB,MAAM4jG,UAAY9/E,EAAO9jB,MAAM4jG,SAAS,CAC7CpkG,OALS,UASd,CACDF,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,iBACLhC,MAAO,SAAwB6J,GAC7BmR,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAKw6G,eACLx6G,KAAKm8G,eACLx2G,GAAYA,MAEb,CACD7H,IAAK,mBACLhC,MAAO,SAA0B6J,GAC/B3F,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBACL/0G,GAAYA,IACZ3F,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,kBACLhC,MAAO,WACDkE,KAAKxB,MAAMR,QAAUgC,KAAKxB,MAAMq8G,mBAClC76G,KAAK23G,cAGP7gG,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,eACLhC,MAAO,WACLiE,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAAS/O,KAAKu5E,MAAMt/D,cAAeja,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAE9G,CACDlG,IAAK,eACLhC,MAAO,WACL,IAAIg/G,EAAgB/6G,IAAWiI,WAAWhI,KAAK43G,WAAW7oG,QAAS,kBAE/D+rG,GACFA,EAAcC,eAAe,CAC3BC,MAAO,UACPC,OAAQ,YAIb,CACDn9G,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAKmf,OACLnf,KAAK8rF,SAAS/8E,QAAQq9E,QACtB/3E,EAAMY,iBACNZ,EAAM83E,oBAEP,CACDruF,IAAK,yBACLhC,MAAO,WACL,GAAwB,MAApBkE,KAAKxB,MAAM1C,OAAiBkE,KAAKxB,MAAM8S,QAAS,CAClD,IAAItR,KAAKxB,MAAMu2G,iBAYb,OAAO/0G,KAAKq6G,sBAAsBr6G,KAAKxB,MAAM1C,MAAOkE,KAAKxB,MAAM8S,SAX/D,IAAK,IAAI1W,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM8S,QAAQ3W,OAAQC,IAAK,CAClD,IAAI0/G,EAAsBt6G,KAAKq6G,sBAAsBr6G,KAAKxB,MAAM1C,MAAOkE,KAAKu0G,uBAAuBv0G,KAAKxB,MAAM8S,QAAQ1W,KAEtH,IAA6B,IAAzB0/G,EACF,MAAO,CACL1B,MAAOh+G,EACP+kB,OAAQ26F,IASlB,OAAQ,IAET,CACDx8G,IAAK,wBACLhC,MAAO,SAA+BA,EAAOoT,GAC3C,IAAIuT,EAASziB,KAETlC,EAAMkC,KAAKu6G,cACf,OAAOrrG,EAAKE,WAAU,SAAUrF,GAC9B,OAAOjO,EAAMuuG,MAAK,SAAUh0F,GAC1B,OAAO1I,IAAY0B,OAAOgH,EAAKoM,EAAO23F,eAAerwG,GAAOjM,WAIjE,CACDA,IAAK,aACLhC,MAAO,SAAoB6jB,GACzB,IAAI2D,EAAStjB,KAET8wF,GAAW,EAEf,GAAI9wF,KAAKxB,MAAM1C,MAAO,CACpB,IAAIq+G,EAAcn6G,KAAKo6G,eAAez6F,GAClCovI,EAAoB/uJ,KAAK+uJ,kBAAkBpvI,GAC3C7hB,EAAMkC,KAAKu6G,cACfzpB,EAAW9wF,KAAKxB,MAAM1C,MAAMuuG,MAAK,SAAUh0F,GACzC,OAAO1I,IAAY0B,OAAO0/I,EAAoB14I,EAAMiN,EAAO82F,eAAe/jG,GAAM8jG,EAAar8G,MAIjG,OAAOgzF,IAER,CACDhzF,IAAK,kBACLhC,MAAO,SAAyBua,GAC9B,IAAIsJ,EAEJ,GAAI3f,KAAKxB,MAAM8S,QACb,GAAItR,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IACI3tG,EADAM,EAAY+H,EAA2BzP,KAAKxB,MAAM8S,SAGtD,IACE,IAAK5J,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAI04G,EAAcltG,EAAMtL,MAGxB,GAFA6jB,EAAS3f,KAAKqvJ,kBAAkBh5I,EAAKrW,KAAKu0G,uBAAuBD,IAG/D,OAGJ,MAAOv4G,GACP2L,EAAUlI,EAAEzD,GAVd,QAYE2L,EAAUjI,UAGZkgB,EAAS3f,KAAKqvJ,kBAAkBh5I,EAAKrW,KAAKxB,MAAM8S,SAIpD,OAAOqO,EAAS3f,KAAKy0G,eAAe90F,GAAU,OAE/C,CACD7hB,IAAK,oBACLhC,MAAO,SAA2Bua,EAAKnH,GACrC,IAGIpH,EAHAhK,EAAMkC,KAAKu6G,cAEXxyG,EAAa0H,EAA2BP,GAG5C,IACE,IAAKnH,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAI+jB,EAAS7X,EAAOhM,MAChBq+G,EAAcn6G,KAAKo6G,eAAez6F,GAEtC,GAAIhS,IAAY0B,OAAO8qG,EAAa9jG,EAAKvY,GACvC,OAAO6hB,GAGX,MAAO5jB,GACPgM,EAAWvI,EAAEzD,GAVf,QAYEgM,EAAWtI,IAGb,OAAO,OAER,CACD3B,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIqP,EAAS1jB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGnoE,EAAOllB,MAAMgU,SACfkR,EAAOllB,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAIsP,EAAS3jB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGloE,EAAOnlB,MAAMiU,QACfkR,EAAOnlB,MAAMiU,OAAO4B,QAIzB,CACDvW,IAAK,4BACLhC,MAAO,WACL,IAAIq/G,EAAUn7G,KAETA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjC8mG,EAAQ/9F,MAAM45F,gBAAkBmE,EAAQjoB,iBAAiB7+E,IAC3D8mG,EAAQh8F,QAIZze,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAIugH,EAAUr8G,KAETA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK8J,WAAW,WACjEuyG,EAAQj/F,MAAM45F,gBAChBqF,EAAQl9F,WAKdnf,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAIygH,EAAUv8G,KAETA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChBmB,EAAQn/F,MAAM45F,iBAAmBj3G,IAAWyiB,aAC9C+5F,EAAQp9F,QAIZve,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAK8J,aAAe9J,KAAK8J,UAAUypF,WAAWl/E,EAAM9V,SAAWyB,KAAKs7G,eAAejnG,IAAUrU,KAAK8J,UAAUzG,SAASgR,EAAM9V,SAAWyB,KAAKivJ,eAAe56I,MAElK,CACDvW,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,OAAOtU,IAAW6uF,SAASv6E,EAAM9V,OAAQ,8BAE1C,CACDT,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,OAAOrU,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,SAAW/O,KAAK43G,WAAW7oG,QAAQ1L,SAASgR,EAAM9V,UAE7F,CACDT,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAAO6F,EAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,iBAG7Ch5E,KAAKod,MAAM45F,gBAAkBh3G,KAAK+mG,aACpC/mG,KAAKw6G,iBAGR,CACD18G,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGjBjiE,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAMpf,QAAUgC,KAAKod,MAAMpf,OAAOsS,OAAO3V,OAAS,IAE/D,CACDmD,IAAK,gBACLhC,MAAO,WACL,IAAI4gH,EAAU18G,KAEd,GAAIA,KAAKxB,MAAMivJ,YACb,OAAOztJ,KAAKxB,MAAMkvJ,UAElB,IAAIr5C,EAAiBr0G,KAAKq4G,oBAE1B,GAA8B,IAA1BhE,EAAe15G,OACjB,OAAO,EAOT,GAJA05G,EAAiBA,EAAer2G,QAAO,SAAU2hB,GAC/C,OAAQ+8F,EAAQ9H,iBAAiBj1F,MAG/B3f,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IACIppG,EADAE,EAAa4D,EAA2B4kG,GAG5C,IACE,IAAKxoG,EAAWtM,MAAOoM,EAASE,EAAW1P,KAAKP,MAAO,CACrD,IAMIu1G,EANAmD,EAAc3oG,EAAO7P,MACrBwzJ,EAA8BtvJ,KAAKu0G,uBAAuBD,GAAat2G,QAAO,SAAU2hB,GAC1F,OAAQ+8F,EAAQ9H,iBAAiBj1F,MAG/ByxF,EAAa3hG,EAA2B6/I,GAG5C,IACE,IAAKl+C,EAAW7xG,MAAO4xG,EAASC,EAAWj1G,KAAKP,MAAO,CACrD,IAAI+jB,EAASwxF,EAAOr1G,MAEpB,IAAKkE,KAAKgzE,WAAWrzD,GACnB,OAAO,GAGX,MAAO5jB,GACPq1G,EAAW5xG,EAAEzD,GATf,QAWEq1G,EAAW3xG,MAGf,MAAO1D,GACP8P,EAAWrM,EAAEzD,GAzBf,QA2BE8P,EAAWpM,SAER,CACL,IACIkyG,EADAE,EAAapiG,EAA2B4kG,GAG5C,IACE,IAAKxC,EAAWtyG,MAAOoyG,EAASE,EAAW11G,KAAKP,MAAO,CACrD,IAAI2zJ,EAAU59C,EAAO71G,MAErB,IAAKkE,KAAKgzE,WAAWu8E,GACnB,OAAO,GAGX,MAAOxzJ,GACP81G,EAAWryG,EAAEzD,GATf,QAWE81G,EAAWpyG,KAKjB,OAAO,IAER,CACD3B,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAMg2G,YAAc7mG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAMg2G,aAAe70F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,GAAI3f,KAAKxB,MAAM27G,YAAa,CAC1B,IAAIxrG,EAAOhB,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM27G,aAC3D,OAAgB,OAATxrG,EAAgBA,EAAOgR,EAGhC,OAAOA,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAEpE,CACD7hB,IAAK,qBACLhC,MAAO,SAA4B6jB,GACjC,OAAO3f,KAAKxB,MAAM2Q,QAAUxB,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM2Q,SAAWnP,KAAKy0G,eAAe90F,KAE5G,CACD7hB,IAAK,0BACLhC,MAAO,SAAiCw4G,GACtC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,yBACLhC,MAAO,SAAgCw4G,GACrC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMg9G,uBAE7D,CACD19G,IAAK,mBACLhC,MAAO,SAA0B6jB,GAC/B,OAAI3f,KAAKxB,MAAM+8G,eACN5tG,IAAY5G,WAAW/G,KAAKxB,MAAM+8G,gBAAkBv7G,KAAKxB,MAAM+8G,eAAe57F,GAAUhS,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM+8G,mBAG1I57F,QAAiCla,IAAvBka,EAAM,WAA6BA,EAAM,WAE3D,CACD7hB,IAAK,oBACLhC,MAAO,SAA2B6jB,GAChC,OAAO3f,KAAKxB,MAAM27G,aAAex6F,QAA8Bla,IAApBka,EAAM,QAElD,CACD7hB,IAAK,oBACLhC,MAAO,WACL,GAAIkE,KAAK+mG,YAAa,CACpB,IAAIl3F,EAAc7P,KAAKod,MAAMpf,OAAOsS,OAAOH,kBAAkBnQ,KAAKxB,MAAMuR,cACpE2rG,EAAe17G,KAAKxB,MAAMm9G,SAAW37G,KAAKxB,MAAMm9G,SAAS54G,MAAM,KAAO,CAAC/C,KAAKxB,MAAMg2G,aAAe,SAErG,GAAIx0G,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAGI/C,EAHA4J,EAAiB,GAEjB3J,EAAaxiG,EAA2BzP,KAAKxB,MAAM8S,SAGvD,IACE,IAAK2gG,EAAW1yG,MAAOyyG,EAASC,EAAW91G,KAAKP,MAAO,CACrD,IAAIigH,EAAW7J,EAAOl2G,MAClBggH,EAAqBlsG,IAAY5R,OAAOgC,KAAKu0G,uBAAuBsH,GAAWH,EAAc7rG,EAAa7P,KAAKxB,MAAMsR,gBAAiB9P,KAAKxB,MAAMuR,cAEjJ+rG,GAAsBA,EAAmBnhH,QAC3CihH,EAAe//G,KAAKipB,EAAcA,EAAc,GAAI+2F,GAAW,CAC7D3F,MAAO4F,MAIb,MAAO//G,GACPk2G,EAAWzyG,EAAEzD,GAZf,QAcEk2G,EAAWxyG,IAGb,OAAOm8G,EAEP,OAAOhsG,IAAY5R,OAAOgC,KAAKxB,MAAM8S,QAASoqG,EAAc7rG,EAAa7P,KAAKxB,MAAMsR,gBAAiB9P,KAAKxB,MAAMuR,cAGlH,OAAO/P,KAAKxB,MAAM8S,UAGrB,CACDxT,IAAK,UACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAM1C,OAAqC,IAA5BkE,KAAKxB,MAAM1C,MAAMnB,SAE9C,CACDmD,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM27G,YAAc,KAAOn6G,KAAKxB,MAAM2Q,UAEnD,CACDrR,IAAK,gBACLhC,MAAO,WACL,OAAOkE,KAAK8rF,SAAS/8E,QAAQ0sG,kBAE9B,CACD39G,IAAK,aACLhC,MAAO,SAAoBuY,EAAOtK,GAChC,IAAIjM,EAAMkC,KAAKu6G,cACXz+G,EAAQkE,KAAKxB,MAAM1C,MAAMkC,QAAO,SAAUqY,GAC5C,OAAQ1I,IAAY0B,OAAOgH,EAAKtM,EAAMjM,MAExCkC,KAAKoU,YAAYC,EAAOvY,KAEzB,CACDgC,IAAK,wBACLhC,MAAO,WACL,IAAIy/H,EAAU,UAEd,OAAIA,EAAQ5+H,KAAKqD,KAAKxB,MAAMgxJ,oBACnBxvJ,KAAKxB,MAAMgxJ,mBAAmBrsJ,QAAQnD,KAAKxB,MAAMgxJ,mBAAmBhkJ,MAAM+vH,GAAS,GAAIv7H,KAAKxB,MAAM1C,MAAMnB,OAAS,IAGnHqF,KAAKxB,MAAMgxJ,qBAEnB,CACD1xJ,IAAK,WACLhC,MAAO,WACL,IAAIy9E,EAEJ,IAAKv5E,KAAKwP,YAAcxP,KAAKxB,MAAMixJ,iBAAkB,CACnD,GAAIzvJ,KAAKxB,MAAM1C,MAAMnB,QAAUqF,KAAKxB,MAAMkxJ,kBAAmB,CAC3Dn2E,EAAQ,GAER,IAAK,IAAI3+E,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM1C,MAAMnB,OAAQC,IACjC,IAANA,IACF2+E,GAAS,KAGXA,GAASv5E,KAAK2vJ,gBAAgB3vJ,KAAKxB,MAAM1C,MAAMlB,IAGjD,OAAO2+E,EAEP,OAAOv5E,KAAK4vJ,wBAIhB,OAAOr2E,IAER,CACDz7E,IAAK,kBACLhC,MAAO,WACL,IAAI8gH,EAAU58G,KAEd,OAAIA,KAAKxB,MAAMqsJ,qBACR7qJ,KAAKwP,UAYD7B,IAAY8rE,cAAcz5E,KAAKxB,MAAMqsJ,sBAXxC7qJ,KAAKxB,MAAM1C,MAAMnB,QAAUqF,KAAKxB,MAAMkxJ,kBACjC1vJ,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAU0Y,EAAKgmD,GACzC,IAAItyD,EAAO4D,IAAY8rE,cAAcmjC,EAAQp+G,MAAMqsJ,qBAAsBx0I,GACzE,OAAoBwE,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKu+D,GACJtyD,MAGE/J,KAAK4vJ,wBAMW,SAAvB5vJ,KAAKxB,MAAM0J,SAAuBlI,KAAKwP,UAkBpCxP,KAAK6vJ,WAjBH7vJ,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAU0Y,GACpC,IAAIkjE,EAAQqjC,EAAQ+yC,gBAAgBt5I,GAEpC,OAAoBwE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,sBACXO,IAAKy7E,GACS1+D,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,6BACVg8E,IAASqjC,EAAQp+G,MAAMihB,UAAyB5E,IAAM7P,cAAc,OAAQ,CAC7EzN,UAAW,8CACXyiE,QAAS,SAAiBxgE,GACxB,OAAOo9G,EAAQkzC,WAAWtwJ,EAAG6W,YASxC,CACDvY,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,kBACLhC,MAAO,WACL,IAAI0oI,EAAUxkI,KAId,OAFYA,KAAKwP,YAEHxP,KAAKxB,MAAMi+G,WAAcz8G,KAAKxB,MAAMihB,SAS3C,KARe5E,IAAM7P,cAAc,IAAK,CAC3CzN,UAAW,uCACXyiE,QAAS,SAAiBxgE,GACxB,OAAOglI,EAAQpwH,YAAY5U,EAAG,WAOrC,CACD1B,IAAK,cACLhC,MAAO,WACL,IAAIutI,EAAUrpI,KAEVwK,EAAQxK,KAAKwP,UACbwP,EAAUhf,KAAK+vJ,kBACflV,EAAiB59I,YAAW,sBAAuB,CACrD,gBAAiBuN,GAASxK,KAAKxB,MAAMolG,YACrC,4BAA6Bp5F,IAAUxK,KAAKxB,MAAMolG,cAAgB5jG,KAAKxB,MAAMqsJ,qBAC7E,6BAA8BrgJ,GAASxK,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKxB,MAAMkxJ,oBAE9E,OAAoB70I,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOopI,EAAQ9vD,MAAQt5E,GAEzB1C,UAAW,iCACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAWs9I,GACV77H,GAAWhf,KAAKxB,MAAMolG,aAAe,YAEzC,CACD9lG,IAAK,SACLhC,MAAO,WACL,IAAI0tI,EAAUxpI,KAEVzC,EAAYN,YAAW,2CAA4C,CACrE,qBAA6C,SAAvB+C,KAAKxB,MAAM0J,QACjC,aAAclI,KAAKxB,MAAMihB,SACzB,0BAA2Bzf,KAAKxB,MAAMi+G,YAAcz8G,KAAKxB,MAAMihB,SAC/D,UAAWzf,KAAKod,MAAMyuE,QACtB,wBAAyB7rF,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAS,EACvE,uBAAwBqF,KAAKod,MAAMyuE,SAAW7rF,KAAKod,MAAM45F,gBACxDh3G,KAAKxB,MAAMjB,WACV4zF,EAAgBl0F,YAAW,iCAAkC+C,KAAKxB,MAAMm+G,cACxEtI,EAAiBr0G,KAAKq4G,oBACtB9+B,EAAQv5E,KAAK+5E,cACb47B,EAAY31G,KAAKm9G,kBACrB,OAAoBtiG,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACdllD,IAAK,SAAa7a,GAChB,OAAOupI,EAAQ1/H,UAAY7J,GAE7BG,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACVhoE,GAAI9jB,KAAKxB,MAAMmuF,QACflwF,KAAMuD,KAAKxB,MAAM/B,KACjB4V,UAAU,EACV7U,KAAM,OACNgV,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbgC,UAAWzU,KAAKyU,UAChBsP,KAAM,UACN,gBAAiB,UACjB,kBAAmB/jB,KAAKxB,MAAMkuF,eAC9B,gBAAiB1sF,KAAKod,MAAM45F,eAC5Bv3F,SAAUzf,KAAKxB,MAAMihB,SACrBqlD,SAAU9kE,KAAKxB,MAAMsmE,YAClByU,EAAOo8B,EAAwB96F,IAAM7P,cAAc,MAAO,CAC7DzN,UAAW,yBACGsd,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,KACKt2E,IAAM7P,cAAc4jJ,EAAkBn2E,EAAS,CAC/D39D,IAAK9a,KAAK43G,WACVvD,eAAgBA,GACfr0G,KAAKxB,MAAO,CACbwhE,QAAShgE,KAAKs3G,aACdi3C,cAAevuJ,KAAKmf,KACpBtP,YAAa7P,KAAKod,MAAMpf,OACxB+oG,UAAW/mG,KAAK+mG,UAChB+M,oBAAqB9zG,KAAK8zG,oBAC1Bk6C,aAAchuJ,KAAKguJ,aACnBP,YAAaztJ,KAAKytJ,YAClBh5C,eAAgBz0G,KAAKy0G,eACrBE,mBAAoB30G,KAAK20G,mBACzBC,iBAAkB50G,KAAK40G,iBACvBL,uBAAwBv0G,KAAKu0G,uBAC7BW,oBAAqBl1G,KAAKk1G,oBAC1BG,wBAAyBr1G,KAAKq1G,wBAC9BriC,WAAYhzE,KAAKgzE,WACjBihC,uBAAwBj0G,KAAKi0G,uBAC7B5C,cAAerxG,KAAKqxG,cACpBm9C,eAAgBxuJ,KAAKwuJ,eACrBG,kBAAmB3uJ,KAAK2uJ,kBACxBF,gBAAiBzuJ,KAAKyuJ,gBACtB9oI,GAAI3lB,KAAKod,MAAM45F,eACf9xF,QAASllB,KAAKu3G,eACdnyF,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,wBAKdm3C,EA7/BsB,CA8/B7B7zI,aAEFxK,EAAgBq+I,EAAa,eAAgB,CAC3C/qI,GAAI,KACJgoE,SAAU,KACVrvF,KAAM,KACNX,MAAO,KACPwV,QAAS,KACTkjG,YAAa,KACb2F,YAAa,KACboB,eAAgB,KAChBxG,iBAAkB,KAClByG,oBAAqB,KACrBvG,oBAAqB,KACrB/sG,QAAS,QACT9H,MAAO,KACP7C,UAAW,KACXi5G,eAAgB,KAChBK,WAAY,KACZb,uBAAwB,KACxBp5D,aAAc,QACdgnD,YAAa,KACb6rD,kBAAkB,EAClBhwI,UAAU,EACVg9F,WAAW,EACXz+G,QAAQ,EACR29G,SAAU,KACV7rG,gBAAiB,WACjBwrE,kBAAmB,KACnBvrE,kBAActK,EACd+vG,mBAAoB,mBACpBqF,mBAAmB,EACnB/1C,SAAU,EACV31D,QAAS,KACTw9E,QAAS,KACT3oF,SAAU,KACV+0E,QAAS,KACTE,eAAgB,KAChBy2E,kBAAmB,EACnBZ,eAAgB,KAChBU,mBAAoB,qBACpB9iE,eAAgB,KAChBmoB,aAAc,KACdg2C,qBAAsB,KACtBwD,oBAAqB,KACrBC,oBAAqB,KACrB13C,kBAAmB,KACnB+F,aAAc,qBACdkxC,eAAe,EACfH,WAAW,EACXn7I,SAAU,KACVC,QAAS,KACTC,OAAQ,KACRsO,OAAQ,KACRU,OAAQ,KACR2gF,SAAU,KACVqrD,YAAa,Q,6BC13Df,oBACe5yI,QAAMqL,cAAc,O,6BCDnC,6DASA,SAAS5nB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIkhJ,EAAqB,SAAUp2I,IApEnC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUw3I,EAAOp2I,GAEjB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAairI,GAE1B,SAASA,EAAMxxJ,GACb,IAAI+G,GAjHR,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMgwJ,GAGtB,IAAI5yI,EAAQ,CACV0G,IAFFve,EAAQsU,EAAOne,KAAKsE,KAAMxB,IAEdA,MAAMslB,IAYlB,OATKve,EAAM/G,MAAMyxJ,WACf7yI,EAAQ0H,EAAcA,EAAc,GAAI1H,GAAQ,GAAI,CAClD8yI,UAAW3qJ,EAAM/G,MAAM0xJ,aAI3B3qJ,EAAM6X,MAAQA,EACd7X,EAAM4qJ,OAAS5qJ,EAAM4qJ,OAAOp2I,KAAK7B,EAAuB3S,IACxDA,EAAM6qJ,WAA0Bv1I,IAAMmL,YAC/BzgB,EAkKT,OArRoBlH,EAsHP2xJ,GAtHoBjxJ,EAsHb,CAAC,CACnBjB,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,GAAIrU,KAAKxB,MAAM86F,WAAY,CACzB,IAAI42D,EAAYlwJ,KAAKxB,MAAMyxJ,SAAWjwJ,KAAKxB,MAAM0xJ,UAAYlwJ,KAAKod,MAAM8yI,UACpEA,EAAWlwJ,KAAKyvB,OAAOpb,GAAYrU,KAAKsT,SAASe,GAEjDrU,KAAKxB,MAAMyxJ,UACbjwJ,KAAKxB,MAAMyxJ,SAAS,CAClBt6I,cAAetB,EACfvY,OAAQo0J,IAKd77I,EAAMY,mBAEP,CACDnX,IAAK,SACLhC,MAAO,SAAgBuY,GAChBrU,KAAKxB,MAAMyxJ,UACdjwJ,KAAKwd,SAAS,CACZ0yI,WAAW,IAIXlwJ,KAAKxB,MAAM6xJ,UACbrwJ,KAAKxB,MAAM6xJ,SAASh8I,KAGvB,CACDvW,IAAK,WACLhC,MAAO,SAAkBuY,GAClBrU,KAAKxB,MAAMyxJ,UACdjwJ,KAAKwd,SAAS,CACZ0yI,WAAW,IAIXlwJ,KAAKxB,MAAM8xJ,YACbtwJ,KAAKxB,MAAM8xJ,WAAWj8I,KAGzB,CACDvW,IAAK,cACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAM86F,aAAat5F,KAAKxB,MAAMyxJ,SAAWjwJ,KAAKxB,MAAM0xJ,UAAYlwJ,KAAKod,MAAM8yI,aAExF,CACDpyJ,IAAK,oBACLhC,MAAO,WACAkE,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,kBAIT,CACD9Y,IAAK,mBACLhC,MAAO,SAA0Bo0J,GAC/B,GAAIlwJ,KAAKxB,MAAM86F,WAAY,CACzB,IAAIx1E,EAAK9jB,KAAKod,MAAM0G,GAAK,SACrB4wE,EAAe10F,KAAKod,MAAM0G,GAAK,WAC/BysI,EAAaL,EAAYlwJ,KAAKxB,MAAM6nH,WAAarmH,KAAKxB,MAAM8nH,aAChE,OAAoBzrG,IAAM7P,cAAc,SAAU,CAChDzN,UAAW,6CACXyiE,QAAShgE,KAAKmwJ,OACdrsI,GAAIA,EACJ,gBAAiB4wE,EACjB,iBAAkBw7D,EAClBnsI,KAAM,OACQlJ,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAWgzJ,IACI11I,IAAM7P,cAAc2O,IAAQ,OAG/C,OAAO,OAER,CACD7b,IAAK,eACLhC,MAAO,SAAsBo0J,GAC3B,IAAIl1E,EAASrtE,IAAY8rE,cAAcz5E,KAAKxB,MAAMw8E,OAAQh7E,KAAKxB,OAC3Dm2I,EAAQhnI,IAAY8rE,cAAcz5E,KAAKxB,MAAMm2I,MAAO30I,KAAKxB,OACzDgyJ,EAAiBxwJ,KAAKywJ,iBAAiBP,GACvCh+B,EAA4Br3G,IAAM7P,cAAc,OAAQ,CAC1DzN,UAAW,gBACXumB,GAAI9jB,KAAKod,MAAM0G,GAAK,WACnBk3D,GACC01E,EAA4B71I,IAAM7P,cAAc,MAAO,CACzDzN,UAAW,iBACVo3I,EAAO6b,GACNxxI,EAAuBnE,IAAM7P,cAAc,MAAO,CACpDzN,UAAW,kBACV20H,EAAcw+B,GAEjB,GAAI1wJ,KAAKxB,MAAM6mH,eAAgB,CAC7B,IAAI7rC,EAAwB,CAC1Bj8E,UAAW,iBACX60H,eAAgB,gBAChBu+B,eAAgB,gBAChBC,iBAAkB,6CAClBC,qBAAsBX,EAAYlwJ,KAAKxB,MAAM6nH,WAAarmH,KAAKxB,MAAM8nH,aACrEwqC,eAAgB9wJ,KAAKmwJ,OACrBj+B,aAAcA,EACdw+B,aAAcA,EACdF,eAAgBA,EAChBjuJ,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZ0xJ,UAAWA,GAEb,OAAOviJ,IAAY8rE,cAAcz5E,KAAKxB,MAAM6mH,eAAgB7rC,GACvD,OAAIx5E,KAAKxB,MAAMw8E,QAAUh7E,KAAKxB,MAAM86F,WAClCt6E,EAGF,OAER,CACDlhB,IAAK,gBACLhC,MAAO,SAAuBo0J,GAC5B,IAAIpsI,EAAK9jB,KAAKod,MAAM0G,GAAK,WACzB,OAAoBjJ,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKowJ,WACdnzJ,WAAY,uBACZ2oB,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERhxF,IAAKuqI,EACLrqI,eAAe,EACfvU,QAAStR,KAAKxB,MAAMo4G,mBACN/7F,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKowJ,WACV7yJ,UAAW,uBACX,cAAe2yJ,EACfnsI,KAAM,SACND,GAAIA,EACJ,kBAAmB9jB,KAAKod,MAAM0G,GAAK,WACrBjJ,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,mBACVyC,KAAKxB,MAAMgE,cAEf,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,sBAAuB,CAChD,qBAAsB+C,KAAKxB,MAAM86F,YAChCt5F,KAAKxB,MAAMjB,WACV2yJ,EAAYlwJ,KAAK+wJ,cACjB/1E,EAASh7E,KAAKi1I,aAAaib,GAC3BlxI,EAAUhf,KAAKy2G,cAAcy5C,GACjC,OAAoBr1I,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB46E,EAAQh8D,QAhRC1gB,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAmRzCgxJ,EA1LgB,CA2LvBh1I,aAEFxK,EAAgBw/I,EAAO,eAAgB,CACrClsI,GAAI,KACJk3D,OAAQ,KACRqqC,eAAgB,KAChB/rB,WAAY,KACZl5F,MAAO,KACP7C,UAAW,KACX2yJ,UAAW,KACX7pC,WAAY,aACZC,aAAc,cACdquB,MAAO,KACP/9B,kBAAmB,KACnBy5C,SAAU,KACVC,WAAY,KACZL,SAAU,Q,6BCzTZ,6DASA,SAAS3xJ,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/Bk1J,EAAuB,SAAUp3I,IAhErC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUw4I,EAASp3I,GAEnB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAaisI,GAE1B,SAASA,EAAQxyJ,GACf,IAAI+G,EAWJ,OAxHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAMgxJ,IAEtBzrJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwvJ,aAAezoJ,EAAMyoJ,aAAaj0I,KAAK7B,EAAuB3S,IACpEA,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAM0rJ,WAA0Bp2I,IAAMmL,YAC/BzgB,EAwOT,OAhVoBlH,EA2GP2yJ,GA3GoBjyJ,EA2GX,CAAC,CACrBjB,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAKxB,MAAMijB,SACXpN,EAAMY,mBAEP,CACDnX,IAAK,UACLhC,MAAO,WACLgb,IAAYW,IAAI,QAASzX,KAAKixJ,WAAWliJ,QAAS/O,KAAKxB,MAAM4Y,YAEzDpX,KAAKxB,MAAM6+E,OACbr9E,KAAKqkI,mBAGR,CACDvmI,IAAK,YACLhC,MAAO,WACDkE,KAAKxB,MAAM20I,eACbnzI,KAAKkxJ,6BAGHlxJ,KAAKmwH,WACPnwH,KAAKmwH,UAAU/jC,QAGjBpsF,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,SACLhC,MAAO,WACLkE,KAAKmxJ,0BACLnxJ,KAAKoxJ,+BAEDpxJ,KAAKxB,MAAM6+E,OACbr9E,KAAKu+H,oBAGR,CACDzgI,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKixJ,WAAWliJ,WAEnC,CACDjR,IAAK,iBACLhC,MAAO,WACL,IAAKkE,KAAKqR,KAAM,CACdrR,KAAKqR,KAAO3Q,SAASsK,cAAc,OACnChL,KAAKqR,KAAKjR,MAAM8W,OAAS7G,OAAOyG,IAAYS,IAAIvX,KAAKixJ,WAAWliJ,SAAW,GAC3E,IAAIgmI,EAAgB,oEAEhB/0I,KAAKxB,MAAMm0I,cACboC,GAAiB,iCAGnBh1I,IAAWukI,mBAAmBtkI,KAAKqR,KAAM0jI,GAErC/0I,KAAKxB,MAAM6yJ,aACbrxJ,KAAKsxJ,wBAGP5wJ,SAAS2B,KAAKmH,YAAYxJ,KAAKqR,MAE3BrR,KAAKxB,MAAMm0I,aACb5yI,IAAWya,SAAS9Z,SAAS2B,KAAM,wBAIxC,CACDvE,IAAK,kBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETA,KAAKqR,OACPtR,IAAWya,SAASxa,KAAKqR,KAAM,6BAC/BrR,KAAKqR,KAAK7D,iBAAiB,gBAAgB,WACzCmN,EAAO42I,qBAIZ,CACDzzJ,IAAK,eACLhC,MAAO,WACDkE,KAAKqR,OACPrR,KAAKmxJ,0BACLzwJ,SAAS2B,KAAKsH,YAAY3J,KAAKqR,MAC/BtR,IAAWma,YAAYxZ,SAAS2B,KAAM,qBACtCrC,KAAKqR,KAAO,QAGf,CACDvT,IAAK,6BACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEbA,KAAKwxJ,uBAAyB,SAAUn9I,GAClB,KAAhBA,EAAMM,OACJmC,IAAYS,IAAI2J,EAAO+vI,WAAWliJ,WAAa+H,IAAYiB,WAAW,UACxEmJ,EAAO8sI,aAAa35I,IAK1B3T,SAAS8M,iBAAiB,UAAWxN,KAAKwxJ,0BAE3C,CACD1zJ,IAAK,+BACLhC,MAAO,WACDkE,KAAKwxJ,yBACP9wJ,SAAS+M,oBAAoB,UAAWzN,KAAKwxJ,wBAC7CxxJ,KAAKwxJ,uBAAyB,QAGjC,CACD1zJ,IAAK,wBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKyxJ,oBACRzxJ,KAAKyxJ,kBAAoB,SAAUp9I,GACjCsN,EAAOqsI,aAAa35I,IAGtBrU,KAAKqR,KAAK7D,iBAAiB,QAASxN,KAAKyxJ,sBAG5C,CACD3zJ,IAAK,0BACLhC,MAAO,WACDkE,KAAKyxJ,oBACPzxJ,KAAKqR,KAAK5D,oBAAoB,QAASzN,KAAKyxJ,mBAC5CzxJ,KAAKyxJ,kBAAoB,QAG5B,CACD3zJ,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GACxCzjB,KAAKqR,MAAQmS,EAAU6tI,cAAgBrxJ,KAAKxB,MAAM6yJ,cAChDrxJ,KAAKxB,MAAM6yJ,YACbrxJ,KAAKsxJ,wBAELtxJ,KAAKmxJ,6BAIV,CACDrzJ,IAAK,uBACLhC,MAAO,WACLkE,KAAKmxJ,0BACLnxJ,KAAKu+H,kBACLznH,IAAYe,MAAM7X,KAAKixJ,WAAWliJ,WAEnC,CACDjR,IAAK,kBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,OAAIA,KAAKxB,MAAMkzJ,cACO72I,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACNsd,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO6tG,UAAYlwH,GAE5B1C,UAAW,wCACXyiE,QAAShgE,KAAKguJ,aACd,aAAchuJ,KAAKxB,MAAMmzJ,gBACX92I,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,qCACIsd,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,cACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMm2I,MACNhnI,IAAY8rE,cAAcz5E,KAAKxB,MAAMm2I,MAAO30I,KAAKxB,OAGnD,OAER,CACDV,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,wBAAyB+C,KAAKxB,MAAMjB,UAAW,aAAeyC,KAAKxB,MAAM0H,SAAU,CAC5G,mBAAoBlG,KAAKxB,MAAM8e,QAC/B,iBAAkBtd,KAAKxB,MAAMozJ,aAE3BzhC,EAAYnwH,KAAKowH,kBACjBukB,EAAQ30I,KAAK6xJ,cACb1c,EAAoB,CACtBz+B,MAAO12G,KAAKxB,MAAMozJ,WAAa,IAAM,IACrCj7C,KAAM32G,KAAKxB,MAAMozJ,WAAa,IAAM,KAEtC,OAAoB/2I,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKixJ,WACdh0J,WAAY,YACZ0oB,GAAI3lB,KAAKxB,MAAM8e,QACfsI,QAASuvH,EACT7jI,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKixJ,WACVntI,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,iBACQlJ,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oBACVo3I,EAAOxkB,GAAyBt1G,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,qBACVyC,KAAKxB,MAAMgE,cAEf,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,gBA1UX1F,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA8UzCgyJ,EAzPkB,CA0PzBh2I,aA5QiClf,EA8QM,CACvCgoB,GAAI,KACJ1jB,MAAO,KACP7C,UAAW,KACX+f,SAAS,EACTpX,SAAU,OACV0rJ,YAAY,EACZjf,aAAa,EACbv7H,WAAY,EACZi6I,aAAa,EACbK,eAAe,EACfC,eAAgB,QAChBxe,eAAe,EACfwB,MAAO,KACPt3D,OAAO,EACPr5E,SAAU,KACV4yG,kBAAmB,KACnB71F,OAAQ,KACRU,OAAQ,OAhSoB3jB,EA8QL,kBA9QAd,EA8QTg0J,GA5QZ50J,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,gBCjGf,IAAIqlH,EAAS5mH,EAAQ,IACjBwW,EAA2BxW,EAAQ,KAAmDkF,EACtFqyJ,EAA8Bv3J,EAAQ,IACtCw3J,EAAWx3J,EAAQ,IACnBy3J,EAAYz3J,EAAQ,KACpB03J,EAA4B13J,EAAQ,KACpC23J,EAAW33J,EAAQ,KAiBvBF,EAAOC,QAAU,SAAUgX,EAASL,GAClC,IAGY1S,EAAQT,EAAKq0J,EAAgBC,EAAgB3zJ,EAHrD4zJ,EAAS/gJ,EAAQ/S,OACjB+zJ,EAAShhJ,EAAQ6vG,OACjBoxC,EAASjhJ,EAAQkhJ,KASrB,GANEj0J,EADE+zJ,EACOnxC,EACAoxC,EACApxC,EAAOkxC,IAAWL,EAAUK,EAAQ,KAEnClxC,EAAOkxC,IAAW,IAAIh2J,UAEtB,IAAKyB,KAAOmT,EAAQ,CAQ9B,GAPAmhJ,EAAiBnhJ,EAAOnT,GAGtBq0J,EAFE7gJ,EAAQmhJ,aACVh0J,EAAasS,EAAyBxS,EAAQT,KACfW,EAAW3C,MACpByC,EAAOT,IACtBo0J,EAASI,EAASx0J,EAAMu0J,GAAUE,EAAS,IAAM,KAAOz0J,EAAKwT,EAAQohJ,cAE5CjtJ,IAAnB0sJ,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDF,EAA0BG,EAAgBD,IAGxC7gJ,EAAQ8H,MAAS+4I,GAAkBA,EAAe/4I,OACpD04I,EAA4BM,EAAgB,QAAQ,GAGtDL,EAASxzJ,EAAQT,EAAKs0J,EAAgB9gJ,M,cCpD1CjX,EAAOC,QAAU,SAAUq4J,EAAQ72J,GACjC,MAAO,CACL4C,aAAuB,EAATi0J,GACdh0J,eAAyB,EAATg0J,GAChB/zJ,WAAqB,EAAT+zJ,GACZ72J,MAAOA,K,gBCLX,IAAIgzI,EAAcv0I,EAAQ,IACtBq4J,EAAuBr4J,EAAQ,IAC/Bs4J,EAA2Bt4J,EAAQ,IAEvCF,EAAOC,QAAUw0I,EAAc,SAAUp+H,EAAQ5S,EAAKhC,GACpD,OAAO82J,EAAqBnzJ,EAAEiR,EAAQ5S,EAAK+0J,EAAyB,EAAG/2J,KACrE,SAAU4U,EAAQ5S,EAAKhC,GAEzB,OADA4U,EAAO5S,GAAOhC,EACP4U,I,gBCRT,IAAIywG,EAAS5mH,EAAQ,IACjBs0I,EAAat0I,EAAQ,IACrB8mH,EAAM9mH,EAAQ,IACdu3J,EAA8Bv3J,EAAQ,IACtCy3J,EAAYz3J,EAAQ,KACpBu4J,EAAgBv4J,EAAQ,KACxBw4J,EAAsBx4J,EAAQ,IAC9By4J,EAA6Bz4J,EAAQ,KAA8B04J,aAEnEC,EAAmBH,EAAoBx7I,IACvC47I,EAAuBJ,EAAoBK,QAC3CC,EAAWhjJ,OAAOA,QAAQtN,MAAM,WAEnC1I,EAAOC,QAAU,SAAU60I,EAAGrxI,EAAKhC,EAAOwV,GACzC,IAII8L,EAJAk2I,IAAShiJ,KAAYA,EAAQgiJ,OAC7BC,IAASjiJ,KAAYA,EAAQ5S,WAC7B+zJ,IAAcnhJ,KAAYA,EAAQmhJ,YAClCh2J,EAAO6U,QAA4B7L,IAAjB6L,EAAQ7U,KAAqB6U,EAAQ7U,KAAOqB,EAE9D+wI,EAAW/yI,KACoB,YAA7BuU,OAAO5T,GAAMF,MAAM,EAAG,KACxBE,EAAO,IAAM4T,OAAO5T,GAAM0G,QAAQ,qBAAsB,MAAQ,OAE7Dk+G,EAAIvlH,EAAO,SAAYk3J,GAA8Bl3J,EAAMW,OAASA,IACvEq1J,EAA4Bh2J,EAAO,OAAQW,IAE7C2gB,EAAQ+1I,EAAqBr3J,IAClBmV,SACTmM,EAAMnM,OAASoiJ,EAASn1J,KAAoB,iBAARzB,EAAmBA,EAAO,MAG9D0yI,IAAMhuB,GAIEmyC,GAEAb,GAAetjB,EAAErxI,KAC3By1J,GAAS,UAFFpkB,EAAErxI,GAIPy1J,EAAQpkB,EAAErxI,GAAOhC,EAChBg2J,EAA4B3iB,EAAGrxI,EAAKhC,IATnCy3J,EAAQpkB,EAAErxI,GAAOhC,EAChBk2J,EAAUl0J,EAAKhC,KAUrBmpH,SAAS5oH,UAAW,YAAY,WACjC,OAAOwyI,EAAW7uI,OAASkzJ,EAAiBlzJ,MAAMiR,QAAU6hJ,EAAc9yJ,U,gBC5C5E,IAAInB,EAAiBtE,EAAQ,IAAuCkF,EAChE4hH,EAAM9mH,EAAQ,IAGdi5J,EAFkBj5J,EAAQ,GAEVk5J,CAAgB,eAEpCp5J,EAAOC,QAAU,SAAU6E,EAAIsqF,EAAK8oE,GAC9BpzJ,IAAOkiH,EAAIliH,EAAKozJ,EAASpzJ,EAAKA,EAAG9C,UAAWm3J,IAC9C30J,EAAeM,EAAIq0J,EAAe,CAAE70J,cAAc,EAAM7C,MAAO2tF,M,cCRnEpvF,EAAOC,QAAU,I,6BCAF,SAASoV,EAAkBjV,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAPT,mC,6BCAA,sEAIA,SAAS6U,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASy7E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAAS0gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAI4kJ,EAAkC,SAAU95I,GAC9CpB,EAAUk7I,EAAoB95I,GAE9B,IAAIC,EAASgE,EAAe61I,GAE5B,SAASA,EAAmBl1J,GAC1B,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAM0zJ,IAEtBnuJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM8vE,QAAU9vE,EAAM8vE,QAAQt7D,KAAK7B,EAAuB3S,IACnDA,EAsGT,OAnGAzG,EAAa40J,EAAoB,CAAC,CAChC51J,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKxB,MAAMmuD,QAAQgjE,SACtB3vH,KAAK4lB,QAAU/c,YAAW,WACxB8R,EAAO06D,QAAQ,QACdr1E,KAAKxB,MAAMmuD,QAAQijE,MAAQ,QAGjC,CACD9xH,IAAK,uBACLhC,MAAO,WACDkE,KAAK4lB,SACP7P,aAAa/V,KAAK4lB,WAGrB,CACD9nB,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAK4lB,SACP7P,aAAa/V,KAAK4lB,SAGhB5lB,KAAKxB,MAAM62E,SACbr1E,KAAKxB,MAAM62E,QAAQr1E,KAAKxB,MAAMmuD,SAG5Bt4C,IACFA,EAAMY,iBACNZ,EAAM83E,qBAGT,CACDruF,IAAK,UACLhC,MAAO,WACDkE,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQhgE,KAAKxB,MAAMmuD,WAGjC,CACD7uD,IAAK,kBACLhC,MAAO,WACL,OAAoC,IAAhCkE,KAAKxB,MAAMmuD,QAAQkjE,SACDh1G,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAW,yBACXyiE,QAAShgE,KAAKq1E,SACAx6D,IAAM7P,cAAc,IAAK,CACvCzN,UAAW,qCACIsd,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,gBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMmuD,QAAS,CACtB,IAAImjE,EAAsB9vH,KAAKxB,MAAMmuD,QACjCl4B,EAAWq7F,EAAoBr7F,SAC/BzV,EAAU8wG,EAAoB9wG,QAC9B+wG,EAAUD,EAAoBC,QAC9BC,EAASF,EAAoBE,OAC7B92C,EAAOj8E,YAAW,qBAAsB,CAC1C,iBAA+B,SAAbw3B,EAClB,WAAyB,YAAbA,EACZ,0BAAwC,SAAbA,EAC3B,kBAAgC,UAAbA,IAErB,OAAOzV,GAAwBnE,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,OAAQ,CAChHzN,UAAW27E,IACIr+D,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,qBACVwyH,GAAuBl1G,IAAM7P,cAAc,OAAQ,CACpDzN,UAAW,oBACVyyH,IAGL,OAAO,OAER,CACDlyH,IAAK,SACLhC,MAAO,WACL,IACIyB,EAAY,mCADDyC,KAAKxB,MAAMmuD,QAAQl4B,SAE9B07F,EAAYnwH,KAAKowH,kBACjBzjE,EAAU3sD,KAAKkwH,gBACnB,OAAoBr1G,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWA,EACXyiE,QAAShgE,KAAKggE,SACAnlD,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,qBACVovD,EAASwjE,QAITujC,EAnH6B,CAoHpC14I,aAEFxK,EAAgBkjJ,EAAoB,eAAgB,CAClD/mG,QAAS,KACT0oB,QAAS,KACTrV,QAAS,OAGX,IAAI2zF,EAAyB94I,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GAC7D,OAAoBD,IAAM7P,cAAc0oJ,EAAoBj7E,EAAS,CACnEG,WAAY99D,GACXtc,OAGL,SAASumB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIwhH,EAAa,EACbsjC,EAAwB,SAAUh6I,GACpCpB,EAAUo7I,EAAUh6I,GAEpB,IAAIC,EAASkL,EAAa6uI,GAE1B,SAASA,EAASp1J,GAChB,IAAI+G,EASJ,OAPApH,EAAgB6B,KAAM4zJ,IAEtBruJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZozG,SAAU,IAEZjrH,EAAM8vE,QAAU9vE,EAAM8vE,QAAQt7D,KAAK7B,EAAuB3S,IACnDA,EAuFT,OApFAzG,EAAa80J,EAAU,CAAC,CACtB91J,IAAK,OACLhC,MAAO,SAAcA,GACnB,GAAIA,EAAO,CACT,IAAI20H,EAAc,GAElB,GAAI31H,MAAME,QAAQc,GAChB,IAAK,IAAIlB,EAAI,EAAGA,EAAIkB,EAAMnB,OAAQC,IAChCkB,EAAMlB,GAAGkpB,GAAKwsG,IACdG,EAAc,GAAG1yH,OAAOgvF,EAAmB/sF,KAAKod,MAAMozG,UAAWzjC,EAAmBjxF,SAGtFA,EAAMgoB,GAAKwsG,IACXG,EAAczwH,KAAKod,MAAMozG,SAAW,GAAGzyH,OAAOgvF,EAAmB/sF,KAAKod,MAAMozG,UAAW,CAAC10H,IAAU,CAACA,GAGrGkE,KAAKwd,SAAS,CACZgzG,SAAUC,OAIf,CACD3yH,IAAK,QACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZgzG,SAAU,OAGb,CACD1yH,IAAK,UACLhC,MAAO,SAAiBA,GACtB,IAAI6e,EAAS3a,KAEbA,KAAKwd,SAAS,CACZgzG,SAAU,KACT,WACD,OAAO71G,EAAOuE,KAAKpjB,QAGtB,CACDgC,IAAK,UACLhC,MAAO,SAAiB6wD,GACtB,IAAI8jE,EAAczwH,KAAKod,MAAMozG,SAASxyH,QAAO,SAAU0yH,GACrD,OAAOA,EAAI5sG,KAAO6oC,EAAQ7oC,MAE5B9jB,KAAKwd,SAAS,CACZgzG,SAAUC,IAGRzwH,KAAKxB,MAAMiiH,UACbzgH,KAAKxB,MAAMiiH,SAAS9zD,KAGvB,CACD7uD,IAAK,SACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAoB6a,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWyC,KAAKxB,MAAMjB,UACtB6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc2lH,IAAiB,KAAM3wH,KAAKod,MAAMozG,SAAS7yH,KAAI,SAAUgvD,GAC3F,IAAIikE,EAA0B/1G,IAAMmL,YACpC,OAAoBnL,IAAM7P,cAAcia,IAAe,CACrDS,QAASkrG,EACT9yH,IAAK6uD,EAAQ7oC,GACb7mB,WAAY,YACZ4oB,eAAe,EACfD,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAS4P,EAAO1iB,MAAMo4G,mBACR/7F,IAAM7P,cAAc2oJ,EAAW,CAC7C74I,IAAK81G,EACLjkE,QAASA,EACTqT,QAAS9+C,EAAO1iB,MAAMwhE,QACtBqV,QAASn0D,EAAOm0D,oBAMjBu+E,EAtGmB,CAuG1B54I,aAEFxK,EAAgBojJ,EAAU,eAAgB,CACxC9vI,GAAI,KACJvmB,UAAW,KACX6C,MAAO,KACPw2G,kBAAmB,KACnB6J,SAAU,KACVzgD,QAAS,Q,6BCtZX,2FAOA,SAAS5gE,EAAoB3E,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2E,EAAoB3E,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWiD,EAAoBnD,EAAGC,QAA3G,GAQ2DmD,CAA8B5E,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GASnG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAASwT,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASkqB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAxByB9R,EAAKc,EAAKhC,EAwB/B+3J,EAA0B,SAAUj6I,IAtExC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA2D1CF,CAAUq7I,EAAYj6I,GAEtB,IAhGoBvb,EAAaU,EAAYC,EAgGzC6a,EAASkL,EAAa8uI,GAE1B,SAASA,EAAWr1J,GAClB,IAAI+G,EAuBJ,OA1IJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAmHpBsB,CAAgB6B,KAAM6zJ,IAEtBtuJ,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ02I,MAAO,GACPC,KAAM,GACNloE,SAAS,GAEXtmF,EAAMm4E,OAASn4E,EAAMm4E,OAAO3jE,KAAK7B,EAAuB3S,IACxDA,EAAMo4E,OAASp4E,EAAMo4E,OAAO5jE,KAAK7B,EAAuB3S,IACxDA,EAAMsS,MAAQtS,EAAMsS,MAAMkC,KAAK7B,EAAuB3S,IACtDA,EAAMyuJ,aAAezuJ,EAAMyuJ,aAAaj6I,KAAK7B,EAAuB3S,IACpEA,EAAM0uJ,YAAc1uJ,EAAM0uJ,YAAYl6I,KAAK7B,EAAuB3S,IAClEA,EAAMixF,WAAajxF,EAAMixF,WAAWz8E,KAAK7B,EAAuB3S,IAChEA,EAAMkxF,YAAclxF,EAAMkxF,YAAY18E,KAAK7B,EAAuB3S,IAClEA,EAAMmxF,OAASnxF,EAAMmxF,OAAO38E,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAM2uJ,sBAAwB3uJ,EAAM2uJ,sBAAsBn6I,KAAK7B,EAAuB3S,IACtFA,EAAM4uJ,kBAAmB,EAClB5uJ,EA+oBT,OAzwBoBlH,EA6HPw1J,GA7HoB90J,EA6HR,CAAC,CACxBjB,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAM02I,OAAS9zJ,KAAKod,MAAM02I,MAAMn5J,OAAS,IAEtD,CACDmD,IAAK,UACLhC,MAAO,SAAiBs4J,GACtB,MAAO,WAAWz3J,KAAKy3J,EAAK52J,QAE7B,CACDM,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMihB,UAAYzf,KAAKxB,MAAM61J,WAAar0J,KAAKxB,MAAM61J,WAAar0J,KAAKod,MAAM02I,MAAMn5J,OAASqF,KAAKs0J,oBAE9G,CACDx2J,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMihB,WAAazf,KAAKu0J,aAErC,CACDz2J,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMihB,WAAazf,KAAKu0J,aAErC,CACDz2J,IAAK,oBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMg2J,aAAex0J,KAAKxB,MAAMi2J,cAAcl7E,OAASkF,YAAa,YAEjF,CACD3gF,IAAK,oBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMk2J,aAAe10J,KAAKxB,MAAMm2J,cAAcp7E,OAASkF,YAAa,YAEjF,CACD3gF,IAAK,oBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMo2J,aAAe50J,KAAKxB,MAAMq2J,cAAct7E,OAASkF,YAAa,YAEjF,CACD3gF,IAAK,SACLhC,MAAO,SAAgBuY,EAAOgoD,GAC5Br8D,KAAK80J,oBAEL,IAAIC,EAAehoE,EAAmB/sF,KAAKod,MAAM02I,OAE7CkB,EAAch1J,KAAKod,MAAM02I,MAAMz3F,GACnC04F,EAAa9lJ,OAAOotD,EAAO,GAC3Br8D,KAAKwd,SAAS,CACZs2I,MAAOiB,IAGL/0J,KAAKxB,MAAMiiH,UACbzgH,KAAKxB,MAAMiiH,SAAS,CAClB9qG,cAAetB,EACf+/I,KAAMY,MAIX,CACDl3J,IAAK,oBACLhC,MAAO,WACDkE,KAAKi1J,YACPj1J,KAAKi1J,UAAUn5J,MAAQ,MAG1B,CACDgC,IAAK,eACLhC,MAAO,WACDkE,KAAKi1J,YACPj1J,KAAKm0J,kBAAmB,EAExBn0J,KAAKi1J,UAAUn5J,MAAQ,MAG1B,CACDgC,IAAK,aACLhC,MAAO,SAAoBo5J,GACzB,GAAc,IAAVA,EACF,MAAO,MAGT,IAGIt6J,EAAIwK,KAAKsmB,MAAMtmB,KAAKi6C,IAAI61G,GAAS9vJ,KAAKi6C,IAHlC,MAIR,OAAO/+C,YAAY40J,EAAQ9vJ,KAAK+vJ,IAJxB,IAI+Bv6J,IAAIw6J,QAHlC,IAGiD,IAF9C,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAEUx6J,KAEvE,CACDkD,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,IAAIsG,EAAS3a,KAEb,GAAmB,SAAfqU,EAAM7W,MAAmBwC,KAAKq1J,UAAYr1J,KAAKm0J,iBACjDn0J,KAAKm0J,kBAAmB,MAD1B,CAKAn0J,KAAKwd,SAAS,CACZu2I,KAAM,KAER/zJ,KAAK8zJ,MAAQ9zJ,KAAKod,MAAM02I,OAAS,GAGjC,IAFA,IAAIA,EAAQz/I,EAAMiqF,aAAejqF,EAAMiqF,aAAaw1D,MAAQz/I,EAAM9V,OAAOu1J,MAEhEl5J,EAAI,EAAGA,EAAIk5J,EAAMn5J,OAAQC,IAAK,CACrC,IAAIw5J,EAAON,EAAMl5J,GAEZoF,KAAKs1J,eAAelB,IACnBp0J,KAAKw6E,SAAS45E,KACZp0J,KAAKu1J,QAAQnB,KACfA,EAAKoB,UAAY50J,OAAOmvG,IAAIC,gBAAgBokD,IAG9Cp0J,KAAK8zJ,MAAMj4J,KAAKu4J,IAKtBp0J,KAAKwd,SAAS,CACZs2I,MAAO9zJ,KAAK8zJ,QACX,WACGn5I,EAAO45I,YAAc55I,EAAOnc,MAAMi3J,MACpC96I,EAAOgjE,YAIP39E,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACfy/I,MAAOA,IAIQ,SAAfz/I,EAAM7W,MAAmBwC,KAAKq1J,SAChCr1J,KAAK01J,eAEL11J,KAAK80J,oBAGiB,UAApB90J,KAAKxB,MAAMssG,MAAoB9qG,KAAK8zJ,MAAMn5J,OAAS,IACrDqF,KAAKi1J,UAAU70J,MAAM8H,QAAU,WAGlC,CACDpK,IAAK,iBACLhC,MAAO,SAAwBs4J,GAC7B,IACIhtJ,EADAM,EAAY+H,EAA2BzP,KAAKod,MAAM02I,OAGtD,IACE,IAAKpsJ,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAI+5J,EAAQvuJ,EAAMtL,MAClB,GAAI65J,EAAMl5J,KAAOk5J,EAAMn4J,KAAOm4J,EAAMxwC,OAASivC,EAAK33J,KAAO23J,EAAK52J,KAAO42J,EAAKjvC,KAAM,OAAO,GAEzF,MAAOppH,GACP2L,EAAUlI,EAAEzD,GANd,QAQE2L,EAAUjI,IAGZ,OAAO,IAER,CACD3B,IAAK,SACLhC,MAAO,WACL,QAAS8E,OAAM,wBAA8BF,SAAQ,eAEtD,CACD5C,IAAK,WACLhC,MAAO,SAAkBs4J,GACvB,GAAIp0J,KAAKxB,MAAMo3J,aAAexB,EAAKjvC,KAAOnlH,KAAKxB,MAAMo3J,YAAa,CAChE,IAAIjpG,EAAU,CACZl4B,SAAU,QACVs7F,QAAS/vH,KAAKxB,MAAMq3J,8BAA8B1yJ,QAAQ,MAAOixJ,EAAK33J,MACtEuzH,OAAQhwH,KAAKxB,MAAMs3J,6BAA6B3yJ,QAAQ,MAAOnD,KAAK+1J,WAAW/1J,KAAKxB,MAAMo3J,eAW5F,MARwB,aAApB51J,KAAKxB,MAAMssG,MACb9qG,KAAKg2J,WAAW92I,KAAKytC,GAGnB3sD,KAAKxB,MAAMy3J,kBACbj2J,KAAKxB,MAAMy3J,iBAAiB7B,IAGvB,EAGT,OAAO,IAER,CACDt2J,IAAK,SACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,GAAIA,KAAKxB,MAAM03J,aACTl2J,KAAKxB,MAAM61J,YACbr0J,KAAKs0J,mBAAqBt0J,KAAKod,MAAM02I,MAAMn5J,QAGzCqF,KAAKxB,MAAM23J,eACbn2J,KAAKxB,MAAM23J,cAAc,CACvBrC,MAAO9zJ,KAAKod,MAAM02I,MAClBxiJ,QAAS,CACPuG,MAAO7X,KAAK6X,MACZrZ,MAAOwB,KAAKxB,aAIb,CACLwB,KAAKwd,SAAS,CACZu2I,KAAM,KAER,IAAIrnG,EAAM,IAAI8D,eACV4lG,EAAW,IAAI7nC,SAEfvuH,KAAKxB,MAAM63J,gBACbr2J,KAAKxB,MAAM63J,eAAe,CACxB,IAAO3pG,EACP,SAAY0pG,IAIhB,IACItuJ,EADAC,EAAa0H,EAA2BzP,KAAKod,MAAM02I,OAGvD,IACE,IAAK/rJ,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAIw4J,EAAOtsJ,EAAOhM,MAClBs6J,EAAS1/F,OAAO12D,KAAKxB,MAAM/B,KAAM23J,EAAMA,EAAK33J,OAE9C,MAAOV,GACPgM,EAAWvI,EAAEzD,GANf,QAQEgM,EAAWtI,IAGbitD,EAAIixB,OAAOnwE,iBAAiB,YAAY,SAAU6G,GAC5CA,EAAMiiJ,kBACRp1I,EAAO1D,SAAS,CACd+4I,SAAUnxJ,KAAKwlB,MAAqB,IAAfvW,EAAMmiJ,OAAeniJ,EAAMoiJ,SAC/C,WACGv1I,EAAO1iB,MAAMk4J,YACfx1I,EAAO1iB,MAAMk4J,WAAW,CACtB/gJ,cAAetB,EACfkiJ,SAAUr1I,EAAO9D,MAAMm5I,iBAOjC7pG,EAAIiqG,mBAAqB,WACA,IAAnBjqG,EAAIkqG,aACN11I,EAAO1D,SAAS,CACd+4I,SAAU,IAGR7pG,EAAIkE,QAAU,KAAOlE,EAAIkE,OAAS,KAChC1vC,EAAO1iB,MAAM61J,YACfnzI,EAAOozI,mBAAqBpzI,EAAO9D,MAAM02I,MAAMn5J,QAG7CumB,EAAO1iB,MAAMq4J,UACf31I,EAAO1iB,MAAMq4J,SAAS,CACpBnqG,IAAKA,EACLonG,MAAO5yI,EAAO9D,MAAM02I,SAIpB5yI,EAAO1iB,MAAMsiH,SACf5/F,EAAO1iB,MAAMsiH,QAAQ,CACnBp0D,IAAKA,EACLonG,MAAO5yI,EAAO9D,MAAM02I,QAK1B5yI,EAAOrJ,UAIX60C,EAAI+D,KAAK,OAAQzwD,KAAKxB,MAAMqoB,KAAK,GAE7B7mB,KAAKxB,MAAMs4J,cACb92J,KAAKxB,MAAMs4J,aAAa,CACtB,IAAOpqG,EACP,SAAY0pG,IAIhB1pG,EAAIqqG,gBAAkB/2J,KAAKxB,MAAMu4J,gBACjCrqG,EAAIqE,KAAKqlG,MAGZ,CACDt4J,IAAK,QACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZs2I,MAAO,KAGL9zJ,KAAKxB,MAAMisJ,SACbzqJ,KAAKxB,MAAMisJ,UAGbzqJ,KAAK80J,sBAEN,CACDh3J,IAAK,SACLhC,MAAO,WACLkE,KAAKi1J,UAAU1lG,UAEhB,CACDzxD,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,YACLhC,MAAO,SAAmBuY,GACJ,KAAhBA,EAAMM,OAER3U,KAAK09E,WAGR,CACD5/E,IAAK,cACLhC,MAAO,SAAqBuY,GACrBrU,KAAKxB,MAAMihB,WACdpL,EAAM83E,kBACN93E,EAAMY,oBAGT,CACDnX,IAAK,aACLhC,MAAO,SAAoBuY,GACpBrU,KAAKxB,MAAMihB,WACd1f,IAAWya,SAASxa,KAAKgf,QAAS,0BAClC3K,EAAM83E,kBACN93E,EAAMY,oBAGT,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GACrBrU,KAAKxB,MAAMihB,UACd1f,IAAWma,YAAYla,KAAKgf,QAAS,4BAGxC,CACDlhB,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAKrU,KAAKxB,MAAMihB,SAAU,CACxB1f,IAAWma,YAAYla,KAAKgf,QAAS,0BACrC3K,EAAM83E,kBACN93E,EAAMY,iBACN,IAAI6+I,EAAQz/I,EAAMiqF,aAAejqF,EAAMiqF,aAAaw1D,MAAQz/I,EAAM9V,OAAOu1J,OACzD9zJ,KAAKxB,MAAMwnH,UAAY8tC,GAA0B,IAAjBA,EAAMn5J,SAGpDqF,KAAKg0J,aAAa3/I,MAIvB,CACDvW,IAAK,wBACLhC,MAAO,WACDkE,KAAKu0J,WACPv0J,KAAK29E,SAEL39E,KAAKi1J,UAAU1lG,UAGlB,CACDzxD,IAAK,qBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETg3J,EAAwBh3J,KAAKxB,MAAMi2J,cACnCl3J,EAAYy5J,EAAsBz5J,UAClC6C,EAAQ42J,EAAsB52J,MAC9B84E,EAAO89E,EAAsB99E,KAC7B+9E,EAAWD,EAAsBC,SACjCC,EAAkBj6J,YAAW,2CAA4C,CAC3E,aAAc+C,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,QACtB,qBAAsBorE,GACrB15J,GACC45J,EAAsBl6J,YAAW,+CAAgD,CACnF,oBAAqBi8E,GACpBA,GACC2hE,EAAiB,6BACjBthE,EAAQ09E,EAAwBp8I,IAAM7P,cAAc,OAAQ,CAC9DzN,UAAWs9I,EACXnhE,wBAAyB,CACvBC,OAAQ,YAEM9+D,IAAM7P,cAAc,OAAQ,CAC5CzN,UAAWs9I,GACV76I,KAAKo3J,qBACR,OAAoBv8I,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW25J,EACX92J,MAAOA,EACP4/D,QAAShgE,KAAK09E,OACdjpE,UAAWzU,KAAKyU,UAChBjC,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbqyD,SAAU,GACIjqD,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAOszI,UAAYh1J,GAE5BzC,KAAM,OACN+U,SAAUvS,KAAKg0J,aACfhuC,SAAUhmH,KAAKxB,MAAMwnH,SACrBxoC,OAAQx9E,KAAKxB,MAAMg/E,OACnB/9D,SAAUzf,KAAKq3J,mBACAx8I,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW45J,IACT59E,EAAoB1+D,IAAM7P,cAAc2O,IAAQ,SAErD,CACD7b,IAAK,aACLhC,MAAO,SAAoBs4J,EAAM/3F,GAC/B,IAAI/5C,EAAStiB,KAETs3J,EAAUt3J,KAAKu1J,QAAQnB,GAAqBv5I,IAAM7P,cAAc,MAAO,KAAmB6P,IAAM7P,cAAc,MAAO,CACvH41G,IAAKwzC,EAAK33J,KACVsnB,KAAM,eACN48F,IAAKyzC,EAAKoB,UACVt1J,MAAOF,KAAKxB,MAAM+4J,gBACd,KACFC,EAAwB38I,IAAM7P,cAAc,MAAO,CACrDzN,UAAW,yBACV62J,EAAK33J,MACJ0oH,EAAoBtqG,IAAM7P,cAAc,MAAO,KAAMhL,KAAK+1J,WAAW3B,EAAKjvC,OAC1EsyC,EAA4B58I,IAAM7P,cAAc,MAAO,KAAmB6P,IAAM7P,cAAcovE,IAAQ,CACxG58E,KAAM,SACN07E,KAAM,cACNlZ,QAAS,SAAiBxgE,GACxB,OAAO8iB,EAAOpf,OAAO1D,EAAG68D,OAGxBr9C,EAAuBnE,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAMqxI,EAASE,EAAUryC,EAAMsyC,GAE9F,GAAIz3J,KAAKxB,MAAMq2G,aAAc,CAC3B,IAAIr7B,EAAwB,CAC1BinC,SAAU,SAAkBpsG,GAC1B,OAAOiO,EAAOpf,OAAOmR,EAAOgoD,IAE9Bq7F,eAAgBJ,EAChBK,gBAAiBH,EACjBI,YAAazyC,EACbp+F,cAAe0wI,EACf1B,WAAY/1J,KAAK+1J,WAAW3B,EAAKjvC,MACjC5iH,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMq2G,aAAcu/C,EAAM56E,GAGrE,OAAoB3+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,mBACXO,IAAKs2J,EAAK33J,KAAO23J,EAAK52J,KAAO42J,EAAKjvC,MACjCnmG,KAEJ,CACDlhB,IAAK,cACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEb,OAAoB6a,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,sBACVyC,KAAKod,MAAM02I,MAAMn2J,KAAI,SAAUy2J,EAAM/3F,GACtC,OAAO55C,EAAOo1I,WAAWzD,EAAM/3F,SAGlC,CACDv+D,IAAK,qBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMs5J,gBAAkB93J,KAAKu0J,WAC7B5mJ,IAAY8rE,cAAcz5E,KAAKxB,MAAMs5J,cAAe93J,KAAKxB,OAG3D,OAER,CACDV,IAAK,2BACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMu5J,oBACNpqJ,IAAY8rE,cAAcz5E,KAAKxB,MAAMu5J,oBAAqB/3J,KAAKxB,OAGpDqc,IAAM7P,cAAcskI,IAAa,CACnDxzI,MAAOkE,KAAKod,MAAMm5I,SAClBhnB,WAAW,MAGd,CACDzxI,IAAK,iBACLhC,MAAO,WACL,IAKIk8J,EAAcC,EAAcC,EAAWC,EALvC70I,EAAStjB,KAETzC,EAAYN,YAAW,iDAAkD+C,KAAKxB,MAAMjB,WACpFu+E,EAAkB7+E,YAAW,yBAA0B+C,KAAKxB,MAAMs9E,iBAClEypC,EAAmBtoH,YAAW,uBAAwB+C,KAAKxB,MAAM+mH,kBAEjE6yC,EAAep4J,KAAKq4J,qBACpBC,EAAet4J,KAAKu4J,qBAExB,IAAKv4J,KAAKxB,MAAMi3J,KAAM,CACpB,IAAId,EAAgB30J,KAAKxB,MAAMm2J,cAC3BE,EAAgB70J,KAAKxB,MAAMq2J,cAC3BH,EAAeC,EAAcsC,SAAsC,GAA3Bj3J,KAAKw4J,oBAC7C5D,EAAeC,EAAcoC,SAAsC,GAA3Bj3J,KAAKy4J,oBACjDT,EAA4Bn9I,IAAM7P,cAAcovE,IAAQ,CACtD58E,KAAM,SACN+7E,MAAOm7E,EACPx7E,KAAMy7E,EAAcz7E,MAAQ,eAC5BlZ,QAAShgE,KAAK29E,OACdl+D,SAAUzf,KAAK04J,iBACft4J,MAAOu0J,EAAcv0J,MACrB7C,UAAWo3J,EAAcp3J,YAE3B06J,EAA4Bp9I,IAAM7P,cAAcovE,IAAQ,CACtD58E,KAAM,SACN+7E,MAAOq7E,EACP17E,KAAM27E,EAAc37E,MAAQ,cAC5BlZ,QAAShgE,KAAK6X,MACd4H,SAAUzf,KAAK24J,iBACfv4J,MAAOy0J,EAAcz0J,MACrB7C,UAAWs3J,EAAct3J,YAIzByC,KAAKu0J,aACP2D,EAAYl4J,KAAK44J,cACjBT,EAAcn4J,KAAK64J,4BAGrB,IAAI79E,EAAsBngE,IAAM7P,cAAc,MAAO,CACnDzN,UAAWu+E,EACX17E,MAAOJ,KAAKxB,MAAMq9E,aACjBu8E,EAAcJ,EAAcC,GAE/B,GAAIj4J,KAAKxB,MAAM6mH,eAAgB,CAC7B,IAAI7rC,EAAwB,CAC1Bj8E,UAAWu+E,EACXs8E,aAAcA,EACdJ,aAAcA,EACdC,aAAcA,EACd11J,QAASy4E,EACTx8E,MAAOwB,KAAKxB,OAEdw8E,EAASrtE,IAAY8rE,cAAcz5E,KAAKxB,MAAM6mH,eAAgB7rC,GAGhE,OAAoB3+D,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB46E,EAAqBngE,IAAM7P,cAAc,MAAO,CACjD8P,IAAK,SAAa7a,GAChBqjB,EAAOtE,QAAU/e,GAEnB1C,UAAWgoH,EACXnlH,MAAOJ,KAAKxB,MAAM8mH,aAClB2uC,YAAaj0J,KAAKi0J,YAClBz9D,WAAYx2F,KAAKw2F,WACjBC,YAAaz2F,KAAKy2F,YAClBC,OAAQ12F,KAAK02F,QACZyhE,EAA0Bt9I,IAAM7P,cAAc4oJ,IAAU,CACzD94I,IAAK,SAAa7a,GAChB,OAAOqjB,EAAO0yI,WAAa/1J,KAE3Bi4J,EAAWI,MAEhB,CACDx6J,IAAK,cACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAETy0J,EAAgBz0J,KAAKxB,MAAMi2J,cAC3Bl3J,EAAYN,YAAW,8CAA+C+C,KAAKxB,MAAMjB,WACjFu7J,EAAkB77J,YAAW,2CAA4C,CAC3E,+BAAgC+C,KAAKu0J,WACrC,aAAcv0J,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,SACrB4oE,EAAcl3J,WACb4zF,EAAgBl0F,YAAW,sCAAuC,CACpE,WAAYw3J,EAAcv7E,QAAUl5E,KAAKu0J,YAAcv0J,KAAKxB,MAAMi3J,MAClE,aAAchB,EAAcv7E,MAAQl5E,KAAKu0J,aAAev0J,KAAKxB,MAAMi3J,MAClEhB,EAAcv7E,MACb2hE,EAAiB,6BACjB2Z,EAAcC,EAAcwC,SAAwBp8I,IAAM7P,cAAc,OAAQ,CAClFzN,UAAWs9I,EACXnhE,wBAAyB,CACvBC,OAAQ,YAEM9+D,IAAM7P,cAAc,OAAQ,CAC5CzN,UAAWs9I,GACV76I,KAAKo3J,qBACJ79E,EAAQv5E,KAAKxB,MAAMi3J,KAAOjB,EAA2B35I,IAAM7P,cAAc,OAAQ,CACnFzN,UAAWs9I,GACV76I,KAAKu0J,WAAav0J,KAAKod,MAAM02I,MAAM,GAAGr3J,KAAO+3J,GAC5Ct7E,EAAoBr+D,IAAM7P,cAAc,OAAQ,CAClDzN,UAAW4zF,IAEb,OAAoBt2E,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc4oJ,IAAU,CAC5C94I,IAAK,SAAa7a,GAChB,OAAOyjB,EAAOsyI,WAAa/1J,KAEd4a,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAWu7J,EACX14J,MAAOq0J,EAAcr0J,MACrBuxF,UAAW3xF,KAAKk0J,sBAChBz/I,UAAWzU,KAAKyU,UAChBjC,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbqyD,SAAU,GACToU,EAAMK,GAAQv5E,KAAKu0J,YAA2B15I,IAAM7P,cAAc,QAAS,CAC5E8P,IAAK,SAAa7a,GAChB,OAAOyjB,EAAOuxI,UAAYh1J,GAE5BzC,KAAM,OACNggF,OAAQx9E,KAAKxB,MAAMg/E,OACnBwoC,SAAUhmH,KAAKxB,MAAMwnH,SACrBvmG,SAAUzf,KAAKxB,MAAMihB,SACrBlN,SAAUvS,KAAKg0J,eACAn5I,IAAM7P,cAAc2O,IAAQ,UAE9C,CACD7b,IAAK,SACLhC,MAAO,WACL,MAAwB,aAApBkE,KAAKxB,MAAMssG,KAA4B9qG,KAAK+4J,iBAA8C,UAApB/4J,KAAKxB,MAAMssG,KAAyB9qG,KAAKg5J,mBAA7C,OApwB1D16J,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAuwBzC60J,EA5qBqB,CA6qB5B74I,aArsBiClf,EAusBS,CAC1CgoB,GAAI,KACJrnB,KAAM,KACNoqB,IAAK,KACLikF,KAAM,WACNkb,UAAU,EACVxoC,OAAQ,KACR/9D,UAAU,EACVg2I,MAAM,EACNG,YAAa,KACbC,8BAA+B,2BAC/BC,6BAA8B,8BAC9B11J,MAAO,KACP7C,UAAW,KACX07J,kBAAkB,EAClB1B,aAAc,GACd/C,YAAa,KACbE,YAAa,KACbE,YAAa,KACbH,cAAe,CACbl7E,MAAO,KACPL,KAAM,KACN+9E,UAAU,EACV15J,UAAW,KACX6C,MAAO,MAETu0J,cAAe,CACbp7E,MAAO,KACPL,KAAM,KACN+9E,UAAU,EACV15J,UAAW,KACX6C,MAAO,MAETy0J,cAAe,CACbt7E,MAAO,KACPL,KAAM,KACN+9E,UAAU,EACV15J,UAAW,KACX6C,MAAO,MAET81J,cAAc,EACdp6E,gBAAiB,KACjBD,YAAa,KACb0pC,iBAAkB,KAClBD,aAAc,KACdD,eAAgB,KAChBxQ,aAAc,KACdijD,cAAe,KACfC,oBAAqB,KACrB1B,eAAgB,KAChBS,aAAc,KACdD,SAAU,KACV/1C,QAAS,KACT2pC,QAAS,KACTrwD,SAAU,KACVs8D,WAAY,KACZT,iBAAkB,KAClBE,cAAe,KACf11C,SAAU,OAjwBkB3iH,EAusBF,kBAvsBHd,EAusBT62J,GArsBZz3J,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,eCxIf,IAAI+F,EAGJA,EAAK,WACJ,OAAO7B,KADH,GAIL,IAEC6B,EAAIA,GAAK,IAAIojH,SAAS,cAAb,GACR,MAAOzlH,GAEc,kBAAXoB,SAAqBiB,EAAIjB,QAOrCvG,EAAOC,QAAUuH,G,gBCnBjB,IAAIq3J,EAAc3+J,EAAQ,KACtB4+J,EAAW5+J,EAAQ,KAIvBF,EAAOC,QAAU,SAAUimH,GACzB,IAAIziH,EAAMo7J,EAAY34C,EAAU,UAChC,OAAO44C,EAASr7J,GAAOA,EAAMuS,OAAOvS,K,cCPtCzD,EAAOC,SAAU,G,gBCAjB,IAWImd,EAAKF,EAAK8pG,EAXV+3C,EAAkB7+J,EAAQ,KAC1B4mH,EAAS5mH,EAAQ,IACjB4zH,EAAW5zH,EAAQ,IACnBu3J,EAA8Bv3J,EAAQ,IACtC8+J,EAAY9+J,EAAQ,IACpB6mH,EAAS7mH,EAAQ,KACjB++J,EAAY/+J,EAAQ,IACpBg/J,EAAah/J,EAAQ,IAErBi/J,EAA6B,6BAC7BC,EAAUt4C,EAAOs4C,QAgBrB,GAAIL,GAAmBh4C,EAAOhkG,MAAO,CACnC,IAAIs8I,EAAQt4C,EAAOhkG,QAAUgkG,EAAOhkG,MAAQ,IAAIq8I,GAC5CE,EAAQD,EAAMniJ,IACdqiJ,EAAQF,EAAMr4C,IACdw4C,EAAQH,EAAMjiJ,IAClBA,EAAM,SAAUtY,EAAI26J,GAClB,GAAIF,EAAMl+J,KAAKg+J,EAAOv6J,GAAK,MAAM,IAAItC,UAAU28J,GAG/C,OAFAM,EAASC,OAAS56J,EAClB06J,EAAMn+J,KAAKg+J,EAAOv6J,EAAI26J,GACfA,GAETviJ,EAAM,SAAUpY,GACd,OAAOw6J,EAAMj+J,KAAKg+J,EAAOv6J,IAAO,IAElCkiH,EAAM,SAAUliH,GACd,OAAOy6J,EAAMl+J,KAAKg+J,EAAOv6J,QAEtB,CACL,IAAI66J,EAAQV,EAAU,SACtBC,EAAWS,IAAS,EACpBviJ,EAAM,SAAUtY,EAAI26J,GAClB,GAAIT,EAAUl6J,EAAI66J,GAAQ,MAAM,IAAIn9J,UAAU28J,GAG9C,OAFAM,EAASC,OAAS56J,EAClB2yJ,EAA4B3yJ,EAAI66J,EAAOF,GAChCA,GAETviJ,EAAM,SAAUpY,GACd,OAAOk6J,EAAUl6J,EAAI66J,GAAS76J,EAAG66J,GAAS,IAE5C34C,EAAM,SAAUliH,GACd,OAAOk6J,EAAUl6J,EAAI66J,IAIzB3/J,EAAOC,QAAU,CACfmd,IAAKA,EACLF,IAAKA,EACL8pG,IAAKA,EACL+xC,QAnDY,SAAUj0J,GACtB,OAAOkiH,EAAIliH,GAAMoY,EAAIpY,GAAMsY,EAAItY,EAAI,KAmDnC86J,UAhDc,SAAUC,GACxB,OAAO,SAAU/6J,GACf,IAAIie,EACJ,IAAK+wG,EAAShvH,KAAQie,EAAQ7F,EAAIpY,IAAK3B,OAAS08J,EAC9C,MAAMr9J,UAAU,0BAA4Bq9J,EAAO,aACnD,OAAO98I,M,gBCtBb,IAAIgkG,EAAS7mH,EAAQ,KACjBqlD,EAAMrlD,EAAQ,KAEdkU,EAAO2yG,EAAO,QAElB/mH,EAAOC,QAAU,SAAUwD,GACzB,OAAO2Q,EAAK3Q,KAAS2Q,EAAK3Q,GAAO8hD,EAAI9hD,M,cCNvCzD,EAAOC,QAAU,I,gBCAjB,IAAI6/J,EAAY5/J,EAAQ,KAEpBmlC,EAAMt6B,KAAKs6B,IAIfrlC,EAAOC,QAAU,SAAUimH,GACzB,OAAOA,EAAW,EAAI7gF,EAAIy6H,EAAU55C,GAAW,kBAAoB,I,gBCPrE,IAAI65C,EAAwB7/J,EAAQ,KAChCs0I,EAAat0I,EAAQ,IACrB8/J,EAAa9/J,EAAQ,KAGrBi5J,EAFkBj5J,EAAQ,GAEVk5J,CAAgB,eAEhC6G,EAAuE,aAAnDD,EAAW,WAAc,OAAOl9J,UAArB,IAUnC9C,EAAOC,QAAU8/J,EAAwBC,EAAa,SAAUl7J,GAC9D,IAAIgwI,EAAGorB,EAAKzrJ,EACZ,YAAcrJ,IAAPtG,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhDo7J,EAXD,SAAUp7J,EAAIrB,GACzB,IACE,OAAOqB,EAAGrB,GACV,MAAO+M,KAQS2vJ,CAAOrrB,EAAI/yI,OAAO+C,GAAKq0J,IAA8B+G,EAEnED,EAAoBD,EAAWlrB,GAEH,WAA3BrgI,EAASurJ,EAAWlrB,KAAmBN,EAAWM,EAAEsrB,QAAU,YAAc3rJ,I,gBCxBnF,IAmDI4rJ,EAnDA1rB,EAAWz0I,EAAQ,IACnB6W,EAAmB7W,EAAQ,KAC3BogK,EAAcpgK,EAAQ,KACtBg/J,EAAah/J,EAAQ,IACrBk4D,EAAOl4D,EAAQ,KACfqgK,EAAwBrgK,EAAQ,KAChC++J,EAAY/+J,EAAQ,IAMpBsgK,EAAWvB,EAAU,YAErBwB,EAAmB,aAEnBC,EAAY,SAAU/7I,GACxB,MAAOg8I,WAAmBh8I,EAAnBg8I,gBAILC,EAA4B,SAAUP,GACxCA,EAAgBQ,MAAMH,EAAU,KAChCL,EAAgB12G,QAChB,IAAIm3G,EAAOT,EAAgBU,aAAah/J,OAExC,OADAs+J,EAAkB,KACXS,GA0BLE,EAAkB,WACpB,IACEX,EAAkB,IAAIY,cAAc,YACpC,MAAOzwJ,IACTwwJ,EAAqC,oBAAZ36J,SACrBA,SAAS66J,QAAUb,EACjBO,EAA0BP,GA5BH,WAE7B,IAEIc,EAFAC,EAASb,EAAsB,UAWnC,OARAa,EAAOr7J,MAAM8H,QAAU,OACvBuqD,EAAKjpD,YAAYiyJ,GAEjBA,EAAO96C,IAAMtwG,OALJ,gBAMTmrJ,EAAiBC,EAAOC,cAAch7J,UACvB+vD,OACf+qG,EAAeN,MAAMH,EAAU,sBAC/BS,EAAex3G,QACRw3G,EAAel8J,EAgBhBq8J,GACFV,EAA0BP,GAE9B,IADA,IAAI//J,EAASggK,EAAYhgK,OAClBA,YAAiB0gK,EAAe,UAAYV,EAAYhgK,IAC/D,OAAO0gK,KAGT9B,EAAWsB,IAAY,EAIvBxgK,EAAOC,QAAU8B,OAAOuc,QAAU,SAAgBw2H,EAAGysB,GACnD,IAAI9sJ,EAQJ,OAPU,OAANqgI,GACF2rB,EAAgB,UAAc9rB,EAASG,GACvCrgI,EAAS,IAAIgsJ,EACbA,EAAgB,UAAc,KAE9BhsJ,EAAO+rJ,GAAY1rB,GACdrgI,EAASusJ,SACM51J,IAAfm2J,EAA2B9sJ,EAASsC,EAAiBtC,EAAQ8sJ,K,6BCxEtE,IAAIhrJ,EAAwBxU,OAAOwU,sBAC/BlC,EAAiBtS,OAAOC,UAAUqS,eAClCmtJ,EAAmBz/J,OAAOC,UAAUo0F,qBAExC,SAASsiC,EAAS18G,GACjB,GAAY,OAARA,QAAwB5Q,IAAR4Q,EACnB,MAAM,IAAIxZ,UAAU,yDAGrB,OAAOT,OAAOia,GA+Cfhc,EAAOC,QA5CP,WACC,IACC,IAAK8B,OAAOg8E,OACX,OAAO,EAMR,IAAI0jF,EAAQ,IAAIzrJ,OAAO,OAEvB,GADAyrJ,EAAM,GAAK,KACkC,MAAzC1/J,OAAO2/J,oBAAoBD,GAAO,GACrC,OAAO,EAKR,IADA,IAAIE,EAAQ,GACHphK,EAAI,EAAGA,EAAI,GAAIA,IACvBohK,EAAM,IAAM3rJ,OAAOmF,aAAa5a,IAAMA,EAKvC,GAAwB,eAHXwB,OAAO2/J,oBAAoBC,GAAOr+J,KAAI,SAAUxB,GAC5D,OAAO6/J,EAAM7/J,MAEH+B,KAAK,IACf,OAAO,EAIR,IAAI+9J,EAAQ,GAIZ,MAHA,uBAAuBl5J,MAAM,IAAImO,SAAQ,SAAUgrJ,GAClDD,EAAMC,GAAUA,KAGf,yBADE9/J,OAAOqS,KAAKrS,OAAOg8E,OAAO,GAAI6jF,IAAQ/9J,KAAK,IAM9C,MAAOnC,GAER,OAAO,GAIQogK,GAAoB//J,OAAOg8E,OAAS,SAAU75E,EAAQ0S,GAKtE,IAJA,IAAIvU,EAEAmU,EADA7B,EAAK+jH,EAASx0H,GAGTgB,EAAI,EAAGA,EAAIpC,UAAUxC,OAAQ4E,IAAK,CAG1C,IAAK,IAAIzB,KAFTpB,EAAON,OAAOe,UAAUoC,IAGnBmP,EAAehT,KAAKgB,EAAMoB,KAC7BkR,EAAGlR,GAAOpB,EAAKoB,IAIjB,GAAI8S,EAAuB,CAC1BC,EAAUD,EAAsBlU,GAChC,IAAK,IAAI9B,EAAI,EAAGA,EAAIiW,EAAQlW,OAAQC,IAC/BihK,EAAiBngK,KAAKgB,EAAMmU,EAAQjW,MACvCoU,EAAG6B,EAAQjW,IAAM8B,EAAKmU,EAAQjW,MAMlC,OAAOoU,I,6BCxFR,6DAGA,SAASypE,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAS9B,SAASmB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIstJ,EAA2B,SAAUxiJ,IApEzC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAU4jJ,EAAaxiJ,GAEvB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAaq3I,GAE1B,SAASA,EAAY59J,GACnB,IAAI+G,EAcJ,OA/HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMo8J,IAEtB72J,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM4qJ,OAAS5qJ,EAAM4qJ,OAAOp2I,KAAK7B,EAAuB3S,IACxDA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAkKT,OAjRoBlH,EAkHP+9J,EAlHoBr9J,EAkHP,CAAC,CACzBjB,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMihB,WAIfzf,KAAKmwJ,OAAO97I,GACZrU,KAAK8rF,SAAS/8E,QAAQq9E,WAEvB,CACDtuF,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,GAAIrU,KAAKxB,MAAM+T,SAAU,CACvB,IAAIzW,EAAQkE,KAAK+rF,YAAc/rF,KAAKxB,MAAMwtF,WAAahsF,KAAKxB,MAAMytF,UAClEjsF,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOA,QAKd,CACDgC,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIsG,EAAS3a,KAETq8J,EAAehoJ,EACnBrU,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGlxE,EAAOnc,MAAMgU,SACfmI,EAAOnc,MAAMgU,QAAQ6pJ,QAI1B,CACDv+J,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAI6M,EAASlhB,KAETq8J,EAAehoJ,EACnBrU,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACG3qE,EAAO1iB,MAAMiU,QACfyO,EAAO1iB,MAAMiU,OAAO4pJ,QAIzB,CACDv+J,IAAK,YACLhC,MAAO,SAAmBuY,GACN,UAAdA,EAAMvW,KACRkC,KAAKggE,QAAQ3rD,KAGhB,CACDvW,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OArHvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAqH/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0tF,UAAYlsF,KAAKxB,MAAMytF,YAE1C,CACDnuF,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETzC,EAAYN,YAAW,4BAA6B,CACtD,wBAAyB+C,KAAK+rF,YAC9B,aAAc/rF,KAAKxB,MAAMihB,SACzB,sBAAuBzf,KAAKod,MAAMyuE,SACjC7rF,KAAKxB,MAAMjB,WACV++J,EAAmB3uJ,IAAYusE,aAAal6E,KAAKxB,MAAO49J,EAAYjiF,cACxE,OAAoBt/D,IAAM7P,cAAc,MAAOytE,EAAS,CACtD39D,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO7X,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKggE,QACdj8C,KAAM,WACN,eAAgB/jB,KAAK+rF,aACpBuwE,GAAgCzhJ,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK9a,KAAK8rF,SACVtuF,KAAM,WACNsmB,GAAI9jB,KAAKxB,MAAMmuF,QACflwF,KAAMuD,KAAKxB,MAAM/B,KACjByvF,QAASlsF,KAAK+rF,YACdx5E,SAAUvS,KAAKmwJ,OACf39I,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbgC,UAAWzU,KAAKyU,UAChBgL,SAAUzf,KAAKxB,MAAMihB,SACrBsE,KAAM,SACN,eAAgB/jB,KAAK+rF,YACrB,kBAAmB/rF,KAAKxB,MAAMkuF,kBACd7xE,IAAM7P,cAAc,OAAQ,CAC5CzN,UAAW,6BA3QbwB,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA+QzCo9J,EAtLsB,CAuL7BphJ,aAEFxK,EAAgB4rJ,EAAa,eAAgB,CAC3Ct4I,GAAI,KACJgoE,SAAU,KACV1rF,MAAO,KACP7C,UAAW,KACXovF,QAAS,KACTlwF,KAAM,KACNyvF,SAAS,EACTD,WAAW,EACXD,YAAY,EACZvsE,UAAU,EACVs5D,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBn6E,SAAU,KACVC,QAAS,KACTC,OAAQ,Q,8DClUV,2B,+CA2BA,OA3BoC,iBAClC,YAAAmjC,WAAA,WACE,MAAO,CACL3mB,OAAQ,GACRstI,MAAO,KAIX,YAAA3lH,mBAAA,SAAmBzR,GACjB,OAAIA,EAASlW,OACJ,CAAC,UAGH,CAAC,UAGV,YAAA4nB,mBAAA,SAAmBvnB,GACjB,OAAKA,EAASL,OAIV,aAAeK,GACV,CAAC,QAAS,UAGZ,CAAC,UAPC,CAAC,UASd,EA3BA,CAAoC,KCG9BktI,EAA4B,aAAgB,CAChD9rI,KAAM,UACNE,OAAQ,UACR8C,gBAAgB,EAChBC,SAAU,U,SAGI8oI,EAAiBj+J,GAC/B,IAAIvB,EAAa,CACf,mBACA,yBACAuB,EAAMk+J,UAAY,uBAAyB,0BAG7C,OACE,aAAC,IAAgB53G,SAAQ,MACtB,SAAC1+B,GACA,IAAK5nB,EAAMk+J,UACT,OACE,mBAAIn/J,UAAWN,EAAWiB,KAAK,KAAI,YAAaM,EAAMm+J,aAIpD,IAAA/tI,EAA8BxI,EAAvB,QAAE9U,EAAqB8U,EAAd,QAAE0f,EAAY1f,EAAL,QAC3Bw2I,EACyB,MAA3BtrJ,EAAQurJ,gBAA0BL,EAChC1hK,MAAME,QAAQsW,EAAQurJ,iBAAmB,aAAgBvrJ,EAAQurJ,gBAAgB,IAC/E,aAAgBvrJ,EAAQurJ,iBAE1Bz4G,EAAiC,CACnCqY,MAAO,EACPhvB,KAAMjvC,EAAMivC,KACZ3hB,KAAM8C,EAAQkW,OAAOtmC,EAAMstB,MAC3B+Z,KAAMC,EACN94B,KAAM4hB,EAAQ9H,OAAOtoB,EAAMstB,KAAM8wI,IAGnC,OACE,aAAC,IAAU,CACTx4G,UAAWA,EACXnnD,WAAYqU,EAAQwrJ,oBACpB99I,QAAS1N,EAAQyrJ,iBACjBv4G,eAAgBQ,EAChBX,SAAU/yC,EAAQ0rJ,kBAClB14G,YAAahzC,EAAQ2rJ,uBAEpB,SAACh5G,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAC1D,mBAAI7pC,IAAKmpC,EAAW1mD,UAAWN,EAAWc,OAAOooD,GAAkBjoD,KAAK,KAAI,YAAaM,EAAMm+J,YAC7F,oBAAKp/J,UAAU,2DACb,oBAAKA,UAAU,8DAA8Dud,IAAK4pC,GAC/EC,WAYrB,SAASK,EAAmBxmD,GAC1B,OAAOA,EAAMwO,KC9Df,+B,+CAQA,OARkC,iBAChC,YAAAsR,OAAA,WACE,OAAOte,KAAKxB,MAAM0+J,UAAUv/J,KAAI,SAACw/J,GAA2B,OAC1D,mBAAIr/J,IAAKq/J,EAASr/J,KAChB,aAAC2+J,EAAgB,eAAKU,SAI9B,EARA,CAAkC,KCmB5B1Z,EAA0B,aAAgB,CAAEvyH,KAAM,U,cAYxD,2D,OACY,EAAAksI,eAAiB,IAAIC,EAErB,EAAArb,YAA+C,eACjD,EAAA/9F,UAAuC,eACvC,EAAAiuB,cAA2C,eAEnD,EAAA90D,MAAQ,CACNkgJ,WAAY,MAoPd,EAAAC,uBAAyB,SAACz8J,GACxB,IAAIixE,EAAa,EAAKG,cAAcnjE,QAEhCgjE,IACFA,EAAWjxE,UAAYA,IAqB3B,EAAA08J,eAAiB,SAACC,EAAwBC,QAAA,IAAAA,MAAA,IAClC,IAAApsJ,EAAY,EAAK8U,QAAV,QAETxT,EADkB,EAAKpU,MAAV,YACOwqD,YACpBhrB,EAAS,aAASprB,EAAMgD,MAAOhD,EAAME,KAErC6xD,EAAgBrzD,EAAQszD,UAAuB,IAAX5mC,EACpC,CAAE,eAAgB,YAAiBprB,EAAMgD,MAAO,QAASkvD,SAAU,GACnE,GAEJ,OAAIxzD,EAAQo0H,aAA0B,QAAX+3B,EAEvB,aAAC,IAAc,CAAC3xI,KAAMlZ,EAAMgD,MAAOk/D,cAAe2uE,IAC/C,SAACx/F,EAAWhnD,EAAYynD,EAAYC,GAAiB,OACpD,mBACE7pC,IAAKmpC,EACL1mD,UAAW,CACT,mBACA,wBACAQ,OAAOd,GAAYiB,KAAK,MAE1B,oBACEX,UAAU,kFACV6C,MAAO,CAAEkB,OAAQo8J,IAEjB,8BACE5iJ,IAAK4pC,EACLnnD,UAAU,kFACNonE,GAEHhgB,QAUb,mBAAIpnD,UAAU,oBACZ,oBAAKA,UAAU,yBAAyB6C,MAAO,CAAEkB,OAAQo8J,OAU/D,EAAAC,mBAAqB,SAACC,GAChB,MAAuB,EAAKx3I,QAA1B9U,EAAO,UAAEw0B,EAAO,UAClBse,EAA8B,CAChCp3C,KAAMsE,EAAQ6gC,WACdtM,KAAMC,GAGR,OAEE,Y,CAAC,IAAU,CACTse,UAAWA,EACXnnD,WAAYqU,EAAQusJ,iBACpB7+I,QAAS1N,EAAQwsJ,cACjBt5G,eAAgBu5G,EAChB15G,SAAU/yC,EAAQ0sJ,eAClB15G,YAAahzC,EAAQ2sJ,oBAEpB,SAACh6G,EAAWhnD,EAAYynD,EAAYC,GAAiB,OACpD,mBACE7pC,IAAKmpC,EACL1mD,UAAW,CACT,mBACA,wBACAQ,OAAOd,GAAYiB,KAAK,MAE1B,oBACEX,UAAW,qDAAoE,MAAbqgK,EAAoB,iCAAmC,IACzHx9J,MAAO,CAAEkB,OAAQs8J,IAEjB,qBAAMrgK,UAAU,iFAAiFud,IAAK4pC,GACnGC,SASf,EAAAu5G,iBAAmB,SAACZ,GAClB,EAAK9/I,SAAS,CAAE8/I,WAAU,K,EAE9B,OAlX2C,iBAczC,YAAArb,mBAAA,SACEC,EACA4b,EACAK,GAEI,IAAE/3I,EAAmBpmB,KAAZ,QAAExB,EAAUwB,KAAL,MAChBqwE,EAAsC,GACtCd,EAAoB,aAAqBnpD,EAAQ9U,SA6CrD,OA3CI4wI,GACF7xE,EAASx0E,KAAK,CACZ2B,KAAM,SACNM,IAAK,SACLwnE,SAAUiK,EACV2B,MAAO,CACL/sB,MAAOnkD,KAAKgiJ,YACZxwE,eAAgB,gBAChBG,WAAYuwE,KAKd4b,IACFztF,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,UACLozE,MAAO,CAAElyD,QAAS8+I,KAEpBztF,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,kBACLkzE,aACE,mBAAIzzE,UAAU,yBACZ,mBACEA,UAAW,uBAAyB6oB,EAAQ0xB,MAAMC,SAAS,yBAOrEs4B,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,OACLgjE,QAAQ,EACRyQ,WAAYj4D,QAAQ8M,EAAQ9U,QAAQigE,YACpCL,MAAO,CACLgB,cAAelyE,KAAKkyE,cACpBlzD,QAASm/I,KAKX,aAAC,IAAQ,CAAC1/G,SAAUr4B,EAAQq4B,SAAU0F,MAAOnkD,KAAKikD,YAC/C,SAACA,EAAWhnD,GAAe,OAC1B,oBAAKM,UAAW,CAAC,eAAeQ,OAAOd,GAAYiB,KAAK,KAAM4c,IAAKmpC,GACjE,aAAC,IAAgB,CACf6c,QAAStiE,EAAM0kE,eAAiB1kE,EAAM2kE,SACtCqN,iBAAkBhyE,EAAM2kE,SACxB0L,KAAM,CAAC,CAAE3uE,MAAO,WAChBmwE,SAAUA,SAQtB,YAAA+xE,oBAAA,SACEF,EACA4b,EACAK,EACAt5F,EACAw9E,EACA6a,EACAI,GAPF,WASMhb,EAAatiJ,KAAKomB,QAAQyI,YAAY6yB,eAE1C,IAAK4gG,EACH,MAAM,IAAI54I,MAAM,gCAGd,IAAE0c,EAAmBpmB,KAAZ,QAAExB,EAAUwB,KAAL,MAChBuvE,GAAqB/wE,EAAM2kE,UAAY,aAAqB/8C,EAAQ9U,SACpEm+D,GAAyBjxE,EAAM2kE,UAAY,aAAyB/8C,EAAQ9U,SAC5E++D,EAAsC,GAEtC6xE,GACF7xE,EAASx0E,KAAK,CACZ2B,KAAM,SACNM,IAAK,SACLwnE,SAAUiK,EACVkC,gBAAgB,EAChB8wE,OAAQ,CACN,CACEzkJ,IAAK,OACL6zE,WAAY,SAAChiB,GAAkC,OAC7C,uBAAK,EAAK6tG,eAAe,MAAO7tG,EAAIkiB,eAAe,OAGvD,CACE/zE,IAAK,OACLqmD,MAAOnkD,KAAKgiJ,YACZxwE,eAAgB,gBAChBG,WAAYuwE,MAMhB4b,IACFztF,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,UACL2zE,gBAAgB,EAChB8wE,OAAQ,CACN,CACEzkJ,IAAK,OACL6zE,WAAY,SAAC03E,GAAyC,OACpD,uBAAK,EAAKsU,mBAAmBtU,EAAWx3E,eAAe,OAG3D,CACE/zE,IAAK,OACLkhB,QAAS8+I,MAIfztF,EAASx0E,KAAK,CACZiC,IAAK,kBACLN,KAAM,OACNwzE,aACE,mBAAIzzE,UAAU,yBACZ,mBACE6nE,QAAS,EACT7nE,UAAW,uBAAyB6oB,EAAQ0xB,MAAMC,SAAS,yBAOrE,IAAIqmH,EAAiBh4I,EAAQ9U,QAAQ+sJ,aA4ErC,OA1EAhuF,EAASx0E,KAAK,CACZ2B,KAAM,OACNM,IAAK,OACLgjE,QAAQ,EACRyQ,WAAYj4D,QAAQ8M,EAAQ9U,QAAQigE,YACpCgxE,OAAQ,CACN,CACEzkJ,IAAK,OACLkhB,QAAS,SAAC2wC,GAAQ,OAEhB,Y,CAAA,OAAKpyD,UAAU,0BACb,sBAAO6C,MAAO,CAAEkB,OAAQquD,EAAI4hB,WAAa5hB,EAAIjuD,aAAe,KACzDiuD,EAAI+hB,kBACL,0BACE,aAAC4sF,EAAY,CAACpB,UAAWA,MAG7B,oBAAK3/J,UAAU,uCACb,aAAC,IAAQ,CAACyyB,KAAMouI,EAAiB,SAAW,QACzC,SAACz6H,GACA,IAAI46H,EACFH,GACAd,GACAA,EAAWkB,eAAe76H,GAE5B,MAA+B,kBAApB46H,EAEP,aAAC,IAAgB,CAAC5qF,QAAM,EAAC7nD,KAAM6X,IAC5B,SAACsgB,EAAWhnD,EAAYynD,EAAYC,GAAiB,OACpD,oBACE7pC,IAAKmpC,EACL1mD,UAAW,CAAC,mCAAmCQ,OAAOd,GAAYiB,KAAK,KACvEkC,MAAO,CAAEgC,IAAKm8J,IAEb55G,MAOJ,YAOnB,CACE7mD,IAAK,OACLo0E,cAAelyE,KAAKkyE,cACpBlzD,QAASm/I,MAKX1uF,GACFY,EAASx0E,KAAK,CACZiC,IAAK,SACLN,KAAM,SACN8nE,UAAU,EACVi9E,OAAQ,CACN,CACEzkJ,IAAK,OACLkhB,QAAS,MAEX,CACElhB,IAAK,OACLkhB,QAAS,SAOf,aAAC,IAAQ,CAACy/B,SAAUr4B,EAAQq4B,SAAU0F,MAAOnkD,KAAKikD,YAC/C,SAACA,EAAWhnD,GAAe,OAC1B,oBAAKM,UAAW,CAAC,eAAeQ,OAAOd,GAAYiB,KAAK,KAAM4c,IAAKmpC,GACjE,aAACq+F,EAAU,CACTxhF,QAAStiE,EAAM0kE,eAAiB1kE,EAAM2kE,SACtCqN,kBAAkB,EAClBgyE,UAAW,CACT,CAAEtiJ,MAAO,SAAU2uE,KAAM,CAAC,CAAE3uE,MAAO,YACnC,CAAE2uE,KAAM,CAAC,CAAEzqC,KAAMygC,EAAQ3gE,SAAUm+I,MAErChyE,SAAUA,SAmBtB,YAAAouF,uBAAA,WACM,MAAoCz+J,KAAKomB,QAAQ9U,QAA/C8zI,EAAY,eAAEC,EAAe,kBAOnC,OALqB,IAAjBD,IAA6C,IAApBC,IAC3BD,OAAe3/I,EACf4/I,EAvR8B,GA0RzB,CAAED,aAAY,EAAEC,gBAAe,IAmG1C,E,CAlX2C,KAoX3C,SAAS0Y,EAAkB35G,GACzB,OAAOA,EAAUp3C,K,iBCnZjB,WACS0xJ,EACCt3H,EACAu3H,GAFD,KAAAD,YACC,KAAAt3H,cACA,KAAAu3H,eA6DZ,OAzDE,YAAAH,eAAA,SAAe1yI,GACP,IAAAsb,EAAgBpnC,KAAL,YAEjB,GAAI,aAAoBonC,EAAYE,aAAcxb,GAAO,CACvD,IAAI8yI,EAAiB,aAAW9yI,GAC5B+yI,EAAS/yI,EAAKvS,UAAYqlJ,EAAerlJ,UAE7C,GACEslJ,GAAU,YAAUz3H,EAAYoiB,cAChCq1G,EAAS,YAAUz3H,EAAYqiB,aAE/B,OAAOzpD,KAAK8+J,eAAe,aAAeD,IAI9C,OAAO,MAKT,YAAAE,eAAA,SAAeC,EAAkBJ,GAI/B,OAHKA,IACHA,EAAiB,aAAWI,IAEvBh/J,KAAK8+J,eAAe,aAAeE,EAAKzlJ,UAAYqlJ,EAAerlJ,aAM5E,YAAAulJ,eAAA,SAAex2J,GACT,IAKA22J,EACAC,EANER,EAA2B1+J,KAAlB,UAAEonC,EAAgBpnC,KAAL,YACxBtF,EAAMgkK,EAAUjkH,IAAI9/C,OAGpBwkK,GAAgB72J,EAAS8nB,aAAe,YAAUgX,EAAYoiB,cAAgB,YAAUxpD,KAAK2+J,cAmBjG,OAZAQ,EAAe/5J,KAAKC,IAAI,EAAG85J,GAC3BA,EAAe/5J,KAAKs6B,IAAIhlC,EAAKykK,GAI7BF,EAAY75J,KAAKsmB,MAAMyzI,GAKvBD,EAAgBC,GAJhBF,EAAY75J,KAAKs6B,IAAIu/H,EAAWvkK,EAAM,IAM/BgkK,EAAUvjH,KAAK8jH,GACpBP,EAAUvkJ,UAAU8kJ,GAAaC,GAEvC,E,GC5DA,2B,+CAoDA,OApDuC,iBACrC,YAAA5gJ,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdsR,EAAY8U,EAAL,QACPg5I,EAAe5gK,EAAL,WAEhB,OACE,0BACGA,EAAM0+J,UAAUv/J,KAAI,SAACw/J,EAAUviK,GAC9B,IAAIwpD,EAAgC,CAClC3W,KAAM0vH,EAAS1vH,KACf3hB,KAAM1F,EAAQwI,QAAQkW,OAAOq4H,EAASrxI,MACtC+Z,KAAMzf,EAAQ0f,SAGZ7oC,EAAa,CACf,mBACA,wBACAkgK,EAAST,UAAY,GAAK,0BAG5B,OACE,mBACE5+J,IAAKq/J,EAASr/J,IACdgd,IAAKskJ,EAAWp5I,UAAUm3I,EAASr/J,MAElCU,EAAMsI,MACL,aAAC21J,EAAgB,eAAKU,IAExB,aAAC,IAAU,CACT/4G,UAAWA,EACXnnD,WAAYqU,EAAQ+tJ,mBACpBrgJ,QAAS1N,EAAQguJ,gBACjBj7G,SAAU/yC,EAAQiuJ,iBAClBj7G,YAAahzC,EAAQkuJ,sBAEpB,SAACv7G,EAAWkC,EAAkBzB,EAAYC,GAAiB,OAC1D,mBACE7pC,IAAKmpC,EACL1mD,UAAWN,EAAWc,OAAOooD,GAAkBjoD,KAAK,KAAI,YAC7Ci/J,EAASR,YAEnBh4G,YAUrB,EApDA,CAAuC,KCgBvC,yE,OACU,EAAAV,UAAY,eACZ,EAAAm7G,WAAa,IAAI,I,EAiE3B,OAnEmC,iBAIjC,YAAA9gJ,OAAA,WACM,IAAE9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAEpB,OACE,oBAAKzC,UAAU,oBAAoBud,IAAK9a,KAAKikD,WAC3C,sBACE1mD,UAAW6oB,EAAQ0xB,MAAMC,SAAS,SAClC33C,MAAO,CACL8D,SAAU1F,EAAM6wE,cAChBnvE,MAAO1B,EAAMwD,YACbV,OAAQ9C,EAAM4zI,YAGf5zI,EAAMkzE,kBACP,aAAC+tF,EAAiB,CAChBL,WAAYp/J,KAAKo/J,WACjBt4J,KAAMtI,EAAMsI,KACZo2J,UAAW1+J,EAAM0+J,eAO3B,YAAAj4G,kBAAA,WACEjlD,KAAKwmJ,gBAGP,YAAArhG,mBAAA,WACEnlD,KAAKwmJ,gBAGP,YAAAphG,qBAAA,WACMplD,KAAKxB,MAAMkhK,UACb1/J,KAAKxB,MAAMkhK,SAAS,OAIxB,YAAAlZ,aAAA,WACM,IA0BgBc,EA1BdlhI,EAAmBpmB,KAAZ,QAAExB,EAAUwB,KAAL,MAGlBxB,EAAMkhK,UACgB,OAAtBlhK,EAAMwD,cAEOhC,KAAKikD,UAAUl1C,QAEjBxN,cACT/C,EAAMkhK,SACJ,IAAIC,EACF,IAAI,IACF3/J,KAAKikD,UAAUl1C,SAcLu4I,EAbKtnJ,KAAKo/J,WAAW9xF,WAAY9uE,EAAM0+J,UAc5Cv/J,KAAI,SAACw/J,GAAa,OAAA7V,EAAM6V,EAASr/J,UAbtC,GACA,GAEFkC,KAAKxB,MAAM4oC,YACXhhB,EAAQ9U,QAAQqtJ,iBAM5B,EAnEA,CAAmC,K,SCtBnBiB,EAAen+H,EAA4BojC,GACzD,IACIjqE,EADAilK,EAA6B,GAGjC,IAAKjlK,EAAI,EAAGA,EAAIiqE,EAAQjqE,GAAK,EAC3BilK,EAAUhkK,KAAK,IAGjB,GAAI4lC,EACF,IAAK7mC,EAAI,EAAGA,EAAI6mC,EAAK9mC,OAAQC,GAAK,EAChCilK,EAAUp+H,EAAK7mC,GAAGktE,KAAKjsE,KAAK4lC,EAAK7mC,IAIrC,OAAOilK,E,SAGOC,EAAsBpiI,EAAuCmnC,GAC3E,IAAI69E,EAAsC,GAE1C,GAAKhlH,EAIE,CACL,IAAS9iC,EAAI,EAAGA,EAAIiqE,EAAQjqE,GAAK,EAC/B8nJ,EAAM9nJ,GAAK,CACT4uE,kBAAmB9rC,EAAG8rC,kBACtBlyB,QAAS5Z,EAAG4Z,QACZ7V,KAAM,IAIV,IAAgB,UAAA/D,EAAG+D,KAAH,eAAS,CAApB,IAAIN,EAAG,KACVuhH,EAAMvhH,EAAI2mC,KAAKrmC,KAAK5lC,KAAKslC,SAb3B,IAAK,IAAIvmC,EAAI,EAAGA,EAAIiqE,EAAQjqE,GAAK,EAC/B8nJ,EAAM9nJ,GAAK,KAgBf,OAAO8nJ,EC5BT,6E,OACE,EAAAz+F,UAAY,e,EAmCd,OApCqC,iBAGnC,YAAA3lC,OAAA,sBACQ9f,EAAUwB,KAAL,MACX,OACE,aAAC,IAAY,CACX62E,WAAY,KACZI,QAASz4E,EAAMu4E,WAAWp8E,OAC1Bm8E,QAASt4E,EAAMu4E,WACfA,WAAYv4E,EAAMu4E,WAClBS,eAAgBx3E,KAAKikD,UACrBO,eAAgB6yB,EAChBjB,cAAe53E,EAAM43E,cACrBhvC,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClB+zC,eAAgB,WAAM,OAAAsoF,EAAkBvhK,EAAMu4E,WAAYv4E,MAEzD,SAACylD,EAAWhnD,EAAYynD,EAAYC,EAAc8xB,GAAgB,OACjE,kBACE37D,IAAK,SAAC7a,GACJ,aAAOgkD,EAAWhkD,GAClB,aAAO,EAAKgkD,UAAWhkD,IAEzB1C,UAAW,CAAC,yBAAyBQ,OAAOd,GAAYiB,KAAK,KAC7DkC,MAAO,CAAEgC,IAAK5D,EAAM4D,IAAKwE,OAAQpI,EAAMoI,QACvCo5D,QAASyW,GAET,oBAAK37D,IAAK4pC,EAAYnnD,UAAU,yCAC7BonD,QAOf,EApCA,CAAqC,KAsCrC,SAAS0yB,EAAoB74E,GAC3B,OAAOA,EAAM04E,U,SC9BC8oF,EACdC,EACArlG,EACAG,GAEA,IAAImlG,EAAY,IAAI,IACD,MAAftlG,IACFslG,EAAUtlG,YAAcA,GAEP,MAAfG,IACFmlG,EAAUnlG,YAAcA,GAG1B,IAAIK,EAAgB8kG,EAAU/kG,QAAQ8kG,GAClCE,EAAe,aAAyB/kG,GAExCglG,EAON,SAAkBF,GACR,IAAAjlG,EAAmBilG,EAAL,eAEhBG,EAAYC,GAChB,SAAC7jG,EAAeF,GAAoB,OAAAE,EAAQ,IAAMF,KAClD,SAACE,EAAeF,GACd,IAAIgkG,EAoDV,SAA2BL,EAAyBM,EAAsBC,GAQxE,IAPM,IAAAzlG,EAAgCklG,EAArB,YAAEjlG,EAAmBilG,EAAL,eAC7BQ,EAAezlG,EAAeulG,GAAcC,GAC5CE,EAAe3lG,EAAYwlG,GAAgBE,EAAa9kG,UACxDgB,EAAW5B,EAAYrgE,OACvB8hE,EAAQ+jG,EAGL/jG,EAAQG,GAAY5B,EAAYyB,GAASkkG,EAAclkG,GAAS,GAEvE,KAAOA,EAAQG,EAAUH,GAAS,EAAG,CAOnC,IANA,IAAI/+D,EAAUu9D,EAAewB,GACzBnB,OAAK,EACL+9C,EAAc,YAAa37G,EAASgjK,EAAat8H,KAAKxuB,MAAO,MAC7DgrJ,EAAevnD,EAAY,GAAKA,EAAY,GAC5CwnD,EAAaD,GAGdtlG,EAAQ59D,EAAQmjK,KACjBvlG,EAAMl3B,KAAKxuB,MAAQ8qJ,EAAat8H,KAAKtxB,KACnC+tJ,GAAc,EAElB,GAAID,EAAeC,EACjB,MAAO,CAAEpkG,MAAK,EAAEmkG,aAAY,EAAEC,WAAU,GAI5C,OAAO,KA/EgBC,CAAkBZ,EAAWzjG,EAAOF,GACnDwkG,EAAeC,EAAWT,EAAcF,GACxC/kG,EAAQL,EAAewB,GAAOF,GAElC,MAAO,C,2BACAjB,GAAK,CAAE2lG,eAAgBF,EAAa,KACzCzlG,EAAMM,UAAYmlG,EAAa,OAKrC,OAAOC,EACL/lG,EAAetgE,OACX,CAAE8hE,MAAO,EAAGmkG,aAAc,EAAGC,WAAY5lG,EAAe,GAAGtgE,QAC3D,KACJ0lK,GACA,GA7BQa,CAAShB,GAInB,MAAO,CAAEiB,SAiIX,SAAoBC,GAClB,IAAIxjG,EAAsB,GAEpByjG,EAAcf,GAClB,SAAC/4J,EAAeo0D,EAAoB2lG,GAAuB,mBAAc/5J,MACzE,SAACA,EAAeo0D,EAAoB2lG,GAClC,IAAIp/J,EAAI,2BACHqF,GAAI,CACPo0D,WAAU,EACV2lG,WAAU,EACVC,aAAc,IAIhB,OAFA3jG,EAAM/hE,KAAKqG,GAGTA,EAAKq/J,aAAeC,EAAaj6J,EAAK05J,eAAgBtlG,EAAap0D,EAAKq0D,UAAW0lG,EAAa,GAAK,KAK3G,SAASE,EAAa7a,EAAkBhrF,EAAoB2lG,GAE1D,IADA,IAAIC,EAAe,EACF,MAAA5a,EAAA,eAAO,CAAnB,IAAIp/I,EAAI,KACXg6J,EAAen8J,KAAKC,IAAIg8J,EAAY95J,EAAMo0D,EAAY2lG,GAAaC,GAErE,OAAOA,EAIT,OADAC,EAAaJ,EAAe,EAAG,GACxBxjG,EAhKQ6jG,CADfrB,EA8FF,SAAoBgB,EAA0BM,GAC5C,IAAMC,EAAcrB,GAClB,SAAC/4J,EAAeq6J,EAAoBC,GAA0B,mBAAct6J,MAC5E,SAACA,EAAeq6J,EAAoBC,GAC5B,IAGFC,EAHEb,EAA8B15J,EAAhB,eAAEq0D,EAAcr0D,EAAL,UAC3Bw6J,EAAenmG,EAAYimG,EAC3BG,EAAoBpmG,EAAYmmG,EAEhCE,EAAyB,GAE7B,GAAKhB,EAAetmK,OAGlB,IAAsB,UAAAsmK,EAAA,eAAgB,CAAjC,IAAIiB,EAAS,KAChB,QAAiBz8J,IAAbq8J,EAAwB,CAE1BA,GADIhwI,EAAM6vI,EAAYO,EAAWN,EAAYG,IAC9B,GACfE,EAAYpmK,KAAKi2B,EAAI,QAChB,CACL,IAAIA,EAAM6vI,EAAYO,EAAWJ,EAAU,GAC3CG,EAAYpmK,KAAKi2B,EAAI,UATzBgwI,EAAWJ,EAcb,IAAIS,GAAgBL,EAAWF,GAAcI,EAC7C,MAAO,CAACF,EAAWK,EAAY,2BAC1B56J,GAAI,CACPq0D,UAAWumG,EACXlB,eAAgBgB,QAKtB,OAAOb,EAAczjK,KAAI,SAAC4J,GAAkB,OAAAo6J,EAAYp6J,EAAM,EAAG,GAAG,MAhI9D66J,CAAWhC,EAAK,IAGHD,aAAY,GA4BjC,SAASa,EACPT,EACAF,GAEA,IAAKE,EACH,MAAO,CAAC,GAAI,GAOd,IAJM,IAAA9jG,EAAoC8jG,EAA/B,MAAEK,EAA6BL,EAAjB,aAAEM,EAAeN,EAAL,WACjChkG,EAAUqkG,EACVyB,EAA8B,GAE3B9lG,EAAUskG,GACfwB,EAAMxmK,KAAKwkK,EAAU5jG,EAAOF,IAC5BA,GAAW,EAKb,OAFA8lG,EAAMjjI,KAAKkjI,GAEJ,CACLD,EAAM1kK,IAAI4kK,GACVF,EAAM,GAAG,IAIb,SAASC,EAAiBr0J,EAAuBC,GAC/C,OAAOA,EAAE,GAAKD,EAAE,GAGlB,SAASs0J,EAAYt0J,GACnB,OAAOA,EAAE,GAyGX,SAASqyJ,EACPkC,EACAC,GAEA,IAAMxkD,EAAgC,GAEtC,OAAO,W,IAAC,sDACN,IAAIngH,EAAM0kK,EAAO,aAAIplK,GACrB,OAAQU,KAAOmgH,EACXA,EAAMngH,GACLmgH,EAAMngH,GAAO2kK,EAAQ,aAAIrlK,I,S3C5MlBslK,EACdjhI,EACAkhI,EACArF,EACAsF,QADA,IAAAtF,MAAA,WACA,IAAAsF,MAAA,GAEA,IAAIC,EAAqB,GAEzB,GAAIvF,EACF,IAAK,IAAI1iK,EAAI,EAAGA,EAAI6mC,EAAK9mC,OAAQC,GAAK,EAAG,CACvC,IAAIumC,EAAMM,EAAK7mC,GACXkoK,EAAYxF,EAAWyB,eAAe59H,EAAIvrB,MAAO+sJ,GACjDI,EAAU39J,KAAKC,IACjBy9J,GAAaF,GAAkB,GAC/BtF,EAAWyB,eAAe59H,EAAIruB,IAAK6vJ,IAErCE,EAAQhnK,KAAK,CACX+Z,MAAOxQ,KAAKwlB,MAAMk4I,GAClBhwJ,IAAK1N,KAAKwlB,MAAMm4I,KAKtB,OAAOF,E4CvCT,IAAMG,EAAsB,aAAgB,CAC1CtyI,KAAM,UACNE,OAAQ,UACR+C,UAAU,IAOZ,2B,+CAmBA,OAnBkC,iBAChC,YAAArV,OAAA,WACE,IAAIrhB,EAAa,CACf,oBACA,cAOF,OAJI+C,KAAKxB,MAAMykK,SACbhmK,EAAWpB,KAAK,2BAIhB,aAAC,IAAa,eACRmE,KAAKxB,MAAK,CACdg1E,kBAAmBwvF,EACnBx9F,gBAAiBvoE,MAIzB,EAnBA,CAAkC,KCAlC,2B,+CAaA,OAbiC,iBAC/B,YAAAqhB,OAAA,WACQ,IAAA9f,EAAUwB,KAAL,MAEX,OACE,aAAC,IAAc,CAAC8rB,KAAMttB,EAAMstB,KAAMsb,YAAa5oC,EAAM4oC,YAAa1D,WAAYllC,EAAMklC,WAAYqhC,eAAgBvmE,EAAMumE,iBACnH,SAACrgB,EAAYC,GAAiB,OAC7BA,GACE,oBAAKpnD,UAAU,uBAAuBud,IAAK4pC,GAAaC,OAKpE,EAbA,CAAiC,KCuBjC,yE,OACE,EAAAnjB,cAAgB,aAAQ,M,EA4P1B,OA7P6B,iBAI3B,YAAAljB,OAAA,sBACQ9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAChBkjK,EAAiB98I,EAAQ9U,QAAQ6xJ,aAEjCrd,EACDtnJ,EAAM03C,WAAa13C,EAAM03C,UAAUzU,MACnCjjC,EAAM43C,aAAe53C,EAAM43C,YAAY3U,MACvCyhI,GAAkB1kK,EAAMwqE,mBACzB,GAEEo6F,EACD5kK,EAAM03C,WAAa13C,EAAM03C,UAAUszB,mBACnChrE,EAAM43C,aAAe53C,EAAM43C,YAAYozB,mBACxC,GAEE65F,EAAerjK,KAAKwhC,cAAchjC,EAAM0qE,YAAa9iD,EAAQ9U,QAAQ6zI,YAEzE,OACE,aAAC,IAAW,CACVhhG,MAAO3lD,EAAM2lD,MACbr4B,KAAMttB,EAAMstB,KACZsb,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClBqhC,eAAgBvmE,EAAMumE,iBAErB,SAAC9gB,EAAWhnD,EAAYu3E,GAAc,OACrC,+BACE15D,IAAKmpC,EACL1mD,UAAW,CAAC,mBAAmBQ,OAAOd,EAAYuB,EAAMgnE,iBAAmB,IAAItnE,KAAK,MAChFs2E,EACAh2E,EAAM6mE,gBAEV,oBAAK9nE,UAAU,yBACb,oBAAKA,UAAU,sBACZ,EAAKgpJ,eAAe/nJ,EAAMyqE,iBAAkB,gBAC5C,EAAKs9E,eAAe/nJ,EAAM2qE,YAAa,YACvC,EAAKo9E,eAAe/nJ,EAAMwqE,kBAAmB,cAEhD,oBAAKzrE,UAAU,0BACZ,EAAKqoJ,aACJyd,EACAD,GACA,GACA,GACA,IAGJ,oBAAK7lK,UAAU,0BACZ,EAAKqoJ,aACJE,EACA,GACAxsI,QAAQ9a,EAAM03C,WACd58B,QAAQ9a,EAAM43C,aACd98B,QAAQ4pJ,KAGZ,oBAAK3lK,UAAU,uCACZ,EAAK+lK,mBAAmB9kK,EAAM+kK,mBAEjC,aAACC,EAAW,CACV13I,KAAMttB,EAAMstB,KACZsb,YAAa5oC,EAAM4oC,YACnB1D,WAAYllC,EAAMklC,WAClBqhC,eAAgBvmE,EAAMumE,uBASpC,YAAA6gF,aAAA,SACEyd,EACAI,EACA5wF,EACAC,EACAC,GAEM,IAAAv0E,EAAUwB,KAAL,MACX,OAAIxB,EAAM2kE,SACD48F,EAAkBsD,EAAc7kK,GAElCwB,KAAK0jK,uBAAuBL,EAAcI,EAAgB5wF,EAAYC,EAAYC,IAG3F,YAAA2wF,uBAAA,SACEjiI,EACAgiI,EACA5wF,EACAC,EACAC,GALF,WAOM,EAAwE/yE,KAAKomB,QAAQ9U,QAAnFqyJ,EAAa,gBAAEC,EAAgB,mBAAEte,EAAgB,mBAAEsd,EAAc,iBACnE,EAA4D5iK,KAAKxB,MAA/DstB,EAAI,OAAEwxI,EAAU,aAAE5mH,EAAc,iBAAEhT,EAAU,aAAEC,EAAO,UACvDivC,EAAWC,GAAcC,GAAcC,EAEvC,E,S9C3FNtxC,EACAoiI,EACAve,EACAqe,GAKA,IAHA,IAAI1D,EAAwB,GACxB6D,EAA0B,GAErBlpK,EAAI,EAAGA,EAAI6mC,EAAK9mC,OAAQC,GAAK,EAAG,CACvC,IAAIioK,EAAUgB,EAAWjpK,GACrBioK,EACF5C,EAAUpkK,KAAK,CACbwgE,MAAOzhE,EACPghE,UAAW,EACXx3B,KAAMy+H,IAGRiB,EAASjoK,KAAK4lC,EAAK7mC,IAOvB,IAHI,MAA6BolK,EAAiBC,EAAW3a,EAAkBqe,GAAzExC,EAAQ,WAAEhB,EAAY,eACxBzZ,EAAyC,GAEzB,MAAAya,EAAA,eAAU,CAAzB,IAAI4C,EAAO,KACdrd,EAAc7qJ,KAAK,CACjBslC,IAAKM,EAAKsiI,EAAQ1nG,OAClBn6D,KAAM6hK,IAIV,IAAoB,UAAAD,EAAA,eAAU,CAAzB,IAAIE,EAAO,KACdtd,EAAc7qJ,KAAK,CAAEslC,IAAK6iI,EAAS9hK,KAAM,OAG3C,MAAO,CAAEwkJ,cAAa,EAAEyZ,aAAY,G8CwDI8D,CAAuBxiI,EAD5CihI,EAAkBjhI,EAAM3V,EAAMwxI,EAAYsF,GACoBtd,EAAkBqe,GAA3Fjd,EAAa,gBAAEyZ,EAAY,eAEjC,OACE,aAAC,IAAQ,KACNngK,KAAKkkK,mBAAmB/D,EAAc1+H,GACtCilH,EAAc/oJ,KAAI,SAACwmK,GACZ,IAAAhjI,EAAcgjI,EAAX,IAAEjiK,EAASiiK,EAAL,KACXj3I,EAAaiU,EAAIc,WAAW7jC,SAAS8uB,WACrC82F,EAAYpxC,GAAYt5D,SAASmqJ,EAAev2I,IAAehrB,GAC/DkiK,EAASC,EAAiBniK,GAAQA,EAAKkiC,MACvCkgI,GAAW1xF,GAAY1wE,EAAQ,EAAKqiK,iBAAiBriK,GAAQ,CAAEI,KAAM,EAAGqE,MAAO,GAC/E69J,EAAUlrJ,QAAQpX,IAASA,EAAKq/J,aAAe,EAC/C0B,EAAU3pJ,QAAQpX,IAAUA,EAAKkiC,KAAKtxB,IAAM5Q,EAAKkiC,KAAKxuB,MAASguJ,EAEnE,OACE,oBACErmK,UACE,6BACCinK,EAAU,mCAAqC,IAElD1mK,IAAKovB,EACL9sB,MAAK,yBACH6H,WAAY+7G,EAAa,GAAa,UACnCogD,GACAE,IAGL,aAACG,EAAY,aACXtjI,IAAKA,EACL0xC,WAAYA,EACZC,WAAYA,EACZC,gBAAiBA,EACjBC,WAAY9lD,IAAewpB,EAC3BusH,QAASA,GACL,aAAW9hI,EAAKuC,EAAYC,WAU9C,YAAAugI,mBAAA,SAAmB/D,EAA+B1+H,GAC5C,MAA8FzhC,KAAKxB,MAAjG43E,EAAa,gBAAEhvC,EAAW,cAAE1D,EAAU,aAAEC,EAAO,UAAE+S,EAAc,iBAAER,EAAS,YAAEE,EAAW,cAC7F,OACE,aAAC,IAAQ,KACN+pH,EAAaxiK,KAAI,SAAC+mK,GACjB,IA2JRC,EACA7tF,EA5JY8tF,EAAcP,EAAiBK,EAAYtgI,MAC3C2yC,GA0JZ4tF,EA1JgDD,EAAYhnK,QA2J5Do5E,EA3JqEr1C,EA6J9DkjI,EAAWhnK,KAAI,SAACknK,GAAa,OAAA/tF,EAAQ+tF,EAASxoG,WA5J7C,OACE,aAACyoG,EAAe,CACdhnK,IAAK,YAAe,aAAwBi5E,IAC5CA,WAAYA,EACZ30E,IAAKwiK,EAAYxiK,IACjBwE,OAAQg+J,EAAYh+J,OACpBwvE,cAAeA,EACfhvC,YAAaA,EACb1D,WAAYA,EACZC,QAASA,EACT+S,eAAgBA,EAChBR,UAAWA,EACXE,YAAaA,SAQzB,YAAAmwG,eAAA,SAAe9kH,EAAqBmzC,GAC9B,IAAEp2E,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QAGhBwC,EAFakgK,EAAkBjhI,EAAMjjC,EAAMstB,KAAMttB,EAAM8+J,WAAYl3I,EAAQ9U,QAAQsxJ,gBAE7DjlK,KAAI,SAACklK,EAASjoK,GACtC,IAAIumC,EAAMM,EAAK7mC,GACf,OACE,oBACEkD,IAAK,YAAmBqjC,EAAIc,YAC5B1kC,UAAU,yBACV6C,MAAOikK,EAAiBxB,IAEV,aAAbjuF,EACC,aAAC,IAAO,aAACzzC,IAAKA,GAAS,aAAWA,EAAK3iC,EAAMklC,WAAYllC,EAAMmlC,WAC/D,aAAWixC,OAKnB,OAAO,aAAC,IAAQ,KAAEpyE,IAGpB,YAAA8gK,mBAAA,SAAmB7hI,GACb,MAAuBzhC,KAAKxB,MAA1B8+J,EAAU,aAAExxI,EAAI,OAEtB,OAAKwxI,EAEE77H,EAAK9jC,KAAI,SAACwjC,EAAKvmC,GAAM,OAC1B,aAAC,IAAgB,CACf+4E,QAAQ,EACR7nD,KAAMA,EAENhuB,IAAKlD,IAEJ,SAACqpD,EAAWhnD,EAAYynD,EAAYC,GAAiB,OACpD,oBACE7pC,IAAKmpC,EACL1mD,UAAW,CAAC,kCAAkCQ,OAAOd,GAAYiB,KAAK,KACtEkC,MAAO,CAAEgC,IAAKk7J,EAAWyB,eAAe59H,EAAIvrB,MAAOkW,KAElD64B,SAfiB,MAsB5B,YAAA4/G,iBAAA,SAAiBQ,GACX,IAIAziK,EACAqE,EALA,EAAqB3G,KAAKomB,QAAxBm3B,EAAK,QACPynH,EADgB,UACQC,iBACxBC,EAAYH,EAAWppG,WACvBwpG,EAAWJ,EAAWppG,WAAaopG,EAAWnpG,UAI9CopG,IAEFG,EAAW//J,KAAKs6B,IAAI,EAAGwlI,EAAqC,GAAxBC,EAAWD,KAG7C3nH,GACFj7C,EAAO,EAAI6iK,EACXx+J,EAAQu+J,IAER5iK,EAAO4iK,EACPv+J,EAAQ,EAAIw+J,GAGd,IAAI3mK,EAAQ,CACV0Y,OAAQ6tJ,EAAWzD,WAAa,EAChCh/J,KAAa,IAAPA,EAAa,IACnBqE,MAAe,IAARA,EAAc,KAQvB,OALIq+J,IAAkBD,EAAWxD,eAE/B/iK,EAAM++C,EAAQ,aAAe,eAAiB,IAGzC/+C,GAEX,EA7PA,CAA6B,K,SA+PbuhK,EACdsD,EACA,G,IAAE3/H,EAAU,aAAEC,EAAO,UAAE+S,EAAc,iBAAER,EAAS,YAAEE,EAAW,cAQzDgvH,GACDlvH,EAAYA,EAAUszB,kBAAoB,QAC1CpzB,EAAcA,EAAYozB,kBAAoB,OAC/C,GACF,OACE,aAAC,IAAQ,KACN65F,EAAa1lK,KAAI,SAACwjC,GACjB,IAAIjU,EAAaiU,EAAIc,WAAW7jC,SAAS8uB,WACzC,OACE,oBACEpvB,IAAKovB,EACL9sB,MAAO,CAAE6H,WAAYm9J,EAAgBl4I,GAAc,SAAY,KAE/D,aAACu3I,EAAY,aACXtjI,IAAKA,EACL0xC,YAAY,EACZC,YAAY,EACZC,iBAAiB,EACjBC,WAAY9lD,IAAewpB,EAC3BusH,SAAS,GACL,aAAW9hI,EAAKuC,EAAYC,UAS9C,SAAS0gI,EAAiBR,GACxB,OAAKA,EAGE,CACLzhK,IAAKyhK,EAAWjuJ,MAChBhP,QAASi9J,EAAW/wJ,KAJb,CAAE1Q,IAAK,GAAIwE,OAAQ,IClS9B,6E,OACU,EAAA8gJ,iBAAmB,aAAQkY,GAC3B,EAAAnY,iBAAmB,aAAQmY,GAC3B,EAAApY,sBAAwB,aAAQoY,GAChC,EAAAyF,sBAAwB,aAAQzF,GAChC,EAAAjY,uBAAyB,aAAQiY,GACjC,EAAAtqH,eAAiB,aAAQwqH,GACzB,EAAAtqH,iBAAmB,aAAQsqH,GAC3B,EAAA77G,UAAY,eACZ,EAAAogG,WAAa,IAAI,I,EAyG3B,OAlHqC,iBAWnC,YAAA/lI,OAAA,sBACQ9f,EAAmBwB,KAAd,MACPu+J,EADqBv+J,KAAL,QAEVsR,QAAQ+sJ,cAChB7/J,EAAM8+J,YACN9+J,EAAM8+J,WAAWkB,eAAehgK,EAAMmlC,SAEpCkhC,EAASrmE,EAAMgpE,MAAM7sE,OACrBotJ,EAAmB/nJ,KAAK0nJ,iBAAiBlpJ,EAAM0qE,YAAarE,GAC5DijF,EAAmB9nJ,KAAKynJ,iBAAiBjpJ,EAAM2qE,YAAatE,GAC5DgjF,EAAwB7nJ,KAAKwnJ,sBAAsBhpJ,EAAMyqE,iBAAkBpE,GAC3EygG,EAAwBtlK,KAAKqlK,sBAAsB7mK,EAAM+kK,iBAAkB1+F,GAC3EmjF,EAAyBhoJ,KAAK2nJ,uBAAuBnpJ,EAAMwqE,kBAAmBnE,GAC9EojF,EAAiBjoJ,KAAKs1C,eAAe92C,EAAM03C,UAAW2uB,GACtDqjF,EAAmBloJ,KAAKw1C,iBAAiBh3C,EAAM43C,YAAayuB,GAEhE,OACE,oBAAKtnE,UAAU,mBAAmBud,IAAK9a,KAAKikD,WAC1C,sBAAO7jD,MAAO,CACZ8D,SAAU1F,EAAM6wE,cAChBnvE,MAAO1B,EAAMwD,cAGZxD,EAAMkzE,kBACP,0BACE,uBACGlzE,EAAMsI,MACL,mBAAIvJ,UAAU,oCACZ,oBAAKA,UAAU,yBACb,oBAAKA,UAAU,uCACe,kBAApBghK,GACN,aAAC,IAAgB,CAAC5qF,QAAM,EAAC7nD,KAAMttB,EAAMmlC,UAClC,SAACsgB,EAAWhnD,EAAYynD,EAAYC,GAAiB,OACpD,oBACE7pC,IAAKmpC,EACL1mD,UAAW,CAAC,mCAAmCQ,OAAOd,GAAYiB,KAAK,KACvEkC,MAAO,CAAEgC,IAAKm8J,IAEb55G,SAShBnmD,EAAMgpE,MAAM7pE,KAAI,SAACs0F,EAAMr3F,GAAM,OAC5B,aAAC2qK,EAAO,CACNznK,IAAKm0F,EAAKn0F,IACVqmD,MAAO,EAAKkgG,WAAWr+H,UAAUisE,EAAKn0F,KACtCspC,YAAa5oC,EAAM4oC,YACnBtb,KAAMmmE,EAAKnmE,KACX6X,QAASnlC,EAAMmlC,QACfD,WAAYllC,EAAMklC,WAClBqhC,eAAgBktB,EAAKltB,eACrBM,eAAgB4sB,EAAK5sB,eACrBG,gBAAiBysB,EAAKzsB,gBACtB4Q,cAAe6b,EAAK7b,cACpBlN,YAAa6+E,EAAiBntJ,GAC9BuuE,YAAa2+E,EAAiBltJ,GAC9BquE,iBAAkB4+E,EAAsBjtJ,GACxC2oK,iBAAkB+B,EAAsB1qK,GACxCouE,kBAAmBg/E,EAAuBptJ,GAC1Cs7C,UAAW+xG,EAAertJ,GAC1Bw7C,YAAa8xG,EAAiBttJ,GAC9B0iK,WAAY9+J,EAAM8+J,WAClB5mH,eAAgBl4C,EAAMk4C,eACtBysB,SAAU3kE,EAAM2kE,mBAUhC,YAAAle,kBAAA,WACEjlD,KAAKwlK,gBAGP,YAAArgH,mBAAA,WACEnlD,KAAKwlK,gBAGP,YAAAA,aAAA,WACQ,IAkBcle,EAlBd9oJ,EAAUwB,KAAL,MAGTxB,EAAMinK,aACgB,OAAtBjnK,EAAMwD,aAENxD,EAAMinK,YACJ,IAAI,IACFzlK,KAAKikD,UAAUl1C,SAUDu4I,EATCtnJ,KAAKqkJ,WAAW/2E,WAAY9uE,EAAMgpE,MAU5C7pE,KAAI,SAACs0F,GAAS,OAAAq1D,EAAMr1D,EAAKn0F,UAT9B,GACA,KAKV,EAlHA,CAAqC,K,kBCkBrC,2D,OACU,EAAA4nK,mBAAqB,aAAQA,GAIrC,EAAAtoJ,MAAQ,CACNkgJ,WAAY,MAoDd,EAAAp5G,aAAe,SAACjkD,GACVA,EACF,EAAKmmB,QAAQw4B,6BAA6B,EAAM,CAC9C3+C,GAAE,EACFu+D,kBAAmB,EAAKhgE,MAAMggE,oBAGhC,EAAKp4C,QAAQy4B,+BAA+B,IAgBhD,EAAAb,oBAAsB,SAACC,GACf,IAAA0nH,EAAuB,EAAKnnK,MAAV,mBAClB8+J,EAAe,EAAKlgJ,MAAV,WAEhB,GAAIuoJ,GAAsBrI,EAAY,CACpC,GAAIr/G,EAAQxQ,KAAM,CAChB,IAAI,EAAM6vH,EAAWwB,eAAe7gH,EAAQxQ,OAC5C,EAAMroC,KAAK8hE,KAAK,MAEd,GAAO,GAGTy+F,EAAmB,GAGrB,OAAO,EAGT,OAAO,GAGT,EAAAC,gBAAkB,SAACC,GACjB,EAAKA,UAAYA,GAGnB,EAAA3H,iBAAmB,SAACZ,GAClB,EAAK9/I,SAAS,CAAE8/I,WAAU,IAEtB,EAAK9+J,MAAMsnK,cACb,EAAKtnK,MAAMsnK,aAAaxI,I,EAmD9B,OAjK8B,iBAS5B,YAAAh/I,OAAA,WACM,IAAE9f,EAAiBwB,KAAZ,MAAEod,EAAUpd,KAAL,MAElB,OACE,oBACEzC,UAAU,mBACVud,IAAK9a,KAAKkkD,aACV9jD,MAAO,CAGLF,MAAO1B,EAAMwD,YACbkC,SAAU1F,EAAM6wE,gBAGlB,aAAC02F,EAAa,CACZj/J,KAAMtI,EAAMsI,KACZsgC,YAAa5oC,EAAM4oC,YACnB81H,UAAW1+J,EAAM0+J,UACjBl7J,YAAaxD,EAAMwD,YACnBowI,UAAW5zI,EAAM+yE,WAAa/yE,EAAMkD,aAAe,GACnD2tE,cAAe7wE,EAAM6wE,cACrBqC,kBAAmBlzE,EAAMsI,KAAOtI,EAAMkzE,kBAAoB,KAC1DguF,SAAU1/J,KAAKk+J,mBAEjB,aAAC8H,EAAe,CACdx+F,MAAOhpE,EAAMgpE,MACb1gE,KAAMtI,EAAMsI,KACZsgC,YAAa5oC,EAAM4oC,YACnB6hC,iBAAkBzqE,EAAMyqE,iBACxBE,YAAa3qE,EAAM2qE,YACnBD,YAAa1qE,EAAM0qE,YACnBF,kBAAmBxqE,EAAMwqE,kBACzBtyB,eAAgBl4C,EAAMk4C,eACtBR,UAAW13C,EAAM03C,UACjBE,YAAa53C,EAAM43C,YACnB1S,WAAYllC,EAAMklC,WAClBC,QAASnlC,EAAMmlC,QACf4/H,iBAAkB/kK,EAAM+kK,iBACxBvhK,YAAaxD,EAAMwD,YACnBqtE,cAAe7wE,EAAM6wE,cACrBqC,kBAAmBlzE,EAAMkzE,kBACzB4rF,WAAYlgJ,EAAMkgJ,WAClBmI,YAAazlK,KAAK4lK,gBAClBziG,SAAU3kE,EAAM2kE,aAiBxB,YAAAle,kBAAA,WACEjlD,KAAKimK,gBAAkBjmK,KAAKomB,QAAQ44B,sBAAsBh/C,KAAKg+C,sBAGjE,YAAAmH,mBAAA,SAAmB3hC,GACjBxjB,KAAKimK,gBAAgBhnJ,OAAOuE,EAAU4jB,cAAgBpnC,KAAKxB,MAAM4oC,cAGnE,YAAAge,qBAAA,WACEplD,KAAKimK,gBAAgB5nH,UAoCvB,YAAAyB,SAAA,SAASC,EAAsBC,GACzB,MAAuBhgD,KAAKomB,QAA1BwI,EAAO,UAAEtd,EAAO,UAChBu0J,EAAc7lK,KAAL,UACTonC,EAAgBpnC,KAAKxB,MAAV,YACX8+J,EAAet9J,KAAKod,MAAV,WACZ,EAAiCpd,KAAK0lK,mBAAmB1lK,KAAKxB,MAAMmgK,aAAcrtJ,EAAQ40J,cAAxFA,EAAY,eAAEC,EAAY,eAE5BC,EAAWP,EAAUxqH,YAAY0E,GACjCk/G,EAAY3B,EAAWoB,UAAUnjH,WAAWyE,GAEhD,GAAgB,MAAZomH,GAAiC,MAAbnH,EAAmB,CACzC,IAAIhtE,EAAOjyF,KAAKxB,MAAMgpE,MAAM4+F,GACxBC,EAAU/I,EAAWoB,UAAUvjH,KAAK8jH,GACpCqH,EAAahJ,EAAWoB,UAAUvkJ,UAAU8kJ,GAC5CsH,GAAWvmH,EAAcqmH,GAAWC,EAEpCE,EAAYvH,EAAYkH,EADP/gK,KAAKsmB,MAAM66I,EAAUJ,GAGtCM,EAAUzmK,KAAKxB,MAAMgpE,MAAM4+F,GAAUt6I,KACrC2hB,EAAO,YACTrG,EAAYoiB,YACZ,aAAiB08G,EAAcM,IAG7B5wJ,EAAQgZ,EAAQ5rB,IAAIyjK,EAASh5H,GAC7B36B,EAAM8b,EAAQ5rB,IAAI4S,EAAOswJ,GAE7B,MAAO,CACL9+H,YAAW,EACXjC,SAAU,OAAF,IAAE,CAAF,CACNvyB,MAAO,CAAEgD,MAAK,EAAE9C,IAAG,GACnBmc,QAAQ,GACLgjE,EAAK7b,eAEVC,MAAOwvF,EAAUprH,IAAI2rH,GACrBlkK,KAAM,CACJI,KAAMujK,EAAU7qH,MAAMorH,GACtBz/J,MAAOk/J,EAAU5qH,OAAOmrH,GACxBhkK,IAAKikK,EACLz/J,OAAQy/J,EAAUC,GAEpBhwF,MAAO,GAIX,OAAO,MAEX,E,CAjK8B,KAmK9B,SAASovF,EAAmB/G,EAAwB+H,GAClD,IAAIR,EAAeQ,GAAwB/H,EACvCwH,EAAe,aAAqBxH,EAAcuH,GAQtD,OANqB,OAAjBC,IACFD,EAAevH,EACfwH,EAAe,GAIV,CAAED,aAAY,EAAEC,aAAY,G,kBCrOrC,a,+CAoBA,OApBuC,iBACrC,YAAAv/F,WAAA,SAAWh0D,EAAkB+zJ,GAG3B,IAFA,IAAIllI,EAAsB,GAEjBqmC,EAAM,EAAGA,EAAM6+F,EAAUhsK,OAAQmtE,GAAO,EAAG,CAClD,IAAIlkC,EAAW,aAAgBhxB,EAAO+zJ,EAAU7+F,IAE5ClkC,GACFnC,EAAK5lC,KAAK,CACR+Z,MAAOguB,EAAShuB,MAChB9C,IAAK8wB,EAAS9wB,IACd8tB,QAASgD,EAAShuB,MAAM2D,YAAc3G,EAAMgD,MAAM2D,UAClDsnB,MAAO+C,EAAS9wB,IAAIyG,YAAc3G,EAAME,IAAIyG,UAC5CuuD,IAAG,IAKT,OAAOrmC,GAEX,E,CApBuC,K,cC4CvC,2D,OACU,EAAAmlI,eAAiB,aAAQA,GACzB,EAAA/d,OAAS,IAAIge,EACb,EAAAC,YAAc,e,EAsCxB,OAzCiC,iBAK/B,YAAAxoJ,OAAA,sBACQ9f,EAAmBwB,KAAd,MAAEomB,EAAYpmB,KAAL,QACdonC,EAA+B5oC,EAApB,YAAEoqJ,EAAkBpqJ,EAAL,cAE5B4/J,EAAiBh4I,EAAQ9U,QAAQ+sJ,aACjCsI,EAAY3mK,KAAK4mK,eAAehe,EAAexhH,EAAahhB,EAAQwI,SAIxE,OACE,aAAC,IAAQ,CAACoB,KAAMouI,EAAiB,SAAW,QACzC,SAACz6H,EAAqBD,GAA0B,OAC/C,aAACqjI,EAAQ,aACPjsJ,IAAK,EAAKgsJ,aACN,EAAKje,OAAOhgF,WAAWrqE,EAAO4oC,EAAa,KAAMhhB,EAASugJ,GAAU,CACxExjG,SAAU3kE,EAAM2kE,SAChBr8D,KAAMtI,EAAMsI,KACZsgC,YAAaA,EACb81H,UAAW1+J,EAAM0+J,UACjByB,aAAcngK,EAAMmgK,aACpBn3F,MAAOohF,EAAcphF,MAAM,GAC3BkK,kBAAmBlzE,EAAMkzE,kBACzBrC,cAAe7wE,EAAM6wE,cACrBrtE,YAAaxD,EAAMwD,YACnBN,aAAclD,EAAMkD,aACpB6vE,WAAY/yE,EAAM+yE,WAClB5tC,QAASA,EACT4/H,iBAAkBnF,GAAkB,EAAKvV,OAAOz/E,aAAazlC,EAASvd,EAASugJ,GAC/EjjI,WAAYA,EACZiiI,mBAAoBnnK,EAAMmnK,mBAC1BG,aAActnK,EAAMsnK,oBAMhC,E,CAzCiC,K,SA2CjBc,EAAehe,EAA8BxhH,EAA0BxY,GAGrF,IAFA,IAAIoQ,EAAsB,GAET,MAAA4pH,EAAclhF,YAAd,eAA2B,CAAvC,IAAI57C,EAAI,KACXkT,EAAOnjC,KAAK,CACV+Z,MAAOgZ,EAAQ5rB,IAAI8oB,EAAMsb,EAAYoiB,aACrC12C,IAAK8b,EAAQ5rB,IAAI8oB,EAAMsb,EAAYqiB,eAIvC,OAAOzqB,EC/ET,IAAMgoI,EAAsB,CAC1B,CAAEv2I,MAAO,GACT,CAAEE,QAAS,IACX,CAAEA,QAAS,IACX,CAAEE,QAAS,IACX,CAAEA,QAAS,K,SAGGo2I,EACdz9G,EACAC,EACAy9G,EACAvI,EACA/vI,GAQA,IANA,IAAIpD,EAAW,IAAI/iB,KAAK,GACpB0+J,EAAW39G,EACX49G,EAAe,aAAe,GAC9BC,EAAgBH,GAuBtB,SAA8BvI,GAC5B,IAAI/jK,EACAysK,EACAC,EAGJ,IAAK1sK,EAAIosK,EAAoBrsK,OAAS,EAAGC,GAAK,EAAGA,GAAK,EAGpD,GAFAysK,EAAgB,aAAeL,EAAoBpsK,IAE7B,QADtB0sK,EAAgB,aAAqBD,EAAe1I,KACtB2I,EAAgB,EAC5C,OAAOD,EAIX,OAAO1I,EArCsC4I,CAAqB5I,GAC9D6I,EAAwB,GAErB,YAAUL,GAAY,YAAU19G,IAAc,CACnD,IAAI39B,EAAO8C,EAAQ5rB,IAAIwoB,EAAU27I,GAC7BzK,EAAkE,OAAtD,aAAqB0K,EAAcC,GAEnDG,EAAM3rK,KAAK,CACTiwB,KAAI,EACJ2hB,KAAM05H,EACNrpK,IAAKguB,EAAKsG,cACVuqI,WAAY,aAAoB7wI,GAChC4wI,UAAS,IAGXyK,EAAW,YAAaA,EAAUxI,GAClCyI,EAAe,YAAaA,EAAczI,GAG5C,OAAO6I,E,kBC5CT,2D,OACU,EAAAC,mBAAqB,aAAQA,GAC7B,EAAAR,eAAiB,aAAQA,G,EAkFnC,OApFqC,iBAInC,YAAA3oJ,OAAA,sBACM,EAA6Cte,KAAKomB,QAAhD9U,EAAO,UAAEsd,EAAO,UAAE+vB,EAAoB,uBACtCngD,EAAUwB,KAAL,MACLonC,EAAgB5oC,EAAL,YACboqJ,EAAgB5oJ,KAAKynK,mBAAmBrgI,EAAauX,GACrDjJ,EAAa11C,KAAKo9J,eAAe1nH,WAAWl3C,GAC5C0+J,EAAYl9J,KAAKinK,eACnB7/H,EAAYoiB,YACZpiB,EAAYqiB,YACZn4C,EAAQo2J,kBACRp2J,EAAQqtJ,aACR/vI,GAEIyzH,EAAgB/wI,EAAL,YACbq2J,GAAmBtlB,EACnBulB,EAAkBvlB,EAElB8G,EAAgB73I,EAAQ83I,YAC1B,aAAC,IAAS,CACRjjF,MAAOyiF,EAAclhF,YACrBtgC,YAAaA,EACbg/B,sBAAoB,EACpBC,YAAashG,EAAkB3nK,KAAKw9J,eAAiB,OAIrDM,GAAwC,IAAvBxsJ,EAAQu2J,YAA0B,SAACxe,GAAyC,OAC/F,aAAC,IAAQ,eACH3zG,EAAWzmB,OAAM,CACrBmY,YAAaA,EACbwhH,cAAeA,EACf1qH,iBAAkB5sB,EAAQ4sB,iBAC1BmxC,cAAeg6E,EAAWh6E,cAC1B+4E,aAAciB,EAAW33E,kBACzB22E,eAAgBsf,EAAkB,EAAKhK,mBAAqB,KAC5DrX,iBAAiB,EACjB/0E,YAAY,EACZ03E,iBAAkB,EAAKjH,YACvBhgJ,YAAaqnJ,EAAWrnJ,YACxBN,aAAc2nJ,EAAW3nJ,aACzByhE,SAAU3kE,EAAM2kE,UACZ,EAAKs7F,4BAITqJ,EAAkB,SAACze,GAAyC,OAC9D,aAAC0e,EAAW,eACNryH,EAAW6mH,MAAK,CACpB3T,cAAeA,EACfxhH,YAAaA,EACbtgC,KAAM6gK,EACNhJ,aAAcrtJ,EAAQqtJ,aACtBzB,UAAWA,EACX/5F,SAAU3kE,EAAM2kE,SAChBuO,kBAAmB23E,EAAW33E,kBAC9BrC,cAAeg6E,EAAWh6E,cAC1BrtE,YAAaqnJ,EAAWrnJ,YACxBN,aAAc2nJ,EAAW3nJ,aACzBokK,aAAc,EAAK5H,iBACnB3sF,WAAY83E,EAAW93E,WACvBo0F,mBAAoB,EAAKpI,2BAI7B,OAAOqK,EACH5nK,KAAKoiJ,oBACL+G,EACA2U,EACAgK,EACAlf,EAAc/jF,OACdw9E,EACA6a,EACAl9J,KAAKod,MAAMkgJ,YAEXt9J,KAAKiiJ,mBACLkH,EACA2U,EACAgK,IAGR,E,CApFqCE,G,SAsFrBP,EAAmBrgI,EAA0BuX,GAC3D,IAAIyoB,EAAY,IAAI,IAAehgC,EAAY4hB,YAAarK,GAE5D,OAAO,IAAI,IAAcyoB,GAAW,G/PvG/B,IAAM,EAAkB,CAC7B,WAAY,SkNcd,EAAe,aAAa,CAC1B,YAAa,eACb,eAAgB,EAChB,MAAO,CAEL,SAAU,CACR,UAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAc,WACd,kBAAkB,GAGpB,YAAa,CACX,KAAM,WACN,SAAU,CAAE,KAAM,IAGpB,aAAc,CACZ,KAAM,WACN,SAAU,CAAE,MAAO,O,sD8CjCzB,KAAO6gG,qBAAuB,IAE9B,IAAIC,EAAmB,EACnBC,EAAc,EACdC,GAA6B,E,aAqC/B,WAAY5nJ,GAAZ,WApBA,KAAA6nJ,UAAgC,KAIhC,KAAA/kK,SAAmB,GACnB,KAAAglK,eAAyB,GACzB,KAAAC,kBAA4B,EAC5B,KAAAC,mBAA6B,EAG7B,KAAA31F,YAAsB,EACtB,KAAA41F,iBAA2B,EAC3B,KAAAC,gBAA0B,EA0D1B,KAAAC,gBAAkB,SAAChhJ,GACjB,IACG,EAAKihJ,qBAkNZ,SAA8BjhJ,GAC5B,OAAqB,IAAdA,EAAGm8B,SAAiBn8B,EAAGtS,QAlN1BwzJ,CAAqBlhJ,IACrB,EAAKmhJ,SAASnhJ,GACd,CACA,IAAI2d,EAAM,EAAKyjI,qBAAqBphJ,GAAI,GACxC,EAAK4d,QAAQC,QAAQ,cAAeF,GACpC,EAAK0jI,gBAAgB1jI,GAEhB,EAAKijI,kBACR7nK,SAAS8M,iBAAiB,YAAa,EAAKy7J,iBAG9CvoK,SAAS8M,iBAAiB,UAAW,EAAK07J,iBAI9C,KAAAD,gBAAkB,SAACthJ,GACjB,IAAI2d,EAAM,EAAKyjI,qBAAqBphJ,GACpC,EAAKwhJ,aAAa7jI,GAClB,EAAKC,QAAQC,QAAQ,cAAeF,IAGtC,KAAA4jI,cAAgB,SAACvhJ,GACfjnB,SAAS+M,oBAAoB,YAAa,EAAKw7J,iBAC/CvoK,SAAS+M,oBAAoB,UAAW,EAAKy7J,eAE7C,EAAK3jI,QAAQC,QAAQ,YAAa,EAAKujI,qBAAqBphJ,IAE5D,EAAKyhJ,WAUP,KAAAC,iBAAmB,SAAC1hJ,GAClB,GAAI,EAAKmhJ,SAASnhJ,GAAK,CACrB,EAAK8gJ,iBAAkB,EAEvB,IAAInjI,EAAM,EAAKgkI,qBAAqB3hJ,GAAI,GACxC,EAAK4d,QAAQC,QAAQ,cAAeF,GACpC,EAAK0jI,gBAAgB1jI,GAIrB,IAAIikI,EAAW5hJ,EAAGppB,OAEb,EAAKgqK,kBACRgB,EAAS/7J,iBAAiB,YAAa,EAAKg8J,iBAG9CD,EAAS/7J,iBAAiB,WAAY,EAAKi8J,gBAC3CF,EAAS/7J,iBAAiB,cAAe,EAAKi8J,gBAK9C7oK,OAAO4M,iBACL,SACA,EAAKk8J,mBACL,KAKN,KAAAF,gBAAkB,SAAC7hJ,GACjB,IAAI2d,EAAM,EAAKgkI,qBAAqB3hJ,GACpC,EAAKwhJ,aAAa7jI,GAClB,EAAKC,QAAQC,QAAQ,cAAeF,IAGtC,KAAAmkI,eAAiB,SAAC9hJ,GAChB,GAAI,EAAKkrD,WAAY,CACnB,IAAI02F,EAAW5hJ,EAAGppB,OAElBgrK,EAAS97J,oBAAoB,YAAa,EAAK+7J,iBAC/CD,EAAS97J,oBAAoB,WAAY,EAAKg8J,gBAC9CF,EAAS97J,oBAAoB,cAAe,EAAKg8J,gBACjD7oK,OAAO6M,oBAAoB,SAAU,EAAKi8J,mBAAmB,GAE7D,EAAKnkI,QAAQC,QAAQ,YAAa,EAAK8jI,qBAAqB3hJ,IAE5D,EAAKyhJ,UACL,EAAKX,iBAAkB,EAoI3BP,GAAoB,EAEpBr/J,YAAW,WACTq/J,GAAoB,IACnB,KAAOD,wBAnIV,KAAAyB,kBAAoB,WAClB,EAAKhB,gBAAiB,GA6BxB,KAAAiB,aAAe,SAAChiJ,GACd,IAAK,EAAK4gJ,iBAAkB,CAC1B,IAAIjuJ,EAAS1Z,OAAOI,YAAc,EAAK4oK,YAAe,EAAKC,UACvDtvJ,EAAS3Z,OAAOC,YAAc,EAAKipK,YAAe,EAAKC,UAE3D,EAAKxkI,QAAQC,QAAQ,cAAe,CAClCI,UAAWje,EACXqiJ,QAAS,EAAKvB,gBACdJ,UAAW,EAAKA,UAChB/tJ,MAAK,EACLC,MAAK,EACL+2H,OAAQh3H,EAAQ,EAAK2vJ,UACrB14B,OAAQh3H,EAAQ,EAAK2vJ,cAxLzBlqK,KAAKwgB,YAAcA,EACnBxgB,KAAKulC,QAAU,IAAI,IACnB/kB,EAAYhT,iBAAiB,YAAaxN,KAAK2oK,iBAC/CnoJ,EAAYhT,iBAAiB,aAAcxN,KAAKqpK,iBAAmC,CAAE5rB,SAAS,IAuR5E,KAFpB0qB,GAAe,IAGbvnK,OAAO4M,iBAAiB,YAAa28J,EAAmB,CAAE1sB,SAAS,IAzBvE,OA3PE,YAAA/+H,QAAA,WACE1e,KAAKwgB,YAAY/S,oBAAoB,YAAazN,KAAK2oK,iBACvD3oK,KAAKwgB,YAAY/S,oBAAoB,aAAczN,KAAKqpK,iBAAmC,CAAE5rB,SAAS,KAuRxG0qB,GAAe,IAGbvnK,OAAO6M,oBAAoB,YAAa08J,EAAmB,CAAE1sB,SAAS,KAtRxE,YAAAqrB,SAAA,SAASnhJ,GACP,IAAI0gJ,EAAYroK,KAAKoqK,eAAeziJ,GAChC0iJ,EAAS1iJ,EAAGppB,OAEhB,SACE8pK,GACEroK,KAAKsoK,iBAAkB,aAAe+B,EAAQrqK,KAAKsoK,mBAErDtoK,KAAKqoK,UAAYA,EACjBroK,KAAK6yE,YAAa,EAClB7yE,KAAK0oK,gBAAiB,GAEf,IAMX,YAAAU,QAAA,WACEhB,GAA6B,EAC7BpoK,KAAK6yE,YAAa,EAClB7yE,KAAKqoK,UAAY,KAEjBroK,KAAKsqK,sBAGP,YAAAF,eAAA,SAAeziJ,GACb,OAAI3nB,KAAKsD,SACA,aAAeqkB,EAAGppB,OAAuByB,KAAKsD,UAEhDtD,KAAKwgB,aAuCd,YAAAooJ,kBAAA,WACE,OAAOV,GAAoBloK,KAAKyoK,iBAgElC,YAAA8B,kBAAA,WACMvqK,KAAK6yE,aACPu1F,GAA6B,IAOjC,YAAAY,gBAAA,SAAgBrhJ,GACV3nB,KAAKwoK,oBACPxoK,KAAKmpK,aAAaxhJ,GAClB/mB,OAAO4M,iBAAiB,SAAUxN,KAAK2pK,cAAc,KAIzD,YAAAR,aAAA,SAAaxhJ,GACP3nB,KAAKwoK,oBACPxoK,KAAK6pK,UAAaliJ,EAAWrN,MAC7Bta,KAAK+pK,UAAapiJ,EAAWpN,MAC7Bva,KAAK4pK,YAAchpK,OAAOI,YAC1BhB,KAAK8pK,YAAclpK,OAAOC,cAqB9B,YAAAypK,mBAAA,WACMtqK,KAAKwoK,mBACP5nK,OAAO6M,oBAAoB,SAAUzN,KAAK2pK,cAAc,IAO5D,YAAAZ,qBAAA,SAAqBphJ,EAAgB6iJ,GACnC,IAAIl5B,EAAS,EACTC,EAAS,EAWb,OARIi5B,GACFxqK,KAAKiqK,UAAYtiJ,EAAGrN,MACpBta,KAAKkqK,UAAYviJ,EAAGpN,QAEpB+2H,EAAS3pH,EAAGrN,MAAQta,KAAKiqK,UACzB14B,EAAS5pH,EAAGpN,MAAQva,KAAKkqK,WAGpB,CACLtkI,UAAWje,EACXqiJ,SAAS,EACT3B,UAAWroK,KAAKqoK,UAChB/tJ,MAAOqN,EAAGrN,MACVC,MAAOoN,EAAGpN,MACV+2H,OAAM,EACNC,OAAM,IAIV,YAAA+3B,qBAAA,SAAqB3hJ,EAAgB6iJ,GACnC,IACIlwJ,EACAC,EAFAwiI,EAAUp1H,EAAGo1H,QAGbzL,EAAS,EACTC,EAAS,EAqBb,OAjBIwL,GAAWA,EAAQpiJ,QACrB2f,EAAQyiI,EAAQ,GAAGziI,MACnBC,EAAQwiI,EAAQ,GAAGxiI,QAEnBD,EAASqN,EAAWrN,MACpBC,EAASoN,EAAWpN,OAIlBiwJ,GACFxqK,KAAKiqK,UAAY3vJ,EACjBta,KAAKkqK,UAAY3vJ,IAEjB+2H,EAASh3H,EAAQta,KAAKiqK,UACtB14B,EAASh3H,EAAQva,KAAKkqK,WAGjB,CACLtkI,UAAWje,EACXqiJ,SAAS,EACT3B,UAAWroK,KAAKqoK,UAChB/tJ,MAAK,EACLC,MAAK,EACL+2H,OAAM,EACNC,OAAM,IAGZ,E,GAqCA,SAAS44B,EAAkBxiJ,GACrBygJ,GACFzgJ,EAAG1S,iBC9UP,8BACE,KAAA+uG,WAAqB,EAKrB,KAAAymD,SAA+B,KAC/B,KAAAC,SAA+B,KAC/B,KAAAC,aAA4B,KAG5B,KAAAloK,WAA0B/B,SAAS2B,KACnC,KAAA6U,OAAiB,KACjB,KAAA0zJ,eAAyB,EA6H3B,OA3HE,YAAAh1J,MAAA,SAAM60J,EAAuBnwJ,EAAeC,GAC1Cva,KAAKyqK,SAAWA,EAChBzqK,KAAK2qK,aAAe3qK,KAAKyqK,SAAStoK,wBAClCnC,KAAK6qK,YAAcvwJ,EAAQ1Z,OAAOI,YAClChB,KAAK8qK,YAAcvwJ,EAAQ3Z,OAAOC,YAClCb,KAAKsxI,OAAS,EACdtxI,KAAKuxI,OAAS,EACdvxI,KAAK+qK,oBAGP,YAAAC,WAAA,SAAW1wJ,EAAeC,GACxBva,KAAKsxI,OAAUh3H,EAAQ1Z,OAAOI,YAAehB,KAAK6qK,YAClD7qK,KAAKuxI,OAAUh3H,EAAQ3Z,OAAOC,YAAeb,KAAK8qK,YAClD9qK,KAAK+qK,oBAIP,YAAAE,aAAA,SAAansG,GACPA,EACG9+D,KAAKgkH,YACJhkH,KAAK0qK,WACP1qK,KAAK0qK,SAAStqK,MAAM8H,QAAU,IAGhClI,KAAKgkH,UAAYllD,EACjB9+D,KAAK+qK,oBAEE/qK,KAAKgkH,YACVhkH,KAAK0qK,WACP1qK,KAAK0qK,SAAStqK,MAAM8H,QAAU,QAGhClI,KAAKgkH,UAAYllD,IAKrB,YAAAosG,KAAA,SAAKC,EAA+BxlK,GAApC,WACM/J,EAAO,WACT,EAAKwtK,UACLzjK,KAIAwlK,GACAnrK,KAAK0qK,UACL1qK,KAAKgkH,WACLhkH,KAAK4qK,iBACJ5qK,KAAKsxI,QAAUtxI,KAAKuxI,QAErBvxI,KAAKorK,kBAAkBxvK,EAAMoE,KAAK4qK,gBAElC/hK,WAAWjN,EAAM,IAIrB,YAAAwvK,kBAAA,SAAkBzlK,EAAsBilK,GACtC,IAAIF,EAAW1qK,KAAK0qK,SAChBW,EAAoBrrK,KAAKyqK,SAAUtoK,wBAEvCuoK,EAAStqK,MAAMkrK,WACb,OAASV,EAAT,WACUA,EAAiB,KAE7B,YAAWF,EAAU,CACnBpoK,KAAM+oK,EAAkB/oK,KACxBF,IAAKipK,EAAkBjpK,MAGzB,aAAmBsoK,GAAU,WAC3BA,EAAStqK,MAAMkrK,WAAa,GAC5B3lK,QAIJ,YAAAyjK,QAAA,WACMppK,KAAK0qK,WACP,aAAc1qK,KAAK0qK,UACnB1qK,KAAK0qK,SAAW,MAGlB1qK,KAAKyqK,SAAW,MAGlB,YAAAM,iBAAA,WACM/qK,KAAKyqK,UAAYzqK,KAAKgkH,WACxB,YAAWhkH,KAAKurK,cAAe,CAC7BjpK,KAAMtC,KAAK2qK,aAAcroK,KAAOtC,KAAKsxI,OACrClvI,IAAKpC,KAAK2qK,aAAcvoK,IAAMpC,KAAKuxI,UAKzC,YAAAg6B,YAAA,WACE,IAAIZ,EAAe3qK,KAAK2qK,aACpBD,EAAW1qK,KAAK0qK,SA0BpB,OAxBKA,KACHA,EAAW1qK,KAAK0qK,SAAW1qK,KAAKyqK,SAAUe,WAAU,IAI3C3oK,UAAUG,IAAI,mBAEvB0nK,EAAS7nK,UAAUG,IAAI,qBAEvB,YAAW0nK,EAAU,CACnBxkK,SAAU,QACVgR,OAAQlX,KAAKkX,OACbjP,WAAY,GACZwjK,UAAW,aACXvrK,MAAOyqK,EAAahkK,MAAQgkK,EAAaroK,KACzChB,OAAQqpK,EAAa/jK,OAAS+jK,EAAavoK,IAC3CuE,MAAO,OACPC,OAAQ,OACRzF,OAAQ,IAGVnB,KAAKyC,WAAW+G,YAAYkhK,IAGvBA,GAEX,EA1IA,GCGA,cAcE,WAAYgB,EAAoCC,GAAhD,MACE,cAAO,K,OAyBT,EAAAhC,aAAe,WACb,EAAK7oK,UAAY,EAAK4qK,iBAAiBtvH,eACvC,EAAKn7C,WAAa,EAAKyqK,iBAAiBnvH,gBACxC,EAAKqvH,sBA3BL,EAAKF,iBAAmBA,EACxB,EAAKC,cAAgBA,EACrB,EAAK7qK,UAAY,EAAK+qK,cAAgBH,EAAiBtvH,eACvD,EAAKn7C,WAAa,EAAK6qK,eAAiBJ,EAAiBnvH,gBACzD,EAAKI,YAAc+uH,EAAiB3vH,iBACpC,EAAKa,aAAe8uH,EAAiB9vH,kBACrC,EAAK55C,YAAc0pK,EAAiB1vH,iBACpC,EAAKt6C,aAAegqK,EAAiB7vH,kBACrC,EAAKkwH,WAAa,EAAKC,oBAEnB,EAAKL,eACP,EAAKM,iBAAiBz+J,iBAAiB,SAAU,EAAKm8J,c,EAqE5D,OAhG8C,iBAkC5C,YAAAjrJ,QAAA,WACM1e,KAAK2rK,eACP3rK,KAAKisK,iBAAiBx+J,oBAAoB,SAAUzN,KAAK2pK,eAU7D,YAAAvtH,aAAA,WACE,OAAOp8C,KAAKc,WAGd,YAAAy7C,cAAA,WACE,OAAOv8C,KAAKiB,YAGd,YAAAw7C,aAAA,SAAar6C,GACXpC,KAAK0rK,iBAAiBjvH,aAAar6C,GAE9BpC,KAAK2rK,gBAGR3rK,KAAKc,UAAYsE,KAAKC,IAAID,KAAKs6B,IAAIt9B,EAAKpC,KAAK27C,mBAAoB,GAEjE37C,KAAK4rK,uBAIT,YAAAlvH,cAAA,SAAct6C,GACZpC,KAAK0rK,iBAAiBhvH,cAAct6C,GAE/BpC,KAAK2rK,gBAGR3rK,KAAKiB,WAAamE,KAAKC,IAAID,KAAKs6B,IAAIt9B,EAAKpC,KAAK87C,oBAAqB,GAEnE97C,KAAK4rK,uBAIT,YAAA5vH,eAAA,WACE,OAAOh8C,KAAKgC,aAGd,YAAA65C,gBAAA,WACE,OAAO77C,KAAK0B,cAGd,YAAAq6C,eAAA,WACE,OAAO/7C,KAAK28C,aAGd,YAAAf,gBAAA,WACE,OAAO57C,KAAK48C,cAGd,YAAAgvH,mBAAA,aAEF,EAhGA,CAA8C,KCP9C,cACE,WAAY3rK,EAAiB0rK,G,OAC3B,YAAM,IAAI,IAAwB1rK,GAAK0rK,IAAc,KAUzD,OAZ4C,iBAK1C,YAAAM,eAAA,WACE,OAAQjsK,KAAK0rK,iBAA6CzrK,IAG5D,YAAA+rK,kBAAA,WACE,OAAO,aAAkBhsK,KAAK0rK,iBAA6CzrK,KAE/E,EAZA,CAA4CisK,GCA5C,cACE,WAAYP,G,OACV,YAAM,IAAI,IAA0BA,IAAc,KAqBtD,OAvB2C,iBAKzC,YAAAM,eAAA,WACE,OAAOrrK,QAGT,YAAAorK,kBAAA,WACE,MAAO,CACL1pK,KAAMtC,KAAKiB,WACX0F,MAAO3G,KAAKiB,WAAajB,KAAKgC,YAC9BI,IAAKpC,KAAKc,UACV8F,OAAQ5G,KAAKc,UAAYd,KAAK0B,eAMlC,YAAAkqK,mBAAA,WACE5rK,KAAK+rK,WAAa/rK,KAAKgsK,qBAE3B,EAvBA,CAA2CE,GCWrCvjK,EAAiC,oBAAhBwjK,YAA8BA,YAAoBrhI,IAAMriC,KAAKqiC,IAQpF,qCAEE,KAAAshI,WAAqB,EACrB,KAAAC,YAAmC,CAACzrK,OAAQ,gBAC5C,KAAA0rK,cAAwB,GACxB,KAAAC,YAAsB,IAGtB,KAAAC,eAAgC,KAChC,KAAAC,eAAgC,KAChC,KAAAC,aAAuB,EACvB,KAAAC,aAAyC,KAIzC,KAAAC,aAAuB,EACvB,KAAAC,eAAyB,EACzB,KAAAC,eAAyB,EACzB,KAAAC,gBAA0B,EA8DlB,KAAAC,QAAU,WAChB,GAAI,EAAKN,YAAa,CACpB,IAAIO,EAAO,EAAKC,gBACd,EAAKV,eAAkB5rK,OAAOI,YAC9B,EAAKyrK,eAAkB7rK,OAAOC,aAGhC,GAAIosK,EAAM,CACR,IAAIniI,EAAMniC,IACV,EAAKwkK,WAAWF,GAAOniI,EAAM,EAAKsiI,gBAAmB,KACrD,EAAKC,iBAAiBviI,QAEtB,EAAK4hI,aAAc,IAsG3B,OA9KE,YAAA92J,MAAA,SAAM0E,EAAeC,EAAe+yJ,GAC9BttK,KAAKosK,YACPpsK,KAAK2sK,aAAe3sK,KAAKutK,YAAYD,GACrCttK,KAAKwsK,eAAiB,KACtBxsK,KAAKysK,eAAiB,KACtBzsK,KAAK4sK,aAAc,EACnB5sK,KAAK6sK,eAAgB,EACrB7sK,KAAK8sK,eAAgB,EACrB9sK,KAAK+sK,gBAAiB,EACtB/sK,KAAKgrK,WAAW1wJ,EAAOC,KAI3B,YAAAywJ,WAAA,SAAW1wJ,EAAeC,GACxB,GAAIva,KAAKosK,UAAW,CAClB,IAAII,EAAiBlyJ,EAAQ1Z,OAAOI,YAChCyrK,EAAiBlyJ,EAAQ3Z,OAAOC,YAEhC2sK,EAAiC,OAAxBxtK,KAAKysK,eAA0B,EAAIA,EAAiBzsK,KAAKysK,eAClEgB,EAAiC,OAAxBztK,KAAKwsK,eAA0B,EAAIA,EAAiBxsK,KAAKwsK,eAElEgB,EAAS,EACXxtK,KAAK4sK,aAAc,EACVY,EAAS,IAClBxtK,KAAK6sK,eAAgB,GAGnBY,EAAS,EACXztK,KAAK8sK,eAAgB,EACZW,EAAS,IAClBztK,KAAK+sK,gBAAiB,GAGxB/sK,KAAKwsK,eAAiBA,EACtBxsK,KAAKysK,eAAiBA,EAEjBzsK,KAAK0sK,cACR1sK,KAAK0sK,aAAc,EACnB1sK,KAAKqtK,iBAAiB1kK,QAK5B,YAAAuiK,KAAA,WACE,GAAIlrK,KAAKosK,UAAW,CAClBpsK,KAAK0sK,aAAc,EAEnB,IAAwB,UAAA1sK,KAAK2sK,aAAL,eAAoB,CAAxB,KACNjuJ,UAGd1e,KAAK2sK,aAAe,OAIxB,YAAAU,iBAAA,SAAiBviI,GACf9qC,KAAKotK,eAAiBtiI,EACtBliC,sBAAsB5I,KAAKgtK,UAoBrB,YAAAG,WAAR,SAAmBF,EAAYp8I,GACvB,IAAA68I,EAAgBT,EAAL,YACXX,EAAkBtsK,KAAL,cACf2tK,EAAcrB,EAAgBW,EAAKW,SACnCC,EACAF,EAAcA,GAAgBrB,EAAgBA,GAChDtsK,KAAKusK,YAAc17I,EACjBZ,EAAO,EAEX,OAAQg9I,EAAKxwK,MACX,IAAK,OACHwzB,GAAQ,EAEV,IAAK,QACHy9I,EAAYhxH,cAAcgxH,EAAYnxH,gBAAkBsxH,EAAW59I,GACnE,MAEF,IAAK,MACHA,GAAQ,EAEV,IAAK,SACHy9I,EAAYjxH,aAAaixH,EAAYtxH,eAAiByxH,EAAW59I,KAM/D,YAAAi9I,gBAAR,SAAwB5qK,EAAcF,GAIpC,IAHM,IAAAkqK,EAAkBtsK,KAAL,cACf8tK,EAAwB,KAEJ,MAAA9tK,KAAK2sK,aAAL,eAAoB,CAAvC,IAAIe,EAAW,KACdxrK,EAAOwrK,EAAY3B,WACnBgC,EAAWzrK,EAAOJ,EAAKI,KACvB0rK,EAAY9rK,EAAKyE,MAAQrE,EACzB2rK,EAAU7rK,EAAMF,EAAKE,IACrB8rK,EAAahsK,EAAK0E,OAASxE,EAG3B2rK,GAAY,GAAKC,GAAa,GAAKC,GAAW,GAAKC,GAAc,IAEjED,GAAW3B,GAAiBtsK,KAAK4sK,aAAec,EAAYvxH,iBAC1D2xH,GAAYA,EAASF,SAAWK,KAElCH,EAAW,CAAEJ,YAAW,EAAEjxK,KAAM,MAAOmxK,SAAUK,IAIjDC,GAAc5B,GAAiBtsK,KAAK6sK,eAAiBa,EAAYrxH,mBAC/DyxH,GAAYA,EAASF,SAAWM,KAElCJ,EAAW,CAAEJ,YAAW,EAAEjxK,KAAM,SAAUmxK,SAAUM,IAIpDH,GAAYzB,GAAiBtsK,KAAK8sK,eAAiBY,EAAYpxH,mBAC7DwxH,GAAYA,EAASF,SAAWG,KAElCD,EAAW,CAAEJ,YAAW,EAAEjxK,KAAM,OAAQmxK,SAAUG,IAIlDC,GAAa1B,GAAiBtsK,KAAK+sK,gBAAkBW,EAAYlxH,oBAC/DsxH,GAAYA,EAASF,SAAWI,KAElCF,EAAW,CAAEJ,YAAW,EAAEjxK,KAAM,QAASmxK,SAAUI,KAKzD,OAAOF,GAGD,YAAAP,YAAR,SAAoBD,GAClB,OAAOttK,KAAKmuK,eAAeb,GAAe3vK,KAAI,SAACsC,GAC7C,OAAIA,IAAOW,OACF,IAAIwtK,GAAsB,GAE5B,IAAIC,EAAuBpuK,GAAI,OAIlC,YAAAkuK,eAAR,SAAuBb,GAGrB,IAFA,IAAI7yH,EAAM,GAEQ,MAAAz6C,KAAKqsK,YAAL,eAAkB,CAA/B,IAAI7hB,EAAK,KACS,kBAAVA,EACT/vG,EAAI5+C,KAAK2uJ,GAET/vG,EAAI5+C,KAAI,MAAR4+C,EAAY3/C,MAAMuB,UAAUE,MAAMb,KAChC,aAAU4xK,GAAe/pK,iBAAiBinJ,KAKhD,OAAO/vG,GAEX,EAlMA,G,cCcE,WAAoBj6B,EAA0Bld,GAA9C,MACE,YAAMkd,IAAY,KADA,EAAAA,cAXpB,EAAAsC,MAAuB,KACvB,EAAAwrJ,YAAsB,EACtB,EAAAC,oBAA8B,EAE9B,EAAAC,mBAA6B,EAC7B,EAAAC,eAAyB,EACzB,EAAA57F,YAAsB,EACtB,EAAA67F,cAAwB,EACxB,EAAAC,qBAA+B,EAC/B,EAAAC,eAAgC,KA0BhC,EAAAC,cAAgB,SAAClnJ,GACV,EAAKkrD,aACR,EAAK47F,eAAgB,EACrB,EAAKC,cAAe,EACpB,EAAKC,qBAAsB,EAE3B,aAAiBjuK,SAAS2B,MAC1B,aAAmB3B,SAAS2B,MAKvBslB,EAAGqiJ,SACNriJ,EAAGie,UAAU3wB,iBAGf,EAAKswB,QAAQC,QAAQ,cAAe7d,GAGlC,EAAK8mJ,gBACJ,EAAKK,QAAQvG,mBAId,EAAKwG,OAAO9D,cAAa,GACzB,EAAK8D,OAAOn5J,MAAM+R,EAAG0gJ,UAA0B1gJ,EAAGrN,MAAOqN,EAAGpN,OAE5D,EAAKy0J,WAAWrnJ,GAEX,EAAK2mJ,aACR,EAAKW,wBAAwBtnJ,MAMrC,EAAAunJ,cAAgB,SAACvnJ,GACf,GAAI,EAAK8mJ,cAAe,CAGtB,GAFA,EAAKlpI,QAAQC,QAAQ,cAAe7d,IAE/B,EAAKgnJ,oBAAqB,CAC7B,IAAIL,EAAc,EAAKA,YAEjBh9B,EAAmB3pH,EAAb,OAAE4pH,EAAW5pH,EAAL,OAEP2pH,EAASA,EAASC,EAASA,GACtB+8B,EAAcA,GAC9B,EAAKW,wBAAwBtnJ,GAI7B,EAAKkrD,aAEmB,WAAtBlrD,EAAGie,UAAUpoC,OACf,EAAKuxK,OAAO/D,WAAWrjJ,EAAGrN,MAAOqN,EAAGpN,OACpC,EAAK40J,aAAanE,WAAWrjJ,EAAGrN,MAAOqN,EAAGpN,QAG5C,EAAKgrB,QAAQC,QAAQ,WAAY7d,MAKvC,EAAAynJ,YAAc,SAACznJ,GACT,EAAK8mJ,gBACP,EAAKA,eAAgB,EAErB,YAAe/tK,SAAS2B,MACxB,YAAiB3B,SAAS2B,MAE1B,EAAKkjC,QAAQC,QAAQ,YAAa7d,GAE9B,EAAKkrD,aACP,EAAKs8F,aAAajE,OAClB,EAAKmE,YAAY1nJ,IAGf,EAAKinJ,iBACP74J,aAAa,EAAK64J,gBAClB,EAAKA,eAAiB,QApG1B,IAAIE,EAAU,EAAKA,QAAU,IAAIQ,EAAgB9uJ,G,OACjDsuJ,EAAQvpI,QAAQhhB,GAAG,cAAe,EAAKsqJ,eACvCC,EAAQvpI,QAAQhhB,GAAG,cAAe,EAAK2qJ,eACvCJ,EAAQvpI,QAAQhhB,GAAG,YAAa,EAAK6qJ,aAEjC9rK,IACFwrK,EAAQxrK,SAAWA,GAGrB,EAAKyrK,OAAS,IAAIQ,EAClB,EAAKJ,aAAe,IAAIK,E,EAmK5B,OAlM+C,iBAkC7C,YAAA9wJ,QAAA,WACE1e,KAAK8uK,QAAQpwJ,UAIb1e,KAAKovK,YAAY,KAuFnB,YAAAJ,WAAA,SAAWrnJ,GAAX,WAC4B,kBAAf3nB,KAAK8iB,MACd9iB,KAAK4uK,eAAiB/lK,YAAW,WAC/B,EAAK+lK,eAAiB,KACtB,EAAKa,eAAe9nJ,KACnB3nB,KAAK8iB,OAER9iB,KAAKyvK,eAAe9nJ,IAIxB,YAAA8nJ,eAAA,SAAe9nJ,GACb3nB,KAAK0uK,cAAe,EACpB1uK,KAAK0vK,aAAa/nJ,IAGpB,YAAAsnJ,wBAAA,SAAwBtnJ,GACtB3nB,KAAK2uK,qBAAsB,EAC3B3uK,KAAK0vK,aAAa/nJ,IAGpB,YAAA+nJ,aAAA,SAAa/nJ,GACP3nB,KAAK0uK,cAAgB1uK,KAAK2uK,sBACvB3uK,KAAK8uK,QAAQpG,iBAAkB1oK,KAAKuuK,qBACvCvuK,KAAK6yE,YAAa,EAClB7yE,KAAKwuK,mBAAoB,EAEzBxuK,KAAKmvK,aAAav5J,MAAM+R,EAAGrN,MAAOqN,EAAGpN,MAAOva,KAAKwgB,aACjDxgB,KAAKulC,QAAQC,QAAQ,YAAa7d,IAEF,IAA5B3nB,KAAKuuK,oBACPvuK,KAAK8uK,QAAQvE,uBAMrB,YAAA8E,YAAA,SAAY1nJ,GAGV3nB,KAAK+uK,OAAO7D,KACVlrK,KAAKwuK,kBACLxuK,KAAK2vK,SAAS51J,KAAK/Z,KAAM2nB,KAI7B,YAAAgoJ,SAAA,SAAShoJ,GACP3nB,KAAK6yE,YAAa,EAClB7yE,KAAKulC,QAAQC,QAAQ,UAAW7d,IAKlC,YAAAioJ,cAAA,SAAc9wG,GACZ9+D,KAAK8uK,QAAQvG,iBAAmBzpG,GAGlC,YAAAD,mBAAA,SAAmBC,GACjB9+D,KAAK+uK,OAAO9D,aAAansG,IAG3B,YAAAC,qBAAA,SAAqBD,GACnB9+D,KAAKwuK,kBAAoB1vG,GAG3B,YAAAE,qBAAA,SAAqBF,GACnB9+D,KAAKmvK,aAAa/C,UAAYttG,GAElC,E,CAlM+C,KCJ/C,aAIE,WAAY7+D,GACVD,KAAK6vK,SAAW,aAAY5vK,GAG5BD,KAAK2sK,aAAe,aAAmB1sK,GAAItC,KACzC,SAACmyK,GAAa,WAAIzB,EAAuByB,GAAU,MA4CzD,OAxCE,YAAApxJ,QAAA,WACE,IAAwB,UAAA1e,KAAK2sK,aAAL,eAAmB,CAAvB,KACNjuJ,YAIhB,YAAAqxJ,YAAA,WAGE,IAFA,IAAIztK,EAAOtC,KAAK6vK,SAASvtK,KAED,MAAAtC,KAAK2sK,aAAL,eAAmB,CAAtC,IAAIe,EAAW,KAClBprK,GAAQorK,EAAY5B,eAAiB4B,EAAYnxH,gBAGnD,OAAOj6C,GAGT,YAAA0tK,WAAA,WAGE,IAFA,IAAI5tK,EAAMpC,KAAK6vK,SAASztK,IAEA,MAAApC,KAAK2sK,aAAL,eAAmB,CAAtC,IAAIe,EAAW,KAClBtrK,GAAOsrK,EAAY7B,cAAgB6B,EAAYtxH,eAGjD,OAAOh6C,GAGT,YAAA6tK,iBAAA,SAAiB31J,EAAeC,GAG9B,IAFA,IAAI05B,EAAQ,CAAE3xC,KAAMgY,EAAOlY,IAAKmY,GAER,MAAAva,KAAK2sK,aAAL,eAAmB,CAAtC,IAAIe,EAAW,KAClB,IACGwC,EAAkBxC,EAAYzB,oBAC9B,aAAgBh4H,EAAOy5H,EAAY3B,YAEpC,OAAO,EAIX,OAAO,GAEX,EArDA,GAyDA,SAASmE,EAAkB3oK,GACzB,IAAIswG,EAAWtwG,EAAqBswG,QAEpC,MAAmB,SAAZA,GAAkC,SAAZA,EChD/B,iBAgBE,WAAYq5B,EAA2Bi/B,GAAvC,WAVA,KAAAC,kBAA4B,EAC5B,KAAAC,gBAA0B,EAI1B,KAAAC,WAAyB,KACzB,KAAAC,UAAwB,KACxB,KAAAC,SAAuB,KAgBvB,KAAAC,kBAAoB,SAAC9oJ,GACb,IAAAupH,EAAa,EAAL,SAEd,EAAKo/B,WAAa,KAClB,EAAKC,UAAY,KACjB,EAAKC,SAAW,KAEhB,EAAK3wH,cACL,EAAK6wH,kBAAkB/oJ,GAEnB,EAAK2oJ,aAAe,EAAKD,gBAC3Bn/B,EAAS0+B,eAAc,GAGvB,EAAKrqI,QAAQC,QAAQ,cAAe7d,IAEpCupH,EAAS0+B,eAAc,IAgC3B,KAAAe,gBAAkB,SAAChpJ,GACjB,EAAK4d,QAAQC,QAAQ,YAAa7d,GAClC,EAAKqjJ,WAAWrjJ,GAAI,IAGtB,KAAAipJ,eAAiB,SAACjpJ,GAChB,EAAK4d,QAAQC,QAAQ,WAAY7d,GACjC,EAAKqjJ,WAAWrjJ,IAGlB,KAAAkpJ,gBAAkB,SAAClpJ,GACjB,EAAKmpJ,cACL,EAAKvrI,QAAQC,QAAQ,YAAa7d,IAGpC,KAAAopJ,cAAgB,SAACppJ,GACX,EAAK4oJ,WACP,EAAKhrI,QAAQC,QAAQ,YAAa,MAAM,EAAM7d,GAGhD,EAAK6oJ,SAAW,EAAKD,UACrB,EAAKA,UAAY,KACjB,EAAKhrI,QAAQC,QAAQ,UAAW7d,IAlFhC3nB,KAAKmwK,eAAiBA,EAEtBj/B,EAAS3rG,QAAQhhB,GAAG,cAAevkB,KAAKywK,mBACxCv/B,EAAS3rG,QAAQhhB,GAAG,YAAavkB,KAAK2wK,iBACtCz/B,EAAS3rG,QAAQhhB,GAAG,WAAYvkB,KAAK4wK,gBACrC1/B,EAAS3rG,QAAQhhB,GAAG,YAAavkB,KAAK6wK,iBACtC3/B,EAAS3rG,QAAQhhB,GAAG,UAAWvkB,KAAK+wK,eAEpC/wK,KAAKkxI,SAAWA,EAChBlxI,KAAKulC,QAAU,IAAI,IA2JvB,OAlIE,YAAAmrI,kBAAA,SAAkB/oJ,GAChB,IAGIqpJ,EAHAC,EAAY,CAAE3uK,KAAMqlB,EAAGrN,MAAOlY,IAAKulB,EAAGpN,OACtC22J,EAAgBD,EAChB5I,EAAY1gJ,EAAG0gJ,UAGfA,aAAqBz+J,cACvBonK,EAAc,aAAY3I,GAC1B6I,EAAgB,aAAeA,EAAeF,IAGhD,IAAIV,EAAatwK,KAAKswK,WAAatwK,KAAKmxK,kBAAkBD,EAAc5uK,KAAM4uK,EAAc9uK,KAC5F,GAAIkuK,EAAY,CACd,GAAItwK,KAAKowK,kBAAoBY,EAAa,CACxC,IAAII,EAAoB,aAAeJ,EAAaV,EAAWpuK,MAC3DkvK,IACFF,EAAgB,aAAcE,IAIlCpxK,KAAKqxK,YAAc,aAAWH,EAAeD,QAE7CjxK,KAAKqxK,YAAc,CAAE/uK,KAAM,EAAGF,IAAK,IA6BvC,YAAA4oK,WAAA,SAAWrjJ,EAAsB2pJ,GAC/B,IAAIC,EAAMvxK,KAAKmxK,kBACbxpJ,EAAGrN,MAAQta,KAAKqxK,YAAa/uK,KAC7BqlB,EAAGpN,MAAQva,KAAKqxK,YAAajvK,MAG3BkvK,GAAgBE,EAAYxxK,KAAKuwK,UAAWgB,KAC9CvxK,KAAKuwK,UAAYgB,EACjBvxK,KAAKulC,QAAQC,QAAQ,YAAa+rI,GAAK,EAAO5pJ,KAIlD,YAAAk4B,YAAA,WACE7/C,KAAKyxK,eAAiB,aAAQzxK,KAAKmwK,gBAAgB,SAACuB,GAElD,OADAA,EAAoBpuH,UAAUzD,cACvB,IAAI8xH,EAAcD,EAAoBzxK,QAIjD,YAAA6wK,YAAA,WACQ,IAAAW,EAAmBzxK,KAAL,eAEpB,IAAK,IAAI8jB,KAAM2tJ,EACbA,EAAe3tJ,GAAIpF,UAGrB1e,KAAKyxK,eAAiB,IAGxB,YAAAN,kBAAA,SAAkBjkK,EAAoBC,GAChC,IAAEgjK,EAAmCnwK,KAArB,eAAEyxK,EAAmBzxK,KAAL,eAChC4xK,EAAsB,KAE1B,IAAK,IAAI9tJ,KAAMqsJ,EAAgB,CAC7B,IAAI7sH,EAAY6sH,EAAersJ,GAAIw/B,UAC/BuuH,EAAgBJ,EAAe3tJ,GAEnC,GACE+tJ,GACAA,EAAc5B,iBAAiB/iK,EAAYC,GAC3C,CACA,IAAI2kK,EAAaD,EAAc9B,cAC3BgC,EAAYF,EAAc7B,aAC1BjwH,EAAe7yC,EAAa4kK,EAC5B9xH,EAAc7yC,EAAY4kK,EACxBlC,EAAagC,EAAL,SACV3xK,EAAQ2vK,EAASlpK,MAAQkpK,EAASvtK,KAClChB,EAASuuK,EAASjpK,OAASipK,EAASztK,IAExC,GAEE29C,GAAgB,GAAKA,EAAe7/C,GACpC8/C,GAAe,GAAKA,EAAc1+C,EAClC,CACA,IAAIiwK,EAAMjuH,EAAUxD,SAASC,EAAcC,EAAa9/C,EAAOoB,GAE7DiwK,GAEE,aAAmBA,EAAInqI,YAAYC,YAAakqI,EAAIpsI,SAASvyB,UAE7Dg/J,GAAWL,EAAIj7F,MAAQs7F,EAAQt7F,SAEjCi7F,EAAIS,YAAcluJ,EAClBytJ,EAAInrJ,QAAUk9B,EAAUl9B,QAGxBmrJ,EAAIrvK,KAAKI,MAAQwvK,EACjBP,EAAIrvK,KAAKyE,OAASmrK,EAClBP,EAAIrvK,KAAKE,KAAO2vK,EAChBR,EAAIrvK,KAAK0E,QAAUmrK,EAEnBH,EAAUL,KAMlB,OAAOK,GAEX,EArLA,G,SAuLgBJ,EAAYS,EAAkBC,GAC5C,OAAKD,IAASC,GAIV54J,QAAQ24J,KAAU34J,QAAQ44J,IAIvB,aAAiBD,EAAM9sI,SAAU+sI,EAAM/sI,U,SCvMhCgtI,EAA6BhtI,EAAoB/e,GAG/D,IAFA,IAWgCge,EAAgBxV,EAX5CpwB,EAAQ,GAEU,MAAA4nB,EAAQyI,YAAY+xB,oBAApB,eAAyC,CAA1D,IAAI3a,EAAS,KAChB,YAASznC,EAAOynC,EAAUd,EAAU/e,IAKtC,OAFA,YAAS5nB,GAKuB4lC,EALEe,EAM3B,CACLrZ,MAF8C8C,EALJxI,EAAQwI,SAOpCkW,OAAOV,EAAKxxB,MAAMgD,OAChCw8J,QAASxjJ,EAAQoW,UAAUZ,EAAKxxB,MAAMgD,MAAO,CAAEgvB,SAAUR,EAAKnV,SAC9DA,OAAQmV,EAAKnV,UAPRzwB,ECTT,kBAIE,WAAY8sC,GAAZ,MACE,YAAMA,IAAS,KAejB,EAAAmlI,kBAAoB,SAACnrI,GACb,IAAA4rG,EAAa,EAAL,SACVm5B,EAAS/kI,EAAIM,UAAUrnC,OAG3B2yI,EAAS0+B,eACN,EAAKtsH,UAAUlD,kBAAkBiqH,KAKtC,EAAA0G,cAAgB,SAACppJ,GACT,IAAA27B,EAAc,EAAL,UAGf,IAFkB,EAAK4tF,SAAV,QAEAw3B,eAAgB,CACvB,MAA2B,EAAK2J,YAA9B/B,EAAU,aAAEE,EAAQ,WAE1B,GAAIF,GAAcE,GAAYgB,EAAYlB,EAAYE,GAAW,CACzD,IAAApqJ,EAAYk9B,EAAL,QACTqM,EAAG,2BACFwiH,EAA6B7B,EAAWnrI,SAAU/e,IAAQ,CAC7DiwD,MAAOi6F,EAAWj6F,MAClB1wC,QAAShe,EAAGie,UACZC,KAAMzf,EAAQ0f,SAAW1f,EAAQ2f,YAAYF,OAG/Czf,EAAQmf,QAAQC,QAAQ,YAAamqB,MAvCzC,EAAKuhF,SAAW,IAAIohC,EAA0BhnI,EAASrrC,IACvD,EAAKixI,SAASi+B,aAAa/C,WAAY,EAEvC,IAAIiG,EAAc,EAAKA,YAAc,IAAIE,EAAY,EAAKrhC,SAAU,aAA2B5lG,I,OAC/F+mI,EAAY9sI,QAAQhhB,GAAG,cAAe,EAAKksJ,mBAC3C4B,EAAY9sI,QAAQhhB,GAAG,UAAW,EAAKwsJ,e,EAsC3C,OAnDkC,iBAgBhC,YAAAryJ,QAAA,WACE1e,KAAKkxI,SAASxyH,WAkClB,EAnDA,CAAkC,KCLlC,cAKE,WAAY4sB,GAAZ,MACE,YAAMA,IAAS,KAHjB,EAAAswD,cAAiC,KAuBjC,EAAA60E,kBAAoB,SAAC9oJ,GACf,MAA0B,EAAxB27B,EAAS,YAAE4tF,EAAQ,WAGrBshC,EAFclvH,EAAUl9B,QAAf,QAEWi6G,YACtB/8E,EAAUlD,kBAAkBz4B,EAAGie,UAAUrnC,QAG3C2yI,EAAS0+B,eAAe4C,GAGxBthC,EAASpuH,MAAQ6E,EAAGqiJ,QA2DxB,SAAgC1mH,GACxB,IAAAhyC,EAAYgyC,EAAUl9B,QAAf,QACTtD,EAAQxR,EAAQmhK,qBAEP,MAAT3vJ,IACFA,EAAQxR,EAAQohK,gBAGlB,OAAO5vJ,EAnEyB6vJ,CAAuBrvH,GAAa,MAGpE,EAAAqtH,gBAAkB,SAAChpJ,GACjB,EAAK27B,UAAUl9B,QAAQ2f,YAAY8D,SAASliB,IAG9C,EAAAirJ,gBAAkB,SAACrB,EAAiBsB,GAC5B,IAAAzsJ,EAAY,EAAKk9B,UAAV,QACTs4C,EAAiC,KACjCk3E,GAAY,EAEhB,GAAIvB,EAAK,CACP,IAAIjB,EAAa,EAAK+B,YAAY/B,WACjBiB,EAAIS,cAAgB1B,EAAW0B,aAC3C,EAAKxzG,oBACJ,EAAKA,kBAAkB8xG,EAAYiB,KAGvC31E,EAmDR,SAA+Bq2E,EAAWC,EAAWvxH,GACnD,IAAIoyH,EAAYd,EAAK9sI,SACjB6tI,EAAYd,EAAK/sI,SACjBnU,EAAK,CACP+hJ,EAAUngK,MAAMgD,MAChBm9J,EAAUngK,MAAME,IAChBkgK,EAAUpgK,MAAMgD,MAChBo9J,EAAUpgK,MAAME,KAGlBke,EAAGoO,KAAK,MAIR,IAFA,IAAI5gC,EAAQ,GAEY,MAAAmiD,EAAA,eAA2B,CAA9C,IACC7uB,GAAMwQ,EADQ,MACI2vI,EAAMC,GAE5B,IAAY,IAARpgJ,EACF,OAAO,KAGLA,GACF,YAAStzB,EAAOszB,GAOpB,OAHAtzB,EAAMoU,MAAQ,CAAEgD,MAAOob,EAAG,GAAIle,IAAKke,EAAG,IACtCxyB,EAAMywB,OAAS8jJ,EAAU9jJ,OAElBzwB,EAhFey0K,CACd3C,EACAiB,EACAnrJ,EAAQyI,YAAY8xB,4BAInBi7C,GAAkB,aAAqBA,EAAe21E,EAAInqI,YAAahhB,KAC1E0sJ,GAAY,EACZl3E,EAAgB,MAIhBA,EACFx1E,EAAQE,SAAS,CAAE9oB,KAAM,eAAgB6nC,UAAWu2D,IAC1Ci3E,GACVzsJ,EAAQE,SAAS,CAAE9oB,KAAM,mBAGtBs1K,EAGH,eAFA,eAKGD,IACH,EAAKj3E,cAAgBA,IAIzB,EAAAi1E,gBAAkB,SAACvrI,GACb,EAAKs2D,gBAEP,aAAkB,EAAKA,cAAet2D,EAAK,EAAKge,UAAUl9B,SAE1D,EAAKw1E,cAAgB,OApFjB,IACAtqF,EADcg6B,EAAL,UACallB,QAAf,QAET8qH,EAAW,EAAKA,SAAW,IAAIohC,EAA0BhnI,EAASrrC,IACtEixI,EAASq9B,oBAAqB,EAC9Br9B,EAASo9B,YAAch9J,EAAQ4hK,mBAAqB,EACpDhiC,EAASi+B,aAAa/C,UAAY96J,EAAQ6hK,WAE1C,IAAId,EAAc,EAAKA,YAAc,IAAIE,EAAY,EAAKrhC,SAAU,aAA2B5lG,I,OAC/F+mI,EAAY9sI,QAAQhhB,GAAG,cAAe,EAAKksJ,mBAC3C4B,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKosJ,iBACzC0B,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKquJ,iBACzCP,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKssJ,iB,EA2E7C,OA9FmC,iBAsBjC,YAAAnyJ,QAAA,WACE1e,KAAKkxI,SAASxyH,WAuElB,EA9FA,CAAmC,KCwBnC,kBAkBE,WAAY4sB,GAAZ,MACE,YAAMA,IAAS,KAVjB,EAAA+8H,UAAgC,KAChC,EAAA+K,WAAyB,KACzB,EAAAvgG,YAAsB,EACtB,EAAA5wC,WAAsC,KACtC,EAAAwM,eAAoC,KACpC,EAAA4kI,iBAA2C,KAC3C,EAAAC,cAAsC,KACtC,EAAAC,sBAA2C,KAyB3C,EAAA9C,kBAAoB,SAAC9oJ,GACnB,IAAI6rJ,EAAa7rJ,EAAGie,UAAUrnC,OAC1B,EAA0B,EAAxB+kD,EAAS,YAAE4tF,EAAQ,WACnB69B,EAAW79B,EAAL,OACN5/H,EAAYgyC,EAAUl9B,QAAf,QACTqtJ,EAAiBnwH,EAAUl9B,QAC/B,EAAKiiJ,UAAY1gJ,EAAG0gJ,UACpB,IAAI+K,EAAa,EAAKA,WAAa,aAASzrJ,EAAG0gJ,WAE3Cl6G,GADa,EAAKlsB,WAAamxI,EAAWnxI,YACb7jC,SAAU8uB,WAE3C,EAAKuhB,eAAiB,aACpBglI,EAAevsI,iBAAiBxY,WAChCy/B,GAGF+iF,EAASo9B,YAAc3mJ,EAAGqiJ,QAAU,EAAI14J,EAAQoiK,qBAChDxiC,EAASpuH,MAEN6E,EAAGqiJ,SAAW77G,IAAoB7K,EAAU9kD,MAAMk4C,eAsXzD,SAAgC4M,GACxB,IAAAhyC,EAAYgyC,EAAUl9B,QAAf,QACTtD,EAAQxR,EAAQqiK,oBAEP,MAAT7wJ,IACFA,EAAQxR,EAAQohK,gBAGlB,OAAO5vJ,EA7XD6vJ,CAAuBrvH,GACvB,KAEAhyC,EAAQsiK,kBACV7E,EAAOtsK,WAAa6O,EAAQsiK,kBAE5B7E,EAAOtsK,WAAa,aAAe+wK,EAAY,OAGjDzE,EAAOnE,eAAiBt5J,EAAQuiK,mBAEhC,IAAI5qH,EACF3F,EAAUnD,iBAAiBqzH,KAC1B,aAAeA,EAAY,qBAE9BtiC,EAAS0+B,eAAe3mH,GAIxB,EAAK4pB,WAAa5pB,GACfthC,EAAG0gJ,UAA0BxlK,UAAUQ,SAAS,uBAGrD,EAAAstK,gBAAkB,SAAChpJ,GACjB,IAAI8rJ,EAAiB,EAAKnwH,UAAUl9B,QAChC6b,EAAa,EAAKA,WAClBksB,EAAkBlsB,EAAW7jC,SAAS8uB,WAEtCvF,EAAGqiJ,QAED77G,IAAoB,EAAK7K,UAAU9kD,MAAMk4C,gBAC3C+8H,EAAentJ,SAAS,CAAE9oB,KAAM,eAAgB2wD,gBAAe,IAIjEslH,EAAentJ,SAAS,CAAE9oB,KAAM,mBAG9B,EAAKq1E,aACP4gG,EAAe1tI,YAAY8D,SAASliB,GACpC8rJ,EAAeluI,QAAQC,QAAQ,iBAAkB,CAC/CvlC,GAAI,EAAKooK,UACTh0J,MAAO,IAAI,IAASo/J,EAAgBxxI,EAAWjT,IAAKiT,EAAW7jC,UAC/DunC,QAAShe,EAAGie,UACZC,KAAM4tI,EAAe3tI,YAK3B,EAAA8sI,gBAAkB,SAACrB,EAAiBsB,GAClC,GAAK,EAAKhgG,WAAV,CAIA,IAAIpkC,EAAiB,EAAKA,eACtB6hI,EAAa,EAAK+B,YAAY/B,WAC9BmD,EAAiB,EAAKnwH,UAAUl9B,QAGhCitJ,EAA2C,KAC3ChtI,EAAiC,KACjCktI,EAA2C,KAC3CT,GAAY,EACZ97H,EAAqC,CACvCE,eAAgBzI,EAChB2I,cAAe,eACfE,SAAS,GAGX,GAAIi6H,EAAK,CAEP,IAAIuC,GADJT,EAAmB9B,EAAInrJ,SACiB9U,QAGtCmiK,IAAmBJ,GAClBS,EAAiBt5I,UAAYs5I,EAAiBC,WAE/C1tI,EA8PR,SAA8B4rI,EAAWC,EAAW8B,GAClD,IAAIjB,EAAYd,EAAK9sI,SACjB6tI,EAAYd,EAAK/sI,SACjB5G,EAAQw0I,EAAUngK,MAAMgD,MACxB4oB,EAAQw0I,EAAUpgK,MAAMgD,MACxByuB,EAAgB,GAEhB0uI,EAAU9jJ,SAAW+jJ,EAAU/jJ,SACjCoV,EAAcpV,OAAS+jJ,EAAU/jJ,OACjCoV,EAAcpH,OAASi1I,EAAK9rJ,QAAQ9U,QAAQi9B,uBAExCykI,EAAU/jJ,SAGZsP,EAAQ,aAAWA,KAIvB,IAAI4M,EAAQ,aACV5M,EAAOC,EACPyzI,EAAK7rJ,QAAQwI,QACbqjJ,EAAKD,cAAgBE,EAAKF,YACxBC,EAAKxzI,UACL,MAGA0M,EAAM/a,eACRiU,EAAcpV,QAAS,GAQzB,IALA,IAAIoX,EAA0B,CAC5BY,WAAYkE,EACZ9G,cAAa,GAGM,MAAA2vI,EAAA,eAAW,EAC9BC,EADe,MACN5tI,EAAU4rI,EAAMC,GAG3B,OAAO7rI,EArSU6tI,CAAqB5D,EAAYiB,EAAK8B,EAAiBnsI,iBAAiBrY,YAAY6xB,+BAG7F6yH,EAAwB,YACtB9kI,EACA4kI,EAAiBnsI,iBAAiBjH,aAClCoG,EACAgtI,GAEFr8H,EAAYI,cAAgBm8H,EAEvB,aAAmBv8H,EAAau6H,EAAInqI,YAAaisI,KACpDP,GAAY,EACZzsI,EAAW,KACXktI,EAAwB,KACxBv8H,EAAYI,cAAgB,iBAIhCi8H,EAAmB,KAIvB,EAAKc,YAAYd,EAAkBr8H,GAE9B87H,EAGH,eAFA,eAKGD,IAEDY,IAAmBJ,GACnB7B,EAAYlB,EAAYiB,KAExBlrI,EAAW,MAGb,EAAK6qG,SAASnyE,sBAAsB14B,GAIpC,EAAK6qG,SAASryE,oBACX0yG,IAAQ,aAAU,EAAKlJ,WAAW7kK,cAAc,qBAInD,EAAK6vK,iBAAmBA,EACxB,EAAKC,cAAgBjtI,EACrB,EAAKktI,sBAAwBA,KAIjC,EAAA1C,gBAAkB,WACX,EAAKh+F,YACR,EAAKu2F,WAIT,EAAA2H,cAAgB,SAACppJ,GACf,GAAI,EAAKkrD,WAAY,CACnB,IAAI,EAAiB,EAAKvvB,UAAUl9B,QAChCm7B,EAAc,EAAezb,QAC7B,EAAsC,EAApC,EAAgB,mBAAEwtI,EAAa,gBACjChkJ,EAAW,EAAK2S,WAAYjT,IAC5BkU,EAAgB,EAAKjB,WAAY7jC,SACjCmuC,EAAW,IAAI,IAAS,EAAgBjd,EAAU4T,GAClD,EAAiB,EAAKuL,eACtB,EAAwB,EAAK8kI,sBAC3B/C,EAAa,EAAK6B,YAAV,SAWd,GATA,EAAK+B,YAEL,EAAe7uI,QAAQC,QAAQ,gBAAiB,CAC9CvlC,GAAI,EAAKooK,UACTh0J,MAAOk4B,EACP5G,QAAShe,EAAGie,UACZC,KAAM0b,IAGJ+xH,GAEF,GAAI,IAAqB,EAAgB,CACvC,IAAIe,EAAkB,IAAI,IACxB,EACA,EAAsB3iK,KAAK4d,EAASvC,OACpCmW,EAAgB,EAAsBpU,UAAUoU,EAAchW,YAAc,MAG9E,EAAe5G,SAAS,CACtB9oB,KAAM,eACNkxB,WAAY,IAgBd,IAbA,IAAI4lJ,EAAiC,CACnC5lI,SAAUnC,EACVl4B,MAAOggK,EACP7nI,cAAe,YAAe,EAAuB,EAAgBtJ,GACrEuJ,OAAM,WACJ,EAAenmB,SAAS,CACtB9oB,KAAM,eACNkxB,WAAY,MAKd6lJ,EAAiD,GAC7B,QAAertI,iBAAiBrY,YAAYqyB,sBAA5C,eAAmE,CAAtF,IAAI5e,EAAW,KAClB,YAASiyI,EAAajyI,EAAYgxI,EAAe,IAGnD,EAAe/tI,QAAQC,QAAQ,YAAW,uCACrC8uI,GACAC,GAAW,CACdt0K,GAAI0nB,EAAG0gJ,UACPl9H,MAAOmoI,EAAcrsI,WACrBtB,QAAShe,EAAGie,UACZC,KAAM0b,KAGR,EAAehc,QAAQC,QAAQ,cAAe8uI,QAGzC,GAAI,EAAkB,CAC3B,IAAIE,EAAiC,CACnCngK,MAAOk4B,EACPC,cAAe,YAAe,EAAgB,EAAgBtJ,GAC9DuJ,OAAM,WACJ,EAAenmB,SAAS,CACtB9oB,KAAM,eACNkxB,WAAY,MAKlB,EAAe6W,QAAQC,QAAQ,aAAY,2BACtCgvI,GAAc,CACjBC,UAAW9sJ,EAAG0gJ,UACdxiI,KAAM0b,KAGR,EAAej7B,SAAS,CACtB9oB,KAAM,gBACNkxB,WAAY,IAGd,EAAe6W,QAAQC,QAAQ,cAAegvI,GAE9C,IAAIE,EAAgB,EAAsBhjK,KAAK4d,EAASvC,OACpD4nJ,EAAqB,EAAsB7lJ,UAAUoU,EAAchW,YACnE0nJ,EAAgB,IAAI,IAAS,EAAkBF,EAAeC,GAElE,EAAiBruJ,SAAS,CACxB9oB,KAAM,eACNkxB,WAAY,IAGd,IAAImmJ,EAA2B,CAC7BxgK,MAAOugK,EACPpoI,cAAe,YAAe,EAAuB,EAAkBmoI,GACvEloI,OAAM,WACJ,EAAiBnmB,SAAS,CACxB9oB,KAAM,gBACNkxB,WAAY,MAKlB,EAAiB6W,QAAQC,QAAQ,WAAYqvI,GAEzCltJ,EAAGqiJ,SACL,EAAiB1jJ,SAAS,CACxB9oB,KAAM,eACN2wD,gBAAiBjrB,EAAchW,aAInC,EAAiBqY,QAAQC,QAAQ,OAAM,2BAClC2sI,EAA6B3B,EAASrrI,SAAU,IAAiB,CACpEsvI,UAAW9sJ,EAAG0gJ,UACd1iI,QAAShe,EAAGie,UACZC,KAAM2qI,EAASpqJ,QAAQ0f,WAGzB,EAAiBP,QAAQC,QAAQ,eAAc,2BAC1CqvI,GAAW,CACdJ,UAAW9sJ,EAAG0gJ,UACdxiI,KAAM2qI,EAASpqJ,QAAQ0f,iBAI3B,EAAeP,QAAQC,QAAQ,gBAInC,EAAK4jI,WA1TC,IACA93J,EADc,EAAL,UACa8U,QAAf,QAET8qH,EAAW,EAAKA,SAAW,IAAIohC,EAA0BhnI,EAASrrC,IACtEixI,EAAS49B,QAAQxrK,SAAWwxK,EAAcC,SAC1C7jC,EAASq9B,oBAAqB,EAC9Br9B,EAASi+B,aAAa/C,UAAY96J,EAAQ6hK,WAE1C,IAAId,EAAc,EAAKA,YAAc,IAAIE,EAAY,EAAKrhC,SAAU,M,OACpEmhC,EAAYjC,iBAAmB9kI,EAASozB,eACxC2zG,EAAY9sI,QAAQhhB,GAAG,cAAe,EAAKksJ,mBAC3C4B,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKosJ,iBACzC0B,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKquJ,iBACzCP,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKssJ,iBACzCwB,EAAY9sI,QAAQhhB,GAAG,UAAW,EAAKwsJ,e,EAoW3C,OAtYmC,iBAqCjC,YAAAryJ,QAAA,WACE1e,KAAKkxI,SAASxyH,WA4ShB,YAAAy1J,YAAA,SAAYa,EAAqC53J,GAC/C,IAAIq2J,EAAiBzzK,KAAKsjD,UAAUl9B,QAChC6uJ,EAAcj1K,KAAKqzK,iBAGnB4B,GAAeA,IAAgBD,IAG7BC,IAAgBxB,EAClBwB,EAAY3uJ,SAAS,CACnB9oB,KAAM,iBACN4f,MAAO,CACL85B,eAAgB95B,EAAM85B,eACtBE,cAAe,eACfE,SAAS,KAMb29H,EAAY3uJ,SAAS,CAAE9oB,KAAM,sBAI7Bw3K,GACFA,EAAY1uJ,SAAS,CAAE9oB,KAAM,iBAAkB4f,MAAK,KAIxD,YAAAg3J,UAAA,WACE,IAAIc,EAAkBl1K,KAAKsjD,UAAUl9B,QAC/BitJ,EAAqBrzK,KAAL,iBAElBqzK,GACFA,EAAiB/sJ,SAAS,CAAE9oB,KAAM,qBAIhC03K,IAAoB7B,GACtB6B,EAAgB5uJ,SAAS,CAAE9oB,KAAM,sBAIrC,YAAA4rK,QAAA,WACEppK,KAAKozK,WAAa,KAClBpzK,KAAK6yE,YAAa,EAClB7yE,KAAKiiC,WAAa,KAClBjiC,KAAKyuC,eAAiB,KACtBzuC,KAAKqzK,iBAAmB,KACxBrzK,KAAKszK,cAAgB,KACrBtzK,KAAKuzK,sBAAwB,MAjYxB,EAAAwB,SAAW,2CAmYpB,EAtYA,CAAmC,KCFnC,kBAYE,WAAYzpI,GAAZ,MACE,YAAMA,IAAS,KARjB,EAAA6pI,cAAoC,KACpC,EAAAC,YAA0B,KAC1B,EAAAnzI,WAAsC,KACtC,EAAAwM,eAAoC,KACpC,EAAA6kI,cAAsC,KACtC,EAAAC,sBAA2C,KAsB3C,EAAA9C,kBAAoB,SAAC9oJ,GACb,IAAA27B,EAAc,EAAL,UACX0d,EAAQ,EAAKq0G,WAAW1tJ,GACxBwZ,EAAM,aAAS6/B,GACf/+B,EAAa,EAAKA,WAAad,EAAIc,WAEvC,EAAKivG,SAASo9B,YAAchrH,EAAUl9B,QAAQ9U,QAAQoiK,qBAGtD,EAAKxiC,SAAS0+B,eACX,EAAKtsH,UAAUnD,iBAAiBx4B,EAAGie,UAAUrnC,SAC7CopB,EAAGqiJ,SAAW,EAAK1mH,UAAU9kD,MAAMk4C,iBAAmBzU,EAAW7jC,SAAU8uB,aAIhF,EAAAyjJ,gBAAkB,SAAChpJ,GACX,IAAAvB,EAAY,EAAKk9B,UAAV,QACTrhB,EAAa,EAAKA,WAEtB,EAAKwM,eAAiB,aACpBroB,EAAQ8gB,iBAAiBxY,WACzB,EAAKuT,WAAW7jC,SAAU8uB,YAG5B,IAAI8zC,EAAQ,EAAKq0G,WAAW1tJ,GAC5B,EAAKwtJ,cAAgBn0G,EACrB,EAAKo0G,YAAc,aAASp0G,GAE5B56C,EAAQ2f,YAAY8D,WACpBzjB,EAAQmf,QAAQC,QAAQ,mBAAoB,CAC1CvlC,GAAI+gE,EACJ3sD,MAAO,IAAI,IAAS+R,EAAS6b,EAAWjT,IAAKiT,EAAW7jC,UACxDunC,QAAShe,EAAGie,UACZC,KAAMzf,EAAQ0f,WAIlB,EAAA8sI,gBAAkB,SAACrB,EAAiBsB,EAAkBlrJ,GAC9C,IAAAvB,EAAY,EAAKk9B,UAAV,QACT7U,EAAiB,EAAKA,eACtB6hI,EAAa,EAAK+B,YAAY/B,WAC9BptI,EAAgB,EAAKjB,WAAW7jC,SAChCioC,EAAiC,KACjCktI,EAA2C,KAC3CT,GAAY,EACZ97H,EAAqC,CACvCE,eAAgBzI,EAChB2I,cAAe,eACfE,SAAS,GAGPi6H,IACeA,EAAIS,cAAgB1B,EAAW0B,aAC3C,EAAKxzG,oBACJ,EAAKA,kBAAkB8xG,EAAYiB,KAGvClrI,EAgHR,SACE4rI,EACAC,EACAoD,EACAlnI,GAEA,IAAIxf,EAAUqjJ,EAAK7rJ,QAAQwI,QACvB2P,EAAQ0zI,EAAK9sI,SAASvyB,MAAMgD,MAC5B4oB,EAAQ0zI,EAAK/sI,SAASvyB,MAAMgD,MAE5Bu1B,EAAQ,aACV5M,EAAOC,EACP5P,EACAqjJ,EAAKxzI,WAGP,GAAI62I,GACF,GAAI1mJ,EAAQ5rB,IAAIorC,EAAcx4B,MAAOu1B,GAASiD,EAAct7B,IAC1D,MAAO,CAAE4zB,WAAYyE,QAElB,GAAIvc,EAAQ5rB,IAAIorC,EAAct7B,IAAKq4B,GAASiD,EAAcx4B,MAC/D,MAAO,CAAE+wB,SAAUwE,GAGrB,OAAO,KAxIUoqI,CACTjF,EACAiB,EACC5pJ,EAAG0gJ,UAA0BxlK,UAAUQ,SAAS,0BACjD6/B,EAActwB,SAKhByzB,IACFktI,EAAwB,YAA0B9kI,EAAgBroB,EAAQ8gB,iBAAiBjH,aAAcoG,EAAUjgB,GACnH4wB,EAAYI,cAAgBm8H,EAEvB,aAAmBv8H,EAAau6H,EAAInqI,YAAahhB,KACpD0sJ,GAAY,EACZzsI,EAAW,KACXktI,EAAwB,KACxBv8H,EAAYI,cAAgB,OAI5Bm8H,EACFntJ,EAAQE,SAAS,CACf9oB,KAAM,mBACN4f,MAAO45B,IAGT5wB,EAAQE,SAAS,CAAE9oB,KAAM,uBAGtBs1K,EAGH,eAFA,eAKGD,IACCxsI,GAAYmrI,EAAYlB,EAAYiB,KACtClrI,EAAW,MAGb,EAAKitI,cAAgBjtI,EACrB,EAAKktI,sBAAwBA,IAIjC,EAAAxC,cAAgB,SAACppJ,GACT,IAAAvB,EAAY,EAAKk9B,UAAV,QACTh0B,EAAW,EAAK2S,WAAYjT,IAC5BkU,EAAgB,EAAKjB,WAAY7jC,SACjCmuC,EAAW,IAAI,IAASnmB,EAASkJ,EAAU4T,GAC3CuL,EAAiB,EAAKA,eACtB8kI,EAAwB,EAAKA,sBASjC,GAPAntJ,EAAQmf,QAAQC,QAAQ,kBAAmB,CACzCvlC,GAAI,EAAKk1K,cACT9gK,MAAOk4B,EACP5G,QAAShe,EAAGie,UACZC,KAAMzf,EAAQ0f,UAGZ,EAAKwtI,cAAe,CACtB,IAAIe,EAAkB,IAAI,IACxBjuJ,EACAmtJ,EAAsB7hK,KAAK4d,EAASvC,OACpCmW,EAAgBqwI,EAAsBzkJ,UAAUoU,EAAchW,YAAc,MAG9E9G,EAAQE,SAAS,CACf9oB,KAAM,eACNkxB,WAAY6kJ,IAGd,IAAIe,EAAiC,CACnC5lI,SAAUnC,EACVl4B,MAAOggK,EACP7nI,cAAe,YAAe+mI,EAAuBntJ,EAAS8c,GAC9DuJ,OAAM,WACJrmB,EAAQE,SAAS,CACf9oB,KAAM,eACNkxB,WAAY+f,MAKlBroB,EAAQmf,QAAQC,QAAQ,cAAa,2BAChC8uI,GAAc,CACjBr0K,GAAI,EAAKk1K,cACTzuI,WAAY,EAAK4sI,cAAc5sI,YAAc,aAAe,GAC5DC,SAAU,EAAK2sI,cAAc3sI,UAAY,aAAe,GACxDhB,QAAShe,EAAGie,UACZC,KAAMzf,EAAQ0f,WAGhB1f,EAAQmf,QAAQC,QAAQ,cAAe8uI,QAEvCluJ,EAAQmf,QAAQC,QAAQ,kBAI1B,EAAK4vI,YAAc,KACnB,EAAK3mI,eAAiB,KACtB,EAAK6kI,cAAgB,MAjLf,IAAAhwH,EAAchY,EAAL,UAEX4lG,EAAW,EAAKA,SAAW,IAAIohC,EAA0BhnI,EAASrrC,IACtEixI,EAAS49B,QAAQxrK,SAAW,oBAC5B4tI,EAASq9B,oBAAqB,EAC9Br9B,EAASi+B,aAAa/C,UAAY9oH,EAAUl9B,QAAQ9U,QAAQ6hK,WAE5D,IAAId,EAAc,EAAKA,YAAc,IAAIE,EAAY,EAAKrhC,SAAU,aAA2B5lG,I,OAC/F+mI,EAAY9sI,QAAQhhB,GAAG,cAAe,EAAKksJ,mBAC3C4B,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKosJ,iBACzC0B,EAAY9sI,QAAQhhB,GAAG,YAAa,EAAKquJ,iBACzCP,EAAY9sI,QAAQhhB,GAAG,UAAW,EAAKwsJ,e,EA8K3C,OAvMmC,iBA4BjC,YAAAryJ,QAAA,WACE1e,KAAKkxI,SAASxyH,WAuKhB,YAAA22J,WAAA,SAAW1tJ,GACT,OAAO,aAAeA,EAAG0gJ,UAA0B,cAEvD,EAvMA,CAAmC,KC1BnC,iBAME,WAAoBjiJ,GAApB,WAAoB,KAAAA,UAJpB,KAAAovJ,2BAA4B,EAC5B,KAAAC,eAAgB,EAChB,KAAAC,cAAe,EAoBf,KAAAt7E,SAAW,SAACu7E,GACNA,EAAWhwI,UACb,EAAK6vI,2BAA4B,IAIrC,KAAAI,sBAAwB,SAACtwI,GACvB,IAAIuwI,EAAiB,EAAKzvJ,QAAQ9U,QAAQukK,eACtCxL,EAAS,aAAsB/kI,EAAIM,WAEvC,EAAK6vI,gBAAkB,aAAepL,EAAQwL,GAC9C,EAAKH,eAAiB,aAAerL,EAAQyK,EAAcC,WAG7D,KAAAe,oBAAsB,SAACxwI,GACf,IAAAlf,EAAY,EAAL,QACP2vJ,EAAoB,EAAL,gBACjBhsG,EAAgB3jD,EAAQ8gB,iBAG5B,IAAK6uI,EAAgBrN,eAAgB,CACnC,GACE3+F,EAAcr+B,gBACb,EAAK8pI,0BACN,CACA,IAAIQ,EAAe5vJ,EAAQ9U,QAAQ0kK,cAE/BA,GAAkBA,GAAiB,EAAKP,eAC1CrvJ,EAAQ2f,YAAY8D,SAASvE,GAK/BykC,EAAcrzB,iBACb,EAAKg/H,cAENtvJ,EAAQE,SAAS,CAAE9oB,KAAM,mBAI7B,EAAKg4K,2BAA4B,GAzDjC,IAAIO,EAAkB/1K,KAAK+1K,gBAAkB,IAAIzG,EAAgB5uK,UACjEq1K,EAAgBxN,kBAAmB,EACnCwN,EAAgBvN,mBAAoB,EACpCuN,EAAgBxwI,QAAQhhB,GAAG,cAAevkB,KAAK41K,uBAC/CG,EAAgBxwI,QAAQhhB,GAAG,YAAavkB,KAAK81K,qBAK7C1vJ,EAAQmf,QAAQhhB,GAAG,SAAUvkB,KAAKo6F,UAkDtC,OA/CE,YAAA17E,QAAA,WACE1e,KAAKomB,QAAQmf,QAAQ9gB,IAAI,SAAUzkB,KAAKo6F,UACxCp6F,KAAK+1K,gBAAgBr3J,WA6CzB,EAlEA,G9QAau3J,EAAkB,CAC7BrC,kBAAmB,MAGRsC,EAAoB,CAC/BC,UAAW,KACXC,eAAgB,KAChBC,cAAe,KACfC,UAAW,KACXC,iBAAkB,KAClBC,gBAAiB,KACjBpgI,YAAa,KACbqgI,KAAM,KACNC,aAAc,KACdC,WAAY,M+Qad,aAOE,WAAYzlC,EAA2B0lC,GAAvC,WALA,KAAAvD,iBAA2C,KAC3C,KAAAwD,eAAoC,KACpC,KAAAD,iBAA6C,KAC7C,KAAAE,SAA4B,KAY5B,KAAAnG,gBAAkB,SAAChpJ,GACjB,EAAKmvJ,SAAW,EAAKC,cAAcpvJ,EAAG0gJ,YAaxC,KAAAuK,gBAAkB,SAACrB,EAAiBsB,EAAkBlrJ,GAC9C,IAAAupH,EAAa,EAAKmhC,YAAV,SACVgB,EAA2C,KAC3CwD,EAAoC,KACpC/D,GAAY,EACZ97H,EAAqC,CACvCE,eAAgB,eAChBE,cAAe,eACfE,QAAS,EAAKw/H,SAAUn+J,QAGtB44J,IACF8B,EAAmB9B,EAAInrJ,QAEnB,EAAK4wJ,oBAAoBrvJ,EAAG0gJ,UAA0BgL,KACxDwD,EAmIR,SAAiC1xI,EAAoB2xI,EAAoB1wJ,GAGvE,IAFA,IAAI6wJ,EAAW,OAAH,IAAG,CAAH,GAAQH,EAAS13G,eAEP,MAAAh5C,EAAQyI,YAAYmyB,sBAApB,eAA2C,CAA5D,IAAI/a,EAAS,KAChB,YAASgxI,EAAUhxI,EAAUd,EAAU2xI,IAGrC,MAAqB,aAAeG,EAAU7wJ,GAA5CkV,EAAO,UAAEc,EAAK,QAChBpN,EAAM,aACRsM,EACAc,EACA06I,EAASvwJ,SACT4e,EAASlW,OACT7I,EAAQ9U,QAAQgsB,oBAAsBhkB,QAAQw9J,EAASxuK,UACvD8d,GAGExQ,EAAQuvB,EAASvyB,MAAMgD,MAIvBuvB,EAASlW,QAAU6nJ,EAASrjI,YAC9B79B,EAAQwQ,EAAQwI,QAAQ5rB,IAAI4S,EAAOkhK,EAASrjI,YAG9C,IAAI3gC,EAAMgkK,EAASxuK,SACjB8d,EAAQwI,QAAQ5rB,IAAI4S,EAAOkhK,EAASxuK,UACpC,aAAmB68B,EAASlW,OAAQrZ,EAAOwQ,GAEzChoB,EAAW,aAAoB4wB,EAAIjC,MAAO,CAAEnX,MAAK,EAAE9C,IAAG,IAE1D,MAAO,CAAEkc,IAAG,EAAE5wB,SAAQ,GAlKC84K,CACf3F,EAAIpsI,SACJ,EAAK2xI,SACLzD,GAGFr8H,EAAYI,cAAgB,aAAkBy/H,IAC9C/D,GAAa,aAAmB97H,EAAau6H,EAAInqI,YAAaisI,MAG5Dr8H,EAAYI,cAAgB,eAC5By/H,EAAiB,QAKvB,EAAK1C,YAAYd,EAAkBr8H,GAInCk6F,EAASryE,mBACPg0G,IAAYgE,IAAmBn2K,SAAS8C,cAAc,qBAInDsvK,EAGH,eAFA,eAKGD,IACH3hC,EAASnyE,sBAAsB83G,GAE/B,EAAKxD,iBAAmBA,EACxB,EAAKwD,eAAiBA,IAI1B,KAAA9F,cAAgB,SAACzrI,GACX,MAAuC,EAArC+tI,EAAgB,mBAAEwD,EAAc,iBAItC,GAFA,EAAKzC,YAEDf,GAAoBwD,EAAgB,CACtC,IAAIrG,EAAW,EAAK6B,YAAY7B,SAC5B2G,EAAY3G,EAASpqJ,QAAQ0f,QAC7BgxI,EAAW,EAAKA,SASpB,GAPAzD,EAAiB9tI,QAAQC,QAAQ,OAAM,2BAClC2sI,EAA6B3B,EAASrrI,SAAUkuI,IAAiB,CACpEoB,UAAWnvI,EAAI+iI,UACf1iI,QAASL,EAAIM,UACbC,KAAMsxI,KAGJL,EAASn+J,OAAQ,CACnB,IAAI,EAAe,aAAkBk+J,GAErCxD,EAAiB/sJ,SAAS,CACxB9oB,KAAM,eACNkxB,WAAY,IAGV4W,EAAI0kI,SACNqJ,EAAiB/sJ,SAAS,CACxB9oB,KAAM,eACN2wD,gBAAiB0oH,EAAez4K,SAAS8uB,aAK7CmmJ,EAAiB9tI,QAAQC,QAAQ,eAAgB,CAC/CnxB,MAAO,IAAI,IACTg/J,EACAwD,EAAe7nJ,IACf6nJ,EAAez4K,UAEjBouC,cAAe,GACfC,OAAM,WACJ4mI,EAAiB/sJ,SAAS,CACxB9oB,KAAM,gBACNkxB,WAAY,KAGhB+lJ,UAAWnvI,EAAI+iI,UACfxiI,KAAMsxI,KAKZ,EAAK9D,iBAAmB,KACxB,EAAKwD,eAAiB,MAlItB,IAAIxE,EAAcryK,KAAKqyK,YAAc,IAAIE,EAAYrhC,EAAU,MAC/DmhC,EAAYhC,gBAAiB,EAC7BgC,EAAY9sI,QAAQhhB,GAAG,YAAavkB,KAAK2wK,iBACzC0B,EAAY9sI,QAAQhhB,GAAG,YAAavkB,KAAK4yK,iBACzCP,EAAY9sI,QAAQhhB,GAAG,UAAWvkB,KAAK+wK,eAEvC/wK,KAAK42K,iBAAmBA,EA8J5B,OAvJE,YAAAG,cAAA,SAAc1O,GACZ,MAAqC,kBAA1BroK,KAAK42K,iBACP,aAAc52K,KAAK42K,kBAES,oBAA1B52K,KAAK42K,iBACP,aAAc52K,KAAK42K,iBAAiBvO,IA4LjD,SAA2BpoK,GACzB,IAAIsP,EAUN,SAA2BtP,EAAiBxD,GAC1C,IAAIoa,EAAS,KAAOugK,eAChBC,GAAgBxgK,EAASA,EAAS,IAAM,IAAMpa,EAElD,OAAOwD,EAAG2f,aAAa,QAAUy3J,IAAiB,GAdxCC,CAAkBr3K,EAAI,SAC5BjD,EAAMuS,EACR0oC,KAAKxb,MAAMltB,GACX,CAAEoJ,QAAQ,GAEZ,OAAO,aAAc3b,GAhMZu6K,CAAkBlP,IAiH3B,YAAA8L,YAAA,SAAYa,EAAqC53J,GAC/C,IAAI63J,EAAcj1K,KAAKqzK,iBAEnB4B,GAAeA,IAAgBD,GACjCC,EAAY3uJ,SAAS,CAAE9oB,KAAM,qBAG3Bw3K,GACFA,EAAY1uJ,SAAS,CAAE9oB,KAAM,iBAAkB4f,MAAK,KAIxD,YAAAg3J,UAAA,WACMp0K,KAAKqzK,kBACPrzK,KAAKqzK,iBAAiB/sJ,SAAS,CAAE9oB,KAAM,sBAI3C,YAAAw5K,oBAAA,SAAoB/2K,EAAiBozK,GACnC,IAAImE,EAAanE,EAAiB/hK,QAAQkmK,WAE1C,MAA0B,oBAAfA,EACFA,EAAW97K,KAAK23K,EAAiBttI,YAAa9lC,GAG7B,kBAAfu3K,IAA2BA,GAC7Bl+J,QAAQ,aAAerZ,EAAIu3K,KAKxC,EA5KA,GA+NA,KAAOJ,eAAiB,I,WC/OtB,WAAYn3K,EAAiBqrC,GAA7B,gBAA6B,IAAAA,MAAA,IAoB7B,KAAAmlI,kBAAoB,SAAC9oJ,GACb,IAAAupH,EAAa,EAAL,SACV,EAAkC,EAAK5lG,SAArCgjI,EAAW,cAAEoE,EAAc,iBAEjCxhC,EAASo9B,YACQ,MAAfA,EACEA,EACC3mJ,EAAGqiJ,QAAU,EAAI,IAAqB0J,qBAE3CxiC,EAASpuH,MACP6E,EAAGqiJ,QACkB,MAAlB0I,EAAyBA,EAAiB,IAAqBA,eAChE,GAGN,KAAA/B,gBAAkB,SAAChpJ,GAEfA,EAAGqiJ,SACH,EAAK94B,SAASpuH,OACb6E,EAAG0gJ,UAA0BxlK,UAAUQ,SAAS,aAEjD,EAAK6tI,SAAS69B,OAAOxD,cAAc1oK,UAAUG,IAAI,sBAxCnDhD,KAAKsrC,SAAWA,EAEhB,IAAI4lG,EAAWlxI,KAAKkxI,SAAW,IAAIohC,EAA0BryK,GAC7DixI,EAASq9B,oBAAqB,EAED,MAAzBjjI,EAASmsI,eACXvmC,EAAS49B,QAAQxrK,SAAWgoC,EAASmsI,cAGd,MAArBnsI,EAAStnC,WACXktI,EAAS69B,OAAOtsK,WAAa6oC,EAAStnC,UAGxCktI,EAAS3rG,QAAQhhB,GAAG,cAAevkB,KAAKywK,mBACxCv/B,EAAS3rG,QAAQhhB,GAAG,YAAavkB,KAAK2wK,iBAEtC,IAAI+G,EAAwBxmC,EAAU5lG,EAASqsI,WA4BjD,YAAAj5J,QAAA,WACE1e,KAAKkxI,SAASxyH,W,OC1DlB,cAME,WAAY8B,GAAZ,MACE,YAAMA,IAAY,KALpB,EAAA+nJ,kBAA4B,EAC5B,EAAAqP,eAAyB,GACzB,EAAAC,gBAAsC,KAetC,EAAApH,kBAAoB,SAAC9oJ,GACnB,EAAK4d,QAAQC,QAAQ,cAAe7d,GAE/B,EAAK4gJ,kBAER,EAAKhjI,QAAQC,QAAQ,YAAa7d,IAItC,EAAAmwJ,kBAAoB,SAACnwJ,GACd,EAAK4gJ,kBACR,EAAKhjI,QAAQC,QAAQ,WAAY7d,IAIrC,EAAAkpJ,gBAAkB,SAAClpJ,GACjB,EAAK4d,QAAQC,QAAQ,YAAa7d,GAE7B,EAAK4gJ,kBAER,EAAKhjI,QAAQC,QAAQ,UAAW7d,IA9BlC,IAAImnJ,EAAU,EAAKA,QAAU,IAAIQ,EAAgB9uJ,G,OACjDsuJ,EAAQvpI,QAAQhhB,GAAG,cAAe,EAAKksJ,mBACvC3B,EAAQvpI,QAAQhhB,GAAG,cAAe,EAAKuzJ,mBACvChJ,EAAQvpI,QAAQhhB,GAAG,YAAa,EAAKssJ,iB,EAuDzC,OAnE6C,iBAe3C,YAAAnyJ,QAAA,WACE1e,KAAK8uK,QAAQpwJ,WA2Bf,YAAAkxJ,cAAA,SAAc9wG,GACZ9+D,KAAKuoK,iBAAmBzpG,GAG1B,YAAAD,mBAAA,SAAmBC,GACjB,GAAIA,EAGE9+D,KAAK63K,kBACP73K,KAAK63K,gBAAgBz3K,MAAM6H,WAAa,GACxCjI,KAAK63K,gBAAkB,UAEpB,CACL,IAAInN,EAAW1qK,KAAK43K,eAEhBl3K,SAAS8C,cAAcxD,KAAK43K,gBAC5B,KAEAlN,IACF1qK,KAAK63K,gBAAkBnN,EACvBA,EAAStqK,MAAM6H,WAAa,YAIpC,EAnEA,CAA6C,K/DC7C,G,WgEME,WACE8vK,EACAzsI,GAEA,IAAI9qB,EAA2B9f,SAI7Bq3K,IAAwBr3K,UACxBq3K,aAA+BC,SAE/Bx3J,EAAcu3J,EACdzsI,EAAWA,GAAY,IAEvBA,EAAYysI,GAAuB,GAGrC,IAAI7mC,EAAWlxI,KAAKkxI,SAAW,IAAI+mC,EAAwBz3J,GAEtB,kBAA1B8qB,EAASmsI,aAClBvmC,EAAS49B,QAAQxrK,SAAWgoC,EAASmsI,aAC5Bj3J,IAAgB9f,WACzBwwI,EAAS49B,QAAQxrK,SAAW,gBAGS,kBAA5BgoC,EAASssI,iBAClB1mC,EAAS0mC,eAAiBtsI,EAASssI,gBAGrC,IAAIF,EAAwBxmC,EAAU5lG,EAASqsI,WAGjD,YAAAj5J,QAAA,WACE1e,KAAKkxI,SAASxyH,W,GhEvCH,aAAa,CAC1ByiC,sBAAuB,CAAC+2H,EAAcC,EAAerD,EAAesD,GACpEh3H,qBAAsB,CAACi3H,GACvB72H,oBAAqB8wH,EACrBzwH,eAAgBo0H,EAChBr0H,iBAAkBs0H,K,oCiEfpB,oEAUA,SAAS53K,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIwpK,EAAyB,SAAU1+J,IApEvC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAU8/J,EAAW1+J,GAErB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAauzJ,GAE1B,SAASA,EAAU95K,GACjB,IAAI+G,EAYJ,OA7HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMs4K,IAEtB/yK,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBgU,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAM2P,WAAa3P,EAAM2P,WAAW6E,KAAK7B,EAAuB3S,IAChEA,EAAMyQ,QAAUzQ,EAAMyQ,QAAQ+D,KAAK7B,EAAuB3S,IAC1DA,EAAM4Q,kBAAoB5Q,EAAM4Q,kBAAkB4D,KAAK7B,EAAuB3S,IAC9EA,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAwnBT,OAruBoBlH,EAgHPi6K,EAhHoBv5K,EAgHT,CAAC,CACvBjB,IAAK,QACLhC,MAAO,SAAe6W,EAAOnK,GAC3B,IAAIoK,EAAOC,EAAOC,EACdixG,EAAU/jH,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,QAE7C,GAAKg1G,GAAYA,EAAQz/G,cAAgBy/G,IAAYrjH,SAASqS,cAI9D,MAAqB,kBAAVJ,GAcLoxG,EAAQ/wG,mBACVH,EAAQkxG,EAAQ9wG,eAChBH,EAAMixG,EAAQ7wG,cACLxS,SAAQ,WAAiBA,SAAQ,UAAcyS,cAGxDL,GADAD,EAAQ,GADRD,EAAQlS,SAAQ,UAAcyS,eACZC,YAAYC,UAAU,aAAc,MACxCT,EAAM5F,KAAKrS,QAGpB,CACLkY,MAAOA,EACPC,IAAKA,KAxBPD,EAAQF,EACRG,EAAsB,kBAATtK,EAAoBA,EAAOqK,OAEpCkxG,EAAQ/wG,kBACV+wG,EAAQ/wG,kBAAkBH,EAAOC,GACxBixG,EAAO,mBAChBnxG,EAAQmxG,EAAO,mBACTzwG,UAAS,GACfV,EAAMW,QAAQ,YAAaT,GAC3BF,EAAMS,UAAU,YAAaR,GAC7BD,EAAMY,cAkBX,CACD1V,IAAK,cACLhC,MAAO,WACL,IAAK,IAAIlB,EAAIoF,KAAKyR,gBAAiB7W,GAAKoF,KAAK4R,uBAAwBhX,IACnE,GAAIoF,KAAKuR,MAAM3W,IAAMoF,KAAKgS,OAAOpX,KAAOoF,KAAK0T,eAAe9Y,GAC1D,OAAO,EAIX,OAAO,IAER,CACDkD,IAAK,iBACLhC,MAAO,SAAwBlB,GAC7B,OAAIA,EAAIoF,KAAKxB,MAAM0T,SAASvX,OACnBqF,KAAKxB,MAAM0T,SAASyB,OAAO/Y,GAG7BoF,KAAKxB,MAAM0T,SAASyB,OAAO,KAEnC,CACD7V,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM4T,OAASpS,KAAK6T,mBAAqB7T,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SAAW/O,KAAK8rF,SAAS/8E,QAAQjT,QAEtH,CACDgC,IAAK,WACLhC,MAAO,SAAkBiY,GACvB,OAASA,EAAM/T,KAAKtF,MAAQsF,KAAKuR,MAAMwC,KAGvC,OAAOA,IAER,CACDjW,IAAK,WACLhC,MAAO,SAAkBiY,GACvB,OAASA,GAAO,IAAM/T,KAAKuR,MAAMwC,KAGjC,OAAOA,IAER,CACDjW,IAAK,SACLhC,MAAO,SAAgB+W,EAAOC,GAC5B,IAAIlY,EAAGqZ,EAEP,KAAIpB,EAAQ,GAAZ,CAIA,IAAKjY,EAAIiY,EAAOoB,EAAIjU,KAAK8T,SAAShB,GAAMlY,EAAIoF,KAAKtF,IAAKE,IACpD,GAAIoF,KAAKuR,MAAM3W,GAAI,CACjB,KAAIqZ,EAAIjU,KAAKtF,KAAOsF,KAAKuR,MAAM3W,GAAG+B,KAAKqD,KAAKgS,OAAOiC,KAIjD,MAHAjU,KAAKgS,OAAOpX,GAAKoF,KAAKgS,OAAOiC,GAC7BjU,KAAKgS,OAAOiC,GAAKjU,KAAK0T,eAAeO,GAKvCA,EAAIjU,KAAK8T,SAASG,GAItBjU,KAAKkU,cACLlU,KAAK0S,MAAMtN,KAAKC,IAAIrF,KAAKyR,gBAAiBoB,OAE3C,CACD/U,IAAK,SACLhC,MAAO,SAAgBiY,GACrB,IAAInZ,EAAGqD,EAAGgW,EAAGwB,EAEb,IAAK7a,EAAImZ,EAAK9V,EAAI+B,KAAK0T,eAAeK,GAAMnZ,EAAIoF,KAAKtF,IAAKE,IACxD,GAAIoF,KAAKuR,MAAM3W,GAAI,CAKjB,GAJAqZ,EAAIjU,KAAK8T,SAASlZ,GAClB6a,EAAIzV,KAAKgS,OAAOpX,GAChBoF,KAAKgS,OAAOpX,GAAKqD,IAEbgW,EAAIjU,KAAKtF,KAAOsF,KAAKuR,MAAM0C,GAAGtX,KAAK8Y,IAGrC,MAFAxX,EAAIwX,KAOX,CACD3X,IAAK,qBACLhC,MAAO,SAA4B0D,GACjC,IAAIyW,EAASjW,KAAK8rF,SAAS/8E,QAAQjT,MAC/BiY,EAAM/T,KAAK0S,QAEf,GAAI1S,KAAK6R,QAAU7R,KAAK6R,OAAOlX,QAAUqF,KAAK6R,OAAOlX,OAASsb,EAAOtb,OAAQ,CAI3E,IAFAqF,KAAKmU,UAAS,GAEPJ,EAAIlB,MAAQ,IAAM7S,KAAKuR,MAAMwC,EAAIlB,MAAQ,IAC9CkB,EAAIlB,QAGN,GAAkB,IAAdkB,EAAIlB,MACN,KAAOkB,EAAIlB,MAAQ7S,KAAKyR,kBAAoBzR,KAAKuR,MAAMwC,EAAIlB,QACzDkB,EAAIlB,QAIR7S,KAAK0S,MAAMqB,EAAIlB,MAAOkB,EAAIlB,WACrB,CAGL,IAFA7S,KAAKmU,UAAS,GAEPJ,EAAIlB,MAAQ7S,KAAKtF,MAAQsF,KAAKuR,MAAMwC,EAAIlB,QAC7CkB,EAAIlB,QAGN7S,KAAK0S,MAAMqB,EAAIlB,MAAOkB,EAAIlB,OAGxB7S,KAAKxB,MAAM8T,YAActS,KAAKyT,eAChCzT,KAAKxB,MAAM8T,WAAW,CACpBqD,cAAenW,EACf1D,MAAOkE,KAAK4T,eAIjB,CACD9V,IAAK,SACLhC,MAAO,SAAgB0D,GAUrB,GATAQ,KAAKosF,OAAQ,EACbpsF,KAAKmU,WACLnU,KAAKoU,YAAY5U,GACjBQ,KAAKu4K,oBAEDv4K,KAAKxB,MAAMiU,QACbzS,KAAKxB,MAAMiU,OAAOjT,GAGhBQ,KAAK8rF,SAAS/8E,QAAQjT,QAAUkE,KAAK8R,UAAW,CAClD,IAAIuC,EAAQ3T,SAAS4T,YAAY,cACjCD,EAAME,UAAU,UAAU,GAAM,GAChCvU,KAAK8rF,SAAS/8E,QAAQyF,cAAcH,MAGvC,CACDvW,IAAK,YACLhC,MAAO,SAAmB0D,GACxB,IAAIQ,KAAKxB,MAAM6T,SAAf,CAIA,IACI0B,EACAlB,EACAC,EAHA4B,EAAIlV,EAAEmV,OAASnV,EAAEoV,QAIjBC,EAAS,UAAUlY,KAAKoD,IAAW+U,gBACvC9U,KAAK6R,OAAS7R,KAAK8rF,SAAS/8E,QAAQjT,MAE1B,IAAN4Y,GAAiB,KAANA,GAAYG,GAAgB,MAANH,GAEnC7B,GADAkB,EAAM/T,KAAK0S,SACCG,OACZC,EAAMiB,EAAIjB,KAEAD,IAAU,IAClBA,EAAc,KAAN6B,EAAW1U,KAAK+U,SAASlC,GAASC,EAAM9S,KAAK8T,SAASjB,EAAQ,GACtEC,EAAY,KAAN4B,EAAW1U,KAAK8T,SAAShB,GAAOA,GAGxC9S,KAAKgV,YAAYnC,EAAOC,GACxB9S,KAAKgU,OAAOnB,EAAOC,EAAM,GACzB9S,KAAKoU,YAAY5U,GACjBA,EAAEyV,kBACa,KAANP,GAET1U,KAAKyS,OAAOjT,GACZQ,KAAKoU,YAAY5U,IACF,KAANkV,IAET1U,KAAK8rF,SAAS/8E,QAAQjT,MAAQkE,KAAK8R,UACnC9R,KAAK0S,MAAM,EAAG1S,KAAKmU,YACnBnU,KAAKoU,YAAY5U,GACjBA,EAAEyV,qBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,GACzB,IAAImb,EAAS3a,KAEb,IAAIA,KAAKxB,MAAM6T,SAAf,CAIA,IAEI8C,EACAlX,EACAtC,EACAyZ,EALAV,EAAIlV,EAAEmV,OAASnV,EAAEoV,QACjBb,EAAM/T,KAAK0S,QAMXlT,EAAE6V,SAAW7V,EAAE8V,QAAU9V,EAAE+V,SAAWb,EAAI,KAGnCA,GAAW,KAANA,IACVX,EAAIjB,IAAMiB,EAAIlB,QAAU,IAC1B7S,KAAKgV,YAAYjB,EAAIlB,MAAOkB,EAAIjB,KAChC9S,KAAKgU,OAAOD,EAAIlB,MAAOkB,EAAIjB,IAAM,KAGnCqC,EAAInV,KAAK8T,SAASC,EAAIlB,MAAQ,IAEtB7S,KAAKtF,MACXuD,EAAIoS,OAAOmF,aAAad,GAEpB1U,KAAKuR,MAAM4D,GAAGxY,KAAKsB,MACrB+B,KAAK0V,OAAOP,GACZnV,KAAKgS,OAAOmD,GAAKlX,EACjB+B,KAAKkU,cACLvY,EAAOqE,KAAK8T,SAASqB,GAEjB,WAAWxY,KAAKoD,IAAW+U,gBAM7BjM,YAJY,WACV8R,EAAOjI,MAAM/W,KAGG,GAElBqE,KAAK0S,MAAM/W,GAGToY,EAAIlB,OAAS7S,KAAK4R,yBACpBwD,EAAYpV,KAAKyT,gBAKvBjU,EAAEyV,kBAGJjV,KAAKoU,YAAY5U,GAEbQ,KAAKxB,MAAM8T,YAAc8C,GAC3BpV,KAAKxB,MAAM8T,WAAW,CACpBqD,cAAenW,EACf1D,MAAOkE,KAAK4T,iBAIjB,CACD9V,IAAK,cACLhC,MAAO,SAAqB8Z,EAAO9C,GACjC,IAAIlY,EAEJ,IAAKA,EAAIgb,EAAOhb,EAAIkY,GAAOlY,EAAIoF,KAAKtF,IAAKE,IACnCoF,KAAKuR,MAAM3W,KACboF,KAAKgS,OAAOpX,GAAKoF,KAAK0T,eAAe9Y,MAI1C,CACDkD,IAAK,cACLhC,MAAO,WACLkE,KAAK8rF,SAAS/8E,QAAQjT,MAAQkE,KAAKgS,OAAO9T,KAAK,MAEhD,CACDJ,IAAK,WACLhC,MAAO,SAAkB+Z,GACvB7V,KAAKw4K,gBAAiB,EAEtB,IAEI59K,EACAqD,EACA8V,EAJApX,EAAOqD,KAAK8rF,SAAS/8E,QAAQjT,MAC7Bga,GAAa,EAKjB,IAAKlb,EAAI,EAAGmZ,EAAM,EAAGnZ,EAAIoF,KAAKtF,IAAKE,IACjC,GAAIoF,KAAKuR,MAAM3W,GAAI,CAGjB,IAFAoF,KAAKgS,OAAOpX,GAAKoF,KAAK0T,eAAe9Y,GAE9BmZ,IAAQpX,EAAKhC,QAGlB,GAFAsD,EAAItB,EAAKgX,OAAOI,EAAM,GAElB/T,KAAKuR,MAAM3W,GAAG+B,KAAKsB,GAAI,CACzB+B,KAAKgS,OAAOpX,GAAKqD,EACjB6X,EAAYlb,EACZ,MAIJ,GAAImZ,EAAMpX,EAAKhC,OAAQ,CACrBqF,KAAKgV,YAAYpa,EAAI,EAAGoF,KAAKtF,KAC7B,YAGEsF,KAAKgS,OAAOpX,KAAO+B,EAAKgX,OAAOI,IACjCA,IAGEnZ,EAAIoF,KAAKwR,kBACXsE,EAAYlb,GAuBlB,OAlBIib,EACF7V,KAAKkU,cACI4B,EAAY,EAAI9V,KAAKwR,gBAC1BxR,KAAKxB,MAAM2T,WAAanS,KAAKgS,OAAO9T,KAAK,MAAQ8B,KAAKiS,eAGpDjS,KAAK8rF,SAAS/8E,QAAQjT,QAAOkE,KAAK8rF,SAAS/8E,QAAQjT,MAAQ,IAC/DkE,KAAKgV,YAAY,EAAGhV,KAAKtF,MAIzBsF,KAAKkU,eAGPlU,KAAKkU,cACLlU,KAAK8rF,SAAS/8E,QAAQjT,MAAQkE,KAAK8rF,SAAS/8E,QAAQjT,MAAMkK,UAAU,EAAG8P,EAAY,IAG9E9V,KAAKwR,gBAAkB5W,EAAIoF,KAAKyR,kBAExC,CACD3T,IAAK,UACLhC,MAAO,SAAiB0D,GACtB,IAQIuU,EARAmN,EAASlhB,KAETA,KAAKxB,MAAM6T,WAIfrS,KAAKosF,OAAQ,EACbr2E,aAAa/V,KAAK+R,gBAElB/R,KAAK8R,UAAY9R,KAAK8rF,SAAS/8E,QAAQjT,MACvCiY,EAAM/T,KAAKmU,WACXnU,KAAK+R,eAAiBlJ,YAAW,WAC3BqY,EAAO4qE,SAAS/8E,UAAYrO,SAASqS,gBAIzCmO,EAAOhN,cAEHH,IAAQmN,EAAO1iB,MAAM6S,KAAKlO,QAAQ,IAAK,IAAIxI,OAC7CumB,EAAOxO,MAAM,EAAGqB,GAEhBmN,EAAOxO,MAAMqB,GAGfmN,EAAOq3J,uBACN,IAECv4K,KAAKxB,MAAMgU,SACbxS,KAAKxB,MAAMgU,QAAQhT,MAGtB,CACD1B,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAK2R,cAAe3R,KAAKkW,mBAAmB7B,GAAYrU,KAAKmW,kBAAkB9B,KAEpF,CACDvW,IAAK,oBACLhC,MAAO,SAA2B0D,GAChC,IAAIQ,KAAKxB,MAAM6T,SAAf,CAIA,IAAI0B,EAAM/T,KAAKmU,UAAS,GACxBnU,KAAK0S,MAAMqB,GACX/T,KAAKoU,YAAY5U,GAEbQ,KAAKxB,MAAM8T,YAActS,KAAKyT,eAChCzT,KAAKxB,MAAM8T,WAAW,CACpBqD,cAAenW,EACf1D,MAAOkE,KAAK4T,gBAIjB,CACD9V,IAAK,mBACLhC,MAAO,WAGL,IAFA,IAAIsa,EAAiB,GAEZxb,EAAI,EAAGA,EAAIoF,KAAKgS,OAAOrX,OAAQC,IAAK,CAC3C,IAAIqD,EAAI+B,KAAKgS,OAAOpX,GAEhBoF,KAAKuR,MAAM3W,IAAMqD,IAAM+B,KAAK0T,eAAe9Y,IAC7Cwb,EAAeva,KAAKoC,GAIxB,OAAOmY,EAAelY,KAAK,MAE5B,CACDJ,IAAK,cACLhC,MAAO,SAAqB0D,GAC1B,GAAIQ,KAAKxB,MAAM+T,SAAU,CACvB,IAAI8D,EAAMrW,KAAKxB,MAAM4T,OAASpS,KAAK6T,mBAAqBrU,GAAKA,EAAEjB,OAAOzC,MACtEkE,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAenW,EACf1D,MAAOkE,KAAKiS,gBAAkBoE,EAAMA,EAAM,GAC1C81E,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOkE,KAAKiS,gBAAkBoE,EAAMA,EAAM,SAKjD,CACDvY,IAAK,oBACLhC,MAAO,WACDkE,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SAAW/O,KAAK8rF,SAAS/8E,QAAQjT,OAASkE,KAAK8rF,SAAS/8E,QAAQjT,MAAMnB,OAAS,EAAGoF,IAAWya,SAASxa,KAAK8rF,SAAS/8E,QAAS,YAAiBhP,IAAWma,YAAYla,KAAK8rF,SAAS/8E,QAAS,cAEhO,CACDjR,IAAK,cACLhC,MAAO,SAAqB+Z,GAC1B,IAEI9B,EAFA4N,EAAS3hB,KAuBb,OAnBIA,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,UACT,MAApB/O,KAAKxB,MAAM1C,MACbkE,KAAK8rF,SAAS/8E,QAAQjT,MAAQ,IAE9BkE,KAAK8rF,SAAS/8E,QAAQjT,MAAQkE,KAAKxB,MAAM1C,MACzCiY,EAAM/T,KAAKmU,SAAS0B,GACpBhN,YAAW,WACT,GAAI8Y,EAAOmqE,UAAYnqE,EAAOmqE,SAAS/8E,QAGrC,OAFA4S,EAAOzN,cAEAyN,EAAOxN,SAAS0B,KAExB,KAGL7V,KAAK8R,UAAY9R,KAAK8rF,SAAS/8E,QAAQjT,OAGzCkE,KAAKu4K,oBACExkK,IAER,CACDjW,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM4T,OAASpS,KAAKxB,MAAM1C,QAAUkE,KAAK6T,mBAAqB7T,KAAKiS,gBAAkBjS,KAAK8rF,SAAS/8E,QAAQjT,OAASkE,KAAK8rF,SAAS/8E,QAAQjT,QAAUkE,KAAKxB,MAAM1C,QAE5K,CACDgC,IAAK,OACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM6S,KAAM,CACnBrR,KAAKuR,MAAQ,GACbvR,KAAKwR,gBAAkBxR,KAAKxB,MAAM6S,KAAK1W,OACvCqF,KAAKtF,IAAMsF,KAAKxB,MAAM6S,KAAK1W,OAC3BqF,KAAKyR,gBAAkB,KACvBzR,KAAK0R,KAAO,CACV,EAAK,QACL,EAAK,WACL,IAAK,eAEP,IAAIpG,EAAKvL,IAAW+U,eACpB9U,KAAK2R,cAAgB,UAAUhV,KAAK2O,IAAO,WAAW3O,KAAK2O,GAG3D,IAFA,IAAIkL,EAAaxW,KAAKxB,MAAM6S,KAAKtO,MAAM,IAE9BnI,EAAI,EAAGA,EAAI4b,EAAW7b,OAAQC,IAAK,CAC1C,IAAIqD,EAAIuY,EAAW5b,GAET,MAANqD,GACF+B,KAAKtF,MACLsF,KAAKwR,gBAAkB5W,GACdoF,KAAK0R,KAAKzT,IACnB+B,KAAKuR,MAAM1V,KAAK,IAAIuH,OAAOpD,KAAK0R,KAAKzT,KAER,OAAzB+B,KAAKyR,kBACPzR,KAAKyR,gBAAkBzR,KAAKuR,MAAM5W,OAAS,GAGzCC,EAAIoF,KAAKwR,kBACXxR,KAAK4R,uBAAyB5R,KAAKuR,MAAM5W,OAAS,IAGpDqF,KAAKuR,MAAM1V,KAAK,MAIpBmE,KAAKgS,OAAS,GAEd,IAAK,IAAI9W,EAAK,EAAGA,EAAKsb,EAAW7b,OAAQO,IAAM,CAC7C,IAAIub,EAAKD,EAAWtb,GAET,MAAPub,IACEzW,KAAK0R,KAAK+E,GAAKzW,KAAKgS,OAAOnW,KAAKmE,KAAK0T,eAAexY,IAAU8E,KAAKgS,OAAOnW,KAAK4a,IAIvFzW,KAAKiS,cAAgBjS,KAAKgS,OAAO9T,KAAK,OAGzC,CACDJ,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBACLrsF,KAAKuW,OACLvW,KAAK23H,cAED33H,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAllBvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAklB/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,iBAG7Ch5E,KAAKy4K,kBACPz4K,KAAK23H,cAGHn0G,EAAUnS,OAASrR,KAAKxB,MAAM6S,OAChCrR,KAAKuW,OACLvW,KAAK0S,MAAM1S,KAAK23H,aAAY,IAC5B33H,KAAKoU,iBAGR,CACDtW,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8rF,SAAS/8E,QACtBiQ,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,SACLhC,MAAO,WACL,IAAI48K,EAAqBz7K,YAAW,cAAe+C,KAAKxB,MAAMjB,WAC9D,OAAoBsd,IAAM7P,cAAc2vE,IAAW,CACjD72D,GAAI9jB,KAAKxB,MAAMslB,GACfhJ,IAAK9a,KAAK8rF,SACVtuF,KAAMwC,KAAKxB,MAAMhB,KACjBf,KAAMuD,KAAKxB,MAAM/B,KACjB2D,MAAOJ,KAAKxB,MAAM4B,MAClB7C,UAAWm7K,EACX90E,YAAa5jG,KAAKxB,MAAMolG,YACxBuhB,KAAMnlH,KAAKxB,MAAM2mH,KACjBthB,UAAW7jG,KAAKxB,MAAM88H,UACtBx2D,SAAU9kE,KAAKxB,MAAMsmE,SACrBrlD,SAAUzf,KAAKxB,MAAMihB,SACrBpN,SAAUrS,KAAKxB,MAAM6T,SACrBG,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbgC,UAAWzU,KAAKyU,UAChBS,WAAYlV,KAAKkV,WACjBc,QAAShW,KAAKgW,QACdo9G,QAASpzH,KAAKmW,kBACd02E,SAAU7sF,KAAKxB,MAAMquF,SACrB,kBAAmB7sF,KAAKxB,MAAMkuF,oBA/tBhC3tF,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAmuBzCs5K,EA1oBoB,CA2oB3Bt9J,aAEFxK,EAAgB8nK,EAAW,eAAgB,CACzCx0J,GAAI,KACJgoE,SAAU,KACVhwF,MAAO,KACP0B,KAAM,OACN6T,KAAM,KACNa,SAAU,IACVC,WAAW,EACXC,QAAQ,EACRhS,MAAO,KACP7C,UAAW,KACXqmG,YAAa,KACbuhB,KAAM,KACNmW,UAAW,KACXx2D,SAAU,KACVrlD,UAAU,EACVpN,UAAU,EACV5V,KAAM,KACNowF,UAAU,EACV9T,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBp6E,WAAY,KACZC,SAAU,KACVC,QAAS,KACTC,OAAQ,Q,6BCrxBV,6DAGA,SAAStU,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B68K,EAAuB,SAAU/+J,IAxErC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUmgK,EAAS/+J,GAEnB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa4zJ,GAE1B,SAASA,IAGP,OAFAx6K,EAAgB6B,KAAM24K,GAEf9+J,EAAOvQ,MAAMtJ,KAAM7C,WAsB5B,OArHoBkB,EAkGPs6K,GAlGoB55K,EAkGX,CAAC,CACrBjB,IAAK,SACLhC,MAAO,WACL,IAAI88K,EAAe37K,YAAW,wBAAyB+C,KAAKxB,MAAMjB,WAC9D+E,EAAOqL,IAAY8rE,cAAcz5E,KAAKxB,MAAM8D,KAAMtC,KAAKxB,OACvDmI,EAAQgH,IAAY8rE,cAAcz5E,KAAKxB,MAAMmI,MAAO3G,KAAKxB,OAC7D,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWq7K,EACXx4K,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,WACQlJ,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,wBACV+E,GAAoBuY,IAAM7P,cAAc,MAAO,CAChDzN,UAAW,yBACVoJ,SAhHSrI,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAmHzC25K,EA9BkB,CA+BzB39J,aAjDiClf,EAmDM,CACvCgoB,GAAI,KACJ1jB,MAAO,KACP7C,UAAW,KACX+E,KAAM,KACNqE,MAAO,OAxDqB7I,EAmDL,kBAnDAd,EAmDT27K,GAjDZv8K,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DAGA,SAASqC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B+8K,EAAoB,SAAUj/J,IAxElC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUqgK,EAAMj/J,GAEhB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa8zJ,GAE1B,SAASA,IAGP,OAFA16K,EAAgB6B,KAAM64K,GAEfh/J,EAAOvQ,MAAMtJ,KAAM7C,WA+C5B,OA9IoBkB,EAkGPw6K,GAlGoB95K,EAkGd,CAAC,CAClBjB,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMw8E,OACOngE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,iBACVoQ,IAAY8rE,cAAcz5E,KAAKxB,MAAMw8E,OAAQh7E,KAAKxB,QAGhD,OAER,CACDV,IAAK,aACLhC,MAAO,WACL,IAAIggC,EAAQ97B,KAAKxB,MAAMs9B,OAAsBjhB,IAAM7P,cAAc,MAAO,CACtEzN,UAAW,gBACVoQ,IAAY8rE,cAAcz5E,KAAKxB,MAAMs9B,MAAO97B,KAAKxB,QAChDs6K,EAAW94K,KAAKxB,MAAMs6K,UAAyBj+J,IAAM7P,cAAc,MAAO,CAC5EzN,UAAW,mBACVoQ,IAAY8rE,cAAcz5E,KAAKxB,MAAMs6K,SAAU94K,KAAKxB,QACnDgE,EAAWxC,KAAKxB,MAAMgE,UAAyBqY,IAAM7P,cAAc,MAAO,CAC5EzN,UAAW,kBACVyC,KAAKxB,MAAMgE,UACV04E,EAASl7E,KAAKxB,MAAM08E,QAAuBrgE,IAAM7P,cAAc,MAAO,CACxEzN,UAAW,iBACVoQ,IAAY8rE,cAAcz5E,KAAKxB,MAAM08E,OAAQl7E,KAAKxB,QACrD,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,eACVu+B,EAAOg9I,EAAUt2K,EAAU04E,KAE/B,CACDp9E,IAAK,SACLhC,MAAO,WACL,IAAIk/E,EAASh7E,KAAKi1I,eACd5yI,EAAOrC,KAAK+4K,aACZx7K,EAAYN,YAAW,qBAAsB+C,KAAKxB,MAAMjB,WAC5D,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB0jB,GAAI9jB,KAAKxB,MAAMslB,IACdk3D,EAAQ34E,QAzIC/D,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA4IzC65K,EAvDe,CAwDtB79J,aA1EiClf,EA4EG,CACpCgoB,GAAI,KACJk3D,OAAQ,KACRE,OAAQ,KACRp/C,MAAO,KACPg9I,SAAU,KACV14K,MAAO,KACP7C,UAAW,OAnFiBO,EA4ER,kBA5EGd,EA4ET67K,GA1EZz8K,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,2EAKA,SAAS28E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAS9B,SAASmB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIkqK,EAAwB,SAAUp/J,IApEtC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUwgK,EAAUp/J,GAEpB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAai0J,GAE1B,SAASA,EAASx6K,GAChB,IAAI+G,EA0BJ,OA3IJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMg5K,IAEtBzzK,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ45F,gBAAgB,EAChBiiE,MAAO,KACPC,SAAU3zK,EAAM4zK,cAChBttF,SAAS,EACTutF,UAAU,GAEZ7zK,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAM8zK,QAAU9zK,EAAM8zK,QAAQt/J,KAAK7B,EAAuB3S,IAC1DA,EAAMyQ,QAAUzQ,EAAMyQ,QAAQ+D,KAAK7B,EAAuB3S,IAC1DA,EAAM+zK,aAAe/zK,EAAM+zK,aAAav/J,KAAK7B,EAAuB3S,IACpEA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAMqyG,WAA0B5xF,sBAChCzgB,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UACpDvmF,EAAMg0K,kBAAoB,IAAIn2K,OAAOmC,EAAM/G,MAAMg7K,aACjDj0K,EAAMk0K,kBAAoB,IAAIr2K,OAAOmC,EAAM/G,MAAMk7K,aAC1Cn0K,EAsdT,OAjlBoBlH,EA8HP26K,EA9HoBj6K,EA8HV,CAAC,CACtBjB,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM26K,aAAe16F,YAAa,oBAE/C,CACD3gF,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMm7K,WAAal7F,YAAa,UAE7C,CACD3gF,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMo7K,aAAen7F,YAAa,YAE/C,CACD3gF,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMq7K,aAAep7F,YAAa,YAE/C,CACD3gF,IAAK,WACLhC,MAAO,WACL,OAA2B,MAApBkE,KAAKxB,MAAM1C,OAAiBkE,KAAKxB,MAAM1C,MAAMQ,WAAW3B,OAAS,GAAgC,MAA3BqF,KAAKxB,MAAM+7E,cAAwBv6E,KAAKxB,MAAM+7E,aAAaj+E,WAAW3B,OAAS,GAAKqF,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SAAWhP,IAAW6uF,SAAS5uF,KAAK8rF,SAAS/8E,QAAS,cAEvP,CACDjR,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAMg8J,SAAW,OAAS,aAEvC,CACDt7K,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKod,MAAM67J,MAAO,CACpB,IAAI1/F,EAAQ,KAEZ,OAAQv5E,KAAKod,MAAM67J,MAAMa,UACvB,IAAK,OACHvgG,EAAQv5E,KAAK25K,YACb,MAEF,IAAK,SACHpgG,EAAQv5E,KAAK45K,cACb,MAEF,IAAK,SACHrgG,EAAQv5E,KAAK65K,cAIbtgG,GAASv5E,KAAKod,MAAM87J,WAAa3/F,GACnCv5E,KAAKwd,SAAS,CACZ07J,SAAU3/F,QAGT,CACL,IAAI4/F,EAAcn5K,KAAKm5K,cAEnBn5K,KAAKod,MAAM87J,WAAaC,GAC1Bn5K,KAAKwd,SAAS,CACZ07J,SAAUC,OAKjB,CACDr7K,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMu7K,UACb31J,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAIlB,CACDhM,IAAK,eACLhC,MAAO,WACLkE,KAAKwd,UAAS,SAAUiG,GACtB,MAAO,CACL21J,UAAW31J,EAAU21J,eAI1B,CACDt7K,IAAK,cACLhC,MAAO,WACLkE,KAAKg6K,eACLh6K,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,eACLhC,MAAO,WACDkE,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SACjChP,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAAS/O,KAAK8rF,SAAS/8E,QAAQkL,cAAeja,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAG3H,CACDlG,IAAK,iBACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAKw6G,iBAEN,CACD18G,IAAK,mBACLhC,MAAO,WACLkE,KAAKihB,qBACLjhB,KAAK06G,qBACL16G,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,kBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIsG,EAAS3a,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACGlxE,EAAOnc,MAAMu7K,UACfp/J,EAAOq9F,cAGLr9F,EAAOnc,MAAMgU,SACfmI,EAAOnc,MAAMgU,QAAQ6B,QAI1B,CACDvW,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAI6M,EAASlhB,KAEbqU,EAAM4jG,UACNj4G,KAAKwd,SAAS,CACZquE,SAAS,IACR,WACG3qE,EAAO1iB,MAAMu7K,UACf74J,EAAO62F,cAGL72F,EAAO1iB,MAAMiU,QACfyO,EAAO1iB,MAAMiU,OAAO4B,QAIzB,CACDvW,IAAK,UACLhC,MAAO,SAAiB0D,GACtB,IAAImiB,EAAS3hB,KAET4U,EAAUpV,EAAEoV,SAAWpV,EAAEmV,MAE7B,GAAI3U,KAAKxB,MAAMu7K,SAAU,CACvB,IAAIj+K,EAAQ0D,EAAEjB,OAAOzC,MACjBy9E,EAAQ,KACR0/F,EAAQ,KAEZ,OAAQj5K,KAAKi6K,aAAan+K,IACxB,KAAK,EACHy9E,EAAQv5E,KAAK25K,YACbV,EAAQ,CACNa,SAAU,OACV55K,MAAO,UAET,MAEF,KAAK,EACHq5E,EAAQv5E,KAAK45K,cACbX,EAAQ,CACNa,SAAU,SACV55K,MAAO,UAET,MAEF,KAAK,EACHq5E,EAAQv5E,KAAK65K,cACbZ,EAAQ,CACNa,SAAU,SACV55K,MAAO,QAET,MAEF,QACEq5E,EAAQv5E,KAAKm5K,cACbF,EAAQ,KAIZj5K,KAAKwd,SAAS,CACZy7J,MAAOA,EACPC,SAAU3/F,IACT,WACK3kE,IAAY+M,EAAOvE,MAAM45F,gBAC7Br1F,EAAOq2F,iBAKTh4G,KAAKxB,MAAMmlH,SACb3jH,KAAKxB,MAAMmlH,QAAQnkH,KAGtB,CACD1B,IAAK,UACLhC,MAAO,SAAiBuY,EAAOmI,GACzBxc,KAAKxB,MAAMwX,SACbhW,KAAKxB,MAAMwX,QAAQ3B,EAAOmI,GAGvBxc,KAAKxB,MAAM+T,WACV8B,EAAM9V,OAAOzC,MAAMnB,OAAS,EAAGoF,IAAWya,SAASxa,KAAK8J,UAAW,yBAA8B/J,IAAWma,YAAYla,KAAK8J,UAAW,4BAG/I,CACDhM,IAAK,eACLhC,MAAO,SAAsByT,GAC3B,IAAIktD,EAAQ,EAEZ,OADIz8D,KAAKy5K,kBAAkB98K,KAAK4S,GAAMktD,EAAQ,EAAWz8D,KAAKu5K,kBAAkB58K,KAAK4S,GAAMktD,EAAQ,EAAWltD,EAAI5U,SAAQ8hE,EAAQ,GAC3HA,IAER,CACD3+D,IAAK,qBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK+jH,SAAS,WAC/DzhG,EAAOlF,MAAM45F,gBACf10F,EAAOy1F,kBAKb/3G,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAERA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChB34F,EAAOrF,MAAM45F,iBAAmBj3G,IAAWyiB,aAC7CC,EAAOs1F,eAIXn3G,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBAEDrsF,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAjWvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAiW/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,iBAG7Cx1D,EAAUg2J,cAAgBx5K,KAAKxB,MAAMg7K,cACvCx5K,KAAKu5K,kBAAoB,IAAIn2K,OAAOpD,KAAKxB,MAAMg7K,cAG7Ch2J,EAAUk2J,cAAgB15K,KAAKxB,MAAMk7K,cACvC15K,KAAKy5K,kBAAoB,IAAIr2K,OAAOpD,KAAKxB,MAAMk7K,eAG5C15K,KAAKy6E,YAAc16E,IAAW6uF,SAAS5uF,KAAK8J,UAAW,0BAC1D/J,IAAWma,YAAYla,KAAK8J,UAAW,2BAG1C,CACDhM,IAAK,uBACLhC,MAAO,WACLkE,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGjBjiE,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK+jH,QACb/kG,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,aACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM07K,WAAY,CACzB,IAAI/oF,EAAgBnxF,KAAKod,MAAMg8J,SAAW,kBAAoB,YAC1Dp6J,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDzN,UAAW4zF,EACXnxB,QAAShgE,KAAKs5K,eAGhB,GAAIt5K,KAAKxB,MAAM06E,KAAM,CACnB,IAAIihG,EAAqB,CACvBn6G,QAAShgE,KAAKs5K,aACd/7K,UAAW4zF,EACX5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAM06E,KAAMihG,GAGvD,OAAOn7J,EAGT,OAAO,OAER,CACDlhB,IAAK,cACLhC,MAAO,WACL,IAAI06G,EAAiBv5G,YAAW,+BAAgC+C,KAAKxB,MAAMg4G,gBAEvE54G,EAAOoC,KAAKod,MAAM67J,OAAS,CAC7Ba,SAAU,GACV55K,MAAO,MAEL45K,EAAWl8K,EAAKk8K,SAChB55K,EAAQtC,EAAKsC,MAEb86E,EAASrtE,IAAY8rE,cAAcz5E,KAAKxB,MAAMw8E,OAAQh7E,KAAKxB,OAC3D08E,EAASvtE,IAAY8rE,cAAcz5E,KAAKxB,MAAM08E,OAAQl7E,KAAKxB,OAC3DwgB,EAAUhf,KAAKxB,MAAMwgB,QAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMwgB,QAAShf,KAAKxB,OAAsBqc,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,MAAO,CAC5LzN,UAAW,oBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBAAuBQ,OAAO+7K,GACzC15K,MAAO,CACLF,MAAOA,MAEO2a,IAAM7P,cAAc,MAAO,CAC3CzN,UAAW,mBACVyC,KAAKod,MAAM87J,WACVp7B,EAAqBjjI,IAAM7P,cAAcia,IAAe,CAC1DS,QAAS1lB,KAAK43G,WACd36G,WAAY,sBACZ0oB,GAAI3lB,KAAKod,MAAM45F,eACfpxF,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKu3G,eACdnyF,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,iBACD78F,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAK43G,WACVr6G,UAAWi5G,EACXp2G,MAAOJ,KAAKxB,MAAMq4G,WAClB72C,QAAShgE,KAAKs3G,cACbt8B,EAAQh8D,EAASk8D,IACpB,OAAoBrgE,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASu7I,EACT95I,SAAUhE,KAAKxB,MAAMwF,aAGxB,CACDlG,IAAK,SACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAET61G,EAAqB54G,YAAW,wCAAyC,CAC3E,wBAAyB+C,KAAKy6E,WAC9B,uBAAwBz6E,KAAKod,MAAMyuE,QACnC,qBAAsB7rF,KAAKxB,MAAM07K,YAChCl6K,KAAKxB,MAAMjB,WACV29H,EAAiBj+H,YAAW,mBAAoB+C,KAAKxB,MAAM08H,gBAC3D19H,EAAOwC,KAAKo6K,eACZ1/F,EAAa/sE,IAAYusE,aAAal6E,KAAKxB,MAAOw6K,EAAS7+F,cAC3DjB,EAAOl5E,KAAK85E,aACZgkE,EAAQ99I,KAAKs+I,cACjB,OAAoBzjI,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOxZ,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWs4G,EACXz1G,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc2vE,IAAWlC,EAAS,CACtD39D,IAAK9a,KAAK8rF,SACVhoE,GAAI9jB,KAAKxB,MAAMmuF,SACdjS,EAAY,CACbl9E,KAAMA,EACND,UAAW29H,EACX96H,MAAOJ,KAAKxB,MAAM48H,WAClB5oH,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,OACbkxG,QAAS3jH,KAAKq5K,QACdrjK,QAAShW,KAAKgW,WACXkjE,EAAM4kE,MA5kBX/+I,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA+kBzCg6K,EAtfmB,CAuf1Bh+J,aAEFxK,EAAgBwoK,EAAU,eAAgB,CACxCl1J,GAAI,KACJ6oE,QAAS,KACTb,SAAU,KACVqtF,YAAa,KACbQ,UAAW,KACXC,YAAa,KACbC,YAAa,KACbL,YAAa,yFACbE,YAAa,8CACbK,UAAU,EACVG,YAAY,EACZl2K,SAAU,KACVg3E,OAAQ,KACRh8D,QAAS,KACTk8D,OAAQ,KACRhC,KAAM,KACNH,QAAS,KACTE,eAAgB,KAChB74E,MAAO,KACP7C,UAAW,KACX69H,WAAY,KACZF,eAAgB,KAChBrkB,WAAY,KACZL,eAAgB,KAChBI,kBAAmB,KACnB5gG,QAAS,KACT+K,OAAQ,KACRU,OAAQ,Q,wDCjnBa,qBAAf,WAA6B,WAAa,QAAQ,iBAAmB,CAC3E,UAAW,YACX,cAAe,gBACf,OAAQ,SACR,UAAW,YACX,SAAU,WACV,cAAe,gBACf,aAAc,eACd,WAII,aAHJ,uBAAwB,0B,WCtC1B,cAAE,SAAF,IAAI,IAAJ,0C,OAEU,eAAe,IAAI,I,EA4B7B,OA9B0C,iBAKtC,EAAF,4BACE,OACE,gBAAC,IAAoB,CAAC,gBAAiB,KAAK,MAAO,YAAa,KAAK,eAClE,SAAC,GAAS,OACT,gBAAC,IAAY,CAAC,QAAS,EAAK,gBAAiB,MAAO,EAAK,MAAO,QAAS,EAAK,UAC3E,SAAC,EAAY,EAAQ,EAAc,GAAa,OAC/C,uBAAK,UAAW,EAAW,KAAK,KAAM,MAAO,CAAE,OAAM,IACnD,gBAAC,IAAe,aACd,aAAc,EACd,SAAU,GAJiC,YAgB3D,8BACE,OAAO,KAAK,cAGhB,EA9BA,CAA0C,a,oCCT1C,6DAGA,SAAStjB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/Bu+K,EAAuB,SAAUzgK,IAxErC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAU6hK,EAASzgK,GAEnB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAas1J,GAE1B,SAASA,IAGP,OAFAl8K,EAAgB6B,KAAMq6K,GAEfxgK,EAAOvQ,MAAMtJ,KAAM7C,WAiC5B,OAhIoBkB,EAkGPg8K,GAlGoBt7K,EAkGX,CAAC,CACrBjB,IAAK,eACLyZ,IAAK,WACH,MAA6B,eAAtBvX,KAAKxB,MAAMw+I,SAEnB,CACDl/I,IAAK,aACLyZ,IAAK,WACH,MAA6B,aAAtBvX,KAAKxB,MAAMw+I,SAEnB,CACDl/I,IAAK,SACLhC,MAAO,WACL,IAAIw+K,EAAmBr9K,YAAW,mCAAmCc,OAAOiC,KAAKxB,MAAMw+I,OAAQ,eAAej/I,OAAOiC,KAAKxB,MAAMhB,MAAO,CACrI,iBAAkBwC,KAAK06C,gBAAkB16C,KAAKxB,MAAMkiB,OAA8B,SAArB1gB,KAAKxB,MAAMkiB,OACxE,kBAAmB1gB,KAAK06C,cAAqC,UAArB16C,KAAKxB,MAAMkiB,MACnD,mBAAoB1gB,KAAK06C,cAAqC,WAArB16C,KAAKxB,MAAMkiB,OAAsB1gB,KAAK26C,cAAgB36C,KAAKxB,MAAMkiB,OAA8B,WAArB1gB,KAAKxB,MAAMkiB,OAC9H,gBAAiB1gB,KAAK26C,YAAmC,QAArB36C,KAAKxB,MAAMkiB,MAC/C,mBAAoB1gB,KAAK26C,YAAmC,WAArB36C,KAAKxB,MAAMkiB,OACjD1gB,KAAKxB,MAAMjB,WACd,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW+8K,EACXl6K,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,aACQlJ,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,qBACVyC,KAAKxB,MAAMgE,gBA3HFlE,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA8HzCq7K,EAzCkB,CA0CzBr/J,aA5DiClf,EA8DM,CACvC4kB,MAAO,KACPs8H,OAAQ,aACRx/I,KAAM,QACN4C,MAAO,KACP7C,UAAW,OAnEiBO,EA8DL,kBA9DAd,EA8DTq9K,GA5DZj+K,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,iBCjGf,IAAIgzI,EAAcv0I,EAAQ,IACtBggL,EAA6BhgL,EAAQ,KACrCs4J,EAA2Bt4J,EAAQ,IACnCigL,EAAkBjgL,EAAQ,IAC1B00I,EAAgB10I,EAAQ,IACxB8mH,EAAM9mH,EAAQ,IACdw0I,EAAiBx0I,EAAQ,KAGzBkgL,EAA4Br+K,OAAO2U,yBAIvCzW,EAAQmF,EAAIqvI,EAAc2rC,EAA4B,SAAkCtrC,EAAGC,GAGzF,GAFAD,EAAIqrC,EAAgBrrC,GACpBC,EAAIH,EAAcG,GACdL,EAAgB,IAClB,OAAO0rC,EAA0BtrC,EAAGC,GACpC,MAAOvkI,IACT,GAAIw2G,EAAI8tB,EAAGC,GAAI,OAAOyjB,GAA0B0nB,EAA2B96K,EAAE/D,KAAKyzI,EAAGC,GAAID,EAAEC,M,cCnB7F,IAAI9yI,EAAW,GAAGA,SAElBjC,EAAOC,QAAU,SAAU6E,GACzB,OAAO7C,EAASZ,KAAKyD,GAAI5C,MAAM,GAAI,K,cCDrClC,EAAOC,QAAU,SAAU6E,GACzB,QAAUsG,GAANtG,EAAiB,MAAMtC,UAAU,wBAA0BsC,GAC/D,OAAOA,I,gBCJT,IAAI0vI,EAAat0I,EAAQ,IACrBmgL,EAAangL,EAAQ,IACrBgnH,EAAoBhnH,EAAQ,KAEhCF,EAAOC,QAAUinH,EAAoB,SAAUpiH,GAC7C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,IAAIw7K,EAAUD,EAAW,UACzB,OAAO7rC,EAAW8rC,IAAYv+K,OAAO+C,aAAew7K,I,gBCPtD,IAAIC,EAAargL,EAAQ,KACrB66I,EAAQ76I,EAAQ,IAGpBF,EAAOC,UAAY8B,OAAOwU,wBAA0BwkI,GAAM,WACxD,IAAIylC,EAAS1/K,SAGb,OAAQkV,OAAOwqK,MAAaz+K,OAAOy+K,aAAmB1/K,UAEnDA,OAAOie,MAAQwhK,GAAcA,EAAa,O,gBCX/C,IAOIpvK,EAAOH,EAPP81G,EAAS5mH,EAAQ,IACjB4O,EAAY5O,EAAQ,KAEpBugL,EAAU35D,EAAO25D,QACjBC,EAAO55D,EAAO45D,KACdC,EAAWF,GAAWA,EAAQE,UAAYD,GAAQA,EAAK1vK,QACvD4vK,EAAKD,GAAYA,EAASC,GAG1BA,EAEF5vK,GADAG,EAAQyvK,EAAGl4K,MAAM,MACD,GAAK,EAAI,EAAIyI,EAAM,GAAKA,EAAM,GACrCrC,MACTqC,EAAQrC,EAAUqC,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQrC,EAAUqC,MAAM,oBACbH,EAAUG,EAAM,IAI/BnR,EAAOC,QAAU+Q,IAAYA,G,gBCpB7B,IAAI6vK,EAAY3gL,EAAQ,KAIxBF,EAAOC,QAAU,SAAU6gL,EAAG/rC,GAC5B,IAAIjmH,EAAOgyJ,EAAE/rC,GACb,OAAe,MAARjmH,OAAe1jB,EAAYy1K,EAAU/xJ,K,gBCN9C,IAAI0lH,EAAat0I,EAAQ,IACrB6gL,EAAc7gL,EAAQ,KAG1BF,EAAOC,QAAU,SAAUimH,GACzB,GAAIsuB,EAAWtuB,GAAW,OAAOA,EACjC,MAAM1jH,UAAUu+K,EAAY76D,GAAY,wB,gBCN1C,IAAI86D,EAAU9gL,EAAQ,IAClBm/J,EAAQn/J,EAAQ,MAEnBF,EAAOC,QAAU,SAAUwD,EAAKhC,GAC/B,OAAO49J,EAAM57J,KAAS47J,EAAM57J,QAAiB2H,IAAV3J,EAAsBA,EAAQ,MAChE,WAAY,IAAID,KAAK,CACtBwP,QAAS,SACTy/F,KAAMuwE,EAAU,OAAS,SACzBC,UAAW,6C,gBCRb,IAAIn6D,EAAS5mH,EAAQ,IACjBy3J,EAAYz3J,EAAQ,KAEpBghL,EAAS,qBACT7hB,EAAQv4C,EAAOo6D,IAAWvpB,EAAUupB,EAAQ,IAEhDlhL,EAAOC,QAAUo/J,G,gBCNjB,IAAIv4C,EAAS5mH,EAAQ,IAErBF,EAAOC,QAAU,SAAUwD,EAAKhC,GAC9B,IAEEM,OAAOyC,eAAesiH,EAAQrjH,EAAK,CAAEhC,MAAOA,EAAO6C,cAAc,EAAMC,UAAU,IACjF,MAAOiM,GACPs2G,EAAOrjH,GAAOhC,EACd,OAAOA,I,cCRX,IAAIgoB,EAAK,EACL03J,EAAUp2K,KAAKklH,SAEnBjwH,EAAOC,QAAU,SAAUwD,GACzB,MAAO,UAAYuS,YAAe5K,IAAR3H,EAAoB,GAAKA,GAAO,QAAUgmB,EAAK03J,GAASl/K,SAAS,M,gBCJ7F,IAAI6kH,EAAS5mH,EAAQ,IACjB4zH,EAAW5zH,EAAQ,IAEnBmG,EAAWygH,EAAOzgH,SAElB+6K,EAASttD,EAASztH,IAAaytH,EAASztH,EAASsK,eAErD3Q,EAAOC,QAAU,SAAU6E,GACzB,OAAOs8K,EAAS/6K,EAASsK,cAAc7L,GAAM,K,gBCR/C,IAAI0vI,EAAat0I,EAAQ,IACrBm/J,EAAQn/J,EAAQ,KAEhBmhL,EAAmBz2D,SAAS3oH,SAG3BuyI,EAAW6qB,EAAM5G,iBACpB4G,EAAM5G,cAAgB,SAAU3zJ,GAC9B,OAAOu8K,EAAiBhgL,KAAKyD,KAIjC9E,EAAOC,QAAUo/J,EAAM5G,e,gBCZvB,IAAI6oB,EAAqBphL,EAAQ,KAG7Bg/J,EAFch/J,EAAQ,KAEGwD,OAAO,SAAU,aAK9CzD,EAAQmF,EAAIrD,OAAO2/J,qBAAuB,SAA6B5sB,GACrE,OAAOwsC,EAAmBxsC,EAAGoqB,K,cCT/B,IAAIryF,EAAO9hE,KAAK8hE,KACZx7C,EAAQtmB,KAAKsmB,MAIjBrxB,EAAOC,QAAU,SAAUimH,GACzB,OAAO1zF,MAAM0zF,GAAYA,GAAY,GAAKA,EAAW,EAAI70F,EAAQw7C,GAAMq5C,K,cCLzElmH,EAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,gBCRF,IAAIshL,EAAUrhL,EAAQ,KAKtBF,EAAOC,QAAUQ,MAAME,SAAW,SAAiBulH,GACjD,MAA4B,SAArBq7D,EAAQr7D,K,gBCNjB,IAAIq7D,EAAUrhL,EAAQ,IAEtBF,EAAOC,QAAU,SAAUimH,GACzB,GAA0B,WAAtBq7D,EAAQr7D,GAAwB,MAAM1jH,UAAU,6CACpD,OAAOwT,OAAOkwG,K,gBCJhB,IAGI5jH,EAAO,GAEXA,EALsBpC,EAAQ,GAEVk5J,CAAgB,gBAGd,IAEtBp5J,EAAOC,QAA2B,eAAjB+V,OAAO1T,I,gBCPxB,IAAIk/K,EAAUthL,EAAQ,KAKtBF,EAAOC,QAAUokH,EACjBrkH,EAAOC,QAAQmiC,MAAQA,EACvBpiC,EAAOC,QAAQwhL,QAsGf,SAAkBvsK,EAAK+B,GACrB,OAAOyqK,EAAiBt/I,EAAMltB,EAAK+B,GAAUA,IAtG/CjX,EAAOC,QAAQyhL,iBAAmBA,EAClC1hL,EAAOC,QAAQ0hL,eAAiBA,EAOhC,IAAIC,EAAc,IAAI74K,OAAO,CAG3B,UAOA,0GACAlF,KAAK,KAAM,KASb,SAASu+B,EAAOltB,EAAK+B,GAQnB,IAPA,IAKIwgB,EALAiH,EAAS,GACTj7B,EAAM,EACNu+D,EAAQ,EACRohD,EAAO,GACPy+D,EAAmB5qK,GAAWA,EAAQ6qK,WAAa,IAGf,OAAhCrqJ,EAAMmqJ,EAAYxwK,KAAK8D,KAAe,CAC5C,IAAI0a,EAAI6H,EAAI,GACRsqJ,EAAUtqJ,EAAI,GACd1nB,EAAS0nB,EAAIuqC,MAKjB,GAJAohD,GAAQluG,EAAIhT,MAAM8/D,EAAOjyD,GACzBiyD,EAAQjyD,EAAS6f,EAAEtvB,OAGfyhL,EACF3+D,GAAQ2+D,EAAQ,OADlB,CAKA,IAAIzgL,EAAO4T,EAAI8sD,GACXxlD,EAASib,EAAI,GACbr1B,EAAOq1B,EAAI,GACXuqJ,EAAUvqJ,EAAI,GACd8mF,EAAQ9mF,EAAI,GACZwqJ,EAAWxqJ,EAAI,GACfyqJ,EAAWzqJ,EAAI,GAGf2rF,IACF1kF,EAAOl9B,KAAK4hH,GACZA,EAAO,IAGT,IAAI8oD,EAAoB,MAAV1vJ,GAA0B,MAARlb,GAAgBA,IAASkb,EACrDu/G,EAAsB,MAAbkmD,GAAiC,MAAbA,EAC7BE,EAAwB,MAAbF,GAAiC,MAAbA,EAC/BH,EAAYrqJ,EAAI,IAAMoqJ,EACtB3gD,EAAU8gD,GAAWzjE,EAEzB7/E,EAAOl9B,KAAK,CACVY,KAAMA,GAAQqB,IACd+Y,OAAQA,GAAU,GAClBslK,UAAWA,EACXK,SAAUA,EACVpmD,OAAQA,EACRmwC,QAASA,EACTgW,WAAYA,EACZhhD,QAASA,EAAUkhD,EAAYlhD,GAAYghD,EAAW,KAAO,KAAOG,EAAaP,GAAa,SAclG,OATI9/G,EAAQ9sD,EAAI5U,SACd8iH,GAAQluG,EAAIia,OAAO6yC,IAIjBohD,GACF1kF,EAAOl9B,KAAK4hH,GAGP1kF,EAoBT,SAAS4jJ,EAA0BptK,GACjC,OAAO0gG,UAAU1gG,GAAKpM,QAAQ,WAAW,SAAUlF,GACjD,MAAO,IAAMA,EAAE2+K,WAAW,GAAGtgL,SAAS,IAAI+zD,iBAmB9C,SAAS0rH,EAAkBhjJ,EAAQznB,GAKjC,IAHA,IAAI6V,EAAU,IAAIrsB,MAAMi+B,EAAOp+B,QAGtBC,EAAI,EAAGA,EAAIm+B,EAAOp+B,OAAQC,IACR,kBAAdm+B,EAAOn+B,KAChBusB,EAAQvsB,GAAK,IAAIwI,OAAO,OAAS21B,EAAOn+B,GAAG2gI,QAAU,KAAMshD,EAAMvrK,KAIrE,OAAO,SAAUtU,EAAK8/K,GAMpB,IALA,IAAIr/D,EAAO,GACP9uG,EAAO3R,GAAO,GAEd+/K,GADUD,GAAQ,IACDE,OAASL,EAA2B3rH,mBAEhDp2D,EAAI,EAAGA,EAAIm+B,EAAOp+B,OAAQC,IAAK,CACtC,IAAIi+B,EAAQE,EAAOn+B,GAEnB,GAAqB,kBAAVi+B,EAAX,CAMA,IACIokJ,EADAnhL,EAAQ6S,EAAKkqB,EAAMp8B,MAGvB,GAAa,MAATX,EAAe,CACjB,GAAI+8B,EAAM2jJ,SAAU,CAEd3jJ,EAAM0tI,UACR9oD,GAAQ5kF,EAAMhiB,QAGhB,SAEA,MAAM,IAAIha,UAAU,aAAeg8B,EAAMp8B,KAAO,mBAIpD,GAAIo/K,EAAQ//K,GAAZ,CACE,IAAK+8B,EAAMu9F,OACT,MAAM,IAAIv5H,UAAU,aAAeg8B,EAAMp8B,KAAO,kCAAoCw7C,KAAKC,UAAUp8C,GAAS,KAG9G,GAAqB,IAAjBA,EAAMnB,OAAc,CACtB,GAAIk+B,EAAM2jJ,SACR,SAEA,MAAM,IAAI3/K,UAAU,aAAeg8B,EAAMp8B,KAAO,qBAIpD,IAAK,IAAIwX,EAAI,EAAGA,EAAInY,EAAMnB,OAAQsZ,IAAK,CAGrC,GAFAgpK,EAAUF,EAAOjhL,EAAMmY,KAElBkT,EAAQvsB,GAAG+B,KAAKsgL,GACnB,MAAM,IAAIpgL,UAAU,iBAAmBg8B,EAAMp8B,KAAO,eAAiBo8B,EAAM0iG,QAAU,oBAAsBtjF,KAAKC,UAAU+kI,GAAW,KAGvIx/D,IAAe,IAANxpG,EAAU4kB,EAAMhiB,OAASgiB,EAAMsjJ,WAAac,OApBzD,CA4BA,GAFAA,EAAUpkJ,EAAM0jJ,SA5EbtsE,UA4EuCn0G,GA5ExBqH,QAAQ,SAAS,SAAUlF,GAC/C,MAAO,IAAMA,EAAE2+K,WAAW,GAAGtgL,SAAS,IAAI+zD,iBA2EW0sH,EAAOjhL,IAErDqrB,EAAQvsB,GAAG+B,KAAKsgL,GACnB,MAAM,IAAIpgL,UAAU,aAAeg8B,EAAMp8B,KAAO,eAAiBo8B,EAAM0iG,QAAU,oBAAsB0hD,EAAU,KAGnHx/D,GAAQ5kF,EAAMhiB,OAASomK,QArDrBx/D,GAAQ5kF,EAwDZ,OAAO4kF,GAUX,SAASi/D,EAAcntK,GACrB,OAAOA,EAAIpM,QAAQ,6BAA8B,QASnD,SAASs5K,EAAa7jE,GACpB,OAAOA,EAAMz1G,QAAQ,gBAAiB,QAUxC,SAAS+5K,EAAYC,EAAI1uK,GAEvB,OADA0uK,EAAG1uK,KAAOA,EACH0uK,EAST,SAASN,EAAOvrK,GACd,OAAOA,GAAWA,EAAQgtG,UAAY,GAAK,IAwE7C,SAAS09D,EAAgBjjJ,EAAQtqB,EAAM6C,GAChCuqK,EAAQptK,KACX6C,EAAkC7C,GAAQ6C,EAC1C7C,EAAO,IAUT,IALA,IAAI4vG,GAFJ/sG,EAAUA,GAAW,IAEA+sG,OACjBvrG,GAAsB,IAAhBxB,EAAQwB,IACdsqK,EAAQ,GAGHxiL,EAAI,EAAGA,EAAIm+B,EAAOp+B,OAAQC,IAAK,CACtC,IAAIi+B,EAAQE,EAAOn+B,GAEnB,GAAqB,kBAAVi+B,EACTukJ,GAASV,EAAa7jJ,OACjB,CACL,IAAIhiB,EAAS6lK,EAAa7jJ,EAAMhiB,QAC5BwlK,EAAU,MAAQxjJ,EAAM0iG,QAAU,IAEtC9sH,EAAK5S,KAAKg9B,GAENA,EAAMu9F,SACRimD,GAAW,MAAQxlK,EAASwlK,EAAU,MAaxCe,GANIf,EAJAxjJ,EAAM2jJ,SACH3jJ,EAAM0tI,QAGC1vJ,EAAS,IAAMwlK,EAAU,KAFzB,MAAQxlK,EAAS,IAAMwlK,EAAU,MAKnCxlK,EAAS,IAAMwlK,EAAU,KAOzC,IAAIF,EAAYO,EAAaprK,EAAQ6qK,WAAa,KAC9CkB,EAAoBD,EAAM7gL,OAAO4/K,EAAUxhL,UAAYwhL,EAkB3D,OAZK99D,IACH++D,GAASC,EAAoBD,EAAM7gL,MAAM,GAAI4/K,EAAUxhL,QAAUyiL,GAAS,MAAQjB,EAAY,WAI9FiB,GADEtqK,EACO,IAIAurG,GAAUg/D,EAAoB,GAAK,MAAQlB,EAAY,MAG3De,EAAW,IAAI95K,OAAO,IAAMg6K,EAAOP,EAAMvrK,IAAW7C,GAe7D,SAASiwG,EAAcjB,EAAMhvG,EAAM6C,GAQjC,OAPKuqK,EAAQptK,KACX6C,EAAkC7C,GAAQ6C,EAC1C7C,EAAO,IAGT6C,EAAUA,GAAW,GAEjBmsG,aAAgBr6G,OAlJtB,SAAyBq6G,EAAMhvG,GAE7B,IAAIq9H,EAASruB,EAAKxsG,OAAOzF,MAAM,aAE/B,GAAIsgI,EACF,IAAK,IAAIlxI,EAAI,EAAGA,EAAIkxI,EAAOnxI,OAAQC,IACjC6T,EAAK5S,KAAK,CACRY,KAAM7B,EACNic,OAAQ,KACRslK,UAAW,KACXK,UAAU,EACVpmD,QAAQ,EACRmwC,SAAS,EACTgW,UAAU,EACVhhD,QAAS,OAKf,OAAO2hD,EAAWz/D,EAAMhvG,GAgIf6uK,CAAe7/D,EAA6BhvG,GAGjDotK,EAAQp+D,GAxHd,SAAwBA,EAAMhvG,EAAM6C,GAGlC,IAFA,IAAIwlB,EAAQ,GAEHl8B,EAAI,EAAGA,EAAI6iH,EAAK9iH,OAAQC,IAC/Bk8B,EAAMj7B,KAAK6iH,EAAajB,EAAK7iH,GAAI6T,EAAM6C,GAASL,QAKlD,OAAOisK,EAFM,IAAI95K,OAAO,MAAQ0zB,EAAM54B,KAAK,KAAO,IAAK2+K,EAAMvrK,IAEnC7C,GAgHjB8uK,CAAqC9/D,EAA8BhvG,EAAO6C,GArGrF,SAAyBmsG,EAAMhvG,EAAM6C,GACnC,OAAO0qK,EAAev/I,EAAMghF,EAAMnsG,GAAU7C,EAAM6C,GAuG3CksK,CAAsC//D,EAA8BhvG,EAAO6C,K,6BCxapF,6DAGA,SAASlS,EAAoB3E,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2E,EAAoB3E,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWiD,EAAoBnD,EAAGC,QAA3G,GAQ2DmD,CAA8B5E,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI2uK,EAAgC,SAAU7jK,GAC5CpB,EAAUilK,EAAkB7jK,GAE5B,IAAIC,EAASgE,EAAe4/J,GAE5B,SAASA,EAAiBj/K,GACxB,IAAI+G,EAYJ,OAVApH,EAAgB6B,KAAMy9K,IAEtBl4K,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZyuE,SAAS,GAEXtmF,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMiN,QAAUjN,EAAMiN,QAAQuH,KAAK7B,EAAuB3S,IAC1DA,EAAMkN,OAASlN,EAAMkN,OAAOsH,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EAyET,OAtEAzG,EAAa2+K,EAAkB,CAAC,CAC9B3/K,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfsL,OAAQ3f,KAAKxB,MAAMmhB,WAIxB,CACD7hB,IAAK,UACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,SACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZquE,SAAS,MAGZ,CACD/tF,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,IAAIO,EAAUP,EAAMM,MAEJ,KAAZC,GAA8B,KAAZA,IAEpB5U,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAGT,CACDnX,IAAK,gBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMyqG,SACNjpG,KAAKxB,MAAMyqG,SAASjpG,KAAKxB,MAAMmhB,QAElB9E,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,sBACVyC,KAAKxB,MAAM+6E,SAGjB,CACDz7E,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,uBAAwB,CACjD,cAAe+C,KAAKxB,MAAMsyF,SAC1B,aAAc9wF,KAAKxB,MAAMihB,SACzB,UAAWzf,KAAKod,MAAMyuE,SACrB7rF,KAAKxB,MAAMjB,WACVyhB,EAAUhf,KAAKy2G,gBACnB,OAAoB57F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,EACXwmB,KAAM,SACN,aAAc/jB,KAAKxB,MAAM+6E,MACzB,eAAgBv5E,KAAKxB,MAAMsyF,SAC3B,kBAAmB9wF,KAAKxB,MAAMkuF,eAC9B1sB,QAAShgE,KAAKggE,QACdvrD,UAAWzU,KAAKyU,UAChBqwD,SAAU9kE,KAAKxB,MAAMsmE,SACrBtyD,QAASxS,KAAKwS,QACdC,OAAQzS,KAAKyS,QACZuM,GAAUhf,KAAKxB,MAAMihB,UAAyB5E,IAAM7P,cAAc2O,IAAQ,WAI1E8jK,EA3F2B,CA4FlCziK,aAaF,SAAS6J,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASgB,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASkqB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IArB5Z0B,EAAgBitK,EAAkB,eAAgB,CAChD99J,OAAQ,KACR45D,MAAO,KACPh8E,UAAW,KACXuzF,SAAU,KACVhsB,SAAU,KACV4nB,eAAgB,KAChBuc,SAAU,KACVjpC,QAAS,OAgBX,IAAI09G,EAA4B,SAAU9jK,GACxCpB,EAAUklK,EAAc9jK,GAExB,IAAIC,EAASkL,EAAa24J,GAE1B,SAASA,EAAal/K,GACpB,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAM09K,IAEtBn4K,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBs2G,cAAgBvvG,EAAMuvG,cAAc/6F,KAAK7B,EAAuB3S,IAC/DA,EAgLT,OA7KAzG,EAAa4+K,EAAc,CAAC,CAC1B5/K,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIsG,EAAS3a,KAEb,IAAIA,KAAKxB,MAAMihB,WAAYzf,KAAK40G,iBAAiBvgG,EAAMsL,QAAvD,CAIA,IAAImxE,EAAW9wF,KAAKgzE,WAAW3+D,EAAMsL,QAErC,IAAImxE,GAAa9wF,KAAKxB,MAAMm/K,aAA5B,CAIA,IACInnD,EADArc,EAAcn6G,KAAKo6G,eAAe/lG,EAAMsL,QAG5C,GAAI3f,KAAKxB,MAAMwnH,SAAU,CACvB,IAAIsQ,EAAet2H,KAAKxB,MAAM1C,MAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAAS,GAC/D06H,EAAV1lC,EAAqBwlC,EAAat4H,QAAO,SAAUqY,GACrD,OAAQ1I,IAAY0B,OAAOgH,EAAK8jG,EAAax/F,EAAOnc,MAAM2Q,YACzC,GAAGpR,OAAOgvF,EAAmBupC,GAAe,CAACnc,SAElDqc,EAAV1lC,EAAqB,KAAqBqpB,EAG5Cn6G,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EAAMsB,cACrB7Z,MAAO06H,EACPrqC,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAO06H,SAKd,CACD14H,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAMg2G,YAAc7mG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAMg2G,aAAe70F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAM27G,YAAcxsG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM27G,aAAex6F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,mBACLhC,MAAO,SAA0B6jB,GAC/B,OAAI3f,KAAKxB,MAAM+8G,eACN5tG,IAAY5G,WAAW/G,KAAKxB,MAAM+8G,gBAAkBv7G,KAAKxB,MAAM+8G,eAAe57F,GAAUhS,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM+8G,mBAG1I57F,QAAiCla,IAAvBka,EAAM,WAA6BA,EAAM,WAE3D,CACD7hB,IAAK,aACLhC,MAAO,SAAoB6jB,GACzB,IAAImxE,GAAW,EACXqpB,EAAcn6G,KAAKo6G,eAAez6F,GAEtC,GAAI3f,KAAKxB,MAAMwnH,UACb,GAAIhmH,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/C,IACIyM,EADAM,EAAY+H,EAA2BzP,KAAKxB,MAAM1C,OAGtD,IACE,IAAK4L,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAIya,EAAMjP,EAAMtL,MAEhB,GAAI6R,IAAY0B,OAAOgH,EAAK8jG,EAAan6G,KAAKxB,MAAM2Q,SAAU,CAC5D2hF,GAAW,EACX,QAGJ,MAAO/0F,GACP2L,EAAUlI,EAAEzD,GAVd,QAYE2L,EAAUjI,WAIdqxF,EAAWnjF,IAAY0B,OAAOrP,KAAKxB,MAAM1C,MAAOq+G,EAAan6G,KAAKxB,MAAM2Q,SAG1E,OAAO2hF,IAER,CACDhzF,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAjIvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAiI/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,cACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAIA,KAAKxB,MAAM8S,SAAWtR,KAAKxB,MAAM8S,QAAQ3W,OACpCqF,KAAKxB,MAAM8S,QAAQ3T,KAAI,SAAUgiB,EAAQ08C,GAC9C,IAAIh8C,EAAaa,EAAO1iB,MAAMihB,UAAYyB,EAAO0zF,iBAAiBj1F,GAE9D60F,EAActzF,EAAOuzF,eAAe90F,GAEpCmlD,EAAWzkD,EAAa,KAAO,EACnC,OAAoBxF,IAAM7P,cAAcyyK,EAAkB,CACxD3/K,IAAK,GAAGC,OAAOy2G,EAAa,KAAKz2G,OAAOs+D,GACxCkd,MAAOi7B,EACPj3G,UAAWoiB,EAAOpiB,UAClBoiB,OAAQA,EACRqgD,QAAS9+C,EAAO4zF,cAChB7L,SAAU/nF,EAAO1iB,MAAMq2G,aACvB/jB,SAAU5vE,EAAO8xD,WAAWrzD,GAC5BmlD,SAAUA,EACVrlD,SAAUY,EACVqsE,eAAgBxrE,EAAO1iB,MAAMkuF,oBAK5B,OAER,CACD5uF,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETzC,EAAYN,YAAW,yCAA0C+C,KAAKxB,MAAMjB,WAC5E24G,EAAQl2G,KAAKu2G,cACjB,OAAoB17F,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfhJ,IAAK,SAAa7a,GAChB,OAAO0hB,EAAOpf,QAAUtC,GAE1B1C,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,SACLmyF,OAIAwnE,EA5LuB,CA6L9B1iK,aAEFxK,EAAgBktK,EAAc,eAAgB,CAC5C55J,GAAI,KACJhoB,MAAO,KACPwV,QAAS,KACTkjG,YAAa,KACb2F,YAAa,KACboB,eAAgB,KAChBz2C,SAAU,KACVkhD,UAAU,EACV23D,cAAc,EACdl+J,UAAU,EACVrf,MAAO,KACP7C,UAAW,KACX4R,QAAS,KACT4pE,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBmoB,aAAc,KACdtiG,SAAU,Q,6BCpdZ,uGAIA,SAAS7C,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+nB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI8uK,EAAqC,SAAUhkK,GACjDpB,EAAUolK,EAAuBhkK,GAEjC,IAAIC,EAASkL,EAAa64J,GAE1B,SAASA,EAAsBp/K,GAC7B,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAM49K,IAEtBr4K,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBq/K,aAAet4K,EAAMs4K,aAAa9jK,KAAK7B,EAAuB3S,IAC7DA,EAgDT,OA7CAzG,EAAa8+K,EAAuB,CAAC,CACnC9/K,IAAK,eACLhC,MAAO,SAAsBuY,EAAOypK,GAClC99K,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOgiL,IAETzpK,EAAMY,mBAEP,CACDnX,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,uDAAwD+C,KAAKxB,MAAMjB,WAC1FwgL,EAAkB9gL,YAAW,8BAA+B,CAC9D,cAAqC,SAAtB+C,KAAKxB,MAAMw+I,SAExBghC,EAAkB/gL,YAAW,8BAA+B,CAC9D,cAAqC,SAAtB+C,KAAKxB,MAAMw+I,SAE5B,OAAoBniI,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACf1jB,MAAOJ,KAAKxB,MAAM4B,MAClB7C,UAAWA,GACGsd,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAWwgL,EACX/9G,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOkjK,aAAaxpK,EAAO,UAEtBwG,IAAM7P,cAAc,IAAK,CACvCzN,UAAW,eACIsd,IAAM7P,cAAc2O,IAAQ,OAAqBkB,IAAM7P,cAAc,SAAU,CAC9FxN,KAAM,SACND,UAAWygL,EACXh+G,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOkjK,aAAaxpK,EAAO,UAEtBwG,IAAM7P,cAAc,IAAK,CACvCzN,UAAW,mBACIsd,IAAM7P,cAAc2O,IAAQ,YAI1CikK,EA5DgC,CA6DvC5iK,aAEFxK,EAAgBotK,EAAuB,eAAgB,CACrD95J,GAAI,KACJ1jB,MAAO,KACP7C,UAAW,KACXy/I,OAAQ,KACRzqI,SAAU,OAGZ,IAAI0rK,EAA4B,SAAUx4D,GACxCjtG,EAAUylK,EAAcx4D,GAExB,IAAIC,EAAU3gG,EAAak5J,GAE3B,SAASA,IAGP,OAFA9/K,EAAgB6B,KAAMi+K,GAEfv4D,EAAQp8G,MAAMtJ,KAAM7C,WAU7B,OAPA2B,EAAam/K,EAAc,CAAC,CAC1BngL,IAAK,SACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMyqG,SAASjpG,KAAKxB,MAAMuL,KAAM/J,KAAKxB,MAAMw+I,YAIpDihC,EAlBuB,CAmB9BjjK,aAEFxK,EAAgBytK,EAAc,eAAgB,CAC5Ch1E,SAAU,KACVl/F,KAAM,KACNizI,OAAQ,OAGV,IAAIkhC,EAAwB,SAAUC,GACpC3lK,EAAU0lK,EAAUC,GAEpB,IAAIC,EAAUr5J,EAAam5J,GAE3B,SAASA,EAAS1/K,GAChB,IAAI0iB,EAeJ,OAbA/iB,EAAgB6B,KAAMk+K,IAEtBh9J,EAASk9J,EAAQ1iL,KAAKsE,KAAMxB,IAEhBA,MAAMynG,SAChB/kF,EAAO9D,MAAQ,CACbzK,MAAOuO,EAAO1iB,MAAMmU,MACpBi1D,KAAM1mD,EAAO1iB,MAAMopE,OAIvB1mD,EAAOm9J,YAAa,EACpBn9J,EAAOklF,aAAellF,EAAOklF,aAAarsF,KAAK7B,EAAuBgJ,IAC/DA,EAgOT,OA7NApiB,EAAao/K,EAAU,CAAC,CACtBpgL,IAAK,mBACLhC,MAAO,SAA0BA,GAC/B,OAAOkE,KAAKxB,MAAM2Q,QAAUxB,IAAYI,iBAAiBjS,EAAOkE,KAAKxB,MAAM2Q,SAAW,OAEvF,CACDrR,IAAK,kBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM0vF,aAAqBluF,KAAKxB,MAAM0vF,aAAyBluF,KAAKxB,MAAM1C,MAAQkE,KAAKxB,MAAM1C,MAAMnB,OAAS,IAEtH,CACDmD,IAAK,kBACLhC,MAAO,SAAyBoK,GAC9B,IAAI3I,EAAYN,YAAW,eAAiBiJ,EAAUlG,KAAKxB,MAAMsqG,oBAC7Dn2F,EAAQ3S,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMmU,MAAQ3S,KAAKod,MAAMzK,MAC1Di1D,EAAO5nE,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMopE,KAAO5nE,KAAKod,MAAMwqD,KACxDsmB,EAAeluF,KAAK+nG,kBACxB,OAAoBltF,IAAM7P,cAAc+9F,IAAW,CACjDp2F,MAAOA,EACPi1D,KAAMA,EACNohC,aAAchpG,KAAKxB,MAAMwqG,aACzBzrG,UAAWA,EACX6oG,aAAcpmG,KAAKomG,aACnB6C,SAAUjpG,KAAKxB,MAAM0qG,kBACrBhb,aAAcA,EACdib,mBAAoBnpG,KAAKxB,MAAM2qG,mBAC/BC,0BAA2BppG,KAAKxB,MAAM4qG,0BACtCC,YAAarpG,KAAKxB,MAAM8qG,cACxBC,aAAcvpG,KAAKxB,MAAMgrG,eACzBC,WAAYzpG,KAAKxB,MAAMkrG,oBACvBC,iBAAkB3pG,KAAKxB,MAAMorG,8BAGhC,CACD9rG,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMynG,OACbjmG,KAAKxB,MAAMynG,OAAO5xF,GAElBrU,KAAKwd,SAAS,CACZ7K,MAAO0B,EAAM1B,MACbi1D,KAAMvzD,EAAMuzD,SAIjB,CACD9pE,IAAK,UACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAM1C,OAAqC,IAA5BkE,KAAKxB,MAAM1C,MAAMnB,SAE9C,CACDmD,IAAK,OACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,GAAIA,KAAKxB,MAAM1C,MAAO,CACpB,IAAIA,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAW1C,OATAA,EAAMsjC,MAAK,SAAUm+D,EAAOC,GAC1B,IAAIkN,EAAS/8F,IAAYI,iBAAiBwvF,EAAO57E,EAAOnjB,MAAMs8E,WAC1D6vB,EAASh9F,IAAYI,iBAAiByvF,EAAO77E,EAAOnjB,MAAMs8E,WAC1DhsE,EAAS,KAIb,OAHsCA,EAAxB,MAAV47F,GAA4B,MAAVC,GAA0B,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAA6B,kBAAXD,GAAyC,kBAAXC,EAA8BD,EAAOthF,cAAcuhF,OAAQllG,EAAW,CAChRmlG,SAAS,IACMF,EAASC,GAAU,EAAID,EAASC,EAAS,EAAI,EACvDhpF,EAAOnjB,MAAM4kG,UAAYt0F,KAE3BhT,EAEP,OAAO,OAGV,CACDgC,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMq6E,QAAS,CACtB,IAAIsY,EAAgBl0F,YAAW,kCAAmC+C,KAAKxB,MAAM26E,aAC7E,OAAoBt+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,kDACGsd,IAAM7P,cAAc,IAAK,CACvCzN,UAAW4zF,KAIf,OAAO,OAER,CACDrzF,IAAK,qBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMw8F,WAA+C,WAAjCh7F,KAAKxB,MAAMk0G,mBAAmE,SAAjC1yG,KAAKxB,MAAMk0G,kBAI9E,KAHE1yG,KAAK2yG,gBAAgB,SAK/B,CACD70G,IAAK,wBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMw8F,WAA+C,QAAjCh7F,KAAKxB,MAAMk0G,mBAAgE,SAAjC1yG,KAAKxB,MAAMk0G,kBAI3E,KAHE1yG,KAAK2yG,gBAAgB,YAK/B,CACD70G,IAAK,qBACLhC,MAAO,WACL,OAAKkE,KAAKxB,MAAMq6E,QAMT,KALeh+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,2CACVyC,KAAKxB,MAAMyiG,gBAKjB,CACDnjG,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMw8E,OACOngE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACVyC,KAAKxB,MAAMw8E,QAGT,OAER,CACDl9E,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM08E,OACOrgE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACV,IAAKyC,KAAKxB,MAAM08E,QAGd,OAER,CACDp9E,IAAK,cACLhC,MAAO,SAAqBA,GAC1B,IAAIwmB,EAAStiB,KAEb,GAAIlE,GAASA,EAAMnB,OAAQ,CACzB,GAAIqF,KAAKxB,MAAMw8F,UAAW,CAOxB,IANA,IAAIpzB,EAAO5nE,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMopE,KAAO5nE,KAAKod,MAAMwqD,KACxDj1D,EAAQ3S,KAAKxB,MAAMu8F,KAAO,EAAI/6F,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMmU,MAAQ3S,KAAKod,MAAMzK,MAChFu7E,EAAeluF,KAAK+nG,kBACpBv/F,EAAOpD,KAAKs6B,IAAIkoC,EAAOj1D,EAAOu7E,GAC9BgoB,EAAQ,GAEHt7G,EAAI+X,EAAO/X,EAAI4N,EAAM5N,IAAK,CACjC,IAAIyb,EAAMva,EAAMlB,GAChByb,GAAO6/F,EAAMr6G,KAAmBgf,IAAM7P,cAAcizK,EAAc,CAChEngL,IAAKkC,KAAKs+K,iBAAiBxiL,IAAUlB,EACrCquG,SAAUjpG,KAAKxB,MAAMq2G,aACrBmoC,OAAQh9I,KAAKxB,MAAMw+I,OACnBjzI,KAAMsM,KAIV,OAAO6/F,EAEP,OAAOp6G,EAAM6B,KAAI,SAAUoM,EAAMsyD,GAC/B,OAAoBxhD,IAAM7P,cAAcizK,EAAc,CACpDngL,IAAKwkB,EAAOg8J,iBAAiBv0K,IAASsyD,EACtC4sC,SAAU3mF,EAAO9jB,MAAMq2G,aACvBmoC,OAAQ16H,EAAO9jB,MAAMw+I,OACrBjzI,KAAMA,OAKZ,OAAO/J,KAAKu1G,uBAGf,CACDz3G,IAAK,gBACLhC,MAAO,SAAuBA,GAC5B,IAAIo6G,EAAQl2G,KAAKu2G,YAAYz6G,GAC7B,OAAoB+e,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,sBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,wCACV24G,MAEJ,CACDp4G,IAAK,cACLhC,MAAO,WACL,IAAI6S,EAAO3O,KAAKxB,MAAM1C,MAQtB,OANI6S,GAAQA,EAAKhU,QACXqF,KAAKxB,MAAMs8E,YACbnsE,EAAO3O,KAAKo/B,QAITzwB,IAER,CACD7Q,IAAK,SACLhC,MAAO,WACL,IAAIA,EAAQkE,KAAKgoG,cACbzqG,EAAYN,YAAW,yBAA0B,CACnD,kBAAyC,SAAtB+C,KAAKxB,MAAMw+I,OAC9B,kBAAyC,SAAtBh9I,KAAKxB,MAAMw+I,OAC9B,qBAAsBh9I,KAAKxB,MAAMq6E,SAChC74E,KAAKxB,MAAMjB,WACV40G,EAASnyG,KAAKmzG,eACdorE,EAAev+K,KAAKw+K,qBACpBC,EAAkBz+K,KAAK0+K,wBACvB1jG,EAASh7E,KAAKi1I,eACd/5D,EAASl7E,KAAK0uI,eACd1vH,EAAUhf,KAAKy2G,cAAc36G,GACjC,OAAoB+e,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACf1jB,MAAOJ,KAAKxB,MAAM4B,MAClB7C,UAAWA,GACV40G,EAAQn3B,EAAQujG,EAAcv/J,EAASy/J,EAAiBvjG,OAIxDgjG,EArPmB,CAsP1BljK,aAEFxK,EAAgB0tK,EAAU,eAAgB,CACxCp6J,GAAI,KACJk3D,OAAQ,KACRE,OAAQ,KACRp/E,MAAO,KACPkhJ,OAAQ,OACR7tI,QAAS,KACTy4D,KAAM,KACNj1D,MAAO,EACPu7E,aAAc,KACd8M,WAAW,EACX0X,kBAAmB,SACnBhJ,qBAAqB,EACrBZ,mBAAoB,KACpBI,kBAAmB,qFACnBI,cAAe,KACfE,eAAgB,KAChBI,0BAA2B,KAC3BZ,aAAc,EACdG,mBAAoB,KACpBC,0BAA2B,kCAC3BnI,aAAc,mBACdnmB,UAAW,KACXsoB,UAAW,KACXhjG,MAAO,KACP7C,UAAW,KACXw9F,MAAM,EACNliB,SAAS,EACTM,YAAa,gBACb07B,aAAc,KACd5O,OAAQ,Q,6BCtgBV,6DASA,SAAS3nG,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B6iL,EAA4B,SAAU/kK,IAhE1C,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUmmK,EAAc/kK,GAExB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa45J,GAE1B,SAASA,EAAangL,GACpB,IAAI+G,EAgBJ,OA7HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAM2+K,IAEtBp5K,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAS,GAEX/X,EAAMyoJ,aAAezoJ,EAAMyoJ,aAAaj0I,KAAK7B,EAAuB3S,IACpEA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAMqrI,kBAAoBh6H,cAC1BrR,EAAMqyG,WAA0B/8F,IAAMmL,YAC/BzgB,EAmTT,OAhaoBlH,EAgHPsgL,GAhHoB5/K,EAgHN,CAAC,CAC1BjB,IAAK,4BACLhC,MAAO,WACL,IAAI6e,EAAS3a,MAERA,KAAKk7G,uBAAyBl7G,KAAKxB,MAAM6yJ,cAC5CrxJ,KAAKk7G,sBAAwB,SAAU7mG,IAChCsG,EAAOs0I,gBAAkBt0I,EAAOu4E,iBAAiB7+E,EAAM9V,SAC1Doc,EAAOwE,OAGTxE,EAAOs0I,gBAAiB,GAG1BvuJ,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAKzB,QAAQ,WAC9D2iB,EAAO9D,MAAME,SACf4D,EAAO/B,WAKbnf,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChBz5F,EAAOvE,MAAME,UAAYvd,IAAWyiB,aACtCb,EAAOxC,QAIXve,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/B,OAAOyB,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,WAAa/O,KAAK43G,WAAW7oG,QAAQwkF,WAAWh1F,IAAWyB,KAAK43G,WAAW7oG,QAAQ1L,SAAS9E,MAEvI,CACDT,IAAK,mBACLhC,MAAO,SAA0BuY,EAAO9V,GACtC,OAAsB,MAAfyB,KAAKzB,QAAkByB,KAAKzB,UAAYA,GAAU8V,EAAMoG,eAAiBpG,EAAM9V,UAEvF,CACDT,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAKmf,OACL9K,EAAMY,mBAEP,CACDnX,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAKivJ,gBAAiB,EACtB7qI,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAKzB,WAGhB,CACDT,IAAK,iBACLhC,MAAO,WACLkE,KAAKivJ,gBAAiB,IAEvB,CACDnxJ,IAAK,SACLhC,MAAO,SAAgBuY,EAAO9V,GAC5B,IAAI+jB,EAAStiB,KAETA,KAAKod,MAAME,SACbtd,KAAKmf,OAEDnf,KAAK4+K,iBAAiBvqK,EAAO9V,KAC/ByB,KAAKzB,OAASA,GAAU8V,EAAMoG,eAAiBpG,EAAM9V,OACrDsK,YAAW,WACTyZ,EAAOpD,KAAK7K,EAAOiO,EAAO/jB,UACzB,OAGLyB,KAAKkf,KAAK7K,EAAO9V,KAGpB,CACDT,IAAK,OACLhC,MAAO,SAAcuY,EAAO9V,GAC1B,IAAIkkB,EAASziB,KAEbA,KAAKzB,OAASA,GAAU8V,EAAMoG,eAAiBpG,EAAM9V,OAEjDyB,KAAKod,MAAME,QACbtd,KAAK0gB,QAEL1gB,KAAKwd,SAAS,CACZF,SAAS,IACR,WACDmF,EAAOwwE,qBAAuB,SAAUzzF,GACjCijB,EAAOywE,iBAAiB1zF,EAAEjB,UAC7BkkB,EAAOwsI,gBAAiB,IAI5B7qI,IAAeG,GAAG,gBAAiB9B,EAAOwwE,2BAI/C,CACDn1F,IAAK,OACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAEbA,KAAKwd,SAAS,CACZF,SAAS,IACR,WACD8G,IAAeK,IAAI,gBAAiBnB,EAAO2vE,sBAC3C3vE,EAAO2vE,qBAAuB,UAGjC,CACDn1F,IAAK,UACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAK43G,WAAW7oG,QAAQolF,aAAan0F,KAAK4wI,kBAAmB,IAC7D5wI,KAAK0gB,UAEN,CACD5iB,IAAK,YACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBACL16G,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,SACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,QACLhC,MAAO,WACL,GAAIkE,KAAKzB,OAAQ,CACfwB,IAAWqE,iBAAiBpE,KAAK43G,WAAW7oG,QAAS/O,KAAKzB,QAC1D,IAAIwvG,EAAkBhuG,IAAWsa,UAAUra,KAAK43G,WAAW7oG,SACvDnK,EAAe7E,IAAWsa,UAAUra,KAAKzB,QACzCsgL,EAAY,EAEZ9wE,EAAgBzrG,KAAOsC,EAAatC,OACtCu8K,EAAYj6K,EAAatC,KAAOyrG,EAAgBzrG,MAGlDtC,KAAK43G,WAAW7oG,QAAQ3O,MAAM0+K,YAAY,qBAAsB,GAAG/gL,OAAO8gL,EAAW,OAEjF9wE,EAAgB3rG,IAAMwC,EAAaxC,KACrCrC,IAAWya,SAASxa,KAAK43G,WAAW7oG,QAAS,6BAIlD,CACDjR,IAAK,cACLhC,MAAO,WACL,IAAKkE,KAAKk0I,aAAc,CACtBl0I,KAAKk0I,aAAexzI,SAASsK,cAAc,SAC3CtK,SAASyzI,KAAK3qI,YAAYxJ,KAAKk0I,cAC/B,IAAIrnI,EAAY,GAEhB,IAAK,IAAIunI,KAAcp0I,KAAKxB,MAAM61I,YAChCxnI,GAAa,uDAAuD9O,OAAOq2I,EAAY,iDAAiDr2I,OAAOiC,KAAK4wI,kBAAmB,4CAA4C7yI,OAAOiC,KAAKxB,MAAM61I,YAAYD,GAAa,oFAGhQp0I,KAAKk0I,aAAarnI,UAAYA,KAGjC,CACD/O,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAM61I,aACbr0I,KAAKs0I,gBAGR,CACDx2I,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAKk0I,eACPxzI,SAASyzI,KAAKxqI,YAAY3J,KAAKk0I,cAC/Bl0I,KAAKk0I,aAAe,MAGlBl0I,KAAKizF,uBACP7uE,IAAeK,IAAI,gBAAiBzkB,KAAKizF,sBACzCjzF,KAAKizF,qBAAuB,MAG9Bn8E,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,kBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMkzJ,cACO72I,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAW,8BACXyiE,QAAShgE,KAAKguJ,aACd,aAAchuJ,KAAKxB,MAAMmzJ,gBACX92I,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,0CACIsd,IAAM7P,cAAc2O,IAAQ,OAGxC,OAER,CACD7b,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,6BAA8B+C,KAAKxB,MAAMjB,WAChE4yH,EAAYnwH,KAAKowH,kBACrB,OAAoBv1G,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAK43G,WACd36G,WAAY,iBACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAK43G,WACV9zF,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKs3G,cACAz8F,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,yBACXyiE,QAAShgE,KAAK++K,eACdjlK,YAAa9Z,KAAK++K,gBACjB/+K,KAAKxB,MAAMgE,UAAW2tH,MAE1B,CACDryH,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,gBA1ZX1F,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA8ZzC2/K,EAzUuB,CA0U9B3jK,aA5ViClf,EA8VW,CAC5CgoB,GAAI,KACJutI,aAAa,EACbK,eAAe,EACftxJ,MAAO,KACP7C,UAAW,KACXyG,SAAU,KACVqwI,YAAa,KACbsd,eAAgB,QAChB/6C,kBAAmB,KACnB71F,OAAQ,KACRU,OAAQ,OAzWoB3jB,EA8VA,kBA9VLd,EA8VT2hL,GA5VZviL,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/BkjL,EAAoB,SAAUplK,IAhElC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUwmK,EAAMplK,GAEhB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAai6J,GAE1B,SAASA,EAAKxgL,GACZ,IAAI+G,EAcJ,OA3HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAMg/K,IAEtBz5K,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAU9e,EAAMygL,OAElB15K,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAM25K,QAAuBrkK,IAAMmL,YAC5BzgB,EA6WT,OAxdoBlH,EA8GP2gL,GA9GoBjgL,EA8Gd,CAAC,CAClBjB,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMygL,OACb76J,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAKzB,WAIlB,CACDT,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GAC7BA,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAIN/J,KAAKxB,MAAMygL,OACbj/K,KAAKmf,KAAK9K,MAGb,CACDvW,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOtK,GACnC,IAAIilJ,EAAW36I,EAAMoG,cAAcR,cAEnC,OAAQ5F,EAAMM,OAEZ,KAAK,GACH,IAAI+2I,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASlpJ,SAAS,GAAG4pF,QAGvB/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAI02I,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASnpJ,SAAS,GAAG4pF,QAGvB/3E,EAAMY,oBAIX,CACDnX,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAiB3rJ,IAAW6uF,SAAS88D,EAAU,gBAAkB3rJ,IAAW6uF,SAAS88D,EAAU,cAAgB1rJ,KAAKsrJ,aAAaI,GAAYA,EAAqB,OAEvK,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,gBAAkB5rJ,IAAW6uF,SAAS+8D,EAAU,cAAgB3rJ,KAAKwrJ,aAAaG,GAAYA,EAAqB,OAEvK,CACD7tJ,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKxB,MAAMygL,QACTj/K,KAAKod,MAAME,QAAStd,KAAKmf,KAAK9K,GAAYrU,KAAKkf,KAAK7K,MAG3D,CACDvW,IAAK,OACLhC,MAAO,SAAcuY,GACnB,IAAIsG,EAAS3a,KAEbA,KAAKzB,OAAS8V,EAAMoG,cACpB,IAAI4hJ,EAAehoJ,EACnBrU,KAAKwd,SAAS,CACZF,SAAS,IACR,WACG3C,EAAOnc,MAAMuiB,QACfpG,EAAOnc,MAAMuiB,OAAOs7I,QAIzB,CACDv+J,IAAK,OACLhC,MAAO,SAAcuY,GACnB,IAAI6M,EAASlhB,KAETq8J,EAAehoJ,EACnBrU,KAAKwd,SAAS,CACZF,SAAS,IACR,WACG4D,EAAO1iB,MAAMijB,QACfP,EAAO1iB,MAAMijB,OAAO46I,QAIzB,CACDv+J,IAAK,UACLhC,MAAO,WACLgb,IAAYW,IAAI,OAAQzX,KAAKk/K,QAAQnwK,QAAS/O,KAAKxB,MAAM4Y,YACzDrX,IAAWqE,iBAAiBpE,KAAKk/K,QAAQnwK,QAAS/O,KAAKzB,UAExD,CACDT,IAAK,YACLhC,MAAO,WACLkE,KAAKm/K,wBACLn/K,KAAKihB,uBAEN,CACDnjB,IAAK,SACLhC,MAAO,WACLkE,KAAKzB,OAAS,KACdyB,KAAKo/K,0BACLp/K,KAAK0N,yBAEN,CACD5P,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKk/K,QAAQnwK,WAEhC,CACDjR,IAAK,wBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsN,EAAOvE,MAAME,SAAWqE,EAAOuxE,iBAAiB7+E,IAClDsN,EAAOxC,KAAK9K,IAIhB3T,SAAS8M,iBAAiB,QAASxN,KAAKk7G,wBAGrCl7G,KAAKuiB,yBACRviB,KAAKuiB,uBAAyB,SAAUlO,GAClCsN,EAAOvE,MAAME,UAAYvd,IAAWyiB,aACtCb,EAAOxC,KAAK9K,IAIhBzT,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,2BAG1C,CACDzkB,IAAK,0BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,MAG3Bl7G,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,qBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAKzB,QAAQ,SAAU8V,GACxEiO,EAAOlF,MAAME,SACfgF,EAAOnD,KAAK9K,OAKlBrU,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAKk/K,SAAWl/K,KAAKk/K,QAAQnwK,WAAa/O,KAAKk/K,QAAQnwK,QAAQwkF,WAAWl/E,EAAM9V,SAAWyB,KAAKk/K,QAAQnwK,QAAQ1L,SAASgR,EAAM9V,WAEvI,CACDT,IAAK,uBACLhC,MAAO,WACLkE,KAAKo/K,0BAEDp/K,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGvB1K,IAAYe,MAAM7X,KAAKk/K,QAAQnwK,WAEhC,CACDjR,IAAK,gBACLhC,MAAO,SAAuBujL,EAAShjH,GACrC,IAAI55C,EAASziB,KAETzC,EAAYN,YAAW,mBAAoB,CAC7C,aAAcoiL,EAAQ5/J,UACrB4/J,EAAQ9hL,WACP24G,EAAQmpE,EAAQnpE,MAAMv4G,KAAI,SAAUoM,EAAMsyD,GAC5C,OAAO55C,EAAOq4H,eAAe/wI,EAAMsyD,MAErC,OAAoBxhD,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKuhL,EAAQ9lG,MAAQ,IAAMld,GACbxhD,IAAM7P,cAAc,KAAM,CACxCzN,UAAWA,EACX6C,MAAOi/K,EAAQj/K,MACf2jB,KAAM,eACN,gBAAiBs7J,EAAQ5/J,UACxB4/J,EAAQ9lG,OAAQ28B,KAEpB,CACDp4G,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,aAAeu+D,EACpB9+D,UAAW,mBACXwmB,KAAM,gBAGT,CACDjmB,IAAK,iBACLhC,MAAO,SAAwBiO,EAAMsyD,GACnC,IAAI/4C,EAAStjB,KAETzC,EAAYN,YAAW,aAAc8M,EAAKxM,WAC1C+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAc8M,EAAK0V,WAEjB0xE,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnDA,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJzU,EAAW/6D,EAAK0V,SAAW,KAAO,EAClCT,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW+hL,EACXv7J,KAAM,WACNxlB,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAOiP,EAAOq3H,YAAYtmI,EAAOtK,IAEnC0K,UAAW,SAAmBJ,GAC5B,OAAOiP,EAAOi8J,cAAclrK,EAAOtK,IAErC+6D,SAAUA,EACV,gBAAiB/6D,EAAK0V,UACrBy5D,EAAMK,GAET,GAAIxvE,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOiP,EAAOq3H,YAAYtmI,EAAOtK,IAEnC0K,UAAW,SAAmBJ,GAC5B,OAAOiP,EAAOi8J,cAAclrK,EAAOtK,IAErCxM,UAAW+hL,EACXx6G,SAAUA,EACV+1E,eAAgB,kBAChB1pD,cAAeA,EACf5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZ2jB,KAAM,QACL/E,KAEJ,CACDlhB,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,GAC/B,OAAItyD,EAAK0pB,UACAzzB,KAAKotI,gBAAgB/wE,GAExBtyD,EAAKmsG,MAAcl2G,KAAKw/K,cAAcz1K,EAAMsyD,GAAmBr8D,KAAK86I,eAAe/wI,EAAMsyD,KAGhG,CACDv+D,IAAK,aACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAEb,OAAOA,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAO34C,EAAO4xF,WAAWvrG,EAAMsyD,QAGlC,CACDv+D,IAAK,gBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM4hE,MAAO,CACpB,IAAI7iE,EAAYN,YAAW,qBAAsB+C,KAAKxB,MAAMjB,UAAW,CACrE,iBAAkByC,KAAKxB,MAAMygL,QAE3BQ,EAAYz/K,KAAK0/K,aACrB,OAAoB7kK,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKk/K,QACdjiL,WAAY,sBACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKk/K,QACVp7J,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKs3G,cACAz8F,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,sBACXwmB,KAAM,QACL07J,KAGL,OAAO,OAER,CACD3hL,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAOhkB,KAAKxB,MAAMygL,MAAqBpkK,IAAM7P,cAAcmS,IAAQ,CACjE5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,WAClBzB,OAndOjE,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAsdzCggL,EAjYe,CAkYtBhkK,aApZiClf,EAsZG,CACpCgoB,GAAI,KACJs8C,MAAO,KACP6+G,OAAO,EACP7+K,MAAO,KACP7C,UAAW,KACX+Z,YAAY,EACZF,WAAY,EACZpT,SAAU,KACV4yG,kBAAmB,KACnB71F,OAAQ,KACRU,OAAQ,OAjaoB3jB,EAsZR,kBAtZGd,EAsZTgiL,GApZZ5iL,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B6jL,EAAwB,SAAU/lK,IAhEtC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUmnK,EAAU/lK,GAEpB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa46J,GAE1B,SAASA,EAASnhL,GAChB,IAAI+G,EASJ,OAtHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAM2/K,IAEtBp6K,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZwiK,WAAY,MAEdr6K,EAAMs6K,YAAct6K,EAAMs6K,YAAY9lK,KAAK7B,EAAuB3S,IAC3DA,EAocT,OA1iBoBlH,EAyGPshL,GAzGoB5gL,EAyGV,CAAC,CACtBjB,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GAC7BA,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAIV/J,KAAKwd,SAAS,CACZoiK,WAAY,UAGf,CACD9hL,IAAK,uBACLhC,MAAO,SAA8BuY,EAAOtK,GACtCA,EAAK0V,SACPpL,EAAMY,iBAIJjV,KAAKod,MAAMwiK,YACb5/K,KAAKwd,SAAS,CACZoiK,WAAY71K,MAIjB,CACDjM,IAAK,kBACLhC,MAAO,SAAyBuY,EAAOtK,GACjCA,EAAK0V,WAKJ1V,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAM/J,KAAKxB,MAAMuL,OAIjBA,EAAKmsG,QACHl2G,KAAKod,MAAMwiK,YAAc5/K,KAAKod,MAAMwiK,aAAe71K,EACrD/J,KAAKwd,SAAS,CACZoiK,WAAY,OAGd5/K,KAAKwd,SAAS,CACZoiK,WAAY71K,MAtBhBsK,EAAMY,mBA6BT,CACDnX,IAAK,oBACLhC,MAAO,SAA2BuY,EAAOtK,GACvC,IAAIilJ,EAAW36I,EAAMoG,cAAcR,cAEnC,OAAQ5F,EAAMM,OAEZ,KAAK,GACC3U,KAAK06C,eAAgB16C,KAAK8/K,WAAW/1K,GAAW/J,KAAK+/K,mBAAmB/wB,GAC5E36I,EAAMY,iBACN,MAGF,KAAK,GACCjV,KAAK26C,aAAc36C,KAAKggL,mBAAmBhxB,GAAmBjlJ,EAAKmsG,OAASnsG,IAAS/J,KAAKod,MAAMwiK,YAAY5/K,KAAKigL,eACrH5rK,EAAMY,iBACN,MAGF,KAAK,GACCjV,KAAK06C,eAAgB16C,KAAK+/K,mBAAmB/wB,GAAehvJ,KAAK8/K,WAAW/1K,GAChFsK,EAAMY,iBACN,MAGF,KAAK,GACCjV,KAAK06C,eAAgB16C,KAAKggL,mBAAmBhxB,GAAmBjlJ,EAAKmsG,OAASnsG,IAAS/J,KAAKod,MAAMwiK,YAAY5/K,KAAKigL,eACvH5rK,EAAMY,oBAIX,CACDnX,IAAK,aACLhC,MAAO,SAAoBiO,GACrBA,EAAKmsG,OACPl2G,KAAKwd,SAAS,CACZoiK,WAAY71K,MAIjB,CACDjM,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B/J,KAAKwd,SAAS,CACZoiK,WAAY,SAGf,CACD9hL,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAiB3rJ,IAAW6uF,SAAS88D,EAAU,gBAAkB3rJ,IAAW6uF,SAAS88D,EAAU,cAAgB1rJ,KAAKsrJ,aAAaI,GAAYA,EAAqB,OAEvK,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,gBAAkB5rJ,IAAW6uF,SAAS+8D,EAAU,cAAgB3rJ,KAAKwrJ,aAAaG,GAAYA,EAAqB,OAEvK,CACD7tJ,IAAK,qBACLhC,MAAO,SAA4BkzJ,GACjC,IAAItD,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASlpJ,SAAS,GAAG4pF,UAGxB,CACDtuF,IAAK,qBACLhC,MAAO,SAA4BkzJ,GACjC,IAAIrD,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASnpJ,SAAS,GAAG4pF,UAGxB,CACDtuF,IAAK,eACLhC,MAAO,WACL,MAAkC,eAA3BkE,KAAKxB,MAAMw4I,cAEnB,CACDl5I,IAAK,aACLhC,MAAO,WACL,MAAkC,aAA3BkE,KAAKxB,MAAMw4I,cAEnB,CACDl5I,IAAK,qBACLhC,MAAO,SAA4BokL,GACjC,IACIC,EAEJ,OAHaD,EAAShqE,MAAQgqE,EAAShqE,MAAMv7G,OAAS,GAIpD,KAAK,EACHwlL,EAAc,mBACd,MAEF,KAAK,EACHA,EAAc,mBACd,MAEF,KAAK,EACHA,EAAc,mBACd,MAEF,KAAK,EACHA,EAAc,mBACd,MAEF,QACEA,EAAc,oBAIlB,OAAOA,IAER,CACDriL,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsG,EAAO7Q,YAAc6Q,EAAO7Q,UAAUzG,SAASgR,EAAM9V,SACvDoc,EAAO6C,SAAS,CACdoiK,WAAY,QAKlBl/K,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,aAAeu+D,EACpB9+D,UAAW,mBACXwmB,KAAM,gBAGT,CACDjmB,IAAK,oBACLhC,MAAO,SAA2BiO,GAChC,GAAIA,EAAKmsG,MAAO,CACd,IAAI34G,EAAYN,YAAW,oBAAqB,CAC9C,gBAAiB+C,KAAK06C,eACtB,iBAAkB16C,KAAK26C,eAEzB,OAAoB9/B,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWA,IAIf,OAAO,OAER,CACDO,IAAK,oBACLhC,MAAO,SAA2BiO,EAAMsyD,GACtC,IAAIn7C,EAASlhB,KAEb,GAAI+J,EAAK0pB,UACP,OAAOzzB,KAAKotI,gBAAgB/wE,GAE5B,IAAI9+D,EAAYN,YAAW,aAAc8M,EAAKxM,WAC1C+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAc8M,EAAK0V,WAEjB0xE,EAAgBl0F,YAAW8M,EAAKmvE,KAAM,mBACtCA,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJv6D,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW+hL,EACX/gL,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAO6M,EAAO2+J,YAAYxrK,EAAOtK,IAEnCga,KAAM,WACN,gBAAiBha,EAAK0V,UACrBy5D,EAAMK,EAAoB1+D,IAAM7P,cAAc2O,IAAQ,OAEzD,GAAI5P,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAO6M,EAAO2+J,YAAYxrK,EAAOtK,IAEnCxM,UAAW+hL,EACXzkC,eAAgB,kBAChB1pD,cAAeA,EACf5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZ2jB,KAAM,QACL/E,KAGN,CACDlhB,IAAK,gBACLhC,MAAO,SAAuBujL,GAC5B,IAAI19J,EAAS3hB,KAETzC,EAAYN,YAAW,4BAA6B,CACtD,aAAcoiL,EAAQ5/J,UACrB4/J,EAAQ9hL,WACP24G,EAAQmpE,EAAQnpE,MAAMv4G,KAAI,SAAUoM,EAAMsyD,GAC5C,OAAO16C,EAAOy+J,kBAAkBr2K,EAAMsyD,MAExC,OAAoBxhD,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKuhL,EAAQ9lG,OACC1+D,IAAM7P,cAAc,KAAM,CACxCzN,UAAWA,EACX6C,MAAOi/K,EAAQj/K,MACf2jB,KAAM,eACN,gBAAiBs7J,EAAQ5/J,UACxB4/J,EAAQ9lG,OAAQ28B,KAEpB,CACDp4G,IAAK,iBACLhC,MAAO,SAAwB87F,GAC7B,IAAIt1E,EAAStiB,KAEb,OAAO43F,EAAOj6F,KAAI,SAAU0hL,EAAShjH,GACnC,OAAO/5C,EAAOk9J,cAAcH,EAAShjH,QAGxC,CACDv+D,IAAK,eACLhC,MAAO,SAAsBokL,EAAUtoF,EAAQv7B,EAAOgkH,GACpD,IAAIC,EAAWtgL,KAAKugL,eAAe3oF,GACnC,OAAoB/8E,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKoiL,EAAS3mG,MAAQ,WAAald,EACnC9+D,UAAW8iL,GACGxlK,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,qBACXwmB,KAAM,QACLu8J,MAEJ,CACDxiL,IAAK,gBACLhC,MAAO,SAAuBokL,GAC5B,IAAIz9J,EAASziB,KAEb,GAAIkgL,EAAShqE,MAAO,CAClB,IAAImqE,EAAkBrgL,KAAKwgL,mBAAmBN,GAC9C,OAAOA,EAAShqE,MAAMv4G,KAAI,SAAUi6F,EAAQv7B,GAC1C,OAAO55C,EAAOg+J,aAAaP,EAAUtoF,EAAQv7B,EAAOgkH,MAIxD,OAAO,OAER,CACDviL,IAAK,sBACLhC,MAAO,SAA6BokL,GAClC,GAAIA,EAAShqE,MAAO,CAClB,IAAI5mB,EAAUtvF,KAAK0gL,cAAcR,GACjC,OAAoBrlK,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,oBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,mBACV+xF,IAGL,OAAO,OAER,CACDxxF,IAAK,iBACLhC,MAAO,SAAwBokL,EAAU7jH,GACvC,IAAI/4C,EAAStjB,KAETzC,EAAYN,YAAW,aAAc,CACvC,oBAAqBijL,IAAalgL,KAAKod,MAAMwiK,YAC5CM,EAAS3iL,WACR+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAcijL,EAASzgK,WAErB0xE,EAAgBl0F,YAAW,kBAAmBijL,EAAShnG,MACvDA,EAAOgnG,EAAShnG,MAAqBr+D,IAAM7P,cAAc,OAAQ,CACnEzN,UAAW4zF,IAET5X,EAAQ2mG,EAAS3mG,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACrEzN,UAAW,mBACV2iL,EAAS3mG,OACRmwE,EAAcw2B,EAASj3E,SAAWt7F,IAAY8rE,cAAcymG,EAASj3E,SAAUi3E,GAAY,KAC3FS,EAAc3gL,KAAK4gL,kBAAkBV,GACrCpiC,EAAQ99I,KAAK6gL,oBAAoBX,GACrC,OAAoBrlK,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKoiL,EAAS3mG,MAAQ,IAAMld,EAC5B9+D,UAAWA,EACX6C,MAAO8/K,EAAS9/K,MAChBgf,aAAc,SAAsB5f,GAClC,OAAO8jB,EAAOw9J,qBAAqBthL,EAAG0gL,IAExCn8J,KAAM,QACQlJ,IAAM7P,cAAc,IAAK,CACvCk2D,KAAMg/G,EAASr5J,KAAO,IACtBtpB,UAAW+hL,EACX/gL,OAAQ2hL,EAAS3hL,OACjByhE,QAAS,SAAiBxgE,GACxB,OAAO8jB,EAAOy9J,gBAAgBvhL,EAAG0gL,IAEnCzrK,UAAW,SAAmBjV,GAC5B,OAAO8jB,EAAO09J,kBAAkBxhL,EAAG0gL,IAErCn8J,KAAM,WACN,gBAAmC,MAAlBm8J,EAAShqE,OACzBh9B,EAAMK,EAAOmwE,EAAai3B,EAA0B9lK,IAAM7P,cAAc2O,IAAQ,OAAQmkI,KAE5F,CACDhgJ,IAAK,aACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAO34C,EAAOu9J,eAAel3K,EAAMsyD,GAAO,MAIvC,OAER,CACDv+D,IAAK,sBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMgE,SACOqY,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACVyC,KAAKxB,MAAMgE,UAGT,OAER,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAI6nB,EAAS3jB,KAETzC,EAAYN,YAAW,yBAA0B,CACnD,wBAAoD,eAA3B+C,KAAKxB,MAAMw4I,YACpC,sBAAkD,aAA3Bh3I,KAAKxB,MAAMw4I,aACjCh3I,KAAKxB,MAAMjB,WACV+/E,EAAOt9E,KAAK0/K,aACZwB,EAAgBlhL,KAAKmhL,sBACzB,OAAoBtmK,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0jB,EAAO7Z,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,uBACXwmB,KAAM,WACLu5D,GAAO4jG,QAriBE5iL,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAwiBzC2gL,EAndmB,CAod1B3kK,aAteiClf,EAweO,CACxCgoB,GAAI,KACJs8C,MAAO,KACPhgE,MAAO,KACP7C,UAAW,KACXy5I,YAAa,eA7eel5I,EAweJ,kBAxeDd,EAweT2iL,GAteZvjL,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DAGA,SAASqC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/BslL,EAAuB,SAAUxnK,IAxErC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAU4oK,EAASxnK,GAEnB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAaq8J,GAE1B,SAASA,IAGP,OAFAjjL,EAAgB6B,KAAMohL,GAEfvnK,EAAOvQ,MAAMtJ,KAAM7C,WA2C5B,OA1IoBkB,EAkGP+iL,GAlGoBriL,EAkGX,CAAC,CACrBjB,IAAK,aACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMwgB,QACb,OAAOrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMwgB,QAAShf,KAAKxB,OAG5D,IAAI06E,EAAOj8E,YAAW,2BAA4B,CAChD,iBAA0C,SAAxB+C,KAAKxB,MAAMi2B,SAC7B,0BAAmD,SAAxBz0B,KAAKxB,MAAMi2B,SACtC,kBAA2C,UAAxBz0B,KAAKxB,MAAMi2B,SAC9B,WAAoC,YAAxBz0B,KAAKxB,MAAMi2B,WAEzB,OAAoB5Z,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,OAAQ,CACrGzN,UAAW27E,IACIr+D,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,yBACVyC,KAAKxB,MAAMwO,SAEf,CACDlP,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,+BAAgC,CACzD,wBAAiD,SAAxB+C,KAAKxB,MAAMi2B,SACpC,wBAAiD,SAAxBz0B,KAAKxB,MAAMi2B,SACpC,yBAAkD,UAAxBz0B,KAAKxB,MAAMi2B,SACrC,2BAAoD,YAAxBz0B,KAAKxB,MAAMi2B,SACvC,8BAA+Bz0B,KAAKxB,MAAMwO,MACzChN,KAAKxB,MAAMjB,WACVyhB,EAAUhf,KAAKqhL,aACnB,OAAoBxmK,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACf,YAAa,SACbvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,SACL/E,QArIS1gB,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAwIzCoiL,EAnDkB,CAoDzBpmK,aAtEiClf,EAwEM,CACvCgoB,GAAI,KACJvmB,UAAW,KACX6C,MAAO,KACP4M,KAAM,KACNynB,SAAU,OACVzV,QAAS,OA9EmBlhB,EAwEL,kBAxEAd,EAwETokL,GAtEZhlL,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,iBCjGf,gBAAIwlL,EAA2B,qBAAX1gL,OACjBA,OAE6B,qBAAtB2gL,mBAAqCppK,gBAAgBopK,kBAC3DppK,KACA,GASAqpK,EAAS,WAGb,IAAIC,EAAO,2BACPC,EAAW,EAEXvnC,EAAImnC,EAAME,MAAQ,CACrBG,OAAQL,EAAME,OAASF,EAAME,MAAMG,OACnCC,4BAA6BN,EAAME,OAASF,EAAME,MAAMI,4BACxDC,KAAM,CACL9E,OAAQ,SAAUhkJ,GACjB,OAAIA,aAAkB+oJ,EACd,IAAIA,EAAM/oJ,EAAOv7B,KAAM28I,EAAE0nC,KAAK9E,OAAOhkJ,EAAO/Z,SAAU+Z,EAAOgpJ,OAClC,UAAxB5nC,EAAE0nC,KAAKrkL,KAAKu7B,GACfA,EAAOp7B,IAAIw8I,EAAE0nC,KAAK9E,QAElBhkJ,EAAO51B,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,UAAW,MAIhF3F,KAAM,SAAUvB,GACf,OAAOG,OAAOC,UAAUC,SAASZ,KAAKO,GAAGuP,MAAM,oBAAoB,IAGpEw2K,MAAO,SAAUhlL,GAIhB,OAHKA,EAAG,MACPZ,OAAOyC,eAAe7B,EAAK,OAAQ,CAAElB,QAAS4lL,IAExC1kL,EAAG,MAIXilL,MAAO,SAAUhmL,GAGhB,OAFWk+I,EAAE0nC,KAAKrkL,KAAKvB,IAGtB,IAAK,SACJ,IAAIgmL,EAAQ,GAEZ,IAAK,IAAInkL,KAAO7B,EACXA,EAAEyS,eAAe5Q,KACpBmkL,EAAMnkL,GAAOq8I,EAAE0nC,KAAKI,MAAMhmL,EAAE6B,KAI9B,OAAOmkL,EAER,IAAK,QACJ,OAAOhmL,EAAE0B,KAAI,SAAS0hI,GAAK,OAAO8a,EAAE0nC,KAAKI,MAAM5iD,MAGjD,OAAOpjI,IAITimL,UAAW,CACV1yD,OAAQ,SAAU1rG,EAAIq+J,GACrB,IAAIV,EAAOtnC,EAAE0nC,KAAKI,MAAM9nC,EAAE+nC,UAAUp+J,IAEpC,IAAK,IAAIhmB,KAAOqkL,EACfV,EAAK3jL,GAAOqkL,EAAMrkL,GAGnB,OAAO2jL,GAYRW,aAAc,SAAUC,EAAQ/rJ,EAAQiiG,EAAQ50E,GAE/C,IAAI2+H,GADJ3+H,EAAOA,GAAQw2F,EAAE+nC,WACEG,GAEnB,GAAwB,GAApBllL,UAAUxC,OAAa,CAG1B,IAAK,IAAI4nL,KAFThqD,EAASp7H,UAAU,GAGdo7H,EAAO7pH,eAAe6zK,KACzBD,EAAQC,GAAYhqD,EAAOgqD,IAI7B,OAAOD,EAGR,IAAIE,EAAM,GAEV,IAAK,IAAI3pJ,KAASypJ,EAEjB,GAAIA,EAAQ5zK,eAAemqB,GAAQ,CAElC,GAAIA,GAASvC,EAEZ,IAAK,IAAIisJ,KAAYhqD,EAEhBA,EAAO7pH,eAAe6zK,KACzBC,EAAID,GAAYhqD,EAAOgqD,IAK1BC,EAAI3pJ,GAASypJ,EAAQzpJ,GAWvB,OANAshH,EAAE+nC,UAAUO,IAAItoC,EAAE+nC,WAAW,SAASpkL,EAAKhC,GACtCA,IAAU6nD,EAAK0+H,IAAWvkL,GAAOukL,IACpCriL,KAAKlC,GAAO0kL,MAIP7+H,EAAK0+H,GAAUG,GAIvBC,IAAK,SAASxmL,EAAG0J,EAAUnI,EAAMklL,GAEhC,IAAK,IAAI9nL,KADT8nL,EAAUA,GAAW,GACPzmL,EACTA,EAAEyS,eAAe9T,KACpB+K,EAASjK,KAAKO,EAAGrB,EAAGqB,EAAErB,GAAI4C,GAAQ5C,GAER,WAAtBu/I,EAAE0nC,KAAKrkL,KAAKvB,EAAErB,KAAqB8nL,EAAQvoC,EAAE0nC,KAAKG,MAAM/lL,EAAErB,KAI/B,UAAtBu/I,EAAE0nC,KAAKrkL,KAAKvB,EAAErB,KAAoB8nL,EAAQvoC,EAAE0nC,KAAKG,MAAM/lL,EAAErB,OACjE8nL,EAAQvoC,EAAE0nC,KAAKG,MAAM/lL,EAAErB,MAAO,EAC9Bu/I,EAAE+nC,UAAUO,IAAIxmL,EAAErB,GAAI+K,EAAU/K,EAAG8nL,KALnCA,EAAQvoC,EAAE0nC,KAAKG,MAAM/lL,EAAErB,MAAO,EAC9Bu/I,EAAE+nC,UAAUO,IAAIxmL,EAAErB,GAAI+K,EAAU,KAAM+8K,OAU3CnqH,QAAS,GAEToqH,aAAc,SAASC,EAAOj9K,GAC7Bw0I,EAAE0oC,kBAAkBniL,SAAUkiL,EAAOj9K,IAGtCk9K,kBAAmB,SAAS/4K,EAAW84K,EAAOj9K,GAC7C,IAAIm9K,EAAM,CACTn9K,SAAUA,EACVrC,SAAU,oGAGX62I,EAAE53F,MAAMwgI,IAAI,sBAAuBD,GAInC,IAFA,IAEcvgL,EAFVm9I,EAAWojC,EAAIpjC,UAAY51I,EAAUvG,iBAAiBu/K,EAAIx/K,UAErD1I,EAAE,EAAY2H,EAAUm9I,EAAS9kJ,MACzCu/I,EAAE6oC,iBAAiBzgL,GAAmB,IAAVqgL,EAAgBE,EAAIn9K,WAIlDq9K,iBAAkB,SAASzgL,EAASqgL,EAAOj9K,GAI1C,IAFA,IAAIs9K,EAAUX,EAAS36K,EAASpF,EAEzBoF,IAAW85K,EAAK9kL,KAAKgL,EAAOpK,YAClCoK,EAASA,EAAOlF,WAGbkF,IACHs7K,GAAYt7K,EAAOpK,UAAUiO,MAAMi2K,IAAS,CAAC,CAAC,KAAK,GAAGl2K,cACtD+2K,EAAUnoC,EAAE+nC,UAAUe,IAIvB1gL,EAAQhF,UAAYgF,EAAQhF,UAAU4F,QAAQs+K,EAAM,IAAIt+K,QAAQ,OAAQ,KAAO,aAAe8/K,EAE1F1gL,EAAQE,aAEXkF,EAASpF,EAAQE,WAEb,OAAO9F,KAAKgL,EAAOkC,YACtBlC,EAAOpK,UAAYoK,EAAOpK,UAAU4F,QAAQs+K,EAAM,IAAIt+K,QAAQ,OAAQ,KAAO,aAAe8/K,IAI9F,IAEIH,EAAM,CACTvgL,QAASA,EACT0gL,SAAUA,EACVX,QAASA,EACTrwI,KANU1vC,EAAQwK,aAWnB,GAFAotI,EAAE53F,MAAMwgI,IAAI,sBAAuBD,IAE9BA,EAAI7wI,OAAS6wI,EAAIR,QAOrB,OANIQ,EAAI7wI,OACPkoG,EAAE53F,MAAMwgI,IAAI,mBAAoBD,GAChCA,EAAIvgL,QAAQwK,YAAc+1K,EAAI7wI,KAC9BkoG,EAAE53F,MAAMwgI,IAAI,kBAAmBD,SAEhC3oC,EAAE53F,MAAMwgI,IAAI,WAAYD,GAMzB,GAFA3oC,EAAE53F,MAAMwgI,IAAI,mBAAoBD,GAE5BF,GAAStB,EAAM4B,OAAQ,CAC1B,IAAIC,EAAS,IAAID,OAAO/oC,EAAEipC,UAE1BD,EAAOE,UAAY,SAAS1+J,GAC3Bm+J,EAAIQ,gBAAkB3+J,EAAIhW,KAE1BwrI,EAAE53F,MAAMwgI,IAAI,gBAAiBD,GAE7BA,EAAIvgL,QAAQsK,UAAYi2K,EAAIQ,gBAE5B39K,GAAYA,EAASjK,KAAKonL,EAAIvgL,SAC9B43I,EAAE53F,MAAMwgI,IAAI,kBAAmBD,GAC/B3oC,EAAE53F,MAAMwgI,IAAI,WAAYD,IAGzBK,EAAOI,YAAYtrI,KAAKC,UAAU,CACjC+qI,SAAUH,EAAIG,SACdhxI,KAAM6wI,EAAI7wI,KACVuxI,gBAAgB,UAIjBV,EAAIQ,gBAAkBnpC,EAAEspC,UAAUX,EAAI7wI,KAAM6wI,EAAIR,QAASQ,EAAIG,UAE7D9oC,EAAE53F,MAAMwgI,IAAI,gBAAiBD,GAE7BA,EAAIvgL,QAAQsK,UAAYi2K,EAAIQ,gBAE5B39K,GAAYA,EAASjK,KAAK6G,GAE1B43I,EAAE53F,MAAMwgI,IAAI,kBAAmBD,GAC/B3oC,EAAE53F,MAAMwgI,IAAI,WAAYD,IAI1BW,UAAW,SAAUz2K,EAAMs1K,EAASW,GACnC,IAAIlqJ,EAASohH,EAAEupC,SAAS12K,EAAMs1K,GAC9B,OAAOR,EAAM5pI,UAAUiiG,EAAE0nC,KAAK9E,OAAOhkJ,GAASkqJ,IAG/CU,aAAc,SAAU32K,EAAM42K,EAAQtB,EAASjmH,EAAOigF,EAAUunC,EAAStlL,GACxE,IAAIujL,EAAQ3nC,EAAE2nC,MAEd,IAAK,IAAIjpJ,KAASypJ,EACjB,GAAIA,EAAQ5zK,eAAemqB,IAAWypJ,EAAQzpJ,GAA9C,CAIA,GAAIA,GAASt6B,EACZ,OAGD,IAAIulL,EAAWxB,EAAQzpJ,GACvBirJ,EAAsC,UAA1B3pC,EAAE0nC,KAAKrkL,KAAKsmL,GAAyBA,EAAW,CAACA,GAE7D,IAAK,IAAI7vK,EAAI,EAAGA,EAAI6vK,EAASnpL,SAAUsZ,EAAG,CACzC,IAAIsnH,EAAUuoD,EAAS7vK,GACtBouK,EAAS9mD,EAAQ8mD,OACjB0B,IAAexoD,EAAQwoD,WACvBC,IAAWzoD,EAAQyoD,OACnBC,EAAmB,EACnBlC,EAAQxmD,EAAQwmD,MAEjB,GAAIiC,IAAWzoD,EAAQA,QAAQpa,OAAQ,CAEtC,IAAI07D,EAAQthD,EAAQA,QAAQj/H,WAAWkP,MAAM,YAAY,GACzD+vH,EAAQA,QAAUn4H,OAAOm4H,EAAQA,QAAQtqH,OAAQ4rK,EAAQ,KAG1DthD,EAAUA,EAAQA,SAAWA,EAG7B,IAAK,IAAI3gI,EAAIyhE,EAAOtoD,EAAMuoI,EAAU1hJ,EAAIgpL,EAAOjpL,OAAQoZ,GAAO6vK,EAAOhpL,GAAGD,SAAUC,EAAG,CAEpF,IAAI2U,EAAMq0K,EAAOhpL,GAEjB,GAAIgpL,EAAOjpL,OAASqS,EAAKrS,OAExB,OAGD,KAAI4U,aAAeuyK,GAAnB,CAIAvmD,EAAQx0D,UAAY,EAEpB,IACIm9G,EAAS,EAGb,KAJI14K,EAAQ+vH,EAAQ9vH,KAAK8D,KAIXy0K,GAAUppL,GAAKgpL,EAAOjpL,OAAS,EAAG,CAG/C,GAFA4gI,EAAQx0D,UAAYhzD,IACpBvI,EAAQ+vH,EAAQ9vH,KAAKuB,IAEpB,MAQD,IALA,IAAItQ,EAAO8O,EAAM6wD,OAAS0nH,EAAav4K,EAAM,GAAG7Q,OAAS,GACrDqU,EAAKxD,EAAM6wD,MAAQ7wD,EAAM,GAAG7Q,OAC5B+Z,EAAI9Z,EACJua,EAAIpB,EAECrZ,EAAMkpL,EAAOjpL,OAAQ+Z,EAAIha,IAAQya,EAAInG,IAAQ40K,EAAOlvK,GAAGlX,OAASomL,EAAOlvK,EAAI,GAAGsvK,UAAYtvK,EAG9FhY,IAFJyY,GAAKyuK,EAAOlvK,GAAG/Z,YAGZC,EACFmZ,EAAMoB,GAQR,GAAIyuK,EAAOhpL,aAAcknL,GAAS8B,EAAOlvK,EAAI,GAAGsvK,OAC/C,SAIDE,EAASxvK,EAAI9Z,EACb2U,EAAMvC,EAAKzQ,MAAMwX,EAAKoB,GACtB3J,EAAM6wD,OAAStoD,EAGhB,GAAKvI,EAAL,CAQGu4K,IACFE,EAAmBz4K,EAAM,GAAG7Q,QAKzBqU,GAFAtS,EAAO8O,EAAM6wD,MAAQ4nH,IACrBz4K,EAAQA,EAAM,GAAGjP,MAAM0nL,IACLtpL,OAFtB,IACI6Q,EAEA8qB,EAAS/mB,EAAIhT,MAAM,EAAGG,GACtB65B,EAAQhnB,EAAIhT,MAAMyS,GAElB5R,EAAO,CAACxC,EAAGspL,GAEX5tJ,MACD17B,EACFmZ,GAAOuiB,EAAO37B,OACdyC,EAAKvB,KAAKy6B,IAGX,IAAI6tJ,EAAU,IAAIrC,EAAMjpJ,EAAOwpJ,EAAQloC,EAAEupC,SAASl4K,EAAO62K,GAAU72K,EAAOu2K,EAAOv2K,EAAOw4K,GAaxF,GAXA5mL,EAAKvB,KAAKsoL,GAEN5tJ,GACHn5B,EAAKvB,KAAK06B,GAGXz7B,MAAMuB,UAAU4S,OAAO3F,MAAMs6K,EAAQxmL,GAEvB,GAAV8mL,GACH/pC,EAAEwpC,aAAa32K,EAAM42K,EAAQtB,EAAS1nL,EAAGmZ,GAAK,EAAM8kB,GAEjDgrJ,EACH,WAvCA,GAAIA,EACH,WA4CNH,SAAU,SAAS12K,EAAMs1K,EAASW,GACjC,IAAIW,EAAS,CAAC52K,GAEVu1G,EAAO+/D,EAAQ//D,KAEnB,GAAIA,EAAM,CACT,IAAK,IAAI1pF,KAAS0pF,EACjB+/D,EAAQzpJ,GAAS0pF,EAAK1pF,UAGhBypJ,EAAQ//D,KAKhB,OAFA43B,EAAEwpC,aAAa32K,EAAM42K,EAAQtB,EAAS,EAAG,GAAG,GAErCsB,GAGRrhI,MAAO,CACN6hI,IAAK,GAELphL,IAAK,SAAUvG,EAAMkJ,GACpB,IAAI48C,EAAQ43F,EAAE53F,MAAM6hI,IAEpB7hI,EAAM9lD,GAAQ8lD,EAAM9lD,IAAS,GAE7B8lD,EAAM9lD,GAAMZ,KAAK8J,IAGlBo9K,IAAK,SAAUtmL,EAAMqmL,GACpB,IAAIuB,EAAYlqC,EAAE53F,MAAM6hI,IAAI3nL,GAE5B,GAAK4nL,GAAcA,EAAU1pL,OAI7B,IAAK,IAASgL,EAAL/K,EAAE,EAAa+K,EAAW0+K,EAAUzpL,MAC5C+K,EAASm9K,MAMThB,EAAQ3nC,EAAE2nC,MAAQ,SAAStkL,EAAMwhB,EAAS+iK,EAAOuC,EAAYN,GAChEhkL,KAAKxC,KAAOA,EACZwC,KAAKgf,QAAUA,EACfhf,KAAK+hL,MAAQA,EAEb/hL,KAAKrF,OAAmC,GAAzB2pL,GAAc,IAAI3pL,OACjCqF,KAAKgkL,SAAWA,GAuCjB,GApCAlC,EAAM5pI,UAAY,SAASj8C,EAAGgnL,EAAUt7K,GACvC,GAAgB,iBAAL1L,EACV,OAAOA,EAGR,GAAuB,UAAnBk+I,EAAE0nC,KAAKrkL,KAAKvB,GACf,OAAOA,EAAE0B,KAAI,SAAS4E,GACrB,OAAOu/K,EAAM5pI,UAAU31C,EAAS0gL,EAAUhnL,MACxCiC,KAAK,IAGT,IAAI4kL,EAAM,CACTtlL,KAAMvB,EAAEuB,KACRwhB,QAAS8iK,EAAM5pI,UAAUj8C,EAAE+iB,QAASikK,EAAUt7K,GAC9C4yJ,IAAK,OACLj9J,QAAS,CAAC,QAASrB,EAAEuB,MACrB+mL,WAAY,GACZtB,SAAUA,EACVt7K,OAAQA,GAGT,GAAI1L,EAAE8lL,MAAO,CACZ,IAAIyC,EAAmC,UAAzBrqC,EAAE0nC,KAAKrkL,KAAKvB,EAAE8lL,OAAqB9lL,EAAE8lL,MAAQ,CAAC9lL,EAAE8lL,OAC9DjnL,MAAMuB,UAAUR,KAAKyN,MAAMw5K,EAAIxlL,QAASknL,GAGzCrqC,EAAE53F,MAAMwgI,IAAI,OAAQD,GAEpB,IAAIyB,EAAanoL,OAAOqS,KAAKq0K,EAAIyB,YAAY5mL,KAAI,SAASlB,GACzD,OAAOA,EAAO,MAAQqmL,EAAIyB,WAAW9nL,IAAS,IAAI0G,QAAQ,KAAM,UAAY,OAC1EjF,KAAK,KAER,MAAO,IAAM4kL,EAAIvoB,IAAM,WAAauoB,EAAIxlL,QAAQY,KAAK,KAAO,KAAOqmL,EAAa,IAAMA,EAAa,IAAM,IAAMzB,EAAI9jK,QAAU,KAAO8jK,EAAIvoB,IAAM,MAI1I+mB,EAAM5gL,SACV,OAAK4gL,EAAM9zK,kBAKN2sI,EAAEynC,6BAENN,EAAM9zK,iBAAiB,WAAW,SAAUmX,GAC3C,IAAIgoC,EAAU1U,KAAKxb,MAAM9X,EAAIhW,MAC5B8yK,EAAO90H,EAAQs2H,SACfhxI,EAAO0a,EAAQ1a,KACfuxI,EAAiB72H,EAAQ62H,eAE1BlC,EAAMiC,YAAYppC,EAAEspC,UAAUxxI,EAAMkoG,EAAE+nC,UAAUT,GAAOA,IACnD+B,GACHlC,EAAMt9H,WAEL,GAGGs9H,EAAME,OAlBLF,EAAME,MAsBf,IAAIiD,EAAS/jL,SAASgkL,eAAiB,GAAGnoL,MAAMb,KAAKgF,SAASoB,qBAAqB,WAAWolH,MAmB9F,OAjBIu9D,IACHtqC,EAAEipC,SAAWqB,EAAO9jE,IAEfw5B,EAAEwnC,QAAW8C,EAAO5kK,aAAa,iBACV,YAAxBnf,SAASk2J,WACPh2J,OAAOgI,sBACVhI,OAAOgI,sBAAsBuxI,EAAEwoC,cAE/B/hL,OAAOiI,WAAWsxI,EAAEwoC,aAAc,IAInCjiL,SAAS8M,iBAAiB,mBAAoB2sI,EAAEwoC,gBAK5CrB,EAAME,MAjgBA,GAqgBwBnnL,EAAOC,UAC3CD,EAAOC,QAAUknL,GAII,qBAAXrgE,IACVA,EAAOqgE,MAAQA,K,+CCzhBhB,6DAGA,SAASrjL,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+nB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI61K,EAAwB,SAAU/qK,IAxEtC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUmsK,EAAU/qK,GAEpB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa4/J,GAE1B,SAASA,IAGP,OAFAxmL,EAAgB6B,KAAM2kL,GAEf9qK,EAAOvQ,MAAMtJ,KAAM7C,WAiD5B,OAhJoBkB,EAkGPsmL,GAlGoB5lL,EAkGV,CAAC,CACtBjB,IAAK,SACLhC,MAAO,SAAgBiO,EAAMsyD,GAC3B,OAAOr8D,KAAKxB,MAAM2Q,QAAUxB,IAAYI,iBAAiBhE,EAAM/J,KAAKxB,MAAM2Q,SAAW,UAAUpR,OAAOs+D,KAEvG,CACDv+D,IAAK,eACLhC,MAAO,WACL,IAAIyJ,EAAQvF,KAEZ,OAAOA,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAUoM,EAAMsyD,GAC9D,IAAIuoH,EAAWj3K,IAAY8rE,cAAcl0E,EAAM/G,MAAMomL,SAAU76K,EAAMsyD,GACjEnxC,EAASvd,IAAY8rE,cAAcl0E,EAAM/G,MAAM0sB,OAAQnhB,EAAMsyD,IAAuBxhD,IAAM7P,cAAc,MAAO,CACjHzN,UAAW,4BAETsnL,EAAYxoH,IAAU92D,EAAM/G,MAAM1C,MAAMnB,OAAS,GAAkBkgB,IAAM7P,cAAc,MAAO,CAChGzN,UAAW,+BAETyhB,EAAUrR,IAAY8rE,cAAcl0E,EAAM/G,MAAMwgB,QAASjV,EAAMsyD,GACnE,OAAoBxhD,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKyH,EAAMyW,OAAOjS,EAAMsyD,GACxB9+D,UAAW,oBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,6BACVqnL,GAAwB/pK,IAAM7P,cAAc,MAAO,CACpDzN,UAAW,8BACV2tB,EAAQ25J,GAAyBhqK,IAAM7P,cAAc,MAAO,CAC7DzN,UAAW,4BACVyhB,SAGN,CACDlhB,IAAK,SACLhC,MAAO,WACL,IAAIs9E,EAEAy8B,EAAqB54G,YAAW,0BAA6CuT,EAAlB4oE,EAAc,GAAiC,cAAcr7E,OAAOiC,KAAKxB,MAAMkiB,QAAQ,GAAOlQ,EAAgB4oE,EAAa,cAAcr7E,OAAOiC,KAAKxB,MAAMw+I,SAAS,GAAO5jE,GAAcp5E,KAAKxB,MAAMjB,WAC/PkqC,EAASznC,KAAK8kL,eAClB,OAAoBjqK,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWs4G,EACXz1G,MAAOJ,KAAKxB,MAAM4B,OACjBqnC,QA3ISnpC,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA8IzC2lL,EAzDmB,CA0D1B3pK,aAEFxK,EAAgBm0K,EAAU,eAAgB,CACxC7gK,GAAI,KACJhoB,MAAO,KACP4kB,MAAO,OACPs8H,OAAQ,WACR7tI,QAAS,KACT5R,UAAW,KACX6C,MAAO,KACPwkL,SAAU,KACV15J,OAAQ,KACRlM,QAAS,Q,6BChLI,SAASxO,EAAgBxT,EAAKc,EAAKhC,GAYhD,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAZT,mC,6BCAA,8CACe,SAASyS,EAA2BxT,EAAGiD,GACpD,IAAIC,EAEJ,GAAsB,qBAAXhE,QAAgD,MAAtBc,EAAEd,OAAOC,UAAmB,CAC/D,GAAIN,MAAME,QAAQiB,KAAOkD,EAAK,YAA2BlD,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAC/GwE,IAAIlD,EAAIkD,GACZ,IAAIvE,EAAI,EAEJ0E,EAAI,aAER,MAAO,CACLC,EAAGD,EACHnD,EAAG,WACD,OAAIvB,GAAKqB,EAAEtB,OAAe,CACxBiB,MAAM,GAED,CACLA,MAAM,EACNE,MAAOG,EAAErB,OAGb4E,EAAG,SAAWlE,GACZ,MAAMA,GAERmE,EAAGH,GAIP,MAAM,IAAIzC,UAAU,yIAGtB,IAEId,EAFA2D,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLJ,EAAG,WACDJ,EAAKlD,EAAEd,OAAOC,aAEhBe,EAAG,WACD,IAAIyD,EAAOT,EAAGxD,OAEd,OADA+D,EAAmBE,EAAKhE,KACjBgE,GAETJ,EAAG,SAAWK,GACZF,GAAS,EACT5D,EAAM8D,GAERJ,EAAG,WACD,IACOC,GAAoC,MAAhBP,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIQ,EAAQ,MAAM5D,O,6BCnD1B,IAAIgpL,EAAwB,GAAGt0F,qBAE3B1/E,EAA2B3U,OAAO2U,yBAGlCi0K,EAAcj0K,IAA6Bg0K,EAAsBrpL,KAAK,CAAE,EAAG,GAAK,GAIpFpB,EAAQmF,EAAIulL,EAAc,SAA8B7J,GACtD,IAAI18K,EAAasS,EAAyB/Q,KAAMm7K,GAChD,QAAS18K,GAAcA,EAAWC,YAChCqmL,G,gBCbJ,IAAI3vC,EAAQ76I,EAAQ,IAChBqhL,EAAUrhL,EAAQ,KAElBwI,EAAQ,GAAGA,MAGf1I,EAAOC,QAAU86I,GAAM,WAGrB,OAAQh5I,OAAO,KAAKq0F,qBAAqB,MACtC,SAAUtxF,GACb,MAAsB,UAAfy8K,EAAQz8K,GAAkB4D,EAAMrH,KAAKyD,EAAI,IAAM/C,OAAO+C,IAC3D/C,Q,gBCXJ,IAAIklH,EAAgB/mH,EAAQ,KAE5BF,EAAOC,QAAUgnH,IACXnmH,OAAOie,MACkB,iBAAnBje,OAAOC,U,gBCLnB,IAAI0zI,EAAcv0I,EAAQ,IACtB66I,EAAQ76I,EAAQ,IAChByQ,EAAgBzQ,EAAQ,KAG5BF,EAAOC,SAAWw0I,IAAgBsG,GAAM,WAEtC,OAEQ,GAFDh5I,OAAOyC,eAAemM,EAAc,OAAQ,IAAK,CACtDuM,IAAK,WAAc,OAAO,KACzBtJ,M,gBCTL,IAAI6gI,EAAcv0I,EAAQ,IACtB8mH,EAAM9mH,EAAQ,IAEd0qL,EAAoBhgE,SAAS5oH,UAE7B6oL,EAAgBp2C,GAAe1yI,OAAO2U,yBAEtC0qK,EAASp6D,EAAI4jE,EAAmB,QAEhCE,EAAS1J,GAA0D,cAA/C,aAAsCh/K,KAC1Dw2J,EAAewoB,KAAY3sC,GAAgBA,GAAeo2C,EAAcD,EAAmB,QAAQtmL,cAEvGtE,EAAOC,QAAU,CACfmhL,OAAQA,EACR0J,OAAQA,EACRlyB,aAAcA,I,gBCfhB,IAAI5xC,EAAM9mH,EAAQ,IACdsqB,EAAUtqB,EAAQ,KAClB6qL,EAAiC7qL,EAAQ,KACzCq4J,EAAuBr4J,EAAQ,IAEnCF,EAAOC,QAAU,SAAUiE,EAAQ0S,GAIjC,IAHA,IAAIxC,EAAOoW,EAAQ5T,GACfpS,EAAiB+zJ,EAAqBnzJ,EACtCsR,EAA2Bq0K,EAA+B3lL,EACrD7E,EAAI,EAAGA,EAAI6T,EAAK9T,OAAQC,IAAK,CACpC,IAAIkD,EAAM2Q,EAAK7T,GACVymH,EAAI9iH,EAAQT,IAAMe,EAAeN,EAAQT,EAAKiT,EAAyBE,EAAQnT,O,gBCXxF,IAAIujH,EAAM9mH,EAAQ,IACdigL,EAAkBjgL,EAAQ,IAC1BmR,EAAUnR,EAAQ,KAA+BmR,QACjD6tJ,EAAah/J,EAAQ,IAEzBF,EAAOC,QAAU,SAAUoW,EAAQw4H,GACjC,IAGIprI,EAHAqxI,EAAIqrC,EAAgB9pK,GACpB9V,EAAI,EACJkU,EAAS,GAEb,IAAKhR,KAAOqxI,GAAI9tB,EAAIk4C,EAAYz7J,IAAQujH,EAAI8tB,EAAGrxI,IAAQgR,EAAOjT,KAAKiC,GAEnE,KAAOorI,EAAMvuI,OAASC,GAAOymH,EAAI8tB,EAAGrxI,EAAMorI,EAAMtuI,SAC7C8Q,EAAQoD,EAAQhR,IAAQgR,EAAOjT,KAAKiC,IAEvC,OAAOgR,I,cCdTxU,EAAQmF,EAAIrD,OAAOwU,uB,gBCDnB,IAAI+qK,EAAqBphL,EAAQ,KAC7BogK,EAAcpgK,EAAQ,KAK1BF,EAAOC,QAAU8B,OAAOqS,MAAQ,SAAc0gI,GAC5C,OAAOwsC,EAAmBxsC,EAAGwrB,K,gBCP/B,IAAIlH,EAAkBl5J,EAAQ,IAE9BD,EAAQmF,EAAIg0J,G,gBCFZ,IAAIynB,EAAY3gL,EAAQ,KAGxBF,EAAOC,QAAU,SAAUqqH,EAAI0gE,EAAM1qL,GAEnC,GADAugL,EAAUv2D,QACGl/G,IAAT4/K,EAAoB,OAAO1gE,EAC/B,OAAQhqH,GACN,KAAK,EAAG,OAAO,WACb,OAAOgqH,EAAGjpH,KAAK2pL,IAEjB,KAAK,EAAG,OAAO,SAAUp3K,GACvB,OAAO02G,EAAGjpH,KAAK2pL,EAAMp3K,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAOy2G,EAAGjpH,KAAK2pL,EAAMp3K,EAAGC,IAE1B,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGjQ,GAC7B,OAAO0mH,EAAGjpH,KAAK2pL,EAAMp3K,EAAGC,EAAGjQ,IAG/B,OAAO,WACL,OAAO0mH,EAAGr7G,MAAM+7K,EAAMloL,c,gBCrB1B,IAAImoL,EAA0B/qL,EAAQ,KAItCF,EAAOC,QAAU,SAAUirL,EAAe5qL,GACxC,OAAO,IAAK2qL,EAAwBC,GAA7B,CAAwD,IAAX5qL,EAAe,EAAIA,K,gBCLzE,IAAIy6I,EAAQ76I,EAAQ,IAChBs0I,EAAat0I,EAAQ,IACrBqhL,EAAUrhL,EAAQ,IAClBmgL,EAAangL,EAAQ,IACrBu4J,EAAgBv4J,EAAQ,KAExBiQ,EAAQ,GACR2O,EAAYuhK,EAAW,UAAW,aAClC8K,EAAoB,2BACpB/5K,EAAO+5K,EAAkB/5K,KACzBg6K,GAAuBD,EAAkB/5K,MAAK,eAE9Ci6K,EAAsB,SAAUnlE,GAClC,IAAKsuB,EAAWtuB,GAAW,OAAO,EAClC,IAEE,OADApnG,EAAU/c,OAAQoO,EAAO+1G,IAClB,EACP,MAAO11G,GACP,OAAO,IAgBXxQ,EAAOC,SAAW6e,GAAai8H,GAAM,WACnC,IAAIuwC,EACJ,OAAOD,EAAoBA,EAAoBhqL,QACzCgqL,EAAoBtpL,UACpBspL,GAAoB,WAAcC,GAAS,MAC5CA,KAjBmB,SAAUplE,GAClC,IAAKsuB,EAAWtuB,GAAW,OAAO,EAClC,OAAQq7D,EAAQr7D,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAEtC,OAAOklE,KAAyBh6K,EAAK/P,KAAK8pL,EAAmB1yB,EAAcvyC,KAWpDmlE,G,6BCvC3B,IAAIz2C,EAAgB10I,EAAQ,IACxBq4J,EAAuBr4J,EAAQ,IAC/Bs4J,EAA2Bt4J,EAAQ,IAEvCF,EAAOC,QAAU,SAAUoW,EAAQ5S,EAAKhC,GACtC,IAAI8pL,EAAc32C,EAAcnxI,GAC5B8nL,KAAel1K,EAAQkiJ,EAAqBnzJ,EAAEiR,EAAQk1K,EAAa/yB,EAAyB,EAAG/2J,IAC9F4U,EAAOk1K,GAAe9pL,I,gBCR7B,IAAI8/K,EAAUrhL,EAAQ,IAClBsrL,EAAYtrL,EAAQ,KACpBurL,EAAYvrL,EAAQ,IAGpBwrL,EAFkBxrL,EAAQ,GAEfk5J,CAAgB,YAE/Bp5J,EAAOC,QAAU,SAAU6E,GACzB,QAAUsG,GAANtG,EAAiB,OAAO0mL,EAAU1mL,EAAI4mL,IACrCF,EAAU1mL,EAAI,eACd2mL,EAAUlK,EAAQz8K,M,6BCTzB,IAAI6mL,EAAIzrL,EAAQ,IACZ8gL,EAAU9gL,EAAQ,IAClB0rL,EAAe1rL,EAAQ,KACvBs0I,EAAat0I,EAAQ,IACrB2rL,EAA4B3rL,EAAQ,KACpCue,EAAiBve,EAAQ,KACzB+d,EAAiB/d,EAAQ,KACzB4rL,EAAiB5rL,EAAQ,IACzBu3J,EAA8Bv3J,EAAQ,IACtCw3J,EAAWx3J,EAAQ,IACnBk5J,EAAkBl5J,EAAQ,IAC1BurL,EAAYvrL,EAAQ,IACpB6rL,EAAgB7rL,EAAQ,KAExB8rL,EAAuBJ,EAAad,OACpCnyB,EAA6BizB,EAAahzB,aAC1CqzB,EAAoBF,EAAcE,kBAClCC,EAAyBH,EAAcG,uBACvCR,EAAWtyB,EAAgB,YAC3Bp4I,EAAO,OACPmrK,EAAS,SACTC,EAAU,UAEVC,EAAa,WAAc,OAAO1mL,MAEtC3F,EAAOC,QAAU,SAAUqsL,EAAU/kE,EAAMglE,EAAqBjrL,EAAMkrL,EAASC,EAAQC,GACrFb,EAA0BU,EAAqBhlE,EAAMjmH,GAErD,IAkBIqrL,EAA0BC,EAAShiG,EAlBnCiiG,EAAqB,SAAUC,GACjC,GAAIA,IAASN,GAAWO,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAK9rK,EACL,KAAKmrK,EACL,KAAKC,EAAS,OAAO,WAAqB,OAAO,IAAIG,EAAoB5mL,KAAMmnL,IAC/E,OAAO,WAAc,OAAO,IAAIP,EAAoB5mL,QAGpDwzJ,EAAgB5xC,EAAO,YACvB0lE,GAAwB,EACxBD,EAAoBV,EAAStqL,UAC7BkrL,EAAiBF,EAAkBtB,IAClCsB,EAAkB,eAClBR,GAAWQ,EAAkBR,GAC9BO,GAAmBb,GAA0BgB,GAAkBL,EAAmBL,GAClFW,EAA4B,SAAR5lE,GAAkBylE,EAAkB3pL,SAA4B6pL,EA+BxF,GA3BIC,IACFR,EAA2BluK,EAAe0uK,EAAkB9rL,KAAK,IAAIirL,OACpCvqL,OAAOC,WAAa2qL,EAAyBrrL,OACvE0/K,GAAWviK,EAAekuK,KAA8BV,IACvDhuK,EACFA,EAAe0uK,EAA0BV,GAC/Bz3C,EAAWm4C,EAAyBjB,KAC9Ch0B,EAASi1B,EAA0BjB,EAAUW,IAIjDP,EAAea,EAA0BxzB,GAAe,GAAM,GAC1D6nB,IAASyK,EAAUtyB,GAAiBkzB,IAKxCL,GAAwBQ,GAAWL,GAAUe,GAAkBA,EAAe9qL,OAAS+pL,KACpFnL,GAAWroB,EACdlB,EAA4Bu1B,EAAmB,OAAQb,IAEvDc,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAe7rL,KAAKsE,SAKjE6mL,EAMF,GALAI,EAAU,CACRroE,OAAQsoE,EAAmBV,GAC3B/3K,KAAMq4K,EAASM,EAAkBF,EAAmB7rK,GACpD3d,QAASwpL,EAAmBT,IAE1BM,EAAQ,IAAK9hG,KAAOgiG,GAClBV,GAA0Be,KAA2BriG,KAAOoiG,KAC9Dt1B,EAASs1B,EAAmBpiG,EAAKgiG,EAAQhiG,SAEtC+gG,EAAE,CAAEznL,OAAQqjH,EAAM6lE,OAAO,EAAM/0B,OAAQ6zB,GAA0Be,GAAyBL,GASnG,OALM5L,IAAW0L,GAAWM,EAAkBtB,KAAcqB,GAC1Dr1B,EAASs1B,EAAmBtB,EAAUqB,EAAiB,CAAE3qL,KAAMoqL,IAEjEf,EAAUlkE,GAAQwlE,EAEXH,I,6BC/FT,IAaIX,EAAmBoB,EAAmCC,EAbtDvyC,EAAQ76I,EAAQ,IAChBs0I,EAAat0I,EAAQ,IACrBoe,EAASpe,EAAQ,IACjBue,EAAiBve,EAAQ,KACzBw3J,EAAWx3J,EAAQ,IACnBk5J,EAAkBl5J,EAAQ,IAC1B8gL,EAAU9gL,EAAQ,IAElBwrL,EAAWtyB,EAAgB,YAC3B8yB,GAAyB,EAOzB,GAAG93K,OAGC,SAFNk5K,EAAgB,GAAGl5K,SAIjBi5K,EAAoC5uK,EAAeA,EAAe6uK,OACxBvrL,OAAOC,YAAWiqL,EAAoBoB,GAHlDnB,GAAyB,QAOT9gL,GAArB6gL,GAAkClxC,GAAM,WACnE,IAAIz4I,EAAO,GAEX,OAAO2pL,EAAkBP,GAAUrqL,KAAKiB,KAAUA,KAGxB2pL,EAAoB,GACvCjL,IAASiL,EAAoB3tK,EAAO2tK,IAIxCz3C,EAAWy3C,EAAkBP,KAChCh0B,EAASu0B,EAAmBP,GAAU,WACpC,OAAO/lL,QAIX3F,EAAOC,QAAU,CACfgsL,kBAAmBA,EACnBC,uBAAwBA,I,gBC9C1B,IAAIllE,EAAM9mH,EAAQ,IACds0I,EAAat0I,EAAQ,IACrBw4H,EAAWx4H,EAAQ,IACnB++J,EAAY/+J,EAAQ,IACpBqtL,EAA2BrtL,EAAQ,KAEnCsgK,EAAWvB,EAAU,YACrBuuB,EAAkBzrL,OAAOC,UAK7BhC,EAAOC,QAAUstL,EAA2BxrL,OAAO0c,eAAiB,SAAUq2H,GAC5E,IAAIz+H,EAASqiH,EAASoc,GACtB,GAAI9tB,EAAI3wG,EAAQmqJ,GAAW,OAAOnqJ,EAAOmqJ,GACzC,IAAIr+J,EAAckU,EAAOlU,YACzB,OAAIqyI,EAAWryI,IAAgBkU,aAAkBlU,EACxCA,EAAYH,UACZqU,aAAkBtU,OAASyrL,EAAkB,O,6BChBxD,IAAIC,EAAOvtL,EAAQ,KAEnB,SAASklH,KAmBT,IAAIsoE,EAAa,KACbC,EAAW,GA6Bf,SAASvjE,EAAQE,GACf,GAAoB,kBAAT3kH,KACT,MAAM,IAAInD,UAAU,wCAEtB,GAAkB,oBAAP8nH,EACT,MAAM,IAAI9nH,UAAU,oDAEtBmD,KAAKioL,GAAK,EACVjoL,KAAKkoL,GAAK,EACVloL,KAAKmoL,GAAK,KACVnoL,KAAKooL,GAAK,KACNzjE,IAAOlF,GACX4oE,EAAU1jE,EAAI3kH,MAsBhB,SAASsoL,EAAOnwK,EAAMowK,GACpB,KAAmB,IAAZpwK,EAAK+vK,IACV/vK,EAAOA,EAAKgwK,GAKd,GAHI1jE,EAAQ+jE,IACV/jE,EAAQ+jE,GAAGrwK,GAEG,IAAZA,EAAK+vK,GACP,OAAgB,IAAZ/vK,EAAK8vK,IACP9vK,EAAK8vK,GAAK,OACV9vK,EAAKiwK,GAAKG,IAGI,IAAZpwK,EAAK8vK,IACP9vK,EAAK8vK,GAAK,OACV9vK,EAAKiwK,GAAK,CAACjwK,EAAKiwK,GAAIG,UAGtBpwK,EAAKiwK,GAAGvsL,KAAK0sL,IAMjB,SAAwBpwK,EAAMowK,GAC5BT,GAAK,WACH,IAAIW,EAAiB,IAAZtwK,EAAK+vK,GAAWK,EAASG,YAAcH,EAASI,WACzD,GAAW,OAAPF,EAAJ,CAQA,IAAIjG,EAxFR,SAAoB79D,EAAI12G,GACtB,IACE,OAAO02G,EAAG12G,GACV,MAAOu0G,GAEP,OADAulE,EAAavlE,EACNwlE,GAmFGY,CAAWH,EAAItwK,EAAKgwK,IAC1B3F,IAAQwF,EACVvqG,EAAO8qG,EAASM,QAASd,GAEzBzjE,EAAQikE,EAASM,QAASrG,QAXV,IAAZrqK,EAAK+vK,GACP5jE,EAAQikE,EAASM,QAAS1wK,EAAKgwK,IAE/B1qG,EAAO8qG,EAASM,QAAS1wK,EAAKgwK,OAVpCW,CAAe3wK,EAAMowK,GAsBvB,SAASjkE,EAAQnsG,EAAMq+G,GAErB,GAAIA,IAAar+G,EACf,OAAOslE,EACLtlE,EACA,IAAItb,UAAU,8CAGlB,GACE25H,IACqB,kBAAbA,GAA6C,oBAAbA,GACxC,CACA,IAAIzmE,EArHR,SAAiB/yD,GACf,IACE,OAAOA,EAAI+yD,KACX,MAAOyyD,GAEP,OADAulE,EAAavlE,EACNwlE,GAgHIe,CAAQvyD,GACnB,GAAIzmE,IAASi4H,EACX,OAAOvqG,EAAOtlE,EAAM4vK,GAEtB,GACEh4H,IAAS53C,EAAK43C,MACdymE,aAAoB/R,EAKpB,OAHAtsG,EAAK+vK,GAAK,EACV/vK,EAAKgwK,GAAK3xD,OACVwyD,EAAO7wK,GAEF,GAAoB,oBAAT43C,EAEhB,YADAs4H,EAAUt4H,EAAKh2C,KAAKy8G,GAAWr+G,GAInCA,EAAK+vK,GAAK,EACV/vK,EAAKgwK,GAAK3xD,EACVwyD,EAAO7wK,GAGT,SAASslE,EAAOtlE,EAAMq+G,GACpBr+G,EAAK+vK,GAAK,EACV/vK,EAAKgwK,GAAK3xD,EACN/R,EAAQwkE,IACVxkE,EAAQwkE,GAAG9wK,EAAMq+G,GAEnBwyD,EAAO7wK,GAET,SAAS6wK,EAAO7wK,GAKd,GAJgB,IAAZA,EAAK8vK,KACPK,EAAOnwK,EAAMA,EAAKiwK,IAClBjwK,EAAKiwK,GAAK,MAEI,IAAZjwK,EAAK8vK,GAAU,CACjB,IAAK,IAAIrtL,EAAI,EAAGA,EAAIud,EAAKiwK,GAAGztL,OAAQC,IAClC0tL,EAAOnwK,EAAMA,EAAKiwK,GAAGxtL,IAEvBud,EAAKiwK,GAAK,MAId,SAASc,EAAQR,EAAaC,EAAYE,GACxC7oL,KAAK0oL,YAAqC,oBAAhBA,EAA6BA,EAAc,KACrE1oL,KAAK2oL,WAAmC,oBAAfA,EAA4BA,EAAa,KAClE3oL,KAAK6oL,QAAUA,EASjB,SAASR,EAAU1jE,EAAIkkE,GACrB,IAAIjtL,GAAO,EACPk2B,EA7JN,SAAoB6yF,EAAI12G,EAAGC,GACzB,IACEy2G,EAAG12G,EAAGC,GACN,MAAOs0G,GAEP,OADAulE,EAAavlE,EACNwlE,GAwJCmB,CAAWxkE,GAAI,SAAU7oH,GAC7BF,IACJA,GAAO,EACP0oH,EAAQukE,EAAS/sL,OAChB,SAAUstL,GACPxtL,IACJA,GAAO,EACP6hF,EAAOorG,EAASO,OAEbxtL,GAAQk2B,IAAQk2J,IACnBpsL,GAAO,EACP6hF,EAAOorG,EAASd,IA/JpB1tL,EAAOC,QAAUmqH,EAgBjBA,EAAQ+jE,GAAK,KACb/jE,EAAQwkE,GAAK,KACbxkE,EAAQ4kE,GAAK5pE,EAEbgF,EAAQpoH,UAAU0zD,KAAO,SAAS24H,EAAaC,GAC7C,GAAI3oL,KAAKxD,cAAgBioH,EACvB,OAOJ,SAAkBtsG,EAAMuwK,EAAaC,GACnC,OAAO,IAAIxwK,EAAK3b,aAAY,SAAU8nH,EAAS7mC,GAC7C,IAAI3rD,EAAM,IAAI2yF,EAAQhF,GACtB3tF,EAAIi+B,KAAKu0D,EAAS7mC,GAClB6qG,EAAOnwK,EAAM,IAAI+wK,EAAQR,EAAaC,EAAY72J,OAX3Cw3J,CAAStpL,KAAM0oL,EAAaC,GAErC,IAAI72J,EAAM,IAAI2yF,EAAQhF,GAEtB,OADA6oE,EAAOtoL,KAAM,IAAIkpL,EAAQR,EAAaC,EAAY72J,IAC3CA,I,6BC1EPz3B,EAAOC,QAAUC,EAAQ,M,6BCD3BF,EAAOC,QAAU,SAAcqqH,EAAI8K,GACjC,OAAO,WAEL,IADA,IAAIryH,EAAO,IAAItC,MAAMqC,UAAUxC,QACtBC,EAAI,EAAGA,EAAIwC,EAAKzC,OAAQC,IAC/BwC,EAAKxC,GAAKuC,UAAUvC,GAEtB,OAAO+pH,EAAGr7G,MAAMmmH,EAASryH,M,6BCN7B,IAAImsL,EAAQhvL,EAAQ,IAEpB,SAASwiL,EAAO1mK,GACd,OAAO26C,mBAAmB36C,GACxBlT,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrB9I,EAAOC,QAAU,SAAkBusB,EAAKvX,EAAQk6K,GAE9C,IAAKl6K,EACH,OAAOuX,EAGT,IAAI4iK,EACJ,GAAID,EACFC,EAAmBD,EAAiBl6K,QAC/B,GAAIi6K,EAAMr6D,kBAAkB5/G,GACjCm6K,EAAmBn6K,EAAOhT,eACrB,CACL,IAAIw6B,EAAQ,GAEZyyJ,EAAMr4K,QAAQ5B,GAAQ,SAAmB+G,EAAKvY,GAChC,OAARuY,GAA+B,qBAARA,IAIvBkzK,EAAMvuL,QAAQqb,GAChBvY,GAAY,KAEZuY,EAAM,CAACA,GAGTkzK,EAAMr4K,QAAQmF,GAAK,SAAoBgpH,GACjCkqD,EAAM16D,OAAOwQ,GACfA,EAAIA,EAAEjtG,cACGm3J,EAAMp7D,SAASkR,KACxBA,EAAIpnF,KAAKC,UAAUmnF,IAErBvoG,EAAMj7B,KAAKkhL,EAAOj/K,GAAO,IAAMi/K,EAAO19C,WAI1CoqD,EAAmB3yJ,EAAM54B,KAAK,KAGhC,GAAIurL,EAAkB,CACpB,IAAIC,EAAgB7iK,EAAInb,QAAQ,MACT,IAAnBg+K,IACF7iK,EAAMA,EAAItqB,MAAM,EAAGmtL,IAGrB7iK,KAA8B,IAAtBA,EAAInb,QAAQ,KAAc,IAAM,KAAO+9K,EAGjD,OAAO5iK,I,6BCnETxsB,EAAOC,QAAU,SAAkBwB,GACjC,SAAUA,IAASA,EAAM6tL,c,8BCH3B,YAEA,IAAIJ,EAAQhvL,EAAQ,IAChBqvL,EAAsBrvL,EAAQ,KAE9BsvL,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBz3D,EAASv2H,IACjCytL,EAAMr7D,YAAYmE,IAAYk3D,EAAMr7D,YAAYmE,EAAQ,mBAC3DA,EAAQ,gBAAkBv2H,GAgB9B,IAAIynD,EAAW,CACbwmI,QAbF,WACE,IAAIA,EAQJ,OAP8B,qBAAnBv5H,gBAGmB,qBAAZsqH,GAAuE,qBAA5C1+K,OAAOC,UAAUC,SAASZ,KAAKo/K,MAD1EiP,EAAUxvL,EAAQ,MAKbwvL,EAIEC,GAETC,iBAAkB,CAAC,SAA0Bt7K,EAAM0jH,GAGjD,OAFAu3D,EAAoBv3D,EAAS,UAC7Bu3D,EAAoBv3D,EAAS,gBACzBk3D,EAAMj7D,WAAW3/G,IACnB46K,EAAMn7D,cAAcz/G,IACpB46K,EAAMl7D,SAAS1/G,IACf46K,EAAMv6D,SAASrgH,IACf46K,EAAMz6D,OAAOngH,IACb46K,EAAMx6D,OAAOpgH,GAENA,EAEL46K,EAAM/6D,kBAAkB7/G,GACnBA,EAAKqD,OAEVu3K,EAAMr6D,kBAAkBvgH,IAC1Bm7K,EAAsBz3D,EAAS,mDACxB1jH,EAAKrS,YAEVitL,EAAMp7D,SAASx/G,IACjBm7K,EAAsBz3D,EAAS,kCACxBp6E,KAAKC,UAAUvpC,IAEjBA,IAGTu7K,kBAAmB,CAAC,SAA2Bv7K,GAE7C,GAAoB,kBAATA,EACT,IACEA,EAAOspC,KAAKxb,MAAM9tB,GAClB,MAAOnP,IAEX,OAAOmP,IAOTiX,QAAS,EAETukK,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EAEnBC,eAAgB,SAAwB15H,GACtC,OAAOA,GAAU,KAAOA,EAAS,KAIrCrN,QAAmB,CACjBgnI,OAAQ,CACN,OAAU,uCAIdhB,EAAMr4K,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6Bg/C,GACpE3M,EAAS8uE,QAAQniE,GAAU,MAG7Bq5H,EAAMr4K,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+Bg/C,GACrE3M,EAAS8uE,QAAQniE,GAAUq5H,EAAMtrH,MAAM4rH,MAGzCxvL,EAAOC,QAAUipD,I,gDC9FjB,IAAIgmI,EAAQhvL,EAAQ,IAChBiwL,EAASjwL,EAAQ,KACjBkwL,EAAWlwL,EAAQ,KACnBmwL,EAAgBnwL,EAAQ,KACxBowL,EAAepwL,EAAQ,KACvBqwL,EAAkBrwL,EAAQ,KAC1BswL,EAActwL,EAAQ,KAE1BF,EAAOC,QAAU,SAAoB2kE,GACnC,OAAO,IAAIwlD,SAAQ,SAA4BH,EAAS7mC,GACtD,IAAIqtG,EAAc7rH,EAAOtwD,KACrBo8K,EAAiB9rH,EAAOozD,QAExBk3D,EAAMj7D,WAAWw8D,WACZC,EAAe,gBAGxB,IAAI9sI,EAAU,IAAIuS,eAGlB,GAAIyO,EAAO+rH,KAAM,CACf,IAAIC,EAAWhsH,EAAO+rH,KAAKC,UAAY,GACnCC,EAAWjsH,EAAO+rH,KAAKE,UAAY,GACvCH,EAAeI,cAAgB,SAAWC,KAAKH,EAAW,IAAMC,GAGlE,IAAIG,EAAWX,EAAczrH,EAAOqsH,QAASrsH,EAAOp4C,KA4EpD,GA3EAo3B,EAAQwS,KAAKwO,EAAO/O,OAAOG,cAAeo6H,EAASY,EAAUpsH,EAAO3vD,OAAQ2vD,EAAOuqH,mBAAmB,GAGtGvrI,EAAQr4B,QAAUq5C,EAAOr5C,QAGzBq4B,EAAQ04G,mBAAqB,WAC3B,GAAK14G,GAAkC,IAAvBA,EAAQ24G,aAQD,IAAnB34G,EAAQ2S,QAAkB3S,EAAQstI,aAAwD,IAAzCttI,EAAQstI,YAAY7/K,QAAQ,UAAjF,CAKA,IAAI8/K,EAAkB,0BAA2BvtI,EAAU0sI,EAAa1sI,EAAQwtI,yBAA2B,KAEvGC,EAAW,CACb/8K,KAFkBswD,EAAO0sH,cAAwC,SAAxB1sH,EAAO0sH,aAAiD1tI,EAAQytI,SAA/BztI,EAAQ4S,aAGlFD,OAAQ3S,EAAQ2S,OAChBg7H,WAAY3tI,EAAQ2tI,WACpBv5D,QAASm5D,EACTvsH,OAAQA,EACRhhB,QAASA,GAGXusI,EAAOlmE,EAAS7mC,EAAQiuG,GAGxBztI,EAAU,OAIZA,EAAQ4tI,QAAU,WACX5tI,IAILw/B,EAAOotG,EAAY,kBAAmB5rH,EAAQ,eAAgBhhB,IAG9DA,EAAU,OAIZA,EAAQ6S,QAAU,WAGhB2sB,EAAOotG,EAAY,gBAAiB5rH,EAAQ,KAAMhhB,IAGlDA,EAAU,MAIZA,EAAQ6tI,UAAY,WAClB,IAAIC,EAAsB,cAAgB9sH,EAAOr5C,QAAU,cACvDq5C,EAAO8sH,sBACTA,EAAsB9sH,EAAO8sH,qBAE/BtuG,EAAOotG,EAAYkB,EAAqB9sH,EAAQ,eAC9ChhB,IAGFA,EAAU,MAMRsrI,EAAMn6D,uBAAwB,CAChC,IAAI48D,EAAUzxL,EAAQ,KAGlB0xL,GAAahtH,EAAO83F,iBAAmB6zB,EAAgBS,KAAcpsH,EAAOkrH,eAC9E6B,EAAQE,KAAKjtH,EAAOkrH,qBACpB1kL,EAEEwmL,IACFlB,EAAe9rH,EAAOmrH,gBAAkB6B,GAuB5C,GAlBI,qBAAsBhuI,GACxBsrI,EAAMr4K,QAAQ65K,GAAgB,SAA0B10K,EAAKvY,GAChC,qBAAhBgtL,GAAqD,iBAAtBhtL,EAAIyN,qBAErCw/K,EAAejtL,GAGtBmgD,EAAQyS,iBAAiB5yD,EAAKuY,MAM/BkzK,EAAMr7D,YAAYjvD,EAAO83F,mBAC5B94G,EAAQ84G,kBAAoB93F,EAAO83F,iBAIjC93F,EAAO0sH,aACT,IACE1tI,EAAQ0tI,aAAe1sH,EAAO0sH,aAC9B,MAAOnsL,GAGP,GAA4B,SAAxBy/D,EAAO0sH,aACT,MAAMnsL,EAM6B,oBAA9By/D,EAAOktH,oBAChBluI,EAAQzwC,iBAAiB,WAAYyxD,EAAOktH,oBAIP,oBAA5BltH,EAAOmtH,kBAAmCnuI,EAAQ0/B,QAC3D1/B,EAAQ0/B,OAAOnwE,iBAAiB,WAAYyxD,EAAOmtH,kBAGjDntH,EAAOotH,aAETptH,EAAOotH,YAAYxD,QAAQ94H,MAAK,SAAoB6tB,GAC7C3/B,IAILA,EAAQquI,QACR7uG,EAAOG,GAEP3/B,EAAU,cAIMx4C,IAAhBqlL,IACFA,EAAc,MAIhB7sI,EAAQ8S,KAAK+5H,Q,6BC/KjB,IAAIyB,EAAehyL,EAAQ,KAY3BF,EAAOC,QAAU,SAAqBqyD,EAASsS,EAAQhtB,EAAMgM,EAASytI,GACpE,IAAI7gL,EAAQ,IAAInB,MAAMijD,GACtB,OAAO4/H,EAAa1hL,EAAOo0D,EAAQhtB,EAAMgM,EAASytI,K,6BCdpD,IAAInC,EAAQhvL,EAAQ,IAUpBF,EAAOC,QAAU,SAAqBkyL,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAIxtH,EAAS,GAETytH,EAAuB,CAAC,MAAO,SAAU,SAAU,QACnDC,EAA0B,CAAC,UAAW,OAAQ,SAC9CC,EAAuB,CACzB,UAAW,MAAO,mBAAoB,oBAAqB,mBAC3D,UAAW,kBAAmB,UAAW,eAAgB,iBACzD,iBAAkB,mBAAoB,qBACtC,mBAAoB,iBAAkB,eAAgB,YACtD,aAAc,cAAe,cAG/BrD,EAAMr4K,QAAQw7K,GAAsB,SAA0BG,GAC/B,qBAAlBJ,EAAQI,KACjB5tH,EAAO4tH,GAAQJ,EAAQI,OAI3BtD,EAAMr4K,QAAQy7K,GAAyB,SAA6BE,GAC9DtD,EAAMp7D,SAASs+D,EAAQI,IACzB5tH,EAAO4tH,GAAQtD,EAAMh6D,UAAUi9D,EAAQK,GAAOJ,EAAQI,IACpB,qBAAlBJ,EAAQI,GACxB5tH,EAAO4tH,GAAQJ,EAAQI,GACdtD,EAAMp7D,SAASq+D,EAAQK,IAChC5tH,EAAO4tH,GAAQtD,EAAMh6D,UAAUi9D,EAAQK,IACL,qBAAlBL,EAAQK,KACxB5tH,EAAO4tH,GAAQL,EAAQK,OAI3BtD,EAAMr4K,QAAQ07K,GAAsB,SAA0BC,GAC/B,qBAAlBJ,EAAQI,GACjB5tH,EAAO4tH,GAAQJ,EAAQI,GACW,qBAAlBL,EAAQK,KACxB5tH,EAAO4tH,GAAQL,EAAQK,OAI3B,IAAIC,EAAYJ,EACb3uL,OAAO4uL,GACP5uL,OAAO6uL,GAENG,EAAY3wL,OACbqS,KAAKg+K,GACLzuL,QAAO,SAAyBF,GAC/B,OAAmC,IAA5BgvL,EAAUphL,QAAQ5N,MAW7B,OARAyrL,EAAMr4K,QAAQ67K,GAAW,SAAmCF,GAC7B,qBAAlBJ,EAAQI,GACjB5tH,EAAO4tH,GAAQJ,EAAQI,GACW,qBAAlBL,EAAQK,KACxB5tH,EAAO4tH,GAAQL,EAAQK,OAIpB5tH,I,6BC/DT,SAAS+tH,EAAOrgI,GACd3sD,KAAK2sD,QAAUA,EAGjBqgI,EAAO3wL,UAAUC,SAAW,WAC1B,MAAO,UAAY0D,KAAK2sD,QAAU,KAAO3sD,KAAK2sD,QAAU,KAG1DqgI,EAAO3wL,UAAUstL,YAAa,EAE9BtvL,EAAOC,QAAU0yL,G,+BClBjB,yDAKIC,EAAwB,WACxBC,EAAuC,qBAAfloE,WAA6BA,WAA+B,qBAAXpkH,OAAyBA,OAA2B,qBAAXugH,EAAyBA,EAAS,GAexJ,SAASgsE,EAAmBrxL,GAC1B,IAAI0oB,EAAW,GACf,MAAO,CACLD,GAAI,SAAYtM,GACduM,EAAS3oB,KAAKoc,IAEhBwM,IAAK,SAAaxM,GAChBuM,EAAWA,EAASxmB,QAAO,SAAU0qI,GACnC,OAAOA,IAAMzwH,MAGjBV,IAAK,WACH,OAAOzb,GAET2b,IAAK,SAAa++G,EAAU42D,GAC1BtxL,EAAQ06H,EACRhyG,EAAStT,SAAQ,SAAU+G,GACzB,OAAOA,EAAQnc,EAAOsxL,QAuI9B,IAAI/wH,EAAQxhD,IAAMqL,eA7HlB,SAA4Bq0D,EAAc8yG,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BA3CpB,WACE,IAAI1vL,EAAM,uBACV,OAAOovL,EAAepvL,IAAQovL,EAAepvL,IAAQ,GAAK,EAyCZ2vL,GAAgB,KAE1DnqH,EAAwB,SAAU1pD,GAGpC,SAAS0pD,IACP,IAAI/9D,EAIJ,OAFAA,EAAQqU,EAAWtQ,MAAMtJ,KAAM7C,YAAc6C,MACvCulC,QAAU4nJ,EAAmB5nL,EAAM/G,MAAM1C,OACxCyJ,EAPT+6G,YAAeh9C,EAAU1pD,GAUzB,IAAI8zK,EAASpqH,EAASjnE,UAoCtB,OAlCAqxL,EAAOC,gBAAkB,WACvB,IAAI/vL,EAEJ,OAAOA,EAAO,IAAS4vL,GAAextL,KAAKulC,QAAS3nC,GAGtD8vL,EAAOE,0BAA4B,SAAmC1uI,GACpE,GAAIl/C,KAAKxB,MAAM1C,QAAUojD,EAAUpjD,MAAO,CACxC,IAEIsxL,EAFAS,EAAW7tL,KAAKxB,MAAM1C,MACtB06H,EAAWt3E,EAAUpjD,QA9DfqK,EAiEG0nL,MAjEAznL,EAiEUowH,GA/Dd,IAANrwH,GAAW,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,GA8DlBgnL,EAAc,GAEdA,EAA8C,oBAAzBC,EAAsCA,EAAqBQ,EAAUr3D,GAAYy2D,EAQlF,KAFpBG,GAAe,IAGbptL,KAAKulC,QAAQ9tB,IAAIynC,EAAUpjD,MAAOsxL,IA7E9C,IAAkBjnL,EAAGC,GAmFjBsnL,EAAOpvK,OAAS,WACd,OAAOte,KAAKxB,MAAMgE,UAGb8gE,EA/CmB,CAgD1BtoD,aAEFsoD,EAASwqH,oBAAqBR,EAAwB,IAA0BE,GAAeO,IAAUr9K,OAAOs9K,WAAYV,GAE5H,IAAIxoI,EAAwB,SAAU2gE,GAGpC,SAAS3gE,IACP,IAAInqC,EAiBJ,OAfAA,EAAS8qG,EAAYn8G,MAAMtJ,KAAM7C,YAAc6C,MACxCod,MAAQ,CACbthB,MAAO6e,EAAO/G,YAGhB+G,EAAOszK,SAAW,SAAUz3D,EAAU42D,GAGC,MAFI,EAAtBzyK,EAAOuzK,cAENd,IAClBzyK,EAAO6C,SAAS,CACd1hB,MAAO6e,EAAO/G,cAKb+G,EApBT2lG,YAAex7D,EAAU2gE,GAuBzB,IAAI0oE,EAAUrpI,EAASzoD,UAkCvB,OAhCA8xL,EAAQP,0BAA4B,SAAmC1uI,GACrE,IAAIgvI,EAAehvI,EAAUgvI,aAC7BluL,KAAKkuL,kBAAgCzoL,IAAjByoL,GAA+C,OAAjBA,EAAwBjB,EAAwBiB,GAGpGC,EAAQlpI,kBAAoB,WACtBjlD,KAAKomB,QAAQonK,IACfxtL,KAAKomB,QAAQonK,GAAajpK,GAAGvkB,KAAKiuL,UAGpC,IAAIC,EAAeluL,KAAKxB,MAAM0vL,aAC9BluL,KAAKkuL,kBAAgCzoL,IAAjByoL,GAA+C,OAAjBA,EAAwBjB,EAAwBiB,GAGpGC,EAAQ/oI,qBAAuB,WACzBplD,KAAKomB,QAAQonK,IACfxtL,KAAKomB,QAAQonK,GAAa/oK,IAAIzkB,KAAKiuL,WAIvCE,EAAQv6K,SAAW,WACjB,OAAI5T,KAAKomB,QAAQonK,GACRxtL,KAAKomB,QAAQonK,GAAaj2K,MAE1BgjE,GAIX4zG,EAAQ7vK,OAAS,WACf,OApHa9b,EAoHIxC,KAAKxB,MAAMgE,SAnHzB1H,MAAME,QAAQwH,GAAYA,EAAS,GAAKA,GAmHLxC,KAAKod,MAAMthB,OApHvD,IAAmB0G,GAuHRsiD,EA1DmB,CA2D1B9pC,aAGF,OADA8pC,EAASspI,eAAgBb,EAAwB,IAA0BC,GAAeO,IAAUr9K,OAAQ68K,GACrG,CACLjqH,SAAUA,EACVxe,SAAUA,IAMCuX,Q,+CC7Kf,IAAIgyH,EAAU9zL,EAAQ,KAMlB+zL,EAAgB,CAClBR,mBAAmB,EACnBpuI,aAAa,EACb0uI,cAAc,EACdj0G,cAAc,EACdwlC,aAAa,EACb4uE,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXnxL,MAAM,GAEJoxL,EAAgB,CAClBnyL,MAAM,EACN9B,QAAQ,EACR0B,WAAW,EACXwyL,QAAQ,EACRp0B,QAAQ,EACRt9J,WAAW,EACX2xL,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACT70G,cAAc,EACdwlC,aAAa,EACbgvE,WAAW,EACXnxL,MAAM,GAEJyxL,EAAe,GAInB,SAASC,EAAW5rI,GAElB,OAAI+qI,EAAQc,OAAO7rI,GACVyrI,EAIFE,EAAa3rI,EAAS,WAAiBgrI,EAVhDW,EAAaZ,EAAQe,YAhBK,CACxB,UAAY,EACZ9wK,QAAQ,EACR67D,cAAc,EACdwlC,aAAa,EACbgvE,WAAW,GAYbM,EAAaZ,EAAQgB,MAAQN,EAY7B,IAAIlwL,EAAiBzC,OAAOyC,eACxBk9J,EAAsB3/J,OAAO2/J,oBAC7BnrJ,EAAwBxU,OAAOwU,sBAC/BG,EAA2B3U,OAAO2U,yBAClC+H,EAAiB1c,OAAO0c,eACxBw2K,EAAkBlzL,OAAOC,UAsC7BhC,EAAOC,QArCP,SAASi1L,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqB72K,EAAe22K,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAIjhL,EAAOstJ,EAAoB0zB,GAE3B7+K,IACFnC,EAAOA,EAAK1Q,OAAO6S,EAAsB6+K,KAM3C,IAHA,IAAIG,EAAgBV,EAAWM,GAC3BK,EAAgBX,EAAWO,GAEtB70L,EAAI,EAAGA,EAAI6T,EAAK9T,SAAUC,EAAG,CACpC,IAAIkD,EAAM2Q,EAAK7T,GAEf,IAAKg0L,EAAc9wL,MAAU4xL,IAAaA,EAAU5xL,OAAW+xL,IAAiBA,EAAc/xL,OAAW8xL,IAAiBA,EAAc9xL,IAAO,CAC7I,IAAIW,EAAasS,EAAyB0+K,EAAiB3xL,GAE3D,IAEEe,EAAe2wL,EAAiB1xL,EAAKW,GACrC,MAAOe,OAKf,OAAOgwL,I,6BCnGT,oEAUA,SAASlxL,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI6K,EAAsB,SAAUC,IAjDpC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAsC1CF,CAAUmB,EAAQC,GAElB,IA3EoBvb,EAAaU,EAAYC,EA2EzC6a,EAASkL,EAAapL,GAE1B,SAASA,EAAOnb,GACd,IAAI+G,EAMJ,OApGJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA8FpBsB,CAAgB6B,KAAM2Z,IAEtBpU,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBsb,YAAcvU,EAAMuU,YAAYC,KAAK7B,EAAuB3S,IAC3DA,EAwFT,OA5KoBlH,EAuFPsb,GAvFoB5a,EAuFZ,CAAC,CACpBjB,IAAK,YACLhC,MAAO,WACL,OAAOkE,KAAKga,KAAOha,KAAKga,IAAIC,gBAE7B,CACDnc,IAAK,aACLhC,MAAO,WACDkE,KAAKzB,QACPyB,KAAKzB,OAAOiP,iBAAiB,YAAaxN,KAAK8Z,eAGlD,CACDhc,IAAK,eACLhC,MAAO,WACDkE,KAAKzB,QACPyB,KAAKzB,OAAOkP,oBAAoB,YAAazN,KAAK8Z,eAGrD,CACDhc,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAKrU,KAAKga,KAAoD,SAA7C3Z,iBAAiBL,KAAKga,IAAK,MAAM9R,QAAlD,CAMA,GAFAnI,IAAWma,YAAYla,KAAKga,IAAK,iBAE5Bja,IAAWoa,UAAUna,KAAKga,OAASja,IAAWqa,SAASpa,KAAKga,KAAM,CACrE,IAAIpY,EAAIwD,KAAKC,IAAItF,IAAWoE,cAAcnE,KAAKzB,QAASwB,IAAWyG,eAAexG,KAAKzB,SACvFyB,KAAKga,IAAI5Z,MAAMkB,OAASM,EAAI,KAC5B5B,KAAKga,IAAI5Z,MAAMF,MAAQ0B,EAAI,KAG7B,IAAIwI,EAASrK,IAAWsa,UAAUra,KAAKzB,QACnC4H,EAAIkO,EAAMiG,MAAQlQ,EAAO9H,KAAO5B,SAAS2B,KAAKvB,UAAYf,IAAWqa,SAASpa,KAAKga,KAAO,EAC1F5T,EAAIiO,EAAMkG,MAAQnQ,EAAOhI,IAAM1B,SAAS2B,KAAKpB,WAAalB,IAAWoa,UAAUna,KAAKga,KAAO,EAC/Fha,KAAKga,IAAI5Z,MAAMgC,IAAMgE,EAAI,KACzBpG,KAAKga,IAAI5Z,MAAMkC,KAAO6D,EAAI,KAC1BpG,IAAWya,SAASxa,KAAKga,IAAK,mBAE/B,CACDlc,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7BtU,IAAWma,YAAY7F,EAAMoG,cAAe,kBAE7C,CACD3c,IAAK,oBACLhC,MAAO,WACDkE,KAAKga,MACPha,KAAKzB,OAASyB,KAAK0a,YACnB1a,KAAKsW,gBAGR,CACDxY,IAAK,qBACLhC,MAAO,WACDkE,KAAKga,MAAQha,KAAKzB,SACpByB,KAAKzB,OAASyB,KAAK0a,YACnB1a,KAAKsW,gBAGR,CACDxY,IAAK,uBACLhC,MAAO,WACDkE,KAAKga,MACPha,KAAKzB,OAAS,KACdyB,KAAK0W,kBAGR,CACD5Y,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEb,OAAOiX,IAAW2D,QAAuBC,IAAM7P,cAAc,OAAQ,CACnE8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAOX,IAAM/Z,GAEtB1C,UAAW,QACXwd,eAAgB/a,KAAK+a,sBAtKXzc,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA0KzC2a,EApGiB,CAqGxBqB,c,6BCjMF,6DAGA,SAAStL,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GASjG,SAAS7uF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/Bg0L,EAAsB,SAAUl2K,IAhEpC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUs3K,EAAQl2K,GAElB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa+qK,GAE1B,SAASA,EAAOtxL,GACd,IAAI+G,EAQJ,OArHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAM8vL,IAEtBvqL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBuxL,WAAaxqL,EAAMwqL,WAAWh2K,KAAK7B,EAAuB3S,IAChEA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMyqL,YAAc,EACbzqL,EAgTT,OArZoBlH,EAwGPyxL,GAxGoB/wL,EAwGZ,CAAC,CACpBjB,IAAK,OACLhC,MAAO,SAAcuY,EAAO4hH,GAC1B,IAAIn6H,GAASkE,KAAKxB,MAAMoU,MAAQ5S,KAAKxB,MAAM1C,MAAMkE,KAAKgwL,aAAehwL,KAAKxB,MAAM1C,QAAU,EACtF8D,GAAQI,KAAKxB,MAAMoB,MAAQ,GAAKq2H,EACpCj2H,KAAK23H,YAAYtjH,EAAOvY,EAAQ8D,GAChCyU,EAAMY,mBAEP,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,EAAOgoD,GAC7Br8D,KAAKxB,MAAMihB,WAIfzf,KAAKkxI,UAAW,EAChBlxI,KAAKiwL,gBACLjwL,KAAKkwL,mBAAoB,EACzBlwL,KAAKgwL,YAAc3zH,KAEpB,CACDv+D,IAAK,cACLhC,MAAO,SAAqBuY,EAAOgoD,GACjCr8D,KAAKmwL,oBACLnwL,KAAKk4F,YAAY7jF,EAAOgoD,KAEzB,CACDv+D,IAAK,eACLhC,MAAO,SAAsBuY,EAAOgoD,GAClCr8D,KAAKowL,qBACLpwL,KAAKk4F,YAAY7jF,EAAOgoD,KAEzB,CACDv+D,IAAK,YACLhC,MAAO,SAAmBuY,EAAOgoD,GAC/B,IAAIr8D,KAAKxB,MAAMihB,SAAf,CAIAzf,KAAKgwL,YAAc3zH,EACnB,IAAIv+D,EAAMuW,EAAMvW,IAEJ,eAARA,GAAgC,YAARA,EAC1BkC,KAAKq2H,KAAKhiH,EAAO,GACA,cAARvW,GAA+B,cAARA,GAChCkC,KAAKq2H,KAAKhiH,GAAQ,MAGrB,CACDvW,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKxB,MAAMihB,WAIVzf,KAAKkwL,oBACRlwL,KAAKiwL,gBACLjwL,KAAKqwL,SAASh8K,IAGhBrU,KAAKkwL,mBAAoB,KAE1B,CACDpyL,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKkxI,WACPlxI,KAAKqwL,SAASh8K,GACdA,EAAMY,oBAGT,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKkxI,WACPlxI,KAAKkxI,UAAW,EAEZlxI,KAAKxB,MAAM8xL,YACbtwL,KAAKxB,MAAM8xL,WAAW,CACpB36K,cAAetB,EACfvY,MAAOkE,KAAKxB,MAAM1C,QAItBkE,KAAKuwL,sBACLvwL,KAAKwwL,0BAGR,CACD1yL,IAAK,oBACLhC,MAAO,WACAkE,KAAKywL,eACRzwL,KAAKywL,aAAezwL,KAAK6xI,OAAO93H,KAAK/Z,MACrCU,SAAS8M,iBAAiB,YAAaxN,KAAKywL,eAGzCzwL,KAAK0wL,kBACR1wL,KAAK0wL,gBAAkB1wL,KAAKu2F,UAAUx8E,KAAK/Z,MAC3CU,SAAS8M,iBAAiB,UAAWxN,KAAK0wL,oBAG7C,CACD5yL,IAAK,sBACLhC,MAAO,WACDkE,KAAKywL,eACP/vL,SAAS+M,oBAAoB,YAAazN,KAAKywL,cAC/CzwL,KAAKywL,aAAe,MAGlBzwL,KAAK0wL,kBACPhwL,SAAS+M,oBAAoB,UAAWzN,KAAK0wL,iBAC7C1wL,KAAK0wL,gBAAkB,QAG1B,CACD5yL,IAAK,qBACLhC,MAAO,WACAkE,KAAKywL,eACRzwL,KAAKywL,aAAezwL,KAAK6xI,OAAO93H,KAAK/Z,MACrCU,SAAS8M,iBAAiB,YAAaxN,KAAKywL,eAGzCzwL,KAAK0wL,kBACR1wL,KAAK0wL,gBAAkB1wL,KAAKu2F,UAAUx8E,KAAK/Z,MAC3CU,SAAS8M,iBAAiB,WAAYxN,KAAK0wL,oBAG9C,CACD5yL,IAAK,uBACLhC,MAAO,WACDkE,KAAKywL,eACP/vL,SAAS+M,oBAAoB,YAAazN,KAAKywL,cAC/CzwL,KAAKywL,aAAe,MAGlBzwL,KAAK0wL,kBACPhwL,SAAS+M,oBAAoB,WAAYzN,KAAK0wL,iBAC9C1wL,KAAK0wL,gBAAkB,QAG1B,CACD5yL,IAAK,gBACLhC,MAAO,WACL,IAAIoG,EAAOlC,KAAKC,GAAGkC,wBACnBnC,KAAK2wL,MAAQzuL,EAAKI,KAAOvC,IAAWiF,sBACpChF,KAAK4wL,MAAQ1uL,EAAKE,IAAMrC,IAAW+E,qBACnC9E,KAAK6wL,SAAW7wL,KAAKC,GAAGE,YACxBH,KAAK8wL,UAAY9wL,KAAKC,GAAGsB,eAE1B,CACDzD,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAIo5D,EACAnzD,EAAQjG,EAAM0oI,QAAU1oI,EAAM0oI,QAAQ,GAAGziI,MAAQjG,EAAMiG,MACvDC,EAAQlG,EAAM0oI,QAAU1oI,EAAM0oI,QAAQ,GAAGxiI,MAAQlG,EAAMkG,MACdkzD,EAAd,eAA3BztE,KAAKxB,MAAMw4I,YAAmE,KAAtB18H,EAAQta,KAAK2wL,OAAe3wL,KAAK6wL,SAAoE,KAAvC7wL,KAAK4wL,MAAQ5wL,KAAK8wL,UAAYv2K,GAAeva,KAAK8wL,UAC5K,IAAIt6D,GAAYx2H,KAAKxB,MAAM6G,IAAMrF,KAAKxB,MAAMkhC,MAAQ+tC,EAAc,KAAOztE,KAAKxB,MAAMkhC,IAEpF,GAAI1/B,KAAKxB,MAAMoB,KAAM,CACnB,IAAIiuL,EAAW7tL,KAAKxB,MAAMoU,MAAQ5S,KAAKxB,MAAM1C,MAAMkE,KAAKgwL,aAAehwL,KAAKxB,MAAM1C,MAC9E60C,EAAO6lF,EAAWq3D,EAClBl9I,EAAO,EAAG6lF,EAAWq3D,EAAWzoL,KAAK8hE,KAAKsvD,EAAWx2H,KAAKxB,MAAMoB,KAAOiuL,EAAW7tL,KAAKxB,MAAMoB,MAAQI,KAAKxB,MAAMoB,KAAc+wC,EAAO,IAAG6lF,EAAWq3D,EAAWzoL,KAAKsmB,MAAM8qG,EAAWx2H,KAAKxB,MAAMoB,KAAOiuL,EAAW7tL,KAAKxB,MAAMoB,MAAQI,KAAKxB,MAAMoB,WAEnP42H,EAAWpxH,KAAKsmB,MAAM8qG,GAGxBx2H,KAAK23H,YAAYtjH,EAAOmiH,KAEzB,CACD14H,IAAK,cACLhC,MAAO,SAAqBuY,EAAOvY,GACjC,IAAI06H,EAAWl2H,WAAWxE,EAAMs5J,QAAQ,KAExC,GAAIp1J,KAAKxB,MAAMoU,MAAO,CACK,IAArB5S,KAAKgwL,YACHx5D,EAAWx2H,KAAKxB,MAAMkhC,IAAK82F,EAAWx2H,KAAKxB,MAAMkhC,IAAa82F,EAAWx2H,KAAKxB,MAAM1C,MAAM,KAAI06H,EAAWx2H,KAAKxB,MAAM1C,MAAM,IAE1H06H,EAAWx2H,KAAKxB,MAAM6G,IAAKmxH,EAAWx2H,KAAKxB,MAAM6G,IAAamxH,EAAWx2H,KAAKxB,MAAM1C,MAAM,KAAI06H,EAAWx2H,KAAKxB,MAAM1C,MAAM,IAGhI,IAAIi1L,EAAYhkG,EAAmB/sF,KAAKxB,MAAM1C,OAE9Ci1L,EAAU/wL,KAAKgwL,aAAex5D,EAE1Bx2H,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOi1L,SAIPv6D,EAAWx2H,KAAKxB,MAAMkhC,IAAK82F,EAAWx2H,KAAKxB,MAAMkhC,IAAa82F,EAAWx2H,KAAKxB,MAAM6G,MAAKmxH,EAAWx2H,KAAKxB,MAAM6G,KAE/GrF,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAO06H,MAKd,CACD14H,IAAK,uBACLhC,MAAO,WACLkE,KAAKuwL,sBACLvwL,KAAKwwL,yBAEN,CACD1yL,IAAK,eACLhC,MAAO,SAAsBk1L,EAAWC,EAAa50H,GACnD,IAAI1hD,EAAS3a,KAETkxL,EAAkBj0L,YAAW,kBAAmB,CAClD,wBAAmC,IAAVo/D,EACzB,sBAAiC,IAAVA,EACvB,yBAA0Br8D,KAAKgwL,cAAgB3zH,IAEjD,OAAoBxhD,IAAM7P,cAAc,OAAQ,CAC9C8O,YAAa,SAAqBzF,GAChC,OAAOsG,EAAOb,YAAYzF,EAAOgoD,IAEnC8hF,aAAc,SAAsB9pI,GAClC,OAAOsG,EAAOwjI,aAAa9pI,EAAOgoD,IAEpC5nD,UAAW,SAAmBJ,GAC5B,OAAOsG,EAAOlG,UAAUJ,EAAOgoD,IAEjCyI,SAAU9kE,KAAKxB,MAAMsmE,SACrBvnE,UAAW2zL,EACX9wL,MAAO,CACLkrK,WAAYtrK,KAAKkxI,SAAW,OAAS,KACrC5uI,KAAoB,OAAd0uL,GAAsBA,EAAY,IACxCpqL,OAAQqqL,GAAeA,EAAc,KAEvCltK,KAAM,SACN,gBAAiB/jB,KAAKxB,MAAMkhC,IAC5B,gBAAiB1/B,KAAKxB,MAAM6G,IAC5B,gBAAiB2rL,GAAaC,EAC9B,kBAAmBjxL,KAAKxB,MAAMkuF,mBAGjC,CACD5uF,IAAK,oBACLhC,MAAO,WACL,IAAI8iH,EAAS5+G,KAAKxB,MAAM1C,OAAS,CAAC,EAAG,GACjCq1L,EAAwC,eAA3BnxL,KAAKxB,MAAMw4I,YACxBo6C,EAAmF,KAA/DxyE,EAAO,GAAK5+G,KAAKxB,MAAMkhC,IAAM,EAAIk/E,EAAO,GAAK5+G,KAAKxB,MAAMkhC,MAAc1/B,KAAKxB,MAAM6G,IAAMrF,KAAKxB,MAAMkhC,KACtH2xJ,EAAmF,KAAjEzyE,EAAO,GAAK5+G,KAAKxB,MAAM6G,IAAM,IAAMu5G,EAAO,GAAK5+G,KAAKxB,MAAMkhC,MAAc1/B,KAAKxB,MAAM6G,IAAMrF,KAAKxB,MAAMkhC,KACtH4xJ,EAAmBH,EAAanxL,KAAKuxL,aAAaH,EAAkB,KAAM,GAAKpxL,KAAKuxL,aAAa,KAAMH,EAAkB,GACzHI,EAAiBL,EAAanxL,KAAKuxL,aAAaF,EAAgB,KAAM,GAAKrxL,KAAKuxL,aAAa,KAAMF,EAAgB,GACnHI,EAAaN,EAAa,CAC5B7uL,KAAM8uL,EAAmB,IACzBlxL,MAAOmxL,EAAiBD,EAAmB,KACzC,CACFxqL,OAAQwqL,EAAmB,IAC3B9vL,OAAQ+vL,EAAiBD,EAAmB,KAE9C,OAAoBv2K,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,OAAQ,CACrGzN,UAAW,iBACX6C,MAAOqxL,IACLH,EAAkBE,KAEvB,CACD1zL,IAAK,qBACLhC,MAAO,WACL,IACI2xE,EADA3xE,EAAQkE,KAAKxB,MAAM1C,OAAS,EAEJ2xE,EAAxB3xE,EAAQkE,KAAKxB,MAAMkhC,IAAmB,EAAW5jC,EAAQkE,KAAKxB,MAAM6G,IAAmB,IAAkD,KAA1BvJ,EAAQkE,KAAKxB,MAAMkhC,MAAc1/B,KAAKxB,MAAM6G,IAAMrF,KAAKxB,MAAMkhC,KAChL,IAAI+xJ,EAAwC,eAA3BzxL,KAAKxB,MAAMw4I,YAA+B,CACzD92I,MAAOutE,EAAc,KACnB,CACFnsE,OAAQmsE,EAAc,KAEpB66G,EAAoC,eAA3BtoL,KAAKxB,MAAMw4I,YAA+Bh3I,KAAKuxL,aAAa9jH,EAAa,KAAM,MAAQztE,KAAKuxL,aAAa,KAAM9jH,EAAa,MACzI,OAAoB5yD,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,OAAQ,CACrGzN,UAAW,iBACX6C,MAAOqxL,IACLnJ,KAEL,CACDxqL,IAAK,SACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAETzC,EAAYN,YAAW,uBAAwB+C,KAAKxB,MAAMjB,UAAW,CACvE,aAAcyC,KAAKxB,MAAMihB,SACzB,sBAAkD,eAA3Bzf,KAAKxB,MAAMw4I,YAClC,oBAAgD,aAA3Bh3I,KAAKxB,MAAMw4I,cAE9Bh4H,EAAUhf,KAAKxB,MAAMoU,MAAQ5S,KAAK0xL,oBAAsB1xL,KAAK2xL,qBACjE,OAAoB92K,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfhJ,IAAK,SAAa7a,GAChB,OAAOihB,EAAOjhB,GAAKA,GAErBG,MAAOJ,KAAKxB,MAAM4B,MAClB7C,UAAWA,EACXyiE,QAAShgE,KAAK+vL,YACb/wK,QAhZS1gB,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAmZzC8wL,EA9TiB,CA+TxB90K,aAjViClf,EAmVK,CACtCgoB,GAAI,KACJhoB,MAAO,KACP4jC,IAAK,EACLr6B,IAAK,IACL2xI,YAAa,aACbp3I,KAAM,KACNgT,OAAO,EACPxS,MAAO,KACP7C,UAAW,KACXkiB,UAAU,EACVqlD,SAAU,EACV4nB,eAAgB,KAChBn6E,SAAU,KACV+9K,WAAY,OAjWgBxyL,EAmVN,kBAnVCd,EAmVT8yL,GAjVZ1zL,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCpIf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B81L,EAAoB,SAAUh4K,IAhElC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUo5K,EAAMh4K,GAEhB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa6sK,GAE1B,SAASA,EAAKpzL,GACZ,IAAI+G,EAkBJ,OA/HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAM4xL,IAEtBrsL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,GACd7X,EAAMssL,OAAS,GACftsL,EAAMusL,KAAO,GACbvsL,EAAMwsL,KAAO,GACbxsL,EAAMysL,WAAa,EAAI5sL,KAAK6sL,GAAK,EACjC1sL,EAAM2sL,YAAc9sL,KAAK6sL,GAAK,EAC9B1sL,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMuU,YAAcvU,EAAMuU,YAAYC,KAAK7B,EAAuB3S,IAClEA,EAAMosF,UAAYpsF,EAAMosF,UAAU53E,KAAK7B,EAAuB3S,IAC9DA,EAAM44I,aAAe54I,EAAM44I,aAAapkI,KAAK7B,EAAuB3S,IACpEA,EAAM8wF,WAAa9wF,EAAM8wF,WAAWt8E,KAAK7B,EAAuB3S,IAChEA,EAAM4sL,YAAc5sL,EAAM4sL,YAAYp4K,KAAK7B,EAAuB3S,IAClEA,EAAM84I,YAAc94I,EAAM84I,YAAYtkI,KAAK7B,EAAuB3S,IAC3DA,EA+NT,OA9UoBlH,EAkHPuzL,GAlHoB7yL,EAkHd,CAAC,CAClBjB,IAAK,cACLhC,MAAO,SAAqBuK,EAASC,GACnC,IAAI61F,EAAK91F,EAAUrG,KAAKxB,MAAM2mH,KAAO,EACjC/oB,EAAKp8F,KAAKxB,MAAM2mH,KAAO,EAAI7+G,EAC3B8rL,EAAQhtL,KAAKitL,MAAMj2F,EAAID,GACvBvmF,GAASxQ,KAAK6sL,GAAK,EAAI7sL,KAAK6sL,GAAK,EACrCjyL,KAAKoU,YAAYg+K,EAAOx8K,KAEzB,CACD9X,IAAK,cACLhC,MAAO,SAAqBs2L,EAAOx8K,GACjC,IAAI08K,EACJ,GAAIF,EAAQpyL,KAAKkyL,WAAYI,EAActyL,KAAKuyL,SAASH,EAAOpyL,KAAKgyL,WAAYhyL,KAAKkyL,WAAYlyL,KAAKxB,MAAMkhC,IAAK1/B,KAAKxB,MAAM6G,SAAU,MAAI+sL,EAAQx8K,GAA+H,OAAxH08K,EAActyL,KAAKuyL,SAASH,EAAQ,EAAIhtL,KAAK6sL,GAAIjyL,KAAKgyL,WAAYhyL,KAAKkyL,WAAYlyL,KAAKxB,MAAMkhC,IAAK1/B,KAAKxB,MAAM6G,KAExQ,GAAIrF,KAAKxB,MAAM+T,SAAU,CACvB,IAAIikH,EAAWpxH,KAAKwlB,OAAO0nK,EAActyL,KAAKxB,MAAMkhC,KAAO1/B,KAAKxB,MAAMoB,MAAQI,KAAKxB,MAAMoB,KAAOI,KAAKxB,MAAMkhC,IAC3G1/B,KAAKxB,MAAM+T,SAAS,CAClBzW,MAAO06H,OAIZ,CACD14H,IAAK,WACLhC,MAAO,SAAkBqK,EAAGqsL,EAAOC,EAAOC,EAAQC,GAChD,OAAQxsL,EAAIqsL,IAAUG,EAASD,IAAWD,EAAQD,GAASE,IAE5D,CACD50L,IAAK,UACLhC,MAAO,SAAiBuY,GACjBrU,KAAKxB,MAAMihB,UAAazf,KAAKxB,MAAM6T,UACtCrS,KAAK23H,YAAYtjH,EAAMu+K,YAAYvsL,QAASgO,EAAMu+K,YAAYtsL,WAGjE,CACDxI,IAAK,cACLhC,MAAO,SAAqBuY,GACrBrU,KAAKxB,MAAMihB,UAAazf,KAAKxB,MAAM6T,WACtCrS,KAAK6yL,wBAA0B7yL,KAAKmyL,YACpCnyL,KAAK8yL,sBAAwB9yL,KAAK2xF,UAClC/wF,OAAO4M,iBAAiB,YAAaxN,KAAK6yL,yBAC1CjyL,OAAO4M,iBAAiB,UAAWxN,KAAK8yL,uBACxCz+K,EAAMY,oBAGT,CACDnX,IAAK,YACLhC,MAAO,SAAmBuY,GACnBrU,KAAKxB,MAAMihB,UAAazf,KAAKxB,MAAM6T,WACtCzR,OAAO6M,oBAAoB,YAAazN,KAAK6yL,yBAC7CjyL,OAAO6M,oBAAoB,UAAWzN,KAAK8yL,uBAC3C9yL,KAAK6yL,wBAA0B,KAC/B7yL,KAAK8yL,sBAAwB,KAC7Bz+K,EAAMY,oBAGT,CACDnX,IAAK,eACLhC,MAAO,SAAsBuY,GACtBrU,KAAKxB,MAAMihB,UAAazf,KAAKxB,MAAM6T,WACtCrS,KAAKq9I,wBAA0Br9I,KAAKq+I,YACpCr+I,KAAKu9I,uBAAyBv9I,KAAKq2F,WACnCz1F,OAAO4M,iBAAiB,YAAaxN,KAAKq9I,wBAAyB,CACjEI,SAAS,EACTC,YAAY,IAEd98I,OAAO4M,iBAAiB,WAAYxN,KAAKu9I,2BAG5C,CACDz/I,IAAK,aACLhC,MAAO,SAAoBuY,GACpBrU,KAAKxB,MAAMihB,UAAazf,KAAKxB,MAAM6T,WACtCzR,OAAO6M,oBAAoB,YAAazN,KAAKq9I,yBAC7Cz8I,OAAO6M,oBAAoB,WAAYzN,KAAKu9I,wBAC5Cv9I,KAAKq9I,wBAA0B,KAC/Br9I,KAAKu9I,uBAAyB,QAGjC,CACDz/I,IAAK,cACLhC,MAAO,SAAqBuY,GACrBrU,KAAKxB,MAAMihB,UAAazf,KAAKxB,MAAM6T,WACtCrS,KAAK23H,YAAYtjH,EAAMhO,QAASgO,EAAM/N,SACtC+N,EAAMY,oBAGT,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAKrU,KAAKxB,MAAMihB,WAAazf,KAAKxB,MAAM6T,UAAqC,IAAzBgC,EAAM0oI,QAAQpiJ,OAAc,CAC9E,IAAIuH,EAAOlC,KAAKuC,QAAQJ,wBACpB4wL,EAAQ1+K,EAAM2+K,cAAcjpL,KAAK,GACjC1D,EAAU0sL,EAAMh3F,QAAU75F,EAAKI,KAC/BgE,EAAUysL,EAAM/2F,QAAU95F,EAAKE,IACnCpC,KAAK23H,YAAYtxH,EAASC,GAC1B+N,EAAMY,oBAGT,CACDnX,IAAK,YACLhC,MAAO,WACL,MAAO,KAAKiC,OAAOiC,KAAK2xI,OAAQ,KAAK5zI,OAAOiC,KAAK4xI,OAAQ,OAAO7zI,OAAOiC,KAAK6xL,OAAQ,KAAK9zL,OAAOiC,KAAK6xL,OAAQ,WAAW9zL,OAAOiC,KAAKizL,OAAQ,KAAKl1L,OAAOiC,KAAKkzL,UAE9J,CACDp1L,IAAK,YACLhC,MAAO,WACL,MAAO,KAAKiC,OAAOiC,KAAKmzL,QAAS,KAAKp1L,OAAOiC,KAAKozL,QAAS,OAAOr1L,OAAOiC,KAAK6xL,OAAQ,KAAK9zL,OAAOiC,KAAK6xL,OAAQ,OAAO9zL,OAAOiC,KAAKqzL,WAAY,KAAKt1L,OAAOiC,KAAKszL,QAAS,KAAKv1L,OAAOiC,KAAKuzL,SAAU,KAAKx1L,OAAOiC,KAAKwzL,YAErN,CACD11L,IAAK,cACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMkhC,IAAM,GAAK1/B,KAAKxB,MAAM6G,IAAM,EAAUrF,KAAKuyL,SAASvyL,KAAKxB,MAAMkhC,IAAK1/B,KAAKxB,MAAMkhC,IAAK1/B,KAAKxB,MAAM6G,IAAKrF,KAAKgyL,WAAYhyL,KAAKkyL,YAAwBlyL,KAAKuyL,SAAS,EAAGvyL,KAAKxB,MAAMkhC,IAAK1/B,KAAKxB,MAAM6G,IAAKrF,KAAKgyL,WAAYhyL,KAAKkyL,cAEzO,CACDp0L,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKuyL,SAASvyL,KAAKxB,MAAM1C,MAAOkE,KAAKxB,MAAMkhC,IAAK1/B,KAAKxB,MAAM6G,IAAKrF,KAAKgyL,WAAYhyL,KAAKkyL,cAE9F,CACDp0L,IAAK,OACLhC,MAAO,WACL,OAAOkE,KAAK8xL,KAAO1sL,KAAKquL,IAAIzzL,KAAKgyL,YAAchyL,KAAK6xL,SAErD,CACD/zL,IAAK,OACLhC,MAAO,WACL,OAAOkE,KAAK+xL,KAAO3sL,KAAKsuL,IAAI1zL,KAAKgyL,YAAchyL,KAAK6xL,SAErD,CACD/zL,IAAK,OACLhC,MAAO,WACL,OAAOkE,KAAK8xL,KAAO1sL,KAAKquL,IAAIzzL,KAAKkyL,YAAclyL,KAAK6xL,SAErD,CACD/zL,IAAK,OACLhC,MAAO,WACL,OAAOkE,KAAK+xL,KAAO3sL,KAAKsuL,IAAI1zL,KAAKkyL,YAAclyL,KAAK6xL,SAErD,CACD/zL,IAAK,QACLhC,MAAO,WACL,OAAOkE,KAAK8xL,KAAO1sL,KAAKquL,IAAIzzL,KAAK2zL,eAAiB3zL,KAAK6xL,SAExD,CACD/zL,IAAK,QACLhC,MAAO,WACL,OAAOkE,KAAK+xL,KAAO3sL,KAAKsuL,IAAI1zL,KAAK2zL,eAAiB3zL,KAAK6xL,SAExD,CACD/zL,IAAK,SACLhC,MAAO,WACL,OAAOkE,KAAK8xL,KAAO1sL,KAAKquL,IAAIzzL,KAAK4zL,gBAAkB5zL,KAAK6xL,SAEzD,CACD/zL,IAAK,SACLhC,MAAO,WACL,OAAOkE,KAAK+xL,KAAO3sL,KAAKsuL,IAAI1zL,KAAK4zL,gBAAkB5zL,KAAK6xL,SAEzD,CACD/zL,IAAK,WACLhC,MAAO,WACL,OAAOsJ,KAAKgI,IAAIpN,KAAK2zL,cAAgB3zL,KAAK4zL,gBAAkBxuL,KAAK6sL,GAAK,EAAI,IAE3E,CACDn0L,IAAK,QACLhC,MAAO,WACL,OAAOkE,KAAK4zL,eAAiB5zL,KAAK2zL,cAAgB,EAAI,IAEvD,CACD71L,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMg+G,cAAcr5G,QAAQ,UAAWnD,KAAKxB,MAAM1C,MAAMQ,cAErE,CACDwB,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAET61G,EAAqB54G,YAAW,qBAAsB,CACxD,aAAc+C,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMjB,WACVyP,EAAOhN,KAAKxB,MAAM+wI,WAA0B10H,IAAM7P,cAAc,OAAQ,CAC1E7E,EAAG,GACHC,EAAG,GACHytL,WAAY,SACZC,KAAM9zL,KAAKxB,MAAMy8B,UACjB19B,UAAW,cACXd,KAAMuD,KAAKxB,MAAM/B,MAChBuD,KAAK+zL,kBACR,OAAoBl5K,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWs4G,EACXz1G,MAAOJ,KAAKxB,MAAM4B,MAClB0a,IAAK,SAAa7a,GAChB,OAAO0a,EAAOpY,QAAUtC,IAEZ4a,IAAM7P,cAAc,MAAO,CACzCgpL,QAAS,cACT9zL,MAAOF,KAAKxB,MAAM2mH,KAClB7jH,OAAQtB,KAAKxB,MAAM2mH,KACnBnlD,QAAShgE,KAAKggE,QACdlmD,YAAa9Z,KAAK8Z,YAClB63E,UAAW3xF,KAAK2xF,UAChBwsD,aAAcn+I,KAAKm+I,aACnB9nD,WAAYr2F,KAAKq2F,YACHx7E,IAAM7P,cAAc,OAAQ,CAC1CpJ,EAAG5B,KAAKi0L,YACRC,YAAal0L,KAAKxB,MAAM01L,YACxBC,OAAQn0L,KAAKxB,MAAM41L,WACnB72L,UAAW,iBACIsd,IAAM7P,cAAc,OAAQ,CAC3CpJ,EAAG5B,KAAKq0L,YACRH,YAAal0L,KAAKxB,MAAM01L,YACxBC,OAAQn0L,KAAKxB,MAAM81L,WACnB/2L,UAAW,iBACTyP,SAzUQ1O,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA4UzC4yL,EAvPe,CAwPtB52K,aA1QiClf,EA4QG,CACpCgoB,GAAI,KACJ1jB,MAAO,KACP7C,UAAW,KACXzB,MAAO,KACPqpH,KAAM,IACN1lG,UAAU,EACVpN,UAAU,EACVk9H,WAAW,EACX3vI,KAAM,EACN8/B,IAAK,EACLr6B,IAAK,IACL6uL,YAAa,GACbz3L,KAAM,KACN63L,WAAY,8BACZF,WAAY,8BACZn5J,UAAW,qCACXuhF,cAAe,UACfjqG,SAAU,OA9RkBzU,EA4QR,kBA5QGd,EA4QT40L,GA1QZx1L,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,oEAIA,SAAS28E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASgB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAIylL,EAAyC,SAAU36K,GACrDpB,EAAU+7K,EAA2B36K,GAErC,IAAIC,EAASgE,EAAe02K,GAE5B,SAASA,IAGP,OAFAp2L,EAAgB6B,KAAMu0L,GAEf16K,EAAOvQ,MAAMtJ,KAAM7C,WAyC5B,OAtCA2B,EAAay1L,EAA2B,CAAC,CACvCz2L,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,sBAAuB,CAChD,+BAAgC+C,KAAKxB,MAAMy8G,OAC3C,aAAcj7G,KAAKxB,MAAMihB,WAE3B,OAAoB5E,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKxB,MAAMo6E,WACpB37E,WAAY,sBACZ0oB,GAAI3lB,KAAKxB,MAAMmnB,GACfC,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKxB,MAAM0mB,QACpBE,UAAWplB,KAAKxB,MAAM4mB,UACtBC,OAAQrlB,KAAKxB,MAAM6mB,OACnBE,SAAUvlB,KAAKxB,MAAM+mB,UACP1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAWA,EACXyiE,QAAShgE,KAAKxB,MAAMwhE,SACnBhgE,KAAKxB,MAAMgE,aAEf,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAOhkB,KAAKxB,MAAMy8G,OAAS14G,EAAuBsY,IAAM7P,cAAcmS,IAAQ,CAC5E5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpBuwL,EAjDoC,CAkD3Cv5K,aAEFxK,EAAgB+jL,EAA2B,eAAgB,CACzDvwL,SAAU,KACVi3G,QAAQ,EACRx7F,UAAU,EACVugD,QAAS,OAGX,IAAIw0H,EAAgC35K,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACpE,OAAoBD,IAAM7P,cAAcupL,EAA2B97G,EAAS,CAC1EG,WAAY99D,GACXtc,OAGL,SAASqmB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI2lL,EAA2B,SAAU76K,GACvCpB,EAAUi8K,EAAa76K,GAEvB,IAAIC,EAASkL,EAAa0vK,GAE1B,SAASA,EAAYj2L,GACnB,IAAI+G,EAuBJ,OArBApH,EAAgB6B,KAAMy0L,IAEtBlvL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZ45F,gBAAgB,GAElBzxG,EAAM4tH,aAAe5tH,EAAM4tH,aAAap5G,KAAK7B,EAAuB3S,IACpEA,EAAMmvL,eAAiBnvL,EAAMmvL,eAAe36K,KAAK7B,EAAuB3S,IACxEA,EAAMgyG,eAAiBhyG,EAAMgyG,eAAex9F,KAAK7B,EAAuB3S,IACxEA,EAAMiyG,iBAAmBjyG,EAAMiyG,iBAAiBz9F,KAAK7B,EAAuB3S,IAC5EA,EAAMkyG,cAAgBlyG,EAAMkyG,cAAc19F,KAAK7B,EAAuB3S,IACtEA,EAAMmyG,gBAAkBnyG,EAAMmyG,gBAAgB39F,KAAK7B,EAAuB3S,IAC1EA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAMovL,iBAAmBpvL,EAAMovL,iBAAiB56K,KAAK7B,EAAuB3S,IAC5EA,EAAMqvL,eAAiBrvL,EAAMqvL,eAAe76K,KAAK7B,EAAuB3S,IACxEA,EAAMsvL,iBAAmBtvL,EAAMsvL,iBAAiB96K,KAAK7B,EAAuB3S,IAC5EA,EAAMuvL,eAAiBvvL,EAAMuvL,eAAe/6K,KAAK7B,EAAuB3S,IACxEA,EAAMssI,OAAStsI,EAAMssI,OAAO93H,KAAK7B,EAAuB3S,IACxDA,EAAMgxF,UAAYhxF,EAAMgxF,UAAUx8E,KAAK7B,EAAuB3S,IAC9DA,EAAMqyG,WAA0B5xF,sBAChCzgB,EAAMumF,SAAwB9lE,oBAAUzgB,EAAM/G,MAAMstF,UAC7CvmF,EAowBT,OAjwBAzG,EAAa21L,EAAa,CAAC,CACzB32L,IAAK,eACLhC,MAAO,SAAsBuY,GACtBrU,KAAKxB,MAAMy8G,QACd72F,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAK8J,cAIlB,CACDhM,IAAK,iBACLhC,MAAO,SAAwBuY,GACzBrU,KAAKxB,MAAMihB,WAIfzf,KAAKmwL,oBACLnwL,KAAK80L,eAAezgL,MAErB,CACDvW,IAAK,iBACLhC,MAAO,SAAwBuY,GACzBrU,KAAKxB,MAAMihB,WAIfzf,KAAK+0L,aAAc,EACnB/0L,KAAKg1L,QAAQ3gL,GACbtU,IAAWya,SAASxa,KAAK8J,UAAW,6BAErC,CACDhM,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIjS,EAAMpC,KAAKi1L,QAAQ9yL,wBAAwBC,KAAOxB,OAAOC,aAAeH,SAASC,gBAAgBG,WAAaJ,SAAS2B,KAAKvB,WAAa,GAC7Id,KAAKk1L,SAAWl1L,KAAKm1L,YAAY,CAC/BzsD,EAAGtjI,KAAKsmB,MAAM,KAAO,IAAMtmB,KAAKC,IAAI,EAAGD,KAAKs6B,IAAI,KAAMrrB,EAAMkG,OAASlG,EAAM+gL,eAAe,GAAG76K,OAASnY,KAAS,KAC/G7C,EAAG,IACH2O,EAAG,MAELlO,KAAKq1L,sBACLr1L,KAAKs1L,YACLt1L,KAAKoU,gBAEN,CACDtW,IAAK,mBACLhC,MAAO,SAA0BuY,GAC3BrU,KAAKxB,MAAMihB,WAIfzf,KAAKmwL,oBACLnwL,KAAK60L,iBAAiBxgL,MAEvB,CACDvW,IAAK,mBACLhC,MAAO,SAA0BuY,GAC3BrU,KAAKxB,MAAMihB,WAIfzf,KAAKu1L,eAAgB,EACrBv1L,KAAKw1L,UAAUnhL,GACftU,IAAWya,SAASxa,KAAK8J,UAAW,0BACpCuK,EAAMY,oBAEP,CACDnX,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKu1L,gBACPv1L,KAAKw1L,UAAUnhL,GACfA,EAAMY,kBAGJjV,KAAK+0L,cACP/0L,KAAKg1L,QAAQ3gL,GACbA,EAAMY,oBAGT,CACDnX,IAAK,YACLhC,MAAO,WACLkE,KAAKu1L,eAAgB,EACrBv1L,KAAK+0L,aAAc,EACnBh1L,IAAWma,YAAYla,KAAK8J,UAAW,0BACvC9J,KAAKuwL,wBAEN,CACDzyL,IAAK,oBACLhC,MAAO,WACLkE,KAAKy1L,gCACLz1L,KAAK01L,gCAEN,CACD53L,IAAK,sBACLhC,MAAO,WACLkE,KAAK21L,kCACL31L,KAAK41L,kCAEN,CACD93L,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,IAAInS,EAAOlC,KAAK61L,cAAc1zL,wBAC1BC,EAAMF,EAAKE,KAAOxB,OAAOC,aAAeH,SAASC,gBAAgBG,WAAaJ,SAAS2B,KAAKvB,WAAa,GACzGwB,EAAOJ,EAAKI,KAAO5B,SAAS2B,KAAKpB,WACjC60L,EAAa1wL,KAAKsmB,MAAM,IAAMtmB,KAAKC,IAAI,EAAGD,KAAKs6B,IAAI,KAAMrrB,EAAMiG,OAASjG,EAAM+gL,eAAe,GAAG96K,OAAShY,IAAS,KAClHyzL,EAAa3wL,KAAKsmB,MAAM,KAAO,IAAMtmB,KAAKC,IAAI,EAAGD,KAAKs6B,IAAI,KAAMrrB,EAAMkG,OAASlG,EAAM+gL,eAAe,GAAG76K,OAASnY,KAAS,KAC7HpC,KAAKk1L,SAAWl1L,KAAKm1L,YAAY,CAC/BzsD,EAAG1oI,KAAKk1L,SAASxsD,EACjBnpI,EAAGu2L,EACH5nL,EAAG6nL,IAEL/1L,KAAKg2L,oBACLh2L,KAAK02H,cACL12H,KAAKoU,gBAEN,CACDtW,IAAK,cACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAMsoB,QACjB,IAAK,MACH9mB,KAAKuS,SAASvS,KAAKi2L,SAASj2L,KAAKk1L,WACjC,MAEF,IAAK,MACHl1L,KAAKuS,SAASvS,KAAKk2L,SAASl2L,KAAKk1L,WACjC,MAEF,IAAK,MACHl1L,KAAKuS,SAASvS,KAAKk1L,aAIxB,CACDp3L,IAAK,QACLhC,MAAO,SAAeA,GACpB,IAAIq6L,EAEJ,GAAIr6L,EACF,OAAQkE,KAAKxB,MAAMsoB,QACjB,IAAK,MACHqvK,EAAMn2L,KAAKo2L,SAASt6L,GACpB,MAEF,IAAK,MACHq6L,EAAMn2L,KAAKq2L,SAASv6L,GACpB,MAEF,IAAK,MACHq6L,EAAMr6L,OAIVq6L,EAAMn2L,KAAKo2L,SAASp2L,KAAKxB,MAAM83L,cAGjC,OAAOH,IAER,CACDr4L,IAAK,iBACLhC,MAAO,SAAwBA,GAC7BkE,KAAKk1L,SAAWl1L,KAAKu2L,MAAMz6L,KAE5B,CACDgC,IAAK,cACLhC,MAAO,SAAqByyB,EAAMosG,GAChC,OAAOpsG,EAAKm6G,IAAM/N,EAAK+N,GAAKn6G,EAAKhvB,IAAMo7H,EAAKp7H,GAAKgvB,EAAKrgB,IAAMysH,EAAKzsH,IAElE,CACDpQ,IAAK,WACLhC,MAAO,SAAkBA,GACnBkE,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBzW,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOA,OAKd,CACDgC,IAAK,sBACLhC,MAAO,WACL,GAAIkE,KAAK61L,cAAe,CACtB,IAAIX,EAAWl1L,KAAKm1L,YAAY,CAC9BzsD,EAAG1oI,KAAKk1L,SAASxsD,EACjBnpI,EAAG,IACH2O,EAAG,MAELlO,KAAK61L,cAAcz1L,MAAM26B,gBAAkB,IAAM/6B,KAAKi2L,SAASf,MAGlE,CACDp3L,IAAK,oBACLhC,MAAO,WACDkE,KAAKw2L,cACPx2L,KAAKw2L,YAAYp2L,MAAMkC,KAAO8C,KAAKsmB,MAAM,IAAM1rB,KAAKk1L,SAAS31L,EAAI,KAAO,KACxES,KAAKw2L,YAAYp2L,MAAMgC,IAAMgD,KAAKsmB,MAAM,KAAO,IAAM1rB,KAAKk1L,SAAShnL,GAAK,KAAO,QAGlF,CACDpQ,IAAK,YACLhC,MAAO,WACDkE,KAAKy2L,YACPz2L,KAAKy2L,UAAUr2L,MAAMgC,IAAMgD,KAAKsmB,MAAM,IAAM,IAAM1rB,KAAKk1L,SAASxsD,EAAI,KAAO,QAG9E,CACD5qI,IAAK,cACLhC,MAAO,WACDkE,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,UACjC/O,KAAK8rF,SAAS/8E,QAAQ3O,MAAM26B,gBAAkB,IAAM/6B,KAAKi2L,SAASj2L,KAAKk1L,aAG1E,CACDp3L,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZw5F,gBAAgB,MAGnB,CACDl5G,IAAK,iBACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAKw6G,iBAEN,CACD18G,IAAK,mBACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBACL16G,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,gBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,kBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,SAClC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,eACLhC,MAAO,WACLkE,KAAK02L,gBAEN,CACD54L,IAAK,cACLhC,MAAO,WACDkE,KAAKod,MAAM45F,eAAgBh3G,KAAKmf,OAAYnf,KAAKkf,SAEtD,CACDphB,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,OAAQA,EAAMM,OAEZ,KAAK,GACH3U,KAAK02L,cACLriL,EAAMY,iBACN,MAGF,KAAK,GACL,KAAK,EACHjV,KAAKmf,UAIV,CACDrhB,IAAK,4BACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsG,EAAOyC,MAAM45F,gBAAkBr8F,EAAOu4E,iBAAiB7+E,IACzDsG,EAAOwE,QAIXze,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAK8J,WAAW,WACjEoX,EAAO9D,MAAM45F,gBACf91F,EAAO/B,WAKbnf,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChBz5F,EAAOvE,MAAM45F,iBAAmBj3G,IAAWyiB,aAC7Cb,EAAOxC,QAIXve,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAK8J,aAAe9J,KAAK8J,UAAUypF,WAAWl/E,EAAM9V,SAAWyB,KAAK8J,UAAUzG,SAASgR,EAAM9V,SAAWyB,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,QAAQ1L,SAASgR,EAAM9V,WAE1K,CACDT,IAAK,gCACLhC,MAAO,WACAkE,KAAK22L,4BACR32L,KAAK22L,0BAA4B32L,KAAK42L,oBAAoB78K,KAAK/Z,MAC/DU,SAAS8M,iBAAiB,YAAaxN,KAAK22L,8BAG/C,CACD74L,IAAK,sBACLhC,MAAO,SAA6BuY,GAC9BrU,KAAKu1L,eACPv1L,KAAKw1L,UAAUnhL,GAGbrU,KAAK+0L,aACP/0L,KAAKg1L,QAAQ3gL,KAGhB,CACDvW,IAAK,kCACLhC,MAAO,WACDkE,KAAK22L,4BACPj2L,SAAS+M,oBAAoB,YAAazN,KAAK22L,2BAC/C32L,KAAK22L,0BAA4B,QAGpC,CACD74L,IAAK,8BACLhC,MAAO,WACAkE,KAAK62L,0BACR72L,KAAK62L,wBAA0B72L,KAAK82L,kBAAkB/8K,KAAK/Z,MAC3DU,SAAS8M,iBAAiB,UAAWxN,KAAK62L,4BAG7C,CACD/4L,IAAK,oBACLhC,MAAO,WACLkE,KAAKu1L,eAAgB,EACrBv1L,KAAK+0L,aAAc,EACnBh1L,IAAWma,YAAYla,KAAK8J,UAAW,0BACvC9J,KAAK21L,kCACL31L,KAAK41L,kCAEN,CACD93L,IAAK,gCACLhC,MAAO,WACDkE,KAAK62L,0BACPn2L,SAAS+M,oBAAoB,UAAWzN,KAAK62L,yBAC7C72L,KAAK62L,wBAA0B,QAGlC,CACD/4L,IAAK,cACLhC,MAAO,SAAqBq6L,GAC1B,MAAO,CACLztD,EAAGtjI,KAAKs6B,IAAI,IAAKt6B,KAAKC,IAAI,EAAG8wL,EAAIztD,IACjCnpI,EAAG6F,KAAKs6B,IAAI,IAAKt6B,KAAKC,IAAI,EAAG8wL,EAAI52L,IACjC2O,EAAG9I,KAAKs6B,IAAI,IAAKt6B,KAAKC,IAAI,EAAG8wL,EAAIjoL,OAGpC,CACDpQ,IAAK,cACLhC,MAAO,SAAqBi7L,GAC1B,MAAO,CACL/4F,EAAG54F,KAAKs6B,IAAI,IAAKt6B,KAAKC,IAAI,EAAG0xL,EAAI/4F,IACjCn8F,EAAGuD,KAAKs6B,IAAI,IAAKt6B,KAAKC,IAAI,EAAG0xL,EAAIl1L,IACjCqM,EAAG9I,KAAKs6B,IAAI,IAAKt6B,KAAKC,IAAI,EAAG0xL,EAAI7oL,OAGpC,CACDpQ,IAAK,cACLhC,MAAO,SAAqBihB,GAC1B,IAAIriB,EAAM,EAAIqiB,EAAIpiB,OAElB,GAAID,EAAM,EAAG,CAGX,IAFA,IAAIuB,EAAI,GAECrB,EAAI,EAAGA,EAAIF,EAAKE,IACvBqB,EAAEJ,KAAK,KAGTI,EAAEJ,KAAKkhB,GACPA,EAAM9gB,EAAEiC,KAAK,IAGf,OAAO6e,IAER,CACDjf,IAAK,WACLhC,MAAO,SAAkBihB,GACvB,IAAIi6K,EAAWx/K,SAASuF,EAAIrR,QAAQ,MAAQ,EAAIqR,EAAI/W,UAAU,GAAK+W,EAAK,IACxE,MAAO,CACLihF,EAAGg5F,GAAY,GACfn1L,GAAe,MAAXm1L,IAAwB,EAC5B9oL,EAAc,IAAX8oL,KAGN,CACDl5L,IAAK,WACLhC,MAAO,SAAkBihB,GACvB,OAAO/c,KAAKq2L,SAASr2L,KAAKi3L,SAASl6K,MAEpC,CACDjf,IAAK,WACLhC,MAAO,SAAkBi7L,GACvB,IAAIZ,EAAM,CACRztD,EAAG,EACHnpI,EAAG,EACH2O,EAAG,GAEDwxB,EAAMt6B,KAAKs6B,IAAIq3J,EAAI/4F,EAAG+4F,EAAIl1L,EAAGk1L,EAAI7oL,GACjC7I,EAAMD,KAAKC,IAAI0xL,EAAI/4F,EAAG+4F,EAAIl1L,EAAGk1L,EAAI7oL,GACjCi9B,EAAQ9lC,EAAMq6B,EAwBlB,OAvBAy2J,EAAIjoL,EAAI7I,EACR8wL,EAAI52L,EAAY,IAAR8F,EAAY,IAAM8lC,EAAQ9lC,EAAM,EAE1B,IAAV8wL,EAAI52L,EACFw3L,EAAI/4F,IAAM34F,EACZ8wL,EAAIztD,GAAKquD,EAAIl1L,EAAIk1L,EAAI7oL,GAAKi9B,EACjB4rJ,EAAIl1L,IAAMwD,EACnB8wL,EAAIztD,EAAI,GAAKquD,EAAI7oL,EAAI6oL,EAAI/4F,GAAK7yD,EAE9BgrJ,EAAIztD,EAAI,GAAKquD,EAAI/4F,EAAI+4F,EAAIl1L,GAAKspC,EAGhCgrJ,EAAIztD,GAAK,EAGXytD,EAAIztD,GAAK,GAELytD,EAAIztD,EAAI,IACVytD,EAAIztD,GAAK,KAGXytD,EAAI52L,GAAK,IAAM,IACf42L,EAAIjoL,GAAK,IAAM,IACRioL,IAER,CACDr4L,IAAK,WACLhC,MAAO,SAAkBq6L,GACvB,IAAIY,EAAM,CACR/4F,EAAG,KACHn8F,EAAG,KACHqM,EAAG,MAEDw6H,EAAItjI,KAAKwlB,MAAMurK,EAAIztD,GACnBnpI,EAAI6F,KAAKwlB,MAAc,IAARurK,EAAI52L,EAAU,KAC7B8/H,EAAIj6H,KAAKwlB,MAAc,IAARurK,EAAIjoL,EAAU,KAEjC,GAAU,IAAN3O,EACFw3L,EAAM,CACJ/4F,EAAGqhC,EACHx9H,EAAGw9H,EACHnxH,EAAGmxH,OAEA,CACL,IAAI63D,EAAK73D,EACL83D,GAAM,IAAM53L,GAAK8/H,EAAI,IACrB+3D,EAAkB1uD,EAAI,IAAhBwuD,EAAKC,GAAiB,GACtB,MAANzuD,IAAWA,EAAI,GAEfA,EAAI,IACNquD,EAAI/4F,EAAIk5F,EACRH,EAAI7oL,EAAIipL,EACRJ,EAAIl1L,EAAIs1L,EAAKC,GACJ1uD,EAAI,KACbquD,EAAIl1L,EAAIq1L,EACRH,EAAI7oL,EAAIipL,EACRJ,EAAI/4F,EAAIk5F,EAAKE,GACJ1uD,EAAI,KACbquD,EAAIl1L,EAAIq1L,EACRH,EAAI/4F,EAAIm5F,EACRJ,EAAI7oL,EAAIipL,EAAKC,GACJ1uD,EAAI,KACbquD,EAAI7oL,EAAIgpL,EACRH,EAAI/4F,EAAIm5F,EACRJ,EAAIl1L,EAAIq1L,EAAKE,GACJ1uD,EAAI,KACbquD,EAAI7oL,EAAIgpL,EACRH,EAAIl1L,EAAIs1L,EACRJ,EAAI/4F,EAAIm5F,EAAKC,GACJ1uD,EAAI,KACbquD,EAAI/4F,EAAIk5F,EACRH,EAAIl1L,EAAIs1L,EACRJ,EAAI7oL,EAAIgpL,EAAKE,IAEbL,EAAI/4F,EAAI,EACR+4F,EAAIl1L,EAAI,EACRk1L,EAAI7oL,EAAI,GAIZ,MAAO,CACL8vF,EAAG54F,KAAKwlB,MAAMmsK,EAAI/4F,GAClBn8F,EAAGuD,KAAKwlB,MAAMmsK,EAAIl1L,GAClBqM,EAAG9I,KAAKwlB,MAAMmsK,EAAI7oL,MAGrB,CACDpQ,IAAK,WACLhC,MAAO,SAAkBi7L,GACvB,IAAIh6K,EAAM,CAACg6K,EAAI/4F,EAAE1hG,SAAS,IAAKy6L,EAAIl1L,EAAEvF,SAAS,IAAKy6L,EAAI7oL,EAAE5R,SAAS,KAElE,IAAK,IAAIwB,KAAOif,EACU,IAApBA,EAAIjf,GAAKnD,SACXoiB,EAAIjf,GAAO,IAAMif,EAAIjf,IAIzB,OAAOif,EAAI7e,KAAK,MAEjB,CACDJ,IAAK,WACLhC,MAAO,SAAkBq6L,GACvB,OAAOn2L,KAAKq3L,SAASr3L,KAAKk2L,SAASC,MAEpC,CACDr4L,IAAK,iBACLhC,MAAO,WACL,IAAIgf,EAAM9a,KAAKxB,MAAMstF,SAEjBhxE,IACiB,oBAARA,EACTA,EAAI9a,KAAK8rF,SAAS/8E,SAElB+L,EAAI/L,QAAU/O,KAAK8rF,SAAS/8E,WAIjC,CACDjR,IAAK,oBACLhC,MAAO,WACLkE,KAAKqsF,iBACLrsF,KAAKs3L,eAAet3L,KAAKxB,MAAM1C,OAC/BkE,KAAKu3L,WAEDv3L,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC5BxjB,KAAKu1L,eAAkBv1L,KAAK+0L,aAAe/0L,KAAKxB,MAAM1C,QAAU0nB,EAAU1nB,OAC7EkE,KAAKs3L,eAAet3L,KAAKxB,MAAM1C,OAGjCkE,KAAKu3L,WAED/zK,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAxoBvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAwoB/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK21L,kCACL31L,KAAK41L,gCACL51L,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,MAGjBjiE,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,WACLhC,MAAO,WACLkE,KAAKs1L,YACLt1L,KAAKg2L,oBACLh2L,KAAK02H,cACL12H,KAAKq1L,wBAEN,CACDv3L,IAAK,eACLhC,MAAO,WACDkE,KAAK8rF,UAAY9rF,KAAK8rF,SAAS/8E,SACjChP,IAAWy6G,aAAax6G,KAAK43G,WAAW7oG,QAAS/O,KAAK8rF,SAAS/8E,QAAQkL,cAAeja,KAAKxB,MAAMwF,UAAYiT,IAAWjT,YAG3H,CACDlG,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,sBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,OAAoB6a,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOuzK,cAAgB51L,GAEhC1C,UAAW,+BACXuc,YAAa9Z,KAAK20L,iBAClBx2C,aAAcn+I,KAAK60L,iBACnBx2C,YAAar+I,KAAK6xI,OAClBx7C,WAAYr2F,KAAKu2F,WACH17E,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,MAAO,CACzC8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOk0K,YAAcv2L,GAE9B1C,UAAW,mCAGd,CACDO,IAAK,YACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEb,OAAoB6a,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOwyK,QAAUh1L,GAE1B1C,UAAW,oBACXuc,YAAa9Z,KAAK40L,eAClBz2C,aAAcn+I,KAAK80L,eACnBz2C,YAAar+I,KAAK6xI,OAClBx7C,WAAYr2F,KAAKu2F,WACH17E,IAAM7P,cAAc,MAAO,CACzC8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOg0K,UAAYx2L,GAE5B1C,UAAW,gCAGd,CACDO,IAAK,gBACLhC,MAAO,WACL,IAAI+5L,EAAgB71L,KAAKw3L,sBACrBC,EAAMz3L,KAAK03L,YACf,OAAoB78K,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,yBACVs4L,EAAe4B,KAEnB,CACD35L,IAAK,cACLhC,MAAO,WACL,IAAKkE,KAAKxB,MAAMy8G,OAAQ,CACtB,IAAIigB,EAAiBj+H,YAAW,oCAAqC,CACnE,aAAc+C,KAAKxB,MAAMihB,WAEvBi7D,EAAa/sE,IAAYusE,aAAal6E,KAAKxB,MAAOi2L,EAAYt6G,cAClE,OAAoBt/D,IAAM7P,cAAc,QAASytE,EAAS,CACxD39D,IAAK9a,KAAK8rF,SACVtuF,KAAM,OACND,UAAW29H,EACX7oH,UAAU,EACVyR,GAAI9jB,KAAKxB,MAAMmuF,QACf7nB,SAAU9kE,KAAKxB,MAAMsmE,SACrBrlD,SAAUzf,KAAKxB,MAAMihB,SACrBugD,QAAShgE,KAAKmzH,aACd1+G,UAAWzU,KAAK00L,gBACfh6G,IAGL,OAAO,OAER,CACD58E,IAAK,SACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAET61G,EAAqB54G,YAAW,4BAA6B,CAC/D,yBAA0B+C,KAAKxB,MAAMy8G,QACpCj7G,KAAKxB,MAAMjB,WACVyhB,EAAUhf,KAAKy2G,gBACf1mF,EAAQ/vB,KAAK23L,cACjB,OAAoB98K,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOxZ,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACf1jB,MAAOJ,KAAKxB,MAAM4B,MAClB7C,UAAWs4G,GACV9lF,EAAoBlV,IAAM7P,cAAcwpL,EAAkB,CAC3D15K,IAAK9a,KAAK43G,WACV5zG,SAAUhE,KAAKxB,MAAMwF,SACrBi3G,OAAQj7G,KAAKxB,MAAMy8G,OACnBx7F,SAAUzf,KAAKxB,MAAMihB,SACrBugD,QAAShgE,KAAKs3G,aACd3xF,GAAI3lB,KAAKxB,MAAMy8G,QAAUj7G,KAAKod,MAAM45F,eACpC9xF,QAASllB,KAAKu3G,eACdnyF,UAAWplB,KAAKw3G,iBAChBnyF,OAAQrlB,KAAKy3G,cACblyF,SAAUvlB,KAAK03G,gBACfd,kBAAmB52G,KAAKxB,MAAMo4G,mBAC7B53F,QAIAy1K,EAjyBsB,CAkyB7Bz5K,aAEFxK,EAAgBikL,EAAa,eAAgB,CAC3C3wK,GAAI,KACJgoE,SAAU,KACVhwF,MAAO,KACPsE,MAAO,KACP7C,UAAW,KACX+4L,aAAc,SACdr7E,QAAQ,EACRn0F,OAAQ,MACR9iB,SAAU,KACVyb,UAAU,EACVqlD,SAAU,KACV6nB,QAAS,KACT5T,QAAS,KACTE,eAAgB,KAChB29B,kBAAmB,KACnBrkG,SAAU,KACVwO,OAAQ,KACRU,OAAQ,Q,6BC5/BV,4EAKA,SAASg3D,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASiC,EAAoB3E,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2E,EAAoB3E,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWiD,EAAoBnD,EAAGC,QAA3G,GAQ2DmD,CAA8B5E,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASyf,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI8oL,EAA2B,SAAUh+K,GACvCpB,EAAUo/K,EAAah+K,GAEvB,IAAIC,EAAS4C,EAAem7K,GAE5B,SAASA,EAAYp5L,GACnB,IAAI+G,EAQJ,OANApH,EAAgB6B,KAAM43L,IAEtBryL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM8wF,WAAa9wF,EAAM8wF,WAAWt8E,KAAK7B,EAAuB3S,IAChEA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EA8FT,OA3FAzG,EAAa84L,EAAa,CAAC,CACzB95L,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfsL,OAAQ3f,KAAKxB,MAAMmhB,SAIvBtL,EAAMY,mBAEP,CACDnX,IAAK,aACLhC,MAAO,SAAoBuY,GACrBrU,KAAKxB,MAAM63F,YACbr2F,KAAKxB,MAAM63F,WAAW,CACpB1gF,cAAetB,EACfsL,OAAQ3f,KAAKxB,MAAMmhB,WAIxB,CACD7hB,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,IAAItK,EAAOsK,EAAMoG,cAEjB,OAAQpG,EAAMM,OAEZ,KAAK,GACH,IAAI+2I,EAAW1rJ,KAAKsrJ,aAAavhJ,GAE7B2hJ,GACFA,EAASt/D,QAGX/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAI02I,EAAW3rJ,KAAKwrJ,aAAazhJ,GAE7B4hJ,GACFA,EAASv/D,QAGX/3E,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAKggE,QAAQ3rD,GACbA,EAAMY,oBAIX,CACDnX,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAiB3rJ,IAAW6uF,SAAS88D,EAAU,eAAiB3rJ,IAAW6uF,SAAS88D,EAAU,wBAA0B1rJ,KAAKsrJ,aAAaI,GAAYA,EAAqB,OAEhL,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,eAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,wBAA0B3rJ,KAAKwrJ,aAAaG,GAAYA,EAAqB,OAEhL,CACD7tJ,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,iBAAkB,CAC3C,cAAe+C,KAAKxB,MAAMsyF,SAC1B,aAAc9wF,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMmhB,OAAOpiB,WACjByhB,EAAUhf,KAAKxB,MAAMyqG,SAAWt7F,IAAY8rE,cAAcz5E,KAAKxB,MAAMyqG,SAAUjpG,KAAKxB,MAAMmhB,QAAU3f,KAAKxB,MAAM+6E,MACnH,OAAoB1+D,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACdq2B,WAAYr2F,KAAKq2F,WACjB5hF,UAAWzU,KAAKyU,UAChBqwD,SAAU9kE,KAAKxB,MAAMsmE,SACrB,aAAc9kE,KAAKxB,MAAM+6E,MACzBz7E,IAAKkC,KAAKxB,MAAM+6E,MAChBx1D,KAAM,SACN,gBAAiB/jB,KAAKxB,MAAMsyF,UAC3B9xE,EAAsBnE,IAAM7P,cAAc2O,IAAQ,WAIlDi+K,EA5GsB,CA6G7B58K,aAaF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAXha0B,EAAgBonL,EAAa,eAAgB,CAC3Cj4K,OAAQ,KACR45D,MAAO,KACPuX,UAAU,EACVrxE,UAAU,EACVqlD,SAAU,KACV9E,QAAS,KACTq2B,WAAY,KACZ4S,SAAU,OAMZ,IAAI4uF,EAA6B,SAAUj+K,GACzCpB,EAAUq/K,EAAej+K,GAEzB,IAAIC,EAASgE,EAAeg6K,GAE5B,SAASA,EAAcr5L,GACrB,IAAI+G,EAMJ,OAJApH,EAAgB6B,KAAM63L,IAEtBtyL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4jG,SAAW78F,EAAM68F,SAASroF,KAAK7B,EAAuB3S,IACrDA,EAiCT,OA9BAzG,EAAa+4L,EAAe,CAAC,CAC3B/5L,IAAK,WACLhC,MAAO,SAAkBuY,GACnBrU,KAAKxB,MAAM4jG,UACbpiG,KAAKxB,MAAM4jG,SAAS,CAClBzsF,cAAetB,EACfvY,MAAOuY,EAAM9V,OAAOzC,UAIzB,CACDgC,IAAK,SACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,oBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,8BACGsd,IAAM7P,cAAc2vE,IAAW,CAC7Cn9E,KAAM,OACN1B,MAAOkE,KAAKxB,MAAMR,OAClBuU,SAAUvS,KAAKoiG,SACf7kG,UAAW,mBACXkiB,SAAUzf,KAAKxB,MAAMihB,SACrBmkF,YAAa5jG,KAAKxB,MAAM88E,oBACTzgE,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,6CAKVs6L,EA7CwB,CA8C/B78K,aASF,SAASvL,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASgqB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAjB5Z0B,EAAgBqnL,EAAe,eAAgB,CAC7C75L,OAAQ,KACRs9E,kBAAmB,KACnB77D,UAAU,EACV2iF,SAAU,OAgBZ,IAAI01F,EAAuB,SAAUl+K,GACnCpB,EAAUs/K,EAASl+K,GAEnB,IAAIC,EAASkL,EAAa+yK,GAE1B,SAASA,EAAQt5L,GACf,IAAI+G,EAcJ,OAZApH,EAAgB6B,KAAM83L,IAEtBvyL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,GAET7X,EAAM/G,MAAMu5L,sBACfxyL,EAAM6X,MAAMvN,YAAc,IAG5BtK,EAAM68F,SAAW78F,EAAM68F,SAASroF,KAAK7B,EAAuB3S,IAC5DA,EAAMipJ,eAAiBjpJ,EAAMipJ,eAAez0I,KAAK7B,EAAuB3S,IACxEA,EAAMyyL,iBAAmBzyL,EAAMyyL,iBAAiBj+K,KAAK7B,EAAuB3S,IACrEA,EA4bT,OAzbAzG,EAAag5L,EAAS,CAAC,CACrBh6L,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAAO6F,EAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAKuC,QACbyc,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,iBACLhC,MAAO,WACL,OAAQkE,KAAKxB,MAAMu5L,oBAAsB/3L,KAAKxB,MAAMqR,YAAc7P,KAAKod,MAAMvN,cAAgB,KAE9F,CACD/R,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIsL,EAAStL,EAAMsL,OAEf3f,KAAKxB,MAAMihB,UAAYzf,KAAK40G,iBAAiBj1F,KAI7C3f,KAAKxB,MAAMwnH,SAAUhmH,KAAKi4L,uBAAuB5jL,EAAMsB,cAAegK,GAAa3f,KAAKk4L,qBAAqB7jL,EAAMsB,cAAegK,GACtI3f,KAAKm4L,eAAgB,KAEtB,CACDr6L,IAAK,mBACLhC,MAAO,WACDkE,KAAKxB,MAAMihB,WAIfzf,KAAKm4L,eAAgB,KAEtB,CACDr6L,IAAK,uBACLhC,MAAO,SAA8BuY,EAAOsL,GAC1C,IAAImxE,EAAW9wF,KAAKgzE,WAAWrzD,GAC3By4K,GAAe,EACft8L,EAAQ,KAGZ,IAFoBkE,KAAKm4L,eAAwBn4L,KAAKxB,MAAMq+F,iBAEzC,CACjB,IAAItnF,EAAUlB,EAAMkB,SAAWlB,EAAMgB,QAEjCy7E,EACEv7E,IACFzZ,EAAQ,KACRs8L,GAAe,IAGjBt8L,EAAQkE,KAAKo6G,eAAez6F,GAC5By4K,GAAe,QAGjBt8L,EAAQg1F,EAAW,KAAO9wF,KAAKo6G,eAAez6F,GAC9Cy4K,GAAe,EAGbA,GACFp4L,KAAKoU,YAAYC,EAAOvY,KAG3B,CACDgC,IAAK,yBACLhC,MAAO,SAAgCuY,EAAOsL,GAC5C,IAAImxE,EAAW9wF,KAAKgzE,WAAWrzD,GAC3By4K,GAAe,EACft8L,EAAQ,KAGZ,IAFoBkE,KAAKm4L,eAAwBn4L,KAAKxB,MAAMq+F,iBAEzC,CACjB,IAAItnF,EAAUlB,EAAMkB,SAAWlB,EAAMgB,QAEjCy7E,GACWh1F,EAATyZ,EAAiBvV,KAAKq4L,aAAa14K,GAAqB,CAAC3f,KAAKo6G,eAAez6F,IACjFy4K,GAAe,IAEft8L,EAAQyZ,GAAUvV,KAAKxB,MAAM1C,OAAc,GAC3CA,EAAQ,GAAGiC,OAAOgvF,EAAmBjxF,GAAQ,CAACkE,KAAKo6G,eAAez6F,KAClEy4K,GAAe,QAGHt8L,EAAVg1F,EAAkB9wF,KAAKq4L,aAAa14K,GAAqB,GAAG5hB,OAAOgvF,EAAmB/sF,KAAKxB,MAAM1C,OAAS,IAAK,CAACkE,KAAKo6G,eAAez6F,KACxIy4K,GAAe,EAGbA,GACFp4L,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOA,OAKd,CACDgC,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAIsB,EAAgBtB,EAAMsB,cACtB7Z,EAAQuY,EAAMvY,MAEdkE,KAAKxB,MAAMu5L,oBACb/3L,KAAKxB,MAAMu5L,oBAAoB,CAC7BpiL,cAAeA,EACf7Z,MAAOA,IAGTkE,KAAKwd,SAAS,CACZ3N,YAAa/T,MAIlB,CACDgC,IAAK,cACLhC,MAAO,SAAqBuY,EAAOvY,GAC7BkE,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOA,EACPqwF,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,MAAOA,OAKd,CACDgC,IAAK,eACLhC,MAAO,SAAsB6jB,GAC3B,IAAIhF,EAAS3a,KAEb,OAAOA,KAAKxB,MAAM1C,MAAMkC,QAAO,SAAUqY,GACvC,OAAQ1I,IAAY0B,OAAOgH,EAAKsE,EAAOy/F,eAAez6F,GAAShF,EAAOnc,MAAM2Q,cAG/E,CACDrR,IAAK,aACLhC,MAAO,SAAoB6jB,GACzB,IAAImxE,GAAW,EACXqpB,EAAcn6G,KAAKo6G,eAAez6F,GAEtC,GAAI3f,KAAKxB,MAAMwnH,UACb,GAAIhmH,KAAKxB,MAAM1C,MAAO,CACpB,IACIsL,EADAM,EAAY+H,EAA2BzP,KAAKxB,MAAM1C,OAGtD,IACE,IAAK4L,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAIya,EAAMjP,EAAMtL,MAEhB,GAAI6R,IAAY0B,OAAOgH,EAAK8jG,EAAan6G,KAAKxB,MAAM2Q,SAAU,CAC5D2hF,GAAW,EACX,QAGJ,MAAO/0F,GACP2L,EAAUlI,EAAEzD,GAVd,QAYE2L,EAAUjI,WAIdqxF,EAAWnjF,IAAY0B,OAAOrP,KAAKxB,MAAM1C,MAAOq+G,EAAan6G,KAAKxB,MAAM2Q,SAG1E,OAAO2hF,IAER,CACDhzF,IAAK,SACLhC,MAAO,SAAgB6jB,GACrB,IAAI9P,EAAc7P,KAAKs4L,iBAAiBhoL,OAAOH,kBAAkBnQ,KAAKxB,MAAMuR,cAE5E,OADkB/P,KAAKy0G,eAAe90F,GAAQxP,kBAAkBnQ,KAAKxB,MAAMuR,cACxDrE,QAAQmE,IAAgB,IAE5C,CACD/R,IAAK,YACLhC,MAAO,WACL,IAAIkC,EAASgC,KAAKs4L,iBAClB,OAAOt6L,GAAUA,EAAOsS,OAAO3V,OAAS,IAEzC,CACDmD,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAMg2G,YAAc7mG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAMg2G,aAAe70F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,iBACLhC,MAAO,SAAwB6jB,GAC7B,OAAO3f,KAAKxB,MAAM27G,YAAcxsG,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM27G,aAAex6F,QAA8Bla,IAApBka,EAAM,MAA0BA,EAAM,MAAYA,IAE5J,CACD7hB,IAAK,qBACLhC,MAAO,SAA4B6jB,GACjC,OAAO3f,KAAKxB,MAAM2Q,QAAUxB,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM2Q,SAAWnP,KAAKy0G,eAAe90F,KAE5G,CACD7hB,IAAK,mBACLhC,MAAO,SAA0B6jB,GAC/B,OAAI3f,KAAKxB,MAAM+8G,eACN5tG,IAAY5G,WAAW/G,KAAKxB,MAAM+8G,gBAAkBv7G,KAAKxB,MAAM+8G,eAAe57F,GAAUhS,IAAYI,iBAAiB4R,EAAQ3f,KAAKxB,MAAM+8G,mBAG1I57F,QAAiCla,IAAvBka,EAAM,WAA6BA,EAAM,WAE3D,CACD7hB,IAAK,0BACLhC,MAAO,SAAiCw4G,GACtC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMu2G,oBAE7D,CACDj3G,IAAK,yBACLhC,MAAO,SAAgCw4G,GACrC,OAAO3mG,IAAYI,iBAAiBumG,EAAat0G,KAAKxB,MAAMg9G,uBAE7D,CACD19G,IAAK,oBACLhC,MAAO,WACL,GAAIkE,KAAK+mG,YAAa,CACpB,IAAIl3F,EAAc7P,KAAKs4L,iBAAiBhoL,OAAOH,kBAAkBnQ,KAAKxB,MAAMuR,cACxE2rG,EAAe17G,KAAKxB,MAAMm9G,SAAW37G,KAAKxB,MAAMm9G,SAAS54G,MAAM,KAAO,CAAC/C,KAAKxB,MAAMg2G,aAAe,SAErG,GAAIx0G,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAGIjtG,EAHA8zG,EAAiB,GAEjB7zG,EAAa0H,EAA2BzP,KAAKxB,MAAM8S,SAGvD,IACE,IAAKvJ,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAIigH,EAAW/zG,EAAOhM,MAClBggH,EAAqBlsG,IAAY5R,OAAOgC,KAAKu0G,uBAAuBsH,GAAWH,EAAc7rG,EAAa7P,KAAKxB,MAAMsR,gBAAiB9P,KAAKxB,MAAMuR,cAEjJ+rG,GAAsBA,EAAmBnhH,QAC3CihH,EAAe//G,KAAKipB,EAAcA,EAAc,GAAI+2F,GAAW,CAC7D3F,MAAO4F,MAIb,MAAO//G,GACPgM,EAAWvI,EAAEzD,GAZf,QAcEgM,EAAWtI,IAGb,OAAOm8G,EAEP,OAAOhsG,IAAY5R,OAAOgC,KAAKxB,MAAM8S,QAASoqG,EAAc7rG,EAAa7P,KAAKxB,MAAMsR,gBAAiB9P,KAAKxB,MAAMuR,cAGlH,OAAO/P,KAAKxB,MAAM8S,UAGrB,CACDxT,IAAK,sBACLhC,MAAO,SAA6Bw4G,GAClC,IAAIpzF,EAASlhB,KAGb,OADoBA,KAAKu0G,uBAAuBD,GAC3B32G,KAAI,SAAUgiB,EAAQ1L,GACzC,IAAIugG,EAActzF,EAAOuzF,eAAe90F,GAEpC+0F,EAAYzgG,EAAI,IAAMiN,EAAOyzF,mBAAmBh1F,GAEhDF,EAAWyB,EAAO0zF,iBAAiBj1F,GAEnCmlD,EAAWrlD,EAAW,KAAOyB,EAAO1iB,MAAMsmE,UAAY,EAC1D,OAAoBjqD,IAAM7P,cAAc4sL,EAAa,CACnD95L,IAAK42G,EACLn7B,MAAOi7B,EACP70F,OAAQA,EACRspF,SAAU/nF,EAAO1iB,MAAMq2G,aACvB/jB,SAAU5vE,EAAO8xD,WAAWrzD,GAC5BqgD,QAAS9+C,EAAOstI,eAChBn4D,WAAYn1E,EAAO82K,iBACnBlzH,SAAUA,EACVrlD,SAAUA,SAIf,CACD3hB,IAAK,aACLhC,MAAO,SAAoB6jB,EAAQ08C,GACjC,GAAIr8D,KAAKxB,MAAMu2G,iBAAkB,CAC/B,IAAIC,EAAeh1G,KAAKxB,MAAMy2G,oBAAsBtnG,IAAY8rE,cAAcz5E,KAAKxB,MAAMy2G,oBAAqBt1F,EAAQ08C,GAASr8D,KAAKk1G,oBAAoBv1F,GACpJw1F,EAAuBn1G,KAAKo1G,oBAAoBz1F,GAChD7hB,EAAMu+D,EAAQ,IAAMr8D,KAAKq1G,wBAAwB11F,GACrD,OAAoB9E,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKA,GACS+c,IAAM7P,cAAc,KAAM,CACxCzN,UAAW,wBACVy3G,GAAeG,GAElB,IAAIX,EAAcx0G,KAAKy0G,eAAe90F,GAClC+0F,EAAYr4C,EAAQ,IAAMr8D,KAAK20G,mBAAmBh1F,GAClDF,EAAWzf,KAAK40G,iBAAiBj1F,GACjCmlD,EAAWrlD,EAAW,KAAOzf,KAAKxB,MAAMsmE,UAAY,EACxD,OAAoBjqD,IAAM7P,cAAc4sL,EAAa,CACnD95L,IAAK42G,EACLn7B,MAAOi7B,EACP70F,OAAQA,EACRspF,SAAUjpG,KAAKxB,MAAMq2G,aACrB/jB,SAAU9wF,KAAKgzE,WAAWrzD,GAC1BqgD,QAAShgE,KAAKwuJ,eACdn4D,WAAYr2F,KAAKg4L,iBACjBlzH,SAAUA,EACVrlD,SAAUA,MAIf,CACD3hB,IAAK,cACLhC,MAAO,SAAqBu4G,GAC1B,IAAI1yF,EAAS3hB,KAEb,OAAIq0G,GAAkBA,EAAe15G,OAC5B05G,EAAe12G,KAAI,SAAUgiB,EAAQ08C,GAC1C,OAAO16C,EAAO2zF,WAAW31F,EAAQ08C,MAI9B,OAER,CACDv+D,IAAK,aACLhC,MAAO,SAAoBu4G,GACzB,IAAI/xF,EAAStiB,KAEb,GAAIA,KAAKxB,MAAMw3G,uBAAwB,CACrC,IAAIC,EAAuBnxF,EAAcA,EAAc,GAAI9kB,KAAKxB,MAAMw3G,wBAAyB,CAC7FE,MAAO7B,EACP8B,WAAY,SAAoB9hG,GAC9B,OAAOiO,EAAO9jB,MAAMw3G,uBAAuBG,WAAWrxF,EAAcA,EAAc,GAAIzQ,GAAQ,CAC5FrW,OAAQskB,EAAOg2K,qBAGnBzjF,aAAc,SAAsB9qG,EAAMuH,GACxC,OAAOvH,GAAQuY,EAAOgzF,WAAWvrG,EAAMuH,EAAQ+qD,QAEjD+5C,gBAAiB,SAAyB9kG,GACxC,IAAI/T,EAAYN,YAAW,iBAAkBqU,EAAQ/T,WACrD,OAAoBsd,IAAM7P,cAAc,KAAM,CAC5C8P,IAAKxJ,EAAQwJ,IACbvd,UAAWA,EACXwmB,KAAM,UACN,uBAAwBzB,EAAO9jB,MAAMwnH,UACpC10G,EAAQ9O,aAIf,OAAoBqY,IAAM7P,cAAcsrG,IAAiB79B,EAAS,CAChE39D,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOyxF,mBAAqB9zG,IAEpCg2G,IAEH,IAAIC,EAAQl2G,KAAKu2G,YAAYlC,GAC7B,OAAoBx5F,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,iBACXwmB,KAAM,UACN,uBAAwB/jB,KAAKxB,MAAMwnH,UAClC9P,KAGN,CACDp4G,IAAK,SACLhC,MAAO,WACL,IAQIk/E,EARAv4D,EAASziB,KAETzC,EAAYN,YAAW,wBAAyB,CAClD,aAAc+C,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMjB,WACVg7L,EAAgBt7L,YAAW,yBAA0B+C,KAAKxB,MAAM+5L,eAChElkF,EAAiBr0G,KAAKq4G,oBACtBnpG,EAAOlP,KAAKutJ,WAAWl5C,GAY3B,OATIr0G,KAAKxB,MAAMR,SACbg9E,EAAsBngE,IAAM7P,cAAc6sL,EAAe,CACvD75L,OAAQgC,KAAKs4L,iBACbl2F,SAAUpiG,KAAKoiG,SACf3iF,SAAUzf,KAAKxB,MAAMihB,SACrB67D,kBAAmBt7E,KAAKxB,MAAM88E,qBAIdzgE,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOlgB,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB46E,EAAqBngE,IAAM7P,cAAc,MAAO,CACjD8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAO+1K,QAAUv4L,GAE1B1C,UAAWg7L,EACXn4L,MAAOJ,KAAKxB,MAAMi6L,WACjBvpL,QAIA4oL,EAhdkB,CAidzB98K,aAEFxK,EAAgBsnL,EAAS,eAAgB,CACvCh0K,GAAI,KACJhoB,MAAO,KACPwV,QAAS,KACTkjG,YAAa,KACb2F,YAAa,KACboB,eAAgB,KAChBxG,iBAAkB,KAClByG,oBAAqB,KACrBvG,oBAAqB,KACrBJ,aAAc,KACdz0G,MAAO,KACPq4L,UAAW,KACXF,cAAe,KACfh7L,UAAW,KACXy4G,uBAAwB,KACxBv2F,SAAU,KACVtQ,QAAS,KACT62G,UAAU,EACVnpB,kBAAkB,EAClB7+F,QAAQ,EACR29G,SAAU,KACV9rG,YAAa,KACbC,gBAAiB,WACjBwrE,kBAAmB,KACnBvrE,kBAActK,EACdq/D,SAAU,EACViU,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBn6E,SAAU,KACVwlL,oBAAqB,Q,6BCp1BvB,6DASA,SAASz5L,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAIlV,SAASsW,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAI4pL,EAA4B,SAAU9+K,IApE1C,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUkgL,EAAc9+K,GAExB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAa2zK,GAE1B,SAASA,EAAal6L,GACpB,IAAI+G,EAOJ,OAxHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAM04L,IAEtBnzL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB2xJ,OAAS5qJ,EAAM4qJ,OAAOp2I,KAAK7B,EAAuB3S,IACxDA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EAsHT,OA9NoBlH,EA2GPq6L,EA3GoB35L,EA2GN,CAAC,CAC1BjB,IAAK,SACLhC,MAAO,SAAgB0D,IAChBQ,KAAKxB,MAAMihB,UAAYzf,KAAKxB,MAAM+T,UACrCvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAenW,EACf1D,OAAQkE,KAAKxB,MAAM0tF,QACnBC,gBAAiB,aACjBl3E,eAAgB,aAChB1W,OAAQ,CACN9B,KAAMuD,KAAKxB,MAAM/B,KACjBqnB,GAAI9jB,KAAKxB,MAAMslB,GACfhoB,OAAQkE,KAAKxB,MAAM0tF,aAK1B,CACDpuF,IAAK,YACLhC,MAAO,SAAmBuY,GACN,UAAdA,EAAMvW,MACRkC,KAAKmwJ,OAAO97I,GACZA,EAAMY,oBAGT,CACDnX,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMm6L,SAAW34L,KAAKxB,MAAMm6L,QAAQh+L,OAAS,GAAKqF,KAAKxB,MAAMo6L,UAAY54L,KAAKxB,MAAMo6L,SAASj+L,OAAS,IAEnH,CACDmD,IAAK,UACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMq6L,QAAU74L,KAAKxB,MAAMq6L,OAAOl+L,OAAS,GAAKqF,KAAKxB,MAAMs6L,SAAW94L,KAAKxB,MAAMs6L,QAAQn+L,OAAS,IAE/G,CACDmD,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAK+4L,WAAa/4L,KAAKxB,MAAM0tF,QAAUlsF,KAAKxB,MAAMm6L,QAAU34L,KAAKxB,MAAMo6L,SAAW,WAE1F,CACD96L,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAMu6E,SACb/4E,KAAKg5E,kBAGR,CACDl7E,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUu1D,UAAY/4E,KAAKxB,MAAMu6E,SAAWv1D,EAAUy1D,iBAAmBj5E,KAAKxB,MAAMy6E,iBAClFj5E,KAAK+4E,QAAS/4E,KAAK+4E,QAAQ95D,OAxEvC,SAAuB1gB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAwE/dumB,CAAc,CAClD9F,QAAShf,KAAKxB,MAAMu6E,SACnB/4E,KAAKxB,MAAMy6E,gBAAkB,KAAUj5E,KAAKg5E,mBAGlD,CACDl7E,IAAK,uBACLhC,MAAO,WACDkE,KAAK+4E,UACP/4E,KAAK+4E,QAAQr6D,UACb1e,KAAK+4E,QAAU,QAGlB,CACDj7E,IAAK,gBACLhC,MAAO,WACLkE,KAAK+4E,QAAU96D,YAAI,CACjB1f,OAAQyB,KAAK8J,UACbkV,QAAShf,KAAKxB,MAAMu6E,QACpBznE,QAAStR,KAAKxB,MAAMy6E,mBAGvB,CACDn7E,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,sCAAuC,CAChE,qBAAsB+C,KAAKg5L,YAAch5L,KAAK+4L,WAC9C,cAAe/4L,KAAKxB,MAAM0tF,QAC1B,aAAclsF,KAAKxB,MAAMihB,UACxBzf,KAAKxB,MAAMjB,WACV4zF,EAAgB,KAChB6nG,EAAUh5L,KAAKg5L,UACfz/G,EAAQv5E,KAAK6vJ,WASjB,OAPImpC,IACF7nG,EAAgBl0F,YAAW,oBAAqB,CAC9C,qBAA6C,SAAvB+C,KAAKxB,MAAM86E,SAAsBC,EACvD,sBAA8C,UAAvBv5E,KAAKxB,MAAM86E,SAAuBC,GACxDv5E,KAAKxB,MAAM0tF,QAAUlsF,KAAKxB,MAAMq6L,OAAS74L,KAAKxB,MAAMs6L,UAGrCj+K,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAO7Q,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKmwJ,OACd39I,QAASxS,KAAKxB,MAAMgU,QACpBC,OAAQzS,KAAKxB,MAAMiU,OACnBgC,UAAWzU,KAAKyU,UAChBqwD,UAAW9kE,KAAKxB,MAAMihB,UAAYzf,KAAKxB,MAAMsmE,SAC7C,kBAAmB9kE,KAAKxB,MAAMkuF,gBAC7BssG,GAAwBn+K,IAAM7P,cAAc,OAAQ,CACrDzN,UAAW4zF,IACIt2E,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,kBACVg8E,GAAqB1+D,IAAM7P,cAAc2O,IAAQ,UAzNpD5a,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA4NzC05L,EAnIuB,CAoI9B19K,aAEFxK,EAAgBkoL,EAAc,eAAgB,CAC5C50K,GAAI,KACJ+0K,OAAQ,KACRC,QAAS,KACTH,QAAS,MACTC,SAAU,KACVt/G,QAAS,OACTl5E,MAAO,KACP7C,UAAW,KACX2uF,SAAS,EACTpnB,SAAU,EACViU,QAAS,KACTE,eAAgB,KAChByT,eAAgB,KAChBn6E,SAAU,KACVC,QAAS,KACTC,OAAQ,Q,6BCpQV,oEAIA,SAAStU,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASy7E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASuS,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAASkU,EAAeroF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P8hG,GAA+B,OAAO,WAAkC,IAAsCxyF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAImqL,EAA4B,SAAUr/K,GACxCpB,EAAUygL,EAAcr/K,GAExB,IAAIC,EAASwnF,EAAe43F,GAE5B,SAASA,EAAaz6L,GACpB,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAMi5L,IAEtB1zL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EAyCT,OAtCAzG,EAAam6L,EAAc,CAAC,CAC1Bn7L,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACfvY,MAAOkE,KAAKxB,MAAM1C,UAIvB,CACDgC,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAMiW,WACbzU,KAAKxB,MAAMiW,UAAU,CACnBkB,cAAetB,EACfvY,MAAOkE,KAAKxB,MAAM1C,UAIvB,CACDgC,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKxB,MAAMyqG,SAAWjpG,KAAKxB,MAAMyqG,SAASjpG,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MACnFyB,EAAYN,YAAW,kBAAmB,CAC5C,cAAe+C,KAAKxB,MAAMsyF,UACzB9wF,KAAKxB,MAAMjB,WACd,OAAoBsd,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACXyiE,QAAShgE,KAAKggE,QACdvrD,UAAWzU,KAAKyU,UAChBqwD,SAAU9kE,KAAKxB,MAAMsmE,SACrB/gD,KAAM,SACN,gBAAiB/jB,KAAKxB,MAAMsyF,UAC3B9xE,EAAsBnE,IAAM7P,cAAc2O,IAAQ,WAIlDs/K,EAtDuB,CAuD9Bj+K,aAYF,SAASjC,EAAeC,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pga,GAA+B,OAAO,WAAkC,IAAsC1K,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAVha0B,EAAgByoL,EAAc,eAAgB,CAC5Cn9L,MAAO,KACPyB,UAAW,KACX0rG,SAAU,KACVnY,UAAU,EACVhsB,SAAU,KACV9E,QAAS,KACTvrD,UAAW,OAOb,IAAIykL,EAAwC,SAAUt/K,GACpDpB,EAAU0gL,EAA0Bt/K,GAEpC,IAAIC,EAASd,EAAemgL,GAE5B,SAASA,EAAyB16L,GAChC,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAMk5L,IAEtB3zL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBm8I,YAAcp1I,EAAMo1I,YAAY5gI,KAAK7B,EAAuB3S,IAClEA,EAAMg6K,cAAgBh6K,EAAMg6K,cAAcxlK,KAAK7B,EAAuB3S,IAC/DA,EAoIT,OAjIAzG,EAAao6L,EAA0B,CAAC,CACtCp7L,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAAIsB,EAAgBtB,EAAMsB,cACtB5L,EAAOsK,EAAMvY,MAEbupC,EAAY0nD,EAAmB/sF,KAAKxB,MAAM6mC,WAE1Cg3B,EAAQ1uD,IAAYwrL,gBAAgBpvL,EAAMs7B,EAAWrlC,KAAKxB,MAAM2Q,SAChE2hF,GAAsB,IAAXz0B,EAGf,GAFoBr8D,KAAKxB,MAAMq+F,iBAEZ,CACjB,IAAItnF,EAAUI,EAAcJ,SAAWI,EAAcN,QAEjDy7E,GAAYv7E,EACd8vB,EAAUp2B,OAAOotD,EAAO,IAEnB9mD,IACH8vB,EAAU1qC,OAAS,GAGrB0qC,EAAUxpC,KAAKkO,SAGb+mF,EAAUzrD,EAAUp2B,OAAOotD,EAAO,GAAQh3B,EAAUxpC,KAAKkO,GAG3D/J,KAAKxB,MAAM67F,mBACbr6F,KAAKxB,MAAM67F,kBAAkB,CAC3BhmF,MAAOsB,EACP7Z,MAAOupC,MAIZ,CACDvnC,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAI26I,EAAW36I,EAAMsB,cAAc8E,cAEnC,OAAQpG,EAAMsB,cAAchB,OAE1B,KAAK,GACH,IAAI+2I,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASt/D,QAGX/3E,EAAMsB,cAAcV,iBACpB,MAGF,KAAK,GACH,IAAI02I,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASv/D,QAGX/3E,EAAMsB,cAAcV,iBACpB,MAGF,KAAK,GACHjV,KAAK26I,YAAYtmI,GACjBA,EAAMsB,cAAcV,oBAIzB,CACDnX,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAkB3rJ,IAAW6uF,SAAS88D,EAAU,mBAAmDA,EAA9B1rJ,KAAKsrJ,aAAaI,GAAiC,OAE7H,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAkB5rJ,IAAW6uF,SAAS+8D,EAAU,mBAAmDA,EAA9B3rJ,KAAKwrJ,aAAaG,GAAiC,OAE7H,CACD7tJ,IAAK,aACLhC,MAAO,SAAoBiO,GACzB,OAAwF,IAAjF4D,IAAYwrL,gBAAgBpvL,EAAM/J,KAAKxB,MAAM6mC,UAAWrlC,KAAKxB,MAAM2Q,WAE3E,CACDrR,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETg7E,EAAS,KACTk7B,EAAQ,KACRkjF,EAAmBn8L,YAAW,0BAA2B+C,KAAKxB,MAAMjB,WACpEg7L,EAAgBt7L,YAAW,kBAAmB+C,KAAKxB,MAAM+5L,eAsB7D,OApBIv4L,KAAKxB,MAAMw8E,SACbA,EAAsBngE,IAAM7P,cAAc,MAAO,CAC/CzN,UAAW,qBACVoQ,IAAY8rE,cAAcz5E,KAAKxB,MAAMw8E,OAAQh7E,KAAKxB,SAGnDwB,KAAKxB,MAAM0Q,OACbgnG,EAAQl2G,KAAKxB,MAAM0Q,KAAKvR,KAAI,SAAUoM,EAAMnP,GAC1C,OAAoBigB,IAAM7P,cAAciuL,EAAc,CACpDn7L,IAAKm6C,KAAKC,UAAUnuC,GACpBjO,MAAOiO,EACPk/F,SAAUtuF,EAAOnc,MAAMq2G,aACvB/jB,SAAUn2E,EAAOq4D,WAAWjpE,GAC5Bi2D,QAASrlD,EAAOggI,YAChBlmI,UAAWkG,EAAO4kK,cAClBz6G,SAAUnqD,EAAOnc,MAAMsmE,eAKTjqD,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK9a,KAAKxB,MAAMo6E,WAChBr7E,UAAW67L,GACVp+G,EAAqBngE,IAAM7P,cAAc,KAAM,CAChDzN,UAAWg7L,EACXn4L,MAAOJ,KAAKxB,MAAM4B,MAClB2jB,KAAM,UACN,wBAAwB,GACvBmyF,QAIAgjF,EAjJmC,CAkJ1Cl+K,aAEEq+K,EAA+Bx+K,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GACnE,OAAoBD,IAAM7P,cAAckuL,EAA0BzgH,EAAS,CACzEG,WAAY99D,GACXtc,OAGL,SAASie,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIwqL,EAAgC,SAAU1/K,GAC5CpB,EAAU8gL,EAAkB1/K,GAE5B,IAAIC,EAAS4C,EAAe68K,GAE5B,SAASA,EAAiB96L,GACxB,IAAI+G,EASJ,OAPApH,EAAgB6B,KAAMs5L,IAEtB/zL,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB+6L,OAASh0L,EAAMg0L,OAAOx/K,KAAK7B,EAAuB3S,IACxDA,EAAMi0L,QAAUj0L,EAAMi0L,QAAQz/K,KAAK7B,EAAuB3S,IAC1DA,EAAMk0L,SAAWl0L,EAAMk0L,SAAS1/K,KAAK7B,EAAuB3S,IAC5DA,EAAMm0L,WAAan0L,EAAMm0L,WAAW3/K,KAAK7B,EAAuB3S,IACzDA,EA4JT,OAzJAzG,EAAaw6L,EAAkB,CAAC,CAC9Bx7L,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAIslL,EAAgB35L,KAAKxB,MAAM6mC,UAE/B,GAAIs0J,GAAiBA,EAAch/L,OAAQ,CAGzC,IAFA,IAAIuU,EAAO69E,EAAmB/sF,KAAKxB,MAAM0Q,MAEhCtU,EAAI,EAAGA,EAAI++L,EAAch/L,OAAQC,IAAK,CAC7C,IAAIg/L,EAAeD,EAAc/+L,GAC7Bi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc1qL,EAAMlP,KAAKxB,MAAM2Q,SAEnF,GAA0B,IAAtB0qL,EAMF,MALA,IAAIC,EAAY5qL,EAAK2qL,GACjB1+B,EAAOjsJ,EAAK2qL,EAAoB,GACpC3qL,EAAK2qL,EAAoB,GAAKC,EAC9B5qL,EAAK2qL,GAAqB1+B,EAM1Bn7J,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOoT,EACP8nB,UAAW,UAKlB,CACDl5B,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,IAAIslL,EAAgB35L,KAAKxB,MAAM6mC,UAE/B,GAAIs0J,GAAiBA,EAAch/L,OAAQ,CAGzC,IAFA,IAAIuU,EAAO69E,EAAmB/sF,KAAKxB,MAAM0Q,MAEhCtU,EAAI,EAAGA,EAAI++L,EAAch/L,OAAQC,IAAK,CAC7C,IAAIg/L,EAAeD,EAAc/+L,GAC7Bi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc1qL,EAAMlP,KAAKxB,MAAM2Q,SAEnF,GAA0B,IAAtB0qL,EAIF,MAHA,IAAIC,EAAY5qL,EAAKD,OAAO4qL,EAAmB,GAAG,GAClD3qL,EAAKse,QAAQssK,GAMb95L,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOoT,EACP8nB,UAAW,WAKlB,CACDl5B,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAIslL,EAAgB35L,KAAKxB,MAAM6mC,UAE/B,GAAIs0J,GAAiBA,EAAch/L,OAAQ,CAGzC,IAFA,IAAIuU,EAAO69E,EAAmB/sF,KAAKxB,MAAM0Q,MAEhCtU,EAAI++L,EAAch/L,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAClD,IAAIg/L,EAAeD,EAAc/+L,GAC7Bi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc1qL,EAAMlP,KAAKxB,MAAM2Q,SAEnF,GAAI0qL,IAAsB3qL,EAAKvU,OAAS,EAMtC,MALA,IAAIm/L,EAAY5qL,EAAK2qL,GACjB1+B,EAAOjsJ,EAAK2qL,EAAoB,GACpC3qL,EAAK2qL,EAAoB,GAAKC,EAC9B5qL,EAAK2qL,GAAqB1+B,EAM1Bn7J,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOoT,EACP8nB,UAAW,SAIfh3B,KAAKg6L,WAAY,KAGpB,CACDl8L,IAAK,aACLhC,MAAO,SAAoBuY,GACzB,IAAIslL,EAAgB35L,KAAKxB,MAAM6mC,UAE/B,GAAIs0J,GAAiBA,EAAch/L,OAAQ,CAGzC,IAFA,IAAIuU,EAAO69E,EAAmB/sF,KAAKxB,MAAM0Q,MAEhCtU,EAAI++L,EAAch/L,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAClD,IAAIg/L,EAAeD,EAAc/+L,GAC7Bi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc1qL,EAAMlP,KAAKxB,MAAM2Q,SAEnF,GAAI0qL,IAAsB3qL,EAAKvU,OAAS,EAItC,MAHA,IAAIm/L,EAAY5qL,EAAKD,OAAO4qL,EAAmB,GAAG,GAClD3qL,EAAKrT,KAAKi+L,GAMV95L,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOoT,EACP8nB,UAAW,cAKlB,CACDl5B,IAAK,SACLhC,MAAO,WACL,IAAIm+L,GAAgBj6L,KAAKxB,MAAM6mC,UAAU1qC,OACrC4C,EAAYN,YAAW,qBAAsB+C,KAAKxB,MAAMjB,WAC5D,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,GACGsd,IAAM7P,cAAcovE,IAAQ,CAC1C36D,SAAUw6K,EACVz8L,KAAM,SACN07E,KAAM,iBACNlZ,QAAShgE,KAAKu5L,SACC1+K,IAAM7P,cAAcovE,IAAQ,CAC3C36D,SAAUw6K,EACVz8L,KAAM,SACN07E,KAAM,wBACNlZ,QAAShgE,KAAKw5L,UACC3+K,IAAM7P,cAAcovE,IAAQ,CAC3C36D,SAAUw6K,EACVz8L,KAAM,SACN07E,KAAM,mBACNlZ,QAAShgE,KAAKy5L,WACC5+K,IAAM7P,cAAcovE,IAAQ,CAC3C36D,SAAUw6K,EACVz8L,KAAM,SACN07E,KAAM,0BACNlZ,QAAShgE,KAAK05L,kBAKbJ,EA3K2B,CA4KlCt+K,aAEF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIorL,EAAwC,SAAUtgL,GACpDpB,EAAU0hL,EAA0BtgL,GAEpC,IAAIC,EAASgE,EAAeq8K,GAE5B,SAASA,EAAyB17L,GAChC,IAAI+G,EASJ,OAPApH,EAAgB6B,KAAMk6L,IAEtB30L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB27L,UAAY50L,EAAM40L,UAAUpgL,KAAK7B,EAAuB3S,IAC9DA,EAAM60L,aAAe70L,EAAM60L,aAAargL,KAAK7B,EAAuB3S,IACpEA,EAAM80L,SAAW90L,EAAM80L,SAAStgL,KAAK7B,EAAuB3S,IAC5DA,EAAM+0L,YAAc/0L,EAAM+0L,YAAYvgL,KAAK7B,EAAuB3S,IAC3DA,EA+HT,OA5HAzG,EAAao7L,EAA0B,CAAC,CACtCp8L,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,IAAIgxB,EAAYrlC,KAAKxB,MAAM+7L,gBAE3B,GAAIl1J,GAAaA,EAAU1qC,OAAQ,CAKjC,IAJA,IAAI6/L,EAAaztG,EAAmB/sF,KAAKxB,MAAMD,QAE3Ck8L,EAAa1tG,EAAmB/sF,KAAKxB,MAAMyS,QAEtCrW,EAAI,EAAGA,EAAIyqC,EAAU1qC,OAAQC,IAAK,CACzC,IAAIg/L,EAAev0J,EAAUzqC,IAEsD,IAA/E+S,IAAYwrL,gBAAgBS,EAAcY,EAAYx6L,KAAKxB,MAAM2Q,UACnEqrL,EAAW3+L,KAAK4+L,EAAWxrL,OAAOtB,IAAYwrL,gBAAgBS,EAAca,EAAYz6L,KAAKxB,MAAM2Q,SAAU,GAAG,IAIhHnP,KAAKxB,MAAMk8L,YACb16L,KAAKxB,MAAMk8L,WAAW,CACpB/kL,cAAetB,EACfpD,OAAQwpL,EACRl8L,OAAQi8L,EACRxjK,UAAW,gBAKlB,CACDl5B,IAAK,eACLhC,MAAO,SAAsBuY,GAC3B,GAAIrU,KAAKxB,MAAMyS,OAAQ,CACrB,IAAIupL,EAAa,GAAGz8L,OAAOgvF,EAAmB/sF,KAAKxB,MAAMD,QAASwuF,EAAmB/sF,KAAKxB,MAAMyS,SAG5FjR,KAAKxB,MAAMk8L,YACb16L,KAAKxB,MAAMk8L,WAAW,CACpB/kL,cAAetB,EACfpD,OALa,GAMb1S,OAAQi8L,EACRxjK,UAAW,mBAKlB,CACDl5B,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAIgxB,EAAYrlC,KAAKxB,MAAMm8L,gBAE3B,GAAIt1J,GAAaA,EAAU1qC,OAAQ,CAKjC,IAJA,IAAI6/L,EAAaztG,EAAmB/sF,KAAKxB,MAAMD,QAE3Ck8L,EAAa1tG,EAAmB/sF,KAAKxB,MAAMyS,QAEtCrW,EAAI,EAAGA,EAAIyqC,EAAU1qC,OAAQC,IAAK,CACzC,IAAIg/L,EAAev0J,EAAUzqC,IAEsD,IAA/E+S,IAAYwrL,gBAAgBS,EAAca,EAAYz6L,KAAKxB,MAAM2Q,UACnEsrL,EAAW5+L,KAAK2+L,EAAWvrL,OAAOtB,IAAYwrL,gBAAgBS,EAAcY,EAAYx6L,KAAKxB,MAAM2Q,SAAU,GAAG,IAIhHnP,KAAKxB,MAAMk8L,YACb16L,KAAKxB,MAAMk8L,WAAW,CACpB/kL,cAAetB,EACfpD,OAAQwpL,EACRl8L,OAAQi8L,EACRxjK,UAAW,gBAKlB,CACDl5B,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAIrU,KAAKxB,MAAMyS,OAAQ,CACrB,IAAIwpL,EAAa,GAAG18L,OAAOgvF,EAAmB/sF,KAAKxB,MAAMyS,QAAS87E,EAAmB/sF,KAAKxB,MAAMD,SAG5FyB,KAAKxB,MAAMk8L,YACb16L,KAAKxB,MAAMk8L,WAAW,CACpB/kL,cAAetB,EACfpD,OAAQwpL,EACRl8L,OANa,GAOby4B,UAAW,mBAKlB,CACDl5B,IAAK,SACLhC,MAAO,WACL,IAAI8+L,GAAqB56L,KAAKxB,MAAM+7L,gBAAgB5/L,OAChDkgM,GAAoB76L,KAAKxB,MAAMm8L,gBAAgBhgM,OAC/CmgM,GAAwB96L,KAAKxB,MAAMyS,OAAOtW,OAC1CogM,GAAuB/6L,KAAKxB,MAAMD,OAAO5D,OACzC4C,EAAYN,YAAW,iDAAkD+C,KAAKxB,MAAMjB,WACxF,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,GACGsd,IAAM7P,cAAcovE,IAAQ,CAC1C36D,SAAUm7K,EACVp9L,KAAM,SACN07E,KAAM,oBACNlZ,QAAShgE,KAAKm6L,YACCt/K,IAAM7P,cAAcovE,IAAQ,CAC3C36D,SAAUq7K,EACVt9L,KAAM,SACN07E,KAAM,2BACNlZ,QAAShgE,KAAKo6L,eACCv/K,IAAM7P,cAAcovE,IAAQ,CAC3C36D,SAAUo7K,EACVr9L,KAAM,SACN07E,KAAM,mBACNlZ,QAAShgE,KAAKq6L,WACCx/K,IAAM7P,cAAcovE,IAAQ,CAC3C36D,SAAUs7K,EACVv9L,KAAM,SACN07E,KAAM,0BACNlZ,QAAShgE,KAAKs6L,mBAKbJ,EA9ImC,CA+I1Cl/K,aAEF,SAAS+J,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIksL,EAAwB,SAAUphL,GACpCpB,EAAUwiL,EAAUphL,GAEpB,IAAIC,EAASkL,EAAai2K,GAE1B,SAASA,EAASx8L,GAChB,IAAI+G,EAkBJ,OAhBApH,EAAgB6B,KAAMg7L,IAEtBz1L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,GAET7X,EAAM/G,MAAMy8L,0BACf11L,EAAM6X,MAAMm9K,gBAAkB,IAG3Bh1L,EAAM/G,MAAM08L,0BACf31L,EAAM6X,MAAMu9K,gBAAkB,IAGhCp1L,EAAM41L,gBAAkB51L,EAAM41L,gBAAgBphL,KAAK7B,EAAuB3S,IAC1EA,EAAM61L,gBAAkB71L,EAAM61L,gBAAgBrhL,KAAK7B,EAAuB3S,IAC1EA,EAAMm1L,WAAan1L,EAAMm1L,WAAW3gL,KAAK7B,EAAuB3S,IACzDA,EAmOT,OAhOAzG,EAAak8L,EAAU,CAAC,CACtBl9L,IAAK,qBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMy8L,wBAA0Bj7L,KAAKxB,MAAM+7L,gBAAkBv6L,KAAKod,MAAMm9K,kBAErF,CACDz8L,IAAK,qBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM08L,wBAA0Bl7L,KAAKxB,MAAMm8L,gBAAkB36L,KAAKod,MAAMu9K,kBAErF,CACD78L,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9BrU,KAAKq7L,aAAahnL,EAAOA,EAAMvY,MAAOkE,KAAKxB,MAAMD,QACjDyB,KAAKs7L,qBAAuBt7L,KAAKu7L,kBACjCv7L,KAAKw7L,iBAAmBnnL,EAAM2iB,YAE/B,CACDl5B,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9BrU,KAAKq7L,aAAahnL,EAAOrU,KAAKxB,MAAMyS,OAAQoD,EAAMvY,OAClDkE,KAAKs7L,qBAAuBt7L,KAAKy7L,kBACjCz7L,KAAKw7L,iBAAmBnnL,EAAM2iB,YAE/B,CACDl5B,IAAK,uBACLhC,MAAO,SAA8BwxJ,EAAat2H,GAChD,GAAIs2H,EAAa,CACf,IAAIouC,EAAgB37L,IAAWiI,WAAWslJ,EAAa,oBAEvD,OAAQt2H,GACN,IAAK,KACHh3B,KAAKm8G,aAAau/E,GAAgB,GAClC,MAEF,IAAK,MACHA,EAAc56L,UAAY,EAC1B,MAEF,IAAK,OACHd,KAAKm8G,aAAau/E,EAAe,GACjC,MAEF,IAAK,SACHA,EAAc56L,UAAY46L,EAAc9+I,iBAK/C,CACD9+C,IAAK,eACLhC,MAAO,SAAsBuY,EAAOpD,EAAQ1S,GACtCyB,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EAAMsB,cACrB1E,OAAQA,EACR1S,OAAQA,MAIb,CACDT,IAAK,aACLhC,MAAO,SAAoBuY,GACzB,IAAIsB,EAAgBtB,EAAMsB,cACtB1E,EAASoD,EAAMpD,OACf1S,EAAS8V,EAAM9V,OAGnB,OAFgB8V,EAAM2iB,WAGpB,IAAK,WACCh3B,KAAKxB,MAAMm9L,gBACb37L,KAAKxB,MAAMm9L,eAAe,CACxBhmL,cAAeA,EACf7Z,MAAOkE,KAAK47L,uBAIhB,MAEF,IAAK,cACC57L,KAAKxB,MAAMq9L,mBACb77L,KAAKxB,MAAMq9L,kBAAkB,CAC3BlmL,cAAeA,EACf7Z,MAAOkE,KAAKxB,MAAMyS,SAItB,MAEF,IAAK,WACCjR,KAAKxB,MAAMs9L,gBACb97L,KAAKxB,MAAMs9L,eAAe,CACxBnmL,cAAeA,EACf7Z,MAAOkE,KAAK+7L,uBAIhB,MAEF,IAAK,cACC/7L,KAAKxB,MAAMw9L,mBACbh8L,KAAKxB,MAAMw9L,kBAAkB,CAC3BrmL,cAAeA,EACf7Z,MAAOkE,KAAKxB,MAAMD,SAO1ByB,KAAKq6F,kBAAkB,CACrB1kF,cAAeA,EACf7Z,MAAO,IACN,kBAAmBkE,KAAKxB,MAAMy8L,yBACjCj7L,KAAKq6F,kBAAkB,CACrB1kF,cAAeA,EACf7Z,MAAO,IACN,kBAAmBkE,KAAKxB,MAAM08L,yBACjCl7L,KAAKq7L,aAAahnL,EAAOpD,EAAQ1S,KAElC,CACDT,IAAK,eACLhC,MAAO,SAAsB4/L,GAC3B,IAAI1kK,EAAY75B,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,GAAmBA,UAAU,GAAK,EAChFw8L,EAAgB+B,EAAcO,uBAAuB,eACzDl8L,IAAWo8G,aAAau/E,GAA8B,IAAf1kK,EAAmB2iK,EAAc,GAAKA,EAAcA,EAAch/L,OAAS,MAEnH,CACDmD,IAAK,oBACLhC,MAAO,SAA2B0D,EAAGgnG,EAAU7gG,GACzCA,EACFA,EAASnG,GAETQ,KAAKwd,SAAShN,EAAgB,GAAIg2F,EAAUhnG,EAAE1D,QAG5CkE,KAAKod,MAAMm9K,iBAAmBv6L,KAAKod,MAAMm9K,gBAAgB5/L,QAAuB,oBAAb6rG,EACrExmG,KAAKwd,SAAS,CACZ+8K,gBAAiB,KAEVv6L,KAAKod,MAAMu9K,iBAAmB36L,KAAKod,MAAMu9K,gBAAgBhgM,QAAuB,oBAAb6rG,GAC5ExmG,KAAKwd,SAAS,CACZm9K,gBAAiB,OAItB,CACD78L,IAAK,qBACLhC,MAAO,WACDkE,KAAKs7L,uBACPt7L,KAAKk8L,qBAAqBl8L,KAAKs7L,qBAAsBt7L,KAAKw7L,kBAC1Dx7L,KAAKs7L,qBAAuB,KAC5Bt7L,KAAKw7L,iBAAmB,QAG3B,CACD19L,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,yBAA0B+C,KAAKxB,MAAMjB,WAC5Dg9L,EAAkBv6L,KAAK47L,qBACvBjB,EAAkB36L,KAAK+7L,qBAC3B,OAAoBlhL,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjBJ,KAAKxB,MAAM29L,oBAAmCthL,IAAM7P,cAAcsuL,EAAkB,CACrFpqL,KAAMlP,KAAKxB,MAAMyS,OACjBo0B,UAAWk1J,EACXR,UAAW/5L,KAAKm7L,gBAChB59L,UAAW,6BACX4R,QAASnP,KAAKxB,MAAM2Q,UACL0L,IAAM7P,cAAcquL,EAAiB,CACpDv+K,IAAK,SAAa7a,GAChB,OAAO0a,EAAO4gL,kBAAoBt7L,GAEpCiP,KAAMlP,KAAKxB,MAAMyS,OACjBo0B,UAAWk1J,EACXlgG,kBAAmB,SAA2B76F,GAC5C,OAAOmb,EAAO0/E,kBAAkB76F,EAAG,kBAAmBmb,EAAOnc,MAAMy8L,0BAErEpmF,aAAc70G,KAAKxB,MAAMq2G,aACzB75B,OAAQh7E,KAAKxB,MAAM49L,aACnBh8L,MAAOJ,KAAKxB,MAAM69L,YAClB9+L,UAAW,4BACXg7L,cAAe,oBACf17F,iBAAkB78F,KAAKxB,MAAMq+F,iBAC7B/3B,SAAU9kE,KAAKxB,MAAMsmE,SACrB31D,QAASnP,KAAKxB,MAAM2Q,UACL0L,IAAM7P,cAAckvL,EAA0B,CAC7DQ,WAAY16L,KAAK06L,WACjBzpL,OAAQjR,KAAKxB,MAAMyS,OACnB1S,OAAQyB,KAAKxB,MAAMD,OACnBg8L,gBAAiBA,EACjBI,gBAAiBA,EACjBxrL,QAASnP,KAAKxB,MAAM2Q,UACL0L,IAAM7P,cAAcquL,EAAiB,CACpDv+K,IAAK,SAAa7a,GAChB,OAAO0a,EAAO8gL,kBAAoBx7L,GAEpCiP,KAAMlP,KAAKxB,MAAMD,OACjB8mC,UAAWs1J,EACXtgG,kBAAmB,SAA2B76F,GAC5C,OAAOmb,EAAO0/E,kBAAkB76F,EAAG,kBAAmBmb,EAAOnc,MAAM08L,0BAErErmF,aAAc70G,KAAKxB,MAAMq2G,aACzB75B,OAAQh7E,KAAKxB,MAAM89L,aACnBl8L,MAAOJ,KAAKxB,MAAM+9L,YAClBh/L,UAAW,4BACXg7L,cAAe,oBACf17F,iBAAkB78F,KAAKxB,MAAMq+F,iBAC7B/3B,SAAU9kE,KAAKxB,MAAMsmE,SACrB31D,QAASnP,KAAKxB,MAAM2Q,UAClBnP,KAAKxB,MAAMg+L,oBAAmC3hL,IAAM7P,cAAcsuL,EAAkB,CACtFpqL,KAAMlP,KAAKxB,MAAMD,OACjB8mC,UAAWs1J,EACXZ,UAAW/5L,KAAKo7L,gBAChB79L,UAAW,6BACX4R,QAASnP,KAAKxB,MAAM2Q,eAKnB6rL,EA3PmB,CA4P1BhgL,aAEFxK,EAAgBwqL,EAAU,eAAgB,CACxCl3K,GAAI,KACJ7S,OAAQ,KACR1S,OAAQ,KACR69L,aAAc,KACdE,aAAc,KACdl8L,MAAO,KACP7C,UAAW,KACX8+L,YAAa,KACbE,YAAa,KACbhC,gBAAiB,KACjBI,gBAAiB,KACjBwB,oBAAoB,EACpBK,oBAAoB,EACpB3/F,kBAAkB,EAClB/3B,SAAU,EACV31D,QAAS,KACT0lG,aAAc,KACdtiG,SAAU,KACVupL,eAAgB,KAChBE,kBAAmB,KACnBL,eAAgB,KAChBE,kBAAmB,KACnBZ,wBAAyB,KACzBC,wBAAyB,Q,6BC/9B3B,oEAIA,SAASxrL,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAASwgB,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI2tL,EAAiC,SAAU7iL,GAC7CpB,EAAUikL,EAAmB7iL,GAE7B,IAAIC,EAAS4C,EAAeggL,GAE5B,SAASA,IACP,IAAIl3L,EASJ,OAPApH,EAAgB6B,KAAMy8L,IAEtBl3L,EAAQsU,EAAOne,KAAKsE,OACdu5L,OAASh0L,EAAMg0L,OAAOx/K,KAAK7B,EAAuB3S,IACxDA,EAAMi0L,QAAUj0L,EAAMi0L,QAAQz/K,KAAK7B,EAAuB3S,IAC1DA,EAAMk0L,SAAWl0L,EAAMk0L,SAAS1/K,KAAK7B,EAAuB3S,IAC5DA,EAAMm0L,WAAan0L,EAAMm0L,WAAW3/K,KAAK7B,EAAuB3S,IACzDA,EA4IT,OAzIAzG,EAAa29L,EAAmB,CAAC,CAC/B3+L,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,GAAIrU,KAAKxB,MAAM6mC,UAAW,CAGxB,IAFA,IAAIvpC,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAEjClB,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM6mC,UAAU1qC,OAAQC,IAAK,CACpD,IAAIg/L,EAAe55L,KAAKxB,MAAM6mC,UAAUzqC,GACpCi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc99L,EAAOkE,KAAKxB,MAAM2Q,SAEpF,GAA0B,IAAtB0qL,EAMF,MALA,IAAIC,EAAYh+L,EAAM+9L,GAClB1+B,EAAOr/J,EAAM+9L,EAAoB,GACrC/9L,EAAM+9L,EAAoB,GAAKC,EAC/Bh+L,EAAM+9L,GAAqB1+B,EAM3Bn7J,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOA,EACPk7B,UAAW,UAKlB,CACDl5B,IAAK,UACLhC,MAAO,SAAiBuY,GACtB,GAAIrU,KAAKxB,MAAM6mC,UAAW,CAGxB,IAFA,IAAIvpC,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAEjClB,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM6mC,UAAU1qC,OAAQC,IAAK,CACpD,IAAIg/L,EAAe55L,KAAKxB,MAAM6mC,UAAUzqC,GACpCi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc99L,EAAOkE,KAAKxB,MAAM2Q,SAEpF,GAA0B,IAAtB0qL,EAIF,MAHA,IAAIC,EAAYh+L,EAAMmT,OAAO4qL,EAAmB,GAAG,GACnD/9L,EAAM0xB,QAAQssK,GAMd95L,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOA,EACPk7B,UAAW,WAKlB,CACDl5B,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,GAAIrU,KAAKxB,MAAM6mC,UAAW,CAGxB,IAFA,IAAIvpC,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAEjClB,EAAIoF,KAAKxB,MAAM6mC,UAAU1qC,OAAS,EAAGC,GAAK,EAAGA,IAAK,CACzD,IAAIg/L,EAAe55L,KAAKxB,MAAM6mC,UAAUzqC,GACpCi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc99L,EAAOkE,KAAKxB,MAAM2Q,SAEpF,GAAI0qL,IAAsB/9L,EAAMnB,OAAS,EAMvC,MALA,IAAIm/L,EAAYh+L,EAAM+9L,GAClB1+B,EAAOr/J,EAAM+9L,EAAoB,GACrC/9L,EAAM+9L,EAAoB,GAAKC,EAC/Bh+L,EAAM+9L,GAAqB1+B,EAM3Bn7J,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOA,EACPk7B,UAAW,YAKlB,CACDl5B,IAAK,aACLhC,MAAO,SAAoBuY,GACzB,GAAIrU,KAAKxB,MAAM6mC,UAAW,CAGxB,IAFA,IAAIvpC,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAEjClB,EAAIoF,KAAKxB,MAAM6mC,UAAU1qC,OAAS,EAAGC,GAAK,EAAGA,IAAK,CACzD,IAAIg/L,EAAe55L,KAAKxB,MAAM6mC,UAAUzqC,GACpCi/L,EAAoBlsL,IAAYwrL,gBAAgBS,EAAc99L,EAAOkE,KAAKxB,MAAM2Q,SAEpF,GAAI0qL,IAAsB/9L,EAAMnB,OAAS,EAIvC,MAHA,IAAIm/L,EAAYh+L,EAAMmT,OAAO4qL,EAAmB,GAAG,GACnD/9L,EAAMD,KAAKi+L,GAMX95L,KAAKxB,MAAMu7L,WACb/5L,KAAKxB,MAAMu7L,UAAU,CACnBpkL,cAAetB,EACfvY,MAAOA,EACPk7B,UAAW,cAKlB,CACDl5B,IAAK,SACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,wBACGsd,IAAM7P,cAAcovE,IAAQ,CAC1C58E,KAAM,SACN07E,KAAM,iBACNlZ,QAAShgE,KAAKu5L,SACC1+K,IAAM7P,cAAcovE,IAAQ,CAC3C58E,KAAM,SACN07E,KAAM,wBACNlZ,QAAShgE,KAAKw5L,UACC3+K,IAAM7P,cAAcovE,IAAQ,CAC3C58E,KAAM,SACN07E,KAAM,mBACNlZ,QAAShgE,KAAKy5L,WACC5+K,IAAM7P,cAAcovE,IAAQ,CAC3C58E,KAAM,SACN07E,KAAM,0BACNlZ,QAAShgE,KAAK05L,kBAKb+C,EA3J4B,CA4JnCzhL,aAEF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI4tL,EAAgC,SAAU9iL,GAC5CpB,EAAUkkL,EAAkB9iL,GAE5B,IAAIC,EAASgE,EAAe6+K,GAE5B,SAASA,EAAiBl+L,GACxB,IAAI+G,EASJ,OAPApH,EAAgB6B,KAAM08L,IAEtBn3L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB+3F,UAAYhxF,EAAMgxF,UAAUx8E,KAAK7B,EAAuB3S,IAC9DA,EAAMkxF,YAAclxF,EAAMkxF,YAAY18E,KAAK7B,EAAuB3S,IAClEA,EAAMmxF,OAASnxF,EAAMmxF,OAAO38E,KAAK7B,EAAuB3S,IACxDA,EAAMo3L,gBAAkBp3L,EAAMo3L,gBAAgB5iL,KAAK7B,EAAuB3S,IACnEA,EAiLT,OA9KAzG,EAAa49L,EAAkB,CAAC,CAC9B5+L,IAAK,aACLhC,MAAO,SAAoBiO,GACzB,OAAwF,IAAjF4D,IAAYwrL,gBAAgBpvL,EAAM/J,KAAKxB,MAAM6mC,UAAWrlC,KAAKxB,MAAM2Q,WAE3E,CACDrR,IAAK,cACLhC,MAAO,SAAqBuY,EAAOgoD,GACjCr8D,KAAKkxI,UAAW,EAChBlxI,KAAK48L,iBAAmBvgI,EAEpBr8D,KAAKxB,MAAMq+L,eACbxoL,EAAMiqF,aAAaC,QAAQ,OAAQ,eAGtC,CACDzgG,IAAK,aACLhC,MAAO,SAAoBuY,EAAOgoD,GAC5Br8D,KAAK48L,mBAAqBvgI,GAASr8D,KAAK48L,iBAAmB,IAAMvgI,IACnEr8D,KAAK88L,kBAAoBzgI,EACzBt8D,IAAWya,SAASnG,EAAM9V,OAAQ,mCAClC8V,EAAMY,oBAGT,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GAC1BrU,KAAK88L,kBAAoB,KACzB/8L,IAAWma,YAAY7F,EAAM9V,OAAQ,qCAEtC,CACDT,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAIuqF,EAAY5+F,KAAK48L,iBAAmB58L,KAAK88L,kBAAoB98L,KAAK88L,kBAA+C,IAA3B98L,KAAK88L,kBAA0B,EAAI98L,KAAK88L,kBAAoB,EAElJhhM,EAAQixF,EAAmB/sF,KAAKxB,MAAM1C,OAE1C6R,IAAYkxF,aAAa/iG,EAAOkE,KAAK48L,iBAAkBh+F,GACvD5+F,KAAK88L,kBAAoB,KACzB/8L,IAAWma,YAAY7F,EAAM9V,OAAQ,mCAEjCyB,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClBoD,cAAetB,EACfvY,MAAOA,MAIZ,CACDgC,IAAK,YACLhC,MAAO,SAAmBuY,GACxBrU,KAAKkxI,UAAW,IAEjB,CACDpzI,IAAK,kBACLhC,MAAO,SAAyBuY,GAC9B,GAAIrU,KAAKkxI,SAAU,CACjB,IAAI5qI,EAAUtG,KAAKstJ,YAAYnrJ,wBAAwBC,IAAMrC,IAAW+E,qBACpEi4L,EAAaz2L,EAAUtG,KAAKstJ,YAAY5rJ,aAAe2S,EAAMkG,MAC7DyiL,EAAU3oL,EAAMkG,MAAQjU,EACxBy2L,EAAa,IAAMA,EAAa,EAAG/8L,KAAKstJ,YAAYxsJ,WAAa,GAAYk8L,EAAU,IAAMA,EAAU,IAAGh9L,KAAKstJ,YAAYxsJ,WAAa,OAG/I,CACDhD,IAAK,kBACLhC,MAAO,SAAyBugE,EAAOv+D,GACrC,IAAI6c,EAAS3a,KAEb,OAAoB6a,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKA,EACLP,UAAW,wBACXi5F,WAAY,SAAoBh3F,GAC9B,OAAOmb,EAAO67E,WAAWh3F,EAAG68D,EAAQ,IAEtCo6B,YAAaz2F,KAAKy2F,YAClBC,OAAQ12F,KAAK02F,WAGhB,CACD54F,IAAK,SACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAETg7E,EAAS,KACTk7B,EAAQ,KA2EZ,OAzEIl2G,KAAKxB,MAAMw8E,SACbA,EAAsBngE,IAAM7P,cAAc,MAAO,CAC/CzN,UAAW,sBACVyC,KAAKxB,MAAMw8E,SAGZh7E,KAAKxB,MAAM1C,QACbo6G,EAAQl2G,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAUoM,EAAMnP,GAC3C,IAAIokB,EAAUkC,EAAO1iB,MAAMq2G,aAAe3zF,EAAO1iB,MAAMq2G,aAAa9qG,GAAQA,EACxEkzL,EAAgBhgM,YAAW,mBAAoB,CACjD,cAAeikB,EAAO8xD,WAAWjpE,IAChCmX,EAAO1iB,MAAMjB,WACZO,EAAMm6C,KAAKC,UAAUnuC,GAEzB,GAAImX,EAAO1iB,MAAM0+L,SAAU,CACzB,IAAIC,EAAS,CAACj8K,EAAOk8K,gBAAgBxiM,EAAGkD,EAAM,cAA4B+c,IAAM7P,cAAc,KAAM,CAClGlN,IAAKA,EACLP,UAAW0/L,EACXj9H,QAAS,SAAiBxgE,GACxB,OAAO0hB,EAAO1iB,MAAMm8I,YAAY,CAC9BhlI,cAAenW,EACf1D,MAAOiO,EACPsyD,MAAOzhE,KAGX6Z,UAAW,SAAmBjV,GAC5B,OAAO0hB,EAAO1iB,MAAM+gL,cAAc,CAChC5pK,cAAenW,EACf1D,MAAOiO,EACPsyD,MAAOzhE,KAGXmpB,KAAM,SACN,gBAAiB7C,EAAO8xD,WAAWjpE,GACnC6sF,UAAW,OACXsB,YAAa,SAAqB14F,GAChC,OAAO0hB,EAAOg3E,YAAY14F,EAAG5E,IAE/B27F,UAAWr1E,EAAOq1E,UAClBzxB,SAAU5jD,EAAO1iB,MAAMsmE,UACtB9lD,EAAsBnE,IAAM7P,cAAc2O,IAAQ,QAMrD,OAJI/e,IAAMsmB,EAAO1iB,MAAM1C,MAAMnB,OAAS,GACpCwiM,EAAOthM,KAAKqlB,EAAOk8K,gBAAgBrzL,EAAMnP,EAAGkD,EAAM,mBAG7Cq/L,EAEP,OAAoBtiL,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKm6C,KAAKC,UAAUnuC,GACpBxM,UAAW0/L,EACXl5K,KAAM,SACN,gBAAiB7C,EAAO8xD,WAAWjpE,GACnCi2D,QAAS,SAAiBxgE,GACxB,OAAO0hB,EAAO1iB,MAAMm8I,YAAY,CAC9BhlI,cAAenW,EACf1D,MAAOiO,EACPsyD,MAAOzhE,KAGX6Z,UAAW,SAAmBjV,GAC5B,OAAO0hB,EAAO1iB,MAAM+gL,cAAc,CAChC5pK,cAAenW,EACf1D,MAAOiO,EACPsyD,MAAOzhE,KAGXkqE,SAAU5jD,EAAO1iB,MAAMsmE,UACtB9lD,OAKWnE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,8BACVy9E,EAAqBngE,IAAM7P,cAAc,KAAM,CAChD8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAOosI,YAAcrtJ,GAE9B1C,UAAW,mBACX6C,MAAOJ,KAAKxB,MAAMi6L,UAClBjiG,WAAYx2F,KAAK28L,gBACjB54K,KAAM,UACN,wBAAwB,GACvBmyF,QAIAwmF,EAhM2B,CAiMlC1hL,aAEF,SAAS+J,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAzXyB9R,EAAKc,EAAKhC,EAyX/BuhM,EAAyB,SAAUzjL,GACrCpB,EAAU6kL,EAAWzjL,GAErB,IAAIC,EAASkL,EAAas4K,GAE1B,SAASA,EAAU7+L,GACjB,IAAI+G,EAWJ,OATApH,EAAgB6B,KAAMq9L,IAEtB93L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZioB,UAAW,IAEb9/B,EAAMo1I,YAAcp1I,EAAMo1I,YAAY5gI,KAAK7B,EAAuB3S,IAClEA,EAAMg6K,cAAgBh6K,EAAMg6K,cAAcxlK,KAAK7B,EAAuB3S,IACtEA,EAAMw0L,UAAYx0L,EAAMw0L,UAAUhgL,KAAK7B,EAAuB3S,IACvDA,EA6JT,OA1JAzG,EAAau+L,EAAW,CAAC,CACvBv/L,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAGIgxB,EAHA9vB,EAAUlB,EAAMsB,cAAcJ,SAAWlB,EAAMsB,cAAcN,QAC7DgnD,EAAQ1uD,IAAYwrL,gBAAgB9kL,EAAMvY,MAAOkE,KAAKod,MAAMioB,UAAWrlC,KAAKxB,MAAM2Q,SAKvEk2B,GAJW,IAAXg3B,EAIT9mD,EAAqBvV,KAAKod,MAAMioB,UAAUrnC,QAAO,SAAUqY,EAAKzb,GAClE,OAAOA,IAAMyhE,KACK,CAAChoD,EAAMvY,OAEvByZ,EAAqB,GAAGxX,OAAOgvF,EAAmB/sF,KAAKod,MAAMioB,WAAY,CAAChxB,EAAMvY,QAAyB,CAACuY,EAAMvY,OAGtHkE,KAAKwd,SAAS,CACZ6nB,UAAWA,MAGd,CACDvnC,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAI26I,EAAW36I,EAAMsB,cAAc8E,cAEnC,OAAQpG,EAAMsB,cAAchB,OAE1B,KAAK,GACH,IAAI+2I,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASt/D,QAGX/3E,EAAMsB,cAAcV,iBACpB,MAGF,KAAK,GACH,IAAI02I,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASv/D,QAGX/3E,EAAMsB,cAAcV,iBACpB,MAGF,KAAK,GACHjV,KAAK26I,YAAYtmI,GACjBA,EAAMsB,cAAcV,oBAIzB,CACDnX,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAkB3rJ,IAAW6uF,SAAS88D,EAAU,oBAAoDA,EAA9B1rJ,KAAKsrJ,aAAaI,GAAiC,OAE9H,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAkB5rJ,IAAW6uF,SAAS+8D,EAAU,oBAAoDA,EAA9B3rJ,KAAKwrJ,aAAaG,GAAiC,OAE9H,CACD7tJ,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAM+T,UACbvS,KAAKxB,MAAM+T,SAAS,CAClB8B,MAAOA,EAAMsB,cACb7Z,MAAOuY,EAAMvY,QAIjBkE,KAAKw7L,iBAAmBnnL,EAAM2iB,YAE/B,CACDl5B,IAAK,qBACLhC,MAAO,WACDkE,KAAKw7L,mBACPx7L,KAAKs9L,mBACLt9L,KAAKw7L,iBAAmB,QAG3B,CACD19L,IAAK,mBACLhC,MAAO,WACL,IAAIyhM,EAAYx9L,IAAW+L,KAAK9L,KAAKw9L,QAAQlwC,YAAa,iCAE1D,GAAIiwC,GAAaA,EAAU5iM,OACzB,OAAQqF,KAAKw7L,kBACX,IAAK,KACHz7L,IAAWo8G,aAAan8G,KAAKw9L,QAAQlwC,YAAaiwC,EAAU,IAC5D,MAEF,IAAK,MACHv9L,KAAKw9L,QAAQlwC,YAAYxsJ,UAAY,EACrC,MAEF,IAAK,OACHf,IAAWo8G,aAAan8G,KAAKw9L,QAAQlwC,YAAaiwC,EAAUA,EAAU5iM,OAAS,IAC/E,MAEF,IAAK,SACHqF,KAAKw9L,QAAQlwC,YAAYxsJ,UAAYd,KAAKw9L,QAAQlwC,YAAY1wG,gBAKrE,CACD9+C,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,0BAA2B+C,KAAKxB,MAAMjB,WACjE,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAOpY,QAAUtC,GAE1B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAcyxL,EAAmB,CACrD3gM,MAAOkE,KAAKxB,MAAM1C,MAClBupC,UAAWrlC,KAAKod,MAAMioB,UACtB00J,UAAW/5L,KAAK+5L,UAChB5qL,QAASnP,KAAKxB,MAAM2Q,UACL0L,IAAM7P,cAAc0xL,EAAkB,CACrD5hL,IAAK,SAAa7a,GAChB,OAAO0a,EAAO6iL,QAAUv9L,GAE1BnE,MAAOkE,KAAKxB,MAAM1C,MAClBupC,UAAWrlC,KAAKod,MAAMioB,UACtBs1G,YAAa36I,KAAK26I,YAClB4kC,cAAev/K,KAAKu/K,cACpB1qE,aAAc70G,KAAKxB,MAAMq2G,aACzB75B,OAAQh7E,KAAKxB,MAAMw8E,OACnBy9G,UAAWz4L,KAAKxB,MAAMi6L,UACtBtpL,QAASnP,KAAKxB,MAAM2Q,QACpB+tL,SAAUl9L,KAAKxB,MAAM0+L,SACrBhlG,YAAal4F,KAAKk4F,YAClB+7D,YAAaj0J,KAAKi0J,YAClB19D,UAAWv2F,KAAKu2F,UAChBE,YAAaz2F,KAAKi0J,YAClBv9D,OAAQ12F,KAAK02F,OACbnkF,SAAUvS,KAAKxB,MAAM+T,SACrBuyD,SAAU9kE,KAAKxB,MAAMsmE,gBAKpBu4H,EA9KoB,CA+K3BriL,aAxiBiClf,EA0iBQ,CACzCgoB,GAAI,KACJhoB,MAAO,KACPk/E,OAAQ,KACR56E,MAAO,KACP7C,UAAW,KACXk7L,UAAW,KACXyE,UAAU,EACVp4H,SAAU,EACV31D,QAAS,KACToD,SAAU,KACVsiG,aAAc,OArjBc/2G,EA0iBH,kBA1iBFd,EA0iBTqgM,GAxiBZjhM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCrIf,6DAGA,SAAStB,EAAoBC,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOD,EAAoBC,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOzB,EAAoByB,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAW3B,EAAoByB,EAAGC,QAA3G,GAQ2DU,CAA8BnC,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASiC,EAA6BhD,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAEhL,SAAuClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOiD,EAAoBnD,EAAGC,GAFvOmD,CAA8BpD,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAI79B,SAASqD,EAAoB3E,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAElL,SAASkjB,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAASsf,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAI2uL,EAA0B,SAAU7jL,GACtCpB,EAAUilL,EAAY7jL,GAEtB,IAAIC,EAASgE,EAAe4/K,GAE5B,SAASA,EAAWj/L,GAClB,IAAI+G,EAqBJ,OAnBApH,EAAgB6B,KAAMy9L,IAEtBl4L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBwhE,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM6wF,cAAgB7wF,EAAM6wF,cAAcr8E,KAAK7B,EAAuB3S,IACtEA,EAAM+wF,aAAe/wF,EAAM+wF,aAAav8E,KAAK7B,EAAuB3S,IACpEA,EAAM8wF,WAAa9wF,EAAM8wF,WAAWt8E,KAAK7B,EAAuB3S,IAChEA,EAAMurJ,eAAiBvrJ,EAAMurJ,eAAe/2I,KAAK7B,EAAuB3S,IACxEA,EAAMm4L,cAAgBn4L,EAAMm4L,cAAc3jL,KAAK7B,EAAuB3S,IACtEA,EAAMo4L,YAAcp4L,EAAMo4L,YAAY5jL,KAAK7B,EAAuB3S,IAClEA,EAAMmxF,OAASnxF,EAAMmxF,OAAO38E,KAAK7B,EAAuB3S,IACxDA,EAAMixF,WAAajxF,EAAMixF,WAAWz8E,KAAK7B,EAAuB3S,IAChEA,EAAM0uJ,YAAc1uJ,EAAM0uJ,YAAYl6I,KAAK7B,EAAuB3S,IAClEA,EAAMkxF,YAAclxF,EAAMkxF,YAAY18E,KAAK7B,EAAuB3S,IAClEA,EAAM2yF,YAAc3yF,EAAM2yF,YAAYn+E,KAAK7B,EAAuB3S,IAClEA,EAAMgxF,UAAYhxF,EAAMgxF,UAAUx8E,KAAK7B,EAAuB3S,IAC9DA,EAAMq4L,oBAAsBr4L,EAAMq4L,oBAAoB7jL,KAAK7B,EAAuB3S,IAClFA,EAAMs4L,qBAAuBt4L,EAAMs4L,qBAAqB9jL,KAAK7B,EAAuB3S,IACpFA,EAAMu4L,qBAAuBv4L,EAAMu4L,qBAAqB/jL,KAAK7B,EAAuB3S,IAC7EA,EAoxBT,OAjxBAzG,EAAa2+L,EAAY,CAAC,CACxB3/L,IAAK,SACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMu/L,WAAW/9L,KAAKxB,MAAM+I,QAEzC,CACDzJ,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAI2pL,EAAeh+L,KAAKxB,MAAMw/L,aAAehgL,EAAgB,GAAIhe,KAAKxB,MAAMw/L,cAAgB,GAC5FA,EAAah+L,KAAKxB,MAAM+I,KAAKzJ,MAAO,EACpCkC,KAAKxB,MAAMyxJ,SAAS,CAClBt6I,cAAetB,EACfvY,MAAOkiM,IAETh+L,KAAKi+L,mBAAmB5pL,GAAO,KAEhC,CACDvW,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAI2pL,EAAehgL,EAAgB,GAAIhe,KAAKxB,MAAMw/L,qBAE3CA,EAAah+L,KAAKxB,MAAM+I,KAAKzJ,KACpCkC,KAAKxB,MAAMyxJ,SAAS,CAClBt6I,cAAetB,EACfvY,MAAOkiM,IAETh+L,KAAKi+L,mBAAmB5pL,GAAO,KAEhC,CACDvW,IAAK,iBACLhC,MAAO,SAAwBuY,GACzBrU,KAAKxB,MAAMihB,WAIXzf,KAAKk+L,aAAcl+L,KAAKsT,SAASe,GAAYrU,KAAKyvB,OAAOpb,MAE9D,CACDvW,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOogF,GACpCA,EACEz0F,KAAKxB,MAAM6xJ,UACbrwJ,KAAKxB,MAAM6xJ,SAAS,CAClB16I,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,OAIjBvH,KAAKxB,MAAM8xJ,YACbtwJ,KAAKxB,MAAM8xJ,WAAW,CACpB36I,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAKxB,CACDzJ,IAAK,aACLhC,MAAO,WACL,QAAQkE,KAAKxB,MAAMw/L,mBAAgEv4L,IAAjDzF,KAAKxB,MAAMw/L,aAAah+L,KAAKxB,MAAM+I,KAAKzJ,MAA+BkC,KAAKxB,MAAM+I,KAAKktF,WAE1H,CACD32F,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5B,IAAIrU,KAAKxB,MAAMihB,SAAf,CAIA,IAAI0+K,EAAc9pL,EAAM9V,OAAO0b,cAE/B,GAAKla,IAAW6uF,SAASuvG,EAAa,cAItC,OAAQ9pL,EAAMM,OAEZ,KAAK,GACH,IAAI24I,EAAc6wC,EAAY37L,SAAS,GAEvC,GAAI8qJ,EACFttJ,KAAKo+L,UAAU9wC,EAAY9qJ,SAAS,QAC/B,CACL,IAAI67L,EAAkBF,EAAYvqG,mBAElC,GAAIyqG,EACFr+L,KAAKo+L,UAAUC,OACV,CACL,IAAIC,EAAsBt+L,KAAKu+L,0BAA0BJ,GAErDG,GACFt+L,KAAKo+L,UAAUE,IAKrBjqL,EAAMY,iBACN,MAGF,KAAK,GACH,GAAIkpL,EAAY7vG,uBACdtuF,KAAKo+L,UAAUp+L,KAAKw+L,0BAA0BL,EAAY7vG,6BACrD,CACL,IAAImwG,EAAoBz+L,KAAK0+L,qBAAqBP,GAE9CM,GACFz+L,KAAKo+L,UAAUK,GAInBpqL,EAAMY,iBACN,MAGF,KAAK,GACEjV,KAAKk+L,cACRl+L,KAAKyvB,OAAOpb,GAGdA,EAAMY,iBACN,MAGF,KAAK,GACCjV,KAAKk+L,cACPl+L,KAAKsT,SAASe,GAGhBA,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAKggE,QAAQ3rD,GACbA,EAAMY,qBAIX,CACDnX,IAAK,4BACLhC,MAAO,SAAmCqiM,GACxC,IAAIM,EAAoBz+L,KAAK0+L,qBAAqBP,GAElD,OAAIM,EACEA,EAAkB7qG,mBAA2B6qG,EAAkB7qG,mBAA+B5zF,KAAKu+L,0BAA0BE,GAE1H,OAGV,CACD3gM,IAAK,4BACLhC,MAAO,SAAmCqiM,GACxC,IAAIQ,EAAsBR,EAAY37L,SAAS,GAE/C,GAAIm8L,EAAqB,CACvB,IAAIC,EAAmBD,EAAoBn8L,SAASm8L,EAAoBn8L,SAAS7H,OAAS,GAC1F,OAAOqF,KAAKw+L,0BAA0BI,GAEtC,OAAOT,IAGV,CACDrgM,IAAK,uBACLhC,MAAO,SAA8BqiM,GACnC,IAAIM,EAAoBN,EAAYlkL,cAAcA,cAClD,OAAOla,IAAW6uF,SAAS6vG,EAAmB,cAAgBA,EAAoB,OAEnF,CACD3gM,IAAK,YACLhC,MAAO,SAAmByG,GACxBA,EAAQC,SAAS,GAAG4pF,UAErB,CACDtuF,IAAK,UACLhC,MAAO,SAAiBuY,GAQtB,GAPIrU,KAAKxB,MAAMwhE,SACbhgE,KAAKxB,MAAMwhE,QAAQ,CACjBrqD,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIjB8M,EAAM9V,OAAOhB,WAAa8W,EAAM9V,OAAOhB,UAAUf,cAAgB6T,QAA+D,IAArDgE,EAAM9V,OAAOhB,UAAUmO,QAAQ,mBAA2B1L,KAAKxB,MAAMihB,UAApJ,CAIA,GAAIzf,KAAKxB,MAAM69E,gBAAgD,IAA/Br8E,KAAKxB,MAAM+I,KAAK84H,WAAsB,CACpE,IAAIw+D,EAEJ,GAAI7+L,KAAKk9F,0BAA2B,CAClC,IAAIhR,EAAUlsF,KAAK+rF,YACnB8yG,EAAgB7+L,KAAKxB,MAAMqgM,cAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,eAAiB,GAEvF3yG,GACElsF,KAAKxB,MAAMsgM,uBAAwB9+L,KAAK++L,cAAc/+L,KAAKxB,MAAM+I,MAAM,EAAOs3L,UAA2BA,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAEvIkC,KAAKxB,MAAMwgM,sBAAwBh/L,KAAKxB,MAAMygM,eAChDj/L,KAAKxB,MAAMygM,cAAc,CACvBtpL,cAAetB,EACf0wG,OAAO,EACP85E,cAAeA,IAIf7+L,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIjBvH,KAAKxB,MAAMsgM,uBAAwB9+L,KAAK++L,cAAc/+L,KAAKxB,MAAM+I,MAAM,EAAMs3L,GAAoBA,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CACxIouF,SAAS,GAGPlsF,KAAKxB,MAAMwgM,sBAAwBh/L,KAAKxB,MAAMygM,eAChDj/L,KAAKxB,MAAMygM,cAAc,CACvBtpL,cAAetB,EACf0wG,OAAO,EACP85E,cAAeA,IAIf7+L,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,YAIlB,CACL,IAAIupF,EAAW9wF,KAAKgzE,aAGpB,IAFoBhzE,KAAKk/L,aAAsBl/L,KAAKxB,MAAMq+F,iBAEvC,CACjB,IAAItnF,EAAUlB,EAAMkB,SAAWlB,EAAMgB,QAEjCy7E,GAAYv7E,GACVvV,KAAKm/L,wBACPN,EAAgB,YAEhBA,EAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,gBAC1B7+L,KAAKxB,MAAM+I,KAAKzJ,KAGnCkC,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIjBvH,KAAKm/L,wBACPN,EAAgB7+L,KAAKxB,MAAM+I,KAAKzJ,IACvBkC,KAAKo/L,6BACdP,EAAiBtpL,GAAevV,KAAKxB,MAAMqgM,cAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,eAA/D,IACb7+L,KAAKxB,MAAM+I,KAAKzJ,MAAO,GAGnCkC,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,aAKnBvH,KAAKm/L,wBACHruG,GACF+tG,EAAgB,KAEZ7+L,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIrBs3L,EAAgB7+L,KAAKxB,MAAM+I,KAAKzJ,IAE5BkC,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,QAKnBupF,UACF+tG,EAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,gBAC1B7+L,KAAKxB,MAAM+I,KAAKzJ,KAEjCkC,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,UAIrBs3L,EAAgB7+L,KAAKxB,MAAMqgM,cAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,eAAiB,IAC7E7+L,KAAKxB,MAAM+I,KAAKzJ,MAAO,EAEjCkC,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,QAQzBvH,KAAKxB,MAAM67F,mBACbr6F,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAetB,EACfvY,MAAO+iM,IAKb7+L,KAAKk/L,aAAc,KAEpB,CACDphM,IAAK,gBACLhC,MAAO,SAAuBuY,GACxBrU,KAAKxB,MAAM43F,eACbp2F,KAAKxB,MAAM43F,cAAc,CACvBzgF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAItB,CACDzJ,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMihB,WAIf1f,IAAWy6F,iBAEPx6F,KAAKxB,MAAMk+F,8BACb18F,KAAKxB,MAAMk+F,6BAA6B,CACtC/mF,cAAetB,EACfvY,MAAOkE,KAAKxB,MAAM+I,KAAKzJ,MAIvBkC,KAAKxB,MAAMiuF,eACbzsF,KAAKxB,MAAMiuF,cAAc,CACvB92E,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,UAItB,CACDzJ,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAMIjN,EANA29G,EAAQ1wG,EAAM0wG,MACd85E,EAAgBxqL,EAAMwqL,cACtBQ,EAAoB,EACpBC,GAAuB,EAEvB53L,EAAYzI,EAA6Be,KAAKxB,MAAM+I,KAAK/E,UAG7D,IACE,IAAKkF,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAI+yG,EAAQvnG,EAAMtL,MACd+iM,EAAclwF,EAAM7wG,MAAQ+gM,EAAclwF,EAAM7wG,KAAKouF,QAASmzG,IAA6BR,EAAclwF,EAAM7wG,MAAQ+gM,EAAclwF,EAAM7wG,KAAKyhM,iBAAgBD,GAAuB,IAE7L,MAAOvjM,GACP2L,EAAUlI,EAAEzD,GANd,QAQE2L,EAAUjI,IAGRslH,GAASs6E,IAAsBr/L,KAAKxB,MAAM+I,KAAK/E,SAAS7H,OAC1DkkM,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CACnCouF,SAAS,EACTqzG,gBAAgB,IAGbx6E,UACI85E,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAGnCwhM,GAAwBD,EAAoB,GAAKA,IAAsBr/L,KAAKxB,MAAM+I,KAAK/E,SAAS7H,OAAQkkM,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CAC/IouF,SAAS,EACTqzG,gBAAgB,UACJV,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,MAG1CkC,KAAKxB,MAAMwgM,sBAAwBh/L,KAAKxB,MAAMygM,eAChDj/L,KAAKxB,MAAMygM,cAAc5qL,KAG5B,CACDvW,IAAK,gBACLhC,MAAO,SAAuByL,EAAMw9G,EAAO85E,GAMzC,GALI95E,EAAO85E,EAAct3L,EAAKzJ,KAAO,CACnCouF,SAAS,EACTqzG,gBAAgB,UACJV,EAAct3L,EAAKzJ,KAE7ByJ,EAAK/E,UAAY+E,EAAK/E,SAAS7H,OACjC,IAAK,IAAIC,EAAI,EAAGA,EAAI2M,EAAK/E,SAAS7H,OAAQC,IACxCoF,KAAK++L,cAAcx3L,EAAK/E,SAAS5H,GAAImqH,EAAO85E,KAIjD,CACD/gM,IAAK,aACLhC,MAAO,WACL,SAAIkE,KAAKxB,MAAM69E,gBAAiBr8E,KAAKxB,MAAMqgM,iBAAsB7+L,KAAKm/L,wBAA0Bn/L,KAAKxB,MAAMqgM,gBAAkB7+L,KAAKxB,MAAM+I,KAAKzJ,SAAwD2H,IAAlDzF,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,QAE7L,CACDA,IAAK,YACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAMqgM,gBAAgB7+L,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,MAAQkC,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAKouF,WAElI,CACDpuF,IAAK,mBACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAMqgM,gBAAgB7+L,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,MAAQkC,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAKyhM,kBAElI,CACDzhM,IAAK,wBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,WAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,0BACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,aAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,0BACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,aAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,aACLhC,MAAO,WACLkE,KAAKk/L,aAAc,IAEpB,CACDphM,IAAK,cACLhC,MAAO,SAAqBuY,EAAOnO,GACjCmO,EAAMY,kBAE4B,IAA9BjV,KAAKxB,MAAM+I,KAAKwsK,YAClBh0K,IAAWma,YAAY7F,EAAM9V,OAAQ,+BAEjCyB,KAAKxB,MAAMghM,aACbx/L,KAAKxB,MAAMghM,YAAY,CACrB7pL,cAAetB,EACfopG,KAAMz9G,KAAKxB,MAAMi/G,KACjBphD,MAAOr8D,KAAKxB,MAAM69D,MAClBn2D,SAAUA,OAKjB,CACDpI,IAAK,sBACLhC,MAAO,SAA6BuY,GAC9BA,EAAMiqF,aAAamhG,MAAM,KAAOz/L,KAAKxB,MAAMq+L,cAAc1sL,sBAC3DkE,EAAMiqF,aAAaohG,WAAa,OAChCrrL,EAAMY,oBAGT,CACDnX,IAAK,uBACLhC,MAAO,SAA8BuY,GAC/BA,EAAMiqF,aAAamhG,MAAM,KAAOz/L,KAAKxB,MAAMq+L,cAAc1sL,qBAC3DpQ,IAAWya,SAASnG,EAAM9V,OAAQ,iCAGrC,CACDT,IAAK,uBACLhC,MAAO,SAA8BuY,GAC/BA,EAAMiqF,aAAamhG,MAAM,KAAOz/L,KAAKxB,MAAMq+L,cAAc1sL,qBAC3DpQ,IAAWma,YAAY7F,EAAM9V,OAAQ,iCAGxC,CACDT,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKxB,MAAMq+L,gBAA+C,IAA9B78L,KAAKxB,MAAM+I,KAAKwsK,YAC9Ch0K,IAAWma,YAAYla,KAAK2/L,eAAgB,uBAC5CtrL,EAAMY,iBACNZ,EAAM83E,kBAEFnsF,KAAKxB,MAAMk4F,QACb12F,KAAKxB,MAAMk4F,OAAO,CAChB/gF,cAAetB,EACfopG,KAAMz9G,KAAKxB,MAAMi/G,KACjBphD,MAAOr8D,KAAKxB,MAAM69D,WAKzB,CACDv+D,IAAK,aACLhC,MAAO,SAAoBuY,GACrBA,EAAMiqF,aAAamhG,MAAM,KAAOz/L,KAAKxB,MAAMq+L,cAAc1sL,sBAAqD,IAA9BnQ,KAAKxB,MAAM+I,KAAKwsK,YAClG1/J,EAAMiqF,aAAaohG,WAAa,OAChCrrL,EAAMY,iBACNZ,EAAM83E,qBAGT,CACDruF,IAAK,cACLhC,MAAO,SAAqBuY,GACtBA,EAAMiqF,aAAamhG,MAAM,KAAOz/L,KAAKxB,MAAMq+L,cAAc1sL,sBAAqD,IAA9BnQ,KAAKxB,MAAM+I,KAAKwsK,WAClGh0K,IAAWya,SAASxa,KAAK2/L,eAAgB,yBAG5C,CACD7hM,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAIA,EAAMiqF,aAAamhG,MAAM,KAAOz/L,KAAKxB,MAAMq+L,cAAc1sL,sBAAqD,IAA9BnQ,KAAKxB,MAAM+I,KAAKwsK,UAAqB,CACvH,IAAI7xK,EAAOmS,EAAMoG,cAActY,yBAE3BkS,EAAMu+K,YAAYzsL,EAAIjE,EAAKI,KAAOJ,EAAKhC,OAASmU,EAAMu+K,YAAYzsL,EAAIjE,EAAKI,MAAQ+R,EAAMu+K,YAAYxsL,GAAKhB,KAAKsmB,MAAMxpB,EAAKE,IAAMF,EAAKZ,SAAW+S,EAAMu+K,YAAYxsL,EAAIlE,EAAKE,MAC7KrC,IAAWma,YAAYla,KAAK2/L,eAAgB,0BAIjD,CACD7hM,IAAK,cACLhC,MAAO,SAAqBuY,GAC1BA,EAAMiqF,aAAaC,QAAQ,OAAQv+F,KAAKxB,MAAMq+L,eAC9CxoL,EAAMiqF,aAAaC,QAAQv+F,KAAKxB,MAAMq+L,cAAe78L,KAAKxB,MAAMq+L,eAE5D78L,KAAKxB,MAAM05F,aACbl4F,KAAKxB,MAAM05F,YAAY,CACrBviF,cAAetB,EACfopG,KAAMz9G,KAAKxB,MAAMi/G,KACjBphD,MAAOr8D,KAAKxB,MAAM69D,UAIvB,CACDv+D,IAAK,YACLhC,MAAO,SAAmBuY,GACpBrU,KAAKxB,MAAM+3F,WACbv2F,KAAKxB,MAAM+3F,UAAU,CACnB5gF,cAAetB,MAIpB,CACDvW,IAAK,cACLhC,MAAO,WACL,IAAIkjB,EAAuBnE,IAAM7P,cAAc,OAAQ,CACrDzN,UAAW,oBACVyC,KAAKxB,MAAM+I,KAAKgyE,OAEnB,GAAIv5E,KAAKxB,MAAMohM,aAAc,CAC3B,IAAIpmH,EAAwB,CAC1Bs3E,eAAgB9wJ,KAAK8wJ,eACrBvzJ,UAAW,mBACXgF,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZi2F,SAAUz0F,KAAKk+L,cAEjBl/K,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMohM,aAAc5/L,KAAKxB,MAAM+I,KAAMiyE,GAGhF,OAAOx6D,IAER,CACDlhB,IAAK,iBACLhC,MAAO,WACL,GAAIkE,KAAKk9F,4BAA4D,IAA/Bl9F,KAAKxB,MAAM+I,KAAK84H,WAAsB,CAC1E,IAAIn0C,EAAUlsF,KAAK+rF,YACfwzG,EAAiBv/L,KAAK6/L,mBACtBtiM,EAAYN,YAAW,iBAAkB,CAC3C,cAAeivF,EACf,kBAAmBqzG,EACnB,aAAcv/L,KAAKxB,MAAMihB,WAEvBy5D,EAAOj8E,YAAW,sBAAuB,CAC3C,cAAeivF,EACf,cAAeqzG,IAEjB,OAAoB1kL,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,0BACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAWA,EACXwmB,KAAM,WACN,eAAgBmoE,GACFrxE,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW27E,MAIf,OAAO,OAER,CACDp7E,IAAK,aACLhC,MAAO,SAAoB24F,GACzB,IAAIvb,EAAOl5E,KAAKxB,MAAM+I,KAAK2xE,OAASub,EAAWz0F,KAAKxB,MAAM+I,KAAKu4L,aAAe9/L,KAAKxB,MAAM+I,KAAKw4L,eAE9F,GAAI7mH,EAAM,CACR,IAAI37E,EAAYN,YAAW,kBAAmBi8E,GAC9C,OAAoBr+D,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWA,IAIf,OAAO,OAER,CACDO,IAAK,gBACLhC,MAAO,SAAuB24F,GAC5B,IAAItD,EAAgBl0F,YAAW,+BAAgC,CAC7D,oBAAqBw3F,EACrB,kBAAmBA,IAEjBz1E,EAAuBnE,IAAM7P,cAAc,SAAU,CACvDxN,KAAM,SACND,UAAW,wBACXunE,UAAW,EACX9E,QAAShgE,KAAK8wJ,gBACAj2I,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAE7C,GAAI3Z,KAAKxB,MAAMwhM,gBAAiB,CAC9B,IAAIxmH,EAAwB,CAC1BxZ,QAAShgE,KAAK8wJ,eACdj7C,mBAAoB,wBACpB1kB,cAAe,sBACf5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZi2F,SAAUA,GAEZz1E,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMwhM,gBAAiBhgM,KAAKxB,MAAM+I,KAAMiyE,GAGnF,OAAOx6D,IAER,CACDlhB,IAAK,kBACLhC,MAAO,SAAyBoK,GAC9B,IAAIyU,EAAS3a,KAEb,OAAIA,KAAKxB,MAAMq+L,cACOhiL,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,uBACXm5F,OAAQ,SAAgBriF,GACtB,OAAOsG,EAAO6kL,YAAYnrL,EAAOnO,IAEnCswF,WAAYx2F,KAAK49L,oBACjB3pC,YAAaj0J,KAAK69L,qBAClBpnG,YAAaz2F,KAAK89L,uBAIf,OAER,CACDhgM,IAAK,gBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAET8wF,EAAW9wF,KAAKgzE,aAChBkZ,EAAUlsF,KAAK+rF,YACfxuF,EAAYN,YAAW,qBAAsB+C,KAAKxB,MAAM+I,KAAKhK,UAAW,CAC1E,wBAAyByC,KAAKxB,MAAM69E,gBAAgD,IAA/Br8E,KAAKxB,MAAM+I,KAAK84H,WACrE,cAAergI,KAAKk9F,0BAA4BhR,EAAU4E,EAC1D,0BAA2B9wF,KAAKxB,MAAMyhM,yBAA2BjgM,KAAKxB,MAAMyhM,0BAA4BjgM,KAAKxB,MAAM+I,KAAKzJ,IACxH,aAAckC,KAAKxB,MAAMihB,WAEvBg1E,EAAWz0F,KAAKk+L,aAChBgC,EAAUlgM,KAAKmgM,cAAc1rG,GAC7B4I,EAAWr9F,KAAKogM,iBAChBlnH,EAAOl5E,KAAK85E,WAAW2a,GACvBlb,EAAQv5E,KAAK+5E,cACbjV,EAAW9kE,KAAKxB,MAAMihB,cAAWha,EAAY,EACjD,OAAoBoV,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAOy+K,eAAiB1/L,GAEjC1C,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM+I,KAAKnH,MACvB4/D,QAAShgE,KAAKggE,QACdo2B,cAAep2F,KAAKo2F,cACpB3J,cAAezsF,KAAKs2F,aACpBD,WAAYr2F,KAAKq2F,WACjBO,UAAW52F,KAAKxB,MAAMq+L,gBAA+C,IAA9B78L,KAAKxB,MAAM+I,KAAKqvF,YAAwB52F,KAAKxB,MAAMihB,SAC1Fi3E,OAAQ12F,KAAK02F,OACbF,WAAYx2F,KAAKw2F,WACjBy9D,YAAaj0J,KAAKi0J,YAClBx9D,YAAaz2F,KAAKy2F,YAClByB,YAAal4F,KAAKk4F,YAClB3B,UAAWv2F,KAAKu2F,UAChBzxB,SAAUA,EACVrwD,UAAWzU,KAAK09L,cAChB35K,KAAM,WACN,gBAAiB/jB,KAAKxB,MAAM69D,MAAQ,EACpC,gBAAiBr8D,KAAKk+L,aACtB,gBAAiBhyG,GAAW4E,GAC3BovG,EAAS7iG,EAAUnkB,EAAMK,KAE7B,CACDz7E,IAAK,iBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,OAAIA,KAAKxB,MAAM+I,KAAK/E,UAAYxC,KAAKxB,MAAM+I,KAAK/E,SAAS7H,QAAUqF,KAAKk+L,aAClDrjL,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,sBACXwmB,KAAM,SACL/jB,KAAKxB,MAAM+I,KAAK/E,SAAS7E,KAAI,SAAUukK,EAAW7lG,GACnD,OAAoBxhD,IAAM7P,cAAcyyL,EAAY,CAClD3/L,IAAKokK,EAAUpkK,KAAOokK,EAAU3oF,MAChChyE,KAAM26J,EACNv6J,OAAQga,EAAOnjB,MAAM+I,KACrB80D,MAAOA,EACP7zD,KAAM6zD,IAAU16C,EAAOnjB,MAAM+I,KAAK/E,SAAS7H,OAAS,EACpD8iH,KAAM97F,EAAOnjB,MAAMi/G,KAAO,IAAMphD,EAChC58C,SAAUkC,EAAOnjB,MAAMihB,SACvB48D,cAAe16D,EAAOnjB,MAAM69E,cAC5BwiH,cAAel9K,EAAOnjB,MAAMqgM,cAC5BxkG,kBAAmB14E,EAAOnjB,MAAM67F,kBAChCwC,iBAAkBl7E,EAAOnjB,MAAMq+F,iBAC/BiiG,uBAAwBn9K,EAAOnjB,MAAMsgM,uBACrCE,qBAAsBr9K,EAAOnjB,MAAMwgM,qBACnCiB,wBAAyBt+K,EAAOnjB,MAAMyhM,wBACtCvjG,6BAA8B/6E,EAAOnjB,MAAMk+F,6BAC3CjQ,cAAe9qE,EAAOnjB,MAAMiuF,cAC5B4jE,SAAU1uI,EAAOnjB,MAAM6xJ,SACvBC,WAAY3uI,EAAOnjB,MAAM8xJ,WACzBl2D,SAAUz4E,EAAOnjB,MAAM47F,SACvBD,WAAYx4E,EAAOnjB,MAAM27F,WACzB6jG,aAAcr8K,EAAOnjB,MAAMw/L,aAC3B/tC,SAAUtuI,EAAOnjB,MAAMyxJ,SACvBgvC,cAAet9K,EAAOg8K,YACtBiC,aAAcj+K,EAAOnjB,MAAMohM,aAC3BI,gBAAiBr+K,EAAOnjB,MAAMwhM,gBAC9BjC,WAAYp8K,EAAOnjB,MAAMu/L,WACzBlB,cAAel7K,EAAOnjB,MAAMq+L,cAC5B3kG,YAAav2E,EAAOnjB,MAAM05F,YAC1B3B,UAAW50E,EAAOnjB,MAAM+3F,UACxBG,OAAQ/0E,EAAOnjB,MAAMk4F,OACrB8oG,YAAa79K,EAAOnjB,MAAMghM,kBAKzB,OAER,CACD1hM,IAAK,aACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,aAAc,CACvC,kBAAmB+C,KAAKqgM,UACvBrgM,KAAKxB,MAAM+I,KAAKhK,WACfyhB,EAAUhf,KAAKy2G,gBACfj0G,EAAWxC,KAAKsgM,iBACpB,OAAoBzlL,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM+I,KAAKnH,OACtB4e,EAASxc,KAEb,CACD1E,IAAK,SACLhC,MAAO,WACL,IAAIyL,EAAOvH,KAAKugM,aAEhB,GAAIvgM,KAAKxB,MAAMq+L,gBAAkB78L,KAAKxB,MAAMihB,SAAU,CACpD,IAAI+gL,EAAkBxgM,KAAKo9L,iBAAiB,GACxCqD,EAAiBzgM,KAAKxB,MAAMgK,KAAOxI,KAAKo9L,gBAAgB,GAAK,KACjE,OAAoBviL,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAMu6K,EAAiBj5L,EAAMk5L,GAErF,OAAOl5L,MAKNk2L,EA/yBqB,CAgzB5BziL,aAuCF,SAAS6J,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASkR,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASkqB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IA/C5Z0B,EAAgBitL,EAAY,eAAgB,CAC1Cl2L,KAAM,KACN80D,MAAO,KACP7zD,KAAM,KACNb,OAAQ,KACR81G,KAAM,KACNh+F,UAAU,EACV48D,cAAe,KACfwiH,cAAe,KACfoB,wBAAyB,KACzBpjG,kBAAkB,EAClBmhG,aAAc,KACdgB,sBAAsB,EACtBF,wBAAwB,EACxBjC,cAAe,KACfvgF,UAAW,KACX5vB,eAAgB,KAChBkzG,aAAc,KACdI,gBAAiB,KACjBjC,WAAY,KACZ3jG,SAAU,KACVD,WAAY,KACZk2D,SAAU,KACVC,WAAY,KACZL,SAAU,KACV51D,kBAAmB,KACnBqC,6BAA8B,KAC9BuiG,cAAe,KACf/mG,YAAa,KACb3B,UAAW,KACXG,OAAQ,KACR8oG,YAAa,KACb/yG,cAAe,KACfi0G,YAAa,KACbC,kBAAmB,OAgBrB,IAAIC,EAAoB,SAAUhnL,GAChCpB,EAAUooL,EAAMhnL,GAEhB,IAAIC,EAASkL,EAAa67K,GAE1B,SAASA,EAAKpiM,GACZ,IAAI+G,EAuBJ,OArBApH,EAAgB6B,KAAM4gM,IAEtBr7L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,GAET7X,EAAM/G,MAAMu5L,sBACfxyL,EAAM6X,MAAN,YAA6B,IAG1B7X,EAAM/G,MAAMyxJ,WACf1qJ,EAAM6X,MAAN,aAA8B7X,EAAM/G,MAAMw/L,cAG5Cz4L,EAAMw4L,WAAax4L,EAAMw4L,WAAWhkL,KAAK7B,EAAuB3S,IAChEA,EAAM0qJ,SAAW1qJ,EAAM0qJ,SAASl2I,KAAK7B,EAAuB3S,IAC5DA,EAAM2yF,YAAc3yF,EAAM2yF,YAAYn+E,KAAK7B,EAAuB3S,IAClEA,EAAMgxF,UAAYhxF,EAAMgxF,UAAUx8E,KAAK7B,EAAuB3S,IAC9DA,EAAMmxF,OAASnxF,EAAMmxF,OAAO38E,KAAK7B,EAAuB3S,IACxDA,EAAMi6L,YAAcj6L,EAAMi6L,YAAYzlL,KAAK7B,EAAuB3S,IAClEA,EAAMuuG,oBAAsBvuG,EAAMuuG,oBAAoB/5F,KAAK7B,EAAuB3S,IAClFA,EAAMwwG,qBAAuBxwG,EAAMwwG,qBAAqBh8F,KAAK7B,EAAuB3S,IAC7EA,EA8eT,OA3eAzG,EAAa8hM,EAAM,CAAC,CAClB9iM,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMu5L,oBAAsB/3L,KAAKxB,MAAMqR,YAAc7P,KAAKod,MAAMvN,cAE7E,CACD/R,IAAK,kBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMyxJ,SAAWjwJ,KAAKxB,MAAMw/L,aAAeh+L,KAAKod,MAAM4gL,eAEnE,CACDlgM,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMR,QAAUgC,KAAK6gM,cAAgB7gM,KAAK6gM,cAAgB7gM,KAAKxB,MAAM1C,QAElF,CACDgC,IAAK,WACLhC,MAAO,SAAkBuY,GACnBrU,KAAKxB,MAAMyxJ,SACbjwJ,KAAKxB,MAAMyxJ,SAAS57I,GAEpBrU,KAAKwd,SAAS,CACZwgL,aAAc3pL,EAAMvY,UAIzB,CACDgC,IAAK,cACLhC,MAAO,SAAqBuY,GAC1BrU,KAAK8gM,UAAY,CACfrjF,KAAMppG,EAAMopG,KACZphD,MAAOhoD,EAAMgoD,SAGhB,CACDv+D,IAAK,YACLhC,MAAO,WACLkE,KAAK8gM,UAAY,OAElB,CACDhjM,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,GAAIrU,KAAK+gM,iBAAiB/gM,KAAK8gM,UAAUrjF,KAAMppG,EAAMopG,MAAO,CAC1D,IAAI3hH,EAAQm8C,KAAKxb,MAAMwb,KAAKC,UAAUl4C,KAAKxB,MAAM1C,QAC7CklM,EAAYhhM,KAAK8gM,UAAUrjF,KAAK16G,MAAM,KAC1Ci+L,EAAU95E,MACV,IAAI+5E,EAAiBjhM,KAAKkhM,SAASplM,EAAOklM,GACtCG,EAAWF,EAAiBA,EAAez+L,SAASxC,KAAK8gM,UAAUzkI,OAASvgE,EAAMkE,KAAK8gM,UAAUzkI,OACjG+kI,EAAWphM,KAAKkhM,SAASplM,EAAOuY,EAAMopG,KAAK16G,MAAM,MACjDq+L,EAAS5+L,SAAU4+L,EAAS5+L,SAAS3G,KAAKslM,GAAeC,EAAS5+L,SAAW,CAAC2+L,GAC9EF,EAAgBA,EAAez+L,SAASyM,OAAOjP,KAAK8gM,UAAUzkI,MAAO,GAAQvgE,EAAMmT,OAAOjP,KAAK8gM,UAAUzkI,MAAO,GAEhHr8D,KAAKxB,MAAM6iM,YACbrhM,KAAKxB,MAAM6iM,WAAW,CACpB1rL,cAAetB,EAAMsB,cACrB7Z,MAAOA,EACPqlM,SAAUA,EACVC,SAAUA,EACVxiG,UAAWvqF,EAAMgoD,WAKxB,CACDv+D,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,GAAIrU,KAAKshM,kBAAkBjtL,GAAQ,CACjC,IAAIvY,EAAQm8C,KAAKxb,MAAMwb,KAAKC,UAAUl4C,KAAKxB,MAAM1C,QAC7CklM,EAAYhhM,KAAK8gM,UAAUrjF,KAAK16G,MAAM,KAC1Ci+L,EAAU95E,MACV,IAAIq6E,EAAYltL,EAAMopG,KAAK16G,MAAM,KACjCw+L,EAAUr6E,MACV,IAAI+5E,EAAiBjhM,KAAKkhM,SAASplM,EAAOklM,GACtCQ,EAAiBxhM,KAAKkhM,SAASplM,EAAOylM,GACtCJ,EAAWF,EAAiBA,EAAez+L,SAASxC,KAAK8gM,UAAUzkI,OAASvgE,EAAMkE,KAAK8gM,UAAUzkI,OACjGolI,EAAWzhM,KAAK0hM,YAAY1hM,KAAK8gM,UAAUrjF,KAAMppG,EAAMopG,MAG3D,GAFIwjF,EAAgBA,EAAez+L,SAASyM,OAAOjP,KAAK8gM,UAAUzkI,MAAO,GAAQvgE,EAAMmT,OAAOjP,KAAK8gM,UAAUzkI,MAAO,GAEhHhoD,EAAMnO,SAAW,EAAG,CACtB,IAAI04F,EAAY6iG,EAAWzhM,KAAK8gM,UAAUzkI,MAAQhoD,EAAMgoD,MAAQhoD,EAAMgoD,MAAQhoD,EAAMgoD,MAAQ,EAAIhoD,EAAMgoD,MAClGmlI,EAAgBA,EAAeh/L,SAASyM,OAAO2vF,EAAW,EAAGuiG,GAAerlM,EAAMmT,OAAO2vF,EAAW,EAAGuiG,QAEvGK,EAAgBA,EAAeh/L,SAAS3G,KAAKslM,GAAerlM,EAAMD,KAAKslM,GAGzEnhM,KAAKxB,MAAM6iM,YACbrhM,KAAKxB,MAAM6iM,WAAW,CACpB1rL,cAAetB,EAAMsB,cACrB7Z,MAAOA,EACPqlM,SAAUA,EACVC,SAAUI,EACV5iG,UAAWvqF,EAAMgoD,WAKxB,CACDv+D,IAAK,eACLhC,MAAO,SAAsB6lM,EAAUC,GACrC,QAAKD,IAICA,IAAaC,GAKkB,IAA/BA,EAASl2L,QAAQi2L,MAOxB,CACD7jM,IAAK,mBACLhC,MAAO,SAA0B6lM,EAAUC,GAGzC,QAFmB5hM,KAAK6hM,aAAaF,EAAUC,MAIzCD,EAASj2L,QAAQ,KAAO,GAAKi2L,EAAS37L,UAAU,EAAG27L,EAASv0E,YAAY,QAAUw0E,KASzF,CACD9jM,IAAK,oBACLhC,MAAO,SAA2BuY,GAGhC,QAFmBrU,KAAK6hM,aAAa7hM,KAAK8gM,UAAUrjF,KAAMppG,EAAMopG,SAItC,IAApBppG,EAAMnO,WAAmBlG,KAAK0hM,YAAY1hM,KAAK8gM,UAAUrjF,KAAMppG,EAAMopG,OAASz9G,KAAK8gM,UAAUzkI,MAAQ,IAAMhoD,EAAMgoD,SASxH,CACDv+D,IAAK,cACLhC,MAAO,SAAqBgmM,EAAOC,GACjC,OAAqB,IAAjBD,EAAMnnM,QAAiC,IAAjBonM,EAAMpnM,QAAsCmnM,EAAM97L,UAAU,EAAG87L,EAAM10E,YAAY,QAAU20E,EAAM/7L,UAAU,EAAG+7L,EAAM30E,YAAY,QAE3J,CACDtvH,IAAK,WACLhC,MAAO,SAAkBA,EAAO2hH,GAC9B,GAAoB,IAAhBA,EAAK9iH,OACP,OAAO,KAEP,IAAI0hE,EAAQ7kD,SAASimG,EAAK,GAAI,IAC1BukF,EAAiBlmM,EAAM0G,SAAW1G,EAAM0G,SAAS65D,GAASvgE,EAAMugE,GAEpE,OAAoB,IAAhBohD,EAAK9iH,OACAqnM,GAEPvkF,EAAKvpD,QACEl0D,KAAKkhM,SAASc,EAAgBvkF,MAI1C,CACD3/G,IAAK,aACLhC,MAAO,SAAoByL,GACzB,OAAqB,IAAdA,EAAK06L,QAA2B16L,EAAK/E,UAAY+E,EAAK/E,SAAS7H,UAEvE,CACDmD,IAAK,uBACLhC,MAAO,SAA8BuY,GAEf,KAAhBA,EAAMM,OACRN,EAAMY,mBAGT,CACDnX,IAAK,sBACLhC,MAAO,SAA6BuY,GAClCrU,KAAKkiM,eAAgB,EACrB,IAAIryL,EAAcwE,EAAM9V,OAAOzC,MAE3BkE,KAAKxB,MAAMu5L,oBACb/3L,KAAKxB,MAAMu5L,oBAAoB,CAC7BpiL,cAAetB,EACfvY,MAAO+T,IAGT7P,KAAKwd,SAAS,CACZ3N,YAAaA,MAIlB,CACD/R,IAAK,SACLhC,MAAO,SAAgBA,GACrBkE,KAAKwd,SAAS,CACZ3N,YAAalC,IAAYw0L,WAAWrmM,GAASA,EAAQ,IACpDkE,KAAKoiM,WAET,CACDtkM,IAAK,UACLhC,MAAO,WACL,GAAKkE,KAAKkiM,cAAV,CAIA,IAAIryL,EAAc7P,KAAKs4L,iBAEvB,GAAI3qL,IAAY6B,QAAQK,GACtB7P,KAAK6gM,cAAgB7gM,KAAKxB,MAAM1C,UAC3B,CACLkE,KAAK6gM,cAAgB,GACrB,IAKIz5L,EALAs0G,EAAe17G,KAAKxB,MAAMm9G,SAAS54G,MAAM,KACzCkN,EAAaJ,EAAYM,kBAAkBnQ,KAAKxB,MAAMuR,cACtDsyL,EAAyC,WAA1BriM,KAAKxB,MAAM8jM,WAE1B56L,EAAY+H,EAA2BzP,KAAKxB,MAAM1C,OAGtD,IACE,IAAK4L,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAEI2mM,EAAWz9K,EAAc,GAFlB1d,EAAMtL,OAIb0mM,EAAoB,CACtB9mF,aAAcA,EACdzrG,WAAYA,EACZoyL,aAAcA,IAGZA,IAAiBriM,KAAKyiM,kBAAkBF,EAAUC,IAAsBxiM,KAAK0iM,gBAAgBH,EAAUC,MAAwBH,IAAiBriM,KAAK0iM,gBAAgBH,EAAUC,IAAsBxiM,KAAKyiM,kBAAkBF,EAAUC,MACxOxiM,KAAK6gM,cAAchlM,KAAK0mM,IAG5B,MAAOxmM,GACP2L,EAAUlI,EAAEzD,GAjBd,QAmBE2L,EAAUjI,KAIdO,KAAKkiM,eAAgB,KAEtB,CACDpkM,IAAK,oBACLhC,MAAO,SAA2ByL,EAAMi7L,GACtC,GAAIj7L,EAAM,CACR,IAAI4D,GAAU,EAEd,GAAI5D,EAAK/E,SAAU,CACjB,IAAIE,EAAaqqF,EAAmBxlF,EAAK/E,UAEzC+E,EAAK/E,SAAW,GAEhB,IACIsF,EADAC,EAAa0H,EAA2B/M,GAG5C,IACE,IAAKqF,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAEI+mM,EAAgB79K,EAAc,GAFlBhd,EAAOhM,OAInBkE,KAAK0iM,gBAAgBC,EAAeH,KACtCr3L,GAAU,EACV5D,EAAK/E,SAAS3G,KAAK8mM,KAGvB,MAAO5mM,GACPgM,EAAWvI,EAAEzD,GAZf,QAcEgM,EAAWtI,KAIf,GAAI0L,EAEF,OADA5D,EAAKktF,UAAW,GACT,KAIZ,CACD32F,IAAK,kBACLhC,MAAO,SAAyByL,EAAM3J,GACpC,IAMI+N,EANA+vG,EAAe99G,EAAK89G,aACpBzrG,EAAarS,EAAKqS,WAClBoyL,EAAezkM,EAAKykM,aACpBl3L,GAAU,EAEVU,EAAa4D,EAA2BisG,GAG5C,IACE,IAAK7vG,EAAWtM,MAAOoM,EAASE,EAAW1P,KAAKP,MAAO,CACrD,IAAIkS,EAAQnC,EAAO7P,MACFuU,OAAO1C,IAAYI,iBAAiBxG,EAAMuG,IAAQqC,kBAAkBnQ,KAAKxB,MAAMuR,cAEjFrE,QAAQuE,IAAe,IACpC9E,GAAU,IAGd,MAAOpP,GACP8P,EAAWrM,EAAEzD,GAVf,QAYE8P,EAAWpM,IAWb,QARK0L,GAAWk3L,IAAiBriM,KAAK+9L,WAAWx2L,MAC/C4D,EAAUnL,KAAKyiM,kBAAkBl7L,EAAM,CACrCm0G,aAAcA,EACdzrG,WAAYA,EACZoyL,aAAcA,KACVl3L,GAGDA,IAER,CACDrN,IAAK,kBACLhC,MAAO,SAAyByL,EAAM80D,EAAO7zD,GAC3C,OAAoBqS,IAAM7P,cAAcyyL,EAAY,CAClD3/L,IAAKyJ,EAAKzJ,KAAOyJ,EAAKgyE,MACtBhyE,KAAMA,EACN80D,MAAOA,EACP7zD,KAAMA,EACNi1G,KAAMptG,OAAOgsD,GACb58C,SAAUzf,KAAKxB,MAAMihB,SACrB48D,cAAer8E,KAAKxB,MAAM69E,cAC1BwiH,cAAe7+L,KAAKxB,MAAMqgM,cAC1BxkG,kBAAmBr6F,KAAKxB,MAAM67F,kBAC9BwC,iBAAkB78F,KAAKxB,MAAMq+F,iBAC7BojG,wBAAyBjgM,KAAKxB,MAAMyhM,wBACpCvjG,6BAA8B18F,KAAKxB,MAAMk+F,6BACzCjQ,cAAezsF,KAAKxB,MAAMiuF,cAC1BqyG,uBAAwB9+L,KAAKxB,MAAMsgM,uBACnCE,qBAAsBh/L,KAAKxB,MAAMwgM,qBACjC3uC,SAAUrwJ,KAAKxB,MAAM6xJ,SACrBC,WAAYtwJ,KAAKxB,MAAM8xJ,WACvBl2D,SAAUp6F,KAAKxB,MAAM47F,SACrBD,WAAYn6F,KAAKxB,MAAM27F,WACvB6jG,aAAch+L,KAAK4iM,kBACnB3yC,SAAUjwJ,KAAKiwJ,SACf2vC,aAAc5/L,KAAKxB,MAAMohM,aACzBI,gBAAiBhgM,KAAKxB,MAAMwhM,gBAC5BjC,WAAY/9L,KAAK+9L,WACjBlB,cAAe78L,KAAKxB,MAAMq+L,cAC1B3kG,YAAal4F,KAAKk4F,YAClB3B,UAAWv2F,KAAKu2F,UAChBG,OAAQ12F,KAAK02F,OACb8oG,YAAax/L,KAAKw/L,YAClBkB,YAAa1gM,KAAKxB,MAAMkiM,YACxBC,kBAAmB3gM,KAAKxB,MAAMmiM,sBAGjC,CACD7iM,IAAK,qBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETA,KAAKxB,MAAMR,SACbgC,KAAKkiM,eAAgB,EAErBliM,KAAKoiM,WAGP,IAAItmM,EAAQkE,KAAK8nB,cACjB,OAAOhsB,EAAM6B,KAAI,SAAU4J,EAAM80D,GAC/B,OAAO1hD,EAAOkoL,gBAAgBt7L,EAAM80D,EAAOA,IAAUvgE,EAAMnB,OAAS,QAGvE,CACDmD,IAAK,cACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM1C,MAAO,CACpB,IAAIgnM,EAAY9iM,KAAK+iM,qBACjBC,EAAe/lM,YAAW,mBAAoB+C,KAAKxB,MAAM+mH,kBAC7D,OAAoB1qG,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWylM,EACXj/K,KAAM,OACN,aAAc/jB,KAAKxB,MAAM89G,UACzB,kBAAmBt8G,KAAKxB,MAAMkuF,eAC9BtsF,MAAOJ,KAAKxB,MAAM8mH,cACjBw9E,GAGL,OAAO,OAER,CACDhlM,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMq6E,QAAS,CACtB,IAAIK,EAAOj8E,YAAW,8BAA+B+C,KAAKxB,MAAM26E,aAChE,OAAoBt+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,8CACGsd,IAAM7P,cAAc,IAAK,CACvCzN,UAAW27E,KAIf,OAAO,OAER,CACDp7E,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMR,OAAQ,CACrB,IAAI6R,EAAc7P,KAAKs4L,iBAEvB,OADAzoL,EAAclC,IAAYw0L,WAAWtyL,GAAeA,EAAc,GAC9CgL,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,2BACGsd,IAAM7P,cAAc,QAAS,CAC3CxN,KAAM,OACN1B,MAAO+T,EACPimG,aAAc,MACdv4G,UAAW,wCACXqmG,YAAa5jG,KAAKxB,MAAM88E,kBACxB7mE,UAAWzU,KAAK+1G,qBAChBxjG,SAAUvS,KAAK8zG,oBACfr0F,SAAUzf,KAAKxB,MAAMihB,WACN5E,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,qCAIf,OAAO,OAER,CACDO,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMsyI,WAAY,CACzB,IAAIr1D,EAAgBz7E,KAAK2jG,eACrB3kF,EAAUy8D,EAEd,GAAIz7E,KAAKxB,MAAMw8E,OAAQ,CACrB,IAAIxB,EAAwB,CAC1BypH,yBAA0B,0BAC1BC,qBAAsB,kCACtB9uF,YAAa,CACX72G,UAAW,wCACXkX,UAAWzU,KAAK+1G,qBAChBxjG,SAAUvS,KAAK8zG,qBAEjBr4B,cAAeA,EACfl5E,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAMw8E,OAAQxB,GAGzD,OAAoB3+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,iBACVyhB,GAGL,OAAO,OAER,CACDlhB,IAAK,eACLhC,MAAO,WACL,IAAIkjB,EAAUrR,IAAY8rE,cAAcz5E,KAAKxB,MAAM08E,OAAQl7E,KAAKxB,OAChE,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,iBACVyhB,KAEJ,CACDlhB,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,qBAAsB+C,KAAKxB,MAAMjB,UAAW,CACrE,oBAAqByC,KAAKxB,MAAM69E,cAChC,iBAAkBr8E,KAAKxB,MAAMq6E,QAC7B,aAAc74E,KAAKxB,MAAMihB,WAEvB0yF,EAASnyG,KAAKmzG,eACdn0F,EAAUhf,KAAKmjM,cACfnoH,EAASh7E,KAAKi1I,eACd/5D,EAASl7E,KAAK0uI,eAClB,OAAoB7zH,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB+xG,EAAQn3B,EAAQh8D,EAASk8D,OAIzB0lH,EA3gBe,CA4gBtB5lL,aAEFxK,EAAgBowL,EAAM,eAAgB,CACpC98K,GAAI,KACJhoB,MAAO,KACP2jB,UAAU,EACV48D,cAAe,KACfwiH,cAAe,KACfxkG,kBAAmB,KACnB4lG,wBAAyB,KACzBvjG,6BAA8B,KAC9BshG,aAAc,KACd59L,MAAO,KACP7C,UAAW,KACX+nH,aAAc,KACdC,iBAAkB,KAClB1oB,kBAAkB,EAClBmiG,sBAAsB,EACtBF,wBAAwB,EACxBjmH,SAAS,EACTM,YAAa,gBACb0jH,cAAe,KACf7hH,OAAQ,KACRE,OAAQ,KACR41D,YAAY,EACZ9yI,QAAQ,EACR6R,YAAa,KACb8rG,SAAU,QACV2mF,WAAY,UACZhnH,kBAAmB,KACnBvrE,kBAActK,EACdm6L,aAAc,KACdI,gBAAiB,KACjB5lG,SAAU,KACVD,WAAY,KACZk2D,SAAU,KACVC,WAAY,KACZL,SAAU,KACVoxC,WAAY,KACZ50G,cAAe,KACfsrG,oBAAqB,KACrB2I,YAAa,KACbC,kBAAmB,Q,6BCjjDrB,4EAKA,SAASyC,EAAoB3oM,EAAKC,IACrB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAO2oM,EAAoB3oM,GAqB5CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAuCwB,EAAGC,GACxC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOmnM,EAAoBnnM,EAAGC,GACzD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWinM,EAAoBnnM,EAAGC,QAA3G,GAQ2DmnM,CAA8B5oM,IAL3F,WACE,MAAM,IAAIoC,UAAU,wIAI6EswF,GAGnG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASsmM,EAA6BrnM,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAEhL,SAAuClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOzB,EAAoByB,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAO3B,EAAoByB,EAAGC,GAFvOU,CAA8BX,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAI79B,SAASvB,EAAoBC,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAElL,SAAS09F,EAAev/E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pg5F,GAA+B,OAAO,WAAkC,IAAsC1pF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIy0L,EAA+B,SAAU3pL,GAC3CpB,EAAU+qL,EAAiB3pL,GAE3B,IAAIC,EAAS0+E,EAAegrG,GAE5B,SAASA,EAAgB/kM,GACvB,IAAI+G,EASJ,OAPApH,EAAgB6B,KAAMujM,IAEtBh+L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZukF,cAAc,GAEhBp8F,EAAMi+L,cAAgBj+L,EAAMi+L,cAAczpL,KAAK7B,EAAuB3S,IAC/DA,EA+VT,OA5VAzG,EAAaykM,EAAiB,CAAC,CAC7BzlM,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOujF,GACnC,GAAIA,EAAOp5F,MAAM28E,SAAU,CACzB,IAAIyhB,EAAavoF,EAAM9V,QAEnBwB,IAAW6uF,SAASgO,EAAY,sBAAwB78F,IAAW6uF,SAASgO,EAAY,mBAAqB78F,IAAW6uF,SAASgO,EAAY,2BAA6B78F,IAAW6uF,SAASgO,EAAW3iF,cAAe,6BAC1Nja,KAAKxB,MAAM0jG,OAAO,CAChBvsF,cAAetB,EACfymE,UAAW8c,EAAOp5F,MAAMs8E,WAAa8c,EAAOp5F,MAAMsP,MAClDutE,aAAcuc,EAAOp5F,MAAM68E,aAC3BF,SAAUyc,EAAOp5F,MAAM28E,WAEzBp7E,IAAWy6F,qBAIhB,CACD18F,IAAK,oBACLhC,MAAO,SAA2BuY,EAAOujF,GACnC53F,KAAKxB,MAAMqkG,oBAAsBjL,EAAOp5F,MAAM4+E,cAClB,UAA1B/oE,EAAM9V,OAAOsL,SAAsBwK,EAAMoG,cAAcm8E,WAAY,EAAwC,UAA1BviF,EAAM9V,OAAOsL,WAAsBwK,EAAMoG,cAAcm8E,WAAY,MAG3J,CACD94F,IAAK,kBACLhC,MAAO,SAAyBuY,EAAOujF,GACnB,UAAdvjF,EAAMvW,MACRkC,KAAKyjM,cAAcpvL,EAAOujF,GAC1BvjF,EAAMY,oBAGT,CACDnX,IAAK,4BACLhC,MAAO,SAAmC87F,GACxC,GAAI53F,KAAKxB,MAAMskG,cACb,IAAK,IAAIloG,EAAI,EAAGA,EAAIoF,KAAKxB,MAAMskG,cAAcnoG,OAAQC,IACnD,GAAIoF,KAAKxB,MAAMskG,cAAcloG,GAAGkT,QAAU8pF,EAAOp5F,MAAMsP,MACrD,OAAOlT,EAKb,OAAQ,IAET,CACDkD,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOujF,GACpC53F,KAAKxB,MAAMgkG,kBAAoBxiG,KAAKxB,MAAMkyI,eAC5C1wI,KAAKxB,MAAMkyI,cAAc,CACvB/6H,cAAetB,EACfquF,SAAUruF,EAAM9V,OAAO0b,cACvB29E,OAAQA,MAIb,CACD95F,IAAK,cACLhC,MAAO,SAAqBuY,EAAOujF,GAC7B53F,KAAKxB,MAAM05F,aACbl4F,KAAKxB,MAAM05F,YAAY,CACrBviF,cAAetB,EACfujF,OAAQA,MAIb,CACD95F,IAAK,aACLhC,MAAO,SAAoBuY,EAAOujF,GAC5B53F,KAAKxB,MAAMg4F,YACbx2F,KAAKxB,MAAMg4F,WAAW,CACpB7gF,cAAetB,EACfujF,OAAQA,MAIb,CACD95F,IAAK,cACLhC,MAAO,SAAqBuY,EAAOujF,GAC7B53F,KAAKxB,MAAMi4F,aACbz2F,KAAKxB,MAAMi4F,YAAY,CACrB9gF,cAAetB,EACfujF,OAAQA,MAIb,CACD95F,IAAK,SACLhC,MAAO,SAAgBuY,EAAOujF,GACxB53F,KAAKxB,MAAMk4F,QACb12F,KAAKxB,MAAMk4F,OAAO,CAChB/gF,cAAetB,EACfujF,OAAQA,MAIb,CACD95F,IAAK,gBACLhC,MAAO,SAAuB0D,EAAGo4F,GAC/B,IAAIj9E,EAAS3a,KAEb,GAAI43F,EAAOp5F,MAAMR,QAAUgC,KAAKxB,MAAM4jG,SAAU,CAC1CpiG,KAAKqiG,eACPtsF,aAAa/V,KAAKqiG,eAGpB,IAAIxyF,EAAcrQ,EAAEjB,OAAOzC,MAC3BkE,KAAKqiG,cAAgBx5F,YAAW,WAC9B8R,EAAOnc,MAAM4jG,SAAS,CACpBtmG,MAAO+T,EACP/B,MAAO8pF,EAAOp5F,MAAMsP,MACpBw0F,UAAW1K,EAAOp5F,MAAMsR,kBAG1B6K,EAAO0nF,cAAgB,OACtBriG,KAAKxB,MAAM+jG,gBAGjB,CACDzkG,IAAK,kBACLhC,MAAO,SAAyBwzF,GAC9B,GAAIA,EAAS,CACX,IACIloF,EADAM,EAAY47L,EAA6Bh0G,GAG7C,IACE,IAAK5nF,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAGlD,GAFUwL,EAAMtL,MAER0C,MAAMR,OACZ,OAAO,GAGX,MAAOjC,GACP2L,EAAUlI,EAAEzD,GATd,QAWE2L,EAAUjI,KAId,OAAO,IAER,CACD3B,IAAK,iBACLhC,MAAO,SAAwB87F,EAAQuL,EAAQC,GAC7C,GAAIxL,EAAOp5F,MAAM28E,SAAU,CACzB,IAAIkoB,EAAWF,EAASC,EAAY,EAAI,sBAAwB,wBAA0B,cACtFG,EAAoBtmG,YAAW,yBAA0B,WAAYomG,GACzE,OAAoBxoF,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWgmG,IAGb,OAAO,OAGV,CACDzlG,IAAK,gBACLhC,MAAO,SAAuB87F,GAC5B,IAAI12E,EAASlhB,KAEb,OAAIA,KAAKxB,MAAMgkG,iBACO3nF,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,+BACXuc,YAAa,SAAqBta,GAChC,OAAO0hB,EAAO2gF,mBAAmBriG,EAAGo4F,MAIjC,OAGV,CACD95F,IAAK,cACLhC,MAAO,SAAqB87F,EAAQuL,EAAQC,GAC1C,GAAIxL,EAAOp5F,MAAM28E,SAAU,CACzB,IAAIkoB,EAAWF,EAASC,EAAY,EAAI,eAAiB,aAAe,UACxE,MAAiB,iBAAbC,EAAoC,aAAmC,eAAbA,EAAkC,YAAwB,OAExH,OAAO,OAGV,CACDvlG,IAAK,kBACLhC,MAAO,SAAyB0nG,GAC9B,OAA2B,IAAvBA,GAA4BxjG,KAAKod,MAAMukF,aACrB9mF,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,2BACVimG,EAAoB,GAGlB,OAER,CACD1lG,IAAK,mBACLhC,MAAO,SAA0B87F,EAAQtmF,GACvC,IAEImqE,EAFA95D,EAAS3hB,KAiBb,GAbI43F,EAAOp5F,MAAMR,QAAUsT,EAAQqyF,eACjCloB,EAAgBmc,EAAOp5F,MAAMi9E,eAA8B5gE,IAAM7P,cAAc2vE,IAAW,CACxF3kE,QAAS,SAAiBxW,GACxB,OAAOmiB,EAAO6hL,cAAchkM,EAAGo4F,IAEjCp6F,KAAMwC,KAAKxB,MAAM+8E,WACjBhB,aAAcv6E,KAAKxB,MAAM0kG,SAAWljG,KAAKxB,MAAM0kG,QAAQtL,EAAOp5F,MAAMsP,OAAS9N,KAAKxB,MAAM0kG,QAAQtL,EAAOp5F,MAAMsP,OAAOhS,MAAQ,KAC5HyB,UAAW,kBACXqmG,YAAahM,EAAOp5F,MAAM88E,kBAC1BuoB,UAAWjM,EAAOp5F,MAAMg9E,mBAIxBlqE,EAAQ2yF,WACV,OAAoBppF,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK85F,EAAOp5F,MAAMq8E,WAAa+c,EAAOp5F,MAAMsP,OAASwD,EAAQ+qD,MAC7D9+D,UAAWN,YAAW,kBAAmB26F,EAAOp5F,MAAMo9E,uBACtDx7E,MAAOw3F,EAAOp5F,MAAMm9E,mBAAqBic,EAAOp5F,MAAM4B,MACtDk8E,QAASsb,EAAOp5F,MAAM89E,QACtBlX,QAASwyB,EAAOp5F,MAAM4mE,SACrBqW,GAEH,IAAI+nB,EAAoBxjG,KAAKkkG,0BAA0BtM,GACnDuM,GAA2C,IAAvBX,EAA2BxjG,KAAKxB,MAAMskG,cAAcU,GAAqB,KAC7FY,EAAexM,EAAOp5F,MAAMsP,QAAU9N,KAAKxB,MAAMs8E,UACjDwpB,EAAuC,OAAtBH,EACjBhB,EAASvL,EAAOp5F,MAAM28E,WAAaipB,GAAgBE,GACnDlB,EAAY,EACZgB,EAAchB,EAAYpjG,KAAKxB,MAAM4kG,UAAmBkB,IAAgBlB,EAAYe,EAAkB76E,OAC1G,IAAIk7E,EAAkBxkG,KAAKykG,eAAe7M,EAAQuL,EAAQC,GACtDsB,EAAe1kG,KAAK2kG,YAAY/M,EAAQuL,EAAQC,GAChDwB,EAAY5kG,KAAK6kG,gBAAgBrB,GACjCjmG,EAAYN,YAAW26F,EAAOp5F,MAAMs9E,iBAAmB8b,EAAOp5F,MAAMjB,UAAW,CACjF,oBAAqBq6F,EAAOp5F,MAAM28E,SAClC,cAAegoB,EACf,qBAAsBnjG,KAAKxB,MAAMgkG,mBAE/B+B,EAAUvkG,KAAKk1I,cAAct9C,GACjC,OAAoB/8E,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK85F,EAAO/c,WAAa+c,EAAO9pF,OAASwD,EAAQ+qD,MACjD9+D,UAAWA,EACX6C,MAAOw3F,EAAOp5F,MAAMq9E,aAAe+b,EAAOp5F,MAAM4B,MAChD0kE,SAAU8yB,EAAOp5F,MAAM28E,SAAWn7E,KAAKxB,MAAMsmE,SAAW,KACxD9E,QAAS,SAAiBxgE,GACxB,OAAOmiB,EAAO8hL,cAAcjkM,EAAGo4F,IAEjC99E,YAAa,SAAqBta,GAChC,OAAOmiB,EAAO+hL,kBAAkBlkM,EAAGo4F,IAErCnjF,UAAW,SAAmBjV,GAC5B,OAAOmiB,EAAOgiL,gBAAgBnkM,EAAGo4F,IAEnCtb,QAASsb,EAAOp5F,MAAM89E,QACtBlX,QAASwyB,EAAOp5F,MAAM4mE,QACtB,YAAas/B,EACbxM,YAAa,SAAqB14F,GAChC,OAAOmiB,EAAOu2E,YAAY14F,EAAGo4F,IAE/BpB,WAAY,SAAoBh3F,GAC9B,OAAOmiB,EAAO60E,WAAWh3F,EAAGo4F,IAE9BnB,YAAa,SAAqBj3F,GAChC,OAAOmiB,EAAO80E,YAAYj3F,EAAGo4F,IAE/BlB,OAAQ,SAAgBl3F,GACtB,OAAOmiB,EAAO+0E,OAAOl3F,EAAGo4F,KAEzB2M,EAAsB1pF,IAAM7P,cAAc,OAAQ,CACnDzN,UAAW,kBACVq6F,EAAOp5F,MAAMw8E,QAASwpB,EAAiBI,EAAWnpB,KAGxD,CACD39E,IAAK,kBACLhC,MAAO,SAAyB+rE,EAAKxL,GACnC,IAAI/5C,EAAStiB,KAGT4jM,EADa/oL,IAAMs8E,SAASC,QAAQvvB,EAAIrpE,MAAMgE,UAClB7E,KAAI,SAAUmqE,EAAKltE,GACjD,OAAO0nB,EAAOuhL,iBAAiB/7H,EAAK,CAClCzL,MAAOzhE,EACPqpG,YAAY,EACZN,cAAc,OAGlB,OAAoB9oF,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,GACJunI,KAEJ,CACD9lM,IAAK,oBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAGb,OADW6a,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgjG,YAAYhjG,MAAMgE,UACnD7E,KAAI,SAAUkqE,EAAKjtE,GAC7B,OAAO6nB,EAAOqhL,gBAAgBj8H,EAAKjtE,QAGtC,CACDkD,IAAK,gBACLhC,MAAO,SAAuBwzF,GAC5B,IAAIhsE,EAAStjB,KAEb,OAAIsvF,EACEtvF,KAAK0lG,gBAAgBpW,GACHz0E,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,KAAM,KAAMskF,EAAQ3xF,KAAI,SAAUmqE,EAAKltE,GACpI,OAAO0oB,EAAOugL,iBAAiB/7H,EAAK,CAClCzL,MAAOzhE,EACPqpG,YAAY,EACZN,cAAc,QAEA9oF,IAAM7P,cAAc,KAAM,KAAMskF,EAAQ3xF,KAAI,SAAUmqE,EAAKltE,GAC3E,OAAO0oB,EAAOugL,iBAAiB/7H,EAAK,CAClCzL,MAAOzhE,EACPqpG,YAAY,EACZN,cAAc,SAIE9oF,IAAM7P,cAAc,KAAM,KAAMskF,EAAQ3xF,KAAI,SAAUmqE,EAAKltE,GAC7E,OAAO0oB,EAAOugL,iBAAiB/7H,EAAK,CAClCzL,MAAOzhE,EACPqpG,YAAY,EACZN,cAAc,QAKb,OAGV,CACD7lG,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKxB,MAAMgjG,YAAcxhG,KAAK+jM,oBAAsB/jM,KAAK0gL,cAAc1gL,KAAKxB,MAAM8wF,SAChG,OAAoBz0E,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVyhB,MAEH,CAAC,CACHlhB,IAAK,2BACLhC,MAAO,SAAkCojD,EAAWz7B,GAClD,MAAO,CACLk+E,aAAcziD,EAAU4jD,eAAiB5jD,EAAU4jD,cAAcnoG,OAAS,OAKzE4oM,EA9W0B,CA+WjCvoL,aAEF,SAASy9D,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAAS+jG,EAAeloF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P2hG,GAA+B,OAAO,WAAkC,IAAsCryF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIk1L,EAAiC,SAAUpqL,GAC7CpB,EAAUwrL,EAAmBpqL,GAE7B,IAAIC,EAASqnF,EAAe8iG,GAE5B,SAASA,EAAkBxlM,GACzB,IAAI+G,EAaJ,OAXApH,EAAgB6B,KAAMgkM,IAEtBz+L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IAEhBA,MAAM+9E,SACdh3E,EAAM6X,MAAQ,IAGhB7X,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IAC9DA,EAAMqsF,cAAgBrsF,EAAMqsF,cAAc73E,KAAK7B,EAAuB3S,IAC/DA,EAmLT,OAhLAzG,EAAaklM,EAAmB,CAAC,CAC/BlmM,IAAK,UACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETA,KAAKxB,MAAM+9E,SAAWv8E,KAAKod,MAAMq0E,UAAYzxF,KAAKxB,MAAMq0F,eAAiB7yF,KAAKxB,MAAMq0F,cAAgB7yF,KAAKxB,MAAMsyF,YACjH9wF,KAAK8yF,WAAY,EACjB9yF,KAAKwd,SAAS,CACZi0E,SAAS,IACR,WACD92E,EAAOq4E,2BAEPr4E,EAAOs4E,qBAAuB,SAAUzzF,GACjCmb,EAAOu4E,iBAAiB1zF,EAAEjB,UAC7Boc,EAAOm4E,WAAY,IAIvB1uE,IAAeG,GAAG,gBAAiB5J,EAAOs4E,4BAI/C,CACDn1F,IAAK,YACLhC,MAAO,SAAmBuY,GACJ,KAAhBA,EAAMM,OAAgC,IAAhBN,EAAMM,OAC9B3U,KAAK+xF,qBAAqB19E,KAG7B,CACDvW,IAAK,2BACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKszF,uBACRtzF,KAAKszF,qBAAuB,SAAU9zF,IAC/B0hB,EAAO4xE,WAAa5xE,EAAOgyE,iBAAiB1zF,EAAEjB,SACjD2iB,EAAO6wE,qBAAqBvyF,GAG9B0hB,EAAO4xE,WAAY,GAGrBpyF,SAAS8M,iBAAiB,QAASxN,KAAKszF,yBAG3C,CACDx1F,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/B,OAAOyB,KAAK8J,aAAe9J,KAAK8J,UAAUypF,WAAWh1F,IAAWyB,KAAK8J,UAAUzG,SAAS9E,MAEzF,CACDT,IAAK,6BACLhC,MAAO,WACDkE,KAAKszF,uBACP5yF,SAAS+M,oBAAoB,QAASzN,KAAKszF,sBAC3CtzF,KAAKszF,qBAAuB,KAC5BtzF,KAAK8yF,WAAY,KAGpB,CACDh1F,IAAK,YACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAGb6I,YAAW,WACT8Y,EAAOnE,SAAS,CACdi0E,SAAS,IACR,WACD9vE,EAAO6xE,6BAEPpvE,IAAeK,IAAI,gBAAiB9C,EAAOsxE,sBAC3CtxE,EAAOsxE,qBAAuB,UAE/B,KAEJ,CACDn1F,IAAK,gBACLhC,MAAO,SAAuBuY,GAC5BrU,KAAKggE,QAAQ3rD,KAEd,CACDvW,IAAK,uBACLhC,MAAO,SAA8BuY,GAC/BrU,KAAKxB,MAAMg+E,gBACDx8E,KAAKxB,MAAMg+E,gBAAgB,CACrC7mE,cAAetB,EACf0+E,YAAa/yF,KAAKxB,SAIlBwB,KAAK2zF,YAGP3zF,KAAK2zF,cAGR,CACD71F,IAAK,qBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEb,GAAIA,KAAK8J,WAAa9J,KAAKxB,MAAM+9E,OAG/B,GAFAxmE,aAAa/V,KAAKi0F,iBAEdj0F,KAAKod,OAASpd,KAAKod,MAAMq0E,QAAS,CACpC,IAAIyC,EAAYn0F,IAAWiI,WAAWhI,KAAK8J,UAAW,SAElDoqF,GAAaxzF,SAASqS,gBAAkBmhF,IAAcA,EAAUr0E,aAAa,wBAC/Eq0E,EAAUC,aAAa,sBAAsB,GAC7CD,EAAU9H,SAGZpsF,KAAKo0F,UAAUtvB,UAAY,OAE3B9kE,KAAKi0F,gBAAkBprF,YAAW,WAC5ByZ,EAAO8xE,WACT9xE,EAAO8xE,UAAUD,aAAa,WAAY,KAE3C,MAIR,CACDr2F,IAAK,uBACLhC,MAAO,WACLkE,KAAKwzF,6BAEDxzF,KAAKizF,uBACP7uE,IAAeK,IAAI,gBAAiBzkB,KAAKizF,sBACzCjzF,KAAKizF,qBAAuB,QAG/B,CACDn1F,IAAK,SACLhC,MAAO,WACL,IAOIkjB,EAPAyD,EAASziB,KAETzC,EAAYN,YAAW+C,KAAKxB,MAAMw9E,eAAiBh8E,KAAKxB,MAAMjB,UAAW,CAC3E,oBAAqByC,KAAKxB,MAAM+9E,OAChC,mBAAkBv8E,KAAKxB,MAAM+9E,QAASv8E,KAAKod,MAAMq0E,UAE/CrxF,EAAQJ,KAAKxB,MAAMu9E,WAAa/7E,KAAKxB,MAAM4B,MAG/C,GAAIJ,KAAKod,OAASpd,KAAKod,MAAMq0E,QAAS,CACpC,IAAIzxF,KAAKxB,MAAM+9E,OAAqD,MAAM,IAAI7yE,MAAM,kCAA7DsV,EAAUhf,KAAKxB,MAAM+9E,OAAOv8E,KAAKxB,YAEnCwgB,EAAjBhf,KAAKxB,MAAM6D,KAAgBrC,KAAKxB,MAAM6D,KAAKrC,KAAKxB,MAAM+I,KAAMvH,KAAKxB,OAAsBmP,IAAYI,iBAAiB/N,KAAKxB,MAAM+I,KAAKoH,KAAM3O,KAAKxB,MAAMsP,OAK3J,IAAIumF,EAAkBr0F,KAAKxB,MAAM+9E,QAAuB1hE,IAAM7P,cAAc,IAAK,CAC/E85D,SAAU,EACVhqD,IAAK,SAAa7a,GAChBwiB,EAAO2xE,UAAYn0F,GAErB1C,UAAW,+CACXiV,QAASxS,KAAK4xF,eACA/2E,IAAM7P,cAAc,OAAQ,OAG5C,OAAoB6P,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAOwiB,EAAO3Y,UAAY7J,GAE5B1C,UAAWA,EACX6C,MAAOA,EACP4/D,QAAShgE,KAAKggE,QACdvrD,UAAWzU,KAAKyU,WACfzU,KAAKxB,MAAMgE,SAAU6xF,EAAiBr1E,OAItCglL,EAtM4B,CAuMnChpL,aAEF,SAAS/b,EAA6BhD,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAEhL,SAAuClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOmD,EAAoBnD,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOiD,EAAoBnD,EAAGC,GAFvOmD,CAA8BpD,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAI79B,SAASqD,EAAoB3E,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAElL,SAASkjB,EAAUrN,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAEpV,SAASuP,EAAgBzf,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKmjB,EAAU3hB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB8M,EAAU3hB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAEnhB,SAAS8iG,EAAeroF,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9P8hG,GAA+B,OAAO,WAAkC,IAAsCxyF,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIm1L,EAA4B,SAAUrqL,GACxCpB,EAAUyrL,EAAcrqL,GAExB,IAAIC,EAASwnF,EAAe4iG,GAE5B,SAASA,EAAazlM,GACpB,IAAI+G,EAcJ,OAZApH,EAAgB6B,KAAMikM,IAEtB1+L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBsyJ,eAAiBvrJ,EAAMurJ,eAAe/2I,KAAK7B,EAAuB3S,IACxEA,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM8wF,WAAa9wF,EAAM8wF,WAAWt8E,KAAK7B,EAAuB3S,IAChEA,EAAMo4L,YAAcp4L,EAAMo4L,YAAY5jL,KAAK7B,EAAuB3S,IAClEA,EAAM2+L,iBAAmB3+L,EAAM2+L,iBAAiBnqL,KAAK7B,EAAuB3S,IAC5EA,EAAM4+L,gBAAkB5+L,EAAM4+L,gBAAgBpqL,KAAK7B,EAAuB3S,IAC1EA,EAAM6+L,eAAiB7+L,EAAM6+L,eAAerqL,KAAK7B,EAAuB3S,IACxEA,EAAM+wF,aAAe/wF,EAAM+wF,aAAav8E,KAAK7B,EAAuB3S,IACpEA,EAAMkP,UAAYlP,EAAMkP,UAAUsF,KAAK7B,EAAuB3S,IACvDA,EAsiBT,OAniBAzG,EAAamlM,EAAc,CAAC,CAC1BnmM,IAAK,SACLhC,MAAO,WACL,OAAgC,IAAzBkE,KAAKxB,MAAM+I,KAAK06L,QAA2BjiM,KAAKxB,MAAM+I,KAAK/E,UAAYxC,KAAKxB,MAAM+I,KAAK/E,SAAS7H,UAExG,CACDmD,IAAK,iBACLhC,MAAO,SAAwBuY,GACzBrU,KAAKk+L,aAAcl+L,KAAKsT,SAASe,GAAYrU,KAAKyvB,OAAOpb,GAC7DA,EAAMY,iBACNZ,EAAM83E,oBAEP,CACDruF,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAI2pL,EAAeh+L,KAAKxB,MAAMw/L,aAAehgL,EAAgB,GAAIhe,KAAKxB,MAAMw/L,cAAgB,GAC5FA,EAAah+L,KAAKxB,MAAM+I,KAAKzJ,MAAO,EACpCkC,KAAKxB,MAAMyxJ,SAAS,CAClBt6I,cAAetB,EACfvY,MAAOkiM,IAETh+L,KAAKi+L,mBAAmB5pL,GAAO,KAEhC,CACDvW,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAI2pL,EAAehgL,EAAgB,GAAIhe,KAAKxB,MAAMw/L,qBAE3CA,EAAah+L,KAAKxB,MAAM+I,KAAKzJ,KACpCkC,KAAKxB,MAAMyxJ,SAAS,CAClBt6I,cAAetB,EACfvY,MAAOkiM,IAETh+L,KAAKi+L,mBAAmB5pL,GAAO,KAEhC,CACDvW,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOogF,GACpCA,EACEz0F,KAAKxB,MAAM6xJ,UACbrwJ,KAAKxB,MAAM6xJ,SAAS,CAClB16I,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,OAIjBvH,KAAKxB,MAAM8xJ,YACbtwJ,KAAKxB,MAAM8xJ,WAAW,CACpB36I,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAKxB,CACDzJ,IAAK,UACLhC,MAAO,SAAiBuY,GAClBrU,KAAKxB,MAAMk6F,YACb14F,KAAKxB,MAAMk6F,WAAW,CACpB/iF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,OAIrB,IAAIq1F,EAAavoF,EAAM9V,OAAOsL,SAE9B,KAAmB,UAAf+yF,GAAyC,WAAfA,GAA0C,MAAfA,GAAsB78F,IAAW6uF,SAASv6E,EAAM9V,OAAQ,gBAAkBwB,IAAW6uF,SAASv6E,EAAM9V,OAAQ,wBAA0BwB,IAAW6uF,SAASv6E,EAAM9V,OAAO0b,cAAe,wBAA/O,CAIA,IAAKja,KAAKm/L,yBAA2Bn/L,KAAKo/L,6BAA6D,IAA/Bp/L,KAAKxB,MAAM+I,KAAK84H,WAAsB,CAC5G,IAAIw+D,EACA/tG,EAAW9wF,KAAKgzE,aAGpB,IAFoBhzE,KAAKk/L,aAAsBl/L,KAAKxB,MAAMq+F,iBAEvC,CACjB,IAAItnF,EAAUlB,EAAMkB,SAAWlB,EAAMgB,QAEjCy7E,GAAYv7E,GACVvV,KAAKm/L,wBACPN,EAAgB,YAEhBA,EAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,gBAC1B7+L,KAAKxB,MAAM+I,KAAKzJ,KAGnCkC,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIjBvH,KAAKm/L,wBACPN,EAAgB7+L,KAAKxB,MAAM+I,KAAKzJ,IACvBkC,KAAKo/L,6BACdP,EAAiBtpL,GAAevV,KAAKxB,MAAMqgM,cAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,eAA/D,IACb7+L,KAAKxB,MAAM+I,KAAKzJ,MAAO,GAGnCkC,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,aAKnBvH,KAAKm/L,wBACHruG,GACF+tG,EAAgB,KAEZ7+L,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIrBs3L,EAAgB7+L,KAAKxB,MAAM+I,KAAKzJ,IAE5BkC,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,QAKnBupF,UACF+tG,EAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,gBAC1B7+L,KAAKxB,MAAM+I,KAAKzJ,KAEjCkC,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,UAIrBs3L,EAAgB7+L,KAAKxB,MAAMqgM,cAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,eAAiB,IAC7E7+L,KAAKxB,MAAM+I,KAAKzJ,MAAO,EAEjCkC,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,QAOvBvH,KAAKxB,MAAM67F,mBACbr6F,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAetB,EACfvY,MAAO+iM,IAKb7+L,KAAKk/L,aAAc,KAEpB,CACDphM,IAAK,aACLhC,MAAO,WACLkE,KAAKk/L,aAAc,IAEpB,CACDphM,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,IAAI63E,EAAUlsF,KAAK+rF,YACf8yG,EAAgB7+L,KAAKxB,MAAMqgM,cAAgB7gL,EAAgB,GAAIhe,KAAKxB,MAAMqgM,eAAiB,GAE3F3yG,GACElsF,KAAKxB,MAAMsgM,uBAAwB9+L,KAAK++L,cAAc/+L,KAAKxB,MAAM+I,MAAM,EAAOs3L,UAA2BA,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAEvIkC,KAAKxB,MAAMwgM,sBAAwBh/L,KAAKxB,MAAMygM,eAChDj/L,KAAKxB,MAAMygM,cAAc,CACvBtpL,cAAetB,EACf0wG,OAAO,EACP85E,cAAeA,IAIf7+L,KAAKxB,MAAM27F,YACbn6F,KAAKxB,MAAM27F,WAAW,CACpBxkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAIjBvH,KAAKxB,MAAMsgM,uBAAwB9+L,KAAK++L,cAAc/+L,KAAKxB,MAAM+I,MAAM,EAAMs3L,GAAoBA,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CACxIouF,SAAS,GAGPlsF,KAAKxB,MAAMwgM,sBAAwBh/L,KAAKxB,MAAMygM,eAChDj/L,KAAKxB,MAAMygM,cAAc,CACvBtpL,cAAetB,EACf0wG,OAAO,EACP85E,cAAeA,IAIf7+L,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,QAKnBvH,KAAKxB,MAAM67F,mBACbr6F,KAAKxB,MAAM67F,kBAAkB,CAC3B1kF,cAAetB,EACfvY,MAAO+iM,IAIX9+L,IAAWy6F,mBAEZ,CACD18F,IAAK,kBACLhC,MAAO,WACLiE,IAAWya,SAASxa,KAAKqkM,YAAa,aAEvC,CACDvmM,IAAK,iBACLhC,MAAO,WACLiE,IAAWma,YAAYla,KAAKqkM,YAAa,aAE1C,CACDvmM,IAAK,cACLhC,MAAO,SAAqBuY,GAC1B,IAMIjN,EANA29G,EAAQ1wG,EAAM0wG,MACd85E,EAAgBxqL,EAAMwqL,cACtBQ,EAAoB,EACpBC,GAAuB,EAEvB53L,EAAYzI,EAA6Be,KAAKxB,MAAM+I,KAAK/E,UAG7D,IACE,IAAKkF,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAI+yG,EAAQvnG,EAAMtL,MACd+iM,EAAclwF,EAAM7wG,MAAQ+gM,EAAclwF,EAAM7wG,KAAKouF,QAASmzG,IAA6BR,EAAclwF,EAAM7wG,MAAQ+gM,EAAclwF,EAAM7wG,KAAKyhM,iBAAgBD,GAAuB,IAE7L,MAAOvjM,GACP2L,EAAUlI,EAAEzD,GANd,QAQE2L,EAAUjI,IAGRslH,GAASs6E,IAAsBr/L,KAAKxB,MAAM+I,KAAK/E,SAAS7H,OAC1DkkM,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CACnCouF,SAAS,EACTqzG,gBAAgB,IAGbx6E,UACI85E,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAGnCwhM,GAAwBD,EAAoB,GAAKA,IAAsBr/L,KAAKxB,MAAM+I,KAAK/E,SAAS7H,OAAQkkM,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CAC/IouF,SAAS,EACTqzG,gBAAgB,GACXV,EAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAO,CAC1CouF,SAAS,EACTqzG,gBAAgB,IAIhBv/L,KAAKxB,MAAMwgM,sBAAwBh/L,KAAKxB,MAAMygM,eAChDj/L,KAAKxB,MAAMygM,cAAc5qL,KAG5B,CACDvW,IAAK,gBACLhC,MAAO,SAAuByL,EAAMw9G,EAAO85E,GAMzC,GALI95E,EAAO85E,EAAct3L,EAAKzJ,KAAO,CACnCouF,SAAS,EACTqzG,gBAAgB,UACJV,EAAct3L,EAAKzJ,KAE7ByJ,EAAK/E,UAAY+E,EAAK/E,SAAS7H,OACjC,IAAK,IAAIC,EAAI,EAAGA,EAAI2M,EAAK/E,SAAS7H,OAAQC,IACxCoF,KAAK++L,cAAcx3L,EAAK/E,SAAS5H,GAAImqH,EAAO85E,KAIjD,CACD/gM,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BtU,IAAWy6F,iBAEPx6F,KAAKxB,MAAMk+F,8BACb18F,KAAKxB,MAAMk+F,6BAA6B,CACtC/mF,cAAetB,EACfvY,MAAOkE,KAAKxB,MAAM+I,KAAKzJ,MAIvBkC,KAAKxB,MAAMiuF,eACbzsF,KAAKxB,MAAMiuF,cAAc,CACvB92E,cAAetB,EACf9M,KAAMvH,KAAKxB,MAAM+I,SAItB,CACDzJ,IAAK,YACLhC,MAAO,SAAmBuY,GACxB,GAAIA,EAAM9V,SAAWyB,KAAK8J,UAAW,CACnC,IAAI+sF,EAAaxiF,EAAMoG,cAEvB,OAAQpG,EAAMM,OAEZ,KAAK,GACH,IAAI+9E,EAAUmE,EAAWjD,mBAErBlB,GACFA,EAAQtG,QAGV/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAIqvL,EAAcztG,EAAWvI,uBAEzBg2G,GACFA,EAAYl4G,QAGd/3E,EAAMY,iBACN,MAGF,KAAK,GACEjV,KAAKk+L,cACRl+L,KAAKyvB,OAAOpb,GAGdA,EAAMY,iBACN,MAGF,KAAK,GACCjV,KAAKk+L,cACPl+L,KAAKsT,SAASe,GAGhBA,EAAMY,iBACN,MAGF,KAAK,GACHjV,KAAKggE,QAAQ3rD,GACbA,EAAMY,qBAKb,CACDnX,IAAK,wBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,WAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,0BACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,aAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,aACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAMw/L,mBAAgEv4L,IAAjDzF,KAAKxB,MAAMw/L,aAAah+L,KAAKxB,MAAM+I,KAAKzJ,OAE1E,CACDA,IAAK,aACLhC,MAAO,WACL,QAAkC,WAA7BkE,KAAKxB,MAAM69E,eAA2D,aAA7Br8E,KAAKxB,MAAM69E,gBAAiCr8E,KAAKxB,MAAMqgM,iBAAmD,WAA7B7+L,KAAKxB,MAAM69E,cAA6Br8E,KAAKxB,MAAMqgM,gBAAkB7+L,KAAKxB,MAAM+I,KAAKzJ,SAAwD2H,IAAlDzF,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,QAEhQ,CACDA,IAAK,YACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAMqgM,gBAAgB7+L,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,MAAQkC,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAKouF,WAElI,CACDpuF,IAAK,mBACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAMqgM,gBAAgB7+L,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,MAAQkC,KAAKxB,MAAMqgM,cAAc7+L,KAAKxB,MAAM+I,KAAKzJ,KAAKyhM,kBAElI,CACDzhM,IAAK,gBACLhC,MAAO,WACL,IAAI24F,EAAWz0F,KAAKk+L,aAChB/sG,EAAgBl0F,YAAW,qCAAsC,CACnE,oBAAqBw3F,EACrB,kBAAmBA,IAEjBr0F,EAAQ,CACVgB,WAA+B,GAAnBpB,KAAKxB,MAAMi+D,MAAa,KACpCx0D,YAAqC,IAAzBjI,KAAKxB,MAAM+I,KAAK06L,MAAkBjiM,KAAKxB,MAAM+I,KAAK/E,UAAYxC,KAAKxB,MAAM+I,KAAK/E,SAAS7H,OAAS,UAAY,UAE1H,OAAoBkgB,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAW,iDACXyiE,QAAShgE,KAAK8wJ,eACdhsF,UAAW,EACX1kE,MAAOA,GACOya,IAAM7P,cAAc,IAAK,CACvCzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,iBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEb,GAAiC,aAA7BA,KAAKxB,MAAM69E,gBAA+D,IAA/Br8E,KAAKxB,MAAM+I,KAAK84H,WAAsB,CACnF,IAAIn0C,EAAUlsF,KAAK+rF,YACfwzG,EAAiBv/L,KAAK6/L,mBACtBtiM,EAAYN,YAAW,iBAAkB,CAC3C,cAAeivF,EACf,kBAAmBqzG,IAEjBrmH,EAAOj8E,YAAW,sBAAuB,CAC3C,cAAeivF,EACf,cAAeqzG,IAEjB,OAAoB1kL,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,8CACXyiE,QAAShgE,KAAKkkM,iBACdngL,KAAM,WACN,eAAgBmoE,GACFrxE,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3CxN,KAAM,WACNgV,QAASxS,KAAKmkM,gBACd1xL,OAAQzS,KAAKokM,kBACGvpL,IAAM7P,cAAc,MAAO,CAC3CzN,UAAWA,EACXud,IAAK,SAAa7a,GAChB,OAAO0a,EAAO0pL,YAAcpkM,IAEhB4a,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW27E,MAGb,OAAO,OAGV,CACDp7E,IAAK,aACLhC,MAAO,SAAoB87F,GACzB,IAAIsoG,EAAS7iG,EAOb,OALIzF,EAAOp5F,MAAM29E,WACf+jH,EAAUlgM,KAAKmgM,gBACf9iG,EAAWr9F,KAAKogM,kBAGEvlL,IAAM7P,cAAcg5L,EAAmBvrH,EAAS,CAClE36E,IAAK85F,EAAOp5F,MAAMq8E,WAAa+c,EAAOp5F,MAAMsP,OAC3C8pF,EAAOp5F,MAAO,CACfq0F,aAAc7yF,KAAKxB,MAAMq0F,aACzB/B,SAAU9wF,KAAKgzE,aACfzrE,KAAMvH,KAAKxB,MAAM+I,KACjB6rF,SAAUpzF,KAAKxB,MAAM40F,WACnB8sG,EAAS7iG,KAEd,CACDv/F,IAAK,iBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAIA,KAAKk+L,cAAgBl+L,KAAKxB,MAAM+I,KAAK/E,SAChCxC,KAAKxB,MAAM+I,KAAK/E,SAAS7E,KAAI,SAAUukK,EAAW7lG,GACvD,OAAoBxhD,IAAM7P,cAAci5L,EAAc,CACpDnmM,IAAKokK,EAAUpkK,KAAOm6C,KAAKC,UAAUgqH,EAAUvzJ,MAC/C8tD,MAAOv7C,EAAO1iB,MAAMi+D,MAAQ,EAC5B22B,SAAUlyE,EAAO1iB,MAAM40F,SAAW,IAAM/2B,EACxC90D,KAAM26J,EACN5yE,QAASpuE,EAAO1iB,MAAM8wF,QACtB0uG,aAAc98K,EAAO1iB,MAAMw/L,aAC3BnrG,aAAc3xE,EAAO1iB,MAAMq0F,aAC3Bo9D,SAAU/uI,EAAO1iB,MAAMyxJ,SACvBI,SAAUnvI,EAAO1iB,MAAM6xJ,SACvBC,WAAYpvI,EAAO1iB,MAAM8xJ,WACzBj0E,cAAen7D,EAAO1iB,MAAM69E,cAC5BwiH,cAAe39K,EAAO1iB,MAAMqgM,cAC5BxkG,kBAAmBn5E,EAAO1iB,MAAM67F,kBAChCwC,iBAAkB37E,EAAO1iB,MAAMq+F,iBAC/BnE,WAAYx3E,EAAO1iB,MAAMk6F,WACzB0B,SAAUl5E,EAAO1iB,MAAM47F,SACvBD,WAAYj5E,EAAO1iB,MAAM27F,WACzB6kG,qBAAsB99K,EAAO1iB,MAAMwgM,qBACnCF,uBAAwB59K,EAAO1iB,MAAMsgM,uBACrCG,cAAe/9K,EAAOy8K,YACtBnmG,aAAct2E,EAAO1iB,MAAMg5F,aAC3ByoG,wBAAyB/+K,EAAO1iB,MAAMyhM,wBACtCvjG,6BAA8Bx7E,EAAO1iB,MAAMk+F,6BAC3CjQ,cAAevrE,EAAO1iB,MAAMiuF,mBAIzB,OAGV,CACD3uF,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETwnE,EAAQxnE,KAAKxB,MAAM8wF,QAAQ3xF,KAAI,SAAUmqE,GAC3C,OAAOnmD,EAAO4iL,WAAWz8H,MAEvBtlE,EAAWxC,KAAKsgM,iBAChB/iM,EAAY,CACd,cAAeyC,KAAKgzE,aACpB,0BAA2BhzE,KAAKxB,MAAMyhM,yBAA2BjgM,KAAKxB,MAAMyhM,0BAA4BjgM,KAAKxB,MAAM+I,KAAKzJ,KAG1H,GAAIkC,KAAKxB,MAAMg5F,aAAc,CAC3B,IAAIA,EAAex3F,KAAKxB,MAAMg5F,aAAax3F,KAAKxB,MAAM+I,MACtDhK,EAAYygB,EAAgBA,EAAgB,GAAIzgB,GAAYi6F,GAI9D,OADAj6F,EAAYN,YAAWM,EAAWyC,KAAKxB,MAAM+I,KAAKhK,WAC9Bsd,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAc,KAAM,CACnG8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO7X,UAAY7J,GAE5B6kE,SAAU,EACVvnE,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM+I,KAAKnH,MACvB4/D,QAAShgE,KAAKggE,QACdq2B,WAAYr2F,KAAKq2F,WACjB5J,cAAezsF,KAAKs2F,aACpB7hF,UAAWzU,KAAKyU,WACf+yD,GAAQhlE,OAIRyhM,EA1jBuB,CA2jB9BjpL,aA0BF,SAASjC,EAAeC,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pga,GAA+B,OAAO,WAAkC,IAAsC1K,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAxBha0B,EAAgByzL,EAAc,eAAgB,CAC5C18L,KAAM,KACNk1D,MAAO,KACP6yB,QAAS,KACT0uG,aAAc,KACdiC,wBAAyB,KACzB5jH,cAAe,KACfwiH,cAAe,KACfhiG,kBAAkB,EAClBmiG,sBAAsB,EACtBF,wBAAwB,EACxBtnG,aAAc,KACd64D,SAAU,KACVC,WAAY,KACZL,SAAU,KACVv3D,WAAY,KACZ0B,SAAU,KACVD,WAAY,KACZE,kBAAmB,KACnB4kG,cAAe,KACfviG,6BAA8B,KAC9BjQ,cAAe,OAMjB,IAAI+3G,EAA6B,SAAU5qL,GACzCpB,EAAUgsL,EAAe5qL,GAEzB,IAAIC,EAASd,EAAeyrL,GAE5B,SAASA,IAGP,OAFArmM,EAAgB6B,KAAMwkM,GAEf3qL,EAAOvQ,MAAMtJ,KAAM7C,WA8E5B,OA3EA2B,EAAa0lM,EAAe,CAAC,CAC3B1mM,IAAK,YACLhC,MAAO,SAAmByL,EAAM80D,GAC9B,OAAoBxhD,IAAM7P,cAAci5L,EAAc,CACpDnmM,IAAKyJ,EAAKzJ,KAAOm6C,KAAKC,UAAU3wC,EAAKoH,MACrC8tD,MAAO,EACP22B,SAAU/2B,EACVw2B,aAAc7yF,KAAKxB,MAAMq0F,aACzBtrF,KAAMA,EACN+nF,QAAStvF,KAAKxB,MAAM8wF,QACpB0uG,aAAch+L,KAAKxB,MAAMw/L,aACzB/tC,SAAUjwJ,KAAKxB,MAAMyxJ,SACrBI,SAAUrwJ,KAAKxB,MAAM6xJ,SACrBC,WAAYtwJ,KAAKxB,MAAM8xJ,WACvBj0E,cAAer8E,KAAKxB,MAAM69E,cAC1BwiH,cAAe7+L,KAAKxB,MAAMqgM,cAC1BxkG,kBAAmBr6F,KAAKxB,MAAM67F,kBAC9BwC,iBAAkB78F,KAAKxB,MAAMq+F,iBAC7BnE,WAAY14F,KAAKxB,MAAMk6F,WACvB0B,SAAUp6F,KAAKxB,MAAM47F,SACrBD,WAAYn6F,KAAKxB,MAAM27F,WACvB6kG,qBAAsBh/L,KAAKxB,MAAMwgM,qBACjCF,uBAAwB9+L,KAAKxB,MAAMsgM,uBACnCtnG,aAAcx3F,KAAKxB,MAAMg5F,aACzByoG,wBAAyBjgM,KAAKxB,MAAMyhM,wBACpCvjG,6BAA8B18F,KAAKxB,MAAMk+F,6BACzCjQ,cAAezsF,KAAKxB,MAAMiuF,kBAG7B,CACD3uF,IAAK,aACLhC,MAAO,WACL,IAAIyJ,EAAQvF,KAEZ,GAAIA,KAAKxB,MAAMw8F,YAAch7F,KAAKxB,MAAMu8F,KAAM,CAM5C,IALA,IAAIsE,EAAMr/F,KAAKxB,MAAMopE,MAAQ,EACzBxJ,EAAap+D,KAAKxB,MAAMmU,OAAS,EACjC0rD,EAAWD,EAAaihC,EACxBz3B,EAAO,GAEFhtE,EAAIwjE,EAAYxjE,EAAIyjE,EAAUzjE,IAAK,CAE1C,IADcoF,KAAKxB,MAAM1C,MAAMlB,GACkC,MAApDgtE,EAAK/rE,KAAKmE,KAAKykM,UAAUzkM,KAAKxB,MAAM1C,MAAMlB,KAGzD,OAAOgtE,EAEP,OAAO5nE,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAU4J,EAAM80D,GAC1C,OAAO92D,EAAMk/L,UAAUl9L,EAAM80D,QAIlC,CACDv+D,IAAK,qBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMq6E,QACb,OAAO,KAEP,IAAIzT,EAAUplE,KAAKxB,MAAM8wF,QAAUtvF,KAAKxB,MAAM8wF,QAAQ30F,OAAS,KAC/D,OAAoBkgB,IAAM7P,cAAc,KAAM,KAAmB6P,IAAM7P,cAAc,KAAM,CACzFzN,UAAW,2BACX6nE,QAASA,GACRplE,KAAKxB,MAAMyiG,iBAGjB,CACDnjG,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAK6lG,aAAe7lG,KAAKu1G,qBACrF,OAAoB16F,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVyhB,OAIAwlL,EAtFwB,CAuF/BxpL,aA8BF,SAASyB,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IA5Bha0B,EAAgBg0L,EAAe,eAAgB,CAC7C1oM,MAAO,KACPwzF,QAAS,KACT0uG,aAAc,KACdiC,wBAAyB,KACzBjlG,WAAW,EACXroF,MAAO,KACPi1D,KAAM,KACNyU,cAAe,KACfwiH,cAAe,KACfhiG,kBAAkB,EAClBmiG,sBAAsB,EACtBF,wBAAwB,EACxB/jG,MAAM,EACNvD,aAAc,KACdyJ,aAAc,mBACdpoB,SAAS,EACTw3E,SAAU,KACVC,WAAY,KACZL,SAAU,KACVv3D,WAAY,KACZ0B,SAAU,KACVD,WAAY,KACZE,kBAAmB,KACnBqC,6BAA8B,KAC9BjQ,cAAe,OAMjB,IAAIi4G,EAA+B,SAAU9qL,GAC3CpB,EAAUksL,EAAiB9qL,GAE3B,IAAIC,EAAS4C,EAAeioL,GAE5B,SAASA,IAGP,OAFAvmM,EAAgB6B,KAAM0kM,GAEf7qL,EAAOvQ,MAAMtJ,KAAM7C,WAiF5B,OA9EA2B,EAAa4lM,EAAiB,CAAC,CAC7B5mM,IAAK,mBACLhC,MAAO,SAA0B87F,EAAQv7B,GACvC,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK85F,EAAO9pF,OAASuuD,EACrB9+D,UAAWq6F,EAAOp5F,MAAM09E,iBAAmB0b,EAAOp5F,MAAMjB,UACxD6C,MAAOw3F,EAAOp5F,MAAMy9E,aAAe2b,EAAOp5F,MAAM4B,MAChDk8E,QAASsb,EAAOp5F,MAAM89E,QACtBlX,QAASwyB,EAAOp5F,MAAM4mE,SACrBwyB,EAAOp5F,MAAM08E,UAEjB,CACDp9E,IAAK,kBACLhC,MAAO,SAAyB+rE,EAAKxL,GACnC,IAAI92D,EAAQvF,KAGR2kM,EADa9pL,IAAMs8E,SAASC,QAAQvvB,EAAIrpE,MAAMgE,UAClB7E,KAAI,SAAUmqE,EAAKzL,GACjD,OAAO92D,EAAMq/L,iBAAiB98H,EAAKzL,MAErC,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKu+D,GACJsoI,KAEJ,CACD7mM,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAGb,OADW6a,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgjG,YAAYhjG,MAAMgE,UACnD7E,KAAI,SAAUkqE,EAAKjtE,GAC7B,OAAO+f,EAAOkqL,gBAAgBh9H,EAAKjtE,QAGtC,CACDkD,IAAK,gBACLhC,MAAO,SAAuBwzF,GAC5B,IAAIpuE,EAASlhB,KAEb,GAAIsvF,EAAS,CACX,IAAIw1G,EAAcx1G,EAAQ3xF,KAAI,SAAUmqE,EAAKzL,GAC3C,OAAOn7C,EAAO0jL,iBAAiB98H,EAAKzL,MAEtC,OAAoBxhD,IAAM7P,cAAc,KAAM,KAAM85L,GAEpD,OAAO,OAGV,CACDhnM,IAAK,YACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMgjG,YACb,OAAO,EAEP,IAAK,IAAI5mG,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM8wF,QAAQ30F,OAAQC,IAC7C,GAAIoF,KAAKxB,MAAM8wF,QAAQ10F,GAAG4D,MAAM08E,OAC9B,OAAO,EAKb,OAAO,IAER,CACDp9E,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKxB,MAAMgjG,YAAcxhG,KAAK+jM,oBAAsB/jM,KAAK0gL,cAAc1gL,KAAKxB,MAAM8wF,SAEhG,OAAItvF,KAAKqrG,YACaxwF,IAAM7P,cAAc,QAAS,CAC/CzN,UAAW,qBACVyhB,GAEI,SAKN0lL,EAzF0B,CA0FjC1pL,aAOF,SAAS6C,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IALha0B,EAAgBk0L,EAAiB,eAAgB,CAC/Cp1G,QAAS,KACTkS,YAAa,OAMf,IAAIujG,EAAuC,SAAUnrL,GACnDpB,EAAUusL,EAAyBnrL,GAEnC,IAAIC,EAASgE,EAAeknL,GAE5B,SAASA,EAAwBvmM,GAC/B,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAM+kM,IAEtBx/L,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB+uF,eAAiBhoF,EAAMgoF,eAAexzE,KAAK7B,EAAuB3S,IACxEA,EAAMioF,aAAejoF,EAAMioF,aAAazzE,KAAK7B,EAAuB3S,IAC7DA,EAkLT,OA/KAzG,EAAaimM,EAAyB,CAAC,CACrCjnM,IAAK,oBACLhC,MAAO,WAGL,GAFAkE,KAAKytF,kBAEAztF,KAAKxB,MAAM49E,OAQdp8E,KAAK0tF,WAAWttF,MAAMsD,cAAgB3D,IAAW4tF,0BAA4B,SARvD,CACtB,IAAIC,EAAiB7tF,IAAW4tF,0BAChC3tF,KAAK6tF,gBAAgBztF,MAAMiB,YAAcusF,EAAiB,KAEtD5tF,KAAK8tF,kBACP9tF,KAAK8tF,gBAAgB1tF,MAAMiB,YAAcusF,EAAiB,SAM/D,CACD9vF,IAAK,qBACLhC,MAAO,WACLkE,KAAKytF,oBAEN,CACD3vF,IAAK,kBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMo+C,aACb,IAA8C,IAA1C58C,KAAKxB,MAAMo+C,aAAalxC,QAAQ,KAAa,CAC/C,IAAI8iF,EAAqBxuF,KAAKyuF,uBAAuBzuF,KAAK8J,WAC1D9J,KAAK0tF,WAAWttF,MAAM6H,WAAa,SACnCjI,KAAK0tF,WAAWttF,MAAMkB,OAAS,QAE/B,IAAIotF,EAAkB3uF,IAAWyG,eAAegoF,GAI5CG,EAHiB5uF,IAAWyG,eAAegoF,EAAmBv0E,eAAiBzC,SAASxX,KAAKxB,MAAMo+C,aAAc,IAAM,KACxG8xC,EAAkB,KAGrC1uF,KAAK0tF,WAAWttF,MAAMkB,OAAS,OAC/BtB,KAAK0tF,WAAWttF,MAAM0sE,UAAY6hB,EAAmB,KACrD3uF,KAAK0tF,WAAWttF,MAAM6H,WAAa,eAEnCjI,KAAK0tF,WAAWttF,MAAM0sE,UAAY9sE,KAAKxB,MAAMo+C,eAIlD,CACD9+C,IAAK,yBACLhC,MAAO,SAAgCyG,GACrC,GAAIA,EAAS,CAGX,IAFA,IAAItC,EAAKsC,EAEFtC,IAAOF,IAAW6uF,SAAS3uF,EAAI,gBACpCA,EAAKA,EAAGga,cAGV,OAAOha,EAEP,OAAO,OAGV,CACDnC,IAAK,iBACLhC,MAAO,WACLkE,KAAK6uF,aAAa5tF,WAAa,IAEhC,CACDnD,IAAK,eACLhC,MAAO,WACL,IACIyyF,EADAF,EAAaruF,KAAK8J,UAAUwkF,uBAG5BD,IACFE,EAAmBxuF,IAAWiI,WAAWqmF,EAAY,iCAGvDruF,KAAK6tF,gBAAgBztF,MAAMgB,YAAc,EAAIpB,KAAK0tF,WAAWzsF,WAAa,KAEtEjB,KAAK8tF,kBACP9tF,KAAK8tF,gBAAgB1tF,MAAMgB,YAAc,EAAIpB,KAAK0tF,WAAWzsF,WAAa,MAGxEstF,IACFA,EAAiBztF,UAAYd,KAAK0tF,WAAW5sF,aAGhD,CACDhD,IAAK,qBACLhC,MAAO,WACL,IAAI+rE,EAAM9nE,IAAWiI,WAAWhI,KAAK+uF,YAAa,yCAE9ClnB,IACF7nE,KAAK49J,UAAY79J,IAAWyG,eAAeqhE,MAG9C,CACD/pE,IAAK,iBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM8wF,SAAWtvF,KAAKxB,MAAM8wF,QAAQ30F,OACvBkgB,IAAM7P,cAAc,WAAY,CAClDzN,UAAW,mCACVyC,KAAKxB,MAAM8wF,QAAQ3xF,KAAI,SAAUmqE,EAAKltE,GACvC,OAAoBigB,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKgqE,EAAIh6D,MAAQ,IAAMlT,QAIpB,OAGV,CACDkD,IAAK,SACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAETzC,EAAYN,YAAW,8BAA+B,CACxD,0BAA2B+C,KAAKxB,MAAM49E,OACtC,6BAA8Bp8E,KAAKxB,MAAM49E,QAAUp8E,KAAKxB,MAAMgxF,cAE5DtvF,EAAQF,KAAKxB,MAAM49E,OAASp8E,KAAKxB,MAAMgxF,YAAc,eAAiBxvF,KAAKxB,MAAMgxF,YAAc,IAC/FltF,EAAOtC,KAAKxB,MAAM49E,OAAS,KAAOp8E,KAAKxB,MAAMgxF,YAC7CD,EAAWvvF,KAAK8vF,iBAChBE,GAAuBhwF,KAAKxB,MAAM49E,QAAUp8E,KAAKxB,MAAMo+C,aAAe,CACxE9C,UAAW,UACT,KACJ,OAAoBj/B,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWA,EACX6C,MAAO,CACLF,MAAOA,EACPoC,KAAMA,GAERwY,IAAK,SAAa7a,GAChB0a,EAAO7Q,UAAY7J,IAEP4a,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,gCACXud,IAAK,SAAa7a,GAChB0a,EAAOk0E,aAAe5uF,GAExBgwF,SAAUjwF,KAAKutF,gBACD1yE,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oCACXud,IAAK,SAAa7a,GAChB0a,EAAOkzE,gBAAkB5tF,IAEb4a,IAAM7P,cAAc,QAAS,CAC3CzN,UAAW,uCACVgyF,EAAUvvF,KAAKxB,MAAMw8E,UAAwBngE,IAAM7P,cAAc,MAAO,CACzEzN,UAAW,8BACXud,IAAK,SAAa7a,GAChB0a,EAAO+yE,WAAaztF,GAEtBG,MAAO4vF,EACPC,SAAUjwF,KAAKwtF,cACD3yE,IAAM7P,cAAc,QAAS,CAC3C8P,IAAK,SAAa7a,GAChB0a,EAAOo0E,YAAc9uF,GAEvBG,MAAO,CACLgC,IAAK,KAEP7E,UAAW,qCACVgyF,EAAUvvF,KAAKxB,MAAM6D,OAAqBwY,IAAM7P,cAAc,MAAO,CACtEzN,UAAW,gCACXud,IAAK,SAAa7a,GAChB0a,EAAOw1E,aAAelwF,IAEV4a,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oCACXud,IAAK,SAAa7a,GAChB0a,EAAOmzE,gBAAkB7tF,IAEb4a,IAAM7P,cAAc,QAAS,CAC3CzN,UAAW,uCACVgyF,EAAUvvF,KAAKxB,MAAM08E,eAIrB6pH,EA/LkC,CAgMzC/pL,aAYF,SAASvL,EAA2BxT,EAAGiD,GAAkB,IAAIC,EAAuB,qBAAXhE,QAA0Bc,EAAEd,OAAOC,WAAaa,EAAE,cAAe,IAAKkD,EAAI,CAAE,GAAIrE,MAAME,QAAQiB,KAAOkD,EAE9K,SAAqClD,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GAAS,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAAc,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOrB,MAAM4B,KAAKT,GAAI,GAAU,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAOuT,EAAkBzT,EAAGC,GAFnOyT,CAA4B1T,KAAOiD,GAAkBjD,GAAyB,kBAAbA,EAAEtB,OAAqB,CAAMwE,IAAIlD,EAAIkD,GAAI,IAAIvE,EAAI,EAAO0E,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGnD,EAAG,WAAe,OAAIvB,GAAKqB,EAAEtB,OAAe,CAAEiB,MAAM,GAAe,CAAEA,MAAM,EAAOE,MAAOG,EAAErB,OAAW4E,EAAG,SAAWlE,GAAM,MAAMA,GAAOmE,EAAGH,GAAO,MAAM,IAAIzC,UAAU,yIAA4I,IAA6Cd,EAAzC2D,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEJ,EAAG,WAAeJ,EAAKA,EAAGzD,KAAKO,IAAOE,EAAG,WAAe,IAAIyD,EAAOT,EAAGxD,OAAsC,OAA9B+D,EAAmBE,EAAKhE,KAAagE,GAASJ,EAAG,SAAWK,GAAOF,GAAS,EAAM5D,EAAM8D,GAAQJ,EAAG,WAAe,IAAWC,GAAiC,MAAbP,EAAGW,QAAgBX,EAAGW,SAArD,QAA2E,GAAIH,EAAQ,MAAM5D,KAIz9B,SAAS2T,EAAkBjV,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAAQ,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAOC,EAAKD,GAAKH,EAAIG,GAAM,OAAOC,EAEhL,SAASgqB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IApB5Z0B,EAAgBu0L,EAAyB,eAAgB,CACvD/pH,OAAQ,KACR34E,KAAM,KACN64E,OAAQ,KACRoU,QAAS,KACTlT,OAAQ,KACRoT,YAAa,KACbU,WAAY,OAgBd,IAAI80G,EAAyB,SAAUprL,GACrCpB,EAAUwsL,EAAWprL,GAErB,IAAIC,EAASkL,EAAaigL,GAE1B,SAASA,EAAUxmM,GACjB,IAAI+G,EAEJpH,EAAgB6B,KAAMglM,GAGtB,IAAI5nL,EAAQ,GAoCZ,OArCA7X,EAAQsU,EAAOne,KAAKsE,KAAMxB,IAGfA,MAAMyxJ,WACf1qJ,EAAM6X,MAAQ,CACZ4gL,aAAcz4L,EAAM/G,MAAMw/L,eAIzBz4L,EAAM/G,MAAMynG,SACf7oF,EAAMzK,MAAQnU,EAAMmU,MACpByK,EAAMwqD,KAAOppE,EAAMopE,MAGhBriE,EAAM/G,MAAM0jG,SACf9kF,EAAM09D,UAAYt8E,EAAMs8E,UACxB19D,EAAMgmF,UAAY5kG,EAAM4kG,UACxBhmF,EAAM0lF,cAAgBtkG,EAAMskG,eAGzBv9F,EAAM/G,MAAM4jG,WACfhlF,EAAM8lF,QAAU1kG,EAAM0kG,SAGpB9mG,OAAOqS,KAAK2O,GAAOziB,SACrB4K,EAAM6X,MAAQA,GAGhB7X,EAAM0qJ,SAAW1qJ,EAAM0qJ,SAASl2I,KAAK7B,EAAuB3S,IAC5DA,EAAM6gG,aAAe7gG,EAAM6gG,aAAarsF,KAAK7B,EAAuB3S,IACpEA,EAAM28F,OAAS38F,EAAM28F,OAAOnoF,KAAK7B,EAAuB3S,IACxDA,EAAM68F,SAAW78F,EAAM68F,SAASroF,KAAK7B,EAAuB3S,IAC5DA,EAAMk9F,oBAAsBl9F,EAAMk9F,oBAAoB1oF,KAAK7B,EAAuB3S,IAClFA,EAAM0/F,kBAAoB1/F,EAAM0/F,kBAAkBlrF,KAAK7B,EAAuB3S,IAC9EA,EAAM2/F,iBAAmB3/F,EAAM2/F,iBAAiBnrF,KAAK7B,EAAuB3S,IAC5EA,EAAM4/F,kBAAoB5/F,EAAM4/F,kBAAkBprF,KAAK7B,EAAuB3S,IAC9EA,EAAM6/F,aAAe7/F,EAAM6/F,aAAarrF,KAAK7B,EAAuB3S,IAC7DA,EA6lCT,OA1lCAzG,EAAakmM,EAAW,CAAC,CACvBlnM,IAAK,WACLhC,MAAO,SAAkBuY,GACnBrU,KAAKxB,MAAMyxJ,SACbjwJ,KAAKxB,MAAMyxJ,SAAS57I,GAEpBrU,KAAKwd,SAAS,CACZwgL,aAAc3pL,EAAMvY,UAIzB,CACDgC,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMynG,OAAQjmG,KAAKxB,MAAMynG,OAAO5xF,GAAYrU,KAAKwd,SAAS,CACjE7K,MAAO0B,EAAM1B,MACbi1D,KAAMvzD,EAAMuzD,SAGf,CACD9pE,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAEIyuF,EACA+G,EAHA/uB,EAAYzmE,EAAMymE,UAClBsoB,EAAYpjG,KAAKxB,MAAMsrG,iBAO3B,GAJA9pG,KAAK+pG,eAAiB11F,EAAM8mE,SAC5Bn7E,KAAKgqG,mBAAqB31F,EAAMgnE,aAChCr7E,KAAKiqG,YAAc51F,EAAMymE,UAEG,aAAxB96E,KAAKxB,MAAMwmG,SAAyB,CACtC,IAAIzvF,EAAUlB,EAAMsB,cAAcJ,SAAWlB,EAAMsB,cAAcN,QAGjE,IAFAytF,EAAgB9iG,KAAK8mG,qBAEAhE,aAAyBhoG,MAAO,CACnD,IAAIovG,EAAWpH,EAAch3F,MAAK,SAAUo+F,GAC1C,OAAOA,EAASp8F,QAAUgtE,KAE5BsoB,EAAY8G,EAAWlqG,KAAKmqG,uBAAuBD,EAAS5gF,OAAS85E,EAGvE,IAAIgH,EAAc,CAChBt8F,MAAOgtE,EACPxxD,MAAO85E,GAGLA,GACGN,GAAkBvtF,IACrButF,EAAgB,IAGlB9iG,KAAKsqG,YAAYF,EAAatH,IACrB9iG,KAAKxB,MAAM+rG,eAAiBzH,GACrC9iG,KAAKwqG,eAAeJ,EAAatH,GAGnC+G,EAAY,CACV/G,cAAeA,QAGjBM,EAAYpjG,KAAK4mG,iBAAmB9rB,EAAY96E,KAAKmqG,uBAAuBnqG,KAAK6mG,gBAAkBzD,EAE/FpjG,KAAKxB,MAAM+rG,gBACbzvB,EAAYsoB,EAAYtoB,EAAY,MAGtC+uB,EAAY,CACV/uB,UAAWA,EACXsoB,UAAWA,GAIXpjG,KAAKxB,MAAM0jG,OACbliG,KAAKxB,MAAM0jG,OAAO2H,IAElBA,EAAUl3F,MAAQ,EAClB3S,KAAKwd,SAASqsF,MAGjB,CACD/rG,IAAK,yBACLhC,MAAO,SAAgC2uG,GACrC,OAAOzqG,KAAKxB,MAAM+rG,cAAgBvqG,KAAKxB,MAAMsrG,mBAAqBW,GAA+B,EAAhBA,EAAoB,GAAoB,EAAhBA,IAE1G,CACD3sG,IAAK,cACLhC,MAAO,SAAqB8qB,EAAMk8E,GAGhC,IAFA,IAAIzmC,GAAS,EAEJzhE,EAAI,EAAGA,EAAIkoG,EAAcnoG,OAAQC,IACxC,GAAIkoG,EAAcloG,GAAGkT,QAAU8Y,EAAK9Y,MAAO,CACzCuuD,EAAQzhE,EACR,MAIAyhE,GAAS,EAAGymC,EAAczmC,GAASz1C,EAAUk8E,EAAcjnG,KAAK+qB,KAErE,CACD9oB,IAAK,iBACLhC,MAAO,SAAwB8qB,EAAMk8E,GAGnC,IAFA,IAAIzmC,GAAS,EAEJzhE,EAAI,EAAGA,EAAIkoG,EAAcnoG,OAAQC,IACxC,GAAIkoG,EAAcloG,GAAGkT,QAAU8Y,EAAK9Y,MAAO,CACzCuuD,EAAQzhE,EACR,MAIAyhE,GAAS,GACXymC,EAAc7zF,OAAOotD,EAAO,GAG9BymC,EAAgBA,EAAcnoG,OAAS,EAAImoG,EAAgB,OAE5D,CACDhlG,IAAK,aACLhC,MAAO,SAAoB6S,GACzB,OAAO3O,KAAKilM,UAAUt2L,KAEvB,CACD7Q,IAAK,YACLhC,MAAO,SAAmB6S,GACxB,IAAIgM,EAAS3a,KAETlE,EAAQixF,EAAmBp+E,GAE/B,GAAI3O,KAAK+pG,gBAA0C,WAAxB/pG,KAAK+pG,gBAA+B/pG,KAAKgqG,mBAClEluG,EAAQkE,KAAKgqG,mBAAmB,CAC9Bl8F,MAAO9N,KAAK4mG,eACZt9E,MAAOtpB,KAAK6mG,qBAET,CACL/qG,EAAMsjC,MAAK,SAAU8lK,EAAOC,GAC1B,IAAIrqH,EAAYngE,EAAOisF,eAEnB8D,EAAS/8F,IAAYI,iBAAiBm3L,EAAMv2L,KAAMmsE,GAClD6vB,EAASh9F,IAAYI,iBAAiBo3L,EAAMx2L,KAAMmsE,GAClDhsE,EAAS,KAIb,OAHsCA,EAAxB,MAAV47F,GAA4B,MAAVC,GAA0B,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAA6B,kBAAXD,GAAyC,kBAAXC,EAA8BD,EAAOthF,cAAcuhF,OAAQllG,EAAW,CAChRmlG,SAAS,IACMF,EAASC,GAAU,EAAID,EAASC,EAAS,EAAI,EACvDhwF,EAAOksF,eAAiB/3F,KAGjC,IAAK,IAAIlU,EAAI,EAAGA,EAAIkB,EAAMnB,OAAQC,IAC5BkB,EAAMlB,GAAG4H,UAAY1G,EAAMlB,GAAG4H,SAAS7H,SACzCmB,EAAMlB,GAAG4H,SAAWxC,KAAKilM,UAAUnpM,EAAMlB,GAAG4H,WAKlD,OAAO1G,IAER,CACDgC,IAAK,eACLhC,MAAO,SAAsB6S,GAC3B,IAAIm0F,EAAgB9iG,KAAK8mG,mBACzB,OAAIhE,EAAsB9iG,KAAKolM,kBAAkBz2L,EAAMm0F,GAA2Bn0F,IAEnF,CACD7Q,IAAK,oBACLhC,MAAO,SAA2B6S,EAAMm0F,GACtC,IAAI5hF,EAASlhB,KAETlE,EAAQixF,EAAmBp+E,GAE/B7S,EAAMsjC,MAAK,SAAU8lK,EAAOC,GAC1B,OAAOjkL,EAAO2pF,eAAeq6F,EAAOC,EAAOriG,EAAe,MAG5D,IAAK,IAAIloG,EAAI,EAAGA,EAAIkB,EAAMnB,OAAQC,IAC5BkB,EAAMlB,GAAG4H,UAAY1G,EAAMlB,GAAG4H,SAAS7H,SACzCmB,EAAMlB,GAAG4H,SAAWxC,KAAKolM,kBAAkBtpM,EAAMlB,GAAG4H,SAAUsgG,IAIlE,OAAOhnG,IAER,CACDgC,IAAK,iBACLhC,MAAO,SAAwBopM,EAAOC,EAAOriG,EAAezmC,GAC1D,IAAIquC,EAAS/8F,IAAYI,iBAAiBm3L,EAAMv2L,KAAMm0F,EAAczmC,GAAOvuD,OACvE68F,EAASh9F,IAAYI,iBAAiBo3L,EAAMx2L,KAAMm0F,EAAczmC,GAAOvuD,OACvEgB,EAAS,KACb,GAAc,MAAV47F,GAA4B,MAAVC,EAAgB77F,GAAU,OAAO,GAAc,MAAV47F,GAA4B,MAAVC,EAAgB77F,EAAS,OAAO,GAAc,MAAV47F,GAA4B,MAAVC,EAAgB77F,EAAS,MAAO,CACjK,GAAI47F,IAAWC,EACb,OAAO7H,EAAcnoG,OAAS,EAAI0hE,EAAQr8D,KAAK6qG,eAAeq6F,EAAOC,EAAOriG,EAAezmC,EAAQ,GAAK,EAExG,IAAuB,kBAAXquC,GAAuBA,aAAkBr6F,UAA8B,kBAAXs6F,GAAuBA,aAAkBt6F,QAAS,OAAOyyF,EAAczmC,GAAO/yC,MAAQohF,EAAOthF,cAAcuhF,OAAQllG,EAAW,CACpMmlG,SAAS,IACH97F,EAAS47F,EAASC,GAAU,EAAI,EAG5C,OAAO7H,EAAczmC,GAAO/yC,MAAQxa,IAErC,CACDhR,IAAK,SACLhC,MAAO,SAAgBA,EAAOgS,EAAOg9F,GACnC9qG,KAAKoiG,SAAS,CACZtmG,MAAOA,EACPgS,MAAOA,EACPw0F,UAAWwI,MAGd,CACDhtG,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,IAAI02F,EAAiB/qG,KAAKgnG,aACtBgE,EAAaD,EAAiBjmF,EAAc,GAAIimF,GAAkB,GACjE/qG,KAAKirG,cAAc52F,EAAMvY,OAGnBkvG,EAAW32F,EAAMvG,eAAek9F,EAAW32F,EAAMvG,OAHtBk9F,EAAW32F,EAAMvG,OAAS,CAC9DhS,MAAOuY,EAAMvY,MACbwmG,UAAWjuF,EAAMiuF,WAGftiG,KAAKxB,MAAM4jG,SACbpiG,KAAKxB,MAAM4jG,SAAS,CAClBc,QAAS8H,IAGXhrG,KAAKwd,SAAS,CACZ7K,MAAO,EACPuwF,QAAS8H,MAId,CACDltG,IAAK,YACLhC,MAAO,WACL,IAAIonG,EAAUljG,KAAKgnG,aACnB,OAAO9D,GAAW9mG,OAAOqS,KAAKy0F,GAASvoG,OAAS,IAEjD,CACDmD,IAAK,gBACLhC,MAAO,SAAuBkC,GAC5B,OAAe,OAAXA,QAA8ByH,IAAXzH,IACC,kBAAXA,GAAgD,IAAzBA,EAAOsS,OAAO3V,QAAgBqD,aAAkBlD,OAA2B,IAAlBkD,EAAOrD,UAKrG,CACDmD,IAAK,sBACLhC,MAAO,SAA6BuY,GAClC,IAAIi3F,EAAgBvrG,IAAWsa,UAAUra,KAAK8J,WAAWxH,KACzDtC,KAAKurG,aAAel3F,EAAMquF,SAC1B1iG,KAAKwrG,kBAAoBn3F,EAAMujF,OAC/B53F,KAAKyrG,gBAAiB,EACtBzrG,KAAK0rG,mBAAqBr3F,EAAMsB,cAAc2E,MAAQgxF,EAAgBtrG,KAAK8J,UAAU7I,WACrFjB,KAAK2rG,2BAEN,CACD7tG,IAAK,iBACLhC,MAAO,SAAwBuY,GAC7B,IAAIi3F,EAAgBvrG,IAAWsa,UAAUra,KAAK8J,WAAWxH,KACzDvC,IAAWya,SAASxa,KAAK8J,UAAW,uBACpC9J,KAAK4rG,cAAcxrG,MAAMkB,OAAStB,KAAK8J,UAAUvI,aAAe,KAChEvB,KAAK4rG,cAAcxrG,MAAMgC,IAAM,MAC/BpC,KAAK4rG,cAAcxrG,MAAMkC,KAAO+R,EAAMiG,MAAQgxF,EAAgBtrG,KAAK8J,UAAU7I,WAAa,KAC1FjB,KAAK4rG,cAAcxrG,MAAM8H,QAAU,UAEpC,CACDpK,IAAK,oBACLhC,MAAO,SAA2BuY,GAChC,IAAI82B,EAAQnrC,KAAK4rG,cAAc1+F,WAAalN,KAAK0rG,mBAC7CG,EAAc7rG,KAAKurG,aAAaprG,YAChC2rG,EAAiBD,EAAc1gE,EAC/BjnC,EAAWlE,KAAKurG,aAAanrG,MAAM8D,UAAY,GAEnD,GAAI2nG,EAAc1gE,EAAQ3zB,SAAStT,EAAU,IAAK,CAChD,GAAoC,QAAhClE,KAAKxB,MAAM+pG,iBAA4B,CACzC,IAAIwD,EAAa/rG,KAAKurG,aAAa3X,mBAC/BoY,EAAkBD,EAAW5rG,YAAcgrC,EAE/C,GAAI2gE,EAAiB,IAAME,EAAkB,GAC3C,GAAIhsG,KAAKxB,MAAMgqG,WAAY,CACzB,IAAIyD,EAAiBjsG,KAAKksG,yBAAyBlsG,KAAKurG,cACpDY,EAAsBpsG,IAAWiI,WAAWikG,EAAgB,2CAC5DG,EAAwBrsG,IAAWiI,WAAWikG,EAAgB,6CAC9DI,EAAwBtsG,IAAWiI,WAAWikG,EAAgB,6CAC9DK,EAAoBvsG,IAAWs8D,MAAMr8D,KAAKurG,cAC9CvrG,KAAKusG,eAAeH,EAAuBE,EAAmBR,EAAgBE,GAC9EhsG,KAAKusG,eAAeJ,EAAqBG,EAAmBR,EAAgBE,GAC5EhsG,KAAKusG,eAAeF,EAAuBC,EAAmBR,EAAgBE,QAE9EhsG,KAAKurG,aAAanrG,MAAMF,MAAQ4rG,EAAiB,KAE7CC,IACFA,EAAW3rG,MAAMF,MAAQ8rG,EAAkB,WAI5C,GAAoC,WAAhChsG,KAAKxB,MAAM+pG,iBACpB,GAAIvoG,KAAKxB,MAAMgqG,WAAY,CACzB,IAAI68F,EAAkBrlM,KAAKksG,yBAAyBlsG,KAAKurG,cAErD+5F,EAAuBvlM,IAAWiI,WAAWq9L,EAAiB,2CAE9DE,EAAyBxlM,IAAWiI,WAAWq9L,EAAiB,6CAEhEG,EAAyBzlM,IAAWiI,WAAWq9L,EAAiB,6CAEpEC,EAAqBllM,MAAMF,MAAQolM,EAAqBnlM,YAAcgrC,EAAQ,KAC9Eo6J,EAAuBnlM,MAAMF,MAAQqlM,EAAuBplM,YAAcgrC,EAAQ,KAE9Eq6J,IACFA,EAAuBplM,MAAMF,MAAQqlM,EAAuBplM,YAAcgrC,EAAQ,MAGpF,IAAIs6J,EAAqB1lM,IAAWs8D,MAAMr8D,KAAKurG,cAE/CvrG,KAAKusG,eAAeg5F,EAAwBE,EAAoB35F,EAAgB,MAChF9rG,KAAKusG,eAAe+4F,EAAsBG,EAAoB35F,EAAgB,MAC9E9rG,KAAKusG,eAAei5F,EAAwBC,EAAoB35F,EAAgB,WAEhF9rG,KAAKyoG,MAAMroG,MAAMF,MAAQF,KAAKyoG,MAAMtoG,YAAcgrC,EAAQ,KAC1DnrC,KAAKurG,aAAanrG,MAAMF,MAAQ4rG,EAAiB,KAIjD9rG,KAAKxB,MAAMguG,mBACbxsG,KAAKxB,MAAMguG,kBAAkB,CAC3BjqG,QAASvC,KAAKurG,aACd3T,OAAQ53F,KAAKwrG,kBACbrgE,MAAOA,IAKbnrC,KAAK4rG,cAAcxrG,MAAM8H,QAAU,OACnClI,KAAKurG,aAAe,KACpBvrG,KAAKwrG,kBAAoB,KACzBzrG,IAAWma,YAAYla,KAAK8J,UAAW,uBACvC9J,KAAK0sG,6BAEN,CACD5uG,IAAK,2BACLhC,MAAO,SAAkC87F,GACvC,GAAIA,EAAQ,CAGV,IAFA,IAAIjwF,EAASiwF,EAAO39E,cAEbtS,IAAW5H,IAAW6uF,SAASjnF,EAAQ,gCAC5CA,EAASA,EAAOsS,cAGlB,OAAOtS,EAEP,OAAO,OAGV,CACD7J,IAAK,iBACLhC,MAAO,SAAwB2sG,EAAO6D,EAAmBR,EAAgBE,GACvE,GAAIvD,EAAO,CACT,IAAIlZ,EAA0C,aAA/BkZ,EAAMjmG,SAAS,GAAGqH,SAA0B4+F,EAAMjmG,SAAS,GAAK,KAE/E,IAAI+sF,EASF,MAAM,IAAI7lF,MAAM,qEARhB,IAAIo+D,EAAMynB,EAAS/sF,SAAS8pG,GACxBY,EAAUplC,EAAI8rB,mBAClB9rB,EAAI1nE,MAAMF,MAAQ4rG,EAAiB,KAE/BoB,GAAWlB,IACbkB,EAAQ9sG,MAAMF,MAAQ8rG,EAAkB,SAO/C,CACDluG,IAAK,yBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEbA,KAAKmtG,6BAA+BzsG,SAAS8M,iBAAiB,aAAa,SAAU6G,GAC/EsN,EAAO8pF,gBACT9pF,EAAOyrF,eAAe/4F,MAG1BrU,KAAKqtG,gCAAkC3sG,SAAS8M,iBAAiB,WAAW,SAAU6G,GAChFsN,EAAO8pF,iBACT9pF,EAAO8pF,gBAAiB,EAExB9pF,EAAO6qF,kBAAkBn4F,SAI9B,CACDvW,IAAK,2BACLhC,MAAO,WACL4E,SAAS+M,oBAAoB,WAAYzN,KAAKmtG,8BAC9CzsG,SAAS+M,oBAAoB,WAAYzN,KAAKqtG,mCAE/C,CACDvvG,IAAK,oBACLhC,MAAO,SAA2B0D,GAChC,IAAI6U,EAAQ7U,EAAEmW,cACViiF,EAASp4F,EAAEo4F,OAEX53F,KAAKyrG,eACPp3F,EAAMY,kBAIRjV,KAAKstG,UAAYvtG,IAAWwtG,2BAA2BvtG,KAAKwtG,oBAC5DxtG,KAAKytG,WAAa1tG,IAAW2tG,4BAA4B1tG,KAAKwtG,oBAC9DxtG,KAAK2tG,gBAAkB3tG,KAAK4tG,iBAAiBv5F,EAAMoG,eACnDza,KAAK6tG,cAAgBjW,EACrBvjF,EAAMiqF,aAAaC,QAAQ,OAAQ,QAEpC,CACDzgG,IAAK,mBACLhC,MAAO,SAA0B0D,GAC/B,IAAI6U,EAAQ7U,EAAEmW,cACVm4F,EAAa9tG,KAAK4tG,iBAAiBv5F,EAAMoG,eAE7C,GAAIza,KAAKxB,MAAMqkG,oBAAsB7iG,KAAK2tG,iBAAmBG,EAAY,CACvEz5F,EAAMY,iBACN,IAAI84F,EAAkBhuG,IAAWsa,UAAUra,KAAK8J,WAC5CkkG,EAAmBjuG,IAAWsa,UAAUyzF,GAE5C,GAAI9tG,KAAK2tG,kBAAoBG,EAAY,CACvC,IAAIG,EAAaD,EAAiB1rG,KAAOyrG,EAAgBzrG,KAErD4rG,EAAeF,EAAiB1rG,KAAOwrG,EAAW3tG,YAAc,EACpEH,KAAKwtG,mBAAmBptG,MAAMgC,IAAM4rG,EAAiB5rG,IAAM2rG,EAAgB3rG,KAAOpC,KAAKytG,WAAa,GAAK,KACzGztG,KAAKmuG,qBAAqB/tG,MAAMgC,IAAM4rG,EAAiB5rG,IAAM2rG,EAAgB3rG,IAAM0rG,EAAWvsG,aAAe,KAEzG8S,EAAMiG,MAAQ4zF,GAChBluG,KAAKwtG,mBAAmBptG,MAAMkC,KAAO2rG,EAAaH,EAAW3tG,YAAciF,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KAC3GttG,KAAKmuG,qBAAqB/tG,MAAMkC,KAAO2rG,EAAaH,EAAW3tG,YAAciF,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KAC7GttG,KAAKouG,aAAe,IAEpBpuG,KAAKwtG,mBAAmBptG,MAAMkC,KAAO2rG,EAAa7oG,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KAClFttG,KAAKmuG,qBAAqB/tG,MAAMkC,KAAO2rG,EAAa7oG,KAAK8hE,KAAKlnE,KAAKstG,UAAY,GAAK,KACpFttG,KAAKouG,cAAgB,GAGvBpuG,KAAKwtG,mBAAmBptG,MAAM8H,QAAU,QACxClI,KAAKmuG,qBAAqB/tG,MAAM8H,QAAU,YAI/C,CACDpK,IAAK,oBACLhC,MAAO,SAA2B0D,GAChC,IAAI6U,EAAQ7U,EAAEmW,cAEV3V,KAAKxB,MAAMqkG,oBAAsB7iG,KAAK2tG,kBACxCt5F,EAAMY,iBACNjV,KAAKwtG,mBAAmBptG,MAAM8H,QAAU,OACxClI,KAAKmuG,qBAAqB/tG,MAAM8H,QAAU,UAG7C,CACDpK,IAAK,eACLhC,MAAO,SAAsB0D,GAC3B,IAAI8iB,EAAStiB,KAETqU,EAAQ7U,EAAEmW,cACViiF,EAASp4F,EAAEo4F,OAGf,GAFAvjF,EAAMY,iBAEFjV,KAAK2tG,gBAAiB,CACxB,IAAI5O,EAAYh/F,IAAWs8D,MAAMr8D,KAAK2tG,iBAClC/O,EAAY7+F,IAAWs8D,MAAMr8D,KAAK4tG,iBAAiBv5F,EAAMoG,gBACzD4zF,EAAYtP,IAAcH,EAM9B,GAJIyP,IAAczP,EAAYG,IAAc,IAA4B,IAAvB/+F,KAAKouG,cAAuBrP,EAAYH,IAAc,GAA2B,IAAtB5+F,KAAKouG,gBAC/GC,GAAY,GAGVA,EAAW,CACb,IAAI/e,EAAUtvF,KAAKod,MAAM8pF,YAAclnG,KAAKsuG,aAAezzF,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAEzF+rG,EAAe,SAAsBC,EAAMC,GAC7C,OAAOD,EAAKhwG,MAAMq8E,WAAa4zB,EAAKjwG,MAAMq8E,UAAYltE,IAAY0B,OAAOm/F,EAAMC,EAAM,mBAAqB9gG,IAAY0B,OAAOm/F,EAAMC,EAAM,gBAGvIC,EAAepf,EAAQlgF,WAAU,SAAUu/F,GAC7C,OAAOJ,EAAaI,EAAOrsF,EAAOurF,kBAEhCe,EAAetf,EAAQlgF,WAAU,SAAUu/F,GAC7C,OAAOJ,EAAaI,EAAO/W,MAGzBgX,EAAeF,GAAsC,IAAtB1uG,KAAKouG,cACtCQ,IAGEA,EAAeF,IAAuC,IAAvB1uG,KAAKouG,cACtCQ,IAGFjhG,IAAYkxF,aAAavP,EAASof,EAAcE,GAChD,IAGIxnG,EAHA8/F,EAAc,GAEdx/F,EAAY+H,EAA2B6/E,GAG3C,IACE,IAAK5nF,EAAUnI,MAAO6H,EAAQM,EAAUvL,KAAKP,MAAO,CAClD,IAAIizG,EAAUznG,EAAMtL,MACpBorG,EAAYrrG,KAAKgzG,EAAQrwG,MAAMq8E,WAAag0B,EAAQrwG,MAAMsP,QAE5D,MAAO/R,GACP2L,EAAUlI,EAAEzD,GANd,QAQE2L,EAAUjI,IAGZO,KAAKwd,SAAS,CACZ0pF,YAAaA,IAGXlnG,KAAKxB,MAAMswG,cACb9uG,KAAKxB,MAAMswG,aAAa,CACtB/P,UAAW2P,EACX9P,UAAWgQ,EACXtf,QAASA,IAKftvF,KAAKwtG,mBAAmBptG,MAAM8H,QAAU,OACxClI,KAAKmuG,qBAAqB/tG,MAAM8H,QAAU,OAC1ClI,KAAK2tG,gBAAgB/W,WAAY,EACjC52F,KAAK2tG,gBAAkB,KACvB3tG,KAAKouG,aAAe,QAGvB,CACDtwG,IAAK,mBACLhC,MAAO,SAA0ByG,GAC/B,GAAyB,OAArBA,EAAQsH,SACV,OAAOtH,EAIP,IAFA,IAAIoF,EAASpF,EAAQ0X,cAEM,OAApBtS,EAAOkC,WACZlC,EAASA,EAAOsS,iBAIlB,OAAOtS,IAGV,CACD7J,IAAK,kBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMyxJ,SAAWjwJ,KAAKxB,MAAMw/L,aAAeh+L,KAAKod,MAAM4gL,eAEnE,CACDlgM,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMmU,MAAQ3S,KAAKod,MAAMzK,QAE1D,CACD7U,IAAK,UACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMynG,OAASjmG,KAAKxB,MAAMopE,KAAO5nE,KAAKod,MAAMwqD,OAEzD,CACD9pE,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0jG,OAASliG,KAAKxB,MAAMs8E,UAAY96E,KAAKod,MAAM09D,YAE9D,CACDh9E,IAAK,eACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0jG,OAASliG,KAAKxB,MAAM4kG,UAAYpjG,KAAKod,MAAMgmF,YAE9D,CACDtlG,IAAK,mBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM0jG,OAASliG,KAAKxB,MAAMskG,cAAgB9iG,KAAKod,MAAM0lF,gBAElE,CACDhlG,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM4jG,SAAWpiG,KAAKxB,MAAM0kG,QAAUljG,KAAKod,MAAM8lF,UAE9D,CACDplG,IAAK,kBACLhC,MAAO,SAAyBwzF,EAASxxF,GACvC,GAAIwxF,GAAWA,EAAQ30F,OACrB,IAAK,IAAIC,EAAI,EAAGA,EAAI00F,EAAQ30F,OAAQC,IAAK,CACvC,IAAI+zG,EAAQrf,EAAQ10F,GAEpB,GAAI+zG,EAAMnwG,MAAMq8E,YAAc/8E,GAAO6wG,EAAMnwG,MAAMsP,QAAUhQ,EACzD,OAAO6wG,EAKb,OAAO,OAER,CACD7wG,IAAK,aACLhC,MAAO,WACL,IAAIwzF,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAEhD,GAAI8sF,GAAWA,EAAQ30F,OAAQ,CAC7B,GAAIqF,KAAKxB,MAAMqkG,oBAAsB7iG,KAAKod,MAAM8pF,YAAa,CAC3D,IAGIp/F,EAHA8pG,EAAiB,GAEjB7pG,EAAa0H,EAA2BzP,KAAKod,MAAM8pF,aAGvD,IACE,IAAKn/F,EAAWxI,MAAOuI,EAASC,EAAW5L,KAAKP,MAAO,CACrD,IAAIi/E,EAAY/yE,EAAOhM,MACnB87F,EAAS53F,KAAK8xG,gBAAgBxiB,EAASzU,GAEvC+c,GACFga,EAAe/1G,KAAK+7F,IAGxB,MAAO77F,GACPgM,EAAWvI,EAAEzD,GAVf,QAYEgM,EAAWtI,IAGb,MAAO,GAAG1B,OAAO6zG,EAAgB7kB,EAAmBuC,EAAQtxF,QAAO,SAAU+L,GAC3E,OAAO6nG,EAAelmG,QAAQ3B,GAAQ,OAGxC,OAAOulF,EAIX,OAAO,OAER,CACDxxF,IAAK,kBACLhC,MAAO,SAAyB6S,GAC9B,OAAO3O,KAAKxB,MAAMu8F,KAAO/6F,KAAKxB,MAAM0vF,aAAev/E,EAAOA,EAAKhU,OAAS,IAEzE,CACDmD,IAAK,wBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,WAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,0BACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM69E,eAA8C,aAA7Br8E,KAAKxB,MAAM69E,gBAE/C,CACDv+E,IAAK,qBACLhC,MAAO,WACL,OAAOkE,KAAKm/L,yBAA2Bn/L,KAAKo/L,4BAE7C,CACDthM,IAAK,mBACLhC,MAAO,SAA0BwzF,GAC/B,IAGI3jF,EAHAslG,EAAgB,KAEhBplG,EAAa4D,EAA2B6/E,GAG5C,IACE,IAAKzjF,EAAWtM,MAAOoM,EAASE,EAAW1P,KAAKP,MAAO,CACrD,IAAIksE,EAAMn8D,EAAO7P,MAEbgsE,EAAItpE,MAAM49E,SACZ60B,EAAgBA,GAAiB,IACnBp1G,KAAKisE,IAGvB,MAAO/rE,GACP8P,EAAWrM,EAAEzD,GAVf,QAYE8P,EAAWpM,IAGb,OAAOwxG,IAER,CACDnzG,IAAK,uBACLhC,MAAO,SAA8BwzF,GACnC,IAGI6hB,EAHAD,EAAoB,KAEpBE,EAAa3hG,EAA2B6/E,GAG5C,IACE,IAAK8hB,EAAW7xG,MAAO4xG,EAASC,EAAWj1G,KAAKP,MAAO,CACrD,IAAIksE,EAAMqpC,EAAOr1G,MAEZgsE,EAAItpE,MAAM49E,SACb80B,EAAoBA,GAAqB,IACvBr1G,KAAKisE,IAG3B,MAAO/rE,GACPq1G,EAAW5xG,EAAEzD,GAVf,QAYEq1G,EAAW3xG,IAGb,OAAOyxG,IAER,CACDpzG,IAAK,cACLhC,MAAO,SAAqBA,GAC1B,IAMI61G,EANAkvF,EAAgB,GAChB39F,EAAUljG,KAAKgnG,aACf1X,EAAUz0E,IAAMs8E,SAASC,QAAQp3F,KAAKxB,MAAMgE,UAC5C6/L,EAAyC,WAA1BriM,KAAKxB,MAAM8jM,WAE1BzwF,EAAapiG,EAA2B3T,GAG5C,IACE,IAAK+1G,EAAWtyG,MAAOoyG,EAASE,EAAW11G,KAAKP,MAAO,CAQrD,IAPA,IAAI2L,EAAOoqG,EAAO71G,MAEdymM,EAAWz9K,EAAc,GAAIvd,GAE7B+oG,GAAa,EACbC,GAAc,EAETt8F,EAAI,EAAGA,EAAIq7E,EAAQ30F,OAAQsZ,IAAK,CACvC,IAAI6zD,EAAMwnB,EAAQr7E,GACdu8F,EAAatN,EAAUA,EAAQp7B,EAAItpE,MAAMsP,OAAS,KAClDitE,EAAcjT,EAAItpE,MAAMsP,MAGxB00L,OAAoB,EAGxB,GAAIhyF,EAAY,CACd,IAAI1gG,EAAkB0gG,EAAWlO,WAAax6B,EAAItpE,MAAMsR,gBAyBxD,GAZA0yL,EAAoB,CAClBznH,YAAaA,EACblrE,YAdY2gG,EAAW10G,MAevB40G,iBAdqC,WAApB5gG,EAA+Bg4D,EAAItpE,MAAMk9E,eAAiB9rE,IAAYE,GAevFuyL,aAAcA,EACd/wL,QAfQ,CACRu/E,QAAStpF,EACT27F,QAASA,EACT1kG,MAAOwB,KAAKxB,MACZo5F,OAAQ,CACN4Y,WAAYA,EACZz1B,YAAaA,EACbv8E,MAAOspE,EAAItpE,WAWX6jM,GAAkBriM,KAAKyiM,kBAAkBF,EAAUC,IAAsBxiM,KAAK0iM,gBAAgBH,EAAUC,MAAwBH,GAAkBriM,KAAK0iM,gBAAgBH,EAAUC,IAAsBxiM,KAAKyiM,kBAAkBF,EAAUC,MAC1OlyF,GAAa,IAGVA,EACH,MAKJ,GAAItwG,KAAKxB,MAAM0sG,eAAiBqF,EAAa,CAC3C,IAAIm1F,EAAoB5gL,EAAc,GAAIy9K,GAI1CC,EAAoB,CAClBznH,YAAaA,EACblrE,YAJY7P,KAAKxB,MAAM0sG,aAKvBwF,iBAJiB9gG,IAAW,SAK5ByyL,aAAcA,IAGZA,IAAiBriM,KAAKyiM,kBAAkBiD,EAAmBlD,IAAsBxiM,KAAK0iM,gBAAgBgD,EAAmBlD,MAAwBH,IAAiBriM,KAAK0iM,gBAAgBgD,EAAmBlD,IAAsBxiM,KAAKyiM,kBAAkBiD,EAAmBlD,OAC5QjyF,GAAc,EACdgyF,EAAWmD,IAKjB,IAAIv+K,EAAUmpF,EAEVtwG,KAAKxB,MAAM0sG,eACb/jF,EAAUmpF,GAAcC,GAGtBppF,GACF05K,EAAchlM,KAAK0mM,IAGvB,MAAOxmM,GACP81G,EAAWryG,EAAEzD,GAhFf,QAkFE81G,EAAWpyG,IAGb,OAAOohM,IAER,CACD/iM,IAAK,oBACLhC,MAAO,SAA2ByL,EAAMi7L,GACtC,GAAIj7L,EAAM,CACR,IAAI4D,GAAU,EAEd,GAAI5D,EAAK/E,SAAU,CACjB,IAAIE,EAAaqqF,EAAmBxlF,EAAK/E,UAEzC+E,EAAK/E,SAAW,GAEhB,IACIwvG,EADAC,EAAaxiG,EAA2B/M,GAG5C,IACE,IAAKuvG,EAAW1yG,MAAOyyG,EAASC,EAAW91G,KAAKP,MAAO,CACrD,IAEI+mM,EAAgB79K,EAAc,GAFlBktF,EAAOl2G,OAInBkE,KAAK0iM,gBAAgBC,EAAeH,KACtCr3L,GAAU,EACV5D,EAAK/E,SAAS3G,KAAK8mM,KAGvB,MAAO5mM,GACPk2G,EAAWzyG,EAAEzD,GAZf,QAcEk2G,EAAWxyG,KAIf,GAAI0L,EACF,OAAO,KAIZ,CACDrN,IAAK,kBACLhC,MAAO,SAAyByL,EAAM3J,GACpC,IAAIm9E,EAAcn9E,EAAKm9E,YACnBlrE,EAAcjS,EAAKiS,YACnB6gG,EAAmB9yG,EAAK8yG,iBACxB2xF,EAAezkM,EAAKykM,aACpB/wL,EAAU1T,EAAK0T,QACfnG,GAAU,EAgBd,OAbIulG,EAFiB/iG,IAAYI,iBAAiBxG,EAAKoH,KAAMosE,GAExBlrE,EAAa7P,KAAKxB,MAAMuR,aAAcuB,KACzEnG,GAAU,KAGPA,GAAWk3L,IAAiBriM,KAAK+9L,WAAWx2L,MAC/C4D,EAAUnL,KAAKyiM,kBAAkBl7L,EAAM,CACrCwzE,YAAaA,EACblrE,YAAaA,EACb6gG,iBAAkBA,EAClB2xF,aAAcA,KACVl3L,GAGDA,IAER,CACDrN,IAAK,aACLhC,MAAO,SAAoByL,GACzB,OAAqB,IAAdA,EAAK06L,QAA2B16L,EAAK/E,UAAY+E,EAAK/E,SAAS7H,UAEvE,CACDmD,IAAK,eACLhC,MAAO,WACL,IAAI6S,EAAO3O,KAAKxB,MAAM1C,MAEtB,IAAKkE,KAAKxB,MAAMu8F,MACVpsF,GAAQA,EAAKhU,OAAQ,EACnBqF,KAAK4mG,gBAAkB5mG,KAAK8mG,sBACF,WAAxB9mG,KAAKxB,MAAMwmG,SAAuBr2F,EAAO3O,KAAK6wG,WAAWliG,GAAuC,aAAxB3O,KAAKxB,MAAMwmG,WAAyBr2F,EAAO3O,KAAK8wG,aAAaniG,KAG3I,IAAIyhG,EAAepwG,KAAKgnG,cAEpBoJ,GAAgBpwG,KAAKxB,MAAM0sG,gBAC7Bv8F,EAAO3O,KAAK+wG,YAAYpiG,EAAMyhG,IAKpC,OAAOzhG,IAER,CACD7Q,IAAK,oBACLhC,MAAO,SAA2BwzF,EAASkS,GACzC,OAAoB3mF,IAAM7P,cAAcu4L,EAAiB,CACvDj0G,QAASA,EACTkS,YAAaA,EACb18B,SAAU9kE,KAAKxB,MAAMsmE,SACrBo9B,OAAQliG,KAAKkiG,OACbpnB,UAAW96E,KAAK4mG,eAChBxD,UAAWpjG,KAAK6mG,eAChB/D,cAAe9iG,KAAK8mG,mBACpBtE,iBAAkBxiG,KAAKxB,MAAMgkG,iBAC7BkuC,cAAe1wI,KAAKyiG,oBACpBI,mBAAoB7iG,KAAKxB,MAAMqkG,mBAC/B3K,YAAal4F,KAAKilG,kBAClBzO,WAAYx2F,KAAKklG,iBACjBzO,YAAaz2F,KAAKmlG,kBAClBzO,OAAQ12F,KAAKolG,aACbhD,SAAUpiG,KAAKoiG,SACfc,QAASljG,KAAKgnG,aACdzE,YAAaviG,KAAKxB,MAAM+jG,gBAG3B,CACDzkG,IAAK,oBACLhC,MAAO,SAA2BwzF,EAASkS,GACzC,OAAoB3mF,IAAM7P,cAAc05L,EAAiB,CACvDp1G,QAASA,EACTkS,YAAaA,MAGhB,CACD1jG,IAAK,kBACLhC,MAAO,SAAyBA,EAAOwzF,GACrC,OAAoBz0E,IAAM7P,cAAcw5L,EAAe,CACrD1oM,MAAOA,EACPwzF,QAASA,EACT0uG,aAAch+L,KAAK4iM,kBACnB/vG,aAAc7yF,KAAKxB,MAAMq0F,aACzBo9D,SAAUjwJ,KAAKiwJ,SACfI,SAAUrwJ,KAAKxB,MAAM6xJ,SACrBC,WAAYtwJ,KAAKxB,MAAM8xJ,WACvBt1D,UAAWh7F,KAAKxB,MAAMw8F,UACtBroF,MAAO3S,KAAK0mG,WACZ9+B,KAAM5nE,KAAK2mG,UACXtqB,cAAer8E,KAAKxB,MAAM69E,cAC1BwiH,cAAe7+L,KAAKxB,MAAMqgM,cAC1BxkG,kBAAmBr6F,KAAKxB,MAAM67F,kBAC9BwC,iBAAkB78F,KAAKxB,MAAMq+F,iBAC7BnE,WAAY14F,KAAKxB,MAAMk6F,WACvB0B,SAAUp6F,KAAKxB,MAAM47F,SACrBD,WAAYn6F,KAAKxB,MAAM27F,WACvB6kG,qBAAsBh/L,KAAKxB,MAAMwgM,qBACjCF,uBAAwB9+L,KAAKxB,MAAMsgM,uBACnC/jG,KAAM/6F,KAAKxB,MAAMu8F,KACjBvD,aAAcx3F,KAAKxB,MAAMg5F,aACzByJ,aAAcjhG,KAAKxB,MAAMyiG,aACzBpoB,QAAS74E,KAAKxB,MAAMq6E,QACpBonH,wBAAyBjgM,KAAKxB,MAAMyhM,wBACpCvjG,6BAA8B18F,KAAKxB,MAAMk+F,6BACzCjQ,cAAezsF,KAAKxB,MAAMiuF,kBAG7B,CACD3uF,IAAK,kBACLhC,MAAO,SAAyBoK,EAAUgoF,GACxC,IAAI3wF,EAAYN,YAAW,eAAiBiJ,EAAUlG,KAAKxB,MAAMsqG,oBACjE,OAAoBjuF,IAAM7P,cAAc+9F,IAAW,CACjDp2F,MAAO3S,KAAK0mG,WACZ9+B,KAAM5nE,KAAK2mG,UACXqC,aAAchpG,KAAKxB,MAAMwqG,aACzBzrG,UAAWA,EACX6oG,aAAcpmG,KAAKomG,aACnB6C,SAAUjpG,KAAKxB,MAAM0qG,kBACrBhb,aAAcA,EACdib,mBAAoBnpG,KAAKxB,MAAM2qG,mBAC/BC,0BAA2BppG,KAAKxB,MAAM4qG,0BACtCC,YAAarpG,KAAKxB,MAAM8qG,cACxBC,aAAcvpG,KAAKxB,MAAMgrG,eACzBC,WAAYzpG,KAAKxB,MAAMkrG,oBACvBC,iBAAkB3pG,KAAKxB,MAAMorG,8BAGhC,CACD9rG,IAAK,uBACLhC,MAAO,SAA8BA,EAAOwzF,EAASlT,EAAQk1B,EAAmBnG,GAC9E,IAAInwB,EAASh7E,KAAKuxG,kBAAkBjiB,EAASgiB,GACzCp2B,EAASl7E,KAAK0xG,kBAAkBpiB,EAAS6b,GACzC9oG,EAAOrC,KAAKwxG,gBAAgB11G,EAAOwzF,GACvC,OAAoBz0E,IAAM7P,cAAc+5L,EAAyB,CAC/Dz1G,QAASA,EACTtU,OAAQA,EACR34E,KAAMA,EACN64E,OAAQA,EACRt+B,aAAc58C,KAAKxB,MAAMo+C,aACzBw/B,OAAQA,EACRoT,YAAaxvF,KAAKxB,MAAMgxF,gBAG3B,CACD1xF,IAAK,wBACLhC,MAAO,SAA+BA,GACpC,IAGIuyF,EAAY4d,EAHZ3c,EAAUtvF,KAAKsuG,aACf2C,EAAgBjxG,KAAKozG,iBAAiB9jB,GACtC4hB,EAAoBD,EAAgBjxG,KAAKqzG,qBAAqB/jB,GAAWA,EAQ7E,OALI2hB,IACF5iB,EAAaruF,KAAKszG,qBAAqBx3G,EAAOm1G,GAAe,EAAMjxG,KAAKxB,MAAM+0G,wBAAyBvzG,KAAKxB,MAAMg1G,0BAGpHvH,EAAiBjsG,KAAKszG,qBAAqBx3G,EAAOo1G,GAAmB,EAAOlxG,KAAKxB,MAAM8yG,kBAAmBtxG,KAAKxB,MAAM2sG,mBACjGtwF,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,kCACV8wF,EAAY4d,KAEhB,CACDnuG,IAAK,qBACLhC,MAAO,SAA4BA,GACjC,IAAI2mB,EAASziB,KAETsvF,EAAUtvF,KAAKsuG,aACftzB,EAASh7E,KAAKuxG,kBAAkBjiB,EAAStvF,KAAKxB,MAAM8yG,mBACpDp2B,EAASl7E,KAAK0xG,kBAAkBpiB,EAAStvF,KAAKxB,MAAM2sG,mBACpD9oG,EAAOrC,KAAKwxG,gBAAgB11G,EAAOwzF,GACvC,OAAoBz0E,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,uBACGsd,IAAM7P,cAAc,QAAS,CAC3C5K,MAAOJ,KAAKxB,MAAMqxF,WAClBtyF,UAAWyC,KAAKxB,MAAMgzE,eACtB12D,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOgmF,MAAQxoG,IAEvB+6E,EAAQE,EAAQ74E,MAEpB,CACDvE,IAAK,cACLhC,MAAO,SAAqBA,GAC1B,OAAIkE,KAAKxB,MAAMgqG,WAAmBxoG,KAAK2lM,sBAAsB7pM,GAAmBkE,KAAK4lM,mBAAmB9pM,KAEzG,CACDgC,IAAK,eACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMq6E,QAAS,CACtB,IAAIsY,EAAgBl0F,YAAW,mCAAoC+C,KAAKxB,MAAM26E,aAC9E,OAAoBt+D,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,uBACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,mDACGsd,IAAM7P,cAAc,IAAK,CACvCzN,UAAW4zF,MAIf,OAAO,OAER,CACDrzF,IAAK,SACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAETlE,EAAQkE,KAAK6lM,eACbtoM,EAAYN,YAAW,0BAA2B,CACpD,6BAA8B+C,KAAK8lM,qBACnC,wBAAyB9lM,KAAKxB,MAAMgkG,iBACpC,4BAA6BxiG,KAAKxB,MAAMgkG,kBAAoD,QAAhCxiG,KAAKxB,MAAM+pG,iBACvE,0BAA2BvoG,KAAKxB,MAAM+zG,WACtC,sBAAuBvyG,KAAKxB,MAAM6zG,YAClC,wBAAyBryG,KAAKxB,MAAM8zG,eACnCtyG,KAAKxB,MAAMjB,WACVkrG,EAAQzoG,KAAK+lM,YAAYjqM,GACzBoyF,EAAeluF,KAAK+nG,gBAAgBjsG,GACpC+2G,EAAc7yG,KAAKxB,MAAMw8E,QAAuBngE,IAAM7P,cAAc,MAAO,CAC7EzN,UAAW,sBACVyC,KAAKxB,MAAMw8E,QACV83B,EAAc9yG,KAAKxB,MAAM08E,QAAuBrgE,IAAM7P,cAAc,MAAO,CAC7EzN,UAAW,sBACVyC,KAAKxB,MAAM08E,QACVu3B,EAAezyG,KAAKxB,MAAMw8F,WAA8C,WAAjCh7F,KAAKxB,MAAMk0G,mBAAkC1yG,KAAK2yG,gBAAgB,MAAOzkB,GAChH0kB,EAAkB5yG,KAAKxB,MAAMw8F,WAA8C,QAAjCh7F,KAAKxB,MAAMk0G,mBAA+B1yG,KAAK2yG,gBAAgB,SAAUzkB,GACnHikB,EAASnyG,KAAKmzG,eACdJ,EAAe/yG,KAAKxB,MAAMgkG,kBAAiC3nF,IAAM7P,cAAc,MAAO,CACxF8P,IAAK,SAAa7a,GAChBqjB,EAAOsoF,cAAgB3rG,GAEzB1C,UAAW,0BACX6C,MAAO,CACL8H,QAAS,UAGTslG,EAAqBxtG,KAAKxB,MAAMqkG,oBAAmChoF,IAAM7P,cAAc,OAAQ,CACjG8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOkqF,mBAAqBvtG,GAErC1C,UAAW,oDACX6C,MAAO,CACL8F,SAAU,WACVgC,QAAS,UAGTimG,EAAuBnuG,KAAKxB,MAAMqkG,oBAAmChoF,IAAM7P,cAAc,OAAQ,CACnG8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAO6qF,qBAAuBluG,GAEvC1C,UAAW,oDACX6C,MAAO,CACL8F,SAAU,WACVgC,QAAS,UAGb,OAAoB2S,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB0a,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOxZ,UAAY7J,GAE5B,uBAAwB,gCACvBkyG,EAAQU,EAAaJ,EAAchK,EAAOmK,EAAiBE,EAAaC,EAAcvF,EAAoBW,OAI1G62F,EA5oCoB,CA6oC3BhqL,aAEFxK,EAAgBw0L,EAAW,eAAgB,CACzClhL,GAAI,KACJhoB,MAAO,KACPk/E,OAAQ,KACRE,OAAQ,KACR96E,MAAO,KACP7C,UAAW,KACXsyF,WAAY,KACZre,eAAgB,KAChBwsH,aAAc,KACdhjG,WAAW,EACX0X,kBAAmB,SACnBhJ,qBAAqB,EACrBZ,mBAAoB,KACpBI,kBAAmB,qFACnBI,cAAe,KACfE,eAAgB,KAChBI,0BAA2B,KAC3BZ,aAAc,EACdG,mBAAoB,KACpBC,0BAA2B,kCAC3Bz2F,MAAO,KACPi1D,KAAM,KACNsmB,aAAc,KACd6M,MAAM,EACNjgB,UAAW,KACXsoB,UAAW,KACXN,cAAe,KACfkC,SAAU,SACV8E,iBAAkB,EAClBS,eAAe,EACfluB,cAAe,KACfwiH,cAAe,KACfoB,wBAAyB,KACzBpjG,kBAAkB,EAClBhK,cAAc,EACdmsG,sBAAsB,EACtBF,wBAAwB,EACxBvsF,YAAY,EACZ/a,aAAc,KACd3e,SAAS,EACTM,YAAa,gBACbrU,SAAU,EACV0jC,YAAY,EACZ5rD,aAAc,KACdimD,oBAAoB,EACpByO,kBAAmB,KACnBnG,kBAAmB,KACnBoI,wBAAyB,KACzBC,wBAAyB,KACzBhkB,YAAa,KACbgT,kBAAkB,EAClB+F,iBAAkB,MAClBtH,aAAc,mBACdiC,QAAS,KACTgI,aAAc,KACdo3F,WAAY,UACZ//F,YAAa,IACbxyF,kBAActK,EACd6sG,eAAe,EACfD,aAAa,EACbjQ,SAAU,KACViuD,SAAU,KACVC,WAAY,KACZL,SAAU,KACVhqD,OAAQ,KACR/D,OAAQ,KACR9H,SAAU,KACVD,WAAY,KACZzB,WAAY,KACZ2B,kBAAmB,KACnBqC,6BAA8B,KAC9B8P,kBAAmB,KACnBsC,aAAc,KACdriB,cAAe,Q,6BCv9FjB,6DASA,SAASnuF,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIk3L,EAAwB,SAAUpsL,IApEtC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAyD1CF,CAAUwtL,EAAUpsL,GAEpB,IA9FoBvb,EAAaU,EAAYC,EA8FzC6a,EAASkL,EAAaihL,GAE1B,SAASA,EAASxnM,GAChB,IAAI+G,GAjHR,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAiHpBsB,CAAgB6B,KAAMgmM,GAEtBzgM,EAAQsU,EAAOne,KAAKsE,KAAMxB,GAC1B,IAAI4e,EAAQ,CACV0G,GAAItlB,EAAMslB,IAYZ,OATKve,EAAM/G,MAAMyxJ,WACf7yI,EAAQ0H,EAAcA,EAAc,GAAI1H,GAAQ,GAAI,CAClD8yI,UAAW1xJ,EAAM0xJ,aAIrB3qJ,EAAM6X,MAAQA,EACd7X,EAAM4qJ,OAAS5qJ,EAAM4qJ,OAAOp2I,KAAK7B,EAAuB3S,IACxDA,EAAM6qJ,WAA0Bv1I,IAAMmL,YAC/BzgB,EAwJT,OA3QoBlH,EAsHP2nM,GAtHoBjnM,EAsHV,CAAC,CACtBjB,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,GAAIrU,KAAKxB,MAAM86F,WAAY,CACzB,IAAI42D,EAAYlwJ,KAAKxB,MAAMyxJ,SAAWjwJ,KAAKxB,MAAM0xJ,UAAYlwJ,KAAKod,MAAM8yI,UACpEA,EAAWlwJ,KAAKyvB,OAAOpb,GAAYrU,KAAKsT,SAASe,GAEjDrU,KAAKxB,MAAMyxJ,UACbjwJ,KAAKxB,MAAMyxJ,SAAS,CAClBt6I,cAAetB,EACfvY,OAAQo0J,IAKd77I,EAAMY,mBAEP,CACDnX,IAAK,SACLhC,MAAO,SAAgBuY,GAChBrU,KAAKxB,MAAMyxJ,UACdjwJ,KAAKwd,SAAS,CACZ0yI,WAAW,IAIXlwJ,KAAKxB,MAAM6xJ,UACbrwJ,KAAKxB,MAAM6xJ,SAASh8I,KAGvB,CACDvW,IAAK,WACLhC,MAAO,SAAkBuY,GAClBrU,KAAKxB,MAAMyxJ,UACdjwJ,KAAKwd,SAAS,CACZ0yI,WAAW,IAIXlwJ,KAAKxB,MAAM8xJ,YACbtwJ,KAAKxB,MAAM8xJ,WAAWj8I,KAGzB,CACDvW,IAAK,cACLhC,MAAO,WACL,QAAOkE,KAAKxB,MAAM86F,aAAat5F,KAAKxB,MAAMyxJ,SAAWjwJ,KAAKxB,MAAM0xJ,UAAYlwJ,KAAKod,MAAM8yI,aAExF,CACDpyJ,IAAK,oBACLhC,MAAO,WACAkE,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,kBAIT,CACD9Y,IAAK,gBACLhC,MAAO,SAAuBo0J,GAC5B,IAAIpsI,EAAK9jB,KAAKod,MAAM0G,GAAK,WACzB,OAAoBjJ,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKowJ,WACdnzJ,WAAY,uBACZ2oB,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERhxF,IAAKuqI,EACLrqI,eAAe,EACfvU,QAAStR,KAAKxB,MAAMo4G,mBACN/7F,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKowJ,WACVtsI,GAAIA,EACJvmB,UAAW,uBACX,cAAe2yJ,EACfnsI,KAAM,SACN,kBAAmB/jB,KAAKod,MAAM0G,GAAK,WACrBjJ,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,sBACVyC,KAAKxB,MAAMgE,cAEf,CACD1E,IAAK,mBACLhC,MAAO,SAA0Bo0J,GAC/B,GAAIlwJ,KAAKxB,MAAM86F,WAAY,CACzB,IAAI/7F,EAAYN,YAAW,wBAAyB,CAClD,UAAWizJ,EACX,YAAaA,IAEf,OAAoBr1I,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAWA,IAIf,OAAO,OAER,CACDO,IAAK,sBACLhC,MAAO,SAA6Bo0J,GAClC,GAAIlwJ,KAAKxB,MAAM86F,WAAY,CACzB,IAAIi3D,EAAavwJ,KAAKywJ,iBAAiBP,GACnCx7D,EAAe10F,KAAKod,MAAM0G,GAAK,WACnC,OAAoBjJ,IAAM7P,cAAc,IAAK,CAC3Ck2D,KAAM,IAAMwzB,EACZ,gBAAiBA,EACjB5wE,GAAI9jB,KAAKod,MAAM0G,GAAK,UACpB,iBAAkBosI,EAClBprF,SAAU9kE,KAAKxB,MAAM86F,WAAa,MAAQ,GACzCi3D,EAAyB11I,IAAM7P,cAAc,OAAQ,CACtDzN,UAAW,0BACVyC,KAAKxB,MAAMynM,QAAsBprL,IAAM7P,cAAc2O,IAAQ,OAGlE,OAAoBkB,IAAM7P,cAAc,OAAQ,CAC9CzN,UAAW,yBACXumB,GAAI9jB,KAAKod,MAAM0G,GAAK,WACnB9jB,KAAKxB,MAAMynM,UAEf,CACDnoM,IAAK,eACLhC,MAAO,SAAsBo0J,GAC3B,IAAIg2C,EAAgBlmM,KAAKmmM,oBAAoBj2C,GAE7C,GAAyB,MAArBlwJ,KAAKxB,MAAMynM,QAAkBjmM,KAAKxB,MAAM86F,WAC1C,OAAoBz+E,IAAM7P,cAAc,SAAU,CAChDzN,UAAW,wCACXyiE,QAAShgE,KAAKmwJ,QACb+1C,KAGN,CACDpoM,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,yBAA0B+C,KAAKxB,MAAMjB,UAAW,CACzE,wBAAyByC,KAAKxB,MAAM86F,aAElC42D,EAAYlwJ,KAAK+wJ,cACjBk1C,EAASjmM,KAAKomM,aAAal2C,GAC3BlxI,EAAUhf,KAAKy2G,cAAcy5C,GACjC,OAAoBr1I,IAAM7P,cAAc,WAAY,CAClD8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKxB,MAAMwhE,SACnBimI,EAAQjnL,QAtQC1gB,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAyQzCgnM,EAhLmB,CAiL1BhrL,aAEFxK,EAAgBw1L,EAAU,eAAgB,CACxCliL,GAAI,KACJmiL,OAAQ,KACR1oM,UAAW,KACX6C,MAAO,KACPk5F,WAAY,KACZ42D,UAAW,KACXt5C,kBAAmB,KACnBy5C,SAAU,KACVC,WAAY,KACZL,SAAU,KACVjwF,QAAS,Q,6BC5SX,4FAYA,SAAS1hE,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+nB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAI5Z,SAAS+V,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAC7gB,SAAS8nM,EAAa7nM,GACpB,IAAIwF,EAAWxF,EAAMwF,UAAYtD,SAAS2B,KACtCikM,EAAsB5lM,SAASyd,yBACnCpe,IAAWyJ,YAAY88L,EAAqBtiM,GAC5CxF,EAAQsmB,EAAcA,EAAc,GAAItmB,GAAQ,CAC9C8e,aAA2B7X,IAAlBjH,EAAM8e,SAA+B9e,EAAM8e,UAEtD,IAAIipL,EAA8B1rL,IAAM7P,cAAcw7L,EAAchoM,GACpEmf,IAASW,OAAOioL,EAAgBD,GAEhC,IAAIG,EAAqB,SAA4BjoL,GACnDhgB,EAAQsmB,EAAcA,EAAc,GAAItmB,GAAQggB,GAChDb,IAASW,OAAqBzD,IAAM4D,aAAa8nL,EAAgB/nM,GAAQ8nM,IAG3E,MAAO,CACLI,SAAU,WACR/oL,IAASgB,uBAAuB2nL,IAElCpnL,KAAM,WACJunL,EAAmB,CACjBnpL,SAAS,EACTmE,OAAQ,WACNglL,EAAmB,CACjBnpL,SAAS,QAKjB6B,KAAM,WACJsnL,EAAmB,CACjBnpL,SAAS,KAGb2B,OAAQ,SAAgBT,GACtBioL,EAAmBjoL,KAIzB,IAAIgoL,EAA4B,SAAU5sL,IA3G1C,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAgG1CF,CAAUguL,EAAc5sL,GAExB,IArIoBvb,EAAaU,EAAYC,EAqIzC6a,EAASkL,EAAayhL,GAE1B,SAASA,EAAahoM,GACpB,IAAI+G,EAmBJ,OA3KJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAwJpBsB,CAAgB6B,KAAMwmM,IAEtBjhM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAS,GAEX/X,EAAMk4E,OAASl4E,EAAMk4E,OAAO1jE,KAAK7B,EAAuB3S,IACxDA,EAAMi4E,OAASj4E,EAAMi4E,OAAOzjE,KAAK7B,EAAuB3S,IACxDA,EAAM4Z,KAAO5Z,EAAM4Z,KAAKpF,KAAK7B,EAAuB3S,IACpDA,EAAMyoJ,aAAezoJ,EAAMyoJ,aAAaj0I,KAAK7B,EAAuB3S,IACpEA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAMqyG,WAA0B/8F,IAAMmL,YACtCzgB,EAAMohM,aAA4B9rL,IAAMmL,YACjCzgB,EA6UT,OAxeoBlH,EA8JPmoM,GA9JoBznM,EA8JN,CAAC,CAC1BjB,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMooM,aAAenoH,YAAa,YAE/C,CACD3gF,IAAK,cACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMqoM,aAAepoH,YAAa,YAE/C,CACD3gF,IAAK,4BACLhC,MAAO,WACL,IAAI6e,EAAS3a,MAERA,KAAKk7G,uBAAyBl7G,KAAKxB,MAAM6yJ,cAC5CrxJ,KAAKk7G,sBAAwB,SAAU7mG,IAChCsG,EAAOs0I,gBAAkBt0I,EAAOu4E,iBAAiB7+E,EAAM9V,SAC1Doc,EAAOwE,OAGTxE,EAAOs0I,gBAAiB,GAG1BvuJ,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,qBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAKxB,MAAMD,QAAQ,WACpE2iB,EAAO9D,MAAME,SACf4D,EAAO/B,WAKbnf,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,qBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKo7G,iBACRp7G,KAAKo7G,eAAiB,WAChBz5F,EAAOvE,MAAME,UAAYvd,IAAWyiB,aACtCb,EAAOxC,QAIXve,OAAO4M,iBAAiB,SAAUxN,KAAKo7G,mBAG1C,CACDt9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKo7G,iBACPx6G,OAAO6M,oBAAoB,SAAUzN,KAAKo7G,gBAC1Cp7G,KAAKo7G,eAAiB,QAGzB,CACDt9G,IAAK,mBACLhC,MAAO,SAA0ByC,GAC/B,OAAOyB,KAAK43G,YAAc53G,KAAK43G,WAAW7oG,WAAa/O,KAAK43G,WAAW7oG,QAAQwkF,WAAWh1F,IAAWyB,KAAK43G,WAAW7oG,QAAQ1L,SAAS9E,MAEvI,CACDT,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAKmf,OACL9K,EAAMY,mBAEP,CACDnX,IAAK,eACLhC,MAAO,SAAsBuY,GAC3BrU,KAAKivJ,gBAAiB,EACtB7qI,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAKxB,MAAMD,WAGtB,CACDT,IAAK,SACLhC,MAAO,WACDkE,KAAKxB,MAAMg/E,QACbx9E,KAAKxB,MAAMg/E,SAGbx9E,KAAKmf,KAAK,YAEX,CACDrhB,IAAK,SACLhC,MAAO,WACDkE,KAAKxB,MAAMi/E,QACbz9E,KAAKxB,MAAMi/E,SAGbz9E,KAAKmf,KAAK,YAEX,CACDrhB,IAAK,OACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAEbA,KAAKwd,SAAS,CACZF,SAAS,IACR,WACDgF,EAAO2wE,qBAAuB,SAAUzzF,GACjC8iB,EAAO4wE,iBAAiB1zF,EAAEjB,UAC7B+jB,EAAO2sI,gBAAiB,IAI5B7qI,IAAeG,GAAG,gBAAiBjC,EAAO2wE,2BAG7C,CACDn1F,IAAK,OACLhC,MAAO,SAAcgT,GACnB,IAAI2T,EAASziB,KAEbA,KAAKwd,SAAS,CACZF,SAAS,IACR,WACD8G,IAAeK,IAAI,gBAAiBhC,EAAOwwE,sBAC3CxwE,EAAOwwE,qBAAuB,KAE1BxwE,EAAOjkB,MAAMijB,QACfgB,EAAOjkB,MAAMijB,OAAO3S,QAIzB,CACDhR,IAAK,UACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAK43G,WAAW7oG,SAC3C/O,KAAK0gB,UAEN,CACD5iB,IAAK,YACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKihB,qBACLjhB,KAAK06G,qBAED16G,KAAK2mM,cAAgB3mM,KAAK2mM,aAAa53L,SACzC/O,KAAK2mM,aAAa53L,QAAQq9E,QAG5BpsF,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,SACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK0N,uBACL1N,KAAK46G,yBAEN,CACD98G,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,QACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMD,OAAQ,CACrBwB,IAAWqE,iBAAiBpE,KAAK43G,WAAW7oG,QAAS/O,KAAKxB,MAAMD,QAChE,IAAIwvG,EAAkBhuG,IAAWsa,UAAUra,KAAK43G,WAAW7oG,SACvDnK,EAAe7E,IAAWsa,UAAUra,KAAKxB,MAAMD,QAC/CsgL,EAAY,EAEZ9wE,EAAgBzrG,KAAOsC,EAAatC,OACtCu8K,EAAYj6K,EAAatC,KAAOyrG,EAAgBzrG,MAGlDtC,KAAK43G,WAAW7oG,QAAQ3O,MAAM0+K,YAAY,qBAAsB,GAAG/gL,OAAO8gL,EAAW,OAEjF9wE,EAAgB3rG,IAAMwC,EAAaxC,KACrCrC,IAAWya,SAASxa,KAAK43G,WAAW7oG,QAAS,8BAIlD,CACDjR,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAM8e,SACbtd,KAAKwd,SAAS,CACZF,SAAS,MAId,CACDxf,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUlG,UAAYtd,KAAKxB,MAAM8e,SACnCtd,KAAKwd,SAAS,CACZF,QAAStd,KAAKxB,MAAM8e,YAIzB,CACDxf,IAAK,uBACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAK46G,uBAED56G,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGnBxhB,KAAKizF,uBACP7uE,IAAeK,IAAI,gBAAiBzkB,KAAKizF,sBACzCjzF,KAAKizF,qBAAuB,MAG9Bn8E,IAAYe,MAAM7X,KAAK43G,WAAW7oG,WAEnC,CACDjR,IAAK,gBACLhC,MAAO,WACL,IAAIq1F,EAAgBl0F,YAAW,uBAAwB+C,KAAKxB,MAAM06E,MAC9DvsB,EAAUh/C,IAAY8rE,cAAcz5E,KAAKxB,MAAMmuD,QAAS3sD,KAAKxB,OACjE,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,2BACGsd,IAAM7P,cAAc,IAAK,CACvCzN,UAAW4zF,IACIt2E,IAAM7P,cAAc,OAAQ,CAC3CzN,UAAW,2BACVovD,MAEJ,CACD7uD,IAAK,eACLhC,MAAO,WACL,IAAIgrM,EAAkB7pM,YAAW,qCAAsC+C,KAAKxB,MAAMsoM,iBAC9EC,EAAkB9pM,YAAW,qCAAsC,CACrE,iBAAkB+C,KAAKxB,MAAMuoM,iBAC5B/mM,KAAKxB,MAAMuoM,iBACV/nL,EAAuBnE,IAAM7P,cAAc,MAAO,CACpDzN,UAAW,0BACGsd,IAAM7P,cAAcovE,IAAQ,CAC1Cb,MAAOv5E,KAAK6mM,cACZ3tH,KAAMl5E,KAAKxB,MAAMwoM,WACjBzpM,UAAWwpM,EACX/mI,QAAShgE,KAAKy9E,SACC5iE,IAAM7P,cAAcovE,IAAQ,CAC3Ct/D,IAAK9a,KAAK2mM,aACVptH,MAAOv5E,KAAK4mM,cACZ1tH,KAAMl5E,KAAKxB,MAAMyoM,WACjB1pM,UAAWupM,EACX9mI,QAAShgE,KAAKw9E,UAGhB,GAAIx9E,KAAKxB,MAAM08E,OAAQ,CACrB,IAAI1B,EAAwB,CAC1BgE,OAAQx9E,KAAKw9E,OACbC,OAAQz9E,KAAKy9E,OACblgF,UAAW,yBACXupM,gBAAiBA,EACjBC,gBAAiBA,EACjBH,YAAa5mM,KAAK4mM,cAClBC,YAAa7mM,KAAK6mM,cAClBtkM,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEd,OAAOmP,IAAY8rE,cAAcz5E,KAAKxB,MAAM08E,OAAQ1B,GAGtD,OAAOx6D,IAER,CACDlhB,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,8BAA+B+C,KAAKxB,MAAMjB,WACjEyhB,EAAUhf,KAAKy2G,gBACfv7B,EAASl7E,KAAK0uI,eAClB,OAAoB7zH,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAK43G,WACd36G,WAAY,sBACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAK43G,WACV9zF,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKs3G,cACbt4F,EAASk8D,MAEb,CACDp9E,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAoBnJ,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,SACrBsZ,SAAS,SAleChf,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAsezCwnM,EAtWuB,CAuW9BxrL,aAEFxK,EAAgBg2L,EAAc,eAAgB,CAC5CjoM,OAAQ,KACR+e,SAAS,EACTqvC,QAAS,KACTk6I,YAAa,KACbD,YAAa,KACb1tH,KAAM,KACN8tH,WAAY,KACZC,WAAY,KACZF,gBAAiB,KACjBD,gBAAiB,KACjBvpM,UAAW,KACX6C,MAAO,KACP4D,SAAU,KACVqtJ,aAAa,EACbn2E,OAAQ,KACRn6D,OAAQ,KACRU,OAAQ,KACR+7D,OAAQ,KACRC,OAAQ,KACRm5B,kBAAmB,Q,6BCrhBrB,6DAGA,SAASlnG,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAASj1E,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASha,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAASga,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6nB,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAI5Z,IAAIo4L,EAA4B,SAAUttL,GACxCpB,EAAU0uL,EAActtL,GAExB,IAAIC,EAASkL,EAAamiL,GAE1B,SAASA,IAGP,OAFA/oM,EAAgB6B,KAAMknM,GAEfrtL,EAAOvQ,MAAMtJ,KAAM7C,WAkB5B,OAfA2B,EAAaooM,EAAc,CAAC,CAC1BppM,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKxB,MAAMyqG,SAASjpG,KAAKxB,MAAMuL,MACzCkzL,EAAgBhgM,YAAW+C,KAAKxB,MAAMjB,UAAW,kBAAmB,CACtE,yBAA0ByC,KAAKxB,MAAM2oM,OACrC,wBAAyBnnM,KAAKxB,MAAMoX,MACpC,sBAAuB5V,KAAKxB,MAAMsU,MAEpC,OAAoB+H,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW0/L,GACVj+K,OAIAkoL,EA1BuB,CA2B9BlsL,aAEFxK,EAAgB02L,EAAc,eAAgB,CAC5Cj+F,SAAU,KACVl/F,KAAM,KACNo9L,QAAQ,EACRvxL,OAAO,EACP9C,KAAK,EACLvV,UAAW,OAGb,IAAI6pM,EAAwB,SAAU3hF,GACpCjtG,EAAU4uL,EAAU3hF,GAEpB,IAAIC,EAAU3gG,EAAaqiL,GAE3B,SAASA,EAAS5oM,GAChB,IAAI+G,EA6BJ,OA3BApH,EAAgB6B,KAAMonM,IAEtB7hM,EAAQmgH,EAAQhqH,KAAKsE,KAAMxB,IACrB4e,MAAQ,CACZiqL,WAAY7oM,EAAM6oM,WAClBC,UAAW9oM,EAAM8oM,UACjBC,kBAAmB/oM,EAAM4wF,KAAO5wF,EAAM8oM,WAAa,GAGhD/hM,EAAM/G,MAAM4nG,eACf7gG,EAAM6X,MAAQ0H,EAAcA,EAAc,GAAIvf,EAAM6X,OAAQ,GAAI,CAC9DgyE,KAAM5wF,EAAM4wF,QAIhB7pF,EAAM6rH,YAAc7rH,EAAM6rH,YAAYr3G,KAAK7B,EAAuB3S,IAClEA,EAAM8rH,WAAa9rH,EAAM8rH,WAAWt3G,KAAK7B,EAAuB3S,IAChEA,EAAMiiM,gBAAkBjiM,EAAMiiM,gBAAgBztL,KAAK7B,EAAuB3S,IAC1EA,EAAM44I,aAAe54I,EAAM44I,aAAapkI,KAAK7B,EAAuB3S,IACpEA,EAAM84I,YAAc94I,EAAM84I,YAAYtkI,KAAK7B,EAAuB3S,IAClEA,EAAM8wF,WAAa9wF,EAAM8wF,WAAWt8E,KAAK7B,EAAuB3S,IAChEA,EAAMkiM,gBAAkB,EACxBliM,EAAMmiM,eAAiB,EACvBniM,EAAMoiM,gBAAkBpiM,EAAM/G,MAAMopM,iBACpCriM,EAAMsiM,SAAWtiM,EAAM/G,MAAMqpM,UAAYtiM,EAAMoiM,cAC/CpiM,EAAMqrI,kBAAoBh6H,cAC1BrR,EAAMuiM,eAAiB,GAChBviM,EAynBT,OAtnBAzG,EAAasoM,EAAU,CAAC,CACtBtpM,IAAK,OACLhC,MAAO,SAAcm6H,EAAK7mC,GACxB,IAAIm4G,EAAoBvnM,KAAKod,MAAMmqL,kBAC/BQ,EAAa/nM,KAAK+nM,aAEtB,GAAY,MAAR34G,EACFm4G,EAAoBvnM,KAAKod,MAAMkqL,UAAYl4G,GAAQ,EAE/C24G,IACFR,GAAqBvnM,KAAKod,MAAMiqL,YAGlCrnM,KAAKgoM,uBAAwB,MACxB,CACLT,GAAqBvnM,KAAKod,MAAMkqL,UAAYrxE,EAExCj2H,KAAKgoM,wBACPT,GAAqBvnM,KAAK0nM,eAAiB1nM,KAAKod,MAAMkqL,UAAYrxE,EAClEj2H,KAAKgoM,uBAAwB,GAG/B,IAAIC,EAAuBF,EAAaR,EAAoBvnM,KAAKod,MAAMiqL,WAAaE,EACpFn4G,EAAOhqF,KAAKgI,IAAIhI,KAAKsmB,MAAMu8K,EAAuBjoM,KAAKod,MAAMkqL,YAG3DS,GAAc/nM,KAAKod,MAAMgyE,OAASpvF,KAAKynM,gBAAkB,IAAc,IAATxxE,GAChEsxE,GAAqB,GAAKvnM,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,YAC/Dj4G,EAAO,GACE24G,GAAkC,IAApB/nM,KAAKod,MAAMgyE,MAAsB,IAAR6mC,GAChDsxE,EAAoB,EACpBn4G,EAAOpvF,KAAKynM,gBAAkB,GACrBr4G,IAASpvF,KAAKynM,gBAAkB,GAAKznM,KAAK0nM,eAAiB,IACpEH,IAA4C,EAAvBvnM,KAAK0nM,eAAsB1nM,KAAKod,MAAMkqL,UAAYrxE,EACvEj2H,KAAKgoM,uBAAwB,GAG3BhoM,KAAKkoM,iBACPnoM,IAAWma,YAAYla,KAAKkoM,eAAgB,kBAC5CloM,KAAKmoM,eAAeZ,GACpBvnM,KAAKkoM,eAAe9nM,MAAMkrK,WAAa,2BAGrCtrK,KAAKxB,MAAM4nG,cACbpmG,KAAKwd,SAAS,CACZ+pL,kBAAmBA,IAErBvnM,KAAKxB,MAAM4nG,aAAa,CACtBhX,KAAMA,KAGRpvF,KAAKwd,SAAS,CACZ4xE,KAAMA,EACNm4G,kBAAmBA,MAIxB,CACDzpM,IAAK,oBACLhC,MAAO,WACL,GAAIkE,KAAKkoM,gBAAkBloM,KAAKooM,kBAAmB,CAOjD,IANA,IAAIC,EAAcznM,OAAOmB,WACrBumM,EAAwB,CAC1BjB,WAAYrnM,KAAKxB,MAAM6oM,WACvBC,UAAWtnM,KAAKxB,MAAM8oM,WAGf1sM,EAAI,EAAGA,EAAIoF,KAAKooM,kBAAkBztM,OAAQC,IAAK,CACtD,IAAIk3B,EAAM9xB,KAAKooM,kBAAkBxtM,GAE7B4c,SAASsa,EAAIsiH,WAAY,KAAOi0D,IAClCC,EAAwBx2K,GAI5B,IAAI1U,EAAQ,GAEZ,GAAIpd,KAAKod,MAAMkqL,YAAcgB,EAAsBhB,UAAW,CAC5D,IAAIl4G,EAAOpvF,KAAK+gJ,UAChB3xD,EAAOhqF,KAAKsmB,MAAM0jE,EAAOpvF,KAAKod,MAAMkqL,UAAYgB,EAAsBhB,WACtE,IAAIC,EAAoBe,EAAsBhB,UAAYl4G,GAAQ,EAE9DpvF,KAAK+nM,eACPR,GAAqBe,EAAsBjB,YAG7CjqL,EAAQ,CACNmqL,kBAAmBA,EACnBD,UAAWgB,EAAsBhB,WAG/BtnM,KAAKxB,MAAM4nG,aACbpmG,KAAKxB,MAAM4nG,aAAa,CACtBhX,KAAMA,IAGRhyE,EAAQ0H,EAAcA,EAAc,GAAI1H,GAAQ,GAAI,CAClDgyE,KAAMA,IAKRpvF,KAAKod,MAAMiqL,aAAeiB,EAAsBjB,aAClDjqL,EAAQ0H,EAAcA,EAAc,GAAI1H,GAAQ,GAAI,CAClDiqL,WAAYiB,EAAsBjB,cAIlCjrM,OAAOqS,KAAK2O,GAAOziB,QACrBqF,KAAKwd,SAASJ,MAInB,CACDtf,IAAK,cACLhC,MAAO,SAAqB0D,EAAG4vF,IACzBpvF,KAAK6nM,UAA+B,IAAnB7nM,KAAK+gJ,YACxB/gJ,KAAKJ,KAAK,EAAGwvF,GAGfpvF,KAAK2nM,eAAgB,EAEjBnoM,EAAEk+I,YACJl+I,EAAEyV,mBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,EAAG4vF,IACxBpvF,KAAK6nM,UAAY7nM,KAAK+gJ,UAAY/gJ,KAAKynM,gBAAkB,IAC3DznM,KAAKJ,MAAM,EAAGwvF,GAGhBpvF,KAAK2nM,eAAgB,EAEjBnoM,EAAEk+I,YACJl+I,EAAEyV,mBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,EAAG4vF,GAC5B,IAAI4wD,EAAchgJ,KAAK+gJ,UAEnB3xD,EAAO4wD,EACThgJ,KAAKqxH,WAAW7xH,EAAG4vF,GACVA,EAAO4wD,GAChBhgJ,KAAKoxH,YAAY5xH,EAAG4vF,KAGvB,CACDtxF,IAAK,kBACLhC,MAAO,WACDkE,KAAKkoM,iBACPnoM,IAAWya,SAASxa,KAAKkoM,eAAgB,kBACzCloM,KAAKkoM,eAAe9nM,MAAMkrK,WAAa,GAEd,IAApBtrK,KAAKod,MAAMgyE,MAAcpvF,KAAKod,MAAMgyE,OAASpvF,KAAKynM,gBAAkB,IAAMznM,KAAK+nM,cAClF/nM,KAAKmoM,eAAenoM,KAAKod,MAAMmqL,sBAIpC,CACDzpM,IAAK,eACLhC,MAAO,SAAsB0D,GAC3B,IAAI+oM,EAAW/oM,EAAE41L,eAAe,GAChCp1L,KAAKs8I,SAAW,CACdn2I,EAAGoiM,EAASjuL,MACZlU,EAAGmiM,EAAShuL,SAGf,CACDzc,IAAK,cACLhC,MAAO,SAAqB0D,GACtBA,EAAEk+I,YACJl+I,EAAEyV,mBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,GACzB,IAAI+oM,EAAW/oM,EAAE41L,eAAe,GAE5Bp1L,KAAK26C,aACP36C,KAAKwoM,kBAAkBhpM,EAAG+oM,EAAShuL,MAAQva,KAAKs8I,SAASl2I,GAEzDpG,KAAKwoM,kBAAkBhpM,EAAG+oM,EAASjuL,MAAQta,KAAKs8I,SAASn2I,KAG5D,CACDrI,IAAK,oBACLhC,MAAO,SAA2B0D,EAAGmxC,GAC/BvrC,KAAKgI,IAAIujC,GAAQ3wC,KAAK8nM,iBACpBn3J,EAAO,EAET3wC,KAAKqxH,WAAW7xH,GAGhBQ,KAAKoxH,YAAY5xH,MAItB,CACD1B,IAAK,wBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKuiB,yBACRviB,KAAKuiB,uBAAyB,WAC5B5H,EAAO8tL,qBAGT7nM,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,2BAG1C,CACDzkB,IAAK,0BACLhC,MAAO,WACDkE,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,aACLhC,MAAO,WACL,MAAkC,aAA3BkE,KAAKxB,MAAMw4I,cAEnB,CACDl5I,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAK6nM,UAAY7nM,KAAKxB,MAAM1C,MAAMnB,QAAUqF,KAAKod,MAAMiqL,aAE/D,CACDvpM,IAAK,UACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM4nG,aAAepmG,KAAKxB,MAAM4wF,KAAOpvF,KAAKod,MAAMgyE,OAE/D,CACDtxF,IAAK,qBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM1C,MAAQsJ,KAAK8hE,MAAMlnE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,YAAcrnM,KAAKod,MAAMkqL,WAAa,EAAI,IAErH,CACDxpM,IAAK,aACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMopM,kBAAoB5nM,KAAK2nM,gBAE5C,CACD7pM,IAAK,gBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEbA,KAAKg2H,SAAWhtH,aAAY,WACtBkY,EAAO9D,MAAMgyE,OAASluE,EAAOumL,gBAAkB,EACjDvmL,EAAOthB,MAAM,EAAG,GAEhBshB,EAAOthB,MAAM,EAAGshB,EAAO9D,MAAMgyE,KAAO,KAErCpvF,KAAKxB,MAAMopM,oBAEf,CACD9pM,IAAK,eACLhC,MAAO,WACDkE,KAAKg2H,UACP/sH,cAAcjJ,KAAKg2H,YAGtB,CACDl4H,IAAK,cACLhC,MAAO,WACAkE,KAAK0oM,gBACR1oM,KAAK0oM,cAAgBhoM,SAASsK,cAAc,SAC5CtK,SAAS2B,KAAKmH,YAAYxJ,KAAK0oM,gBAGjC,IAAI77L,EAAY,6BAA6B9O,OAAOiC,KAAK4wI,kBAAmB,oDAAoD7yI,OAAO,IAAMiC,KAAKod,MAAMiqL,WAAY,8BAEpK,GAAIrnM,KAAKxB,MAAM4pM,kBAAmB,CAChCpoM,KAAKooM,kBAAoBr7G,EAAmB/sF,KAAKxB,MAAM4pM,mBACvDpoM,KAAKooM,kBAAkBhpK,MAAK,SAAUm+D,EAAOC,GAC3C,IAAIkN,EAASnN,EAAM62C,WACfzpC,EAASnN,EAAM42C,WAKnB,OAAQ,GAHM,MAAV1pC,GAA4B,MAAVC,GAA0B,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAA6B,kBAAXD,GAAyC,kBAAXC,EAA8BD,EAAOthF,cAAcuhF,OAAQllG,EAAW,CAChRmlG,SAAS,IACMF,EAASC,GAAU,EAAID,EAASC,EAAS,EAAI,MAIhE,IAAK,IAAI/vG,EAAI,EAAGA,EAAIoF,KAAKooM,kBAAkBztM,OAAQC,IAAK,CACtD,IAAIk3B,EAAM9xB,KAAKooM,kBAAkBxtM,GACjCiS,GAAa,uDAAuD9O,OAAO+zB,EAAIsiH,WAAY,6CAA6Cr2I,OAAOiC,KAAK4wI,kBAAmB,gEAAgE7yI,OAAO,IAAM+zB,EAAIu1K,WAAY,0EAIxQrnM,KAAK0oM,cAAc77L,UAAYA,IAEhC,CACD/O,IAAK,iBACLhC,MAAO,SAAwByrM,GACzBvnM,KAAKkoM,iBACPloM,KAAKkoM,eAAe9nM,MAAM6lC,UAAYjmC,KAAK26C,aAAe,kBAAkB58C,OAAOwpM,GAAqB,IAAMvnM,KAAKod,MAAMiqL,YAAa,SAAW,eAAetpM,OAAOwpM,GAAqB,IAAMvnM,KAAKod,MAAMiqL,YAAa,eAG7N,CACDvpM,IAAK,oBACLhC,MAAO,WACDkE,KAAK8J,WACP9J,KAAK8J,UAAUqqF,aAAan0F,KAAK4wI,kBAAmB,IAGtD5wI,KAAKs0I,cACLt0I,KAAKyoM,oBACLzoM,KAAKmoM,eAAenoM,KAAKod,MAAMmqL,mBAE3BvnM,KAAKxB,MAAM4pM,mBACbpoM,KAAKm/K,0BAGR,CACDrhL,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GAC5C,IAAIskL,EAAa/nM,KAAK+nM,aAClBY,GAAe,EACfpB,EAAoBvnM,KAAKod,MAAMmqL,kBAMnC,GAJIvnM,KAAKxB,MAAMopM,kBACb5nM,KAAK4oM,eAGHnlL,EAAU6jL,YAActnM,KAAKod,MAAMkqL,WAAa7jL,EAAU4jL,aAAernM,KAAKod,MAAMiqL,YAAcrnM,KAAKxB,MAAM1C,OAAS0nB,EAAU1nB,OAAS0nB,EAAU1nB,MAAMnB,SAAWqF,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/LqF,KAAK0nM,gBAAkB1nM,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,YAAcrnM,KAAKod,MAAMkqL,UACrF,IAAIl4G,EAAOpvF,KAAK+gJ,UAEa,IAAzB/gJ,KAAKynM,iBAAyBr4G,GAAQpvF,KAAKynM,kBAC7Cr4G,EAAOpvF,KAAKynM,gBAAkB,EAE1BznM,KAAKxB,MAAM4nG,aACbpmG,KAAKxB,MAAM4nG,aAAa,CACtBhX,KAAMA,IAGRpvF,KAAKwd,SAAS,CACZ4xE,KAAMA,IAIVu5G,GAAe,GAGjBpB,EAAoBn4G,EAAOpvF,KAAKod,MAAMkqL,WAAa,EAE/CS,IACFR,GAAqBvnM,KAAKod,MAAMiqL,YAG9Bj4G,IAASpvF,KAAKynM,gBAAkB,GAAKznM,KAAK0nM,eAAiB,GAC7DH,IAAsB,EAAIvnM,KAAK0nM,eAAiB1nM,KAAKod,MAAMkqL,UAC3DtnM,KAAKgoM,uBAAwB,GAE7BhoM,KAAKgoM,uBAAwB,EAG3BT,IAAsBvnM,KAAKod,MAAMmqL,oBACnCvnM,KAAKwd,SAAS,CACZ+pL,kBAAmBA,IAErBoB,GAAe,GAGjB3oM,KAAKmoM,eAAeZ,GAGlBQ,IACsB,IAApB/nM,KAAKod,MAAMgyE,KACbm4G,GAAqB,EAAIvnM,KAAKod,MAAMiqL,WACL,IAAtBE,IACTA,GAAqB,EAAIvnM,KAAKxB,MAAM1C,MAAMnB,OAEtCqF,KAAK0nM,eAAiB,IACxB1nM,KAAKgoM,uBAAwB,IAI7BT,IAAsBvnM,KAAKod,MAAMmqL,oBACnCvnM,KAAKwd,SAAS,CACZ+pL,kBAAmBA,IAErBoB,GAAe,IAIfnlL,EAAU4rE,OAASpvF,KAAKxB,MAAM4wF,OAC5BpvF,KAAKxB,MAAM4wF,KAAO5rE,EAAU4rE,MAAQpvF,KAAKxB,MAAM4wF,MAAQpvF,KAAKynM,gBAAkB,EAChFznM,KAAKJ,MAAM,EAAGI,KAAKxB,MAAM4wF,MAChBpvF,KAAKxB,MAAM4wF,KAAO5rE,EAAU4rE,MACrCpvF,KAAKJ,KAAK,EAAGI,KAAKxB,MAAM4wF,QAIvBu5G,GAAgB3oM,KAAK6oM,cACxB7oM,KAAK8oM,kBAGR,CACDhrM,IAAK,uBACLhC,MAAO,WACDkE,KAAKxB,MAAM4pM,mBACbpoM,KAAKo/K,0BAGHp/K,KAAKxB,MAAMopM,kBACb5nM,KAAK4oM,iBAGR,CACD9qM,IAAK,cACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,GAAIA,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAQ,CAC/C,IAAIotM,EAAa/nM,KAAK+nM,aAClBgB,EAAyB,KACzBC,EAA0B,KAE9B,GAAIjB,EAAY,CACd,IAAIkB,EAAiB,KAErBF,GADAE,EAAiBjpM,KAAKxB,MAAM1C,MAAMS,OAAO,EAAIyD,KAAKod,MAAMiqL,aAChB1pM,KAAI,SAAUoM,EAAMsyD,GAC1D,IAAI8mD,GAA6C,EAAlCxhG,EAAOvE,MAAMmqL,oBAA2B5lL,EAAOnjB,MAAM1C,MAAMnB,OAASgnB,EAAOvE,MAAMiqL,WAC5FzxL,EAAkB,IAAVymD,EACRvpD,EAAMupD,IAAU4sI,EAAetuM,OAAS,EAC5C,OAAoBkgB,IAAM7P,cAAck8L,EAAc,CACpDppM,IAAKu+D,EAAQ,WACb9+D,UAAW,yBACX0rG,SAAUtnF,EAAOnjB,MAAMq2G,aACvB9qG,KAAMA,EACNo9L,OAAQhkF,EACRvtG,MAAOA,EACP9C,IAAKA,OAITk2L,GADAC,EAAiBjpM,KAAKxB,MAAM1C,MAAMS,MAAM,EAAGyD,KAAKod,MAAMiqL,aACb1pM,KAAI,SAAUoM,EAAMsyD,GAC3D,IAAI8mD,EAA8C,IAAnCxhG,EAAOvE,MAAMmqL,kBACxB3xL,EAAkB,IAAVymD,EACRvpD,EAAMupD,IAAU4sI,EAAetuM,OAAS,EAC5C,OAAoBkgB,IAAM7P,cAAck8L,EAAc,CACpDppM,IAAKu+D,EAAQ,WACb9+D,UAAW,yBACX0rG,SAAUtnF,EAAOnjB,MAAMq2G,aACvB9qG,KAAMA,EACNo9L,OAAQhkF,EACRvtG,MAAOA,EACP9C,IAAKA,OAKX,IAAIojG,EAAQl2G,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAUoM,EAAMsyD,GAC/C,IAAIwK,EAAakhI,GAAc,GAAKpmL,EAAOvE,MAAMmqL,kBAAoB5lL,EAAOvE,MAAMiqL,aAAgD,EAAlC1lL,EAAOvE,MAAMmqL,kBACzGxgI,EAAYF,EAAallD,EAAOvE,MAAMiqL,WAAa,EACnDlkF,EAAWt8C,GAAcxK,GAAS0K,GAAa1K,EAC/CzmD,EAAQixD,IAAexK,EACvBvpD,EAAMi0D,IAAc1K,EACxB,OAAoBxhD,IAAM7P,cAAck8L,EAAc,CACpDppM,IAAKu+D,EACL4sC,SAAUtnF,EAAOnjB,MAAMq2G,aACvB9qG,KAAMA,EACNo9L,OAAQhkF,EACRvtG,MAAOA,EACP9C,IAAKA,OAGT,OAAoB+H,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAM8iL,EAAwB7yF,EAAO8yF,MAGhG,CACDlrM,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMw8E,OACOngE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACVyC,KAAKxB,MAAMw8E,QAGT,OAER,CACDl9E,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM08E,OACOrgE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACVyC,KAAKxB,MAAM08E,QAGT,OAER,CACDp9E,IAAK,gBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAETk2G,EAAQl2G,KAAKu2G,cACbj1G,EAAStB,KAAK26C,aAAe36C,KAAKxB,MAAM0qM,uBAAyB,OACjE79D,EAAoBrrI,KAAKsrI,0BACzBC,EAAmBvrI,KAAKwrI,yBACxB31B,EAAqB54G,YAAW,uBAAwB+C,KAAKxB,MAAMq3G,oBACvE,OAAoBh7F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWs4G,GACVw1B,EAAgCxwH,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,2BACX6C,MAAO,CACL,OAAUkB,IAEEuZ,IAAM7P,cAAc,MAAO,CACzC8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO4lL,eAAiBjoM,GAEjC1C,UAAW,6BACXiqM,gBAAiBxnM,KAAKwnM,gBACtBrpD,aAAcn+I,KAAKm+I,aACnBE,YAAar+I,KAAKq+I,YAClBhoD,WAAYr2F,KAAKq2F,YAChB6f,IAASq1B,KAEb,CACDztI,IAAK,0BACLhC,MAAO,WACL,IAAIukB,IAAergB,KAAK6nM,UAAY7nM,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,aAAkC,IAAnBrnM,KAAK+gJ,UAC7G+X,EAAkB77J,YAAW,yBAA0B,CACzD,aAAcojB,IAEZ8wE,EAAgBl0F,YAAW,0BAA2B,CACxD,mBAAoB+C,KAAK26C,aACzB,gBAAiB36C,KAAK26C,eAExB,OAAoB9/B,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAWu7J,EACX94F,QAAShgE,KAAKoxH,YACd3xG,SAAUY,GACIxF,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,yBACLhC,MAAO,WACL,IAAIukB,IAAergB,KAAK6nM,UAAY7nM,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,cAAgBrnM,KAAK+gJ,YAAc/gJ,KAAKynM,gBAAkB,GAA8B,IAAzBznM,KAAKynM,iBAC7J3uC,EAAkB77J,YAAW,yBAA0B,CACzD,aAAcojB,IAEZ8wE,EAAgBl0F,YAAW,0BAA2B,CACxD,oBAAqB+C,KAAK26C,aAC1B,kBAAmB36C,KAAK26C,eAE1B,OAAoB9/B,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAWu7J,EACX94F,QAAShgE,KAAKqxH,WACd5xG,SAAUY,GACIxF,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,SAE9C,CACD7b,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,IAAI55C,EAASziB,KAETmjH,EAAWnjH,KAAK+gJ,YAAc1kF,EAC9B8sI,EAAyBlsM,YAAW,uBAAwB,CAC9D,cAAekmH,IAEjB,OAAoBtoG,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW4rM,EACXrrM,IAAK,wBAA0Bu+D,GACjBxhD,IAAM7P,cAAc,SAAU,CAC5CxN,KAAM,SACND,UAAW,SACXyiE,QAAS,SAAiBxgE,GACxB,OAAOijB,EAAO2mL,WAAW5pM,EAAG68D,KAEhBxhD,IAAM7P,cAAc2O,IAAQ,UAE7C,CACD7b,IAAK,mBACLhC,MAAO,WAIL,IAHA,IAAIutM,EAA6BpsM,YAAW,gCAAiC+C,KAAKxB,MAAM6qM,4BACpFC,EAAa,GAER1uM,EAAI,EAAGA,EAAIoF,KAAKynM,gBAAiB7sM,IACxC0uM,EAAWztM,KAAKmE,KAAKupM,gBAAgB3uM,IAGvC,OAAoBigB,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW8rM,GACVC,KAEJ,CACDxrM,IAAK,SACLhC,MAAO,WACL,IAAIwnB,EAAStjB,KAETzC,EAAYN,YAAW,yBAA0B,CACnD,sBAAuB+C,KAAK26C,aAC5B,yBAA0B36C,KAAK26C,cAC9B36C,KAAKxB,MAAMjB,WACVgoH,EAAmBtoH,YAAW,qBAAsB+C,KAAKxB,MAAM+mH,kBACnEvlH,KAAKynM,gBAAkBznM,KAAKwpM,qBAC5B,IAAIxqL,EAAUhf,KAAKy2G,gBACf6yF,EAAatpM,KAAKypM,mBAClBzuH,EAASh7E,KAAKi1I,eACd/5D,EAASl7E,KAAK0uI,eAClB,OAAoB7zH,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOqjB,EAAOxZ,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB46E,EAAqBngE,IAAM7P,cAAc,MAAO,CACjDzN,UAAWgoH,GACVvmG,EAASsqL,GAAapuH,OAItBksH,EA5pBmB,CA6pB1BpsL,aAEFxK,EAAgB42L,EAAU,eAAgB,CACxCtjL,GAAI,KACJhoB,MAAO,KACPszF,KAAM,EACNpU,OAAQ,KACRE,OAAQ,KACR96E,MAAO,KACP7C,UAAW,KACXs3G,aAAc,KACdgzF,UAAU,EACVD,iBAAkB,EAClBP,WAAY,EACZC,UAAW,EACXc,kBAAmB,KACnBpxD,YAAa,aACbkyD,uBAAwB,QACxB3jF,iBAAkB,KAClB1P,mBAAoB,KACpBwzF,2BAA4B,KAC5BjjG,aAAc,Q,6BC12BhB,6DAGA,SAASjoG,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASy7E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAASsf,EAAezD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pkd,GAA+B,OAAO,WAAkC,IAAsC5N,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAI46L,EAAqC,SAAU9vL,GACjDpB,EAAUkxL,EAAuB9vL,GAEjC,IAAIC,EAAS4C,EAAeitL,GAE5B,SAASA,EAAsBlrM,GAC7B,IAAI+G,EASJ,OAPApH,EAAgB6B,KAAM0pM,IAEtBnkM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB6yH,WAAa9rH,EAAM8rH,WAAWt3G,KAAK7B,EAAuB3S,IAChEA,EAAM6rH,YAAc7rH,EAAM6rH,YAAYr3G,KAAK7B,EAAuB3S,IAClEA,EAAM5J,KAAO4J,EAAM5J,KAAKoe,KAAK7B,EAAuB3S,IACpDA,EAAMglC,KAAOhlC,EAAMglC,KAAKxwB,KAAK7B,EAAuB3S,IAC7CA,EAwNT,OArNAzG,EAAa4qM,EAAuB,CAAC,CACnC5rM,IAAK,OACLhC,MAAO,SAAcugE,GACfr8D,KAAKkoM,iBACPloM,KAAKkoM,eAAe9nM,MAAM6lC,UAAYjmC,KAAK26C,aAAe,kBAAkB58C,OAAe,IAARs+D,EAAa,SAAW,eAAet+D,OAAe,IAARs+D,EAAa,YAC9Ir8D,KAAKkoM,eAAe9nM,MAAMkrK,WAAa,6BAG1C,CACDxtK,IAAK,OACLhC,MAAO,WACL,IAAI6tM,EAAgB3pM,KAAKxB,MAAMorM,gBAAkB,EACjD5pM,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOr8D,KAAKxB,MAAMqpM,UAAY7nM,KAAKxB,MAAM1C,MAAMnB,OAAS,IAAMqF,KAAKxB,MAAMorM,gBAAkB,EAAID,MAGlG,CACD7rM,IAAK,OACLhC,MAAO,WACL,IAAIguM,EAA+C,IAA/B9pM,KAAKxB,MAAMorM,gBAAwB5pM,KAAKxB,MAAMorM,gBAAkB,EAAI,EACxF5pM,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOr8D,KAAKxB,MAAMqpM,UAA2C,IAA/B7nM,KAAKxB,MAAMorM,gBAAwB5pM,KAAKxB,MAAM1C,MAAMnB,OAAS,EAAImvM,MAGlG,CACDhsM,IAAK,gBACLhC,MAAO,WACDkE,KAAKxB,MAAMurM,iBAAmB/pM,KAAKxB,MAAMwrM,eAC3ChqM,KAAKxB,MAAMwrM,kBAGd,CACDlsM,IAAK,cACLhC,MAAO,SAAqB0D,GAC1BQ,KAAKgqM,gBACLhqM,KAAKuqC,OAED/qC,GAAKA,EAAEk+I,YACTl+I,EAAEyV,mBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,GACzBQ,KAAKgqM,gBACLhqM,KAAKrE,OAED6D,GAAKA,EAAEk+I,YACTl+I,EAAEyV,mBAGL,CACDnX,IAAK,mBACLhC,MAAO,SAA0BugE,GAC/Br8D,KAAKgqM,gBACLhqM,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOA,MAGV,CACDv+D,IAAK,wBACLhC,MAAO,SAA+BugE,GAChCr8D,KAAKxB,MAAMyrM,6BACbjqM,KAAKgqM,gBACLhqM,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOA,OAIZ,CACDv+D,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOgoD,GACpB,KAAhBhoD,EAAMM,QACR3U,KAAKgqM,gBACLhqM,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOA,OAIZ,CACDv+D,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAM0rM,UACblqM,KAAKxB,MAAM2rM,mBAGd,CACDrsM,IAAK,0BACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM4rM,mBAAoB,CACjC,IAAI/pL,GAAcrgB,KAAKxB,MAAMqpM,UAA2C,IAA/B7nM,KAAKxB,MAAMorM,gBAChD9wC,EAAkB77J,YAAW,kDAAmD,CAClF,aAAcojB,IAEhB,OAAoBxF,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAWu7J,EACX94F,QAAShgE,KAAKoxH,YACd3xG,SAAUY,GACIxF,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,iDACIsd,IAAM7P,cAAc2O,IAAQ,OAG/C,OAAO,OAER,CACD7b,IAAK,yBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM4rM,mBAAoB,CACjC,IAAI/pL,GAAcrgB,KAAKxB,MAAMqpM,UAAY7nM,KAAKxB,MAAMorM,kBAAoB5pM,KAAKxB,MAAM1C,MAAMnB,OAAS,EAC9Fm+J,EAAkB77J,YAAW,kDAAmD,CAClF,aAAcojB,IAEhB,OAAoBxF,IAAM7P,cAAc,SAAU,CAChDxN,KAAM,SACND,UAAWu7J,EACX94F,QAAShgE,KAAKqxH,WACd5xG,SAAUY,GACIxF,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,kDACIsd,IAAM7P,cAAc2O,IAAQ,OAG/C,OAAO,OAER,CACD7b,IAAK,gBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM6rM,QAAS,CACtB,IAAIrrL,EAAUhf,KAAKxB,MAAM6rM,QAAQrqM,KAAKxB,MAAM1C,MAAMkE,KAAKxB,MAAMorM,kBAC7D,OAAoB/uL,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,sBACVyhB,GAGL,OAAO,OAER,CACDlhB,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,IAAI1hD,EAAS3a,KAETsqM,EAAYtqM,KAAKxB,MAAM8rM,WAAatqM,KAAKxB,MAAM8rM,UAAUjuI,GACzD8mD,EAAWnjH,KAAKxB,MAAMorM,kBAAoBvtI,EAC1C8sI,EAAyBlsM,YAAW,uBAAwB,CAC9D,cAAekmH,IAWjB,OARKmnF,IACHA,EAAyBzvL,IAAM7P,cAAc,SAAU,CACrDxN,KAAM,SACNsnE,UAAW,EACXvnE,UAAW,UACGsd,IAAM7P,cAAc2O,IAAQ,QAG1BkB,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW4rM,EACXrrM,IAAK,wBAA0Bu+D,EAC/ByI,SAAU,EACV9E,QAAS,WACP,OAAOrlD,EAAO4vL,iBAAiBluI,IAEjCj9C,aAAc,WACZ,OAAOzE,EAAO6vL,sBAAsBnuI,IAEtC5nD,UAAW,SAAmBjV,GAC5B,OAAOmb,EAAO8vL,mBAAmBjrM,EAAG68D,KAErCiuI,KAEJ,CACDxsM,IAAK,mBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMksM,eAAgB,CAI7B,IAHA,IAAIrB,EAA6BpsM,YAAW,gCAAiC+C,KAAKxB,MAAM6qM,4BACpFC,EAAa,GAER1uM,EAAI,EAAGA,EAAIoF,KAAKxB,MAAM1C,MAAMnB,OAAQC,IAC3C0uM,EAAWztM,KAAKmE,KAAKupM,gBAAgB3uM,IAGvC,OAAoBigB,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW8rM,GACVC,GAGL,OAAO,OAER,CACDxrM,IAAK,SACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAETgf,EAAUhf,KAAKxB,MAAMq2G,cAAgB70G,KAAKxB,MAAMq2G,aAAa70G,KAAKxB,MAAM1C,MAAMkE,KAAKxB,MAAMorM,kBACzFv+D,EAAoBrrI,KAAKsrI,0BACzBC,EAAmBvrI,KAAKwrI,yBACxB6+D,EAAUrqM,KAAK2qM,gBACfrB,EAAatpM,KAAKypM,mBACtB,OAAoB5uL,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOihB,EAAO1iB,MAAMo6E,WAAW34E,IAEjC1C,UAAW,2BACGsd,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,6BACV8tI,EAAgCxwH,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,mBACVyhB,GAAUusH,EAAkB8+D,GAAUf,OAItCI,EAvOgC,CAwOvC1uL,aAEE4vL,EAA4B/vL,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GAChE,OAAoBD,IAAM7P,cAAc0+L,EAAuBjxH,EAAS,CACtEG,WAAY99D,GACXtc,OAGL,SAASkR,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAStvE,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAIha,IAAI+7L,EAAqC,SAAUjxL,GACjDpB,EAAUqyL,EAAuBjxL,GAEjC,IAAIC,EAASgE,EAAegtL,GAE5B,SAASA,EAAsBrsM,GAC7B,IAAI+G,EAOJ,OALApH,EAAgB6B,KAAM6qM,IAEtBtlM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBm8I,YAAcp1I,EAAMo1I,YAAY5gI,KAAK7B,EAAuB3S,IAClEA,EAAMg6K,cAAgBh6K,EAAMg6K,cAAcxlK,KAAK7B,EAAuB3S,IAC/DA,EA0CT,OAvCAzG,EAAa+rM,EAAuB,CAAC,CACnC/sM,IAAK,cACLhC,MAAO,SAAqBuY,GAC1BrU,KAAKxB,MAAMm8I,YAAY,CACrBhlI,cAAetB,EACfgoD,MAAOr8D,KAAKxB,MAAM69D,UAGrB,CACDv+D,IAAK,gBACLhC,MAAO,SAAuBuY,GACR,KAAhBA,EAAMM,OACR3U,KAAKxB,MAAMm8I,YAAY,CACrBhlI,cAAetB,EACfgoD,MAAOr8D,KAAKxB,MAAM69D,UAIvB,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKxB,MAAMyqG,UAAYjpG,KAAKxB,MAAMyqG,SAASjpG,KAAKxB,MAAMuL,MAChEkzL,EAAgBhgM,YAAW+C,KAAKxB,MAAMjB,UAAW,4BAA6B,CAChF,oCAAqCyC,KAAKxB,MAAMuQ,QAChD,mCAAoC/O,KAAKxB,MAAM2oM,OAC/C,kCAAmCnnM,KAAKxB,MAAMoX,MAC9C,gCAAiC5V,KAAKxB,MAAMsU,MAE9C,OAAoB+H,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW0/L,GACGpiL,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,oCACXunE,SAAU9kE,KAAKxB,MAAM2oM,OAAS,EAAI,KAClCnnI,QAAShgE,KAAK26I,YACdlmI,UAAWzU,KAAKu/K,eACfvgK,QAIA6rL,EAvDgC,CAwDvC7vL,aAEFxK,EAAgBq6L,EAAuB,eAAgB,CACrDxuI,MAAO,KACP4sC,SAAU,KACVl/F,KAAM,KACNgF,SAAS,EACTo4L,QAAQ,EACRvxL,OAAO,EACP9C,KAAK,EACLvV,UAAW,KACXo9I,YAAa,OAGf,IAAImwD,EAAkC,SAAUrlF,GAC9CjtG,EAAUsyL,EAAoBrlF,GAE9B,IAAIC,EAAU7nG,EAAeitL,GAE7B,SAASA,EAAmBtsM,GAC1B,IAAImc,EAkBJ,OAhBAxc,EAAgB6B,KAAM8qM,IAEtBnwL,EAAS+qG,EAAQhqH,KAAKsE,KAAMxB,IACrB4e,MAAQ,CACbiqL,WAAY7oM,EAAM6oM,WAClBE,kBAAmB,EACnBn4G,KAAM,GAERz0E,EAAO02G,WAAa12G,EAAO02G,WAAWt3G,KAAK7B,EAAuByC,IAClEA,EAAOy2G,YAAcz2G,EAAOy2G,YAAYr3G,KAAK7B,EAAuByC,IACpEA,EAAO6sL,gBAAkB7sL,EAAO6sL,gBAAgBztL,KAAK7B,EAAuByC,IAC5EA,EAAOwjI,aAAexjI,EAAOwjI,aAAapkI,KAAK7B,EAAuByC,IACtEA,EAAO0jI,YAAc1jI,EAAO0jI,YAAYtkI,KAAK7B,EAAuByC,IACpEA,EAAO07E,WAAa17E,EAAO07E,WAAWt8E,KAAK7B,EAAuByC,IAClEA,EAAOggI,YAAchgI,EAAOggI,YAAY5gI,KAAK7B,EAAuByC,IACpEA,EAAOi2H,kBAAoBh6H,cACpB+D,EA4YT,OAzYA7b,EAAagsM,EAAoB,CAAC,CAChChtM,IAAK,OACLhC,MAAO,SAAcm6H,GACnB,IAAIsxE,EAAoBvnM,KAAKod,MAAMmqL,kBAAoBtxE,EAEnDA,EAAM,IAAM,EAAIsxE,EAAoBvnM,KAAKod,MAAMiqL,WAAarnM,KAAKxB,MAAM1C,MAAMnB,OAAS,EACxF4sM,EAAoBvnM,KAAKod,MAAMiqL,WAAarnM,KAAKxB,MAAM1C,MAAMnB,OACpDs7H,EAAM,GAAKsxE,EAAoB,IACxCA,EAAoB,GAGlBvnM,KAAKxB,MAAMqpM,WACT5xE,EAAM,GAAKj2H,KAAKxB,MAAM1C,MAAMnB,OAAS,IAAMqF,KAAKxB,MAAMorM,gBACxDrC,EAAoB,EACXtxE,EAAM,GAAoC,IAA/Bj2H,KAAKxB,MAAMorM,kBAC/BrC,EAAoBvnM,KAAKod,MAAMiqL,WAAarnM,KAAKxB,MAAM1C,MAAMnB,SAI7DqF,KAAKkoM,iBACPnoM,IAAWma,YAAYla,KAAKkoM,eAAgB,kBAC5CloM,KAAKkoM,eAAe9nM,MAAM6lC,UAAYjmC,KAAKxB,MAAMm8C,WAAa,kBAAkB58C,OAAOwpM,GAAqB,IAAMvnM,KAAKod,MAAMiqL,YAAa,SAAW,eAAetpM,OAAOwpM,GAAqB,IAAMvnM,KAAKod,MAAMiqL,YAAa,YAC9NrnM,KAAKkoM,eAAe9nM,MAAMkrK,WAAa,2BAGzCtrK,KAAKwd,SAAS,CACZ+pL,kBAAmBA,MAGtB,CACDzpM,IAAK,gBACLhC,MAAO,WACDkE,KAAKxB,MAAMurM,iBAAmB/pM,KAAKxB,MAAMwrM,eAC3ChqM,KAAKxB,MAAMwrM,kBAGd,CACDlsM,IAAK,qBACLhC,MAAO,WACL,IAAIugE,EAAQj3D,KAAKsmB,MAAM1rB,KAAKod,MAAMiqL,WAAa,GAC/C,OAAOrnM,KAAKod,MAAMiqL,WAAa,EAAIhrI,EAAQA,EAAQ,IAEpD,CACDv+D,IAAK,cACLhC,MAAO,SAAqB0D,GAC1BQ,KAAKgqM,gBACL,IAAIF,EAA+C,IAA/B9pM,KAAKxB,MAAMorM,gBAAwB5pM,KAAKxB,MAAMorM,gBAAkB,EAAI,EACpFj5J,EAAOm5J,EAAgB9pM,KAAKod,MAAMmqL,kBAElCvnM,KAAKod,MAAMiqL,WAAa12J,EAAO,EAAI3wC,KAAK+qM,wBAA0B,EAAI/qM,KAAKod,MAAMmqL,oBAAsB,GAAKvnM,KAAKxB,MAAMqpM,WACzH7nM,KAAKJ,KAAK,GAGZI,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOr8D,KAAKxB,MAAMqpM,UAA2C,IAA/B7nM,KAAKxB,MAAMorM,gBAAwB5pM,KAAKxB,MAAM1C,MAAMnB,OAAS,EAAImvM,IAG7FtqM,EAAEk+I,YACJl+I,EAAEyV,mBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,GACzBQ,KAAKgqM,gBACL,IAAIL,EAAgB3pM,KAAKxB,MAAMorM,gBAAkB,EAE7CD,EAAgB3pM,KAAKod,MAAMmqL,kBAAoBvnM,KAAK+qM,wBAA0B,EAAI/qM,KAAKod,MAAMmqL,kBAAoBvnM,KAAKgrM,qBAAuB,GAAKhrM,KAAKxB,MAAMqpM,WAC/J7nM,KAAKJ,MAAM,GAGbI,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOr8D,KAAKxB,MAAMqpM,UAAY7nM,KAAKxB,MAAM1C,MAAMnB,OAAS,IAAMqF,KAAKxB,MAAMorM,gBAAkB,EAAID,IAG7FnqM,EAAEk+I,YACJl+I,EAAEyV,mBAGL,CACDnX,IAAK,cACLhC,MAAO,SAAqBuY,GAC1BrU,KAAKgqM,gBACL,IAAInQ,EAAoBxlL,EAAMgoD,MAE9B,GAAIw9H,IAAsB75L,KAAKxB,MAAMorM,gBAAiB,CACpD,IAAIj5J,EAAOkpJ,EAAoB75L,KAAKod,MAAMmqL,kBACtCtxE,EAAM,EAEN4jE,EAAoB75L,KAAKxB,MAAMorM,iBACjC3zE,EAAMj2H,KAAKod,MAAMiqL,WAAa12J,EAAO,EAAI3wC,KAAK+qM,sBAEpC,IAAM,EAAI/qM,KAAKod,MAAMmqL,oBAAsB,GACnDvnM,KAAKJ,KAAKq2H,IAGZA,EAAMj2H,KAAK+qM,qBAAuBp6J,GAExB,IAAM,EAAI3wC,KAAKod,MAAMmqL,kBAAoBvnM,KAAKgrM,qBAAuB,GAC7EhrM,KAAKJ,KAAKq2H,GAIdj2H,KAAKxB,MAAMqrM,mBAAmB,CAC5BxtI,MAAOw9H,OAIZ,CACD/7L,IAAK,kBACLhC,MAAO,SAAyB0D,GAC1BQ,KAAKkoM,gBAAqC,cAAnB1oM,EAAEyrM,eAC3BlrM,IAAWya,SAASxa,KAAKkoM,eAAgB,kBACzCloM,KAAKkoM,eAAe9nM,MAAMkrK,WAAa,MAG1C,CACDxtK,IAAK,eACLhC,MAAO,SAAsB0D,GAC3B,IAAI+oM,EAAW/oM,EAAE41L,eAAe,GAChCp1L,KAAKs8I,SAAW,CACdn2I,EAAGoiM,EAASjuL,MACZlU,EAAGmiM,EAAShuL,SAGf,CACDzc,IAAK,cACLhC,MAAO,SAAqB0D,GACtBA,EAAEk+I,YACJl+I,EAAEyV,mBAGL,CACDnX,IAAK,aACLhC,MAAO,SAAoB0D,GACzB,IAAI+oM,EAAW/oM,EAAE41L,eAAe,GAE5Bp1L,KAAKxB,MAAMm8C,WACb36C,KAAKwoM,kBAAkBhpM,EAAG+oM,EAAShuL,MAAQva,KAAKs8I,SAASl2I,GAEzDpG,KAAKwoM,kBAAkBhpM,EAAG+oM,EAASjuL,MAAQta,KAAKs8I,SAASn2I,KAG5D,CACDrI,IAAK,oBACLhC,MAAO,SAA2B0D,EAAGmxC,GAC/BA,EAAO,EAET3wC,KAAKqxH,WAAW7xH,GAGhBQ,KAAKoxH,YAAY5xH,KAGpB,CACD1B,IAAK,qBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,WAAarnM,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,WAAa,EAAI,IAEhH,CACDvpM,IAAK,cACLhC,MAAO,WACAkE,KAAKkrM,kBACRlrM,KAAKkrM,gBAAkBxqM,SAASsK,cAAc,SAC9CtK,SAAS2B,KAAKmH,YAAYxJ,KAAKkrM,kBAGjC,IAAIr+L,EAAY,6CAA6C9O,OAAOiC,KAAK4wI,kBAAmB,8DAA8D7yI,OAAO,IAAMiC,KAAKod,MAAMiqL,WAAY,8BAE9L,GAAIrnM,KAAKxB,MAAM4pM,kBAAmB,CAChCpoM,KAAKooM,kBAAoBr7G,EAAmB/sF,KAAKxB,MAAM4pM,mBACvDpoM,KAAKooM,kBAAkBhpK,MAAK,SAAUm+D,EAAOC,GAC3C,IAAIkN,EAASnN,EAAM62C,WACfzpC,EAASnN,EAAM42C,WAKnB,OAAQ,GAHM,MAAV1pC,GAA4B,MAAVC,GAA0B,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAAqB,MAAVD,GAA4B,MAAVC,EAAyB,EAA6B,kBAAXD,GAAyC,kBAAXC,EAA8BD,EAAOthF,cAAcuhF,OAAQllG,EAAW,CAChRmlG,SAAS,IACMF,EAASC,GAAU,EAAID,EAASC,EAAS,EAAI,MAIhE,IAAK,IAAI/vG,EAAI,EAAGA,EAAIoF,KAAKooM,kBAAkBztM,OAAQC,IAAK,CACtD,IAAIk3B,EAAM9xB,KAAKooM,kBAAkBxtM,GACjCiS,GAAa,uDAAuD9O,OAAO+zB,EAAIsiH,WAAY,6DAA6Dr2I,OAAOiC,KAAK4wI,kBAAmB,0EAA0E7yI,OAAO,IAAM+zB,EAAIu1K,WAAY,0EAIlSrnM,KAAKkrM,gBAAgBr+L,UAAYA,IAElC,CACD/O,IAAK,oBACLhC,MAAO,WACL,GAAIkE,KAAKkoM,gBAAkBloM,KAAKooM,kBAAmB,CAMjD,IALA,IAAIC,EAAcznM,OAAOmB,WACrBumM,EAAwB,CAC1BjB,WAAYrnM,KAAKxB,MAAM6oM,YAGhBzsM,EAAI,EAAGA,EAAIoF,KAAKooM,kBAAkBztM,OAAQC,IAAK,CACtD,IAAIk3B,EAAM9xB,KAAKooM,kBAAkBxtM,GAE7B4c,SAASsa,EAAIsiH,WAAY,KAAOi0D,IAClCC,EAAwBx2K,GAIxB9xB,KAAKod,MAAMiqL,aAAeiB,EAAsBjB,YAClDrnM,KAAKwd,SAAS,CACZ6pL,WAAYiB,EAAsBjB,gBAKzC,CACDvpM,IAAK,wBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKuiB,yBACRviB,KAAKuiB,uBAAyB,WAC5BrB,EAAOunL,qBAGT7nM,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,2BAG1C,CACDzkB,IAAK,0BACLhC,MAAO,WACDkE,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,oBACLhC,MAAO,WACDkE,KAAKkoM,gBACPloM,KAAKkoM,eAAe/zG,aAAan0F,KAAK4wI,kBAAmB,IAG3D5wI,KAAKs0I,cACLt0I,KAAKyoM,oBAEDzoM,KAAKxB,MAAM4pM,mBACbpoM,KAAKm/K,0BAGR,CACDrhL,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GAC5C,IAAI8jL,EAAoBvnM,KAAKod,MAAMmqL,kBAE/B9jL,EAAU4jL,aAAernM,KAAKod,MAAMiqL,YAAc7jL,EAAUomL,kBAAoB5pM,KAAKxB,MAAMorM,mBAE3FrC,EADEvnM,KAAKxB,MAAMorM,iBAAmB5pM,KAAK+qM,qBACjB,EACX/qM,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,WAAarnM,KAAK+qM,qBAAuB/qM,KAAKxB,MAAMorM,gBAC9E5pM,KAAKod,MAAMiqL,WAAarnM,KAAKxB,MAAM1C,MAAMnB,OACpDqF,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,WAAarnM,KAAKxB,MAAMorM,iBAAmB5pM,KAAKod,MAAMiqL,WAAa,IAAM,GACrE,EAA9BrnM,KAAKxB,MAAMorM,gBAAuB5pM,KAAK+qM,qBAAuB,GAEhC,EAA9B/qM,KAAKxB,MAAMorM,gBAAuB5pM,KAAK+qM,wBAGnC/qM,KAAKod,MAAMmqL,mBACnCvnM,KAAKwd,SAAS,CACZ+pL,kBAAmBA,IAIvBvnM,KAAKkoM,eAAe9nM,MAAM6lC,UAAYjmC,KAAKxB,MAAMm8C,WAAa,kBAAkB58C,OAAOwpM,GAAqB,IAAMvnM,KAAKod,MAAMiqL,YAAa,SAAW,eAAetpM,OAAOwpM,GAAqB,IAAMvnM,KAAKod,MAAMiqL,YAAa,YAE1N7jL,EAAUomL,kBAAoB5pM,KAAKxB,MAAMorM,kBAC3C7pM,IAAWma,YAAYla,KAAKkoM,eAAgB,kBAC5CloM,KAAKkoM,eAAe9nM,MAAMkrK,WAAa,8BAI5C,CACDxtK,IAAK,uBACLhC,MAAO,WACDkE,KAAKxB,MAAM4pM,mBACbpoM,KAAKo/K,4BAGR,CACDthL,IAAK,cACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,OAAOA,KAAKxB,MAAM1C,MAAM6B,KAAI,SAAUoM,EAAMsyD,GAC1C,IAAIwK,GAA+C,EAAlCllD,EAAOvE,MAAMmqL,kBAC1BxgI,EAAYF,EAAallD,EAAOvE,MAAMiqL,WAAa,EACnDlkF,EAAWt8C,GAAcxK,GAAS0K,GAAa1K,EAC/CzmD,EAAQixD,IAAexK,EACvBvpD,EAAMi0D,IAAc1K,EACpBttD,EAAU4S,EAAOnjB,MAAMorM,kBAAoBvtI,EAC/C,OAAoBxhD,IAAM7P,cAAc6/L,EAAuB,CAC7D/sM,IAAKu+D,EACLA,MAAOA,EACP4sC,SAAUtnF,EAAOnjB,MAAMq2G,aACvB9qG,KAAMA,EACNo9L,OAAQhkF,EACRvtG,MAAOA,EACP9C,IAAKA,EACL6nI,YAAah5H,EAAOg5H,YACpB5rI,QAASA,SAId,CACDjR,IAAK,0BACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM2sM,wBAAyB,CACtC,IAAI9qL,GAAcrgB,KAAKxB,MAAMqpM,UAA2C,IAA/B7nM,KAAKxB,MAAMorM,iBAAyB5pM,KAAKxB,MAAM1C,MAAMnB,QAAUqF,KAAKod,MAAMiqL,WAC/GvuC,EAAkB77J,YAAW,mCAAoC,CACnE,aAAcojB,IAEZ8wE,EAAgBl0F,YAAW,oCAAqC,CAClE,mBAAoB+C,KAAKxB,MAAMm8C,WAC/B,gBAAiB36C,KAAKxB,MAAMm8C,aAE9B,OAAoB9/B,IAAM7P,cAAc,SAAU,CAChDzN,UAAWu7J,EACX94F,QAAShgE,KAAKoxH,YACd3xG,SAAUY,GACIxF,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAG/C,OAAO,OAER,CACD7b,IAAK,yBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM2sM,wBAAyB,CACtC,IAAI9qL,GAAcrgB,KAAKxB,MAAMqpM,UAAY7nM,KAAKxB,MAAMorM,kBAAoB5pM,KAAKxB,MAAM1C,MAAMnB,OAAS,GAAKqF,KAAKxB,MAAM1C,MAAMnB,QAAUqF,KAAKod,MAAMiqL,WACzIvuC,EAAkB77J,YAAW,mCAAoC,CACnE,aAAcojB,IAEZ8wE,EAAgBl0F,YAAW,oCAAqC,CAClE,oBAAqB+C,KAAKxB,MAAMm8C,WAChC,kBAAmB36C,KAAKxB,MAAMm8C,aAEhC,OAAoB9/B,IAAM7P,cAAc,SAAU,CAChDzN,UAAWu7J,EACX94F,QAAShgE,KAAKqxH,WACd5xG,SAAUY,GACIxF,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,OAG/C,OAAO,OAER,CACD7b,IAAK,gBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAETk2G,EAAQl2G,KAAKu2G,cACbj1G,EAAStB,KAAKxB,MAAMm8C,WAAa36C,KAAKxB,MAAM4kE,cAAgB,GAC5DioE,EAAoBrrI,KAAKsrI,0BACzBC,EAAmBvrI,KAAKwrI,yBAC5B,OAAoB3wH,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,kCACV8tI,EAAgCxwH,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,uCACX6C,MAAO,CACL,OAAUkB,IAEEuZ,IAAM7P,cAAc,MAAO,CACzC8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO4lL,eAAiBjoM,GAEjC1C,UAAW,6BACXiqM,gBAAiBxnM,KAAKwnM,gBACtBrpD,aAAcn+I,KAAKm+I,aACnBE,YAAar+I,KAAKq+I,YAClBhoD,WAAYr2F,KAAKq2F,YAChB6f,IAASq1B,KAEb,CACDztI,IAAK,SACLhC,MAAO,WACL,IAAIkjB,EAAUhf,KAAKy2G,gBACnB,OAAoB57F,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,gCACVyhB,OAIA8rL,EApa6B,CAqapC9vL,aAEF,SAAS6J,EAAQnU,EAAQC,GAAkB,IAAIlC,EAAOrS,OAAOqS,KAAKiC,GAAS,GAAItU,OAAOwU,sBAAuB,CAAE,IAAIC,EAAUzU,OAAOwU,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ7S,QAAO,SAAU8S,GAAO,OAAO1U,OAAO2U,yBAAyBL,EAAQI,GAAKpS,eAAkB+P,EAAK5S,KAAKyN,MAAMmF,EAAMoC,GAAY,OAAOpC,EAElV,SAASqW,EAAcvmB,GAAU,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CAAE,IAAIqW,EAAyB,MAAhB9T,UAAUvC,GAAauC,UAAUvC,GAAK,GAAQA,EAAI,EAAKiqB,EAAQzoB,OAAO6U,IAAS,GAAMC,SAAQ,SAAUpT,GAAO0S,EAAgBjS,EAAQT,EAAKmT,EAAOnT,OAAsB1B,OAAO+U,0BAA6B/U,OAAOgV,iBAAiB7S,EAAQnC,OAAO+U,0BAA0BF,IAAmB4T,EAAQzoB,OAAO6U,IAASC,SAAQ,SAAUpT,GAAO1B,OAAOyC,eAAeN,EAAQT,EAAK1B,OAAO2U,yBAAyBE,EAAQnT,OAAe,OAAOS,EAE7gB,SAASwmB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIs8L,EAAwB,SAAUxxL,GACpCpB,EAAU4yL,EAAUxxL,GAEpB,IAAIC,EAASkL,EAAaqmL,GAE1B,SAASA,EAAS5sM,GAChB,IAAI+G,EA4BJ,OA1BApH,EAAgB6B,KAAMorM,IAEtB7lM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAS,EACT+pL,WAAY7oM,EAAM6oM,WAClB0C,iBAAiB,GAGdxkM,EAAM/G,MAAM6sM,eACf9lM,EAAM6X,MAAQ0H,EAAcA,EAAc,GAAIvf,EAAM6X,OAAQ,GAAI,CAC9DwoG,YAAapnH,EAAMonH,eAIvBrgH,EAAMskM,mBAAqBtkM,EAAMskM,mBAAmB9vL,KAAK7B,EAAuB3S,IAChFA,EAAM2Z,KAAO3Z,EAAM2Z,KAAKnF,KAAK7B,EAAuB3S,IACpDA,EAAM4Z,KAAO5Z,EAAM4Z,KAAKpF,KAAK7B,EAAuB3S,IACpDA,EAAM4kM,eAAiB5kM,EAAM4kM,eAAepwL,KAAK7B,EAAuB3S,IACxEA,EAAMykM,cAAgBzkM,EAAMykM,cAAcjwL,KAAK7B,EAAuB3S,IACtEA,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM4f,WAAa5f,EAAM4f,WAAWpL,KAAK7B,EAAuB3S,IAChEA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAM+lM,YAA2BzwL,IAAMmL,YAChCzgB,EAyQT,OAtQAzG,EAAassM,EAAU,CAAC,CACtBttM,IAAK,kBACLyZ,IAAK,WACH,OAAOvX,KAAKxB,MAAM6sM,aAAerrM,KAAKxB,MAAMonH,YAAc5lH,KAAKod,MAAMwoG,cAEtE,CACD9nH,IAAK,qBACLhC,MAAO,SAA4BuY,GAC7BrU,KAAKxB,MAAM6sM,aACbrrM,KAAKxB,MAAM6sM,aAAah3L,GAExBrU,KAAKwd,SAAS,CACZooG,YAAavxG,EAAMgoD,UAIxB,CACDv+D,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZF,SAAS,MAGZ,CACDxf,IAAK,OACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZF,SAAS,MAGZ,CACDxf,IAAK,UACLhC,MAAO,WACLiE,IAAWya,SAAS9Z,SAAS2B,KAAM,uBAEpC,CACDvE,IAAK,aACLhC,MAAO,WACLgb,IAAYW,IAAI,QAASzX,KAAKqR,KAAMrR,KAAKxB,MAAM4Y,YAC/CrX,IAAWukI,mBAAmBtkI,KAAKqR,KAAM,mDAE1C,CACDvT,IAAK,YACLhC,MAAO,WACLkE,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,SACLhC,MAAO,WACLiE,IAAWma,YAAYxZ,SAAS2B,KAAM,qBACtCtC,IAAWya,SAASxa,KAAKqR,KAAM,+BAEhC,CACDvT,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKqR,MACvBrR,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,mBACLhC,MAAO,WACL,OAAOkE,KAAKod,MAAM2sL,kBAEnB,CACDjsM,IAAK,iBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEbA,KAAKg2H,SAAWhtH,aAAY,WAC1B,IAAI48G,EAAcjrG,EAAOnc,MAAMqpM,UAAYltL,EAAOnc,MAAM1C,MAAMnB,OAAS,IAAMggB,EAAOivL,gBAAkB,EAAIjvL,EAAOivL,gBAAkB,EAEnIjvL,EAAOkvL,mBAAmB,CACxBxtI,MAAOupD,MAER5lH,KAAKxB,MAAM+sM,oBACdvrM,KAAKwd,SAAS,CACZusL,iBAAiB,MAGpB,CACDjsM,IAAK,gBACLhC,MAAO,WACDkE,KAAKg2H,UACP/sH,cAAcjJ,KAAKg2H,UAGrBh2H,KAAKwd,SAAS,CACZusL,iBAAiB,MAGpB,CACDjsM,IAAK,uBACLhC,MAAO,SAA8B0vM,EAActlM,GACjD,IACI6N,EADY,CAAC,MAAO,OAAQ,SAAU,SACtBjI,MAAK,SAAU/B,GACjC,OAAOA,IAAS7D,KAElB,OAAO6N,EAAM,GAAGhW,OAAOytM,EAAc,KAAKztM,OAAOgW,GAAO,KAEzD,CACDjW,IAAK,aACLhC,MAAO,WACL,MAAyC,SAAlCkE,KAAKxB,MAAMitM,oBAAmE,UAAlCzrM,KAAKxB,MAAMitM,qBAE/D,CACD3tM,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GACxCD,EAAU1nB,QAAUkE,KAAKxB,MAAM1C,OAC7BkE,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAASqF,KAAKod,MAAMiqL,YAC3DrnM,KAAKwd,SAAS,CACZ6pL,WAAYrnM,KAAKxB,MAAM1C,MAAMnB,SAK/B6oB,EAAU6jL,aAAernM,KAAKxB,MAAM6oM,YACtCrnM,KAAKwd,SAAS,CACZ6pL,WAAYrnM,KAAKxB,MAAM6oM,eAI5B,CACDvpM,IAAK,uBACLhC,MAAO,WACDkE,KAAKod,MAAM2sL,iBACb/pM,KAAKgqM,gBAGPlzL,IAAYe,MAAM7X,KAAKqR,QAExB,CACDvT,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMw8E,OACOngE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACVyC,KAAKxB,MAAMw8E,QAGT,OAER,CACDl9E,IAAK,eACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAM08E,OACOrgE,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,qBACVyC,KAAKxB,MAAM08E,QAGT,OAER,CACDp9E,IAAK,gBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAET26C,EAAa36C,KAAK26C,aAClB+wJ,EAAyB1rM,KAAKxB,MAAMmtM,gBAAkB3rM,KAAK4rM,qBAAqB,wBAAyB5rM,KAAKxB,MAAMitM,oBACpHI,EAAwB7rM,KAAKxB,MAAMksM,gBAAkB1qM,KAAK4rM,qBAAqB,wBAAyB5rM,KAAKxB,MAAMstM,oBACnHC,EAAoB9uM,YAAW,yBAA0B+C,KAAKxB,MAAMjB,UAAW,CACjF,wBAAyByC,KAAKxB,MAAMozJ,WACpC,8BAA+B5xJ,KAAKxB,MAAMwtM,qBAC1C,8BAA+BhsM,KAAKxB,MAAMytM,4BAA8BjsM,KAAKxB,MAAMozJ,YAClF85C,EAAwBG,GACvB17E,EAAYnwH,KAAKxB,MAAMozJ,YAA2B/2I,IAAM7P,cAAc,SAAU,CAClFxN,KAAM,SACND,UAAW,0BACXyiE,QAAShgE,KAAKmf,MACAtE,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,sCACIsd,IAAM7P,cAAc2O,IAAQ,OACzCqhE,EAASh7E,KAAKi1I,eACd/5D,EAASl7E,KAAK0uI,eAyClB,OAxC2B7zH,IAAM7P,cAAc,MAAO,CACpD8P,IAAK9a,KAAKsrM,YACVxnL,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWwuM,EACX3rM,MAAOJ,KAAKxB,MAAM4B,OACjB+vH,EAAWn1C,EAAqBngE,IAAM7P,cAAc,MAAO,CAC5DzN,UAAW,sBACGsd,IAAM7P,cAAc4/L,EAAc,CAChD9vL,IAAK,SAAa7a,GAChB,OAAOihB,EAAOgrL,eAAiBjsM,GAEjCnE,MAAOkE,KAAKxB,MAAM1C,MAClB8tM,gBAAiB5pM,KAAK4pM,gBACtBC,mBAAoB7pM,KAAK6pM,mBACzBh1F,aAAc70G,KAAKxB,MAAMuL,KACzB89L,SAAU7nM,KAAKxB,MAAMqpM,SACrBwC,QAASrqM,KAAKxB,MAAM6rM,QACpBK,eAAgB1qM,KAAKxB,MAAMksM,eAC3BT,2BAA4BjqM,KAAKxB,MAAMyrM,2BACvCK,UAAWtqM,KAAKxB,MAAM8rM,UACtBF,mBAAoBpqM,KAAKxB,MAAM4rM,mBAC/BF,SAAUlqM,KAAKxB,MAAM0rM,SACrBH,gBAAiB/pM,KAAKod,MAAM2sL,gBAC5BI,eAAgBnqM,KAAKmqM,eACrBH,cAAehqM,KAAKgqM,gBAClBhqM,KAAKxB,MAAMmtM,gBAA+B9wL,IAAM7P,cAAc8/L,EAAoB,CACpFhvM,MAAOkE,KAAKxB,MAAM1C,MAClB8tM,gBAAiB5pM,KAAK4pM,gBACtBC,mBAAoB7pM,KAAK6pM,mBACzBh1F,aAAc70G,KAAKxB,MAAM2tM,UACzB9E,WAAYrnM,KAAKod,MAAMiqL,WACvBe,kBAAmBpoM,KAAKxB,MAAM4pM,kBAC9BP,SAAU7nM,KAAKxB,MAAMqpM,SACrBltJ,WAAYA,EACZyoB,cAAepjE,KAAKxB,MAAM4tM,gCAC1BjB,wBAAyBnrM,KAAKxB,MAAM2sM,wBACpCjB,SAAUlqM,KAAKxB,MAAM0rM,SACrBH,gBAAiB/pM,KAAKod,MAAM2sL,gBAC5BC,cAAehqM,KAAKgqM,iBACjB9uH,KAGN,CACDp9E,IAAK,iBACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETuC,EAAUvC,KAAKgkB,gBAEnB,GAAIhkB,KAAKxB,MAAMozJ,WAAY,CACzB,IAAI7c,EAAgB93I,YAAW,kBAAmB,CAChD,qBAAsB+C,KAAKod,MAAME,UAE/B+uL,EAA+BxxL,IAAM7P,cAAc,MAAO,CAC5D8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAOtQ,KAAOpR,GAEvB1C,UAAWw3I,GACGl6H,IAAM7P,cAAcia,IAAe,CACjDS,QAAS1lB,KAAKsrM,YACdruM,WAAY,aACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdC,WAAYnlB,KAAKmlB,WACjBC,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACdhjB,IACH,OAAoBsY,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAAS8pM,IAGX,OAAO9pM,IAGV,CACDzE,IAAK,SACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAM1C,OAASkE,KAAKxB,MAAM1C,MAAMnB,OAAS,GAAKqF,KAAKssM,qBAI5DlB,EA3SmB,CA4S1BpwL,aAEFxK,EAAgB46L,EAAU,eAAgB,CACxCtnL,GAAI,KACJhoB,MAAO,KACP8pH,YAAa,EACbgsC,YAAY,EACZ7nJ,KAAM,KACNoiM,UAAW,KACX7B,UAAW,KACXD,QAAS,KACT9sM,UAAW,KACX6C,MAAO,KACP46E,OAAQ,KACRE,OAAQ,KACRmsH,WAAY,EACZe,kBAAmB,KACnBgC,oBAAoB,EACpBe,yBAAyB,EACzBc,2BAA2B,EAC3BhC,4BAA4B,EAC5BpC,UAAU,EACVqC,UAAU,EACVqB,mBAAoB,IACpBI,gBAAgB,EAChBF,mBAAoB,SACpBW,gCAAiC,QACjC1B,gBAAgB,EAChBsB,sBAAsB,EACtBF,mBAAoB,SACpB10L,WAAY,EACZw/F,kBAAmB,KACnBy0F,aAAc,Q,6BCptChB,6DAGA,SAASltM,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAASy7E,IAeP,OAdAA,EAAWr8E,OAAOg8E,QAAU,SAAU75E,GACpC,IAAK,IAAI3D,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAAK,CACzC,IAAIqW,EAAS9T,UAAUvC,GAEvB,IAAK,IAAIkD,KAAOmT,EACV7U,OAAOC,UAAUqS,eAAehT,KAAKuV,EAAQnT,KAC/CS,EAAOT,GAAOmT,EAAOnT,IAK3B,OAAOS,GAGFk6E,EAASnvE,MAAMtJ,KAAM7C,WAG9B,SAAS0gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIy9L,EAAmC,SAAU3yL,GAC/CpB,EAAU+zL,EAAqB3yL,GAE/B,IAAIC,EAASgE,EAAe0uL,GAE5B,SAASA,EAAoB/tM,GAC3B,IAAI+G,EAUJ,OARApH,EAAgB6B,KAAMusM,IAEtBhnM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZwiK,WAAY,MAEdr6K,EAAMs6K,YAAct6K,EAAMs6K,YAAY9lK,KAAK7B,EAAuB3S,IAClEA,EAAMinM,mBAAqBjnM,EAAMinM,mBAAmBzyL,KAAK7B,EAAuB3S,IACzEA,EA4WT,OAzWAzG,EAAaytM,EAAqB,CAAC,CACjCzuM,IAAK,gBACLhC,MAAO,SAAuBmE,GAG5B,OAFAD,KAAKuC,QAAUtC,EAEXD,KAAKxB,MAAMo6E,WACN54E,KAAKxB,MAAMo6E,WAAW34E,GAGxBD,KAAKuC,UAEb,CACDzE,IAAK,mBACLhC,MAAO,SAA0BuY,EAAOtK,GAClCA,EAAK0V,UAAYzf,KAAKxB,MAAMiuM,aAC9Bp4L,EAAMY,iBAIJjV,KAAKxB,MAAMmlD,MACT3jD,KAAKod,MAAMwiK,YAAc5/K,KAAKxB,MAAMygL,QACtCj/K,KAAKwd,SAAS,CACZoiK,WAAY71K,IAIhB/J,KAAKwd,SAAS,CACZoiK,WAAY71K,MAIjB,CACDjM,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GAC7BA,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAINA,EAAKmsG,MACHl2G,KAAKod,MAAMwiK,YAAc71K,IAAS/J,KAAKod,MAAMwiK,WAC/C5/K,KAAKwd,SAAS,CACZoiK,WAAY,OAGd5/K,KAAKwd,SAAS,CACZoiK,WAAY71K,IAIhB/J,KAAK6/K,iBAGR,CACD/hL,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOtK,GACnC,IAAIilJ,EAAW36I,EAAMoG,cAAcR,cAEnC,OAAQ5F,EAAMM,OAEZ,KAAK,GACC3U,KAAKxB,MAAMmlD,KACT55C,EAAKmsG,OACPl2G,KAAK0sM,cAAc3iM,EAAMilJ,GAG3BhvJ,KAAK+/K,mBAAmB/wB,GAG1B36I,EAAMY,iBACN,MAGF,KAAK,GACEjV,KAAKxB,MAAMmlD,MACd3jD,KAAKggL,mBAAmBhxB,GAG1B36I,EAAMY,iBACN,MAGF,KAAK,GACH,GAAIjV,KAAKxB,MAAMmlD,KAAM,CACnB,IAAI+nG,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASlpJ,SAAS,GAAG4pF,aAGnBriF,EAAKmsG,OACPl2G,KAAK0sM,cAAc3iM,EAAMilJ,GAI7B36I,EAAMY,iBACN,MAGF,KAAK,GACCjV,KAAKxB,MAAMmlD,MACb3jD,KAAKggL,mBAAmBhxB,GAG1B36I,EAAMY,iBAINjV,KAAKxB,MAAMiW,WACbzU,KAAKxB,MAAMiW,UAAUJ,EAAO26I,KAG/B,CACDlxJ,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOs4L,GACpC3sM,KAAKxB,MAAMmlD,KAEO,KAAhBtvC,EAAMM,OAAwD,MAAxCg4L,EAAcr+G,wBACtCtuF,KAAKigL,aAAa0sB,GAIA,KAAhBt4L,EAAMM,OACR3U,KAAKigL,aAAa0sB,KAIvB,CACD7uM,IAAK,gBACLhC,MAAO,SAAuBiO,EAAMilJ,GAClChvJ,KAAKwd,SAAS,CACZoiK,WAAY71K,IAEdlB,YAAW,WACTmmJ,EAASxsJ,SAAS,GAAGA,SAAS,GAAGA,SAAS,GAAG4pF,UAC5C,MAEJ,CACDtuF,IAAK,eACLhC,MAAO,SAAsBkzJ,GAC3BhvJ,KAAKwd,SAAS,CACZoiK,WAAY,OAEd5wB,EAAS/0I,cAAcq0E,uBAAuBlC,UAE/C,CACDtuF,IAAK,qBACLhC,MAAO,SAA4BkzJ,GACjC,IAAItD,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASlpJ,SAAS,GAAG4pF,UAGxB,CACDtuF,IAAK,qBACLhC,MAAO,SAA4BkzJ,GACjC,IAAIrD,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASnpJ,SAAS,GAAG4pF,UAGxB,CACDtuF,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAiB3rJ,IAAW6uF,SAAS88D,EAAU,gBAAkB3rJ,IAAW6uF,SAAS88D,EAAU,cAAgB1rJ,KAAKsrJ,aAAaI,GAAYA,EAAqB,OAEvK,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,gBAAkB5rJ,IAAW6uF,SAAS+8D,EAAU,cAAgB3rJ,KAAKwrJ,aAAaG,GAAYA,EAAqB,OAEvK,CACD7tJ,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZoiK,WAAY,OAGV5/K,KAAKxB,MAAMqhL,aACb7/K,KAAKxB,MAAMqhL,gBAGd,CACD/hL,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsG,EAAOpY,UAAYoY,EAAOpY,QAAQc,SAASgR,EAAM9V,SACnDoc,EAAO6C,SAAS,CACdoiK,WAAY,QAKlBl/K,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUopL,eAAiB5sM,KAAKxB,MAAMouM,cACxC5sM,KAAKwd,SAAS,CACZoiK,WAAY,SAIjB,CACD9hL,IAAK,uBACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,aAAeu+D,EACpB9+D,UAAW,mBACXwmB,KAAM,gBAGT,CACDjmB,IAAK,gBACLhC,MAAO,SAAuBiO,GAC5B,OAAIA,EAAKmsG,MACar7F,IAAM7P,cAAc6hM,EAAY,CAClDzsI,MAAOr2D,EAAKmsG,MACZu2F,aAAczsM,KAAKxB,MAAMiuM,aACzB5sB,YAAa7/K,KAAK6/K,YAClBprK,UAAWzU,KAAKwsM,mBAChBI,aAAc7iM,IAAS/J,KAAKod,MAAMwiK,aAI/B,OAER,CACD9hL,IAAK,iBACLhC,MAAO,SAAwBiO,EAAMsyD,GACnC,IAAIn7C,EAASlhB,KAETzC,EAAYN,YAAW,aAAc,CACvC,oBAAqB+C,KAAKod,MAAMwiK,aAAe71K,GAC9CA,EAAKxM,WACJ+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAc8M,EAAK0V,WAEjB0xE,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnD4zH,EAAuB7vM,YAAW,oBAAqB,CACzD,gBAAiB+C,KAAKxB,MAAMmlD,KAC5B,kBAAmB3jD,KAAKxB,MAAMmlD,OAE5Bu1B,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJonG,EAAc52K,EAAKmsG,OAAsBr7F,IAAM7P,cAAc,OAAQ,CACvEzN,UAAWuvM,IAETztB,EAAUr/K,KAAKw/K,cAAcz1K,GAC7BiV,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClB9C,KAAM,WACNxmB,UAAW+hL,EACX/gL,OAAQwL,EAAKxL,OACb,gBAA+B,MAAdwL,EAAKmsG,MACtBl2C,QAAS,SAAiB3rD,GACxB,OAAO6M,EAAOy5H,YAAYtmI,EAAOtK,IAEnC0K,UAAW,SAAmBJ,GAC5B,OAAO6M,EAAOq+J,cAAclrK,EAAOtK,KAEpCmvE,EAAMK,EAAOonG,EAA0B9lK,IAAM7P,cAAc2O,IAAQ,OAEtE,GAAI5P,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAO6M,EAAOy5H,YAAYtmI,EAAOtK,IAEnC0K,UAAW,SAAmBJ,GAC5B,OAAO6M,EAAOq+J,cAAclrK,EAAOtK,IAErCxM,UAAW+hL,EACXzkC,eAAgB,kBAChB1pD,cAAeA,EACf27G,qBAAsBA,EACtBvqM,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxBt4C,KAAM,OACNxmB,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZgf,aAAc,SAAsB/K,GAClC,OAAO6M,EAAO6rL,iBAAiB14L,EAAOtK,KAEvCiV,EAASqgK,KAEb,CACDvhL,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,GAC/B,OAAItyD,EAAK0pB,UAAkBzzB,KAAKotI,gBAAgB/wE,GAAmBr8D,KAAK86I,eAAe/wI,EAAMsyD,KAE9F,CACDv+D,IAAK,aACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAO16C,EAAO2zF,WAAWvrG,EAAMsyD,MAI5B,OAER,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAETzC,EAAYN,YAAW,CACzB,kBAAmB+C,KAAKxB,MAAMmlD,KAC9B,sBAAuB3jD,KAAKxB,MAAMmlD,OAEhC07H,EAAUr/K,KAAK0/K,aACnB,OAAoB7kK,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO0qL,cAAc/sM,IAE9B1C,UAAWA,EACXwmB,KAAM/jB,KAAKxB,MAAMmlD,KAAO,UAAY,QACnC07H,OAIAktB,EA5X8B,CA6XrCvxL,aAEFxK,EAAgB+7L,EAAqB,eAAgB,CACnDnsI,MAAO,KACPzc,MAAM,EACNpmD,UAAW,KACX0hL,OAAO,EACPY,YAAa,KACbprK,UAAW,KACXm4L,cAAc,EACdH,cAAc,EACd7zH,WAAY,OAGd,IAAIi0H,EAA0BhyL,IAAM+9D,YAAW,SAAUp6E,EAAOsc,GAC9D,OAAoBD,IAAM7P,cAAcuhM,EAAqB9zH,EAAS,CACpEG,WAAY99D,GACXtc,OAGL,SAASumB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAAIm+L,EAAuB,SAAUrzL,GACnCpB,EAAUy0L,EAASrzL,GAEnB,IAAIC,EAASkL,EAAakoL,GAE1B,SAASA,EAAQzuM,GACf,IAAI+G,EAUJ,OARApH,EAAgB6B,KAAMitM,IAEtB1nM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZqvL,cAAc,GAEhBlnM,EAAM4qJ,OAAS5qJ,EAAM4qJ,OAAOp2I,KAAK7B,EAAuB3S,IACxDA,EAAMs6K,YAAct6K,EAAMs6K,YAAY9lK,KAAK7B,EAAuB3S,IAC3DA,EAiKT,OA9JAzG,EAAamuM,EAAS,CAAC,CACrBnvM,IAAK,SACLhC,MAAO,SAAgBuY,GACrB,IAAIsG,EAAS3a,KAEbqU,EAAMY,iBACNjV,KAAKwd,UAAS,SAAUiG,GACtB,MAAO,CACLgpL,cAAehpL,EAAUgpL,iBAE1B,WACG9xL,EAAOyC,MAAMqvL,cACf31L,IAAYW,IAAI,OAAQkD,EAAOuyL,UAE/BvyL,EAAO8/F,8BAEP9/F,EAAOggG,8BAEP7jG,IAAYe,MAAM8C,EAAOuyL,gBAI9B,CACDpvM,IAAK,4BACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjC6M,EAAO9D,MAAMqvL,cAAgBvrL,EAAOgyE,iBAAiB7+E,IACvD6M,EAAO1D,SAAS,CACdivL,cAAc,IACb,WACDvrL,EAAOy5F,8BAEP7jG,IAAYe,MAAMqJ,EAAOgsL,cAK/BxsM,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAKktM,WAAa74L,EAAM9V,SAAWyB,KAAKktM,SAAS7pM,SAASgR,EAAM9V,SAAWyB,KAAKmtM,aAAe94L,EAAM9V,SAAWyB,KAAKmtM,WAAW9pM,SAASgR,EAAM9V,UAEvJ,CACDT,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,cACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEbA,KAAKwd,SAAS,CACZivL,cAAc,IACb,WACD9qL,EAAOg5F,8BAEP7jG,IAAYe,MAAM8J,EAAOurL,eAG5B,CACDpvM,IAAK,uBACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKktM,YAExB,CACDpvM,IAAK,sBACLhC,MAAO,WACL,OAAIkE,KAAKxB,MAAMgE,SACOqY,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,oBACVyC,KAAKxB,MAAMgE,UAGT,OAER,CACD1E,IAAK,qBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMoX,MAAO,CACpB,IAAIA,EAAQjI,IAAY8rE,cAAcz5E,KAAKxB,MAAMoX,MAAO5V,KAAKxB,OAC7D,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,mBACVqY,GAGL,OAAO,OAER,CACD9X,IAAK,mBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAMsU,IAAK,CAClB,IAAIA,EAAMnF,IAAY8rE,cAAcz5E,KAAKxB,MAAMsU,IAAK9S,KAAKxB,OACzD,OAAoBqc,IAAM7P,cAAc,MAAO,CAC7CzN,UAAW,iBACVuV,GAGL,OAAO,OAER,CACDhV,IAAK,mBACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAiBb,OAd0B6a,IAAM7P,cAAc,IAAK,CACjD8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO6qL,WAAaltM,GAE7BihE,KAAM,IACNn9C,KAAM,SACN+gD,SAAU,EACVvnE,UAAW,mBACXyiE,QAAShgE,KAAKmwJ,QACAt1I,IAAM7P,cAAc,IAAK,CACvCzN,UAAW,kBAMd,CACDO,IAAK,SACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAETzC,EAAYN,YAAW,wBAAyB,CAClD,0BAA2B+C,KAAKod,MAAMqvL,cACrCzsM,KAAKxB,MAAMjB,WACVqY,EAAQ5V,KAAKotM,qBACbt6L,EAAM9S,KAAKqtM,mBACXC,EAAattM,KAAKutM,mBACtB,OAAoB1yL,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjBwV,EAAO03L,EAAyBzyL,IAAM7P,cAAc6hM,EAAY,CACjE/xL,IAAK,SAAa7a,GAChB,OAAOwiB,EAAOyqL,SAAWjtM,GAE3BmgE,MAAOpgE,KAAKxB,MAAM4hE,MAClBzc,MAAM,EACN8oJ,aAAczsM,KAAKod,MAAMqvL,aACzB5sB,YAAa7/K,KAAK6/K,cAChB/sK,OAIDm6L,EAjLkB,CAkLzBjyL,aAEFxK,EAAgBy8L,EAAS,eAAgB,CACvCnpL,GAAI,KACJs8C,MAAO,KACPhgE,MAAO,KACP7C,UAAW,KACXqY,MAAO,KACP9C,IAAK,Q,6BC1sBP,6DAGA,SAAS3U,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B0xM,EAA0B,SAAU5zL,IAxExC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUg1L,EAAY5zL,GAEtB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAayoL,GAE1B,SAASA,IAGP,OAFArvM,EAAgB6B,KAAMwtM,GAEf3zL,EAAOvQ,MAAMtJ,KAAM7C,WAmI5B,OAlOoBkB,EAkGPmvM,GAlGoBzuM,EAkGR,CAAC,CACxBjB,IAAK,YACLhC,MAAO,SAAmBuY,EAAOtK,GAC3BA,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,OAIX,CACDjM,IAAK,aACLhC,MAAO,WACL,IAAIyJ,EAAQvF,KAEZ,GAAIA,KAAKxB,MAAMivM,KAAM,CACnB,IAAIlwM,EAAYN,YAAW,oBAAqB,CAC9C,aAAc+C,KAAKxB,MAAMivM,KAAKhuL,UAC7Bzf,KAAKxB,MAAMivM,KAAKlwM,WACf4zF,EAAgBl0F,YAAW,kBAAmB+C,KAAKxB,MAAMivM,KAAKv0H,MAClE,OAAoBr+D,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAMivM,KAAKrtM,OACTya,IAAM7P,cAAc,IAAK,CACvCk2D,KAAMlhE,KAAKxB,MAAMivM,KAAK5mL,KAAO,IAC7BtpB,UAAW,kBACX,gBAAiByC,KAAKxB,MAAMivM,KAAKhuL,SACjClhB,OAAQyB,KAAKxB,MAAMivM,KAAKlvM,OACxByhE,QAAS,SAAiB3rD,GACxB,OAAO9O,EAAMmoM,UAAUr5L,EAAO9O,EAAM/G,MAAMivM,QAE9B5yL,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,MAIf,OAAO,OAER,CACDrzF,IAAK,kBACLhC,MAAO,WACL,OAAoB+e,IAAM7P,cAAc,KAAM,CAC5CzN,UAAW,+CAGd,CACDO,IAAK,iBACLhC,MAAO,SAAwBiO,GAC7B,IAAI4Q,EAAS3a,KAETzC,EAAYN,YAAW8M,EAAKxM,UAAW,CACzC,aAAcwM,EAAK0V,WAEjB85D,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJv6D,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW,kBACXgB,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO+yL,UAAUr5L,EAAOtK,IAEjC,gBAAiBA,EAAK0V,UACrB85D,GAEH,GAAIxvE,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO+yL,UAAUr5L,EAAOtK,IAEjCxM,UAAW,kBACXs9I,eAAgB,kBAChBt4I,QAASyc,EACTxgB,MAAOwB,KAAKxB,OAEdwgB,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACX6C,MAAO2J,EAAK3J,OACX4e,KAEJ,CACDlhB,IAAK,kBACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACDpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC/C,IAAIo+E,EAAWv5H,EAAO45H,eAAe/wI,GAEjC0pB,EAAY4oC,IAAUn7C,EAAO1iB,MAAM4hE,MAAMzlE,OAAS,EAAI,KAAOumB,EAAOksH,kBACxE,OAAoBvyH,IAAM7P,cAAc6P,IAAMoL,SAAU,CACtDnoB,IAAKiM,EAAKwvE,MAAQ,IAAMld,GACvBo+E,EAAUhnH,MAKV,OAER,CACD31B,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,2BAA4B+C,KAAKxB,MAAMjB,WAC9DkwM,EAAOztM,KAAK2tM,aACZz3F,EAAQl2G,KAAK4tM,kBACbn6K,EAAYzzB,KAAKotI,kBACrB,OAAoBvyH,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB,aAAc,cACAya,IAAM7P,cAAc,KAAM,KAAMyiM,EAAMh6K,EAAWyiF,SA7NrD53G,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAgOzCwuM,EA3IqB,CA4I5BxyL,aA9JiClf,EAgKS,CAC1CgoB,GAAI,KACJs8C,MAAO,KACPqtI,KAAM,KACNrtM,MAAO,KACP7C,UAAW,OArKiBO,EAgKF,kBAhKHd,EAgKTwwM,GA9JZpxM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DAGA,SAASqC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B+xM,EAAqB,SAAUj0L,IAxEnC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUq1L,EAAOj0L,GAEjB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa8oL,GAE1B,SAASA,IAGP,OAFA1vM,EAAgB6B,KAAM6tM,GAEfh0L,EAAOvQ,MAAMtJ,KAAM7C,WAqH5B,OApNoBkB,EAkGPwvM,GAlGoB9uM,EAkGb,CAAC,CACnBjB,IAAK,YACLhC,MAAO,SAAmBuY,EAAOtK,EAAMsyD,GACjCr8D,KAAKxB,MAAM6T,UAAYtI,EAAK0V,SAC9BpL,EAAMY,kBAIJjV,KAAKxB,MAAM47F,UACbp6F,KAAKxB,MAAM47F,SAAS,CAClBzkF,cAAetB,EACftK,KAAMA,EACNsyD,MAAOA,IAINtyD,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,EACNsyD,MAAOA,OAIZ,CACDv+D,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,GAC/B,IAAI92D,EAAQvF,KAERmnM,EAAS9qI,IAAUr8D,KAAKxB,MAAMonH,YAC9BnmG,EAAW1V,EAAK0V,UAAY48C,IAAUr8D,KAAKxB,MAAMonH,aAAe5lH,KAAKxB,MAAM6T,SAC3E9U,EAAYN,YAAW,eAAgB8M,EAAKxM,UAAW,CACzD,8BAA+B4pM,EAC/B,aAAc1nL,IAEZ85D,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,iBACVwM,EAAKwvE,OACJzU,EAAWrlD,GAAY,EAAI,GAC3BT,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW,kBACXwmB,KAAM,eACNxlB,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAO9O,EAAMmoM,UAAUr5L,EAAOtK,EAAMsyD,IAEtCyI,SAAUA,EACV,gBAAiBrlD,GACH5E,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW,kBACV8+D,EAAQ,GAAIkd,GAEf,GAAIxvE,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAO9O,EAAMmoM,UAAUr5L,EAAOtK,EAAMsyD,IAEtC9+D,UAAW,kBACXs9I,eAAgB,gBAChBizD,gBAAiB,iBACjBvrM,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZsmE,SAAUA,EACVqiI,OAAQA,EACR1nL,SAAUA,GAEZT,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZ2jB,KAAM,MACN,gBAAiBojL,EACjB,gBAAiBA,GAChBnoL,KAEJ,CACDlhB,IAAK,cACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEb,GAAIA,KAAKxB,MAAM4hE,MAAO,CACpB,IAAI81C,EAAQl2G,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC/C,OAAO1hD,EAAO26F,WAAWvrG,EAAMsyD,MAEjC,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5C+Y,KAAM,WACLmyF,GAGL,OAAO,OAER,CACDp4G,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,sBAAuB+C,KAAKxB,MAAMjB,UAAW,CACtE,aAAcyC,KAAKxB,MAAM6T,WAEvB6jG,EAAQl2G,KAAKu2G,cACjB,OAAoB17F,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjB81G,QA/MS53G,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAkNzC6uM,EA7HgB,CA8HvB7yL,aAhJiClf,EAkJI,CACrCgoB,GAAI,KACJs8C,MAAO,KACPwlD,YAAa,EACbvzG,UAAU,EACVjS,MAAO,KACP7C,UAAW,KACX68F,SAAU,OAzJkBt8F,EAkJP,kBAlJEd,EAkJT6wM,GAhJZzxM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/BiyM,EAAuB,SAAUn0L,IAxErC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUu1L,EAASn0L,GAEnB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAagpL,GAE1B,SAASA,EAAQvvM,GACf,IAAI+G,EAYJ,OAzHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAM+tM,IAEtBxoM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IAEfA,MAAMmnH,cACfpgH,EAAM6X,MAAQ,CACZwoG,YAAapnH,EAAMonH,cAIhBrgH,EA6JT,OAtQoBlH,EA4GP0vM,GA5GoBhvM,EA4GX,CAAC,CACrBjB,IAAK,YACLhC,MAAO,SAAmBuY,EAAOtK,EAAMsyD,GACjCtyD,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAIN/J,KAAKxB,MAAMmnH,YACb3lH,KAAKxB,MAAMmnH,YAAY,CACrBhwG,cAAetB,EACfvY,MAAOiO,EACPsyD,MAAOA,IAGTr8D,KAAKwd,SAAS,CACZooG,YAAavpD,OAIlB,CACDv+D,IAAK,iBACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMmnH,YAAc3lH,KAAKxB,MAAMonH,YAAc5lH,KAAKod,MAAMwoG,cAErE,CACD9nH,IAAK,aACLhC,MAAO,SAAoBugE,GACzB,OAAOA,KAAWr8D,KAAKsxH,kBAAoB,KAE5C,CACDxzH,IAAK,eACLhC,MAAO,WACL,IAAI8pH,EAAc5lH,KAAKsxH,iBACnB7K,EAAYzmH,KAAK,OAAOjC,OAAO6nH,IACnC5lH,KAAKwxH,OAAOpxH,MAAMF,MAAQH,IAAWqa,SAASqsG,GAAa,KAC3DzmH,KAAKwxH,OAAOpxH,MAAMkC,KAAOvC,IAAWsa,UAAUosG,GAAWnkH,KAAOvC,IAAWsa,UAAUra,KAAKyxH,KAAKnvH,KAAO,OAEvG,CACDxE,IAAK,oBACLhC,MAAO,WACLkE,KAAKgyH,iBAEN,CACDl0H,IAAK,qBACLhC,MAAO,WACLkE,KAAKgyH,iBAEN,CACDl0H,IAAK,iBACLhC,MAAO,SAAwBiO,EAAMsyD,GACnC,IAAI1hD,EAAS3a,KAETmnM,EAASnnM,KAAKgzE,WAAW3W,GACzB9+D,EAAYN,YAAW,gBAAiB,CAC1C,cAAekqM,EACf,aAAcp9L,EAAK0V,UAClB1V,EAAKxM,WACJ4zF,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnDA,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJv6D,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW,kBACXgB,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO+yL,UAAUr5L,EAAOtK,EAAMsyD,IAEvCt4C,KAAM,gBACLm1D,EAAMK,EAAoB1+D,IAAM7P,cAAc2O,IAAQ,OAEzD,GAAI5P,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAO+yL,UAAUr5L,EAAOtK,IAEjCxM,UAAW,kBACXs9I,eAAgB,kBAChB1pD,cAAeA,EACf5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZ2oM,OAAQA,EACR9qI,MAAOA,GAETr9C,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAO0a,EAAO,OAAO5c,OAAOs+D,IAAUp8D,GAExCnC,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZ2jB,KAAM,MACN,gBAAiBojL,EACjB,gBAAiBA,EACjB,gBAAiBp9L,EAAK0V,UACrBT,KAEJ,CACDlhB,IAAK,cACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAOA,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAOn7C,EAAO8sL,eAAejkM,EAAMsyD,QAGtC,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,GAAIA,KAAKxB,MAAM4hE,MAAO,CACpB,IAAI7iE,EAAYN,YAAW,wBAAyB+C,KAAKxB,MAAMjB,WAC3D24G,EAAQl2G,KAAKu2G,cACjB,OAAoB17F,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc,KAAM,CACxC8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO8vG,IAAMxxH,GAEtB1C,UAAW,wBACXwmB,KAAM,WACLmyF,EAAoBr7F,IAAM7P,cAAc,KAAM,CAC/C8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO6vG,OAASvxH,GAEzB1C,UAAW,wBAIf,OAAO,UAjQKe,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAoQzC+uM,EA/KkB,CAgLzB/yL,aAlMiClf,EAoMM,CACvCgoB,GAAI,KACJs8C,MAAO,KACPwlD,YAAa,EACbxlH,MAAO,KACP7C,UAAW,KACXooH,YAAa,OA1Me7nH,EAoML,kBApMAd,EAoMT+wM,GAlMZ3xM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DAGA,SAASqC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS6gB,EAAe7E,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9Pse,GAA+B,OAAO,WAAkC,IAAsChP,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAGha,IAAIm/L,EAA6B,SAAUr0L,GACzCpB,EAAUy1L,EAAer0L,GAEzB,IAAIC,EAASgE,EAAeowL,GAE5B,SAASA,EAAczvM,GACrB,IAAI+G,EAUJ,OARApH,EAAgB6B,KAAMiuM,IAEtB1oM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZwiK,WAAY,MAEdr6K,EAAMs6K,YAAct6K,EAAMs6K,YAAY9lK,KAAK7B,EAAuB3S,IAClEA,EAAMinM,mBAAqBjnM,EAAMinM,mBAAmBzyL,KAAK7B,EAAuB3S,IACzEA,EAoUT,OAjUAzG,EAAamvM,EAAe,CAAC,CAC3BnwM,IAAK,qBACLhC,MAAO,SAA4B0nB,GAC7BA,EAAUopL,eAAiB5sM,KAAKxB,MAAMouM,cACxC5sM,KAAKwd,SAAS,CACZoiK,WAAY,OAIZ5/K,KAAKxB,MAAMouM,eAAiB5sM,KAAKxB,MAAMmlD,MACzC3jD,KAAKkG,aAGR,CACDpI,IAAK,oBACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsG,EAAOpY,UAAYoY,EAAOpY,QAAQc,SAASgR,EAAM9V,SACnDoc,EAAO6C,SAAS,CACdoiK,WAAY,QAKlBl/K,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,uBACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,WACLhC,MAAO,WACL,GAAIkE,KAAKuC,QAAS,CAChB,IAAI2rM,EAAaluM,KAAKuC,QAAQ0X,cAC1B8zF,EAAkBhuG,IAAWsa,UAAU6zL,GACvCjpM,EAAWlF,IAAWmF,cACtBipM,EAAenuM,KAAKuC,QAAQ+B,aAAetE,KAAKuC,QAAQpC,YAAcJ,IAAWwtG,2BAA2BvtG,KAAKuC,SACjH6rM,EAAiBruM,IAAWoE,cAAc+pM,EAAW1rM,SAAS,IAE9DgV,SAASu2F,EAAgBzrG,KAAM,IAAM8rM,EAAiBD,EAAelpM,EAAS/E,MAAQH,IAAW4tF,2BACnG5tF,IAAWya,SAASxa,KAAKuC,QAAS,6BAIvC,CACDzE,IAAK,mBACLhC,MAAO,SAA0BuY,EAAOtK,GAClCA,EAAK0V,SACPpL,EAAMY,iBAIJjV,KAAKxB,MAAMmlD,MACT3jD,KAAKod,MAAMwiK,YAAc5/K,KAAKxB,MAAMygL,QACtCj/K,KAAKwd,SAAS,CACZoiK,WAAY71K,IAIhB/J,KAAKwd,SAAS,CACZoiK,WAAY71K,MAIjB,CACDjM,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GAC7BA,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAIN/J,KAAKxB,MAAMmlD,MACT55C,EAAKmsG,QACHl2G,KAAKod,MAAMwiK,YAAc71K,IAAS/J,KAAKod,MAAMwiK,WAC/C5/K,KAAKwd,SAAS,CACZoiK,WAAY,OAGd5/K,KAAKwd,SAAS,CACZoiK,WAAY71K,KAMfA,EAAKmsG,OACRl2G,KAAK6/K,iBAGR,CACD/hL,IAAK,gBACLhC,MAAO,SAAuBuY,EAAOtK,GACnC,IAAIilJ,EAAW36I,EAAMoG,cAAcR,cAEnC,OAAQ5F,EAAMM,OAEZ,KAAK,GACH,IAAI+2I,EAAW1rJ,KAAKsrJ,aAAa0D,GAE7BtD,GACFA,EAASlpJ,SAAS,GAAG4pF,QAGvB/3E,EAAMY,iBACN,MAGF,KAAK,GACH,IAAI02I,EAAW3rJ,KAAKwrJ,aAAawD,GAE7BrD,GACFA,EAASnpJ,SAAS,GAAG4pF,QAGvB/3E,EAAMY,iBACN,MAGF,KAAK,GACClL,EAAKmsG,QACPl2G,KAAKwd,SAAS,CACZoiK,WAAY71K,IAEdlB,YAAW,WACTmmJ,EAASxsJ,SAAS,GAAGA,SAAS,GAAGA,SAAS,GAAG4pF,UAC5C,KAGL/3E,EAAMY,iBAINjV,KAAKxB,MAAMiW,WACbzU,KAAKxB,MAAMiW,UAAUJ,EAAO26I,KAG/B,CACDlxJ,IAAK,qBACLhC,MAAO,SAA4BuY,EAAOs4L,GAEpB,KAAhBt4L,EAAMM,QACR3U,KAAKwd,SAAS,CACZoiK,WAAY,OAEd+sB,EAAc1yL,cAAcq0E,uBAAuBlC,WAGtD,CACDtuF,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI2hJ,EAAW3hJ,EAAK6pF,mBACpB,OAAI83D,EAAiB3rJ,IAAW6uF,SAAS88D,EAAU,gBAAkB3rJ,IAAW6uF,SAAS88D,EAAU,cAAgB1rJ,KAAKsrJ,aAAaI,GAAYA,EAAqB,OAEvK,CACD5tJ,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,IAAI4hJ,EAAW5hJ,EAAKukF,uBACpB,OAAIq9D,EAAiB5rJ,IAAW6uF,SAAS+8D,EAAU,gBAAkB5rJ,IAAW6uF,SAAS+8D,EAAU,cAAgB3rJ,KAAKwrJ,aAAaG,GAAYA,EAAqB,OAEvK,CACD7tJ,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZoiK,WAAY,OAGV5/K,KAAKxB,MAAMqhL,aACb7/K,KAAKxB,MAAMqhL,gBAGd,CACD/hL,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,aAAeu+D,EACpB9+D,UAAW,mBACXwmB,KAAM,gBAGT,CACDjmB,IAAK,gBACLhC,MAAO,SAAuBiO,GAC5B,OAAIA,EAAKmsG,MACar7F,IAAM7P,cAAcijM,EAAe,CACrD7tI,MAAOr2D,EAAKmsG,MACZ2pE,YAAa7/K,KAAK6/K,YAClBZ,MAAOj/K,KAAKxB,MAAMygL,MAClBxqK,UAAWzU,KAAKwsM,mBAChBI,aAAc7iM,IAAS/J,KAAKod,MAAMwiK,aAI/B,OAER,CACD9hL,IAAK,iBACLhC,MAAO,SAAwBiO,EAAMsyD,GACnC,IAAIn7C,EAASlhB,KAETmnM,EAASnnM,KAAKod,MAAMwiK,aAAe71K,EACnCxM,EAAYN,YAAW,aAAc,CACvC,oBAAqBkqM,GACpBp9L,EAAKxM,WACJ+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAc8M,EAAK0V,WAEjB0xE,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnD4zH,EAAuB,mCACvB5zH,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJonG,EAAc52K,EAAKmsG,OAAsBr7F,IAAM7P,cAAc,OAAQ,CACvEzN,UAAWuvM,IAETztB,EAAUr/K,KAAKw/K,cAAcz1K,GAC7BiV,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW+hL,EACX/gL,OAAQwL,EAAKxL,OACbwlB,KAAM,WACN,gBAA+B,MAAdha,EAAKmsG,MACtBl2C,QAAS,SAAiB3rD,GACxB,OAAO6M,EAAOy5H,YAAYtmI,EAAOtK,IAEnC0K,UAAW,SAAmBJ,GAC5B,OAAO6M,EAAOq+J,cAAclrK,EAAOtK,IAErC,gBAAiBA,EAAK0V,UACrBy5D,EAAMK,EAAOonG,EAA0B9lK,IAAM7P,cAAc2O,IAAQ,OAEtE,GAAI5P,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAO6M,EAAOy5H,YAAYtmI,EAAOtK,IAEnC0K,UAAW,SAAmBJ,GAC5B,OAAO6M,EAAOq+J,cAAclrK,EAAOtK,IAErCxM,UAAW+hL,EACXzkC,eAAgB,kBAChB1pD,cAAeA,EACf27G,qBAAsBA,EACtBvqM,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZ2oM,OAAQA,GAEVnoL,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZgf,aAAc,SAAsB/K,GAClC,OAAO6M,EAAO6rL,iBAAiB14L,EAAOtK,IAExCga,KAAM,QACL/E,EAASqgK,KAEb,CACDvhL,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,GAC/B,OAAItyD,EAAK0pB,UAAkBzzB,KAAKotI,gBAAgB/wE,GAAmBr8D,KAAK86I,eAAe/wI,EAAMsyD,KAE9F,CACDv+D,IAAK,aACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAO16C,EAAO2zF,WAAWvrG,EAAMsyD,MAI5B,OAER,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAETzC,EAAYN,YAAW,CACzB,kBAAmB+C,KAAKxB,MAAMmlD,OAE5B07H,EAAUr/K,KAAK0/K,aACnB,OAAoB7kK,IAAM7P,cAAc,KAAM,CAC5C8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO/f,QAAUtC,GAE1B1C,UAAWA,EACXwmB,KAAM/jB,KAAKxB,MAAMmlD,KAAO,UAAY,OACpC,mBAAoB,cACnB07H,OAIA4uB,EApVwB,CAqV/BjzL,aAYF,SAAS+J,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAV5Z0B,EAAgBy9L,EAAe,eAAgB,CAC7C7tI,MAAO,KACPzc,MAAM,EACNpmD,UAAW,KACX0hL,OAAO,EACPY,YAAa,KACbprK,UAAW,KACXm4L,cAAc,IAMhB,IAAIyB,EAA0B,SAAUz0L,GACtCpB,EAAU61L,EAAYz0L,GAEtB,IAAIC,EAASkL,EAAaspL,GAE1B,SAASA,EAAW7vM,GAClB,IAAI+G,EAcJ,OAZApH,EAAgB6B,KAAMquM,IAEtB9oM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAU9e,EAAMygL,OAElB15K,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAM8f,OAAS9f,EAAM8f,OAAOtL,KAAK7B,EAAuB3S,IACxDA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAM+xG,aAAe/xG,EAAM+xG,aAAav9F,KAAK7B,EAAuB3S,IACpEA,EAAM25K,QAAuBrkK,IAAMmL,YAC5BzgB,EAmNT,OAhNAzG,EAAauvM,EAAY,CAAC,CACxBvwM,IAAK,eACLhC,MAAO,SAAsBuY,GACvBrU,KAAKxB,MAAMygL,OACb76J,IAAeM,KAAK,gBAAiB,CACnC/O,cAAetB,EACf9V,OAAQyB,KAAKzB,WAIlB,CACDT,IAAK,SACLhC,MAAO,SAAgBuY,GACjBrU,KAAKxB,MAAMygL,QACTj/K,KAAKod,MAAME,QAAStd,KAAKmf,KAAK9K,GAAYrU,KAAKkf,KAAK7K,MAG3D,CACDvW,IAAK,OACLhC,MAAO,SAAcuY,GACnB,IAAIsG,EAAS3a,KAEbA,KAAKzB,OAAS8V,EAAMoG,cACpB,IAAI4hJ,EAAehoJ,EACnBrU,KAAKwd,SAAS,CACZF,SAAS,IACR,WACG3C,EAAOnc,MAAMuiB,QACfpG,EAAOnc,MAAMuiB,OAAOs7I,QAIzB,CACDv+J,IAAK,OACLhC,MAAO,SAAcuY,GACnB,IAAI6M,EAASlhB,KAETq8J,EAAehoJ,EACnBrU,KAAKwd,SAAS,CACZF,SAAS,IACR,WACG4D,EAAO1iB,MAAMijB,QACfP,EAAO1iB,MAAMijB,OAAO46I,QAIzB,CACDv+J,IAAK,UACLhC,MAAO,WACDkE,KAAKxB,MAAM8Y,YACbR,IAAYW,IAAI,OAAQzX,KAAKk/K,QAAQnwK,QAAS/O,KAAKxB,MAAM4Y,YAG3DrX,IAAWqE,iBAAiBpE,KAAKk/K,QAAQnwK,QAAS/O,KAAKzB,UAExD,CACDT,IAAK,YACLhC,MAAO,WACLkE,KAAKm/K,wBACLn/K,KAAKihB,uBAEN,CACDnjB,IAAK,SACLhC,MAAO,WACLkE,KAAKzB,OAAS,KACdyB,KAAKo/K,0BACLp/K,KAAK0N,yBAEN,CACD5P,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKk/K,QAAQnwK,WAEhC,CACDjR,IAAK,wBACLhC,MAAO,WACLkE,KAAKy6G,4BACLz6G,KAAKghB,+BAEN,CACDljB,IAAK,0BACLhC,MAAO,WACLkE,KAAK26G,8BACL36G,KAAKuhB,iCAEN,CACDzjB,IAAK,4BACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCsN,EAAOnjB,MAAMygL,OAASt9J,EAAOvE,MAAME,SAAWqE,EAAOu9J,QAAQnwK,UAAY4S,EAAOu9J,QAAQnwK,QAAQ1L,SAASgR,EAAM9V,SACjHojB,EAAOxC,KAAK9K,IAIhB3T,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,6BACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAERA,KAAKuiB,yBACRviB,KAAKuiB,uBAAyB,SAAUlO,GAClCiO,EAAOlF,MAAME,UAAYvd,IAAWyiB,aACtCF,EAAOnD,KAAK9K,IAIhBzT,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,2BAG1C,CACDzkB,IAAK,+BACLhC,MAAO,WACDkE,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,qBACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAERA,KAAKwhB,gBACRxhB,KAAKwhB,cAAgB,IAAInU,IAA8BrN,KAAKzB,QAAQ,SAAU8V,GACxEoO,EAAOrF,MAAME,SACfmF,EAAOtD,KAAK9K,OAKlBrU,KAAKwhB,cAAcP,uBAEpB,CACDnjB,IAAK,uBACLhC,MAAO,WACDkE,KAAKwhB,eACPxhB,KAAKwhB,cAAc9T,yBAGtB,CACD5P,IAAK,uBACLhC,MAAO,WACLkE,KAAKo/K,0BAEDp/K,KAAKwhB,gBACPxhB,KAAKwhB,cAAc9C,UACnB1e,KAAKwhB,cAAgB,MAGvB1K,IAAYe,MAAM7X,KAAKk/K,QAAQnwK,WAEhC,CACDjR,IAAK,gBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,2BAA4B,CACrD,uBAAwB+C,KAAKxB,MAAMygL,OAClCj/K,KAAKxB,MAAMjB,WACd,OAAoBsd,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKk/K,QACdjiL,WAAY,sBACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKk/K,QACVp7J,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKs3G,cACAz8F,IAAM7P,cAAcijM,EAAe,CACjD7tI,MAAOpgE,KAAKxB,MAAM4hE,MAClBzc,MAAM,EACNs7H,MAAOj/K,KAAKxB,MAAMygL,YAGrB,CACDnhL,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKgkB,gBACnB,OAAOhkB,KAAKxB,MAAMygL,MAAqBpkK,IAAM7P,cAAcmS,IAAQ,CACjE5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,WAClBzB,MAIF8rM,EAvOqB,CAwO5BrzL,aAEFxK,EAAgB69L,EAAY,eAAgB,CAC1CvqL,GAAI,KACJs8C,MAAO,KACP6+G,OAAO,EACP7+K,MAAO,KACP7C,UAAW,KACX+Z,YAAY,EACZF,WAAY,EACZpT,SAAU,KACV4yG,kBAAmB,KACnB71F,OAAQ,KACRU,OAAQ,Q,6BCnsBV,6DAGA,SAAStjB,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAAS6Z,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+nB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAI5Z,IAAIw/L,EAA8B,SAAU10L,GAC1CpB,EAAU81L,EAAgB10L,GAE1B,IAAIC,EAASkL,EAAaupL,GAE1B,SAASA,EAAe9vM,GACtB,IAAI+G,EAUJ,OARApH,EAAgB6B,KAAMsuM,IAEtB/oM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZwiK,WAAY,MAEdr6K,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAMgpM,WAA0B1zL,IAAMmL,YAC/BzgB,EAiNT,OA9MAzG,EAAawvM,EAAgB,CAAC,CAC5BxwM,IAAK,mBACLhC,MAAO,SAA0BuY,EAAOtK,GAClCA,EAAK0V,SACPpL,EAAMY,iBAIRjV,KAAKwd,SAAS,CACZoiK,WAAY71K,MAGf,CACDjM,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GAC7BA,EAAK0V,SACPpL,EAAMY,kBAIHlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAILA,EAAKmsG,OACRl2G,KAAKxB,MAAMqhL,YAAYxrK,MAG1B,CACDvW,IAAK,WACLhC,MAAO,WACL,IAAIoyM,EAAaluM,KAAKuuM,WAAWx/L,QAAQkL,cACrC8zF,EAAkBhuG,IAAWsa,UAAUra,KAAKuuM,WAAWx/L,QAAQkL,eAC/DhV,EAAWlF,IAAWmF,cACtBipM,EAAenuM,KAAKuuM,WAAWx/L,QAAQzK,aAAetE,KAAKuuM,WAAWx/L,QAAQ5O,YAAcJ,IAAWwtG,2BAA2BvtG,KAAKuuM,WAAWx/L,SAClJq/L,EAAiBruM,IAAWoE,cAAc+pM,EAAW1rM,SAAS,IAClExC,KAAKuuM,WAAWx/L,QAAQ3O,MAAMgC,IAAM,MAEhCoV,SAASu2F,EAAgBzrG,KAAM,IAAM8rM,EAAiBD,EAAelpM,EAAS/E,MAAQH,IAAW4tF,0BACnG3tF,KAAKuuM,WAAWx/L,QAAQ3O,MAAMkC,MAAQ,EAAI6rM,EAAe,KAEzDnuM,KAAKuuM,WAAWx/L,QAAQ3O,MAAMkC,KAAO8rM,EAAiB,OAGzD,CACDtwM,IAAK,UACLhC,MAAO,WACLkE,KAAKkG,aAEN,CACDpI,IAAK,WACLhC,MAAO,WACL,OAAOkE,KAAKxB,MAAMmlD,OAAS3jD,KAAKxB,MAAMgwM,YAEvC,CACD1wM,IAAK,qBACLhC,MAAO,WACDkE,KAAKmjH,YACPnjH,KAAKkG,aAGR,CACDpI,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,aAAeu+D,EACpB9+D,UAAW,mBACXwmB,KAAM,gBAGT,CACDjmB,IAAK,gBACLhC,MAAO,SAAuBiO,GAC5B,OAAIA,EAAKmsG,MACar7F,IAAM7P,cAAcsjM,EAAgB,CACtDluI,MAAOr2D,EAAKmsG,MACZs4F,UAAWzkM,IAAS/J,KAAKod,MAAMwiK,WAC/BC,YAAa7/K,KAAKxB,MAAMqhL,cAIrB,OAER,CACD/hL,IAAK,iBACLhC,MAAO,SAAwBiO,EAAMsyD,GACnC,IAAI1hD,EAAS3a,KAETmnM,EAASnnM,KAAKod,MAAMwiK,aAAe71K,EACnCxM,EAAYN,YAAW,aAAc,CACvC,oBAAqBkqM,GACpBp9L,EAAKxM,WACJ+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAc8M,EAAK0V,WAEjB0xE,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnD4zH,EAAuB,mCACvB5zH,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJonG,EAAc52K,EAAKmsG,OAAsBr7F,IAAM7P,cAAc,OAAQ,CACvEzN,UAAWuvM,IAETztB,EAAUr/K,KAAKw/K,cAAcz1K,GAC7BiV,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW+hL,EACX/gL,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOggI,YAAYtmI,EAAOtK,EAAMsyD,IAEzCt4C,KAAM,WACN,gBAA+B,MAAdha,EAAKmsG,MACtB,gBAAiBnsG,EAAK0V,UACrBy5D,EAAMK,EAAOonG,EAA0B9lK,IAAM7P,cAAc2O,IAAQ,OAEtE,GAAI5P,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOggI,YAAYtmI,EAAOtK,EAAMsyD,IAEzC9+D,UAAW+hL,EACXzkC,eAAgB,kBAChB1pD,cAAeA,EACf27G,qBAAsBA,EACtBvqM,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZ2oM,OAAQA,GAEVnoL,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxBt4C,KAAM,OACNxmB,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZgf,aAAc,SAAsB/K,GAClC,OAAOsG,EAAOoyL,iBAAiB14L,EAAOtK,KAEvCiV,EAASqgK,KAEb,CACDvhL,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,GAC/B,OAAItyD,EAAK0pB,UAAkBzzB,KAAKotI,gBAAgB/wE,GAAmBr8D,KAAK86I,eAAe/wI,EAAMsyD,KAE9F,CACDv+D,IAAK,aACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAOn7C,EAAOo0F,WAAWvrG,EAAMsyD,MAI5B,OAER,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,CACzB,kBAAmB+C,KAAKxB,MAAMmlD,OAE5B07H,EAAUr/K,KAAK0/K,aACfv8D,EAAWnjH,KAAKmjH,WACpB,OAAoBtoG,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKuuM,WACdtxM,WAAY,mBACZ0oB,GAAIw9F,EACJv9F,QAAS,CACP8wF,MAAO,EACPC,KAAM,GAER9wF,eAAe,EACfX,QAASllB,KAAKklB,SACArK,IAAM7P,cAAc,KAAM,CACxC8P,IAAK9a,KAAKuuM,WACVhxM,UAAWA,GACV8hL,OAEH,CAAC,CACHvhL,IAAK,2BACLhC,MAAO,SAAkCojD,EAAWz7B,GAClD,OAA4B,IAAxBy7B,EAAUsvJ,UACL,CACL5uB,WAAY,MAIT,SAIJ0uB,EAjOyB,CAkOhCtzL,aAEFxK,EAAgB89L,EAAgB,eAAgB,CAC9CluI,MAAO,KACPzc,MAAM,EACNpmD,UAAW,KACXixM,WAAW,EACX3uB,YAAa,OAGf,IAAI4uB,EAA2B,SAAUhpF,GACvCjtG,EAAUi2L,EAAahpF,GAEvB,IAAIC,EAAU3gG,EAAa0pL,GAE3B,SAASA,EAAYjwM,GACnB,IAAImjB,EAkBJ,OAhBAxjB,EAAgB6B,KAAMyuM,IAEtB9sL,EAAS+jG,EAAQhqH,KAAKsE,KAAMxB,IACrB4e,MAAQ,CACbE,SAAS,EACToxL,QAAQ,EACRF,WAAW,GAEb7sL,EAAOgtL,YAAchtL,EAAOgtL,YAAY50L,KAAK7B,EAAuByJ,IACpEA,EAAOk+J,YAAcl+J,EAAOk+J,YAAY9lK,KAAK7B,EAAuByJ,IACpEA,EAAOitL,iBAAmBjtL,EAAOitL,iBAAiB70L,KAAK7B,EAAuByJ,IAC9EA,EAAOuD,QAAUvD,EAAOuD,QAAQnL,KAAK7B,EAAuByJ,IAC5DA,EAAOyD,UAAYzD,EAAOyD,UAAUrL,KAAK7B,EAAuByJ,IAChEA,EAAO0D,OAAS1D,EAAO0D,OAAOtL,KAAK7B,EAAuByJ,IAC1DA,EAAO4D,SAAW5D,EAAO4D,SAASxL,KAAK7B,EAAuByJ,IAC9DA,EAAOu9J,QAAuBrkK,IAAMmL,YAC7BrE,EAoST,OAjSA7iB,EAAa2vM,EAAa,CAAC,CACzB3wM,IAAK,cACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZgxL,WAAW,MAGd,CACD1wM,IAAK,mBACLhC,MAAO,WACLkE,KAAKwd,SAAS,CACZgxL,WAAW,MAGd,CACD1wM,IAAK,OACLhC,MAAO,SAAcuY,GACnB,IAAIiO,EAAStiB,KAEPqU,aAAiBw6L,OACrBx6L,EAAM4jG,UAGR5jG,EAAM83E,kBACN93E,EAAMY,iBACNjV,KAAKq8J,aAAehoJ,EAEhBrU,KAAKod,MAAME,QACbtd,KAAKwd,SAAS,CACZkxL,QAAQ,IAGV1uM,KAAKwd,SAAS,CACZF,SAAS,IACR,WACGgF,EAAO9jB,MAAMuiB,QACfuB,EAAO9jB,MAAMuiB,OAAOuB,EAAO+5I,mBAKlC,CACDv+J,IAAK,qBACLhC,MAAO,SAA4B0nB,EAAWC,GAC5C,IAAIhB,EAASziB,KAEb,GAAIA,KAAKod,MAAME,SAAWmG,EAAUirL,SAAW1uM,KAAKod,MAAMsxL,OAAQ,CAChE,IAAIr6L,EAAQrU,KAAKq8J,aACjBr8J,KAAKwd,SAAS,CACZF,SAAS,EACToxL,QAAQ,EACRI,YAAY,EACZN,WAAW,IACV,WACD,OAAO/rL,EAAOvD,KAAK7K,SAIxB,CACDvW,IAAK,OACLhC,MAAO,SAAcuY,GACnB,IAAIiP,EAAStjB,KAEPqU,aAAiBw6L,OACrBx6L,EAAM4jG,UAGRj4G,KAAKq8J,aAAehoJ,EACpBrU,KAAKwd,SAAS,CACZF,SAAS,EACToxL,QAAQ,IACP,WACGprL,EAAO9kB,MAAMijB,QACf6B,EAAO9kB,MAAMijB,OAAO6B,EAAO+4I,mBAIhC,CACDv+J,IAAK,UACLhC,MAAO,WACDkE,KAAKxB,MAAM8Y,YACbR,IAAYW,IAAI,OAAQzX,KAAKk/K,QAAQnwK,QAAS/O,KAAKxB,MAAM4Y,YAG3DpX,KAAKkG,SAASlG,KAAKq8J,gBAEpB,CACDv+J,IAAK,YACLhC,MAAO,WACLkE,KAAKm/K,0BAEN,CACDrhL,IAAK,SACLhC,MAAO,WACLkE,KAAKq8J,aAAe,KACpBr8J,KAAKo/K,4BAEN,CACDthL,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKk/K,QAAQnwK,WAEhC,CACDjR,IAAK,WACLhC,MAAO,SAAkBuY,GACvB,GAAIA,EAAO,CACT,IAAI/R,EAAO+R,EAAMiG,MAAQ,EACrBlY,EAAMiS,EAAMkG,MAAQ,EACpBra,EAAQF,KAAKk/K,QAAQnwK,QAAQzK,aAAetE,KAAKk/K,QAAQnwK,QAAQ5O,YAAcJ,IAAWwtG,2BAA2BvtG,KAAKk/K,QAAQnwK,SAClIzN,EAAStB,KAAKk/K,QAAQnwK,QAAQzK,aAAetE,KAAKk/K,QAAQnwK,QAAQxN,aAAexB,IAAW2tG,4BAA4B1tG,KAAKk/K,QAAQnwK,SACrI9J,EAAWlF,IAAWmF,cAEtB5C,EAAOpC,EAAQQ,SAAS2B,KAAKpB,WAAagE,EAAS/E,QACrDoC,GAAQpC,GAINkC,EAAMd,EAASZ,SAAS2B,KAAKvB,UAAYmE,EAAS3D,SACpDc,GAAOd,GAILgB,EAAO5B,SAAS2B,KAAKpB,aACvBqB,EAAO5B,SAAS2B,KAAKpB,YAInBmB,EAAM1B,SAAS2B,KAAKvB,YACtBsB,EAAM1B,SAAS2B,KAAKvB,WAGtBd,KAAKk/K,QAAQnwK,QAAQ3O,MAAMkC,KAAOA,EAAO,KACzCtC,KAAKk/K,QAAQnwK,QAAQ3O,MAAMgC,IAAMA,EAAM,QAG1C,CACDtE,IAAK,cACLhC,MAAO,SAAqBuY,GAC1BrU,KAAKwd,SAAS,CACZgxL,WAAW,IAEbxuM,KAAKmf,KAAK9K,GACVA,EAAM83E,oBAEP,CACDruF,IAAK,mBACLhC,MAAO,SAA0BuY,GAC/B,OAAOrU,KAAKk/K,SAAWl/K,KAAKk/K,QAAQnwK,WAAa/O,KAAKk/K,QAAQnwK,QAAQwkF,WAAWl/E,EAAM9V,SAAWyB,KAAKk/K,QAAQnwK,QAAQ1L,SAASgR,EAAM9V,WAEvI,CACDT,IAAK,wBACLhC,MAAO,WACLkE,KAAKghB,6BACLhhB,KAAKy6G,8BAEN,CACD38G,IAAK,0BACLhC,MAAO,WACLkE,KAAKuhB,+BACLvhB,KAAK26G,gCAEN,CACD78G,IAAK,4BACLhC,MAAO,WACL,IAAI4nB,EAAS1jB,KAERA,KAAKk7G,wBACRl7G,KAAKk7G,sBAAwB,SAAU7mG,GACjCqP,EAAOwvE,iBAAiB7+E,IAA2B,IAAjBA,EAAMyvC,SAC1CpgC,EAAOvE,KAAK9K,GAEZqP,EAAOlG,SAAS,CACdgxL,WAAW,MAKjB9tM,SAAS8M,iBAAiB,QAASxN,KAAKk7G,0BAG3C,CACDp9G,IAAK,kCACLhC,MAAO,WACL,IAAI6nB,EAAS3jB,KAERA,KAAK+uM,8BACR/uM,KAAK+uM,4BAA8B,SAAU16L,GAC3CsP,EAAOzE,KAAK7K,IAGd3T,SAAS8M,iBAAiB,cAAexN,KAAK+uM,gCAGjD,CACDjxM,IAAK,6BACLhC,MAAO,WACL,IAAIq/G,EAAUn7G,KAETA,KAAKuiB,yBACRviB,KAAKuiB,uBAAyB,SAAUlO,GAClC8mG,EAAQ/9F,MAAME,UAAYvd,IAAWyiB,aACvC24F,EAAQh8F,KAAK9K,IAIjBzT,OAAO4M,iBAAiB,SAAUxN,KAAKuiB,2BAG1C,CACDzkB,IAAK,8BACLhC,MAAO,WACDkE,KAAKk7G,wBACPx6G,SAAS+M,oBAAoB,QAASzN,KAAKk7G,uBAC3Cl7G,KAAKk7G,sBAAwB,QAGhC,CACDp9G,IAAK,oCACLhC,MAAO,WACDkE,KAAK+uM,8BACPruM,SAAS+M,oBAAoB,cAAezN,KAAK+uM,6BACjD/uM,KAAK+uM,4BAA8B,QAGtC,CACDjxM,IAAK,+BACLhC,MAAO,WACDkE,KAAKuiB,yBACP3hB,OAAO6M,oBAAoB,SAAUzN,KAAKuiB,wBAC1CviB,KAAKuiB,uBAAyB,QAGjC,CACDzkB,IAAK,oBACLhC,MAAO,WACDkE,KAAKxB,MAAM2iH,QACbnhH,KAAKgvM,oCAGR,CACDlxM,IAAK,uBACLhC,MAAO,WACLkE,KAAKo/K,0BACLp/K,KAAKivM,oCACLn4L,IAAYe,MAAM7X,KAAKk/K,QAAQnwK,WAEhC,CACDjR,IAAK,oBACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,4BAA6B+C,KAAKxB,MAAMjB,WACnE,OAAoBsd,IAAM7P,cAAcia,IAAe,CACrDS,QAAS1lB,KAAKk/K,QACdjiL,WAAY,gBACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,GAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBC,OAAQrlB,KAAKqlB,OACbE,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,MAAO,CACzC8P,IAAK9a,KAAKk/K,QACVp7J,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAK2uM,YACdvvL,aAAcpf,KAAK4uM,kBACL/zL,IAAM7P,cAAcsjM,EAAgB,CAClDluI,MAAOpgE,KAAKxB,MAAM4hE,MAClBzc,MAAM,EACN6qJ,UAAWxuM,KAAKod,MAAMoxL,UACtB3uB,YAAa7/K,KAAK6/K,kBAGrB,CACD/hL,IAAK,SACLhC,MAAO,WACL,IAAIyG,EAAUvC,KAAKkvM,oBACnB,OAAoBr0L,IAAM7P,cAAcmS,IAAQ,CAC9C5a,QAASA,EACTyB,SAAUhE,KAAKxB,MAAMwF,eAKpByqM,EA5TsB,CA6T7BzzL,aAEFxK,EAAgBi+L,EAAa,eAAgB,CAC3C3qL,GAAI,KACJs8C,MAAO,KACPhgE,MAAO,KACP7C,UAAW,KACX4jH,QAAQ,EACR7pG,YAAY,EACZF,WAAY,EACZpT,SAAU,KACV4yG,kBAAmB,KACnB71F,OAAQ,KACRU,OAAQ,Q,6BCjqBV,6DAGA,SAAS/R,EAAkBjV,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,EAwBT,SAASkyF,EAAmBtyF,GAC1B,OAtBF,SAA4BA,GAC1B,GAAIK,MAAME,QAAQP,GAAM,OAAOiV,EAAkBjV,GAqB1CuyF,CAAmBvyF,IAlB5B,SAA0BwyF,GACxB,GAAsB,qBAAX9xF,QAAmD,MAAzB8xF,EAAK9xF,OAAOC,WAA2C,MAAtB6xF,EAAK,cAAuB,OAAOnyF,MAAM4B,KAAKuwF,GAiBlFC,CAAiBzyF,IAdrD,SAAqCwB,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyT,EAAkBzT,EAAGC,GACvD,IAAIC,EAAIC,OAAOC,UAAUC,SAASZ,KAAKO,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoBrB,MAAM4B,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAWuT,EAAkBzT,EAAGC,QAAzG,GAQ2DyT,CAA4BlV,IALzF,WACE,MAAM,IAAIoC,UAAU,wIAI2EswF,GAGjG,SAAShvF,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,SAASK,EAAaT,EAAaU,EAAYC,GAG7C,OAFID,GAAYT,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GACzCX,EAGT,SAASga,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAG5B,SAASqD,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAG5C,SAAS3b,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAGzB,SAASuU,EAAgBxT,EAAKc,EAAKhC,GAYjC,OAXIgC,KAAOd,EACTZ,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,EAGNkB,EAGT,SAAS+nB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAI5Z,IAAIqgM,EAA4B,SAAUv1L,GACxCpB,EAAU22L,EAAcv1L,GAExB,IAAIC,EAASkL,EAAaoqL,GAE1B,SAASA,EAAa3wM,GACpB,IAAI+G,EAQJ,OANApH,EAAgB6B,KAAMmvM,IAEtB5pM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZwiK,WAAYr6K,EAAM6pM,kBAEb7pM,EAoMT,OAjMAzG,EAAaqwM,EAAc,CAAC,CAC1BrxM,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GACjC,GAAIA,EAAK0V,SACPpL,EAAMY,qBADR,CAKKlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAIV,IAAI61K,EAAa5/K,KAAKod,MAAMwiK,WACf5/K,KAAKqvM,aAAatlM,IAG7BA,EAAK0qF,UAAW,EAChBz0F,KAAKwd,SAAS,CACZoiK,WAAY5/K,KAAKxB,MAAMwnH,SAAW45D,EAAW5hL,QAAO,SAAUsxM,GAC5D,OAAOA,IAAWvlM,KACf,UAGF/J,KAAKxB,MAAMwnH,UAAY45D,IAC1BA,EAAWnrF,UAAW,GAGxB1qF,EAAK0qF,UAAW,EAChBz0F,KAAKwd,SAAS,CACZoiK,WAAY5/K,KAAKxB,MAAMwnH,SAAW,GAAGjoH,OAAOgvF,EAAmB6yF,GAAc,IAAK,CAAC71K,IAASA,QAIjG,CACDjM,IAAK,iBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM4hE,MAAO,CACpB,GAAIpgE,KAAKxB,MAAMwnH,SACb,OAAOhmH,KAAKxB,MAAM4hE,MAAMpiE,QAAO,SAAU+L,GACvC,OAAOA,EAAK0qF,YAGd,IAAImrF,EAAa,KAMjB,OALA5/K,KAAKxB,MAAM4hE,MAAMlvD,SAAQ,SAAUnH,GAC7BA,EAAK0qF,WACFmrF,EAAmC71K,EAAK0qF,UAAW,EAAvCmrF,EAAa71K,MAG3B61K,EAIX,OAAO,OAER,CACD9hL,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,OAAO/J,KAAKod,MAAMwiK,aAAe5/K,KAAKxB,MAAMwnH,SAAWhmH,KAAKod,MAAMwiK,WAAWl0K,QAAQ3B,IAAS,EAAI/J,KAAKod,MAAMwiK,aAAe71K,KAE7H,CACDjM,IAAK,kBACLhC,MAAO,SAAyBugE,GAC9B,OAAoBxhD,IAAM7P,cAAc,KAAM,CAC5ClN,IAAK,aAAeu+D,EACpB9+D,UAAW,uBAGd,CACDO,IAAK,gBACLhC,MAAO,SAAuBiO,EAAMo9L,GAClC,IAAIoI,EAA0BtyM,YAAW,uBAAwB,CAC/D,kCAAmCkqM,IAEjCqI,EAAiC30L,IAAMmL,YAE3C,OAAIjc,EAAKmsG,MACar7F,IAAM7P,cAAcia,IAAe,CACrDS,QAAS8pL,EACTvyM,WAAY,uBACZ2oB,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERhxF,GAAIwhL,EACJthL,eAAe,GACDhL,IAAM7P,cAAc,MAAO,CACzC8P,IAAK00L,EACLjyM,UAAWgyM,GACG10L,IAAM7P,cAAcmkM,EAAc,CAChD/uI,MAAOr2D,EAAKmsG,MACZ8P,SAAUhmH,KAAKxB,MAAMwnH,aAIlB,OAER,CACDloH,IAAK,iBACLhC,MAAO,SAAwBiO,EAAMsyD,GACnC,IAAI1hD,EAAS3a,KAETmnM,EAASnnM,KAAKqvM,aAAatlM,GAC3BxM,EAAYN,YAAW,aAAc8M,EAAKxM,WAC1C+hL,EAAgBriL,YAAW,kBAAmB,CAChD,aAAc8M,EAAK0V,WAEjB0xE,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnD4zH,EAAuB7vM,YAAW,4BAA6B,CACjE,kBAAmBkqM,EACnB,gBAAiBA,IAEfjuH,EAAOnvE,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CAC/DzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJonG,EAAc52K,EAAKmsG,OAAsBr7F,IAAM7P,cAAc,OAAQ,CACvEzN,UAAWuvM,IAETztB,EAAUr/K,KAAKw/K,cAAcz1K,EAAMo9L,GACnCnoL,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW+hL,EACX/gL,OAAQwL,EAAKxL,OACbyhE,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOggI,YAAYtmI,EAAOtK,EAAMsyD,IAEzCt4C,KAAM,WACN,gBAAiBha,EAAK0V,UACrBkhK,EAAaznG,EAAMK,GAEtB,GAAIxvE,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOsG,EAAOggI,YAAYtmI,EAAOtK,EAAMsyD,IAEzC9+D,UAAW+hL,EACXzkC,eAAgB,kBAChB1pD,cAAeA,EACf27G,qBAAsBA,EACtBvqM,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZyjM,MAAOl4L,EAAKmsG,MACZixF,OAAQA,GAEVnoL,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,KAAM,CAC5ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,MACZ2jB,KAAM,QACL/E,EAASqgK,KAEb,CACDvhL,IAAK,aACLhC,MAAO,SAAoBiO,EAAMsyD,GAC/B,OAAItyD,EAAK0pB,UAAkBzzB,KAAKotI,gBAAgB/wE,GAAmBr8D,KAAK86I,eAAe/wI,EAAMsyD,KAE9F,CACDv+D,IAAK,aACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAOn7C,EAAOo0F,WAAWvrG,EAAMsyD,MAI5B,OAER,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,iBAAkB+C,KAAKxB,MAAMjB,WACpD+/E,EAAOt9E,KAAK0/K,aAChB,OAAoB7kK,IAAM7P,cAAc,KAAM,CAC5CzN,UAAWA,EACXwmB,KAAM,QACLu5D,OAIA6xH,EAlNuB,CAmN9Bn0L,aAEFxK,EAAgB2+L,EAAc,eAAgB,CAC5C/uI,MAAO,KACP4lD,UAAU,IAGZ,IAAIypF,EAAyB,SAAUhqF,GACrCjtG,EAAUi3L,EAAWhqF,GAErB,IAAIC,EAAU3gG,EAAa0qL,GAE3B,SAASA,EAAUjxM,GACjB,IAAImjB,EASJ,OAPAxjB,EAAgB6B,KAAMyvM,IAEtB9tL,EAAS+jG,EAAQhqH,KAAKsE,KAAMxB,IACrB4e,MAAQ,CACb0G,GAAItlB,EAAMslB,GACV87J,WAAYj+J,EAAOytL,kBAEdztL,EAiMT,OA9LA7iB,EAAa2wM,EAAW,CAAC,CACvB3xM,IAAK,cACLhC,MAAO,SAAqBuY,EAAOtK,GACjC,GAAIA,EAAK0V,SACPpL,EAAMY,qBADR,CAKKlL,EAAK8c,KACRxS,EAAMY,iBAGJlL,EAAK2wI,SACP3wI,EAAK2wI,QAAQ,CACX/kI,cAAetB,EACftK,KAAMA,IAIV,IAAI61K,EAAa5/K,KAAKod,MAAMwiK,WACf5/K,KAAKqvM,aAAatlM,IAG7BA,EAAK0qF,UAAW,EAChBz0F,KAAKwd,SAAS,CACZoiK,WAAY5/K,KAAKxB,MAAMwnH,SAAW45D,EAAW5hL,QAAO,SAAUsxM,GAC5D,OAAOA,IAAWvlM,KACf,UAGF/J,KAAKxB,MAAMwnH,UAAY45D,IAC1BA,EAAWnrF,UAAW,GAGxB1qF,EAAK0qF,UAAW,EAChBz0F,KAAKwd,SAAS,CACZoiK,WAAY5/K,KAAKxB,MAAMwnH,SAAW,GAAGjoH,OAAOgvF,EAAmB6yF,GAAc,IAAK,CAAC71K,IAASA,QAIjG,CACDjM,IAAK,iBACLhC,MAAO,WACL,GAAIkE,KAAKxB,MAAM4hE,MAAO,CACpB,GAAIpgE,KAAKxB,MAAMwnH,SACb,OAAOhmH,KAAKxB,MAAM4hE,MAAMpiE,QAAO,SAAU+L,GACvC,OAAOA,EAAK0qF,YAGd,IAAImrF,EAAa,KAMjB,OALA5/K,KAAKxB,MAAM4hE,MAAMlvD,SAAQ,SAAUnH,GAC7BA,EAAK0qF,WACFmrF,EAAmC71K,EAAK0qF,UAAW,EAAvCmrF,EAAa71K,MAG3B61K,EAIX,OAAO,OAER,CACD9hL,IAAK,eACLhC,MAAO,SAAsBiO,GAC3B,OAAO/J,KAAKod,MAAMwiK,aAAe5/K,KAAKxB,MAAMwnH,SAAWhmH,KAAKod,MAAMwiK,WAAWl0K,QAAQ3B,IAAS,EAAI/J,KAAKod,MAAMwiK,aAAe71K,KAE7H,CACDjM,IAAK,oBACLhC,MAAO,WACAkE,KAAKod,MAAM0G,IACd9jB,KAAKwd,SAAS,CACZsG,GAAIlN,kBAIT,CACD9Y,IAAK,cACLhC,MAAO,SAAqBiO,EAAMsyD,GAChC,IAAI/5C,EAAStiB,KAETmnM,EAASnnM,KAAKqvM,aAAatlM,GAC3BxM,EAAYN,YAAW,oBAAqB8M,EAAKxM,WACjDu+E,EAAkB7+E,YAAW,iCAAkC,CACjE,cAAekqM,EACf,aAAcp9L,EAAK0V,WAEjBqtL,EAAuB7vM,YAAW,sBAAuB,CAC3D,oBAAqBkqM,EACrB,mBAAoBA,IAElBh2G,EAAgBl0F,YAAW,kBAAmB8M,EAAKmvE,MACnDynG,EAAc52K,EAAKmsG,OAAsBr7F,IAAM7P,cAAc,OAAQ,CACvEzN,UAAWuvM,IAET4C,EAAW3lM,EAAKmvE,MAAqBr+D,IAAM7P,cAAc,OAAQ,CACnEzN,UAAW4zF,IAET5X,EAAQxvE,EAAKwvE,OAAsB1+D,IAAM7P,cAAc,OAAQ,CACjEzN,UAAW,mBACVwM,EAAKwvE,OACJo2H,EAA0B1yM,YAAW,uBAAwB,CAC/D,kCAAmCkqM,IAEjCyI,EAA8B/0L,IAAMmL,YACpChH,EAAuBnE,IAAM7P,cAAc,IAAK,CAClDk2D,KAAMn3D,EAAK8c,KAAO,IAClBtpB,UAAW,0BACXyiE,QAAS,SAAiBxgE,GACxB,OAAO8iB,EAAOq4H,YAAYn7I,EAAGuK,IAE/B,gBAAiBo9L,EACjBrjL,GAAI9jB,KAAKod,MAAM0G,GAAK,UACpB,gBAAiB9jB,KAAKod,MAAM0G,GAAK,UACjC,gBAAiB/Z,EAAK0V,UACrBkhK,EAAa+uB,EAAUn2H,GAE1B,GAAIxvE,EAAKk/F,SAAU,CACjB,IAAIzvB,EAAwB,CAC1BxZ,QAAS,SAAiB3rD,GACxB,OAAOiO,EAAOq4H,YAAYtmI,EAAOtK,IAEnCxM,UAAW,0BACXs9I,eAAgB,kBAChBiyD,qBAAsBA,EACtB37G,cAAeA,EACf5uF,QAASyc,EACTxgB,MAAOwB,KAAKxB,MACZyjM,MAAOl4L,EAAKmsG,MACZixF,OAAQA,GAEVnoL,EAAUrR,IAAY8rE,cAAc1vE,EAAKk/F,SAAUl/F,EAAMyvE,GAG3D,OAAoB3+D,IAAM7P,cAAc,MAAO,CAC7ClN,IAAKiM,EAAKwvE,MAAQ,IAAMld,EACxB9+D,UAAWA,EACX6C,MAAO2J,EAAK3J,OACEya,IAAM7P,cAAc,MAAO,CACzCzN,UAAWu+E,EACX17E,MAAO2J,EAAK3J,OACX4e,GAAuBnE,IAAM7P,cAAcia,IAAe,CAC3DS,QAASkqL,EACT3yM,WAAY,uBACZ2oB,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERhxF,GAAIwhL,EACJthL,eAAe,EACfvU,QAAStR,KAAKxB,MAAMo4G,mBACN/7F,IAAM7P,cAAc,MAAO,CACzC8P,IAAK80L,EACLryM,UAAWoyM,EACX5rL,KAAM,SACND,GAAI9jB,KAAKod,MAAM0G,GAAK,WACpB,kBAAmB9jB,KAAKod,MAAM0G,GAAK,WACrBjJ,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,uBACGsd,IAAM7P,cAAcmkM,EAAc,CAChD/uI,MAAOr2D,EAAKmsG,MACZ34G,UAAW,2BACXyoH,SAAUhmH,KAAKxB,MAAMwnH,iBAGxB,CACDloH,IAAK,eACLhC,MAAO,WACL,IAAI2mB,EAASziB,KAEb,OAAIA,KAAKxB,MAAM4hE,MACNpgE,KAAKxB,MAAM4hE,MAAMziE,KAAI,SAAUoM,EAAMsyD,GAC1C,OAAO55C,EAAO67H,YAAYv0I,EAAMsyD,MAI7B,OAER,CACDv+D,IAAK,SACLhC,MAAO,WACL,IAAIyB,EAAYN,YAAW,0BAA2B+C,KAAKxB,MAAMjB,WAC7DghJ,EAASv+I,KAAKw+I,eAClB,OAAoB3jI,IAAM7P,cAAc,MAAO,CAC7C8Y,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACjBm+I,OAIAkxD,EAhNoB,CAiN3Bz0L,aAEFxK,EAAgBi/L,EAAW,eAAgB,CACzC3rL,GAAI,KACJs8C,MAAO,KACPhgE,MAAO,KACP7C,UAAW,KACXyoH,UAAU,EACVpP,kBAAmB,Q,6BCjkBrB,6DAGA,SAASz4G,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCAIxB,SAASyB,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAAS4Z,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAWjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EATpD,SAAgCyc,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAD,CAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/B+zM,EAA2B,SAAUj2L,IAxEzC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GA6D1CF,CAAUq3L,EAAaj2L,GAEvB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa8qL,GAE1B,SAASA,IAGP,OAFA1xM,EAAgB6B,KAAM6vM,GAEfh2L,EAAOvQ,MAAMtJ,KAAM7C,WAc5B,OA7GoBkB,EAkGPwxM,GAlGoB9wM,EAkGP,CAAC,CACzBjB,IAAK,SACLhC,MAAO,WACL,IAAI+5G,EAAqB54G,YAAW,6BAA8B+C,KAAKxB,MAAMjB,WAC7E,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7CzN,UAAWs4G,EACXz1G,MAAOJ,KAAKxB,MAAM4B,OACjBJ,KAAKxB,MAAMgE,eAxGFlE,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA2GzC6wM,EAtBsB,CAuB7B70L,aAzCiClf,EA2CU,CAC3CsE,MAAO,KACP7C,UAAW,OA7CiBO,EA2CD,kBA3CJd,EA2CT6yM,GAzCZzzM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/Bg0M,EAA2B,SAAUl2L,IAhEzC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAUs3L,EAAal2L,GAEvB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAa+qL,GAE1B,SAASA,EAAYtxM,GACnB,IAAI+G,EAUJ,OAvHJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAM8vM,IAEtBvqM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpBuxM,QAAUxqM,EAAMwqM,QAAQh2L,KAAK7B,EAAuB3S,IAC1DA,EAAMyqM,gBAAkBzqM,EAAMyqM,gBAAgBj2L,KAAK7B,EAAuB3S,IAC1EA,EAAM0qM,gBAAkB1qM,EAAM0qM,gBAAgBl2L,KAAK7B,EAAuB3S,IAC1EA,EAAMqxL,oBAAsBrxL,EAAMqxL,oBAAoB78K,KAAK7B,EAAuB3S,IAClFA,EAAMuxL,kBAAoBvxL,EAAMuxL,kBAAkB/8K,KAAK7B,EAAuB3S,IACvEA,EA0LT,OAjSoBlH,EA0GPyxM,GA1GoB/wM,EA0GP,CAAC,CACzBjB,IAAK,2BACLhC,MAAO,WACL,IAAIo0M,EAAkB7vM,iBAAiBL,KAAK8J,WACxCqmM,EAAa9vM,iBAAiBL,KAAKowM,MACnCC,EAAsBtwM,IAAWoa,UAAUna,KAAK8J,WAAa0N,SAAS24L,EAAU,OAAY,IAE1D,SAAlCD,EAAgB,eAAoD,IAAxBG,IAC1CrwM,KAAKgf,QAAQzd,aAAeiW,SAAS24L,EAAU,OAAY,IAAM34L,SAAS04L,EAAgB,cAAe,IAC3GlwM,KAAK8J,UAAU1J,MAAMkB,OAAS4uM,EAAgB,cAE9ClwM,KAAK8J,UAAU1J,MAAMkB,OAAStB,KAAKgf,QAAQzd,aAAejB,WAAW4vM,EAAgBzsM,YAAcnD,WAAW4vM,EAAgBxsM,eAAiBpD,WAAW4vM,EAAgBvsM,gBAAkBrD,WAAW4vM,EAAgBtsM,mBAAqB,QAIjP,CACD9F,IAAK,UACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAGTswM,EAAatwM,KAAKgf,QAAQ29B,YAC1B4zJ,EAAWvwM,KAAKgf,QAAQhd,YACxB4E,GAAmE,GAAzD5G,KAAK8J,UAAUpI,aAAe1B,KAAKowM,KAAK1uM,cACtD1B,KAAKwwM,aAAeD,EAAWD,EAG/B,IAAIG,EAAczwM,KAAKgf,QAAQ49B,aAC3B8zJ,EAAY1wM,KAAKgf,QAAQtd,aACzBiF,GAAgE,GAAvD3G,KAAK8J,UAAU9H,YAAchC,KAAK2wM,KAAK3uM,aACpDhC,KAAK4wM,aAAeF,EAAYD,EAChCzwM,KAAK6wM,MAAQ7wM,KAAK4I,uBAAsB,WAClC+R,EAAO61L,cAAgB,EACzBzwM,IAAWya,SAASG,EAAOy1L,KAAM,yBAEjCrwM,IAAWma,YAAYS,EAAOy1L,KAAM,wBACpCz1L,EAAOy1L,KAAKhwM,MAAM0wM,QAAU,SAAW1rM,KAAKC,IAA0B,IAAtBsV,EAAO61L,aAAoB,IAAM,WAAa71L,EAAOqE,QAAQ/d,WAAaqvM,EAAa,IAAM,YAAc1pM,EAAS,OAGlK+T,EAAOi2L,cAAgB,EACzB7wM,IAAWya,SAASG,EAAOg2L,KAAM,yBAEjC5wM,IAAWma,YAAYS,EAAOg2L,KAAM,wBACpCh2L,EAAOg2L,KAAKvwM,MAAM0wM,QAAU,UAAY1rM,KAAKC,IAA0B,IAAtBsV,EAAOi2L,aAAoB,IAAM,gBAAkBj2L,EAAOqE,QAAQle,UAAY2vM,EAAc,IAAM,OAAS91L,EAAOy1L,KAAK1uM,aAAe,aAAeiF,EAAQ,YAInN,CACD7I,IAAK,kBACLhC,MAAO,SAAyB0D,GAC9BQ,KAAK+wM,eAAgB,EACrB/wM,KAAKoxI,UAAY5xI,EAAE+a,MACnBxa,IAAWya,SAASxa,KAAK2wM,KAAM,yBAC/B5wM,IAAWya,SAAS9Z,SAAS2B,KAAM,yBACnC3B,SAAS8M,iBAAiB,YAAaxN,KAAK42L,qBAC5Cl2L,SAAS8M,iBAAiB,UAAWxN,KAAK82L,mBAC1Ct3L,EAAEyV,mBAEH,CACDnX,IAAK,kBACLhC,MAAO,SAAyB0D,GAC9BQ,KAAKgxM,eAAgB,EACrBhxM,KAAKmxI,UAAY3xI,EAAE8a,MACnBva,IAAWya,SAASxa,KAAKowM,KAAM,yBAC/BrwM,IAAWya,SAAS9Z,SAAS2B,KAAM,yBACnC3B,SAAS8M,iBAAiB,YAAaxN,KAAK42L,qBAC5Cl2L,SAAS8M,iBAAiB,UAAWxN,KAAK82L,mBAC1Ct3L,EAAEyV,mBAEH,CACDnX,IAAK,sBACLhC,MAAO,SAA6B0D,GAC9BQ,KAAKgxM,cACPhxM,KAAKixM,mBAAmBzxM,IACfQ,KAAK+wM,eAGd/wM,KAAKixM,mBAAmBzxM,GAFxBQ,KAAKkxM,mBAAmB1xM,MAM3B,CACD1B,IAAK,qBACLhC,MAAO,SAA4B0D,GACjC,IAAI0hB,EAASlhB,KAETsxI,EAAS9xI,EAAE8a,MAAQta,KAAKmxI,UAC5BnxI,KAAKmxI,UAAY3xI,EAAE8a,MACnBta,KAAK6wM,MAAQ7wM,KAAK4I,uBAAsB,WACtCsY,EAAOlC,QAAQ/d,YAAcqwI,EAASpwH,EAAOsvL,kBAGhD,CACD1yM,IAAK,qBACLhC,MAAO,SAA4B0D,GACjC,IAAImiB,EAAS3hB,KAETuxI,EAAS/xI,EAAE+a,MAAQva,KAAKoxI,UAC5BpxI,KAAKoxI,UAAY5xI,EAAE+a,MACnBva,KAAK6wM,MAAQ7wM,KAAK4I,uBAAsB,WACtC+Y,EAAO3C,QAAQle,WAAaywI,EAAS5vH,EAAOivL,kBAG/C,CACD9yM,IAAK,oBACLhC,MAAO,SAA2B0D,GAChCO,IAAWma,YAAYla,KAAK2wM,KAAM,yBAClC5wM,IAAWma,YAAYla,KAAKowM,KAAM,yBAClCrwM,IAAWma,YAAYxZ,SAAS2B,KAAM,yBACtC3B,SAAS+M,oBAAoB,YAAazN,KAAK42L,qBAC/Cl2L,SAAS+M,oBAAoB,UAAWzN,KAAK82L,mBAC7C92L,KAAKgxM,eAAgB,EACrBhxM,KAAK+wM,eAAgB,IAEtB,CACDjzM,IAAK,wBACLhC,MAAO,SAA+B2D,GAEpC,OADYmB,OAAOgI,uBAAyB5I,KAAKmxM,cACpC1xM,KAEd,CACD3B,IAAK,UACLhC,MAAO,WACLkE,KAAK+vM,YAEN,CACDjyM,IAAK,oBACLhC,MAAO,WACLkE,KAAK+vM,UACL/vM,KAAK+vM,QAAU/vM,KAAK+vM,QAAQh2L,KAAK/Z,MACjCY,OAAO4M,iBAAiB,SAAUxN,KAAK+vM,SACvC/vM,KAAKoxM,2BACLpxM,KAAK49I,aAAc,IAEpB,CACD9/I,IAAK,uBACLhC,MAAO,WACDkE,KAAK49I,aACPh9I,OAAO6M,oBAAoB,SAAUzN,KAAK+vM,SAGxC/vM,KAAK6wM,OACPjwM,OAAOywM,qBAAqBrxM,KAAK6wM,SAGpC,CACD/yM,IAAK,SACLhC,MAAO,WACL,IAAIwmB,EAAStiB,KAETzC,EAAYN,YAAW,4BAA6B+C,KAAKxB,MAAMjB,WACnE,OAAoBsd,IAAM7P,cAAc,MAAO,CAC7C8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOxY,UAAY7J,GAE5B6jB,GAAI9jB,KAAKxB,MAAMslB,GACfvmB,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,OACJya,IAAM7P,cAAc,MAAO,CACzCzN,UAAW,yBACGsd,IAAM7P,cAAc,MAAO,CACzC8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOtD,QAAU/e,GAE1B1C,UAAW,wBACX0yF,SAAUjwF,KAAK+vM,QACf3wL,aAAcpf,KAAK+vM,SAClB/vM,KAAKxB,MAAMgE,WAAyBqY,IAAM7P,cAAc,MAAO,CAChE8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAO8tL,KAAOnwM,GAEvB1C,UAAW,wCACXuc,YAAa9Z,KAAKgwM,kBACHn1L,IAAM7P,cAAc,MAAO,CAC1C8P,IAAK,SAAa7a,GAChB,OAAOqiB,EAAOquL,KAAO1wM,GAEvB1C,UAAW,wCACXuc,YAAa9Z,KAAKiwM,wBA3RR3xM,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GA+RzC8wM,EA1MsB,CA2M7B90L,aA7NiClf,EA+NU,CAC3CgoB,GAAI,KACJ1jB,MAAO,KACP7C,UAAW,OAlOiBO,EA+ND,kBA/NJd,EA+NT8yM,GA7NZ1zM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6BCjGf,6DASA,SAASwC,EAAkBC,EAAQC,GACjC,IAAK,IAAI5D,EAAI,EAAGA,EAAI4D,EAAM7D,OAAQC,IAAK,CACrC,IAAI6D,EAAaD,EAAM5D,GACvB6D,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDxC,OAAOyC,eAAeN,EAAQE,EAAWX,IAAKW,IAUlD,SAASyZ,EAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,EAAgBpc,EAAGkZ,GAM1B,OALAkD,EAAkBjc,OAAOkc,gBAAkB,SAAyBrc,EAAGkZ,GAErE,OADAlZ,EAAEsc,UAAYpD,EACPlZ,GAGFoc,EAAgBpc,EAAGkZ,GAkB5B,SAASpY,EAAQC,GAaf,OATED,EADoB,oBAAX5B,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB4B,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7B,QAAyB6B,EAAIR,cAAgBrB,QAAU6B,IAAQ7B,OAAOkB,UAAY,gBAAkBW,GAItHD,EAAQC,GAGjB,SAAS4b,EAA2BT,EAAMzc,GACxC,OAAIA,GAA2B,WAAlBqB,EAAQrB,IAAsC,oBAATA,EAI3Cwc,EAAuBC,GAHrBzc,EAMX,SAASmd,EAAgB5c,GAIvB,OAHA4c,EAAkBzc,OAAOkc,eAAiBlc,OAAO0c,eAAiB,SAAyB7c,GACzF,OAAOA,EAAEsc,WAAanc,OAAO0c,eAAe7c,IAEvC4c,EAAgB5c,GAkBzB,SAAS8oB,EAAa/L,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjd,UAAUkd,QAAQ7d,KAAKwd,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAO9Z,GAAK,OAAO,GAF9PwlB,GAA6B,OAAO,WAAkC,IAAsClW,EAAlC2K,EAAQZ,EAAgBG,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYb,EAAgB7Y,MAAMxD,YAAasS,EAASoK,QAAQC,UAAUM,EAAOtc,UAAWuc,QAAqB5K,EAAS2K,EAAMnQ,MAAMtJ,KAAM7C,WAAc,OAAOyb,EAA2B5Y,KAAM8O,IAG5Z,IAlByB9R,EAAKc,EAAKhC,EAkB/Bw1M,EAAyB,SAAU13L,IAhEvC,SAAmBnB,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7b,UAAU,sDAGtB4b,EAASpc,UAAYD,OAAOuc,OAAOD,GAAcA,EAAWrc,UAAW,CACrEG,YAAa,CACXV,MAAO2c,EACP7Z,UAAU,EACVD,cAAc,KAGd+Z,GAAYL,EAAgBI,EAAUC,GAqD1CF,CAAU84L,EAAW13L,GAErB,IA1FoBvb,EAAaU,EAAYC,EA0FzC6a,EAASkL,EAAausL,GAE1B,SAASA,EAAU9yM,GACjB,IAAI+G,EAaJ,OA1HJ,SAAyBnH,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIxB,UAAU,qCA6GpBsB,CAAgB6B,KAAMsxM,IAEtB/rM,EAAQsU,EAAOne,KAAKsE,KAAMxB,IACpB4e,MAAQ,CACZE,SAAS,GAEX/X,EAAMy6D,QAAUz6D,EAAMy6D,QAAQjmD,KAAK7B,EAAuB3S,IAC1DA,EAAM2f,QAAU3f,EAAM2f,QAAQnL,KAAK7B,EAAuB3S,IAC1DA,EAAM6f,UAAY7f,EAAM6f,UAAUrL,KAAK7B,EAAuB3S,IAC9DA,EAAMggB,SAAWhgB,EAAMggB,SAASxL,KAAK7B,EAAuB3S,IAC5DA,EAAMgsM,iBAAgC12L,IAAMmL,YACrCzgB,EA4HT,OAtOoBlH,EA6GPizM,GA7GoBvyM,EA6GT,CAAC,CACvBjB,IAAK,UACLhC,MAAO,YACqC,WAAtBkE,KAAKxB,MAAMD,OAAsBqC,OAASZ,KAAKwxM,OAAOv3L,eAC5D5P,OAAO,CACnBjI,IAAK,EACLuzI,SAAU31I,KAAKxB,MAAMm3I,aAGxB,CACD73I,IAAK,kBACLhC,MAAO,SAAyB21M,GAC9BzxM,KAAKwd,SAAS,CACZF,QAASm0L,EAAUzxM,KAAKxB,MAAMkzM,cAGjC,CACD5zM,IAAK,2BACLhC,MAAO,WACL,IAAI6e,EAAS3a,KAEbA,KAAK2xM,eAAiB,WACpBh3L,EAAOi3L,gBAAgBj3L,EAAO62L,OAAOv3L,cAAcnZ,YAGrDd,KAAKwxM,OAAOv3L,cAAczM,iBAAiB,SAAUxN,KAAK2xM,kBAE3D,CACD7zM,IAAK,6BACLhC,MAAO,WACL,IAAIolB,EAASlhB,KAEbA,KAAK2xM,eAAiB,WACpBzwL,EAAO0wL,gBAAgB7xM,IAAW+E,uBAGpClE,OAAO4M,iBAAiB,SAAUxN,KAAK2xM,kBAExC,CACD7zM,IAAK,6BACLhC,MAAO,WACDkE,KAAK2xM,iBACP3xM,KAAKwxM,OAAOv3L,cAAcxM,oBAAoB,SAAUzN,KAAK2xM,gBAC7D3xM,KAAK2xM,eAAiB,QAGzB,CACD7zM,IAAK,+BACLhC,MAAO,WACDkE,KAAK2xM,iBACP/wM,OAAO6M,oBAAoB,SAAUzN,KAAK2xM,gBAC1C3xM,KAAK2xM,eAAiB,QAGzB,CACD7zM,IAAK,UACLhC,MAAO,WACLgb,IAAYW,IAAI,UAAWzX,KAAKuxM,iBAAiBxiM,WAElD,CACDjR,IAAK,YACLhC,MAAO,WACLkE,KAAKxB,MAAMuiB,QAAU/gB,KAAKxB,MAAMuiB,WAEjC,CACDjjB,IAAK,WACLhC,MAAO,WACLgb,IAAYe,MAAM7X,KAAKuxM,iBAAiBxiM,SACxC/O,KAAKxB,MAAMijB,QAAUzhB,KAAKxB,MAAMijB,WAEjC,CACD3jB,IAAK,oBACLhC,MAAO,WACqB,WAAtBkE,KAAKxB,MAAMD,OAAqByB,KAAK6xM,6BAA4D,WAAtB7xM,KAAKxB,MAAMD,QAAqByB,KAAK8xM,6BAErH,CACDh0M,IAAK,uBACLhC,MAAO,WACqB,WAAtBkE,KAAKxB,MAAMD,OAAqByB,KAAK+xM,+BAA8D,WAAtB/xM,KAAKxB,MAAMD,QAAqByB,KAAKgyM,6BACtHl7L,IAAYe,MAAM7X,KAAKuxM,iBAAiBxiM,WAEzC,CACDjR,IAAK,SACLhC,MAAO,WACL,IAAI6lB,EAAS3hB,KAETzC,EAAYN,YAAW,iCAAkC,CAC3D,qBAA4C,WAAtB+C,KAAKxB,MAAMD,QAChCyB,KAAKxB,MAAMjB,WACV4zF,EAAgBl0F,YAAW,mBAAoB+C,KAAKxB,MAAM06E,MAC1D+4H,EAAuC,WAAtBjyM,KAAKxB,MAAMD,OAChC,OAAoBsc,IAAM7P,cAAc6P,IAAMoL,SAAU,KAAmBpL,IAAM7P,cAAcia,IAAe,CAC5GS,QAAS1lB,KAAKuxM,iBACdt0M,WAAY,cACZ0oB,GAAI3lB,KAAKod,MAAME,QACfsI,QAAS,CACP8wF,MAAO,IACPC,KAAM,KAERrlG,QAAStR,KAAKxB,MAAMo4G,kBACpB/wF,eAAe,EACfX,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBG,SAAUvlB,KAAKulB,UACD1K,IAAM7P,cAAc,SAAU,CAC5C8P,IAAK9a,KAAKuxM,iBACV/zM,KAAM,SACND,UAAWA,EACX6C,MAAOJ,KAAKxB,MAAM4B,MAClB4/D,QAAShgE,KAAKggE,SACAnlD,IAAM7P,cAAc,OAAQ,CAC1CzN,UAAW4zF,IACIt2E,IAAM7P,cAAc2O,IAAQ,QAASs4L,GAA+Bp3L,IAAM7P,cAAc,OAAQ,CAC/G8P,IAAK,SAAa7a,GAChB,OAAO0hB,EAAO6vL,OAASvxM,GAEzB1C,UAAW,6BAhODe,EAAkBD,EAAYhC,UAAW0C,GACrDC,GAAaV,EAAkBD,EAAaW,GAoOzCsyM,EA/IoB,CAgJ3Bt2L,aAlKiClf,EAoKQ,CACzCyC,OAAQ,SACRmzM,UAAW,IACXx4H,KAAM,mBACNy8D,SAAU,SACVp4I,UAAW,KACX6C,MAAO,KACPw2G,kBAAmB,KACnB71F,OAAQ,KACRU,OAAQ,OA7KoB3jB,EAoKH,kBApKFd,EAoKTs0M,GAlKZl1M,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ5B,EAAIc,GAAOhC,G,6FCzFR,SAASo2M,EAAgB1vM,EAAU2vM,GACxC,IAIIrjM,EAAS1S,OAAOuc,OAAO,MAO3B,OANInW,GAAU20F,WAASx5F,IAAI6E,GAAU,SAAUvE,GAC7C,OAAOA,KACNiT,SAAQ,SAAUy9F,GAEnB7/F,EAAO6/F,EAAM7wG,KATF,SAAgB6wG,GAC3B,OAAOwjG,GAASC,yBAAezjG,GAASwjG,EAAMxjG,GAASA,EAQnC0jG,CAAO1jG,MAEtB7/F,EAkET,SAASwjM,EAAQ3jG,EAAOk+E,EAAMruL,GAC5B,OAAsB,MAAfA,EAAMquL,GAAgBruL,EAAMquL,GAAQl+E,EAAMnwG,MAAMquL,GAclD,SAAS0lB,EAAoBrzJ,EAAWszJ,EAAkBjtL,GAC/D,IAAIktL,EAAmBP,EAAgBhzJ,EAAU18C,UAC7CA,EA/DC,SAA4B+nC,EAAM5uC,GAIvC,SAAS+2M,EAAe50M,GACtB,OAAOA,KAAOnC,EAAOA,EAAKmC,GAAOysC,EAAKzsC,GAJxCysC,EAAOA,GAAQ,GACf5uC,EAAOA,GAAQ,GAQf,IAcIf,EAdA+3M,EAAkBv2M,OAAOuc,OAAO,MAChCi6L,EAAc,GAElB,IAAK,IAAIC,KAAWtoK,EACdsoK,KAAWl3M,EACTi3M,EAAYj4M,SACdg4M,EAAgBE,GAAWD,EAC3BA,EAAc,IAGhBA,EAAY/2M,KAAKg3M,GAKrB,IAAIC,EAAe,GAEnB,IAAK,IAAIC,KAAWp3M,EAAM,CACxB,GAAIg3M,EAAgBI,GAClB,IAAKn4M,EAAI,EAAGA,EAAI+3M,EAAgBI,GAASp4M,OAAQC,IAAK,CACpD,IAAIo4M,EAAiBL,EAAgBI,GAASn4M,GAC9Ck4M,EAAaH,EAAgBI,GAASn4M,IAAM83M,EAAeM,GAI/DF,EAAaC,GAAWL,EAAeK,GAIzC,IAAKn4M,EAAI,EAAGA,EAAIg4M,EAAYj4M,OAAQC,IAClCk4M,EAAaF,EAAYh4M,IAAM83M,EAAeE,EAAYh4M,IAG5D,OAAOk4M,EAoBQG,CAAmBT,EAAkBC,GAmCpD,OAlCAr2M,OAAOqS,KAAKjM,GAAU0O,SAAQ,SAAUpT,GACtC,IAAI6wG,EAAQnsG,EAAS1E,GACrB,GAAKs0M,yBAAezjG,GAApB,CACA,IAAIukG,EAAWp1M,KAAO00M,EAClBW,EAAWr1M,KAAO20M,EAClBW,EAAYZ,EAAiB10M,GAC7Bu1M,EAAYjB,yBAAegB,KAAeA,EAAU50M,MAAMmnB,IAE1DwtL,GAAaD,IAAWG,EAQhBF,IAAWD,GAAYG,EAMxBF,GAAWD,GAAWd,yBAAegB,KAI9C5wM,EAAS1E,GAAO2gB,uBAAakwF,EAAO,CAClCppF,SAAUA,EAASxL,KAAK,KAAM40F,GAC9BhpF,GAAIytL,EAAU50M,MAAMmnB,GACpBgxF,KAAM27F,EAAQ3jG,EAAO,OAAQzvD,GAC7Bw3D,MAAO47F,EAAQ3jG,EAAO,QAASzvD,MAXjC18C,EAAS1E,GAAO2gB,uBAAakwF,EAAO,CAClChpF,IAAI,IAVNnjB,EAAS1E,GAAO2gB,uBAAakwF,EAAO,CAClCppF,SAAUA,EAASxL,KAAK,KAAM40F,GAC9BhpF,IAAI,EACJgxF,KAAM27F,EAAQ3jG,EAAO,OAAQzvD,GAC7Bw3D,MAAO47F,EAAQ3jG,EAAO,QAASzvD,SAoB9B18C,ECjIT,IAAIo8G,EAASxiH,OAAOwiH,QAAU,SAAU5hH,GACtC,OAAOZ,OAAOqS,KAAKzR,GAAKW,KAAI,SAAU+W,GACpC,OAAO1X,EAAI0X,OAyBXi8G,EAA+B,SAAU2iF,GAG3C,SAAS3iF,EAAgBnyH,EAAO4nB,GAC9B,IAAI7gB,EAIAguM,GAFJhuM,EAAQ+tM,EAAiB53M,KAAKsE,KAAMxB,EAAO4nB,IAAYpmB,MAE9BuzM,aAAax5L,KC5C3B,SAAgC5B,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EDuCsCD,CAAuB3S,IAUlE,OAPAA,EAAM6X,MAAQ,CACZo2L,aAAc,CACZC,YAAY,GAEdF,aAAcA,EACdG,aAAa,GAERnuM,EAjBT+6G,YAAeqQ,EAAiB2iF,GAoBhC,IAAI5lB,EAAS/8D,EAAgBt0H,UAqE7B,OAnEAqxL,EAAOzoI,kBAAoB,WACzBjlD,KAAKqd,SAAU,EACfrd,KAAKwd,SAAS,CACZg2L,aAAc,CACZC,YAAY,MAKlB/lB,EAAOtoI,qBAAuB,WAC5BplD,KAAKqd,SAAU,GAGjBszG,EAAgB89D,yBAA2B,SAAkCvvI,EAAWthD,GACtF,IDiBmCY,EAAO+mB,ECjBtCitL,EAAmB50M,EAAK4E,SACxB+wM,EAAe31M,EAAK21M,aAExB,MAAO,CACL/wM,SAFgB5E,EAAK81M,aDeYl1M,ECbc0gD,EDaP35B,ECbkBguL,EDcvDrB,EAAgB1zM,EAAMgE,UAAU,SAAUmsG,GAC/C,OAAOlwF,uBAAakwF,EAAO,CACzBppF,SAAUA,EAASxL,KAAK,KAAM40F,GAC9BhpF,IAAI,EACJguL,OAAQrB,EAAQ3jG,EAAO,SAAUnwG,GACjCk4G,MAAO47F,EAAQ3jG,EAAO,QAASnwG,GAC/Bm4G,KAAM27F,EAAQ3jG,EAAO,OAAQnwG,SCpB6C+zM,EAAoBrzJ,EAAWszJ,EAAkBe,GAC3HG,aAAa,IAKjBhmB,EAAO6lB,aAAe,SAAsB5kG,EAAOpnG,GACjD,IAAIqsM,EAAsB1B,EAAgBlyM,KAAKxB,MAAMgE,UACjDmsG,EAAM7wG,OAAO81M,IAEbjlG,EAAMnwG,MAAM+mB,UACdopF,EAAMnwG,MAAM+mB,SAAShe,GAGnBvH,KAAKqd,SACPrd,KAAKwd,UAAS,SAAUJ,GACtB,IAAI5a,EAAWi2E,YAAS,GAAIr7D,EAAM5a,UAGlC,cADOA,EAASmsG,EAAM7wG,KACf,CACL0E,SAAUA,QAMlBkrL,EAAOpvK,OAAS,WACd,IAAIu1L,EAAc7zM,KAAKxB,MACnBwc,EAAY64L,EAAYvwJ,UACxBwwJ,EAAeD,EAAYC,aAC3Bt1M,EAAQ+xF,YAA8BsjH,EAAa,CAAC,YAAa,iBAEjEL,EAAexzM,KAAKod,MAAMo2L,aAC1BhxM,EAAWo8G,EAAO5+G,KAAKod,MAAM5a,UAAU7E,IAAIm2M,GAK/C,cAJOt1M,EAAMm1M,cACNn1M,EAAMk4G,aACNl4G,EAAMm4G,KAEK,OAAd37F,EACkBH,IAAM7P,cAAc+oM,IAAuBzwI,SAAU,CACvExnE,MAAO03M,GACNhxM,GAGeqY,IAAM7P,cAAc+oM,IAAuBzwI,SAAU,CACvExnE,MAAO03M,GACO34L,IAAM7P,cAAcgQ,EAAWxc,EAAOgE,KAGjDmuH,EA1F0B,CA2FjC91G,IAAMG,WAER21G,EAAgBg+D,UAyDZ,GACJh+D,EAAgBx2C,aA5KG,CACjB72B,UAAW,MACXwwJ,aAAc,SAAsBnlG,GAClC,OAAOA,IA0KIgiB,O,sMEpLQ,qBAAZlM,UAITlqH,EAAQ,KAAkCy5M,SAC1C77L,KAAKssG,QAAUlqH,EAAQ,MAKH,qBAAXqG,QAETrG,EAAQ,KAKV6B,OAAOg8E,OAAS79E,EAAQ,K,6BCxBxB,IAAIyrL,EAAIzrL,EAAQ,IACZ4mH,EAAS5mH,EAAQ,IACjBmgL,EAAangL,EAAQ,IACrB8gL,EAAU9gL,EAAQ,IAClBu0I,EAAcv0I,EAAQ,IACtB+mH,EAAgB/mH,EAAQ,KACxB66I,EAAQ76I,EAAQ,IAChB8mH,EAAM9mH,EAAQ,IACdS,EAAUT,EAAQ,KAClBs0I,EAAat0I,EAAQ,IACrB4zH,EAAW5zH,EAAQ,IACnB4+J,EAAW5+J,EAAQ,KACnBy0I,EAAWz0I,EAAQ,IACnBw4H,EAAWx4H,EAAQ,IACnBigL,EAAkBjgL,EAAQ,IAC1B00I,EAAgB10I,EAAQ,IACxB05M,EAAY15M,EAAQ,KACpBs4J,EAA2Bt4J,EAAQ,IACnC25M,EAAqB35M,EAAQ,IAC7B45M,EAAa55M,EAAQ,KACrB65M,EAA4B75M,EAAQ,KACpC85M,EAA8B95M,EAAQ,KACtC+5M,EAA8B/5M,EAAQ,KACtC6qL,EAAiC7qL,EAAQ,KACzCq4J,EAAuBr4J,EAAQ,IAC/BggL,EAA6BhgL,EAAQ,KACrCw3J,EAAWx3J,EAAQ,IACnB6mH,EAAS7mH,EAAQ,KACjB++J,EAAY/+J,EAAQ,IACpBg/J,EAAah/J,EAAQ,IACrBqlD,EAAMrlD,EAAQ,KACdk5J,EAAkBl5J,EAAQ,IAC1BonH,EAA+BpnH,EAAQ,KACvCg6M,EAAwBh6M,EAAQ,IAChC4rL,EAAiB5rL,EAAQ,IACzBw4J,EAAsBx4J,EAAQ,IAC9Bi6M,EAAWj6M,EAAQ,KAAgC2W,QAEnDujM,EAASn7C,EAAU,UACnBo7C,EAAS,SAETC,EAAelhD,EAAgB,eAC/BmhD,EAAmB7hD,EAAoBt7I,IACvCy7I,EAAmBH,EAAoBkH,UAAUy6C,GACjD7sB,EAAkBzrL,OAAM,UACxBu+K,EAAUx5D,EAAOhmH,OACjB05M,EAAan6B,EAAW,OAAQ,aAChCo6B,EAAiC1vB,EAA+B3lL,EAChEs1M,EAAuBniD,EAAqBnzJ,EAC5Cu1M,EAA4BX,EAA4B50M,EACxDw1M,EAA6B16B,EAA2B96K,EACxDy1M,EAAa9zF,EAAO,WACpB+zF,EAAyB/zF,EAAO,cAChCg0F,GAAyBh0F,EAAO,6BAChCi0F,GAAyBj0F,EAAO,6BAChCI,GAAwBJ,EAAO,OAC/Bk0F,GAAUn0F,EAAOm0F,QAEjBC,IAAcD,KAAYA,GAAO,YAAgBA,GAAO,UAAYE,UAGpEC,GAAsB3mE,GAAesG,GAAM,WAC7C,OAES,GAFF8+D,EAAmBa,EAAqB,GAAI,IAAK,CACtDx9L,IAAK,WAAc,OAAOw9L,EAAqB/0M,KAAM,IAAK,CAAElE,MAAO,IAAKmS,MACtEA,KACD,SAAUkhI,EAAGC,EAAGC,GACnB,IAAIqmE,EAA4BZ,EAA+BjtB,EAAiBz4C,GAC5EsmE,UAAkC7tB,EAAgBz4C,GACtD2lE,EAAqB5lE,EAAGC,EAAGC,GACvBqmE,GAA6BvmE,IAAM04C,GACrCktB,EAAqBltB,EAAiBz4C,EAAGsmE,IAEzCX,EAEAY,GAAO,SAAUp7C,EAAKq7C,GACxB,IAAI/6B,EAASq6B,EAAW36C,GAAO25C,EAAmBv5B,EAAO,WAOzD,OANAi6B,EAAiB/5B,EAAQ,CACvBr9K,KAAMk3M,EACNn6C,IAAKA,EACLq7C,YAAaA,IAEV9mE,IAAa+rC,EAAO+6B,YAAcA,GAChC/6B,GAGL3rC,GAAkB,SAAwBC,EAAGC,EAAGC,GAC9CF,IAAM04C,GAAiB34C,GAAgBimE,EAAwB/lE,EAAGC,GACtEL,EAASG,GACT,IAAIrxI,EAAMmxI,EAAcG,GAExB,OADAJ,EAASK,GACLhuB,EAAI6zF,EAAYp3M,IACbuxI,EAAW3wI,YAIV2iH,EAAI8tB,EAAGslE,IAAWtlE,EAAEslE,GAAQ32M,KAAMqxI,EAAEslE,GAAQ32M,IAAO,GACvDuxI,EAAa6kE,EAAmB7kE,EAAY,CAAE3wI,WAAYm0J,EAAyB,GAAG,OAJjFxxC,EAAI8tB,EAAGslE,IAASM,EAAqB5lE,EAAGslE,EAAQ5hD,EAAyB,EAAG,KACjF1jB,EAAEslE,GAAQ32M,IAAO,GAIV23M,GAAoBtmE,EAAGrxI,EAAKuxI,IAC9B0lE,EAAqB5lE,EAAGrxI,EAAKuxI,IAGpCwmE,GAAoB,SAA0B1mE,EAAGysB,GACnD5sB,EAASG,GACT,IAAI2mE,EAAat7B,EAAgB5e,GAC7BntJ,EAAO0lM,EAAW2B,GAAY/3M,OAAOg4M,GAAuBD,IAIhE,OAHAtB,EAAS/lM,GAAM,SAAU3Q,GAClBgxI,IAAei2C,GAAsBrpL,KAAKo6M,EAAYh4M,IAAMoxI,GAAgBC,EAAGrxI,EAAKg4M,EAAWh4M,OAE/FqxI,GAOL41C,GAAwB,SAA8B5J,GACxD,IAAI/rC,EAAIH,EAAcksC,GAClBz8K,EAAau2M,EAA2Bv5M,KAAKsE,KAAMovI,GACvD,QAAIpvI,OAAS6nL,GAAmBxmE,EAAI6zF,EAAY9lE,KAAO/tB,EAAI8zF,EAAwB/lE,QAC5E1wI,IAAe2iH,EAAIrhH,KAAMovI,KAAO/tB,EAAI6zF,EAAY9lE,IAAM/tB,EAAIrhH,KAAMy0M,IAAWz0M,KAAKy0M,GAAQrlE,KAAK1wI,IAGlG+7K,GAA4B,SAAkCtrC,EAAGC,GACnE,IAAIjwI,EAAKq7K,EAAgBrrC,GACrBrxI,EAAMmxI,EAAcG,GACxB,GAAIjwI,IAAO0oL,IAAmBxmE,EAAI6zF,EAAYp3M,IAASujH,EAAI8zF,EAAwBr3M,GAAnF,CACA,IAAIW,EAAaq2M,EAA+B31M,EAAIrB,GAIpD,OAHIW,IAAc4iH,EAAI6zF,EAAYp3M,IAAUujH,EAAIliH,EAAIs1M,IAAWt1M,EAAGs1M,GAAQ32M,KACxEW,EAAWC,YAAa,GAEnBD,IAGLu3M,GAAuB,SAA6B7mE,GACtD,IAAIjG,EAAQ8rE,EAA0Bx6B,EAAgBrrC,IAClDrgI,EAAS,GAIb,OAHA0lM,EAAStrE,GAAO,SAAUprI,GACnBujH,EAAI6zF,EAAYp3M,IAASujH,EAAIk4C,EAAYz7J,IAAMgR,EAAOjT,KAAKiC,MAE3DgR,GAGLinM,GAAyB,SAA+B5mE,GAC1D,IAAI8mE,EAAsB9mE,IAAM04C,EAC5B3+C,EAAQ8rE,EAA0BiB,EAAsBd,EAAyB36B,EAAgBrrC,IACjGrgI,EAAS,GAMb,OALA0lM,EAAStrE,GAAO,SAAUprI,IACpBujH,EAAI6zF,EAAYp3M,IAAUm4M,IAAuB50F,EAAIwmE,EAAiB/pL,IACxEgR,EAAOjT,KAAKq5M,EAAWp3M,OAGpBgR,IAKJwyG,IACHq5D,EAAU,WACR,GAAI36K,gBAAgB26K,EAAS,MAAM99K,UAAU,+BAC7C,IAAI+4M,EAAez4M,UAAUxC,aAA2B8K,IAAjBtI,UAAU,GAA+B82M,EAAU92M,UAAU,SAAhCsI,EAChE80J,EAAM36G,EAAIg2J,GACVM,EAAS,SAATA,EAAmBp6M,GACjBkE,OAAS6nL,GAAiBquB,EAAOx6M,KAAKy5M,EAAwBr5M,GAC9DulH,EAAIrhH,KAAMy0M,IAAWpzF,EAAIrhH,KAAKy0M,GAASl6C,KAAMv6J,KAAKy0M,GAAQl6C,IAAO,GACrEk7C,GAAoBz1M,KAAMu6J,EAAK1H,EAAyB,EAAG/2J,KAG7D,OADIgzI,GAAeymE,IAAYE,GAAoB5tB,EAAiBttB,EAAK,CAAE57J,cAAc,EAAM8Y,IAAKy+L,IAC7FP,GAAKp7C,EAAKq7C,IAGnB7jD,EAAS4oB,EAAO,UAAa,YAAY,WACvC,OAAOznB,EAAiBlzJ,MAAMu6J,OAGhCxI,EAAS4oB,EAAS,iBAAiB,SAAUi7B,GAC3C,OAAOD,GAAK/1J,EAAIg2J,GAAcA,MAGhCr7B,EAA2B96K,EAAIslL,GAC/BnyB,EAAqBnzJ,EAAIyvI,GACzBk2C,EAA+B3lL,EAAIg7K,GACnC25B,EAA0B30M,EAAI40M,EAA4B50M,EAAIu2M,GAC9D1B,EAA4B70M,EAAIs2M,GAEhCp0F,EAA6BliH,EAAI,SAAUhD,GACzC,OAAOk5M,GAAKliD,EAAgBh3J,GAAOA,IAGjCqyI,IAEFimE,EAAqBp6B,EAAO,UAAa,cAAe,CACtDh8K,cAAc,EACd4Y,IAAK,WACH,OAAO27I,EAAiBlzJ,MAAM41M,eAG7Bv6B,GACHtpB,EAAS81B,EAAiB,uBAAwB9C,GAAuB,CAAEzxB,QAAQ,MAKzF0yB,EAAE,CAAE7kE,QAAQ,EAAMw0F,MAAM,EAAMjjD,QAASpxC,EAAeloG,MAAOkoG,GAAiB,CAC5EnmH,OAAQw/K,IAGV65B,EAASL,EAAW3yF,KAAwB,SAAU/kH,GACpD83M,EAAsB93M,MAGxBupL,EAAE,CAAEznL,OAAQm2M,EAAQliD,MAAM,EAAME,QAASpxC,GAAiB,CAGxD,IAAO,SAAUxjH,GACf,IAAIq4M,EAASlC,EAAUn2M,GACvB,GAAIujH,EAAI+zF,GAAwBe,GAAS,OAAOf,GAAuBe,GACvE,IAAIt7B,EAASF,EAAQw7B,GAGrB,OAFAf,GAAuBe,GAAUt7B,EACjCw6B,GAAuBx6B,GAAUs7B,EAC1Bt7B,GAITu7B,OAAQ,SAAgBtlM,GACtB,IAAKqoJ,EAASroJ,GAAM,MAAMjU,UAAUiU,EAAM,oBAC1C,GAAIuwG,EAAIg0F,GAAwBvkM,GAAM,OAAOukM,GAAuBvkM,IAEtEulM,UAAW,WAAcd,IAAa,GACtCe,UAAW,WAAcf,IAAa,KAGxCvvB,EAAE,CAAEznL,OAAQ,SAAUi0J,MAAM,EAAME,QAASpxC,EAAeloG,MAAO01H,GAAe,CAG9En2H,OA3HY,SAAgBw2H,EAAGysB,GAC/B,YAAsBn2J,IAAfm2J,EAA2Bs4C,EAAmB/kE,GAAK0mE,GAAkB3B,EAAmB/kE,GAAIysB,IA6HnG/8J,eAAgBqwI,GAGhB99H,iBAAkBykM,GAGlB9kM,yBAA0B0pK,KAG5BuL,EAAE,CAAEznL,OAAQ,SAAUi0J,MAAM,EAAME,QAASpxC,GAAiB,CAG1Dy6C,oBAAqBi6C,GAGrBplM,sBAAuBmlM,KAKzB/vB,EAAE,CAAEznL,OAAQ,SAAUi0J,MAAM,EAAME,OAAQtd,GAAM,WAAck/D,EAA4B70M,EAAE,OAAU,CACpGmR,sBAAuB,SAA+BzR,GACpD,OAAOm1M,EAA4B70M,EAAEszH,EAAS5zH,OAM9C01M,IAWF7uB,EAAE,CAAEznL,OAAQ,OAAQi0J,MAAM,EAAME,QAVHpxC,GAAiB8zB,GAAM,WAClD,IAAIylC,EAASF,IAEb,MAA+B,UAAxBk6B,EAAW,CAACh6B,KAEe,MAA7Bg6B,EAAW,CAAE5mM,EAAG4sK,KAEc,MAA9Bg6B,EAAWz4M,OAAOy+K,QAGwC,CAE/D3iI,UAAW,SAAmB/4C,EAAIo3M,EAAUC,GAI1C,IAHA,IAEIC,EAFAr5M,EAAO,CAAC+B,GACRk9D,EAAQ,EAELl/D,UAAUxC,OAAS0hE,GAAOj/D,EAAKvB,KAAKsB,UAAUk/D,MAErD,GADAo6I,EAAYF,GACPpoF,EAASooF,SAAoB9wM,IAAPtG,KAAoBg6J,EAASh6J,GAMxD,OALKnE,EAAQu7M,KAAWA,EAAW,SAAUz4M,EAAKhC,GAEhD,GADI+yI,EAAW4nE,KAAY36M,EAAQ26M,EAAU/6M,KAAKsE,KAAMlC,EAAKhC,KACxDq9J,EAASr9J,GAAQ,OAAOA,IAE/BsB,EAAK,GAAKm5M,EACH1B,EAAWvrM,MAAM,KAAMlM,MAOpC,IAAKu9K,EAAO,UAAYg6B,GAAe,CACrC,IAAIp7L,GAAUohK,EAAO,UAAYphK,QACjCw4I,EAAS4oB,EAAO,UAAag6B,GAAc,WACzC,OAAOp7L,GAAQjQ,MAAMtJ,KAAM7C,cAK/BgpL,EAAexL,EAAS+5B,GAExBn7C,EAAWk7C,IAAU,G,gBCpTrB,IAAItmF,EAAW5zH,EAAQ,IACnB4+J,EAAW5+J,EAAQ,KACnBsrL,EAAYtrL,EAAQ,KACpBm8M,EAAsBn8M,EAAQ,KAG9Bo6M,EAFkBp6M,EAAQ,GAEXk5J,CAAgB,eAInCp5J,EAAOC,QAAU,SAAUy1B,EAAO4mL,GAChC,IAAKxoF,EAASp+F,IAAUopI,EAASppI,GAAQ,OAAOA,EAChD,IACIjhB,EADA8nM,EAAe/wB,EAAU91J,EAAO4kL,GAEpC,GAAIiC,EAAc,CAGhB,QAFanxM,IAATkxM,IAAoBA,EAAO,WAC/B7nM,EAAS8nM,EAAal7M,KAAKq0B,EAAO4mL,IAC7BxoF,EAASr/G,IAAWqqJ,EAASrqJ,GAAS,OAAOA,EAClD,MAAMjS,UAAU,2CAGlB,YADa4I,IAATkxM,IAAoBA,EAAO,UACxBD,EAAoB3mL,EAAO4mL,K,gBCrBpC,IAAIj8B,EAAangL,EAAQ,IAEzBF,EAAOC,QAAUogL,EAAW,YAAa,cAAgB,I,cCFzDrgL,EAAOC,QAAU,SAAUimH,GACzB,IACE,OAAOlwG,OAAOkwG,GACd,MAAO11G,GACP,MAAO,Y,gBCJX,IAAIgkI,EAAat0I,EAAQ,IACrB4zH,EAAW5zH,EAAQ,IAIvBF,EAAOC,QAAU,SAAUy1B,EAAO4mL,GAChC,IAAIhyF,EAAItuG,EACR,GAAa,WAATsgM,GAAqB9nE,EAAWlqB,EAAK50F,EAAMzzB,YAAc6xH,EAAS93G,EAAMsuG,EAAGjpH,KAAKq0B,IAAS,OAAO1Z,EACpG,GAAIw4H,EAAWlqB,EAAK50F,EAAMxW,WAAa40G,EAAS93G,EAAMsuG,EAAGjpH,KAAKq0B,IAAS,OAAO1Z,EAC9E,GAAa,WAATsgM,GAAqB9nE,EAAWlqB,EAAK50F,EAAMzzB,YAAc6xH,EAAS93G,EAAMsuG,EAAGjpH,KAAKq0B,IAAS,OAAO1Z,EACpG,MAAMxZ,UAAU,6C,gBCVlB,IAAIskH,EAAS5mH,EAAQ,IACjBs0I,EAAat0I,EAAQ,IACrBu4J,EAAgBv4J,EAAQ,KAExBk/J,EAAUt4C,EAAOs4C,QAErBp/J,EAAOC,QAAUu0I,EAAW4qB,IAAY,cAAc98J,KAAKm2J,EAAc2G,K,gBCNzE,IAAIihB,EAAangL,EAAQ,IACrB65M,EAA4B75M,EAAQ,KACpC+5M,EAA8B/5M,EAAQ,KACtCy0I,EAAWz0I,EAAQ,IAGvBF,EAAOC,QAAUogL,EAAW,UAAW,YAAc,SAAiBv7K,GACpE,IAAIsP,EAAO2lM,EAA0B30M,EAAEuvI,EAAS7vI,IAC5CyR,EAAwB0jM,EAA4B70M,EACxD,OAAOmR,EAAwBnC,EAAK1Q,OAAO6S,EAAsBzR,IAAOsP,I,gBCT1E,IAAI+rK,EAAkBjgL,EAAQ,IAC1Bs8M,EAAWt8M,EAAQ,IACnBu8M,EAAkBv8M,EAAQ,KAG1Bw8M,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOh3M,EAAIgrH,GAC1B,IAGInvH,EAHAqzI,EAAIqrC,EAAgBy8B,GACpBt8M,EAASk8M,EAAS1nE,EAAEx0I,QACpB0hE,EAAQy6I,EAAgB7rF,EAAWtwH,GAIvC,GAAIq8M,GAAe/2M,GAAMA,GAAI,KAAOtF,EAAS0hE,GAG3C,IAFAvgE,EAAQqzI,EAAE9yE,OAEGvgE,EAAO,OAAO,OAEtB,KAAMnB,EAAS0hE,EAAOA,IAC3B,IAAK26I,GAAe36I,KAAS8yE,IAAMA,EAAE9yE,KAAWp8D,EAAI,OAAO+2M,GAAe36I,GAAS,EACnF,OAAQ26I,IAAgB,IAI9B38M,EAAOC,QAAU,CAGf48M,SAAUH,GAAa,GAGvBrrM,QAASqrM,GAAa,K,gBC9BxB,IAAI58C,EAAY5/J,EAAQ,KAEpB8K,EAAMD,KAAKC,IACXq6B,EAAMt6B,KAAKs6B,IAKfrlC,EAAOC,QAAU,SAAU+hE,EAAO1hE,GAChC,IAAIw8M,EAAUh9C,EAAU99F,GACxB,OAAO86I,EAAU,EAAI9xM,EAAI8xM,EAAUx8M,EAAQ,GAAK+kC,EAAIy3K,EAASx8M,K,gBCV/D,IAAIy6I,EAAQ76I,EAAQ,IAChBs0I,EAAat0I,EAAQ,IAErB68M,EAAc,kBAEdllD,EAAW,SAAUmlD,EAASC,GAChC,IAAIx7M,EAAQ6S,EAAK4oM,EAAUF,IAC3B,OAAOv7M,GAAS07M,GACZ17M,GAAS27M,IACT5oE,EAAWyoE,GAAaliE,EAAMkiE,KAC5BA,IAGJC,EAAYrlD,EAASqlD,UAAY,SAAUpB,GAC7C,OAAO9lM,OAAO8lM,GAAQhzM,QAAQi0M,EAAa,KAAK7rM,eAG9CoD,EAAOujJ,EAASvjJ,KAAO,GACvB8oM,EAASvlD,EAASulD,OAAS,IAC3BD,EAAWtlD,EAASslD,SAAW,IAEnCn9M,EAAOC,QAAU43J,G,gBCrBjB,IAAIpjB,EAAcv0I,EAAQ,IACtBq4J,EAAuBr4J,EAAQ,IAC/By0I,EAAWz0I,EAAQ,IACnB45M,EAAa55M,EAAQ,KAKzBF,EAAOC,QAAUw0I,EAAc1yI,OAAOgV,iBAAmB,SAA0B+9H,EAAGysB,GACpF5sB,EAASG,GAKT,IAJA,IAGIrxI,EAHA2Q,EAAO0lM,EAAWv4C,GAClBjhK,EAAS8T,EAAK9T,OACd0hE,EAAQ,EAEL1hE,EAAS0hE,GAAOu2F,EAAqBnzJ,EAAE0vI,EAAGrxI,EAAM2Q,EAAK4tD,KAAUu/F,EAAW99J,IACjF,OAAOqxI,I,gBCfT,IAAIurC,EAAangL,EAAQ,IAEzBF,EAAOC,QAAUogL,EAAW,WAAY,oB,gBCDxC,IAAIF,EAAkBjgL,EAAQ,IAC1By7M,EAAuBz7M,EAAQ,KAA8CkF,EAE7EnD,EAAW,GAAGA,SAEdo7M,EAA+B,iBAAV92M,QAAsBA,QAAUxE,OAAO2/J,oBAC5D3/J,OAAO2/J,oBAAoBn7J,QAAU,GAWzCvG,EAAOC,QAAQmF,EAAI,SAA6BN,GAC9C,OAAOu4M,GAAoC,mBAArBp7M,EAASZ,KAAKyD,GAVjB,SAAUA,GAC7B,IACE,OAAO62M,EAAqB72M,GAC5B,MAAO0L,GACP,OAAO6sM,EAAYn7M,SAOjBo7M,CAAex4M,GACf62M,EAAqBx7B,EAAgBr7K,M,gBCrB3C,IAAIgiH,EAAS5mH,EAAQ,IAErBF,EAAOC,QAAU6mH,G,gBCFjB,IAAIpnG,EAAOxf,EAAQ,KACfykJ,EAAgBzkJ,EAAQ,KACxBw4H,EAAWx4H,EAAQ,IACnBs8M,EAAWt8M,EAAQ,IACnBq9M,EAAqBr9M,EAAQ,KAE7BsB,EAAO,GAAGA,KAGVk7M,EAAe,SAAU78C,GAC3B,IAAI29C,EAAiB,GAAR39C,EACT49C,EAAoB,GAAR59C,EACZ69C,EAAkB,GAAR79C,EACV89C,EAAmB,GAAR99C,EACX+9C,EAAwB,GAAR/9C,EAChBg+C,EAA2B,GAARh+C,EACnBi+C,EAAmB,GAARj+C,GAAa+9C,EAC5B,OAAO,SAAUhB,EAAOmB,EAAY/yB,EAAMgzB,GASxC,IARA,IAOIv8M,EAAOgT,EAPPqgI,EAAIpc,EAASkkF,GACb9+L,EAAO6mI,EAAc7P,GACrBmpE,EAAgBv+L,EAAKq+L,EAAY/yB,EAAM,GACvC1qL,EAASk8M,EAAS1+L,EAAKxd,QACvB0hE,EAAQ,EACR1jD,EAAS0/L,GAAkBT,EAC3Br5M,EAASs5M,EAASl/L,EAAOs+L,EAAOt8M,GAAUm9M,GAAaI,EAAmBv/L,EAAOs+L,EAAO,QAAKxxM,EAE3F9K,EAAS0hE,EAAOA,IAAS,IAAI87I,GAAY97I,KAASlkD,KAEtDrJ,EAASwpM,EADTx8M,EAAQqc,EAAKkkD,GACiBA,EAAO8yE,GACjC+qB,GACF,GAAI29C,EAAQt5M,EAAO89D,GAASvtD,OACvB,GAAIA,EAAQ,OAAQorJ,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAOp+J,EACf,KAAK,EAAG,OAAOugE,EACf,KAAK,EAAGxgE,EAAKH,KAAK6C,EAAQzC,QACrB,OAAQo+J,GACb,KAAK,EAAG,OAAO,EACf,KAAK,EAAGr+J,EAAKH,KAAK6C,EAAQzC,GAIhC,OAAOm8M,GAAiB,EAAIF,GAAWC,EAAWA,EAAWz5M,IAIjElE,EAAOC,QAAU,CAGf4W,QAAS6lM,EAAa,GAGtBp5M,IAAKo5M,EAAa,GAGlB/4M,OAAQ+4M,EAAa,GAGrB1sG,KAAM0sG,EAAa,GAGnBlvF,MAAOkvF,EAAa,GAGpBjrM,KAAMirM,EAAa,GAGnB3nM,UAAW2nM,EAAa,GAGxBwB,aAAcxB,EAAa,K,gBCtE7B,IAAI/7M,EAAUT,EAAQ,KAClBi+M,EAAgBj+M,EAAQ,KACxB4zH,EAAW5zH,EAAQ,IAGnBk+M,EAFkBl+M,EAAQ,GAEhBk5J,CAAgB,WAI9Bp5J,EAAOC,QAAU,SAAUirL,GACzB,IAAI3lE,EASF,OARE5kH,EAAQuqL,KACV3lE,EAAI2lE,EAAc/oL,aAEdg8M,EAAc54F,KAAOA,IAAM9kH,OAASE,EAAQ4kH,EAAEvjH,aACzC8xH,EAASvO,IAEN,QADVA,EAAIA,EAAE64F,OAFuD74F,OAAIn6G,SAKtDA,IAANm6G,EAAkB9kH,MAAQ8kH,I,6BChBrC,IAAIomE,EAAIzrL,EAAQ,IACZu0I,EAAcv0I,EAAQ,IACtB4mH,EAAS5mH,EAAQ,IACjB8mH,EAAM9mH,EAAQ,IACds0I,EAAat0I,EAAQ,IACrB4zH,EAAW5zH,EAAQ,IACnBsE,EAAiBtE,EAAQ,IAAuCkF,EAChEwyJ,EAA4B13J,EAAQ,KAEpCm+M,EAAev3F,EAAOhmH,OAE1B,GAAI2zI,GAAeD,EAAW6pE,OAAoB,gBAAiBA,EAAar8M,iBAE/CoJ,IAA/BizM,IAAe9C,aACd,CACD,IAAI+C,EAA8B,GAE9BC,EAAgB,WAClB,IAAIhD,EAAcz4M,UAAUxC,OAAS,QAAsB8K,IAAjBtI,UAAU,QAAmBsI,EAAY4K,OAAOlT,UAAU,IAChG2R,EAAS9O,gBAAgB44M,EACzB,IAAIF,EAAa9C,QAEDnwM,IAAhBmwM,EAA4B8C,IAAiBA,EAAa9C,GAE9D,MADoB,KAAhBA,IAAoB+C,EAA4B7pM,IAAU,GACvDA,GAETmjJ,EAA0B2mD,EAAeF,GACzC,IAAIG,EAAkBD,EAAcv8M,UAAYq8M,EAAar8M,UAC7Dw8M,EAAgBr8M,YAAco8M,EAE9B,IAAIE,EAAiBD,EAAgBv8M,SACjCy8M,EAA+C,gBAAhC1oM,OAAOqoM,EAAa,SACnCj6F,EAAS,wBACb5/G,EAAeg6M,EAAiB,cAAe,CAC7Cl6M,cAAc,EACd4Y,IAAK,WACH,IAAIsjK,EAAS1sD,EAASnuH,MAAQA,KAAKuZ,UAAYvZ,KAC3Cm2M,EAAS2C,EAAep9M,KAAKm/K,GACjC,GAAIx5D,EAAIs3F,EAA6B99B,GAAS,MAAO,GACrD,IAAIm+B,EAAOD,EAAe5C,EAAO55M,MAAM,GAAI,GAAK45M,EAAOhzM,QAAQs7G,EAAQ,MACvE,MAAgB,KAATu6F,OAAcvzM,EAAYuzM,KAIrChzB,EAAE,CAAE7kE,QAAQ,EAAMuxC,QAAQ,GAAQ,CAChCv3J,OAAQy9M,M,gBChDgBr+M,EAAQ,GAIpCg6M,CAAsB,kB,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,gB,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,uB,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,a,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,U,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,Y,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,W,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,Y,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,U,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,gB,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,gB,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,gB,6BCHtB,IAAIvuB,EAAIzrL,EAAQ,IACZ66I,EAAQ76I,EAAQ,IAChBS,EAAUT,EAAQ,KAClB4zH,EAAW5zH,EAAQ,IACnBw4H,EAAWx4H,EAAQ,IACnBs8M,EAAWt8M,EAAQ,IACnB0+M,EAAiB1+M,EAAQ,KACzBq9M,EAAqBr9M,EAAQ,KAC7B2+M,EAA+B3+M,EAAQ,KACvCk5J,EAAkBl5J,EAAQ,IAC1BqgL,EAAargL,EAAQ,KAErB4+M,EAAuB1lD,EAAgB,sBACvC2lD,EAAmB,iBACnBC,EAAiC,iCAKjCC,EAA+B1+B,GAAc,KAAOxlC,GAAM,WAC5D,IAAIj9G,EAAQ,GAEZ,OADAA,EAAMghL,IAAwB,EACvBhhL,EAAMp6B,SAAS,KAAOo6B,KAG3BohL,EAAkBL,EAA6B,UAE/CM,EAAqB,SAAUrqE,GACjC,IAAKhhB,EAASghB,GAAI,OAAO,EACzB,IAAIsqE,EAAatqE,EAAEgqE,GACnB,YAAsB1zM,IAAfg0M,IAA6BA,EAAaz+M,EAAQm0I,IAQ3D62C,EAAE,CAAEznL,OAAQ,QAASkpL,OAAO,EAAM/0B,QALpB4mD,IAAiCC,GAKK,CAElDx7M,OAAQ,SAAgB4xD,GACtB,IAGI/0D,EAAG8Z,EAAG/Z,EAAQD,EAAKg/M,EAHnBvqE,EAAIpc,EAAS/yH,MACb25M,EAAI/B,EAAmBzoE,EAAG,GAC1BhzI,EAAI,EAER,IAAKvB,GAAK,EAAGD,EAASwC,UAAUxC,OAAQC,EAAID,EAAQC,IAElD,GAAI4+M,EADJE,GAAW,IAAP9+M,EAAWu0I,EAAIhyI,UAAUvC,IACF,CAEzB,GAAIuB,GADJzB,EAAMm8M,EAAS6C,EAAE/+M,SACHy+M,EAAkB,MAAMv8M,UAAUw8M,GAChD,IAAK3kM,EAAI,EAAGA,EAAIha,EAAKga,IAAKvY,IAASuY,KAAKglM,GAAGT,EAAeU,EAAGx9M,EAAGu9M,EAAEhlM,QAC7D,CACL,GAAIvY,GAAKi9M,EAAkB,MAAMv8M,UAAUw8M,GAC3CJ,EAAeU,EAAGx9M,IAAKu9M,GAI3B,OADAC,EAAEh/M,OAASwB,EACJw9M,M,gBC1DX,IAAIvkE,EAAQ76I,EAAQ,IAChBk5J,EAAkBl5J,EAAQ,IAC1BqgL,EAAargL,EAAQ,KAErBk+M,EAAUhlD,EAAgB,WAE9Bp5J,EAAOC,QAAU,SAAUs/M,GAIzB,OAAOh/B,GAAc,KAAOxlC,GAAM,WAChC,IAAIj9G,EAAQ,GAKZ,OAJkBA,EAAM37B,YAAc,IAC1Bi8M,GAAW,WACrB,MAAO,CAAEoB,IAAK,IAE2B,IAApC1hL,EAAMyhL,GAAatgM,SAASugM,S,gBChBvC,IAAI7zB,EAAIzrL,EAAQ,IACZmC,EAAOnC,EAAQ,KAUnByrL,EAAE,CAAEznL,OAAQ,QAASi0J,MAAM,EAAME,QATCn4J,EAAQ,IAEfu/M,EAA4B,SAAUC,GAE/Dj/M,MAAM4B,KAAKq9M,OAKmD,CAC9Dr9M,KAAMA,K,6BCXR,IAAIqd,EAAOxf,EAAQ,KACfw4H,EAAWx4H,EAAQ,IACnBy/M,EAA+Bz/M,EAAQ,KACvC0/M,EAAwB1/M,EAAQ,KAChCi+M,EAAgBj+M,EAAQ,KACxBs8M,EAAWt8M,EAAQ,IACnB0+M,EAAiB1+M,EAAQ,KACzB2/M,EAAc3/M,EAAQ,KACtB4/M,EAAoB5/M,EAAQ,KAIhCF,EAAOC,QAAU,SAAc8/M,GAC7B,IAAIjrE,EAAIpc,EAASqnF,GACbC,EAAiB7B,EAAcx4M,MAC/Bs6M,EAAkBn9M,UAAUxC,OAC5B4/M,EAAQD,EAAkB,EAAIn9M,UAAU,QAAKsI,EAC7C+0M,OAAoB/0M,IAAV80M,EACVC,IAASD,EAAQxgM,EAAKwgM,EAAOD,EAAkB,EAAIn9M,UAAU,QAAKsI,EAAW,IACjF,IAEI9K,EAAQmU,EAAQlP,EAAMxE,EAAUO,EAAMG,EAFtC2+M,EAAiBN,EAAkBhrE,GACnC9yE,EAAQ,EAGZ,IAAIo+I,GAAoBz6M,MAAQlF,OAASm/M,EAAsBQ,GAW7D,IAFA9/M,EAASk8M,EAAS1nE,EAAEx0I,QACpBmU,EAASurM,EAAiB,IAAIr6M,KAAKrF,GAAUG,MAAMH,GAC7CA,EAAS0hE,EAAOA,IACpBvgE,EAAQ0+M,EAAUD,EAAMprE,EAAE9yE,GAAQA,GAAS8yE,EAAE9yE,GAC7C48I,EAAenqM,EAAQutD,EAAOvgE,QAThC,IAFAH,GADAP,EAAW8+M,EAAY/qE,EAAGsrE,IACV9+M,KAChBmT,EAASurM,EAAiB,IAAIr6M,KAAS,KAC/BJ,EAAOjE,EAAKD,KAAKN,IAAWQ,KAAMygE,IACxCvgE,EAAQ0+M,EAAUR,EAA6B5+M,EAAUm/M,EAAO,CAAC36M,EAAK9D,MAAOugE,IAAQ,GAAQz8D,EAAK9D,MAClGm9M,EAAenqM,EAAQutD,EAAOvgE,GAWlC,OADAgT,EAAOnU,OAAS0hE,EACTvtD,I,gBCzCT,IAAIkgI,EAAWz0I,EAAQ,IACnBmgN,EAAgBngN,EAAQ,KAG5BF,EAAOC,QAAU,SAAUc,EAAUupH,EAAI7oH,EAAO2qL,GAC9C,IACE,OAAOA,EAAU9hE,EAAGqqB,EAASlzI,GAAO,GAAIA,EAAM,IAAM6oH,EAAG7oH,GACvD,MAAO+O,GACP6vM,EAAct/M,EAAU,QAASyP,M,gBCRrC,IAAImkI,EAAWz0I,EAAQ,IACnBsrL,EAAYtrL,EAAQ,KAExBF,EAAOC,QAAU,SAAUc,EAAUu/M,EAAM7+M,GACzC,IAAI8+M,EAAaC,EACjB7rE,EAAS5zI,GACT,IAEE,KADAw/M,EAAc/0B,EAAUzqL,EAAU,WAChB,CAChB,GAAa,UAATu/M,EAAkB,MAAM7+M,EAC5B,OAAOA,EAET8+M,EAAcA,EAAYl/M,KAAKN,GAC/B,MAAOyP,GACPgwM,GAAa,EACbD,EAAc/vM,EAEhB,GAAa,UAAT8vM,EAAkB,MAAM7+M,EAC5B,GAAI++M,EAAY,MAAMD,EAEtB,OADA5rE,EAAS4rE,GACF9+M,I,gBCpBT,IAAI23J,EAAkBl5J,EAAQ,IAC1BurL,EAAYvrL,EAAQ,IAEpBwrL,EAAWtyB,EAAgB,YAC3BqnD,EAAiBhgN,MAAMuB,UAG3BhC,EAAOC,QAAU,SAAU6E,GACzB,YAAcsG,IAAPtG,IAAqB2mL,EAAUhrL,QAAUqE,GAAM27M,EAAe/0B,KAAc5mL,K,gBCRrF,IAAI+7K,EAAY3gL,EAAQ,KACpBy0I,EAAWz0I,EAAQ,IACnB4/M,EAAoB5/M,EAAQ,KAEhCF,EAAOC,QAAU,SAAUimH,EAAUw6F,GACnC,IAAIN,EAAiBt9M,UAAUxC,OAAS,EAAIw/M,EAAkB55F,GAAYw6F,EAC1E,GAAI7/B,EAAUu/B,GAAiB,OAAOzrE,EAASyrE,EAAe/+M,KAAK6kH,IACnE,MAAM1jH,UAAUwT,OAAOkwG,GAAY,sB,gBCPrC,IAEIwlE,EAFkBxrL,EAAQ,GAEfk5J,CAAgB,YAC3BunD,GAAe,EAEnB,IACE,IAAIr1B,EAAS,EACTs1B,EAAqB,CACvBt/M,KAAM,WACJ,MAAO,CAAEC,OAAQ+pL,MAEnB,OAAU,WACRq1B,GAAe,IAGnBC,EAAmBl1B,GAAY,WAC7B,OAAO/lL,MAGTlF,MAAM4B,KAAKu+M,GAAoB,WAAc,MAAM,KACnD,MAAOpwM,IAETxQ,EAAOC,QAAU,SAAUmR,EAAMyvM,GAC/B,IAAKA,IAAiBF,EAAc,OAAO,EAC3C,IAAIG,GAAoB,EACxB,IACE,IAAIzqM,EAAS,GACbA,EAAOq1K,GAAY,WACjB,MAAO,CACLpqL,KAAM,WACJ,MAAO,CAAEC,KAAMu/M,GAAoB,MAIzC1vM,EAAKiF,GACL,MAAO7F,IACT,OAAOswM,I,gBCpCT,IAAIh6F,EAAS5mH,EAAQ,IACAA,EAAQ,GAI7B4rL,CAAehlE,EAAOlpE,KAAM,QAAQ,I,gBCLf19C,EAAQ,GAI7B4rL,CAAe/gL,KAAM,QAAQ,I,gBCJ7B,IAAIg1J,EAAwB7/J,EAAQ,KAChCw3J,EAAWx3J,EAAQ,IACnB+B,EAAW/B,EAAQ,KAIlB6/J,GACHrI,EAAS31J,OAAOC,UAAW,WAAYC,EAAU,CAAEg3J,QAAQ,K,6BCN7D,IAAI8G,EAAwB7/J,EAAQ,KAChCqhL,EAAUrhL,EAAQ,IAItBF,EAAOC,QAAU8/J,EAAwB,GAAG99J,SAAW,WACrD,MAAO,WAAas/K,EAAQ57K,MAAQ,M,6BCNtC,IAAI2T,EAASpZ,EAAQ,KAAiCoZ,OAClDrX,EAAW/B,EAAQ,KACnBw4J,EAAsBx4J,EAAQ,IAC9B6gN,EAAiB7gN,EAAQ,KAEzB8gN,EAAkB,kBAClBzG,EAAmB7hD,EAAoBt7I,IACvCy7I,EAAmBH,EAAoBkH,UAAUohD,GAIrDD,EAAe/qM,OAAQ,UAAU,SAAUirM,GACzC1G,EAAiB50M,KAAM,CACrBxC,KAAM69M,EACNlF,OAAQ75M,EAASg/M,GACjBj/I,MAAO,OAIR,WACD,IAGIpoB,EAHA72B,EAAQ81I,EAAiBlzJ,MACzBm2M,EAAS/4L,EAAM+4L,OACf95I,EAAQj/C,EAAMi/C,MAElB,OAAIA,GAAS85I,EAAOx7M,OAAe,CAAEmB,WAAO2J,EAAW7J,MAAM,IAC7Dq4C,EAAQtgC,EAAOwiM,EAAQ95I,GACvBj/C,EAAMi/C,OAASpoB,EAAMt5C,OACd,CAAEmB,MAAOm4C,EAAOr4C,MAAM,Q,gBC5B/B,IAAIu+J,EAAY5/J,EAAQ,KACpB+B,EAAW/B,EAAQ,KACnB0kJ,EAAyB1kJ,EAAQ,KAGjCw8M,EAAe,SAAUwE,GAC3B,OAAO,SAAUtE,EAAOljM,GACtB,IAGIpB,EAAOme,EAHP0qL,EAAIl/M,EAAS2iJ,EAAuBg4D,IACpC/wM,EAAWi0J,EAAUpmJ,GACrBoxG,EAAOq2F,EAAE7gN,OAEb,OAAIuL,EAAW,GAAKA,GAAYi/G,EAAao2F,EAAoB,QAAK91M,GACtEkN,EAAQ6oM,EAAE5+B,WAAW12K,IACN,OAAUyM,EAAQ,OAAUzM,EAAW,IAAMi/G,IACtDr0F,EAAS0qL,EAAE5+B,WAAW12K,EAAW,IAAM,OAAU4qB,EAAS,MAC1DyqL,EAAoBC,EAAE7nM,OAAOzN,GAAYyM,EACzC4oM,EAAoBC,EAAEj/M,MAAM2J,EAAUA,EAAW,GAA+B4qB,EAAS,OAAlCne,EAAQ,OAAU,IAA0B,QAI7GtY,EAAOC,QAAU,CAGfmhN,OAAQ1E,GAAa,GAGrBpjM,OAAQojM,GAAa,K,6BCzBvB,IAAIzwB,EAAoB/rL,EAAQ,KAA+B+rL,kBAC3D3tK,EAASpe,EAAQ,IACjBs4J,EAA2Bt4J,EAAQ,IACnC4rL,EAAiB5rL,EAAQ,IACzBurL,EAAYvrL,EAAQ,IAEpBmsL,EAAa,WAAc,OAAO1mL,MAEtC3F,EAAOC,QAAU,SAAUssL,EAAqBhlE,EAAMjmH,GACpD,IAAI63J,EAAgB5xC,EAAO,YAI3B,OAHAglE,EAAoBvqL,UAAYsc,EAAO2tK,EAAmB,CAAE3qL,KAAMk3J,EAAyB,EAAGl3J,KAC9FwqL,EAAeS,EAAqBpzB,GAAe,GAAO,GAC1DsyB,EAAUtyB,GAAiBkzB,EACpBE,I,gBCdT,IAAIxxC,EAAQ76I,EAAQ,IAEpBF,EAAOC,SAAW86I,GAAM,WACtB,SAAS91I,KAGT,OAFAA,EAAEjD,UAAUG,YAAc,KAEnBJ,OAAO0c,eAAe,IAAIxZ,KAASA,EAAEjD,c,gBCL9C,IAAI2yI,EAAWz0I,EAAQ,IACnBmhN,EAAqBnhN,EAAQ,KAMjCF,EAAOC,QAAU8B,OAAOkc,iBAAmB,aAAe,GAAK,WAC7D,IAEI49L,EAFAyF,GAAiB,EACjBh/M,EAAO,GAEX,KAEEu5M,EAAS95M,OAAO2U,yBAAyB3U,OAAOC,UAAW,aAAaob,KACjE/b,KAAKiB,EAAM,IAClBg/M,EAAiBh/M,aAAgB7B,MACjC,MAAO+P,IACT,OAAO,SAAwBskI,EAAGs4C,GAKhC,OAJAz4C,EAASG,GACTusE,EAAmBj0B,GACfk0B,EAAgBzF,EAAOx6M,KAAKyzI,EAAGs4C,GAC9Bt4C,EAAE52H,UAAYkvK,EACZt4C,GAfoD,QAiBzD1pI,I,gBCzBN,IAAIopI,EAAat0I,EAAQ,IAEzBF,EAAOC,QAAU,SAAUimH,GACzB,GAAwB,kBAAbA,GAAyBsuB,EAAWtuB,GAAW,OAAOA,EACjE,MAAM1jH,UAAU,aAAewT,OAAOkwG,GAAY,qB,gBCJxBhmH,EAAQ,GAIpCg6M,CAAsB,Y,gBCJMh6M,EAAQ,GAIpCg6M,CAAsB,e,gBCHMh6M,EAAQ,GAIpCg6M,CAAsB,iB,gBCLtB,IAAIpzF,EAAS5mH,EAAQ,IACjBqhN,EAAerhN,EAAQ,KACvBshN,EAAwBthN,EAAQ,KAChCuhN,EAAuBvhN,EAAQ,KAC/Bu3J,EAA8Bv3J,EAAQ,IACtCk5J,EAAkBl5J,EAAQ,IAE1BwrL,EAAWtyB,EAAgB,YAC3BD,EAAgBC,EAAgB,eAChCsoD,EAAcD,EAAqBl9F,OAEnCo9F,EAAkB,SAAUC,EAAqBC,GACnD,GAAID,EAAqB,CAEvB,GAAIA,EAAoBl2B,KAAcg2B,EAAa,IACjDjqD,EAA4BmqD,EAAqBl2B,EAAUg2B,GAC3D,MAAOlxM,GACPoxM,EAAoBl2B,GAAYg2B,EAKlC,GAHKE,EAAoBzoD,IACvB1B,EAA4BmqD,EAAqBzoD,EAAe0oD,GAE9DN,EAAaM,GAAkB,IAAK,IAAItC,KAAekC,EAEzD,GAAIG,EAAoBrC,KAAiBkC,EAAqBlC,GAAc,IAC1E9nD,EAA4BmqD,EAAqBrC,EAAakC,EAAqBlC,IACnF,MAAO/uM,GACPoxM,EAAoBrC,GAAekC,EAAqBlC,MAMhE,IAAK,IAAIsC,KAAmBN,EAC1BI,EAAgB76F,EAAO+6F,IAAoB/6F,EAAO+6F,GAAiB7/M,UAAW6/M,GAGhFF,EAAgBH,EAAuB,iB,cCnCvCxhN,EAAOC,QAAU,CACf6hN,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,I,gBChCb,IAEIp7M,EAFwBtI,EAAQ,IAEpBqgK,CAAsB,QAAQ/3J,UAC1Cg5M,EAAwBh5M,GAAaA,EAAUrG,aAAeqG,EAAUrG,YAAYH,UAExFhC,EAAOC,QAAUuhN,IAA0Bz/M,OAAOC,eAAYoJ,EAAYo2M,G,6BCL1E,IAAIrhC,EAAkBjgL,EAAQ,IAC1B2jN,EAAmB3jN,EAAQ,KAC3BurL,EAAYvrL,EAAQ,IACpBw4J,EAAsBx4J,EAAQ,IAC9B6gN,EAAiB7gN,EAAQ,KAEzB4jN,EAAiB,iBACjBvJ,EAAmB7hD,EAAoBt7I,IACvCy7I,EAAmBH,EAAoBkH,UAAUkkD,GAYrD9jN,EAAOC,QAAU8gN,EAAetgN,MAAO,SAAS,SAAUwgN,EAAUX,GAClE/F,EAAiB50M,KAAM,CACrBxC,KAAM2gN,EACN5/M,OAAQi8K,EAAgB8gC,GACxBj/I,MAAO,EACPs+I,KAAMA,OAIP,WACD,IAAIv9L,EAAQ81I,EAAiBlzJ,MACzBzB,EAAS6e,EAAM7e,OACfo8M,EAAOv9L,EAAMu9L,KACbt+I,EAAQj/C,EAAMi/C,QAClB,OAAK99D,GAAU89D,GAAS99D,EAAO5D,QAC7ByiB,EAAM7e,YAASkH,EACR,CAAE3J,WAAO2J,EAAW7J,MAAM,IAEvB,QAAR++M,EAAuB,CAAE7+M,MAAOugE,EAAOzgE,MAAM,GACrC,UAAR++M,EAAyB,CAAE7+M,MAAOyC,EAAO89D,GAAQzgE,MAAM,GACpD,CAAEE,MAAO,CAACugE,EAAO99D,EAAO89D,IAASzgE,MAAM,KAC7C,UAKHkqL,EAAUs4B,UAAYt4B,EAAUhrL,MAGhCojN,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,Y,gBCpDjB,IAAIzqD,EAAkBl5J,EAAQ,IAC1Boe,EAASpe,EAAQ,IACjBq4J,EAAuBr4J,EAAQ,IAE/B8jN,EAAc5qD,EAAgB,eAC9BqnD,EAAiBhgN,MAAMuB,eAIQoJ,GAA/Bq1M,EAAeuD,IACjBzrD,EAAqBnzJ,EAAEq7M,EAAgBuD,EAAa,CAClD1/M,cAAc,EACd7C,MAAO6c,EAAO,QAKlBte,EAAOC,QAAU,SAAUwD,GACzBg9M,EAAeuD,GAAavgN,IAAO,I,6BChBrC,IAAI2mH,EAAUlqH,EAAQ,KAElB+jN,EAAoB,CACtBlmM,eACAvb,UACA0hN,YAGEC,GAAU,EAEd,SAASC,IACPD,GAAU,EACV/5F,EAAQ+jE,GAAK,KACb/jE,EAAQwkE,GAAK,KA6Ff,SAASy1B,EAAe7zM,EAAOqE,GAC7B,OAAOA,EAAKm7F,MAAK,SAAUs0G,GACzB,OAAO9zM,aAAiB8zM,KAnG5BrkN,EAAQmkN,QAAUA,EAOlBnkN,EAAQ05M,OACR,SAAgB1iM,GACdA,EAAUA,GAAW,GACjBktM,GAASC,IACbD,GAAU,EACV,IAAI16L,EAAK,EACL86L,EAAY,EACZC,EAAa,GAkCjB,SAASC,EAAYh7L,IAEjBxS,EAAQytM,eACRL,EACEG,EAAW/6L,GAAIjZ,MACfyG,EAAQ0tM,WAAaV,MAGvBO,EAAW/6L,GAAI86L,UAAYA,IACvBttM,EAAQwtM,aACVD,EAAW/6L,GAAIm7L,QAAS,EACxB3tM,EAAQwtM,YACND,EAAW/6L,GAAI86L,UACfC,EAAW/6L,GAAIjZ,SAGjBg0M,EAAW/6L,GAAIm7L,QAAS,EAyBhC,SAAkBn7L,EAAIjZ,GACpBiU,QAAQC,KAAK,6CAA+C+E,EAAK,QACnDjZ,IAAUA,EAAMq0M,OAASr0M,IAAU,IAC1C9H,MAAM,MAAMmO,SAAQ,SAAUiuM,GACnCrgM,QAAQC,KAAK,KAAOogM,MA5BhBC,CACEP,EAAW/6L,GAAI86L,UACfC,EAAW/6L,GAAIjZ,SApDvB45G,EAAQ+jE,GAAK,SAAUK,GAEJ,IAAfA,EAAQX,IACR22B,EAAWh2B,EAAQw2B,MAEfR,EAAWh2B,EAAQw2B,IAAIJ,OAoD/B,SAAmBn7L,GACb+6L,EAAW/6L,GAAIm7L,SACb3tM,EAAQguM,UACVhuM,EAAQguM,UAAUT,EAAW/6L,GAAI86L,UAAWC,EAAW/6L,GAAIjZ,OACjDg0M,EAAW/6L,GAAIg7L,cACzBhgM,QAAQC,KACN,kCAAoC8/L,EAAW/6L,GAAI86L,UAAY,MAEjE9/L,QAAQC,KACN,gHACA8/L,EAAW/6L,GAAI86L,UAAY,OA7D7BU,CAAUz2B,EAAQw2B,IAElBtpM,aAAa8oM,EAAWh2B,EAAQw2B,IAAIz5L,gBAE/Bi5L,EAAWh2B,EAAQw2B,MAG9B56F,EAAQwkE,GAAK,SAAUJ,EAAS9sL,GACX,IAAf8sL,EAAQZ,KACVY,EAAQw2B,GAAKv7L,IACb+6L,EAAWh2B,EAAQw2B,IAAM,CACvBT,UAAW,KACX/zM,MAAO9O,EACP6pB,QAAS/c,WACPi2M,EAAY/kM,KAAK,KAAM8uK,EAAQw2B,IAK/BX,EAAe3iN,EAAKuiN,GAChB,IACA,KAENW,QAAQ,O,8BCvDhB,YAaA,SAASM,EAAQvrJ,GACRH,EAAMl5D,SACP6kN,KACW,GAGf3rJ,EAAMA,EAAMl5D,QAAUq5D,EAP1B35D,EAAOC,QAAUilN,EAUjB,IAOIC,EAPA3rJ,EAAQ,GAWRwI,EAAQ,EAYZ,SAASojJ,IACL,KAAOpjJ,EAAQxI,EAAMl5D,QAAQ,CACzB,IAAIm+I,EAAez8E,EAUnB,GAPAA,GAAgB,EAChBxI,EAAMilF,GAAcp9I,OAMhB2gE,EApBG,KAoBe,CAGlB,IAAK,IAAIqjJ,EAAO,EAAG1lF,EAAYnmE,EAAMl5D,OAAS0hE,EAAOqjJ,EAAO1lF,EAAW0lF,IACnE7rJ,EAAM6rJ,GAAQ7rJ,EAAM6rJ,EAAOrjJ,GAE/BxI,EAAMl5D,QAAU0hE,EAChBA,EAAQ,GAGhBxI,EAAMl5D,OAAS,EACf0hE,EAAQ,GACG,EAaf,IAAI7I,EAA0B,qBAAX2tD,EAAyBA,EAAShpG,KACjDwnM,EAA0BnsJ,EAAMosJ,kBAAoBpsJ,EAAMqsJ,uBA2G9D,SAASC,EAAyBn6M,GAC9B,OAAO,WAKH,IAAIo6M,EAAgBl3M,WAAWm3M,EAAa,GAIxCC,EAAiBj3M,YAAYg3M,EAAa,IAE9C,SAASA,IAGLjqM,aAAagqM,GACb92M,cAAcg3M,GACdt6M,MA9GR65M,EADmC,oBAA5BG,EA2CX,SAA6Ch6M,GACzC,IAAIwqJ,EAAS,EACT+vD,EAAW,IAAIP,EAAwBh6M,GACvC4B,EAAO7G,SAASuM,eAAe,IAEnC,OADAizM,EAASC,QAAQ54M,EAAM,CAAC64M,eAAe,IAChC,WACHjwD,GAAUA,EACV5oJ,EAAKoH,KAAOwhJ,GAjDDkwD,CAAoCZ,GA8BpCK,EAAyBL,GAQ5CF,EAAQC,aAAeA,EAgFvBD,EAAQO,yBAA2BA,I,+CCnNnC,IAAIr7F,EAAUlqH,EAAQ,KAEtBF,EAAOC,QAAUmqH,EAIjB,IAAI67F,EAAOC,GAAa,GACpBC,EAAQD,GAAa,GACrBE,EAAOF,EAAa,MACpBG,EAAYH,OAAa96M,GACzBk7M,EAAOJ,EAAa,GACpBK,EAAcL,EAAa,IAE/B,SAASA,EAAazkN,GACpB,IAAIqZ,EAAI,IAAIsvG,EAAQA,EAAQ4kE,IAG5B,OAFAl0K,EAAE+yK,GAAK,EACP/yK,EAAEgzK,GAAKrsL,EACAqZ,EAETsvG,EAAQH,QAAU,SAAUxoH,GAC1B,GAAIA,aAAiB2oH,EAAS,OAAO3oH,EAErC,GAAc,OAAVA,EAAgB,OAAO2kN,EAC3B,QAAch7M,IAAV3J,EAAqB,OAAO4kN,EAChC,IAAc,IAAV5kN,EAAgB,OAAOwkN,EAC3B,IAAc,IAAVxkN,EAAiB,OAAO0kN,EAC5B,GAAc,IAAV1kN,EAAa,OAAO6kN,EACxB,GAAc,KAAV7kN,EAAc,OAAO8kN,EAEzB,GAAqB,kBAAV9kN,GAAuC,oBAAVA,EACtC,IACE,IAAIi0D,EAAOj0D,EAAMi0D,KACjB,GAAoB,oBAATA,EACT,OAAO,IAAI00D,EAAQ10D,EAAKh2C,KAAKje,IAE/B,MAAO0mH,GACP,OAAO,IAAIiC,GAAQ,SAAUH,EAAS7mC,GACpCA,EAAO+kC,MAIb,OAAO+9F,EAAazkN,IAGtB,IAAI+kN,EAAkB,SAAU9G,GAC9B,MAA0B,oBAAfj/M,MAAM4B,MAEfmkN,EAAkB/lN,MAAM4B,KACjB5B,MAAM4B,KAAKq9M,KAIpB8G,EAAkB,SAAU16M,GAAK,OAAOrL,MAAMuB,UAAUE,MAAMb,KAAKyK,IAC5DrL,MAAMuB,UAAUE,MAAMb,KAAKq+M,KAGpCt1F,EAAQ2/D,IAAM,SAAU3pL,GACtB,IAAI2C,EAAOyjN,EAAgBpmN,GAE3B,OAAO,IAAIgqH,GAAQ,SAAUH,EAAS7mC,GACpC,GAAoB,IAAhBrgF,EAAKzC,OAAc,OAAO2pH,EAAQ,IACtC,IAAIw8F,EAAY1jN,EAAKzC,OACrB,SAASm3B,EAAIl3B,EAAGyb,GACd,GAAIA,IAAuB,kBAARA,GAAmC,oBAARA,GAAqB,CACjE,GAAIA,aAAeouG,GAAWpuG,EAAI05C,OAAS00D,EAAQpoH,UAAU0zD,KAAM,CACjE,KAAkB,IAAX15C,EAAI6xK,IACT7xK,EAAMA,EAAI8xK,GAEZ,OAAe,IAAX9xK,EAAI6xK,GAAiBp2J,EAAIl3B,EAAGyb,EAAI8xK,KACrB,IAAX9xK,EAAI6xK,IAAUzqG,EAAOpnE,EAAI8xK,SAC7B9xK,EAAI05C,MAAK,SAAU15C,GACjByb,EAAIl3B,EAAGyb,KACNonE,IAGH,IAAI1tB,EAAO15C,EAAI05C,KACf,GAAoB,oBAATA,EAKT,YAJQ,IAAI00D,EAAQ10D,EAAKh2C,KAAK1D,IAC5B05C,MAAK,SAAU15C,GACfyb,EAAIl3B,EAAGyb,KACNonE,GAKTrgF,EAAKxC,GAAKyb,EACU,MAAdyqM,GACJx8F,EAAQlnH,GAGZ,IAAK,IAAIxC,EAAI,EAAGA,EAAIwC,EAAKzC,OAAQC,IAC/Bk3B,EAAIl3B,EAAGwC,EAAKxC,QAKlB6pH,EAAQhnC,OAAS,SAAU3hF,GACzB,OAAO,IAAI2oH,GAAQ,SAAUH,EAAS7mC,GACpCA,EAAO3hF,OAIX2oH,EAAQs8F,KAAO,SAAUniG,GACvB,OAAO,IAAI6F,GAAQ,SAAUH,EAAS7mC,GACpCojI,EAAgBjiG,GAAQ1tG,SAAQ,SAASpV,GACvC2oH,EAAQH,QAAQxoH,GAAOi0D,KAAKu0D,EAAS7mC,UAO3CgnC,EAAQpoH,UAAR,MAA6B,SAAUssL,GACrC,OAAO3oL,KAAK+vD,KAAK,KAAM44H,K,6BCrHzB,uNAAIxnE,EACqB,qBAAf6D,YAA8BA,YACrB,qBAAT7sG,MAAwBA,MACb,qBAAXgpG,GAA0BA,EAEhC6/F,EACY,oBAAqB7/F,EADjC6/F,EAEQ,WAAY7/F,GAAU,aAAchmH,OAF5C6lN,EAIA,eAAgB7/F,GAChB,SAAUA,GACT,WACC,IAEE,OADA,IAAIzR,MACG,EACP,MAAOlwG,GACP,OAAO,GALV,GANDwhN,EAcQ,aAAc7/F,EAdtB6/F,EAeW,gBAAiB7/F,EAOhC,GAAI6/F,EACF,IAAIC,EAAc,CAChB,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,yBAGEzyF,EACFC,YAAYC,QACZ,SAAS1xH,GACP,OAAOA,GAAOikN,EAAYv1M,QAAQtP,OAAOC,UAAUC,SAASZ,KAAKsB,KAAS,GAIhF,SAASkkN,EAAczkN,GAIrB,GAHoB,kBAATA,IACTA,EAAO4T,OAAO5T,IAEZ,6BAA6BE,KAAKF,IAAkB,KAATA,EAC7C,MAAM,IAAII,UAAU,4CAA8CJ,EAAO,KAE3E,OAAOA,EAAK8O,cAGd,SAAS41M,EAAerlN,GAItB,MAHqB,kBAAVA,IACTA,EAAQuU,OAAOvU,IAEVA,EAIT,SAASslN,EAAYlrG,GACnB,IAAI96G,EAAW,CACbO,KAAM,WACJ,IAAIG,EAAQo6G,EAAMhiD,QAClB,MAAO,CAACt4D,UAAgB6J,IAAV3J,EAAqBA,MAAOA,KAU9C,OANIklN,IACF5lN,EAASD,OAAOC,UAAY,WAC1B,OAAOA,IAIJA,EAGF,SAASimN,EAAQhvF,GACtBryH,KAAKrC,IAAM,GAEP00H,aAAmBgvF,EACrBhvF,EAAQnhH,SAAQ,SAASpV,EAAOW,GAC9BuD,KAAK02D,OAAOj6D,EAAMX,KACjBkE,MACMlF,MAAME,QAAQq3H,GACvBA,EAAQnhH,SAAQ,SAAS8pE,GACvBh7E,KAAK02D,OAAOskB,EAAO,GAAIA,EAAO,MAC7Bh7E,MACMqyH,GACTj2H,OAAO2/J,oBAAoB1pC,GAASnhH,SAAQ,SAASzU,GACnDuD,KAAK02D,OAAOj6D,EAAM41H,EAAQ51H,MACzBuD,MAgEP,SAASshN,EAASj/M,GAChB,GAAIA,EAAKk/M,SACP,OAAO98F,QAAQhnC,OAAO,IAAI5gF,UAAU,iBAEtCwF,EAAKk/M,UAAW,EAGlB,SAASC,EAAgBC,GACvB,OAAO,IAAIh9F,SAAQ,SAASH,EAAS7mC,GACnCgkI,EAAO9wJ,OAAS,WACd2zD,EAAQm9F,EAAO3yM,SAEjB2yM,EAAO3wJ,QAAU,WACf2sB,EAAOgkI,EAAO52M,WAKpB,SAAS62M,EAAsBjyG,GAC7B,IAAIgyG,EAAS,IAAIE,WACb94B,EAAU24B,EAAgBC,GAE9B,OADAA,EAAOG,kBAAkBnyG,GAClBo5E,EAoBT,SAASg5B,EAAYC,GACnB,GAAIA,EAAIvlN,MACN,OAAOulN,EAAIvlN,MAAM,GAEjB,IAAIspC,EAAO,IAAIk8K,WAAWD,EAAIE,YAE9B,OADAn8K,EAAKpuB,IAAI,IAAIsqM,WAAWD,IACjBj8K,EAAK7zB,OAIhB,SAASiwM,IAkHP,OAjHAjiN,KAAKuhN,UAAW,EAEhBvhN,KAAKkiN,UAAY,SAAS7/M,GAhM5B,IAAoBrF,EA2MhBgD,KAAKuhN,SAAWvhN,KAAKuhN,SACrBvhN,KAAKmiN,UAAY9/M,EACZA,EAEsB,kBAATA,EAChBrC,KAAKoiN,UAAY//M,EACR2+M,GAAgBtxG,KAAKrzG,UAAUgmN,cAAchgN,GACtDrC,KAAKsiN,UAAYjgN,EACR2+M,GAAoBzyF,SAASlyH,UAAUgmN,cAAchgN,GAC9DrC,KAAKuiN,cAAgBlgN,EACZ2+M,GAAwB7xF,gBAAgB9yH,UAAUgmN,cAAchgN,GACzErC,KAAKoiN,UAAY//M,EAAK/F,WACb0kN,GAAuBA,KAvNlBhkN,EAuN6CqF,IAtNjD67K,SAAS7hL,UAAUgmN,cAAcrlN,KAuN3CgD,KAAKwiN,iBAAmBX,EAAYx/M,EAAK2P,QAEzChS,KAAKmiN,UAAY,IAAIzyG,KAAK,CAAC1vG,KAAKwiN,oBACvBxB,IAAwBvyF,YAAYpyH,UAAUgmN,cAAchgN,IAASmsH,EAAkBnsH,IAChGrC,KAAKwiN,iBAAmBX,EAAYx/M,GAEpCrC,KAAKoiN,UAAY//M,EAAOjG,OAAOC,UAAUC,SAASZ,KAAK2G,GAhBvDrC,KAAKoiN,UAAY,GAmBdpiN,KAAKqyH,QAAQ96G,IAAI,kBACA,kBAATlV,EACTrC,KAAKqyH,QAAQ56G,IAAI,eAAgB,4BACxBzX,KAAKsiN,WAAatiN,KAAKsiN,UAAU9kN,KAC1CwC,KAAKqyH,QAAQ56G,IAAI,eAAgBzX,KAAKsiN,UAAU9kN,MACvCwjN,GAAwB7xF,gBAAgB9yH,UAAUgmN,cAAchgN,IACzErC,KAAKqyH,QAAQ56G,IAAI,eAAgB,qDAKnCupM,IACFhhN,KAAKyvG,KAAO,WACV,IAAIgzG,EAAWnB,EAASthN,MACxB,GAAIyiN,EACF,OAAOA,EAGT,GAAIziN,KAAKsiN,UACP,OAAO79F,QAAQH,QAAQtkH,KAAKsiN,WACvB,GAAItiN,KAAKwiN,iBACd,OAAO/9F,QAAQH,QAAQ,IAAI5U,KAAK,CAAC1vG,KAAKwiN,oBACjC,GAAIxiN,KAAKuiN,cACd,MAAM,IAAI74M,MAAM,wCAEhB,OAAO+6G,QAAQH,QAAQ,IAAI5U,KAAK,CAAC1vG,KAAKoiN,cAI1CpiN,KAAK0iN,YAAc,WACjB,GAAI1iN,KAAKwiN,iBAAkB,CACzB,IAAIG,EAAarB,EAASthN,MAC1B,OAAI2iN,IAGAl0F,YAAYC,OAAO1uH,KAAKwiN,kBACnB/9F,QAAQH,QACbtkH,KAAKwiN,iBAAiBxwM,OAAOzV,MAC3ByD,KAAKwiN,iBAAiBI,WACtB5iN,KAAKwiN,iBAAiBI,WAAa5iN,KAAKwiN,iBAAiBR,aAItDv9F,QAAQH,QAAQtkH,KAAKwiN,mBAG9B,OAAOxiN,KAAKyvG,OAAO1/C,KAAK2xJ,KAK9B1hN,KAAKgN,KAAO,WACV,IAAIy1M,EAAWnB,EAASthN,MACxB,GAAIyiN,EACF,OAAOA,EAGT,GAAIziN,KAAKsiN,UACP,OAzHN,SAAwB7yG,GACtB,IAAIgyG,EAAS,IAAIE,WACb94B,EAAU24B,EAAgBC,GAE9B,OADAA,EAAOoB,WAAWpzG,GACXo5E,EAqHIi6B,CAAe9iN,KAAKsiN,WACtB,GAAItiN,KAAKwiN,iBACd,OAAO/9F,QAAQH,QApHrB,SAA+Bw9F,GAI7B,IAHA,IAAIj8K,EAAO,IAAIk8K,WAAWD,GACtBiB,EAAQ,IAAIjoN,MAAM+qC,EAAKlrC,QAElBC,EAAI,EAAGA,EAAIirC,EAAKlrC,OAAQC,IAC/BmoN,EAAMnoN,GAAKyV,OAAOmF,aAAaqwB,EAAKjrC,IAEtC,OAAOmoN,EAAM7kN,KAAK,IA6GS8kN,CAAsBhjN,KAAKwiN,mBAC7C,GAAIxiN,KAAKuiN,cACd,MAAM,IAAI74M,MAAM,wCAEhB,OAAO+6G,QAAQH,QAAQtkH,KAAKoiN,YAI5BpB,IACFhhN,KAAKo2J,SAAW,WACd,OAAOp2J,KAAKgN,OAAO+iD,KAAKkzJ,KAI5BjjN,KAAKsnD,KAAO,WACV,OAAOtnD,KAAKgN,OAAO+iD,KAAK9X,KAAKxb,QAGxBz8B,KAlOTqhN,EAAQhlN,UAAUq6D,OAAS,SAASj6D,EAAMX,GACxCW,EAAOykN,EAAczkN,GACrBX,EAAQqlN,EAAerlN,GACvB,IAAI+xL,EAAW7tL,KAAKrC,IAAIlB,GACxBuD,KAAKrC,IAAIlB,GAAQoxL,EAAWA,EAAW,KAAO/xL,EAAQA,GAGxDulN,EAAQhlN,UAAR,OAA8B,SAASI,UAC9BuD,KAAKrC,IAAIujN,EAAczkN,KAGhC4kN,EAAQhlN,UAAUkb,IAAM,SAAS9a,GAE/B,OADAA,EAAOykN,EAAczkN,GACduD,KAAKqhH,IAAI5kH,GAAQuD,KAAKrC,IAAIlB,GAAQ,MAG3C4kN,EAAQhlN,UAAUglH,IAAM,SAAS5kH,GAC/B,OAAOuD,KAAKrC,IAAI+Q,eAAewyM,EAAczkN,KAG/C4kN,EAAQhlN,UAAUob,IAAM,SAAShb,EAAMX,GACrCkE,KAAKrC,IAAIujN,EAAczkN,IAAS0kN,EAAerlN,IAGjDulN,EAAQhlN,UAAU6U,QAAU,SAASvL,EAAU8pH,GAC7C,IAAK,IAAIhzH,KAAQuD,KAAKrC,IAChBqC,KAAKrC,IAAI+Q,eAAejS,IAC1BkJ,EAASjK,KAAK+zH,EAASzvH,KAAKrC,IAAIlB,GAAOA,EAAMuD,OAKnDqhN,EAAQhlN,UAAUoS,KAAO,WACvB,IAAIynG,EAAQ,GAIZ,OAHAl2G,KAAKkR,SAAQ,SAASpV,EAAOW,GAC3By5G,EAAMr6G,KAAKY,MAEN2kN,EAAYlrG,IAGrBmrG,EAAQhlN,UAAUuiH,OAAS,WACzB,IAAI1I,EAAQ,GAIZ,OAHAl2G,KAAKkR,SAAQ,SAASpV,GACpBo6G,EAAMr6G,KAAKC,MAENslN,EAAYlrG,IAGrBmrG,EAAQhlN,UAAUqB,QAAU,WAC1B,IAAIw4G,EAAQ,GAIZ,OAHAl2G,KAAKkR,SAAQ,SAASpV,EAAOW,GAC3By5G,EAAMr6G,KAAK,CAACY,EAAMX,OAEbslN,EAAYlrG,IAGjB8qG,IACFK,EAAQhlN,UAAUlB,OAAOC,UAAYimN,EAAQhlN,UAAUqB,SA6KzD,IAAIupL,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAOpD,SAASi8B,EAAQnzL,EAAOze,GAC7B,KAAMtR,gBAAgBkjN,GACpB,MAAM,IAAIrmN,UAAU,8FAItB,IAAIwF,GADJiP,EAAUA,GAAW,IACFjP,KAEnB,GAAI0tB,aAAiBmzL,EAAS,CAC5B,GAAInzL,EAAMwxL,SACR,MAAM,IAAI1kN,UAAU,gBAEtBmD,KAAK6mB,IAAMkJ,EAAMlJ,IACjB7mB,KAAKmjN,YAAcpzL,EAAMozL,YACpB7xM,EAAQ+gH,UACXryH,KAAKqyH,QAAU,IAAIgvF,EAAQtxL,EAAMsiG,UAEnCryH,KAAKkwD,OAASngC,EAAMmgC,OACpBlwD,KAAK8qG,KAAO/6E,EAAM+6E,KAClB9qG,KAAKojN,OAASrzL,EAAMqzL,OACf/gN,GAA2B,MAAnB0tB,EAAMoyL,YACjB9/M,EAAO0tB,EAAMoyL,UACbpyL,EAAMwxL,UAAW,QAGnBvhN,KAAK6mB,IAAMxW,OAAO0f,GAYpB,GATA/vB,KAAKmjN,YAAc7xM,EAAQ6xM,aAAenjN,KAAKmjN,aAAe,eAC1D7xM,EAAQ+gH,SAAYryH,KAAKqyH,UAC3BryH,KAAKqyH,QAAU,IAAIgvF,EAAQ/vM,EAAQ+gH,UAErCryH,KAAKkwD,OArCP,SAAyBA,GACvB,IAAImzJ,EAAUnzJ,EAAOG,cACrB,OAAO42H,EAAQv7K,QAAQ23M,IAAY,EAAIA,EAAUnzJ,EAmCnCozJ,CAAgBhyM,EAAQ4+C,QAAUlwD,KAAKkwD,QAAU,OAC/DlwD,KAAK8qG,KAAOx5F,EAAQw5F,MAAQ9qG,KAAK8qG,MAAQ,KACzC9qG,KAAKojN,OAAS9xM,EAAQ8xM,QAAUpjN,KAAKojN,OACrCpjN,KAAKujN,SAAW,MAEK,QAAhBvjN,KAAKkwD,QAAoC,SAAhBlwD,KAAKkwD,SAAsB7tD,EACvD,MAAM,IAAIxF,UAAU,6CAItB,GAFAmD,KAAKkiN,UAAU7/M,IAEK,QAAhBrC,KAAKkwD,QAAoC,SAAhBlwD,KAAKkwD,UACV,aAAlB5+C,EAAQ2sG,OAA0C,aAAlB3sG,EAAQ2sG,OAAsB,CAEhE,IAAIulG,EAAgB,gBACpB,GAAIA,EAAc7mN,KAAKqD,KAAK6mB,KAE1B7mB,KAAK6mB,IAAM7mB,KAAK6mB,IAAI1jB,QAAQqgN,EAAe,QAAS,IAAI/6M,MAAOE,eAC1D,CAGL3I,KAAK6mB,MADe,KACOlqB,KAAKqD,KAAK6mB,KAAO,IAAM,KAAO,MAAO,IAAIpe,MAAOE,YAUnF,SAASs6M,EAAO5gN,GACd,IAAIohN,EAAO,IAAIl1F,SAYf,OAXAlsH,EACGiO,OACAvN,MAAM,KACNmO,SAAQ,SAASgkJ,GAChB,GAAIA,EAAO,CACT,IAAInyJ,EAAQmyJ,EAAMnyJ,MAAM,KACpBtG,EAAOsG,EAAMmxD,QAAQ/wD,QAAQ,MAAO,KACpCrH,EAAQiH,EAAM7E,KAAK,KAAKiF,QAAQ,MAAO,KAC3CsgN,EAAK/sJ,OAAOgtJ,mBAAmBjnN,GAAOinN,mBAAmB5nN,QAGxD2nN,EAGT,SAAS94B,EAAag5B,GACpB,IAAItxF,EAAU,IAAIgvF,EAoBlB,OAjB0BsC,EAAWxgN,QAAQ,eAAgB,KAK1DJ,MAAM,MACNpF,KAAI,SAASq9E,GACZ,OAAgC,IAAzBA,EAAOtvE,QAAQ,MAAcsvE,EAAOxxD,OAAO,EAAGwxD,EAAOrgF,QAAUqgF,KAEvE9pE,SAAQ,SAASiuM,GAChB,IAAIroL,EAAQqoL,EAAKp8M,MAAM,KACnBjF,EAAMg5B,EAAMo9B,QAAQ5jD,OACxB,GAAIxS,EAAK,CACP,IAAIhC,EAAQg7B,EAAM54B,KAAK,KAAKoS,OAC5B+hH,EAAQ37D,OAAO54D,EAAKhC,OAGnBu2H,EAKF,SAASuxF,EAASC,EAAUvyM,GACjC,KAAMtR,gBAAgB4jN,GACpB,MAAM,IAAI/mN,UAAU,8FAEjByU,IACHA,EAAU,IAGZtR,KAAKxC,KAAO,UACZwC,KAAK4wD,YAA4BnrD,IAAnB6L,EAAQs/C,OAAuB,IAAMt/C,EAAQs/C,OAC3D5wD,KAAK6qH,GAAK7qH,KAAK4wD,QAAU,KAAO5wD,KAAK4wD,OAAS,IAC9C5wD,KAAK4rL,gBAAoCnmL,IAAvB6L,EAAQs6K,WAA2B,GAAK,GAAKt6K,EAAQs6K,WACvE5rL,KAAKqyH,QAAU,IAAIgvF,EAAQ/vM,EAAQ+gH,SACnCryH,KAAK6mB,IAAMvV,EAAQuV,KAAO,GAC1B7mB,KAAKkiN,UAAU2B,GA5DjBX,EAAQ7mN,UAAU4lL,MAAQ,WACxB,OAAO,IAAIihC,EAAQljN,KAAM,CAACqC,KAAMrC,KAAKmiN,aA2CvCF,EAAKvmN,KAAKwnN,EAAQ7mN,WAmBlB4lN,EAAKvmN,KAAKkoN,EAASvnN,WAEnBunN,EAASvnN,UAAU4lL,MAAQ,WACzB,OAAO,IAAI2hC,EAAS5jN,KAAKmiN,UAAW,CAClCvxJ,OAAQ5wD,KAAK4wD,OACbg7H,WAAY5rL,KAAK4rL,WACjBv5D,QAAS,IAAIgvF,EAAQrhN,KAAKqyH,SAC1BxrG,IAAK7mB,KAAK6mB,OAId+8L,EAAS/4M,MAAQ,WACf,IAAI6gL,EAAW,IAAIk4B,EAAS,KAAM,CAAChzJ,OAAQ,EAAGg7H,WAAY,KAE1D,OADAF,EAASluL,KAAO,QACTkuL,GAGT,IAAIo4B,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5CF,EAASG,SAAW,SAASl9L,EAAK+pC,GAChC,IAA0C,IAAtCkzJ,EAAiBp4M,QAAQklD,GAC3B,MAAM,IAAI2tJ,WAAW,uBAGvB,OAAO,IAAIqF,EAAS,KAAM,CAAChzJ,OAAQA,EAAQyhE,QAAS,CAACjxD,SAAUv6C,MAG1D,IAAIm9L,EAAe7iG,EAAO6iG,aACjC,IACE,IAAIA,EACJ,MAAOjoN,IACPioN,EAAe,SAASr3J,EAASlwD,GAC/BuD,KAAK2sD,QAAUA,EACf3sD,KAAKvD,KAAOA,EACZ,IAAIoO,EAAQnB,MAAMijD,GAClB3sD,KAAKk/M,MAAQr0M,EAAMq0M,QAER7iN,UAAYD,OAAOuc,OAAOjP,MAAMrN,WAC7C2nN,EAAa3nN,UAAUG,YAAcwnN,EAGhC,SAASx3J,EAAMz8B,EAAOxZ,GAC3B,OAAO,IAAIkuG,SAAQ,SAASH,EAAS7mC,GACnC,IAAIx/B,EAAU,IAAIilK,EAAQnzL,EAAOxZ,GAEjC,GAAI0nC,EAAQmlK,QAAUnlK,EAAQmlK,OAAOa,QACnC,OAAOxmI,EAAO,IAAIumI,EAAa,UAAW,eAG5C,IAAIt3J,EAAM,IAAI8D,eAEd,SAAS0zJ,IACPx3J,EAAI4/H,QAGN5/H,EAAIiE,OAAS,WACX,IAAIr/C,EAAU,CACZs/C,OAAQlE,EAAIkE,OACZg7H,WAAYl/H,EAAIk/H,WAChBv5D,QAASs4D,EAAaj+H,EAAI++H,yBAA2B,KAEvDn6K,EAAQuV,IAAM,gBAAiB6lC,EAAMA,EAAI6+H,YAAcj6K,EAAQ+gH,QAAQ96G,IAAI,iBAC3E,IAAIlV,EAAO,aAAcqqD,EAAMA,EAAIg/H,SAAWh/H,EAAImE,aAClDhoD,YAAW,WACTy7G,EAAQ,IAAIs/F,EAASvhN,EAAMiP,MAC1B,IAGLo7C,EAAIoE,QAAU,WACZjoD,YAAW,WACT40E,EAAO,IAAI5gF,UAAU,6BACpB,IAGL6vD,EAAIo/H,UAAY,WACdjjL,YAAW,WACT40E,EAAO,IAAI5gF,UAAU,6BACpB,IAGL6vD,EAAIm/H,QAAU,WACZhjL,YAAW,WACT40E,EAAO,IAAIumI,EAAa,UAAW,iBAClC,IAWLt3J,EAAI+D,KAAKxS,EAAQiS,OARjB,SAAgBrpC,GACd,IACE,MAAe,KAARA,GAAcs6F,EAAO//C,SAASF,KAAOigD,EAAO//C,SAASF,KAAOr6C,EACnE,MAAOrnB,GACP,OAAOqnB,GAIcs9L,CAAOlmK,EAAQp3B,MAAM,GAElB,YAAxBo3B,EAAQklK,YACVz2J,EAAIqqG,iBAAkB,EACW,SAAxB94G,EAAQklK,cACjBz2J,EAAIqqG,iBAAkB,GAGpB,iBAAkBrqG,IAChBs0J,EACFt0J,EAAIi/H,aAAe,OAEnBq1B,GACA/iK,EAAQo0E,QAAQ96G,IAAI,kBACyD,IAA7E0mC,EAAQo0E,QAAQ96G,IAAI,gBAAgB7L,QAAQ,8BAE5CghD,EAAIi/H,aAAe,iBAInBp1K,GAAgC,kBAAjBA,EAAK87G,SAA0B97G,EAAK87G,mBAAmBgvF,EAKxEpjK,EAAQo0E,QAAQnhH,SAAQ,SAASpV,EAAOW,GACtCiwD,EAAIgE,iBAAiBj0D,EAAMX,MAL7BM,OAAO2/J,oBAAoBxlJ,EAAK87G,SAASnhH,SAAQ,SAASzU,GACxDiwD,EAAIgE,iBAAiBj0D,EAAM0kN,EAAe5qM,EAAK87G,QAAQ51H,QAQvDwhD,EAAQmlK,SACVnlK,EAAQmlK,OAAO51M,iBAAiB,QAAS02M,GAEzCx3J,EAAIiqG,mBAAqB,WAEA,IAAnBjqG,EAAIkqG,YACN34G,EAAQmlK,OAAO31M,oBAAoB,QAASy2M,KAKlDx3J,EAAIqE,KAAkC,qBAAtB9S,EAAQkkK,UAA4B,KAAOlkK,EAAQkkK,cAIvE31J,EAAM43J,UAAW,EAEZjjG,EAAO30D,QACV20D,EAAO30D,MAAQA,EACf20D,EAAOkgG,QAAUA,EACjBlgG,EAAO+hG,QAAUA,EACjB/hG,EAAOyiG,SAAWA,I,6BCnlBP,IAAIprI,EAAEj+E,EAAQ,IAAiB4B,EAAE,MAAMgZ,EAAE,MAAM7a,EAAQ2rB,SAAS,MAAM3rB,EAAQ+pN,WAAW,MAAM/pN,EAAQgqN,SAAS,MAAM,IAAIC,EAAE,MAAMvmH,EAAE,MAAMvoF,EAAE,MAAMnb,EAAQkqN,SAAS,MAAM,IAAIC,EAAE,MAAMplF,EAAE,MACpM,GAAG,oBAAoBlkI,QAAQA,OAAOupN,IAAI,CAAC,IAAItzK,EAAEj2C,OAAOupN,IAAIvoN,EAAEi1C,EAAE,iBAAiBj8B,EAAEi8B,EAAE,gBAAgB92C,EAAQ2rB,SAASmrB,EAAE,kBAAkB92C,EAAQ+pN,WAAWjzK,EAAE,qBAAqB92C,EAAQgqN,SAASlzK,EAAE,kBAAkBmzK,EAAEnzK,EAAE,kBAAkB4sD,EAAE5sD,EAAE,iBAAiB37B,EAAE27B,EAAE,qBAAqB92C,EAAQkqN,SAASpzK,EAAE,kBAAkBqzK,EAAErzK,EAAE,cAAciuF,EAAEjuF,EAAE,cAAc,IAAIjrC,EAAE,oBAAoBhL,QAAQA,OAAOC,SACtR,SAASupN,EAAE12M,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEhQ,EAAE,EAAEA,EAAEd,UAAUxC,OAAOsD,IAAIiQ,GAAG,WAAW8iD,mBAAmB7zD,UAAUc,IAAI,MAAM,yBAAyBgQ,EAAE,WAAWC,EAAE,iHACpU,IAAIyrM,EAAE,CAACiL,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcC,EAAE,GAAG,SAASplG,EAAE3xG,EAAEC,EAAEjQ,GAAG+B,KAAKxB,MAAMyP,EAAEjO,KAAKomB,QAAQlY,EAAElO,KAAKilN,KAAKD,EAAEhlN,KAAKklN,QAAQjnN,GAAG07M,EACpN,SAASwL,KAA6B,SAASzL,EAAEzrM,EAAEC,EAAEjQ,GAAG+B,KAAKxB,MAAMyP,EAAEjO,KAAKomB,QAAQlY,EAAElO,KAAKilN,KAAKD,EAAEhlN,KAAKklN,QAAQjnN,GAAG07M,EADsG/5F,EAAEvjH,UAAU+oN,iBAAiB,GAAGxlG,EAAEvjH,UAAUmhB,SAAS,SAASvP,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMvE,MAAMi7M,EAAE,KAAK3kN,KAAKklN,QAAQH,gBAAgB/kN,KAAKiO,EAAEC,EAAE,aAAa0xG,EAAEvjH,UAAUgpN,YAAY,SAASp3M,GAAGjO,KAAKklN,QAAQL,mBAAmB7kN,KAAKiO,EAAE,gBACndk3M,EAAE9oN,UAAUujH,EAAEvjH,UAAsF,IAAIiD,EAAEo6M,EAAEr9M,UAAU,IAAI8oN,EAAE7lN,EAAE9C,YAAYk9M,EAAElhI,EAAEl5E,EAAEsgH,EAAEvjH,WAAWiD,EAAEgmN,sBAAqB,EAAG,IAAIC,EAAE,CAACx2M,QAAQ,MAAMy2M,EAAEppN,OAAOC,UAAUqS,eAAe+2M,EAAE,CAAC3nN,KAAI,EAAGgd,KAAI,EAAG4qM,QAAO,EAAGC,UAAS,GAChS,SAASC,EAAE33M,EAAEC,EAAEjQ,GAAG,IAAIuB,EAAEoC,EAAE,GAAG8S,EAAE,KAAKg0H,EAAE,KAAK,GAAG,MAAMx6H,EAAE,IAAI1O,UAAK,IAAS0O,EAAE4M,MAAM4tH,EAAEx6H,EAAE4M,UAAK,IAAS5M,EAAEpQ,MAAM4W,EAAE,GAAGxG,EAAEpQ,KAAKoQ,EAAEs3M,EAAE9pN,KAAKwS,EAAE1O,KAAKimN,EAAE/2M,eAAelP,KAAKoC,EAAEpC,GAAG0O,EAAE1O,IAAI,IAAIqC,EAAE1E,UAAUxC,OAAO,EAAE,GAAG,IAAIkH,EAAED,EAAEY,SAASvE,OAAO,GAAG,EAAE4D,EAAE,CAAC,IAAI,IAAIpC,EAAE3E,MAAM+G,GAAGooB,EAAE,EAAEA,EAAEpoB,EAAEooB,IAAIxqB,EAAEwqB,GAAG9sB,UAAU8sB,EAAE,GAAGroB,EAAEY,SAAS/C,EAAE,GAAGwO,GAAGA,EAAEksE,aAAa,IAAI36E,KAAKqC,EAAEoM,EAAEksE,kBAAe,IAASv4E,EAAEpC,KAAKoC,EAAEpC,GAAGqC,EAAErC,IAAI,MAAM,CAACqmN,SAAS1pN,EAAEqB,KAAKyQ,EAAEnQ,IAAI4W,EAAEoG,IAAI4tH,EAAElqI,MAAMoD,EAAEkkN,OAAOP,EAAEx2M,SACxU,SAASg3M,EAAE93M,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE43M,WAAW1pN,EAAqG,IAAI6pN,EAAE,OAAO,SAASC,EAAEh4M,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEnQ,IAA7K,SAAgBmQ,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAE9K,QAAQ,SAAQ,SAAS8K,GAAG,OAAOC,EAAED,MAAmFi4M,CAAO,GAAGj4M,EAAEnQ,KAAKoQ,EAAE5R,SAAS,IAC5W,SAAS6yI,EAAElhI,EAAEC,EAAEjQ,EAAEuB,EAAEoC,GAAG,IAAI8S,SAASzG,EAAK,cAAcyG,GAAG,YAAYA,IAAEzG,EAAE,MAAK,IAAIy6H,GAAE,EAAG,GAAG,OAAOz6H,EAAEy6H,GAAE,OAAQ,OAAOh0H,GAAG,IAAK,SAAS,IAAK,SAASg0H,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOz6H,EAAE43M,UAAU,KAAK1pN,EAAE,KAAKgZ,EAAEuzH,GAAE,GAAI,GAAGA,EAAE,OAAW9mI,EAAEA,EAAN8mI,EAAEz6H,GAASA,EAAE,KAAKzO,EAAE,IAAIymN,EAAEv9E,EAAE,GAAGlpI,EAAE1E,MAAME,QAAQ4G,IAAI3D,EAAE,GAAG,MAAMgQ,IAAIhQ,EAAEgQ,EAAE9K,QAAQ6iN,EAAE,OAAO,KAAK72E,EAAEvtI,EAAEsM,EAAEjQ,EAAE,IAAG,SAASgQ,GAAG,OAAOA,MAAK,MAAMrM,IAAImkN,EAAEnkN,KAAKA,EAD/W,SAAWqM,EAAEC,GAAG,MAAM,CAAC23M,SAAS1pN,EAAEqB,KAAKyQ,EAAEzQ,KAAKM,IAAIoQ,EAAE4M,IAAI7M,EAAE6M,IAAItc,MAAMyP,EAAEzP,MAAMsnN,OAAO73M,EAAE63M,QAC4RK,CAAEvkN,EAAE3D,IAAI2D,EAAE9D,KAAK4qI,GAAGA,EAAE5qI,MAAM8D,EAAE9D,IAAI,IAAI,GAAG8D,EAAE9D,KAAKqF,QAAQ6iN,EAAE,OAAO,KAAK/3M,IAAIC,EAAErS,KAAK+F,IAAI,EAAyB,GAAvB8mI,EAAE,EAAElpI,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAO1E,MAAME,QAAQiT,GAAG,IAAI,IAAIpM,EACzf,EAAEA,EAAEoM,EAAEtT,OAAOkH,IAAI,CAAQ,IAAIpC,EAAED,EAAEymN,EAAfvxM,EAAEzG,EAAEpM,GAAeA,GAAG6mI,GAAGyG,EAAEz6H,EAAExG,EAAEjQ,EAAEwB,EAAEmC,QAAQ,GAAGnC,EANhE,SAAWwO,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAE9H,GAAG8H,EAAE9H,IAAI8H,EAAE,eAA0CA,EAAE,KAMlD7H,CAAE6H,GAAG,oBAAoBxO,EAAE,IAAIwO,EAAExO,EAAE/D,KAAKuS,GAAGpM,EAAE,IAAI6S,EAAEzG,EAAEtS,QAAQC,MAA6B8sI,GAAGyG,EAA1Bz6H,EAAEA,EAAE5Y,MAA0BoS,EAAEjQ,EAAtBwB,EAAED,EAAEymN,EAAEvxM,EAAE7S,KAAkBD,QAAQ,GAAG,WAAW8S,EAAE,MAAMxG,EAAE,GAAGD,EAAEvE,MAAMi7M,EAAE,GAAG,oBAAoBz2M,EAAE,qBAAqB9R,OAAOqS,KAAKR,GAAG/P,KAAK,MAAM,IAAIgQ,IAAI,OAAOw6H,EAAE,SAAS0G,EAAEnhI,EAAEC,EAAEjQ,GAAG,GAAG,MAAMgQ,EAAE,OAAOA,EAAE,IAAIzO,EAAE,GAAGoC,EAAE,EAAmD,OAAjDutI,EAAElhI,EAAEzO,EAAE,GAAG,IAAG,SAASyO,GAAG,OAAOC,EAAExS,KAAKuC,EAAEgQ,EAAErM,QAAcpC,EAC1Z,SAAS4mN,EAAEn4M,GAAG,IAAI,IAAIA,EAAEo4M,QAAQ,CAAC,IAAIn4M,EAAED,EAAEq4M,QAAQp4M,EAAEA,IAAID,EAAEo4M,QAAQ,EAAEp4M,EAAEq4M,QAAQp4M,EAAEA,EAAE6hD,MAAK,SAAS7hD,GAAG,IAAID,EAAEo4M,UAAUn4M,EAAEA,EAAEy9E,QAAQ19E,EAAEo4M,QAAQ,EAAEp4M,EAAEq4M,QAAQp4M,MAAI,SAASA,GAAG,IAAID,EAAEo4M,UAAUp4M,EAAEo4M,QAAQ,EAAEp4M,EAAEq4M,QAAQp4M,MAAK,GAAG,IAAID,EAAEo4M,QAAQ,OAAOp4M,EAAEq4M,QAAQ,MAAMr4M,EAAEq4M,QAAS,IAAIC,EAAE,CAACx3M,QAAQ,MAAM,SAASysM,IAAI,IAAIvtM,EAAEs4M,EAAEx3M,QAAQ,GAAG,OAAOd,EAAE,MAAMvE,MAAMi7M,EAAE,MAAM,OAAO12M,EAAE,IAAIu4M,EAAE,CAACC,uBAAuBF,EAAEG,wBAAwB,CAACp7C,WAAW,GAAGq7C,kBAAkBpB,EAAEqB,qBAAqB,CAAC73M,SAAQ,GAAIqpE,OAAOI,GACjel+E,EAAQ68F,SAAS,CAACx5F,IAAIyxI,EAAEl+H,QAAQ,SAASjD,EAAEC,EAAEjQ,GAAGmxI,EAAEnhI,GAAE,WAAWC,EAAE5E,MAAMtJ,KAAK7C,aAAYc,IAAIyI,MAAM,SAASuH,GAAG,IAAIC,EAAE,EAAuB,OAArBkhI,EAAEnhI,GAAE,WAAWC,OAAaA,GAAGkpF,QAAQ,SAASnpF,GAAG,OAAOmhI,EAAEnhI,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAI44M,KAAK,SAAS54M,GAAG,IAAI83M,EAAE93M,GAAG,MAAMvE,MAAMi7M,EAAE,MAAM,OAAO12M,IAAI3T,EAAQ0gB,UAAU4kG,EAAEtlH,EAAQwsN,cAAcpN,EAAEp/M,EAAQysN,mDAAmDP,EAChXlsN,EAAQmkB,aAAa,SAASxQ,EAAEC,EAAEjQ,GAAG,GAAG,OAAOgQ,QAAG,IAASA,EAAE,MAAMvE,MAAMi7M,EAAE,IAAI12M,IAAI,IAAIzO,EAAEg5E,EAAE,GAAGvqE,EAAEzP,OAAOoD,EAAEqM,EAAEnQ,IAAI4W,EAAEzG,EAAE6M,IAAI4tH,EAAEz6H,EAAE63M,OAAO,GAAG,MAAM53M,EAAE,CAAoE,QAAnE,IAASA,EAAE4M,MAAMpG,EAAExG,EAAE4M,IAAI4tH,EAAE68E,EAAEx2M,cAAS,IAASb,EAAEpQ,MAAM8D,EAAE,GAAGsM,EAAEpQ,KAAQmQ,EAAEzQ,MAAMyQ,EAAEzQ,KAAK28E,aAAa,IAAIt4E,EAAEoM,EAAEzQ,KAAK28E,aAAa,IAAI16E,KAAKyO,EAAEs3M,EAAE9pN,KAAKwS,EAAEzO,KAAKgmN,EAAE/2M,eAAejP,KAAKD,EAAEC,QAAG,IAASyO,EAAEzO,SAAI,IAASoC,EAAEA,EAAEpC,GAAGyO,EAAEzO,IAAI,IAAIA,EAAEtC,UAAUxC,OAAO,EAAE,GAAG,IAAI8E,EAAED,EAAEgD,SAASvE,OAAO,GAAG,EAAEwB,EAAE,CAACoC,EAAE/G,MAAM2E,GAAG,IAAI,IAAIwqB,EAAE,EAAEA,EAAExqB,EAAEwqB,IAAIpoB,EAAEooB,GAAG9sB,UAAU8sB,EAAE,GAAGzqB,EAAEgD,SAASX,EAAE,MAAM,CAACgkN,SAAS1pN,EAAEqB,KAAKyQ,EAAEzQ,KACxfM,IAAI8D,EAAEkZ,IAAIpG,EAAElW,MAAMgB,EAAEsmN,OAAOp9E,IAAIpuI,EAAQ4rB,cAAc,SAASjY,EAAEC,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMD,EAAE,CAAC43M,SAAS7nH,EAAEgpH,sBAAsB94M,EAAE+4M,cAAch5M,EAAEi5M,eAAej5M,EAAEk5M,aAAa,EAAE7jJ,SAAS,KAAKxe,SAAS,OAAQwe,SAAS,CAACuiJ,SAAStB,EAAE72K,SAASz/B,GAAUA,EAAE62C,SAAS72C,GAAG3T,EAAQ0Q,cAAc46M,EAAEtrN,EAAQ8sN,cAAc,SAASn5M,GAAG,IAAIC,EAAE03M,EAAE7rM,KAAK,KAAK9L,GAAY,OAATC,EAAE1Q,KAAKyQ,EAASC,GAAG5T,EAAQ0rB,UAAU,WAAW,MAAM,CAACjX,QAAQ,OAAOzU,EAAQs+E,WAAW,SAAS3qE,GAAG,MAAM,CAAC43M,SAASpwM,EAAE6I,OAAOrQ,IAAI3T,EAAQ83M,eAAe2T,EAC3ezrN,EAAQygG,KAAK,SAAS9sF,GAAG,MAAM,CAAC43M,SAASxmF,EAAEgoF,SAAS,CAAChB,SAAS,EAAEC,QAAQr4M,GAAGq5M,MAAMlB,IAAI9rN,EAAQukH,KAAK,SAAS5wG,EAAEC,GAAG,MAAM,CAAC23M,SAASpB,EAAEjnN,KAAKyQ,EAAE+gL,aAAQ,IAAS9gL,EAAE,KAAKA,IAAI5T,EAAQitN,YAAY,SAASt5M,EAAEC,GAAG,OAAOstM,IAAI+L,YAAYt5M,EAAEC,IAAI5T,EAAQ0lH,WAAW,SAAS/xG,EAAEC,GAAG,OAAOstM,IAAIx7F,WAAW/xG,EAAEC,IAAI5T,EAAQktN,cAAc,aAAaltN,EAAQmtN,UAAU,SAASx5M,EAAEC,GAAG,OAAOstM,IAAIiM,UAAUx5M,EAAEC,IAAI5T,EAAQotN,oBAAoB,SAASz5M,EAAEC,EAAEjQ,GAAG,OAAOu9M,IAAIkM,oBAAoBz5M,EAAEC,EAAEjQ,IAC9c3D,EAAQqtN,gBAAgB,SAAS15M,EAAEC,GAAG,OAAOstM,IAAImM,gBAAgB15M,EAAEC,IAAI5T,EAAQstN,QAAQ,SAAS35M,EAAEC,GAAG,OAAOstM,IAAIoM,QAAQ35M,EAAEC,IAAI5T,EAAQutN,WAAW,SAAS55M,EAAEC,EAAEjQ,GAAG,OAAOu9M,IAAIqM,WAAW55M,EAAEC,EAAEjQ,IAAI3D,EAAQwtN,OAAO,SAAS75M,GAAG,OAAOutM,IAAIsM,OAAO75M,IAAI3T,EAAQytN,SAAS,SAAS95M,GAAG,OAAOutM,IAAIuM,SAAS95M,IAAI3T,EAAQ+Q,QAAQ,U,6BCXxS,IAAI28M,EAAGztN,EAAQ,GAAS0vB,EAAE1vB,EAAQ,IAAiByjG,EAAEzjG,EAAQ,KAAa,SAAS6L,EAAE6H,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEhQ,EAAE,EAAEA,EAAEd,UAAUxC,OAAOsD,IAAIiQ,GAAG,WAAW8iD,mBAAmB7zD,UAAUc,IAAI,MAAM,yBAAyBgQ,EAAE,WAAWC,EAAE,iHAAiH,IAAI85M,EAAG,MAAMt+M,MAAMtD,EAAE,MAAM,IAAI6hN,EAAG,IAAIttH,IAAI7lE,EAAG,GAAG,SAASozL,EAAGj6M,EAAEC,GAAGi6M,EAAGl6M,EAAEC,GAAGi6M,EAAGl6M,EAAE,UAAUC,GAC3e,SAASi6M,EAAGl6M,EAAEC,GAAW,IAAR4mB,EAAG7mB,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAEvT,OAAOsT,IAAIg6M,EAAGjlN,IAAIkL,EAAED,IACzD,IAAIm6M,IAAK,qBAAqBxnN,QAAQ,qBAAqBA,OAAOF,UAAU,qBAAqBE,OAAOF,SAASsK,eAAeq9M,EAAG,8VAA8VC,EAAGlsN,OAAOC,UAAUqS,eACrf65M,EAAG,GAAGC,EAAG,GAC+M,SAASxD,EAAE/2M,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,EAAEoC,GAAG7B,KAAKyoN,gBAAgB,IAAIv6M,GAAG,IAAIA,GAAG,IAAIA,EAAElO,KAAK0oN,cAAc9mN,EAAE5B,KAAK2oN,mBAAmBnpN,EAAEQ,KAAK4oN,gBAAgB3qN,EAAE+B,KAAKirM,aAAah9L,EAAEjO,KAAKxC,KAAK0Q,EAAElO,KAAK6oN,YAAYppN,EAAEO,KAAK8oN,kBAAkBjnN,EAAE,IAAIsjN,EAAE,GACnb,uIAAuIpiN,MAAM,KAAKmO,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAeiD,SAAQ,SAASjD,GAAG,IAAIC,EAAED,EAAE,GAAGk3M,EAAEj3M,GAAG,IAAI82M,EAAE92M,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAASiD,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE1C,cAAc,MAAK,GAAG,MACve,CAAC,cAAc,4BAA4B,YAAY,iBAAiB2F,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,8OAA8OlL,MAAM,KAAKmO,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE1C,cAAc,MAAK,GAAG,MACrb,CAAC,UAAU,WAAW,QAAQ,YAAY2F,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,YAAYiD,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQiD,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,SAASiD,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE1C,cAAc,MAAK,GAAG,MAAM,IAAIw9M,EAAG,gBAAgB,SAASC,EAAG/6M,GAAG,OAAOA,EAAE,GAAGoiD,cAI3Y,SAAS44J,EAAGh7M,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAE2lN,EAAEz2M,eAAeR,GAAGi3M,EAAEj3M,GAAG,MAAW,OAAO1O,EAAE,IAAIA,EAAEhC,MAAKoE,IAAO,EAAEsM,EAAEvT,SAAS,MAAMuT,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYD,EAAEC,EAAEjQ,EAAE2D,GAAG,GAAG,OAAOsM,GAAG,qBAAqBA,GADwE,SAAYD,EAAEC,EAAEjQ,EAAE2D,GAAG,GAAG,OAAO3D,GAAG,IAAIA,EAAET,KAAK,OAAM,EAAG,cAAc0Q,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGtM,IAAc,OAAO3D,GAASA,EAAEwqN,gBAAmD,WAAnCx6M,EAAEA,EAAE1C,cAAchP,MAAM,EAAE,KAAsB,UAAU0R,GAAE,QAAQ,OAAM,GAC/Ti7M,CAAGj7M,EAAEC,EAAEjQ,EAAE2D,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO3D,EAAE,OAAOA,EAAET,MAAM,KAAK,EAAE,OAAO0Q,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO2e,MAAM3e,GAAG,KAAK,EAAE,OAAO2e,MAAM3e,IAAI,EAAEA,EAAE,OAAM,EAOrDi7M,CAAGj7M,EAAEjQ,EAAEuB,EAAEoC,KAAK3D,EAAE,MAAM2D,GAAG,OAAOpC,EARpL,SAAYyO,GAAG,QAAGq6M,EAAG5sN,KAAK8sN,EAAGv6M,KAAeq6M,EAAG5sN,KAAK6sN,EAAGt6M,KAAeo6M,EAAG1rN,KAAKsR,GAAUu6M,EAAGv6M,IAAG,GAAGs6M,EAAGt6M,IAAG,GAAS,IAQsEm7M,CAAGl7M,KAAK,OAAOjQ,EAAEgQ,EAAEo7M,gBAAgBn7M,GAAGD,EAAEkmF,aAAajmF,EAAE,GAAGjQ,IAAIuB,EAAEopN,gBAAgB36M,EAAEzO,EAAEyrM,cAAc,OAAOhtM,EAAE,IAAIuB,EAAEhC,MAAQ,GAAGS,GAAGiQ,EAAE1O,EAAEkpN,cAAc9mN,EAAEpC,EAAEmpN,mBAAmB,OAAO1qN,EAAEgQ,EAAEo7M,gBAAgBn7M,IAAajQ,EAAE,KAAXuB,EAAEA,EAAEhC,OAAc,IAAIgC,IAAG,IAAKvB,EAAE,GAAG,GAAGA,EAAE2D,EAAEqM,EAAEq7M,eAAe1nN,EAAEsM,EAAEjQ,GAAGgQ,EAAEkmF,aAAajmF,EAAEjQ,MAH5d,0jCAA0jC8E,MAAM,KAAKmO,SAAQ,SAASjD,GAAG,IAAIC,EAAED,EAAE9K,QAAQ4lN,EACzmCC,GAAI7D,EAAEj3M,GAAG,IAAI82M,EAAE92M,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,MAAM,2EAA2ElL,MAAM,KAAKmO,SAAQ,SAASjD,GAAG,IAAIC,EAAED,EAAE9K,QAAQ4lN,EAAGC,GAAI7D,EAAEj3M,GAAG,IAAI82M,EAAE92M,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,MAAM,CAAC,WAAW,WAAW,aAAaiD,SAAQ,SAASjD,GAAG,IAAIC,EAAED,EAAE9K,QAAQ4lN,EAAGC,GAAI7D,EAAEj3M,GAAG,IAAI82M,EAAE92M,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,MAAM,CAAC,WAAW,eAAeiD,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE1C,cAAc,MAAK,GAAG,MAC/c45M,EAAEoE,UAAU,IAAIvE,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAc9zM,SAAQ,SAASjD,GAAGk3M,EAAEl3M,GAAG,IAAI+2M,EAAE/2M,EAAE,GAAE,EAAGA,EAAE1C,cAAc,MAAK,GAAG,MAEzL,IAAIi+M,EAAGxB,EAAGjB,mDAAmD0C,EAAG,MAAMC,EAAG,MAAMp+M,EAAG,MAAMq+M,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAChN,GAAG,oBAAoBrvN,QAAQA,OAAOupN,IAAI,CAAC,IAAIhL,EAAEv+M,OAAOupN,IAAI+E,EAAG/P,EAAE,iBAAiBgQ,EAAGhQ,EAAE,gBAAgBpuM,EAAGouM,EAAE,kBAAkBiQ,EAAGjQ,EAAE,qBAAqBkQ,EAAGlQ,EAAE,kBAAkBmQ,EAAGnQ,EAAE,kBAAkBoQ,EAAGpQ,EAAE,iBAAiBqQ,EAAGrQ,EAAE,qBAAqBsQ,EAAGtQ,EAAE,kBAAkBuQ,EAAGvQ,EAAE,uBAAuBwQ,EAAGxQ,EAAE,cAAcyQ,EAAGzQ,EAAE,cAAc0Q,EAAG1Q,EAAE,eAAeA,EAAE,eAAe2Q,EAAG3Q,EAAE,mBAAmB4Q,EAAG5Q,EAAE,0BAA0B6Q,EAAG7Q,EAAE,mBAAmB8Q,EAAG9Q,EAAE,uBACxc,IAAmL+Q,EAA/KC,EAAG,oBAAoBvvN,QAAQA,OAAOC,SAAS,SAASuvN,EAAG18M,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEy8M,GAAIz8M,EAAEy8M,IAAKz8M,EAAE,eAA0CA,EAAE,KAAY,SAAS28M,EAAG38M,GAAG,QAAG,IAASw8M,EAAG,IAAI,MAAM/gN,QAAS,MAAMzL,GAAG,IAAIiQ,EAAEjQ,EAAEihN,MAAM5uM,OAAO9E,MAAM,gBAAgBi/M,EAAGv8M,GAAGA,EAAE,IAAI,GAAG,MAAM,KAAKu8M,EAAGx8M,EAAE,IAAI48M,GAAG,EACjU,SAASC,EAAG78M,EAAEC,GAAG,IAAID,GAAG48M,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI5sN,EAAEyL,MAAMqhN,kBAAkBrhN,MAAMqhN,uBAAkB,EAAO,IAAI,GAAG78M,EAAE,GAAGA,EAAE,WAAW,MAAMxE,SAAUtN,OAAOyC,eAAeqP,EAAE7R,UAAU,QAAQ,CAACob,IAAI,WAAW,MAAM/N,WAAY,kBAAkBwP,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAUjL,EAAE,IAAI,MAAMwG,GAAG,IAAI9S,EAAE8S,EAAEwE,QAAQC,UAAUlL,EAAE,GAAGC,OAAO,CAAC,IAAIA,EAAExS,OAAO,MAAMgZ,GAAG9S,EAAE8S,EAAEzG,EAAEvS,KAAKwS,EAAE7R,eAAe,CAAC,IAAI,MAAMqN,QAAS,MAAMgL,GAAG9S,EAAE8S,EAAEzG,KAAK,MAAMyG,GAAG,GAAGA,GAAG9S,GAAG,kBAAkB8S,EAAEwqM,MAAM,CAAC,IAAI,IAAI1/M,EAAEkV,EAAEwqM,MAAMn8M,MAAM,MACnftD,EAAEmC,EAAEs9M,MAAMn8M,MAAM,MAAMlB,EAAErC,EAAE7E,OAAO,EAAE+tI,EAAEjpI,EAAE9E,OAAO,EAAE,GAAGkH,GAAG,GAAG6mI,GAAGlpI,EAAEqC,KAAKpC,EAAEipI,IAAIA,IAAI,KAAK,GAAG7mI,GAAG,GAAG6mI,EAAE7mI,IAAI6mI,IAAI,GAAGlpI,EAAEqC,KAAKpC,EAAEipI,GAAG,CAAC,GAAG,IAAI7mI,GAAG,IAAI6mI,EAAG,GAAG,GAAG7mI,IAAQ,IAAJ6mI,GAASlpI,EAAEqC,KAAKpC,EAAEipI,GAAG,MAAM,KAAKlpI,EAAEqC,GAAGsB,QAAQ,WAAW,cAAc,GAAGtB,GAAG,GAAG6mI,GAAG,QAD3H,QAC2ImiF,GAAG,EAAGnhN,MAAMqhN,kBAAkB9sN,EAAE,OAAOgQ,EAAEA,EAAEA,EAAE0xG,aAAa1xG,EAAExR,KAAK,IAAImuN,EAAG38M,GAAG,GAC7T,SAAS+8M,EAAG/8M,GAAG,OAAOA,EAAEssJ,KAAK,KAAK,EAAE,OAAOqwD,EAAG38M,EAAEzQ,MAAM,KAAK,GAAG,OAAOotN,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO38M,EAAE68M,EAAG78M,EAAEzQ,MAAK,GAAM,KAAK,GAAG,OAAOyQ,EAAE68M,EAAG78M,EAAEzQ,KAAK8gB,QAAO,GAAM,KAAK,GAAG,OAAOrQ,EAAE68M,EAAG78M,EAAEzQ,KAAKytN,SAAQ,GAAM,KAAK,EAAE,OAAOh9M,EAAE68M,EAAG78M,EAAEzQ,MAAK,GAAM,QAAQ,MAAM,IAC9T,SAAS0tN,EAAGj9M,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE0xG,aAAa1xG,EAAExR,MAAM,KAAK,GAAG,kBAAkBwR,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK3C,EAAG,MAAM,WAAW,KAAKo+M,EAAG,MAAM,SAAS,KAAKE,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBh8M,EAAE,OAAOA,EAAE43M,UAAU,KAAKiE,EAAG,OAAO77M,EAAE0xG,aAAa,WAAW,YAAY,KAAKkqG,EAAG,OAAO57M,EAAEy/B,SAASiyE,aAAa,WAAW,YAAY,KAAKoqG,EAAG,IAAI77M,EAAED,EAAEqQ,OACnd,OAD0dpQ,EAAEA,EAAEyxG,aAAazxG,EAAEzR,MAAM,GAC5ewR,EAAE0xG,cAAc,KAAKzxG,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAKg8M,EAAG,OAAOgB,EAAGj9M,EAAEzQ,MAAM,KAAK4sN,EAAG,OAAOc,EAAGj9M,EAAEg9M,SAAS,KAAKd,EAAGj8M,EAAED,EAAEo5M,SAASp5M,EAAEA,EAAEq5M,MAAM,IAAI,OAAO4D,EAAGj9M,EAAEC,IAAI,MAAMjQ,KAAK,OAAO,KAAK,SAASktN,EAAGl9M,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAASm9M,EAAGn9M,GAAG,IAAIC,EAAED,EAAEzQ,KAAK,OAAOyQ,EAAEA,EAAEpE,WAAW,UAAUoE,EAAE1C,gBAAgB,aAAa2C,GAAG,UAAUA,GAE1Z,SAASm9M,EAAGp9M,GAAGA,EAAEq9M,gBAAgBr9M,EAAEq9M,cADvD,SAAYr9M,GAAG,IAAIC,EAAEk9M,EAAGn9M,GAAG,UAAU,QAAQhQ,EAAE7B,OAAO2U,yBAAyB9C,EAAEzR,YAAYH,UAAU6R,GAAGtM,EAAE,GAAGqM,EAAEC,GAAG,IAAID,EAAES,eAAeR,IAAI,qBAAqBjQ,GAAG,oBAAoBA,EAAEsZ,KAAK,oBAAoBtZ,EAAEwZ,IAAI,CAAC,IAAIjY,EAAEvB,EAAEsZ,IAAI9X,EAAExB,EAAEwZ,IAAiL,OAA7Krb,OAAOyC,eAAeoP,EAAEC,EAAE,CAACvP,cAAa,EAAG4Y,IAAI,WAAW,OAAO/X,EAAE9D,KAAKsE,OAAOyX,IAAI,SAASxJ,GAAGrM,EAAE,GAAGqM,EAAExO,EAAE/D,KAAKsE,KAAKiO,MAAM7R,OAAOyC,eAAeoP,EAAEC,EAAE,CAACxP,WAAWT,EAAES,aAAmB,CAACkV,SAAS,WAAW,OAAOhS,GAAGyuL,SAAS,SAASpiL,GAAGrM,EAAE,GAAGqM,GAAGs9M,aAAa,WAAWt9M,EAAEq9M,cACxf,YAAYr9M,EAAEC,MAAuDs9M,CAAGv9M,IAAI,SAASw9M,EAAGx9M,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEq9M,cAAc,IAAIp9M,EAAE,OAAM,EAAG,IAAIjQ,EAAEiQ,EAAE0F,WAAehS,EAAE,GAAqD,OAAlDqM,IAAIrM,EAAEwpN,EAAGn9M,GAAGA,EAAEi+E,QAAQ,OAAO,QAAQj+E,EAAEnS,QAAOmS,EAAErM,KAAa3D,IAAGiQ,EAAEmiL,SAASpiL,IAAG,GAAO,SAASy9M,EAAGz9M,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBvN,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOuN,EAAE8E,eAAe9E,EAAE5L,KAAK,MAAM6L,GAAG,OAAOD,EAAE5L,MAC/Z,SAASspN,EAAG19M,EAAEC,GAAG,IAAIjQ,EAAEiQ,EAAEg+E,QAAQ,OAAOjiE,EAAE,GAAG/b,EAAE,CAAC0+E,oBAAe,EAAOrS,kBAAa,EAAOz+E,WAAM,EAAOowF,QAAQ,MAAMjuF,EAAEA,EAAEgQ,EAAE29M,cAAcC,iBAAiB,SAASC,GAAG79M,EAAEC,GAAG,IAAIjQ,EAAE,MAAMiQ,EAAEqsE,aAAa,GAAGrsE,EAAEqsE,aAAa34E,EAAE,MAAMsM,EAAEg+E,QAAQh+E,EAAEg+E,QAAQh+E,EAAE0+E,eAAe3uF,EAAEktN,EAAG,MAAMj9M,EAAEpS,MAAMoS,EAAEpS,MAAMmC,GAAGgQ,EAAE29M,cAAc,CAACC,eAAejqN,EAAEmqN,aAAa9tN,EAAE+tN,WAAW,aAAa99M,EAAE1Q,MAAM,UAAU0Q,EAAE1Q,KAAK,MAAM0Q,EAAEg+E,QAAQ,MAAMh+E,EAAEpS,OAAO,SAASmwN,GAAGh+M,EAAEC,GAAe,OAAZA,EAAEA,EAAEg+E,UAAiB+8H,EAAGh7M,EAAE,UAAUC,GAAE,GAC3d,SAASg+M,GAAGj+M,EAAEC,GAAG+9M,GAAGh+M,EAAEC,GAAG,IAAIjQ,EAAEktN,EAAGj9M,EAAEpS,OAAO8F,EAAEsM,EAAE1Q,KAAK,GAAG,MAAMS,EAAK,WAAW2D,GAAM,IAAI3D,GAAG,KAAKgQ,EAAEnS,OAAOmS,EAAEnS,OAAOmC,KAAEgQ,EAAEnS,MAAM,GAAGmC,GAAOgQ,EAAEnS,QAAQ,GAAGmC,IAAIgQ,EAAEnS,MAAM,GAAGmC,QAAQ,GAAG,WAAW2D,GAAG,UAAUA,EAA8B,YAA3BqM,EAAEo7M,gBAAgB,SAAgBn7M,EAAEQ,eAAe,SAASy9M,GAAGl+M,EAAEC,EAAE1Q,KAAKS,GAAGiQ,EAAEQ,eAAe,iBAAiBy9M,GAAGl+M,EAAEC,EAAE1Q,KAAK2tN,EAAGj9M,EAAEqsE,eAAe,MAAMrsE,EAAEg+E,SAAS,MAAMh+E,EAAE0+E,iBAAiB3+E,EAAE2+E,iBAAiB1+E,EAAE0+E,gBACnZ,SAAS67F,GAAGx6K,EAAEC,EAAEjQ,GAAG,GAAGiQ,EAAEQ,eAAe,UAAUR,EAAEQ,eAAe,gBAAgB,CAAC,IAAI9M,EAAEsM,EAAE1Q,KAAK,KAAK,WAAWoE,GAAG,UAAUA,QAAG,IAASsM,EAAEpS,OAAO,OAAOoS,EAAEpS,OAAO,OAAOoS,EAAE,GAAGD,EAAE29M,cAAcG,aAAa9tN,GAAGiQ,IAAID,EAAEnS,QAAQmS,EAAEnS,MAAMoS,GAAGD,EAAEssE,aAAarsE,EAAW,MAATjQ,EAAEgQ,EAAExR,QAAcwR,EAAExR,KAAK,IAAIwR,EAAE2+E,iBAAiB3+E,EAAE29M,cAAcC,eAAe,KAAK5tN,IAAIgQ,EAAExR,KAAKwB,GACvV,SAASkuN,GAAGl+M,EAAEC,EAAEjQ,GAAM,WAAWiQ,GAAGw9M,EAAGz9M,EAAEm+M,iBAAiBn+M,IAAE,MAAMhQ,EAAEgQ,EAAEssE,aAAa,GAAGtsE,EAAE29M,cAAcG,aAAa99M,EAAEssE,eAAe,GAAGt8E,IAAIgQ,EAAEssE,aAAa,GAAGt8E,IAAwF,SAASouN,GAAGp+M,EAAEC,GAA6D,OAA1DD,EAAEgc,EAAE,CAACznB,cAAS,GAAQ0L,IAAMA,EAAlI,SAAYD,GAAG,IAAIC,EAAE,GAAuD,OAApD85M,EAAG7wH,SAASjmF,QAAQjD,GAAE,SAASA,GAAG,MAAMA,IAAIC,GAAGD,MAAYC,EAAiDo+M,CAAGp+M,EAAE1L,aAAUyL,EAAEzL,SAAS0L,GAASD,EACvU,SAASs+M,GAAGt+M,EAAEC,EAAEjQ,EAAE2D,GAAe,GAAZqM,EAAEA,EAAEqD,QAAWpD,EAAE,CAACA,EAAE,GAAG,IAAI,IAAI1O,EAAE,EAAEA,EAAEvB,EAAEtD,OAAO6E,IAAI0O,EAAE,IAAIjQ,EAAEuB,KAAI,EAAG,IAAIvB,EAAE,EAAEA,EAAEgQ,EAAEtT,OAAOsD,IAAIuB,EAAE0O,EAAEQ,eAAe,IAAIT,EAAEhQ,GAAGnC,OAAOmS,EAAEhQ,GAAG6yF,WAAWtxF,IAAIyO,EAAEhQ,GAAG6yF,SAAStxF,GAAGA,GAAGoC,IAAIqM,EAAEhQ,GAAGuuN,iBAAgB,OAAQ,CAAmB,IAAlBvuN,EAAE,GAAGktN,EAAGltN,GAAGiQ,EAAE,KAAS1O,EAAE,EAAEA,EAAEyO,EAAEtT,OAAO6E,IAAI,CAAC,GAAGyO,EAAEzO,GAAG1D,QAAQmC,EAAiD,OAA9CgQ,EAAEzO,GAAGsxF,UAAS,OAAGlvF,IAAIqM,EAAEzO,GAAGgtN,iBAAgB,IAAW,OAAOt+M,GAAGD,EAAEzO,GAAGigB,WAAWvR,EAAED,EAAEzO,IAAI,OAAO0O,IAAIA,EAAE4iF,UAAS,IACpY,SAAS27H,GAAGx+M,EAAEC,GAAG,GAAG,MAAMA,EAAEwrE,wBAAwB,MAAMhwE,MAAMtD,EAAE,KAAK,OAAO6jB,EAAE,GAAG/b,EAAE,CAACpS,WAAM,EAAOy+E,kBAAa,EAAO/3E,SAAS,GAAGyL,EAAE29M,cAAcG,eAAe,SAASW,GAAGz+M,EAAEC,GAAG,IAAIjQ,EAAEiQ,EAAEpS,MAAM,GAAG,MAAMmC,EAAE,CAA+B,GAA9BA,EAAEiQ,EAAE1L,SAAS0L,EAAEA,EAAEqsE,aAAgB,MAAMt8E,EAAE,CAAC,GAAG,MAAMiQ,EAAE,MAAMxE,MAAMtD,EAAE,KAAK,GAAGtL,MAAME,QAAQiD,GAAG,CAAC,KAAK,GAAGA,EAAEtD,QAAQ,MAAM+O,MAAMtD,EAAE,KAAKnI,EAAEA,EAAE,GAAGiQ,EAAEjQ,EAAE,MAAMiQ,IAAIA,EAAE,IAAIjQ,EAAEiQ,EAAED,EAAE29M,cAAc,CAACG,aAAaZ,EAAGltN,IAC/Y,SAAS0uN,GAAG1+M,EAAEC,GAAG,IAAIjQ,EAAEktN,EAAGj9M,EAAEpS,OAAO8F,EAAEupN,EAAGj9M,EAAEqsE,cAAc,MAAMt8E,KAAIA,EAAE,GAAGA,KAAMgQ,EAAEnS,QAAQmS,EAAEnS,MAAMmC,GAAG,MAAMiQ,EAAEqsE,cAActsE,EAAEssE,eAAet8E,IAAIgQ,EAAEssE,aAAat8E,IAAI,MAAM2D,IAAIqM,EAAEssE,aAAa,GAAG34E,GAAG,SAASgrN,GAAG3+M,GAAG,IAAIC,EAAED,EAAElB,YAAYmB,IAAID,EAAE29M,cAAcG,cAAc,KAAK79M,GAAG,OAAOA,IAAID,EAAEnS,MAAMoS,GAAG,IAAI2+M,GAAS,+BAATA,GAAwF,6BAC9X,SAASC,GAAG7+M,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAAS8+M,GAAG9+M,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAE6+M,GAAG5+M,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,EAC3U,IAAI++M,GAAe/+M,GAAZg/M,IAAYh/M,GAAsJ,SAASA,EAAEC,GAAG,GAAGD,EAAEi/M,eAAeL,IAAQ,cAAc5+M,EAAEA,EAAEpB,UAAUqB,MAAM,CAA2F,KAA1F8+M,GAAGA,IAAItsN,SAASsK,cAAc,QAAU6B,UAAU,QAAQqB,EAAEqL,UAAUjd,WAAW,SAAa4R,EAAE8+M,GAAGz0K,WAAWtqC,EAAEsqC,YAAYtqC,EAAEtE,YAAYsE,EAAEsqC,YAAY,KAAKrqC,EAAEqqC,YAAYtqC,EAAEzE,YAAY0E,EAAEqqC,cAArZ,qBAAqB40K,OAAOA,MAAMC,wBAAwB,SAASl/M,EAAEjQ,EAAE2D,EAAEpC,GAAG2tN,MAAMC,yBAAwB,WAAW,OAAOn/M,GAAEC,EAAEjQ,OAAUgQ,IACtK,SAASo/M,GAAGp/M,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAIjQ,EAAEgQ,EAAEsqC,WAAW,GAAGt6C,GAAGA,IAAIgQ,EAAEq/M,WAAW,IAAIrvN,EAAE2E,SAAwB,YAAd3E,EAAEsvN,UAAUr/M,GAAUD,EAAElB,YAAYmB,EACrH,IAAIs/M,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAG1+H,SAAQ,EAAG2+H,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGriN,YAAW,EAAGrE,SAAQ,EAAG+gB,OAAM,EAAG4lM,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGl4M,QAAO,EAAGm4M,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAG17B,aAAY,GAAI27B,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAG7hN,EAAEC,EAAEjQ,GAAG,OAAO,MAAMiQ,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGjQ,GAAG,kBAAkBiQ,GAAG,IAAIA,GAAGs/M,GAAG9+M,eAAeT,IAAIu/M,GAAGv/M,IAAI,GAAGC,GAAGoC,OAAOpC,EAAE,KAC9Z,SAAS6hN,GAAG9hN,EAAEC,GAAa,IAAI,IAAIjQ,KAAlBgQ,EAAEA,EAAE7N,MAAmB8N,EAAE,GAAGA,EAAEQ,eAAezQ,GAAG,CAAC,IAAI2D,EAAE,IAAI3D,EAAEyN,QAAQ,MAAMlM,EAAEswN,GAAG7xN,EAAEiQ,EAAEjQ,GAAG2D,GAAG,UAAU3D,IAAIA,EAAE,YAAY2D,EAAEqM,EAAE6wK,YAAY7gL,EAAEuB,GAAGyO,EAAEhQ,GAAGuB,GADTpD,OAAOqS,KAAK++M,IAAIt8M,SAAQ,SAASjD,GAAG4hN,GAAG3+M,SAAQ,SAAShD,GAAGA,EAAEA,EAAED,EAAE0F,OAAO,GAAG08C,cAAcpiD,EAAEjI,UAAU,GAAGwnN,GAAGt/M,GAAGs/M,GAAGv/M,SACrG,IAAI+hN,GAAG/lM,EAAE,CAACwwH,UAAS,GAAI,CAACw1E,MAAK,EAAG9wG,MAAK,EAAG+wG,IAAG,EAAGpoJ,KAAI,EAAGqoJ,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGtgM,OAAM,EAAGugM,QAAO,EAAGzgH,MAAK,EAAGjpF,MAAK,EAAGmsH,OAAM,EAAG9hI,QAAO,EAAGs/M,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGxiN,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG8hN,GAAG/hN,KAAK,MAAMC,EAAE1L,UAAU,MAAM0L,EAAEwrE,yBAAyB,MAAMhwE,MAAMtD,EAAE,IAAI6H,IAAI,GAAG,MAAMC,EAAEwrE,wBAAwB,CAAC,GAAG,MAAMxrE,EAAE1L,SAAS,MAAMkH,MAAMtD,EAAE,KAAK,GAAK,kBAAkB8H,EAAEwrE,2BAAyB,WAAWxrE,EAAEwrE,yBAAyB,MAAMhwE,MAAMtD,EAAE,KAAM,GAAG,MAAM8H,EAAE9N,OAAO,kBAAkB8N,EAAE9N,MAAM,MAAMsJ,MAAMtD,EAAE,MAC5V,SAASsqN,GAAGziN,EAAEC,GAAG,IAAI,IAAID,EAAEvC,QAAQ,KAAK,MAAM,kBAAkBwC,EAAEyiN,GAAG,OAAO1iN,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS2iN,GAAG3iN,GAA6F,OAA1FA,EAAEA,EAAE1P,QAAQ0P,EAAE4iN,YAAYjwN,QAASkwN,0BAA0B7iN,EAAEA,EAAE6iN,yBAAgC,IAAI7iN,EAAErL,SAASqL,EAAExL,WAAWwL,EAAE,IAAI8iN,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACxb,SAASC,GAAGjjN,GAAG,GAAGA,EAAEkjN,GAAGljN,GAAG,CAAC,GAAG,oBAAoB8iN,GAAG,MAAMrnN,MAAMtD,EAAE,MAAM,IAAI8H,EAAED,EAAEmjN,UAAUljN,IAAIA,EAAEmjN,GAAGnjN,GAAG6iN,GAAG9iN,EAAEmjN,UAAUnjN,EAAEzQ,KAAK0Q,KAAK,SAASojN,GAAGrjN,GAAG+iN,GAAGC,GAAGA,GAAGp1N,KAAKoS,GAAGgjN,GAAG,CAAChjN,GAAG+iN,GAAG/iN,EAAE,SAASsjN,KAAK,GAAGP,GAAG,CAAC,IAAI/iN,EAAE+iN,GAAG9iN,EAAE+iN,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGjjN,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAEvT,OAAOsT,IAAIijN,GAAGhjN,EAAED,KAAK,SAASujN,GAAGvjN,EAAEC,GAAG,OAAOD,EAAEC,GAAG,SAASujN,GAAGxjN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,OAAOyO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,SAASkyN,MAAM,IAAIC,GAAGH,GAAGI,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOd,IAAI,OAAOC,KAAGS,KAAKH,MAE9Z,SAASQ,GAAG9jN,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAEmjN,UAAU,GAAG,OAAOnzN,EAAE,OAAO,KAAK,IAAI2D,EAAEyvN,GAAGpzN,GAAG,GAAG,OAAO2D,EAAE,OAAO,KAAK3D,EAAE2D,EAAEsM,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBtM,GAAGA,EAAE6d,YAAqB7d,IAAI,YAAbqM,EAAEA,EAAEzQ,OAAuB,UAAUyQ,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGrM,EAAE,MAAMqM,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGhQ,GAAG,oBACleA,EAAE,MAAMyL,MAAMtD,EAAE,IAAI8H,SAASjQ,IAAI,OAAOA,EAAE,IAAI+zN,IAAG,EAAG,GAAG5J,EAAG,IAAI,IAAI6J,GAAG,GAAG71N,OAAOyC,eAAeozN,GAAG,UAAU,CAAC16M,IAAI,WAAWy6M,IAAG,KAAMpxN,OAAO4M,iBAAiB,OAAOykN,GAAGA,IAAIrxN,OAAO6M,oBAAoB,OAAOwkN,GAAGA,IAAI,MAAMhkN,IAAG+jN,IAAG,EAAG,SAASE,GAAGjkN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,EAAEoC,EAAE6mI,EAAEh0H,GAAG,IAAI8jE,EAAE19E,MAAMuB,UAAUE,MAAMb,KAAKyB,UAAU,GAAG,IAAI+Q,EAAE5E,MAAMrL,EAAEu6E,GAAG,MAAMr8E,GAAG6D,KAAK8gH,QAAQ3kH,IAAI,IAAIg2N,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACzxG,QAAQ,SAAS7yG,GAAGkkN,IAAG,EAAGC,GAAGnkN,IAAI,SAASukN,GAAGvkN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,EAAEoC,EAAE6mI,EAAEh0H,GAAGy9M,IAAG,EAAGC,GAAG,KAAKF,GAAG5oN,MAAMipN,GAAGp1N,WACvV,SAASs1N,GAAGxkN,GAAG,IAAIC,EAAED,EAAEhQ,EAAEgQ,EAAE,GAAGA,EAAEykN,UAAU,KAAKxkN,EAAEpO,QAAQoO,EAAEA,EAAEpO,WAAW,CAACmO,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAAS4uK,SAAc5+K,EAAEiQ,EAAEpO,QAAQmO,EAAEC,EAAEpO,aAAamO,GAAG,OAAO,IAAIC,EAAEqsJ,IAAIt8J,EAAE,KAAK,SAAS00N,GAAG1kN,GAAG,GAAG,KAAKA,EAAEssJ,IAAI,CAAC,IAAIrsJ,EAAED,EAAE2kN,cAAsE,GAAxD,OAAO1kN,IAAkB,QAAdD,EAAEA,EAAEykN,aAAqBxkN,EAAED,EAAE2kN,gBAAmB,OAAO1kN,EAAE,OAAOA,EAAE2kN,WAAW,OAAO,KAAK,SAASC,GAAG7kN,GAAG,GAAGwkN,GAAGxkN,KAAKA,EAAE,MAAMvE,MAAMtD,EAAE,MAEpS,SAASkW,GAAGrO,GAAW,GAARA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEykN,UAAU,IAAIxkN,EAAE,CAAS,GAAG,QAAXA,EAAEukN,GAAGxkN,IAAe,MAAMvE,MAAMtD,EAAE,MAAM,OAAO8H,IAAID,EAAE,KAAKA,EAAE,IAAI,IAAIhQ,EAAEgQ,EAAErM,EAAEsM,IAAI,CAAC,IAAI1O,EAAEvB,EAAE6B,OAAO,GAAG,OAAON,EAAE,MAAM,IAAIC,EAAED,EAAEkzN,UAAU,GAAG,OAAOjzN,EAAE,CAAY,GAAG,QAAdmC,EAAEpC,EAAEM,QAAmB,CAAC7B,EAAE2D,EAAE,SAAS,MAAM,GAAGpC,EAAEmvG,QAAQlvG,EAAEkvG,MAAM,CAAC,IAAIlvG,EAAED,EAAEmvG,MAAMlvG,GAAG,CAAC,GAAGA,IAAIxB,EAAE,OAAO60N,GAAGtzN,GAAGyO,EAAE,GAAGxO,IAAImC,EAAE,OAAOkxN,GAAGtzN,GAAG0O,EAAEzO,EAAEA,EAAEszN,QAAQ,MAAMrpN,MAAMtD,EAAE,MAAO,GAAGnI,EAAE6B,SAAS8B,EAAE9B,OAAO7B,EAAEuB,EAAEoC,EAAEnC,MAAM,CAAC,IAAI,IAAIoC,GAAE,EAAG6mI,EAAElpI,EAAEmvG,MAAM+5B,GAAG,CAAC,GAAGA,IAAIzqI,EAAE,CAAC4D,GAAE,EAAG5D,EAAEuB,EAAEoC,EAAEnC,EAAE,MAAM,GAAGipI,IAAI9mI,EAAE,CAACC,GAAE,EAAGD,EAAEpC,EAAEvB,EAAEwB,EAAE,MAAMipI,EAAEA,EAAEqqF,QAAQ,IAAIlxN,EAAE,CAAC,IAAI6mI,EAAEjpI,EAAEkvG,MAAM+5B,GAAG,CAAC,GAAGA,IAC5fzqI,EAAE,CAAC4D,GAAE,EAAG5D,EAAEwB,EAAEmC,EAAEpC,EAAE,MAAM,GAAGkpI,IAAI9mI,EAAE,CAACC,GAAE,EAAGD,EAAEnC,EAAExB,EAAEuB,EAAE,MAAMkpI,EAAEA,EAAEqqF,QAAQ,IAAIlxN,EAAE,MAAM6H,MAAMtD,EAAE,OAAQ,GAAGnI,EAAEy0N,YAAY9wN,EAAE,MAAM8H,MAAMtD,EAAE,MAAO,GAAG,IAAInI,EAAEs8J,IAAI,MAAM7wJ,MAAMtD,EAAE,MAAM,OAAOnI,EAAEmzN,UAAUriN,UAAU9Q,EAAEgQ,EAAEC,EAAmB8kN,CAAG/kN,IAAOA,EAAE,OAAO,KAAK,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAG,IAAIC,EAAEqsJ,KAAK,IAAIrsJ,EAAEqsJ,IAAI,OAAOrsJ,EAAE,GAAGA,EAAEygG,MAAMzgG,EAAEygG,MAAM7uG,OAAOoO,EAAEA,EAAEA,EAAEygG,UAAU,CAAC,GAAGzgG,IAAID,EAAE,MAAM,MAAMC,EAAE6kN,SAAS,CAAC,IAAI7kN,EAAEpO,QAAQoO,EAAEpO,SAASmO,EAAE,OAAO,KAAKC,EAAEA,EAAEpO,OAAOoO,EAAE6kN,QAAQjzN,OAAOoO,EAAEpO,OAAOoO,EAAEA,EAAE6kN,SAAS,OAAO,KAC5c,SAASE,GAAGhlN,EAAEC,GAAG,IAAI,IAAIjQ,EAAEgQ,EAAEykN,UAAU,OAAOxkN,GAAG,CAAC,GAAGA,IAAID,GAAGC,IAAIjQ,EAAE,OAAM,EAAGiQ,EAAEA,EAAEpO,OAAO,OAAM,EAAG,IAAIozN,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIrvM,IAAIsvM,GAAG,IAAItvM,IAAIg9H,GAAG,GAAGuyE,GAAG,6PAA6P9wN,MAAM,KACrb,SAAS+wN,GAAG7lN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,MAAM,CAACu0N,UAAU9lN,EAAE+lN,aAAa9lN,EAAE+lN,iBAAmB,GAAFh2N,EAAK20L,YAAYpzL,EAAE00N,iBAAiB,CAACtyN,IAAI,SAASuyN,GAAGlmN,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAWulN,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGS,OAAOlmN,EAAEmmN,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBT,GAAGQ,OAAOlmN,EAAEmmN,YAC3Z,SAASC,GAAGrmN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG,OAAG,OAAOwO,GAAGA,EAAE2kL,cAAcnzL,GAASwO,EAAE6lN,GAAG5lN,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG,OAAOyO,IAAY,QAARA,EAAEijN,GAAGjjN,KAAailN,GAAGjlN,IAAID,IAAEA,EAAEgmN,kBAAkBryN,EAAEsM,EAAED,EAAEimN,iBAAiB,OAAO10N,IAAI,IAAI0O,EAAExC,QAAQlM,IAAI0O,EAAErS,KAAK2D,GAAUyO,GAE9M,SAASsmN,GAAGtmN,GAAG,IAAIC,EAAEsmN,GAAGvmN,EAAE1P,QAAQ,GAAG,OAAO2P,EAAE,CAAC,IAAIjQ,EAAEw0N,GAAGvkN,GAAG,GAAG,OAAOjQ,EAAE,GAAW,MAARiQ,EAAEjQ,EAAEs8J,MAAY,GAAW,QAARrsJ,EAAEykN,GAAG10N,IAAmH,OAAtGgQ,EAAE8lN,UAAU7lN,OAAEmlN,GAAGplN,EAAEwmN,cAAa,WAAWz2H,EAAE02H,yBAAyBzmN,EAAE0mN,UAAS,WAAWvB,GAAGn1N,cAAoB,GAAG,IAAIiQ,GAAGjQ,EAAEmzN,UAAUwD,QAA8D,YAArD3mN,EAAE8lN,UAAU,IAAI91N,EAAEs8J,IAAIt8J,EAAEmzN,UAAUyD,cAAc,MAAa5mN,EAAE8lN,UAAU,KAC1U,SAASe,GAAG7mN,GAAG,GAAG,OAAOA,EAAE8lN,UAAU,OAAM,EAAG,IAAI,IAAI7lN,EAAED,EAAEimN,iBAAiB,EAAEhmN,EAAEvT,QAAQ,CAAC,IAAIsD,EAAE82N,GAAG9mN,EAAE+lN,aAAa/lN,EAAEgmN,iBAAiB/lN,EAAE,GAAGD,EAAE2kL,aAAa,GAAG,OAAO30L,EAAE,OAAe,QAARiQ,EAAEijN,GAAGlzN,KAAak1N,GAAGjlN,GAAGD,EAAE8lN,UAAU91N,GAAE,EAAGiQ,EAAEgmD,QAAQ,OAAM,EAAG,SAAS8gK,GAAG/mN,EAAEC,EAAEjQ,GAAG62N,GAAG7mN,IAAIhQ,EAAEm2N,OAAOlmN,GACzQ,SAAS+mN,KAAK,IAAI3B,IAAG,EAAG,EAAEC,GAAG54N,QAAQ,CAAC,IAAIsT,EAAEslN,GAAG,GAAG,GAAG,OAAOtlN,EAAE8lN,UAAU,CAAmB,QAAlB9lN,EAAEkjN,GAAGljN,EAAE8lN,aAAqBb,GAAGjlN,GAAG,MAAM,IAAI,IAAIC,EAAED,EAAEimN,iBAAiB,EAAEhmN,EAAEvT,QAAQ,CAAC,IAAIsD,EAAE82N,GAAG9mN,EAAE+lN,aAAa/lN,EAAEgmN,iBAAiB/lN,EAAE,GAAGD,EAAE2kL,aAAa,GAAG,OAAO30L,EAAE,CAACgQ,EAAE8lN,UAAU91N,EAAE,MAAMiQ,EAAEgmD,QAAQ,OAAOjmD,EAAE8lN,WAAWR,GAAGr/J,QAAQ,OAAOs/J,IAAIsB,GAAGtB,MAAMA,GAAG,MAAM,OAAOC,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAMC,GAAGziN,QAAQ8jN,IAAIpB,GAAG1iN,QAAQ8jN,IACrZ,SAASE,GAAGjnN,EAAEC,GAAGD,EAAE8lN,YAAY7lN,IAAID,EAAE8lN,UAAU,KAAKT,KAAKA,IAAG,EAAGt1H,EAAEm3H,0BAA0Bn3H,EAAEo3H,wBAAwBH,MACrH,SAASI,GAAGpnN,GAAG,SAASC,EAAEA,GAAG,OAAOgnN,GAAGhnN,EAAED,GAAG,GAAG,EAAEslN,GAAG54N,OAAO,CAACu6N,GAAG3B,GAAG,GAAGtlN,GAAG,IAAI,IAAIhQ,EAAE,EAAEA,EAAEs1N,GAAG54N,OAAOsD,IAAI,CAAC,IAAI2D,EAAE2xN,GAAGt1N,GAAG2D,EAAEmyN,YAAY9lN,IAAIrM,EAAEmyN,UAAU,OAA+F,IAAxF,OAAOP,IAAI0B,GAAG1B,GAAGvlN,GAAG,OAAOwlN,IAAIyB,GAAGzB,GAAGxlN,GAAG,OAAOylN,IAAIwB,GAAGxB,GAAGzlN,GAAG0lN,GAAGziN,QAAQhD,GAAG0lN,GAAG1iN,QAAQhD,GAAOjQ,EAAE,EAAEA,EAAEqjJ,GAAG3mJ,OAAOsD,KAAI2D,EAAE0/I,GAAGrjJ,IAAK81N,YAAY9lN,IAAIrM,EAAEmyN,UAAU,MAAM,KAAK,EAAEzyE,GAAG3mJ,QAAiB,QAARsD,EAAEqjJ,GAAG,IAAYyyE,WAAYQ,GAAGt2N,GAAG,OAAOA,EAAE81N,WAAWzyE,GAAGptF,QAC/X,SAASohK,GAAGrnN,EAAEC,GAAG,IAAIjQ,EAAE,GAAkF,OAA/EA,EAAEgQ,EAAE1C,eAAe2C,EAAE3C,cAActN,EAAE,SAASgQ,GAAG,SAASC,EAAEjQ,EAAE,MAAMgQ,GAAG,MAAMC,EAASjQ,EAAE,IAAIs3N,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GACnF,SAASC,GAAG7nN,GAAG,GAAG2nN,GAAG3nN,GAAG,OAAO2nN,GAAG3nN,GAAG,IAAIsnN,GAAGtnN,GAAG,OAAOA,EAAE,IAAYhQ,EAARiQ,EAAEqnN,GAAGtnN,GAAK,IAAIhQ,KAAKiQ,EAAE,GAAGA,EAAEQ,eAAezQ,IAAIA,KAAK43N,GAAG,OAAOD,GAAG3nN,GAAGC,EAAEjQ,GAAG,OAAOgQ,EAA9Xm6M,IAAKyN,GAAGn1N,SAASsK,cAAc,OAAO5K,MAAM,mBAAmBQ,gBAAgB20N,GAAGC,aAAa75E,iBAAiB45E,GAAGE,mBAAmB95E,iBAAiB45E,GAAGG,eAAe/5E,WAAW,oBAAoB/6I,eAAe20N,GAAGI,cAAcrqD,YACxO,IAAIyqD,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,IAAI7xM,IAAI8xM,GAAG,IAAI9xM,IAAI+xM,GAAG,CAAC,QAAQ,QAAQN,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAASI,GAAGroN,EAAEC,GAAG,IAAI,IAAIjQ,EAAE,EAAEA,EAAEgQ,EAAEtT,OAAOsD,GAAG,EAAE,CAAC,IAAI2D,EAAEqM,EAAEhQ,GAAGuB,EAAEyO,EAAEhQ,EAAE,GAAGuB,EAAE,MAAMA,EAAE,GAAG6wD,cAAc7wD,EAAEjD,MAAM,IAAI65N,GAAG3+M,IAAI7V,EAAEsM,GAAGioN,GAAG1+M,IAAI7V,EAAEpC,GAAG0oN,EAAG1oN,EAAE,CAACoC,MAA2B20N,EAAfv4H,EAAEw4H,gBAAkB,IAAIl3N,GAAE,EAC/X,SAASm3N,GAAGxoN,GAAG,GAAG,KAAK,EAAEA,GAAG,OAAO3O,GAAE,GAAG,EAAE,GAAG,KAAK,EAAE2O,GAAG,OAAO3O,GAAE,GAAG,EAAE,GAAG,KAAK,EAAE2O,GAAG,OAAO3O,GAAE,GAAG,EAAE,IAAI4O,EAAE,GAAGD,EAAE,OAAG,IAAIC,GAAS5O,GAAE,GAAG4O,GAAK,KAAO,GAAFD,IAAa3O,GAAE,GAAG,IAAc,KAAX4O,EAAE,IAAID,IAAkB3O,GAAE,GAAG4O,GAAK,KAAO,IAAFD,IAAc3O,GAAE,EAAE,KAAgB,KAAZ4O,EAAE,KAAKD,IAAkB3O,GAAE,EAAE4O,GAAK,KAAO,KAAFD,IAAe3O,GAAE,EAAE,MAAoB,KAAf4O,EAAE,QAAQD,IAAkB3O,GAAE,EAAE4O,GAAkB,KAAhBA,EAAE,SAASD,IAAkB3O,GAAE,EAAE4O,GAAO,SAAFD,GAAkB3O,GAAE,EAAE,UAAY,KAAO,UAAF2O,IAAoB3O,GAAE,EAAE,WAA2B,KAAjB4O,EAAE,UAAUD,IAAkB3O,GAAE,EAAE4O,GAAK,KAAK,WAAWD,IAAU3O,GAAE,EAAE,aACjfA,GAAE,EAAS2O,GACX,SAASyoN,GAAGzoN,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAE0oN,aAAa,GAAG,IAAI14N,EAAE,OAAOqB,GAAE,EAAE,IAAIsC,EAAE,EAAEpC,EAAE,EAAEC,EAAEwO,EAAE2oN,aAAa/0N,EAAEoM,EAAE4oN,eAAenuF,EAAEz6H,EAAE6oN,YAAY,GAAG,IAAIr3N,EAAEmC,EAAEnC,EAAED,EAAEF,GAAE,QAAQ,GAAiB,KAAdG,EAAI,UAAFxB,GAAkB,CAAC,IAAIyW,EAAEjV,GAAGoC,EAAE,IAAI6S,GAAG9S,EAAE60N,GAAG/hN,GAAGlV,EAAEF,IAAS,KAALopI,GAAGjpI,KAAUmC,EAAE60N,GAAG/tF,GAAGlpI,EAAEF,SAAgB,KAAPG,EAAExB,GAAG4D,IAASD,EAAE60N,GAAGh3N,GAAGD,EAAEF,IAAG,IAAIopI,IAAI9mI,EAAE60N,GAAG/tF,GAAGlpI,EAAEF,IAAG,GAAG,IAAIsC,EAAE,OAAO,EAAqC,GAAxBA,EAAE3D,IAAI,GAAjB2D,EAAE,GAAGm1N,GAAGn1N,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAIsM,GAAGA,IAAItM,GAAG,KAAKsM,EAAErM,GAAG,CAAO,GAAN40N,GAAGvoN,GAAM1O,GAAGF,GAAE,OAAO4O,EAAE5O,GAAEE,EAAqB,GAAG,KAAtB0O,EAAED,EAAE+oN,gBAAwB,IAAI/oN,EAAEA,EAAEgpN,cAAc/oN,GAAGtM,EAAE,EAAEsM,GAAc1O,EAAE,IAAbvB,EAAE,GAAG84N,GAAG7oN,IAAUtM,GAAGqM,EAAEhQ,GAAGiQ,IAAI1O,EAAE,OAAOoC,EAC1e,SAASs1N,GAAGjpN,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAE0oN,cAAsC1oN,EAAI,WAAFA,EAAa,WAAW,EAAE,SAASkpN,GAAGlpN,EAAEC,GAAG,OAAOD,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAEmpN,GAAG,IAAIlpN,IAASipN,GAAG,GAAGjpN,GAAGD,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAEmpN,GAAG,KAAKlpN,IAASipN,GAAG,EAAEjpN,GAAGD,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAEmpN,GAAG,MAAMlpN,MAA4B,KAAjBD,EAAEmpN,GAAG,SAASlpN,MAAWD,EAAE,MAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBC,EAAEkpN,GAAG,WAAWlpN,MAAWA,EAAE,WAAWA,EAAE,MAAMxE,MAAMtD,EAAE,IAAI6H,IAAK,SAASmpN,GAAGnpN,GAAG,OAAOA,GAAGA,EAAE,SAASopN,GAAGppN,GAAG,IAAI,IAAIC,EAAE,GAAGjQ,EAAE,EAAE,GAAGA,EAAEA,IAAIiQ,EAAErS,KAAKoS,GAAG,OAAOC,EACrd,SAASopN,GAAGrpN,EAAEC,EAAEjQ,GAAGgQ,EAAE0oN,cAAczoN,EAAE,IAAItM,EAAEsM,EAAE,EAAED,EAAE4oN,gBAAgBj1N,EAAEqM,EAAE6oN,aAAal1N,GAAEqM,EAAEA,EAAEspN,YAAWrpN,EAAE,GAAG6oN,GAAG7oN,IAAQjQ,EAAE,IAAI84N,GAAG3xN,KAAKoyN,MAAMpyN,KAAKoyN,MAAiC,SAAYvpN,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIwpN,GAAGxpN,GAAGypN,GAAG,GAAG,GAAvED,GAAGryN,KAAKi6C,IAAIq4K,GAAGtyN,KAAKuyN,IAAqD,IAAIC,GAAG55H,EAAE65H,8BAA8BC,GAAG95H,EAAE02H,yBAAyBqD,IAAG,EAAG,SAASC,GAAG/pN,EAAEC,EAAEjQ,EAAE2D,GAAGgwN,IAAIF,KAAK,IAAIlyN,EAAEy4N,GAAGx4N,EAAEmyN,GAAGA,IAAG,EAAG,IAAIH,GAAGjyN,EAAEyO,EAAEC,EAAEjQ,EAAE2D,GAAf,SAA2BgwN,GAAGnyN,IAAIqyN,MAAM,SAAShuM,GAAG7V,EAAEC,EAAEjQ,EAAE2D,GAAGk2N,GAAGF,GAAGK,GAAGl+M,KAAK,KAAK9L,EAAEC,EAAEjQ,EAAE2D,IACjb,SAASq2N,GAAGhqN,EAAEC,EAAEjQ,EAAE2D,GAAU,IAAIpC,EAAX,GAAGu4N,GAAU,IAAIv4N,EAAE,KAAO,EAAF0O,KAAO,EAAEqlN,GAAG54N,SAAS,EAAEk5N,GAAGnoN,QAAQuC,GAAGA,EAAE6lN,GAAG,KAAK7lN,EAAEC,EAAEjQ,EAAE2D,GAAG2xN,GAAG13N,KAAKoS,OAAO,CAAC,IAAIxO,EAAEs1N,GAAG9mN,EAAEC,EAAEjQ,EAAE2D,GAAG,GAAG,OAAOnC,EAAED,GAAG20N,GAAGlmN,EAAErM,OAAO,CAAC,GAAGpC,EAAE,CAAC,IAAI,EAAEq0N,GAAGnoN,QAAQuC,GAA+B,OAA3BA,EAAE6lN,GAAGr0N,EAAEwO,EAAEC,EAAEjQ,EAAE2D,QAAG2xN,GAAG13N,KAAKoS,GAAU,GAfhO,SAAYA,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,OAAO0O,GAAG,IAAK,UAAU,OAAOslN,GAAGc,GAAGd,GAAGvlN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,IAAG,EAAG,IAAK,YAAY,OAAOi0N,GAAGa,GAAGb,GAAGxlN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,IAAG,EAAG,IAAK,YAAY,OAAOk0N,GAAGY,GAAGZ,GAAGzlN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,IAAG,EAAG,IAAK,cAAc,IAAIC,EAAED,EAAE60N,UAAkD,OAAxCV,GAAGl8M,IAAIhY,EAAE60N,GAAGX,GAAGp8M,IAAI9X,IAAI,KAAKwO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,KAAU,EAAG,IAAK,oBAAoB,OAAOC,EAAED,EAAE60N,UAAUT,GAAGn8M,IAAIhY,EAAE60N,GAAGV,GAAGr8M,IAAI9X,IAAI,KAAKwO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,KAAI,EAAG,OAAM,EAe9H04N,CAAGz4N,EAAEwO,EAAEC,EAAEjQ,EAAE2D,GAAG,OAAOuyN,GAAGlmN,EAAErM,GAAGu2N,GAAGlqN,EAAEC,EAAEtM,EAAE,KAAK3D,KAC9Q,SAAS82N,GAAG9mN,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEoxN,GAAGhvN,GAAW,GAAG,QAAXpC,EAAEg1N,GAAGh1N,IAAe,CAAC,IAAIC,EAAEgzN,GAAGjzN,GAAG,GAAG,OAAOC,EAAED,EAAE,SAAS,CAAC,IAAIqC,EAAEpC,EAAE86J,IAAI,GAAG,KAAK14J,EAAE,CAAS,GAAG,QAAXrC,EAAEmzN,GAAGlzN,IAAe,OAAOD,EAAEA,EAAE,UAAU,GAAG,IAAIqC,EAAE,CAAC,GAAGpC,EAAE2xN,UAAUwD,QAAQ,OAAO,IAAIn1N,EAAE86J,IAAI96J,EAAE2xN,UAAUyD,cAAc,KAAKr1N,EAAE,UAAUC,IAAID,IAAIA,EAAE,OAAqB,OAAd24N,GAAGlqN,EAAEC,EAAEtM,EAAEpC,EAAEvB,GAAU,KAAK,IAAIm6N,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIrqN,EAAkBrM,EAAhBsM,EAAEmqN,GAAGp6N,EAAEiQ,EAAEvT,OAAS6E,EAAE,UAAU44N,GAAGA,GAAGt8N,MAAMs8N,GAAGrrN,YAAYtN,EAAED,EAAE7E,OAAO,IAAIsT,EAAE,EAAEA,EAAEhQ,GAAGiQ,EAAED,KAAKzO,EAAEyO,GAAGA,KAAK,IAAIpM,EAAE5D,EAAEgQ,EAAE,IAAIrM,EAAE,EAAEA,GAAGC,GAAGqM,EAAEjQ,EAAE2D,KAAKpC,EAAEC,EAAEmC,GAAGA,KAAK,OAAO02N,GAAG94N,EAAEjD,MAAM0R,EAAE,EAAErM,EAAE,EAAEA,OAAE,GAAQ,SAAS42N,GAAGvqN,GAAG,IAAIC,EAAED,EAAE2G,QAA+E,MAAvE,aAAa3G,EAAgB,KAAbA,EAAEA,EAAE0N,WAAgB,KAAKzN,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAAE,SAASwqN,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EACjY,SAASC,GAAG1qN,GAAG,SAASC,EAAEA,EAAEtM,EAAEpC,EAAEC,EAAEoC,GAA6G,IAAI,IAAI5D,KAAlH+B,KAAK44N,WAAW1qN,EAAElO,KAAK64N,YAAYr5N,EAAEQ,KAAKxC,KAAKoE,EAAE5B,KAAK4yL,YAAYnzL,EAAEO,KAAKzB,OAAOsD,EAAE7B,KAAKya,cAAc,KAAkBxM,EAAEA,EAAES,eAAezQ,KAAKiQ,EAAED,EAAEhQ,GAAG+B,KAAK/B,GAAGiQ,EAAEA,EAAEzO,GAAGA,EAAExB,IAAgI,OAA5H+B,KAAK84N,oBAAoB,MAAMr5N,EAAE0hE,iBAAiB1hE,EAAE0hE,kBAAiB,IAAK1hE,EAAEs5N,aAAaN,GAAGC,GAAG14N,KAAKg5N,qBAAqBN,GAAU14N,KAC1E,OAD+EiqB,EAAE/b,EAAE7R,UAAU,CAAC4Y,eAAe,WAAWjV,KAAKmhE,kBAAiB,EAAG,IAAIlzD,EAAEjO,KAAK4yL,YAAY3kL,IAAIA,EAAEgH,eAAehH,EAAEgH,iBAAiB,mBAAmBhH,EAAE8qN,cAC7e9qN,EAAE8qN,aAAY,GAAI/4N,KAAK84N,mBAAmBL,KAAKtsI,gBAAgB,WAAW,IAAIl+E,EAAEjO,KAAK4yL,YAAY3kL,IAAIA,EAAEk+E,gBAAgBl+E,EAAEk+E,kBAAkB,mBAAmBl+E,EAAEgrN,eAAehrN,EAAEgrN,cAAa,GAAIj5N,KAAKg5N,qBAAqBP,KAAKxgH,QAAQ,aAAaihH,aAAaT,KAAYvqN,EAChR,IAAoLirN,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAE97E,WAAW,EAAE+7E,UAAU,SAASxrN,GAAG,OAAOA,EAAEwrN,WAAWhxN,KAAKqiC,OAAOq2B,iBAAiB,EAAEu4J,UAAU,GAAGC,GAAGhB,GAAGW,IAAIM,GAAG3vM,EAAE,GAAGqvM,GAAG,CAACzzL,KAAK,EAAEmqF,OAAO,IAAI6pG,GAAGlB,GAAGiB,IAAaE,GAAG7vM,EAAE,GAAG2vM,GAAG,CAACG,QAAQ,EAAEC,QAAQ,EAAEj+H,QAAQ,EAAEC,QAAQ,EAAE1hF,MAAM,EAAEC,MAAM,EAAElF,QAAQ,EAAEqG,SAAS,EAAEpG,OAAO,EAAEC,QAAQ,EAAE0kN,iBAAiBC,GAAGp2K,OAAO,EAAEq2K,QAAQ,EAAEC,cAAc,SAASnsN,GAAG,YAAO,IAASA,EAAEmsN,cAAcnsN,EAAEosN,cAAcpsN,EAAE4iN,WAAW5iN,EAAEqsN,UAAUrsN,EAAEosN,YAAYpsN,EAAEmsN,eAAeG,UAAU,SAAStsN,GAAG,MAAG,cAC3eA,EAASA,EAAEssN,WAAUtsN,IAAIorN,KAAKA,IAAI,cAAcprN,EAAEzQ,MAAM27N,GAAGlrN,EAAE8rN,QAAQV,GAAGU,QAAQX,GAAGnrN,EAAE+rN,QAAQX,GAAGW,SAASZ,GAAGD,GAAG,EAAEE,GAAGprN,GAAUkrN,KAAIqB,UAAU,SAASvsN,GAAG,MAAM,cAAcA,EAAEA,EAAEusN,UAAUpB,MAAMqB,GAAG9B,GAAGmB,IAAiCY,GAAG/B,GAA7B1uM,EAAE,GAAG6vM,GAAG,CAACx7H,aAAa,KAA4Cq8H,GAAGhC,GAA9B1uM,EAAE,GAAG2vM,GAAG,CAACQ,cAAc,KAA0EQ,GAAGjC,GAA5D1uM,EAAE,GAAGqvM,GAAG,CAACuB,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcC,GAAG/wM,EAAE,GAAGqvM,GAAG,CAAC9gG,cAAc,SAASvqH,GAAG,MAAM,kBAAkBA,EAAEA,EAAEuqH,cAAc53H,OAAO43H,iBAAiByiG,GAAGtC,GAAGqC,IAAyBE,GAAGvC,GAArB1uM,EAAE,GAAGqvM,GAAG,CAAC3qN,KAAK,KAAcwsN,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAK38C,KAAK,cAAc48C,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGpuN,GAAG,IAAIC,EAAElO,KAAK4yL,YAAY,OAAO1kL,EAAE+rN,iBAAiB/rN,EAAE+rN,iBAAiBhsN,MAAIA,EAAE+tN,GAAG/tN,OAAMC,EAAED,GAAM,SAASisN,KAAK,OAAOmC,GAC9R,IAAIC,GAAGryM,EAAE,GAAG2vM,GAAG,CAAC97N,IAAI,SAASmQ,GAAG,GAAGA,EAAEnQ,IAAI,CAAC,IAAIoQ,EAAEitN,GAAGltN,EAAEnQ,MAAMmQ,EAAEnQ,IAAI,GAAG,iBAAiBoQ,EAAE,OAAOA,EAAE,MAAM,aAAaD,EAAEzQ,KAAc,MAARyQ,EAAEuqN,GAAGvqN,IAAU,QAAQoC,OAAOmF,aAAavH,GAAI,YAAYA,EAAEzQ,MAAM,UAAUyQ,EAAEzQ,KAAKu+N,GAAG9tN,EAAE2G,UAAU,eAAe,IAAIq9B,KAAK,EAAEmvB,SAAS,EAAE/rD,QAAQ,EAAEqG,SAAS,EAAEpG,OAAO,EAAEC,QAAQ,EAAE6gH,OAAO,EAAEv/F,OAAO,EAAEojM,iBAAiBC,GAAGv+M,SAAS,SAAS1N,GAAG,MAAM,aAAaA,EAAEzQ,KAAKg7N,GAAGvqN,GAAG,GAAG2G,QAAQ,SAAS3G,GAAG,MAAM,YAAYA,EAAEzQ,MAAM,UAAUyQ,EAAEzQ,KAAKyQ,EAAE2G,QAAQ,GAAGD,MAAM,SAAS1G,GAAG,MAAM,aAC7eA,EAAEzQ,KAAKg7N,GAAGvqN,GAAG,YAAYA,EAAEzQ,MAAM,UAAUyQ,EAAEzQ,KAAKyQ,EAAE2G,QAAQ,KAAK2nN,GAAG5D,GAAG2D,IAAiIE,GAAG7D,GAA7H1uM,EAAE,GAAG6vM,GAAG,CAACzF,UAAU,EAAEn0N,MAAM,EAAEoB,OAAO,EAAEm7N,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGrE,GAArH1uM,EAAE,GAAG2vM,GAAG,CAAC78E,QAAQ,EAAEi2C,cAAc,EAAEoC,eAAe,EAAE9/K,OAAO,EAAEC,QAAQ,EAAEF,QAAQ,EAAEqG,SAAS,EAAEu+M,iBAAiBC,MAA0E+C,GAAGtE,GAA3D1uM,EAAE,GAAGqvM,GAAG,CAACruB,aAAa,EAAE6vB,YAAY,EAAEC,cAAc,KAAcmC,GAAGjzM,EAAE,GAAG6vM,GAAG,CAACxoF,OAAO,SAASrjI,GAAG,MAAM,WAAWA,EAAEA,EAAEqjI,OAAO,gBAAgBrjI,GAAGA,EAAEkvN,YAAY,GAClf5rF,OAAO,SAAStjI,GAAG,MAAM,WAAWA,EAAEA,EAAEsjI,OAAO,gBAAgBtjI,GAAGA,EAAEmvN,YAAY,eAAenvN,GAAGA,EAAEovN,WAAW,GAAGC,OAAO,EAAEC,UAAU,IAAIC,GAAG7E,GAAGuE,IAAIO,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGtV,GAAI,qBAAqBxnN,OAAO+8N,GAAG,KAAKvV,GAAI,iBAAiB1nN,WAAWi9N,GAAGj9N,SAASk9N,cAAc,IAAIC,GAAGzV,GAAI,cAAcxnN,SAAS+8N,GAAGG,GAAG1V,KAAMsV,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAG1tN,OAAOmF,aAAa,IAAIwoN,IAAG,EAC1W,SAASC,GAAGhwN,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIwvN,GAAG/xN,QAAQwC,EAAE0G,SAAS,IAAK,UAAU,OAAO,MAAM1G,EAAE0G,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASspN,GAAGjwN,GAAc,MAAM,kBAAjBA,EAAEA,EAAE+hH,SAAkC,SAAS/hH,EAAEA,EAAEU,KAAK,KAAK,IAAIwvN,IAAG,EAE9Q,IAAIC,GAAG,CAACtjM,OAAM,EAAGhP,MAAK,EAAGuyM,UAAS,EAAG,kBAAiB,EAAGrhN,OAAM,EAAGuT,OAAM,EAAG+tM,QAAO,EAAGpzC,UAAS,EAAGt4K,OAAM,EAAG3M,QAAO,EAAGs4N,KAAI,EAAGvxN,MAAK,EAAGygC,MAAK,EAAG5mB,KAAI,EAAGqK,MAAK,GAAI,SAASstM,GAAGvwN,GAAG,IAAIC,EAAED,GAAGA,EAAEpE,UAAUoE,EAAEpE,SAAS0B,cAAc,MAAM,UAAU2C,IAAIkwN,GAAGnwN,EAAEzQ,MAAM,aAAa0Q,EAAQ,SAASuwN,GAAGxwN,EAAEC,EAAEjQ,EAAE2D,GAAG0vN,GAAG1vN,GAAsB,GAAnBsM,EAAEwwN,GAAGxwN,EAAE,aAAgBvT,SAASsD,EAAE,IAAI07N,GAAG,WAAW,SAAS,KAAK17N,EAAE2D,GAAGqM,EAAEpS,KAAK,CAACwY,MAAMpW,EAAEyqH,UAAUx6G,KAAK,IAAIywN,GAAG,KAAKC,GAAG,KAAK,SAASzhD,GAAGlvK,GAAG4wN,GAAG5wN,EAAE,GAAG,SAAS6wN,GAAG7wN,GAAe,GAAGw9M,EAATsT,GAAG9wN,IAAY,OAAOA,EACne,SAAS+wN,GAAG/wN,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,EAAE,IAAI+wN,IAAG,EAAG,GAAG7W,EAAG,CAAC,IAAI8W,GAAG,GAAG9W,EAAG,CAAC,IAAI+W,GAAG,YAAYz+N,SAAS,IAAIy+N,GAAG,CAAC,IAAIC,GAAG1+N,SAASsK,cAAc,OAAOo0N,GAAGjrI,aAAa,UAAU,WAAWgrI,GAAG,oBAAoBC,GAAGC,QAAQH,GAAGC,QAAQD,IAAG,EAAGD,GAAGC,MAAMx+N,SAASk9N,cAAc,EAAEl9N,SAASk9N,cAAc,SAAS0B,KAAKX,KAAKA,GAAGY,YAAY,mBAAmBC,IAAIZ,GAAGD,GAAG,MAAM,SAASa,GAAGvxN,GAAG,GAAG,UAAUA,EAAEg9L,cAAc6zB,GAAGF,IAAI,CAAC,IAAI1wN,EAAE,GAAyB,GAAtBuwN,GAAGvwN,EAAE0wN,GAAG3wN,EAAE2iN,GAAG3iN,IAAIA,EAAEkvK,GAAMy0C,GAAG3jN,EAAEC,OAAO,CAAC0jN,IAAG,EAAG,IAAIJ,GAAGvjN,EAAEC,GAAT,QAAoB0jN,IAAG,EAAGE,QAC3e,SAAS2N,GAAGxxN,EAAEC,EAAEjQ,GAAG,YAAYgQ,GAAGqxN,KAAUV,GAAG3gO,GAAR0gO,GAAGzwN,GAAUwxN,YAAY,mBAAmBF,KAAK,aAAavxN,GAAGqxN,KAAK,SAASK,GAAG1xN,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAO6wN,GAAGF,IAAI,SAASgB,GAAG3xN,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAO6wN,GAAG5wN,GAAG,SAAS2xN,GAAG5xN,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAO6wN,GAAG5wN,GAAmE,IAAI4xN,GAAG,oBAAoB1jO,OAAOu0N,GAAGv0N,OAAOu0N,GAA5G,SAAY1iN,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,GAAoD6xN,GAAG3jO,OAAOC,UAAUqS,eAC7a,SAASsxN,GAAG/xN,EAAEC,GAAG,GAAG4xN,GAAG7xN,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIjQ,EAAE7B,OAAOqS,KAAKR,GAAGrM,EAAExF,OAAOqS,KAAKP,GAAG,GAAGjQ,EAAEtD,SAASiH,EAAEjH,OAAO,OAAM,EAAG,IAAIiH,EAAE,EAAEA,EAAE3D,EAAEtD,OAAOiH,IAAI,IAAIm+N,GAAGrkO,KAAKwS,EAAEjQ,EAAE2D,MAAMk+N,GAAG7xN,EAAEhQ,EAAE2D,IAAIsM,EAAEjQ,EAAE2D,KAAK,OAAM,EAAG,OAAM,EAAG,SAASq+N,GAAGhyN,GAAG,KAAKA,GAAGA,EAAEsqC,YAAYtqC,EAAEA,EAAEsqC,WAAW,OAAOtqC,EAClU,SAASiyN,GAAGjyN,EAAEC,GAAG,IAAwBtM,EAApB3D,EAAEgiO,GAAGhyN,GAAO,IAAJA,EAAE,EAAYhQ,GAAG,CAAC,GAAG,IAAIA,EAAE2E,SAAS,CAA0B,GAAzBhB,EAAEqM,EAAEhQ,EAAE8O,YAAYpS,OAAUsT,GAAGC,GAAGtM,GAAGsM,EAAE,MAAM,CAAC3G,KAAKtJ,EAAEmM,OAAO8D,EAAED,GAAGA,EAAErM,EAAEqM,EAAE,CAAC,KAAKhQ,GAAG,CAAC,GAAGA,EAAEkiO,YAAY,CAACliO,EAAEA,EAAEkiO,YAAY,MAAMlyN,EAAEhQ,EAAEA,EAAEwE,WAAWxE,OAAE,EAAOA,EAAEgiO,GAAGhiO,IAAI,SAASmiO,GAAGnyN,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAErL,YAAYsL,GAAG,IAAIA,EAAEtL,SAASw9N,GAAGnyN,EAAEC,EAAEzL,YAAY,aAAawL,EAAEA,EAAE5K,SAAS6K,KAAGD,EAAEoyN,4BAAwD,GAA7BpyN,EAAEoyN,wBAAwBnyN,MAClZ,SAASoyN,KAAK,IAAI,IAAIryN,EAAErN,OAAOsN,EAAEw9M,IAAKx9M,aAAaD,EAAEsyN,mBAAmB,CAAC,IAAI,IAAItiO,EAAE,kBAAkBiQ,EAAEwtJ,cAAct6F,SAASF,KAAK,MAAMt/D,GAAG3D,GAAE,EAAG,IAAGA,EAAyB,MAAMiQ,EAAEw9M,GAA/Bz9M,EAAEC,EAAEwtJ,eAAgCh7J,UAAU,OAAOwN,EAAE,SAASsyN,GAAGvyN,GAAG,IAAIC,EAAED,GAAGA,EAAEpE,UAAUoE,EAAEpE,SAAS0B,cAAc,OAAO2C,IAAI,UAAUA,IAAI,SAASD,EAAEzQ,MAAM,WAAWyQ,EAAEzQ,MAAM,QAAQyQ,EAAEzQ,MAAM,QAAQyQ,EAAEzQ,MAAM,aAAayQ,EAAEzQ,OAAO,aAAa0Q,GAAG,SAASD,EAAEwyN,iBACxZ,IAAIC,GAAGtY,GAAI,iBAAiB1nN,UAAU,IAAIA,SAASk9N,aAAa+C,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAG9yN,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAE3D,EAAE2C,SAAS3C,EAAEA,EAAEyC,SAAS,IAAIzC,EAAE2E,SAAS3E,EAAEA,EAAEmuN,cAAc0U,IAAI,MAAMH,IAAIA,KAAKjV,EAAG9pN,KAAU,mBAALA,EAAE++N,KAAyBH,GAAG5+N,GAAGA,EAAE,CAACgU,MAAMhU,EAAEqR,eAAeH,IAAIlR,EAAEsR,cAAuFtR,EAAE,CAACo/N,YAA3Ep/N,GAAGA,EAAEwqN,eAAexqN,EAAEwqN,cAAc6U,aAAargO,QAAQ2J,gBAA+By2N,WAAWE,aAAat/N,EAAEs/N,aAAa9iC,UAAUx8L,EAAEw8L,UAAU+iC,YAAYv/N,EAAEu/N,aAAcN,IAAIb,GAAGa,GAAGj/N,KAAKi/N,GAAGj/N,EAAsB,GAApBA,EAAE88N,GAAGkC,GAAG,aAAgBjmO,SAASuT,EAAE,IAAIyrN,GAAG,WAAW,SAAS,KAAKzrN,EAAEjQ,GAAGgQ,EAAEpS,KAAK,CAACwY,MAAMnG,EAAEw6G,UAAU9mH,IAAIsM,EAAE3P,OAAOoiO,MACjfrK,GAAG,mjBAAmjBvzN,MAAM,KAC5jB,GAAGuzN,GAAG,oRAAoRvzN,MAAM,KAAK,GAAGuzN,GAAGD,GAAG,GAAG,IAAI,IAAI+K,GAAG,qFAAqFr+N,MAAM,KAAKs+N,GAAG,EAAEA,GAAGD,GAAGzmO,OAAO0mO,KAAKjL,GAAG3+M,IAAI2pN,GAAGC,IAAI,GAAGlZ,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEnlN,MAAM,MAAMmlN,EAAG,WAAW,uFAAuFnlN,MAAM,MAAMmlN,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2DnlN,MAAM,MAC5fmlN,EAAG,qBAAqB,6DAA6DnlN,MAAM,MAAMmlN,EAAG,sBAAsB,8DAA8DnlN,MAAM,MAAM,IAAIu+N,GAAG,sNAAsNv+N,MAAM,KAAKw+N,GAAG,IAAI5mI,IAAI,0CAA0C53F,MAAM,KAAKhF,OAAOujO,KACnf,SAASE,GAAGvzN,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEqM,EAAEzQ,MAAM,gBAAgByQ,EAAEwM,cAAcxc,EA/CjE,SAAYgQ,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,EAAEoC,EAAE6mI,EAAEh0H,GAA4B,GAAzB89M,GAAGlpN,MAAMtJ,KAAK7C,WAAcg1N,GAAG,CAAC,IAAGA,GAAgC,MAAMzoN,MAAMtD,EAAE,MAA1C,IAAIoyE,EAAE45I,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAG95I,IA+CjEipJ,CAAG7/N,EAAEsM,OAAE,EAAOD,GAAGA,EAAEwM,cAAc,KACpG,SAASokN,GAAG5wN,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIjQ,EAAE,EAAEA,EAAEgQ,EAAEtT,OAAOsD,IAAI,CAAC,IAAI2D,EAAEqM,EAAEhQ,GAAGuB,EAAEoC,EAAEyS,MAAMzS,EAAEA,EAAE8mH,UAAUz6G,EAAE,CAAC,IAAIxO,OAAE,EAAO,GAAGyO,EAAE,IAAI,IAAIrM,EAAED,EAAEjH,OAAO,EAAE,GAAGkH,EAAEA,IAAI,CAAC,IAAI6mI,EAAE9mI,EAAEC,GAAG6S,EAAEg0H,EAAEtqI,SAASo6E,EAAEkwD,EAAEjuH,cAA2B,GAAbiuH,EAAEA,EAAEp7H,SAAYoH,IAAIjV,GAAGD,EAAEw5N,uBAAuB,MAAM/qN,EAAEuzN,GAAGhiO,EAAEkpI,EAAElwD,GAAG/4E,EAAEiV,OAAO,IAAI7S,EAAE,EAAEA,EAAED,EAAEjH,OAAOkH,IAAI,CAAoD,GAA5C6S,GAAPg0H,EAAE9mI,EAAEC,IAAOzD,SAASo6E,EAAEkwD,EAAEjuH,cAAciuH,EAAEA,EAAEp7H,SAAYoH,IAAIjV,GAAGD,EAAEw5N,uBAAuB,MAAM/qN,EAAEuzN,GAAGhiO,EAAEkpI,EAAElwD,GAAG/4E,EAAEiV,IAAI,GAAG29M,GAAG,MAAMpkN,EAAEqkN,GAAGD,IAAG,EAAGC,GAAG,KAAKrkN,EAC1a,SAASs3M,GAAEt3M,EAAEC,GAAG,IAAIjQ,EAAEyjO,GAAGxzN,GAAGtM,EAAEqM,EAAE,WAAWhQ,EAAEojH,IAAIz/G,KAAK+/N,GAAGzzN,EAAED,EAAE,GAAE,GAAIhQ,EAAE+E,IAAIpB,IAAI,IAAIggO,GAAG,kBAAkBx8N,KAAKklH,SAAShuH,SAAS,IAAIC,MAAM,GAAG,SAASslO,GAAG5zN,GAAGA,EAAE2zN,MAAM3zN,EAAE2zN,KAAI,EAAG3Z,EAAG/2M,SAAQ,SAAShD,GAAGqzN,GAAGlgH,IAAInzG,IAAI4zN,GAAG5zN,GAAE,EAAGD,EAAE,MAAM6zN,GAAG5zN,GAAE,EAAGD,EAAE,UACtO,SAAS6zN,GAAG7zN,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAE,EAAErC,UAAUxC,aAAQ,IAASwC,UAAU,GAAGA,UAAU,GAAG,EAAEsC,EAAExB,EAA6D,GAA3D,oBAAoBgQ,GAAG,IAAIhQ,EAAE2E,WAAWnD,EAAExB,EAAEmuN,eAAkB,OAAOxqN,IAAIsM,GAAGqzN,GAAGlgH,IAAIpzG,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAOzO,GAAG,EAAEC,EAAEmC,EAAE,IAAIC,EAAE6/N,GAAGjiO,GAAGipI,EAAEz6H,EAAE,MAAMC,EAAE,UAAU,UAAUrM,EAAEw/G,IAAIqnB,KAAKx6H,IAAI1O,GAAG,GAAGmiO,GAAGliO,EAAEwO,EAAEzO,EAAE0O,GAAGrM,EAAEmB,IAAI0lI,IAClS,SAASi5F,GAAG1zN,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAE42N,GAAG7+M,IAAIrJ,GAAG,YAAO,IAAS1O,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAEw4N,GAAG,MAAM,KAAK,EAAEx4N,EAAEskB,GAAG,MAAM,QAAQtkB,EAAEy4N,GAAGh6N,EAAEuB,EAAEua,KAAK,KAAK7L,EAAEjQ,EAAEgQ,GAAGzO,OAAE,GAAQwyN,IAAI,eAAe9jN,GAAG,cAAcA,GAAG,UAAUA,IAAI1O,GAAE,GAAIoC,OAAE,IAASpC,EAAEyO,EAAET,iBAAiBU,EAAEjQ,EAAE,CAACo+K,SAAQ,EAAG5+B,QAAQj+I,IAAIyO,EAAET,iBAAiBU,EAAEjQ,GAAE,QAAI,IAASuB,EAAEyO,EAAET,iBAAiBU,EAAEjQ,EAAE,CAACw/I,QAAQj+I,IAAIyO,EAAET,iBAAiBU,EAAEjQ,GAAE,GACpW,SAASk6N,GAAGlqN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,IAAIC,EAAEmC,EAAE,GAAG,KAAO,EAAFsM,IAAM,KAAO,EAAFA,IAAM,OAAOtM,EAAEqM,EAAE,OAAO,CAAC,GAAG,OAAOrM,EAAE,OAAO,IAAIC,EAAED,EAAE24J,IAAI,GAAG,IAAI14J,GAAG,IAAIA,EAAE,CAAC,IAAI6mI,EAAE9mI,EAAEwvN,UAAUyD,cAAc,GAAGnsF,IAAIlpI,GAAG,IAAIkpI,EAAE9lI,UAAU8lI,EAAEjmI,aAAajD,EAAE,MAAM,GAAG,IAAIqC,EAAE,IAAIA,EAAED,EAAE9B,OAAO,OAAO+B,GAAG,CAAC,IAAI6S,EAAE7S,EAAE04J,IAAI,IAAG,IAAI7lJ,GAAG,IAAIA,MAAKA,EAAE7S,EAAEuvN,UAAUyD,iBAAkBr1N,GAAG,IAAIkV,EAAE9R,UAAU8R,EAAEjS,aAAajD,GAAE,OAAOqC,EAAEA,EAAE/B,OAAO,KAAK,OAAO4oI,GAAG,CAAS,GAAG,QAAX7mI,EAAE2yN,GAAG9rF,IAAe,OAAe,GAAG,KAAXh0H,EAAE7S,EAAE04J,MAAc,IAAI7lJ,EAAE,CAAC9S,EAAEnC,EAAEoC,EAAE,SAASoM,EAAEy6H,EAAEA,EAAEjmI,YAAYb,EAAEA,EAAE9B,QAvD7c,SAAYmO,EAAEC,EAAEjQ,GAAG,GAAG4zN,GAAG,OAAO5jN,EAAEC,EAAEjQ,GAAG4zN,IAAG,EAAG,IAAWF,GAAG1jN,EAAEC,EAAEjQ,GAAlB,QAA6B4zN,IAAG,EAAGC,MAuDoYiQ,EAAG,WAAW,IAAIngO,EAAEnC,EAAED,EAAEoxN,GAAG3yN,GAAG4D,EAAE,GACpfoM,EAAE,CAAC,IAAIy6H,EAAEytF,GAAG5+M,IAAItJ,GAAG,QAAG,IAASy6H,EAAE,CAAC,IAAIh0H,EAAEilN,GAAGxzN,EAAE8H,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIuqN,GAAGv6N,GAAG,MAAMgQ,EAAE,IAAK,UAAU,IAAK,QAAQyG,EAAE6nN,GAAG,MAAM,IAAK,UAAUp2N,EAAE,QAAQuO,EAAEimN,GAAG,MAAM,IAAK,WAAWx0N,EAAE,OAAOuO,EAAEimN,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYjmN,EAAEimN,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI18N,EAAE6lD,OAAO,MAAM71C,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcyG,EAAE+lN,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO/lN,EAC1iBgmN,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAahmN,EAAEsoN,GAAG,MAAM,KAAKjH,GAAG,KAAKC,GAAG,KAAKC,GAAGvhN,EAAEkmN,GAAG,MAAM,KAAK1E,GAAGxhN,EAAEuoN,GAAG,MAAM,IAAK,SAASvoN,EAAEmlN,GAAG,MAAM,IAAK,QAAQnlN,EAAE8oN,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQ9oN,EAAEumN,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYvmN,EAAE8nN,GAAG,IAAIprL,EAAE,KAAO,EAAFljC,GAAKy2M,GAAGvzK,GAAG,WAAWnjC,EAAEw2M,EAAErzK,EAAE,OAAOs3F,EAAEA,EAAE,UAAU,KAAKA,EAAEt3F,EAAE,GAAG,IAAI,IAAQmzK,EAAJ9uM,EAAE7T,EAAI,OAC/e6T,GAAG,CAAK,IAAI4pH,GAARklF,EAAE9uM,GAAU27M,UAAsF,GAA5E,IAAI7M,EAAEhqD,KAAK,OAAOl7B,IAAIklF,EAAEllF,EAAE,OAAOolF,IAAc,OAAVplF,EAAE0yF,GAAGt8M,EAAEgvM,KAAYrzK,EAAEv1C,KAAKmmO,GAAGvsN,EAAE4pH,EAAEklF,MAASI,EAAE,MAAMlvM,EAAEA,EAAE3V,OAAO,EAAEsxC,EAAEz2C,SAAS+tI,EAAE,IAAIh0H,EAAEg0H,EAAEviI,EAAE,KAAKlI,EAAEuB,GAAGqC,EAAEhG,KAAK,CAACwY,MAAMq0H,EAAEhgB,UAAUt3E,MAAM,GAAG,KAAO,EAAFljC,GAAK,CAA4E,GAAnCwG,EAAE,aAAazG,GAAG,eAAeA,KAAtEy6H,EAAE,cAAcz6H,GAAG,gBAAgBA,IAA2C,KAAO,GAAFC,MAAQ/H,EAAElI,EAAEm8N,eAAen8N,EAAEo8N,eAAe7F,GAAGruN,KAAIA,EAAE87N,OAAgBvtN,GAAGg0H,KAAGA,EAAElpI,EAAEoB,SAASpB,EAAEA,GAAGkpI,EAAElpI,EAAE4sN,eAAe1jF,EAAEu4F,aAAav4F,EAAE0yB,aAAax6J,OAAU8T,GAAqCA,EAAE9S,EAAiB,QAAfuE,GAAnCA,EAAElI,EAAEm8N,eAAen8N,EAAEq8N,WAAkB9F,GAAGruN,GAAG,QACleA,KAARw+M,EAAE8N,GAAGtsN,KAAU,IAAIA,EAAEo0J,KAAK,IAAIp0J,EAAEo0J,OAAKp0J,EAAE,QAAUuO,EAAE,KAAKvO,EAAEvE,GAAK8S,IAAIvO,GAAE,CAAgU,GAA/TirC,EAAEqpL,GAAGp7F,EAAE,eAAeolF,EAAE,eAAehvM,EAAE,QAAW,eAAexH,GAAG,gBAAgBA,IAAEmjC,EAAEorL,GAAGn9F,EAAE,iBAAiBolF,EAAE,iBAAiBhvM,EAAE,WAAUkvM,EAAE,MAAMjwM,EAAEg0H,EAAEq2F,GAAGrqN,GAAG6vM,EAAE,MAAMp+M,EAAEuiI,EAAEq2F,GAAG54N,IAAGuiI,EAAE,IAAIt3F,EAAEiuF,EAAE5pH,EAAE,QAAQf,EAAEzW,EAAEuB,IAAKjB,OAAOomN,EAAEj8E,EAAE0xF,cAAc7V,EAAEllF,EAAE,KAAKm1F,GAAGh1N,KAAKoC,KAAIwvC,EAAE,IAAIA,EAAEqzK,EAAEhvM,EAAE,QAAQtP,EAAElI,EAAEuB,IAAKjB,OAAOgmN,EAAEnzK,EAAEgpL,cAAczV,EAAEtlF,EAAEjuF,GAAGuzK,EAAEtlF,EAAK3qH,GAAGvO,EAAE+H,EAAE,CAAa,IAARu2M,EAAEt+M,EAAEsP,EAAE,EAAM8uM,EAAhBnzK,EAAE18B,EAAkB6vM,EAAEA,EAAE2d,GAAG3d,GAAG9uM,IAAQ,IAAJ8uM,EAAE,EAAMllF,EAAEolF,EAAEplF,EAAEA,EAAE6iG,GAAG7iG,GAAGklF,IAAI,KAAK,EAAE9uM,EAAE8uM,GAAGnzK,EAAE8wL,GAAG9wL,GAAG37B,IAAI,KAAK,EAAE8uM,EAAE9uM,GAAGgvM,EACpfyd,GAAGzd,GAAGF,IAAI,KAAK9uM,KAAK,CAAC,GAAG27B,IAAIqzK,GAAG,OAAOA,GAAGrzK,IAAIqzK,EAAEiO,UAAU,MAAMxkN,EAAEkjC,EAAE8wL,GAAG9wL,GAAGqzK,EAAEyd,GAAGzd,GAAGrzK,EAAE,UAAUA,EAAE,KAAK,OAAO18B,GAAGytN,GAAGtgO,EAAE6mI,EAAEh0H,EAAE08B,GAAE,GAAI,OAAOjrC,GAAG,OAAOw+M,GAAGwd,GAAGtgO,EAAE8iN,EAAEx+M,EAAEirC,GAAE,GAAiE,GAAG,YAA1C18B,GAAjBg0H,EAAE9mI,EAAEm9N,GAAGn9N,GAAGhB,QAAWiJ,UAAU6+H,EAAE7+H,SAAS0B,gBAA+B,UAAUmJ,GAAG,SAASg0H,EAAElrI,KAAK,IAAIooN,EAAEoZ,QAAQ,GAAGR,GAAG91F,GAAG,GAAGu2F,GAAGrZ,EAAEia,OAAO,CAACja,EAAE+Z,GAAG,IAAIxZ,EAAEsZ,QAAQ/qN,EAAEg0H,EAAE7+H,WAAW,UAAU6K,EAAEnJ,gBAAgB,aAAam9H,EAAElrI,MAAM,UAAUkrI,EAAElrI,QAAQooN,EAAEga,IAClV,OADyVha,IAAIA,EAAEA,EAAE33M,EAAErM,IAAK68N,GAAG58N,EAAE+jN,EAAE3nN,EAAEuB,IAAW2mN,GAAGA,EAAEl4M,EAAEy6H,EAAE9mI,GAAG,aAAaqM,IAAIk4M,EAAEz9E,EAAEkjF,gBACtezF,EAAE6F,YAAY,WAAWtjF,EAAElrI,MAAM2uN,GAAGzjF,EAAE,SAASA,EAAE5sI,QAAOqqN,EAAEvkN,EAAEm9N,GAAGn9N,GAAGhB,OAAcqN,GAAG,IAAK,WAAauwN,GAAGrY,IAAI,SAASA,EAAEsa,mBAAgBE,GAAGxa,EAAEya,GAAGh/N,EAAEi/N,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGl/N,EAAE5D,EAAEuB,GAAG,MAAM,IAAK,kBAAkB,GAAGkhO,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGl/N,EAAE5D,EAAEuB,GAAG,IAAI4mN,EAAE,GAAGsX,GAAGxvN,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAI83M,EAAE,qBAAqB,MAAM73M,EAAE,IAAK,iBAAiB63M,EAAE,mBAAmB,MAAM73M,EACrf,IAAK,oBAAoB63M,EAAE,sBAAsB,MAAM73M,EAAE63M,OAAE,OAAYoY,GAAGF,GAAGhwN,EAAEhQ,KAAK8nN,EAAE,oBAAoB,YAAY93M,GAAG,MAAMhQ,EAAE2W,UAAUmxM,EAAE,sBAAsBA,IAAI+X,IAAI,OAAO7/N,EAAE44B,SAASsnM,IAAI,uBAAuBpY,EAAE,qBAAqBA,GAAGoY,KAAK/X,EAAEmS,OAAYF,GAAG,UAARD,GAAG54N,GAAkB44N,GAAGt8N,MAAMs8N,GAAGrrN,YAAYoxN,IAAG,IAAe,GAAVhY,EAAEuY,GAAG98N,EAAEmkN,IAAOprN,SAASorN,EAAE,IAAImV,GAAGnV,EAAE93M,EAAE,KAAKhQ,EAAEuB,GAAGqC,EAAEhG,KAAK,CAACwY,MAAM0xM,EAAEr9F,UAAUy9F,IAAIC,EAAEL,EAAEp3M,KAAKy3M,EAAW,QAARA,EAAE8X,GAAGjgO,MAAc8nN,EAAEp3M,KAAKy3M,MAASA,EAAEyX,GA1BjK,SAAY5vN,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAOiwN,GAAGhwN,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEyG,MAAa,MAAKqpN,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAO9vN,EAAEC,EAAES,QAASovN,IAAIC,GAAG,KAAK/vN,EAAE,QAAQ,OAAO,MA0BxBm0N,CAAGn0N,EAAEhQ,GAzB1b,SAAYgQ,EAAEC,GAAG,GAAGiwN,GAAG,MAAM,mBAAmBlwN,IAAIyvN,IAAIO,GAAGhwN,EAAEC,IAAID,EAAEsqN,KAAKD,GAAGD,GAAGD,GAAG,KAAK+F,IAAG,EAAGlwN,GAAG,KAAK,OAAOA,GAAwQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKC,EAAEmH,SAASnH,EAAEoH,QAAQpH,EAAEqH,UAAUrH,EAAEmH,SAASnH,EAAEoH,OAAO,CAAC,GAAGpH,EAAE+qG,MAAM,EAAE/qG,EAAE+qG,KAAKt+G,OAAO,OAAOuT,EAAE+qG,KAAK,GAAG/qG,EAAEyG,MAAM,OAAOtE,OAAOmF,aAAatH,EAAEyG,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAOmpN,IAAI,OAAO5vN,EAAE2oB,OAAO,KAAK3oB,EAAES,MAyB+E0zN,CAAGp0N,EAAEhQ,MAA2B,GAAxB2D,EAAE88N,GAAG98N,EAAE,kBAAqBjH,SAAS6E,EAAE,IAAI07N,GAAG,gBACnf,cAAc,KAAKj9N,EAAEuB,GAAGqC,EAAEhG,KAAK,CAACwY,MAAM7U,EAAEkpH,UAAU9mH,IAAIpC,EAAEmP,KAAKy3M,IAAGyY,GAAGh9N,EAAEqM,MAAK,SAAS8zN,GAAG/zN,EAAEC,EAAEjQ,GAAG,MAAM,CAACG,SAAS6P,EAAEX,SAASY,EAAEuM,cAAcxc,GAAG,SAASygO,GAAGzwN,EAAEC,GAAG,IAAI,IAAIjQ,EAAEiQ,EAAE,UAAUtM,EAAE,GAAG,OAAOqM,GAAG,CAAC,IAAIzO,EAAEyO,EAAExO,EAAED,EAAE4xN,UAAU,IAAI5xN,EAAE+6J,KAAK,OAAO96J,IAAID,EAAEC,EAAY,OAAVA,EAAEsyN,GAAG9jN,EAAEhQ,KAAY2D,EAAE4rB,QAAQw0M,GAAG/zN,EAAExO,EAAED,IAAc,OAAVC,EAAEsyN,GAAG9jN,EAAEC,KAAYtM,EAAE/F,KAAKmmO,GAAG/zN,EAAExO,EAAED,KAAKyO,EAAEA,EAAEnO,OAAO,OAAO8B,EAAE,SAASsgO,GAAGj0N,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEnO,aAAamO,GAAG,IAAIA,EAAEssJ,KAAK,OAAOtsJ,GAAI,KACxa,SAASk0N,GAAGl0N,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,IAAI,IAAIC,EAAEyO,EAAE0qN,WAAW/2N,EAAE,GAAG,OAAO5D,GAAGA,IAAI2D,GAAG,CAAC,IAAI8mI,EAAEzqI,EAAEyW,EAAEg0H,EAAEgqF,UAAUl6I,EAAEkwD,EAAE0oF,UAAU,GAAG,OAAO18M,GAAGA,IAAI9S,EAAE,MAAM,IAAI8mI,EAAE6xB,KAAK,OAAO/hF,IAAIkwD,EAAElwD,EAAEh5E,EAAa,OAAVkV,EAAEq9M,GAAG9zN,EAAEwB,KAAYoC,EAAE2rB,QAAQw0M,GAAG/jO,EAAEyW,EAAEg0H,IAAKlpI,GAAc,OAAVkV,EAAEq9M,GAAG9zN,EAAEwB,KAAYoC,EAAEhG,KAAKmmO,GAAG/jO,EAAEyW,EAAEg0H,KAAMzqI,EAAEA,EAAE6B,OAAO,IAAI+B,EAAElH,QAAQsT,EAAEpS,KAAK,CAACwY,MAAMnG,EAAEw6G,UAAU7mH,IAAI,SAASygO,MAAM,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGx0N,EAAEC,GAAG,OAAOD,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQC,EAAE8tG,UAAU,OAAM,EAC3b,SAAS0mH,GAAGz0N,EAAEC,GAAG,MAAM,aAAaD,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBC,EAAE1L,UAAU,kBAAkB0L,EAAE1L,UAAU,kBAAkB0L,EAAEwrE,yBAAyB,OAAOxrE,EAAEwrE,yBAAyB,MAAMxrE,EAAEwrE,wBAAwBC,OAAO,IAAIgpJ,GAAG,oBAAoB95N,WAAWA,gBAAW,EAAO+5N,GAAG,oBAAoB7sN,aAAaA,kBAAa,EAAO,SAAS8sN,GAAG50N,GAAG,IAAIA,EAAErL,SAASqL,EAAElB,YAAY,GAAG,IAAIkB,EAAErL,WAAoB,OAATqL,EAAEA,EAAE5L,QAAe4L,EAAElB,YAAY,KACxc,SAAS+1N,GAAG70N,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEkyN,YAAY,CAAC,IAAIjyN,EAAED,EAAErL,SAAS,GAAG,IAAIsL,GAAG,IAAIA,EAAE,MAAM,OAAOD,EAAE,SAAS80N,GAAG90N,GAAGA,EAAEA,EAAE+0N,gBAAgB,IAAI,IAAI90N,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAErL,SAAS,CAAC,IAAI3E,EAAEgQ,EAAEU,KAAK,GAAG,MAAM1Q,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIiQ,EAAE,OAAOD,EAAEC,QAAQ,OAAOjQ,GAAGiQ,IAAID,EAAEA,EAAE+0N,gBAAgB,OAAO,KAAK,IAAIC,GAAG,EAA0D,IAAIC,GAAG99N,KAAKklH,SAAShuH,SAAS,IAAIC,MAAM,GAAG4mO,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGjB,GAAG,oBAAoBiB,GAAGG,GAAG,iBAAiBH,GAC9d,SAAS1O,GAAGvmN,GAAG,IAAIC,EAAED,EAAEk1N,IAAI,GAAGj1N,EAAE,OAAOA,EAAE,IAAI,IAAIjQ,EAAEgQ,EAAExL,WAAWxE,GAAG,CAAC,GAAGiQ,EAAEjQ,EAAEgkO,KAAKhkO,EAAEklO,IAAI,CAAe,GAAdllO,EAAEiQ,EAAEwkN,UAAa,OAAOxkN,EAAEygG,OAAO,OAAO1wG,GAAG,OAAOA,EAAE0wG,MAAM,IAAI1gG,EAAE80N,GAAG90N,GAAG,OAAOA,GAAG,CAAC,GAAGhQ,EAAEgQ,EAAEk1N,IAAI,OAAOllO,EAAEgQ,EAAE80N,GAAG90N,GAAG,OAAOC,EAAMjQ,GAAJgQ,EAAEhQ,GAAMwE,WAAW,OAAO,KAAK,SAAS0uN,GAAGljN,GAAkB,QAAfA,EAAEA,EAAEk1N,KAAKl1N,EAAEg0N,MAAc,IAAIh0N,EAAEssJ,KAAK,IAAItsJ,EAAEssJ,KAAK,KAAKtsJ,EAAEssJ,KAAK,IAAItsJ,EAAEssJ,IAAI,KAAKtsJ,EAAE,SAAS8wN,GAAG9wN,GAAG,GAAG,IAAIA,EAAEssJ,KAAK,IAAItsJ,EAAEssJ,IAAI,OAAOtsJ,EAAEmjN,UAAU,MAAM1nN,MAAMtD,EAAE,KAAM,SAASirN,GAAGpjN,GAAG,OAAOA,EAAEm1N,KAAK,KAClb,SAAS1B,GAAGzzN,GAAG,IAAIC,EAAED,EAAEo1N,IAAkC,YAA9B,IAASn1N,IAAIA,EAAED,EAAEo1N,IAAI,IAAI1oI,KAAYzsF,EAAE,IAAIo1N,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGv1N,GAAG,MAAM,CAACc,QAAQd,GAAG,SAASu3M,GAAEv3M,GAAG,EAAEs1N,KAAKt1N,EAAEc,QAAQu0N,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAAM,SAAS9d,GAAEx3M,EAAEC,GAAGq1N,KAAKD,GAAGC,IAAIt1N,EAAEc,QAAQd,EAAEc,QAAQb,EAAE,IAAIu1N,GAAG,GAAGzd,GAAEwd,GAAGC,IAAIxd,GAAEud,IAAG,GAAIE,GAAGD,GAC5P,SAASE,GAAG11N,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAEzQ,KAAK4wL,aAAa,IAAInwL,EAAE,OAAOwlO,GAAG,IAAI7hO,EAAEqM,EAAEmjN,UAAU,GAAGxvN,GAAGA,EAAEgiO,8CAA8C11N,EAAE,OAAOtM,EAAEiiO,0CAA0C,IAASpkO,EAALD,EAAE,GAAK,IAAIC,KAAKxB,EAAEuB,EAAEC,GAAGyO,EAAEzO,GAAoH,OAAjHmC,KAAIqM,EAAEA,EAAEmjN,WAAYwS,4CAA4C11N,EAAED,EAAE41N,0CAA0CrkO,GAAUA,EAAE,SAASskO,GAAG71N,GAAyB,OAAO,QAA7BA,EAAEA,EAAE6/K,yBAAmC,IAAS7/K,EAAE,SAAS81N,KAAKve,GAAES,IAAGT,GAAEQ,IAAG,SAASge,GAAG/1N,EAAEC,EAAEjQ,GAAG,GAAG+nN,GAAEj3M,UAAU00N,GAAG,MAAM/5N,MAAMtD,EAAE,MAAMq/M,GAAEO,GAAE93M,GAAGu3M,GAAEQ,GAAEhoN,GAC/e,SAASgmO,GAAGh2N,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEqM,EAAEmjN,UAAgC,GAAtBnjN,EAAEC,EAAE4/K,kBAAqB,oBAAoBlsL,EAAE+rL,gBAAgB,OAAO1vL,EAAwB,IAAI,IAAIuB,KAA9BoC,EAAEA,EAAE+rL,kBAAiC,KAAKnuL,KAAKyO,GAAG,MAAMvE,MAAMtD,EAAE,IAAI8kN,EAAGh9M,IAAI,UAAU1O,IAAI,OAAOyqB,EAAE,GAAGhsB,EAAE2D,GAAG,SAASsiO,GAAGj2N,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEmjN,YAAYnjN,EAAEk2N,2CAA2CV,GAAGC,GAAG1d,GAAEj3M,QAAQ02M,GAAEO,GAAE/3M,GAAGw3M,GAAEQ,GAAEA,GAAEl3M,UAAe,EAAG,SAASq1N,GAAGn2N,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEqM,EAAEmjN,UAAU,IAAIxvN,EAAE,MAAM8H,MAAMtD,EAAE,MAAMnI,GAAGgQ,EAAEg2N,GAAGh2N,EAAEC,EAAEw1N,IAAI9hO,EAAEuiO,0CAA0Cl2N,EAAEu3M,GAAES,IAAGT,GAAEQ,IAAGP,GAAEO,GAAE/3M,IAAIu3M,GAAES,IAAGR,GAAEQ,GAAEhoN,GAC7e,IAAIomO,GAAG,KAAKC,GAAG,KAAKC,GAAGvmI,EAAE02H,yBAAyB8P,GAAGxmI,EAAEm3H,0BAA0BsP,GAAGzmI,EAAE0mI,wBAAwBC,GAAG3mI,EAAE4mI,qBAAqBC,GAAG7mI,EAAE8mI,sBAAsBC,GAAG/mI,EAAEw4H,aAAawO,GAAGhnI,EAAEinI,iCAAiCC,GAAGlnI,EAAEmnI,2BAA2BC,GAAGpnI,EAAE65H,8BAA8BwN,GAAGrnI,EAAEo3H,wBAAwBkQ,GAAGtnI,EAAEunI,qBAAqBC,GAAGxnI,EAAEynI,sBAAsBC,GAAG,GAAGC,QAAG,IAASd,GAAGA,GAAG,aAAae,GAAG,KAAK7kM,GAAG,KAAK8kM,IAAG,EAAGC,GAAGf,KAAK51F,GAAE,IAAI22F,GAAGf,GAAG,WAAW,OAAOA,KAAKe,IACtd,SAASC,KAAK,OAAOf,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAM97N,MAAMtD,EAAE,OAAQ,SAAS46B,GAAG/yB,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOi3N,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAM97N,MAAMtD,EAAE,OAAQ,SAAS4/N,GAAG/3N,EAAEC,GAAW,OAARD,EAAE+yB,GAAG/yB,GAAUs2N,GAAGt2N,EAAEC,GAAG,SAAS+3N,GAAGh4N,EAAEC,EAAEjQ,GAAW,OAARgQ,EAAE+yB,GAAG/yB,GAAUu2N,GAAGv2N,EAAEC,EAAEjQ,GAAG,SAASioO,KAAK,GAAG,OAAOnlM,GAAG,CAAC,IAAI9yB,EAAE8yB,GAAGA,GAAG,KAAK0jM,GAAGx2N,GAAGk4N,KAC3a,SAASA,KAAK,IAAIN,IAAI,OAAOD,GAAG,CAACC,IAAG,EAAG,IAAI53N,EAAE,EAAE,IAAI,IAAIC,EAAE03N,GAAGI,GAAG,IAAG,WAAW,KAAK/3N,EAAEC,EAAEvT,OAAOsT,IAAI,CAAC,IAAIhQ,EAAEiQ,EAAED,GAAG,GAAGhQ,EAAEA,GAAE,SAAU,OAAOA,OAAM2nO,GAAG,KAAK,MAAM3nO,GAAG,MAAM,OAAO2nO,KAAKA,GAAGA,GAAGrpO,MAAM0R,EAAE,IAAIu2N,GAAGU,GAAGgB,IAAIjoO,EAA3J,QAAsK4nO,IAAG,IAAK,IAAIO,GAAG5c,EAAG9C,wBAAwB,SAAS2f,GAAGp4N,EAAEC,GAAG,GAAGD,GAAGA,EAAEksE,aAAa,CAA4B,IAAI,IAAIl8E,KAAnCiQ,EAAE+b,EAAE,GAAG/b,GAAGD,EAAEA,EAAEksE,kBAA4B,IAASjsE,EAAEjQ,KAAKiQ,EAAEjQ,GAAGgQ,EAAEhQ,IAAI,OAAOiQ,EAAE,OAAOA,EAAE,IAAIo4N,GAAG9C,GAAG,MAAM+C,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KAC5b,SAASI,GAAG14N,GAAG,IAAIC,EAAEo4N,GAAGv3N,QAAQy2M,GAAE8gB,IAAIr4N,EAAEzQ,KAAKkwC,SAASu5K,cAAc/4M,EAAE,SAAS04N,GAAG34N,EAAEC,GAAG,KAAK,OAAOD,GAAG,CAAC,IAAIhQ,EAAEgQ,EAAEykN,UAAU,IAAIzkN,EAAE44N,WAAW34N,KAAKA,EAAtB,CAAwB,GAAG,OAAOjQ,IAAIA,EAAE4oO,WAAW34N,KAAKA,EAAE,MAAWjQ,EAAE4oO,YAAY34N,OAAOD,EAAE44N,YAAY34N,EAAE,OAAOjQ,IAAIA,EAAE4oO,YAAY34N,GAAGD,EAAEA,EAAEnO,QAAQ,SAASgnO,GAAG74N,EAAEC,GAAGq4N,GAAGt4N,EAAEw4N,GAAGD,GAAG,KAAsB,QAAjBv4N,EAAEA,EAAE84N,eAAuB,OAAO94N,EAAE+4N,eAAe,KAAK/4N,EAAEg5N,MAAM/4N,KAAKg5N,IAAG,GAAIj5N,EAAE+4N,aAAa,MACvY,SAASG,GAAGl5N,EAAEC,GAAG,GAAGu4N,KAAKx4N,IAAG,IAAKC,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAEu4N,GAAGx4N,EAAEC,EAAE,YAAWA,EAAE,CAACkY,QAAQnY,EAAEigL,aAAahgL,EAAEvS,KAAK,MAAS,OAAO6qO,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM78N,MAAMtD,EAAE,MAAMogO,GAAGt4N,EAAEq4N,GAAGQ,aAAa,CAACE,MAAM,EAAED,aAAa94N,EAAEk5N,WAAW,WAAWZ,GAAGA,GAAG7qO,KAAKuS,EAAE,OAAOD,EAAEg5M,cAAc,IAAIogB,IAAG,EAAG,SAASC,GAAGr5N,GAAGA,EAAEs5N,YAAY,CAACC,UAAUv5N,EAAE2kN,cAAc6U,gBAAgB,KAAKC,eAAe,KAAKtmH,OAAO,CAACumH,QAAQ,MAAMC,QAAQ,MAC1a,SAASC,GAAG55N,EAAEC,GAAGD,EAAEA,EAAEs5N,YAAYr5N,EAAEq5N,cAAct5N,IAAIC,EAAEq5N,YAAY,CAACC,UAAUv5N,EAAEu5N,UAAUC,gBAAgBx5N,EAAEw5N,gBAAgBC,eAAez5N,EAAEy5N,eAAetmH,OAAOnzG,EAAEmzG,OAAOwmH,QAAQ35N,EAAE25N,UAAU,SAASE,GAAG75N,EAAEC,GAAG,MAAM,CAAC65N,UAAU95N,EAAE+5N,KAAK95N,EAAEqsJ,IAAI,EAAE0tE,QAAQ,KAAKtiO,SAAS,KAAKhK,KAAK,MAAM,SAASusO,GAAGj6N,EAAEC,GAAmB,GAAG,QAAnBD,EAAEA,EAAEs5N,aAAwB,CAAY,IAAItpO,GAAfgQ,EAAEA,EAAEmzG,QAAeumH,QAAQ,OAAO1pO,EAAEiQ,EAAEvS,KAAKuS,GAAGA,EAAEvS,KAAKsC,EAAEtC,KAAKsC,EAAEtC,KAAKuS,GAAGD,EAAE05N,QAAQz5N,GACrZ,SAASi6N,GAAGl6N,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAEs5N,YAAY3lO,EAAEqM,EAAEykN,UAAU,GAAG,OAAO9wN,GAAoB3D,KAAhB2D,EAAEA,EAAE2lO,aAAmB,CAAC,IAAI/nO,EAAE,KAAKC,EAAE,KAAyB,GAAG,QAAvBxB,EAAEA,EAAEwpO,iBAA4B,CAAC,EAAE,CAAC,IAAI5lO,EAAE,CAACkmO,UAAU9pO,EAAE8pO,UAAUC,KAAK/pO,EAAE+pO,KAAKztE,IAAIt8J,EAAEs8J,IAAI0tE,QAAQhqO,EAAEgqO,QAAQtiO,SAAS1H,EAAE0H,SAAShK,KAAK,MAAM,OAAO8D,EAAED,EAAEC,EAAEoC,EAAEpC,EAAEA,EAAE9D,KAAKkG,EAAE5D,EAAEA,EAAEtC,WAAW,OAAOsC,GAAG,OAAOwB,EAAED,EAAEC,EAAEyO,EAAEzO,EAAEA,EAAE9D,KAAKuS,OAAO1O,EAAEC,EAAEyO,EAAiH,OAA/GjQ,EAAE,CAACupO,UAAU5lO,EAAE4lO,UAAUC,gBAAgBjoO,EAAEkoO,eAAejoO,EAAE2hH,OAAOx/G,EAAEw/G,OAAOwmH,QAAQhmO,EAAEgmO,cAAS35N,EAAEs5N,YAAYtpO,GAA4B,QAAnBgQ,EAAEhQ,EAAEypO,gBAAwBzpO,EAAEwpO,gBAAgBv5N,EAAED,EAAEtS,KACnfuS,EAAEjQ,EAAEypO,eAAex5N,EACnB,SAASk6N,GAAGn6N,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEyO,EAAEs5N,YAAYF,IAAG,EAAG,IAAI5nO,EAAED,EAAEioO,gBAAgB5lO,EAAErC,EAAEkoO,eAAeh/F,EAAElpI,EAAE4hH,OAAOumH,QAAQ,GAAG,OAAOj/F,EAAE,CAAClpI,EAAE4hH,OAAOumH,QAAQ,KAAK,IAAIjzN,EAAEg0H,EAAElwD,EAAE9jE,EAAE/Y,KAAK+Y,EAAE/Y,KAAK,KAAK,OAAOkG,EAAEpC,EAAE+4E,EAAE32E,EAAElG,KAAK68E,EAAE32E,EAAE6S,EAAE,IAAIvY,EAAE8R,EAAEykN,UAAU,GAAG,OAAOv2N,EAAE,CAAiB,IAAIw9M,GAApBx9M,EAAEA,EAAEorO,aAAoBG,eAAe/tB,IAAI93M,IAAI,OAAO83M,EAAEx9M,EAAEsrO,gBAAgBjvJ,EAAEmhI,EAAEh+M,KAAK68E,EAAEr8E,EAAEurO,eAAehzN,IAAI,GAAG,OAAOjV,EAAE,CAA8B,IAA7Bk6M,EAAEn6M,EAAEgoO,UAAU3lO,EAAE,EAAE1F,EAAEq8E,EAAE9jE,EAAE,OAAO,CAACg0H,EAAEjpI,EAAEuoO,KAAK,IAAI7yN,EAAE1V,EAAEsoO,UAAU,IAAInmO,EAAE8mI,KAAKA,EAAE,CAAC,OAAOvsI,IAAIA,EAAEA,EAAER,KAAK,CAACosO,UAAU5yN,EAAE6yN,KAAK,EAAEztE,IAAI96J,EAAE86J,IAAI0tE,QAAQxoO,EAAEwoO,QAAQtiO,SAASlG,EAAEkG,SACrfhK,KAAK,OAAOsS,EAAE,CAAC,IAAI2xG,EAAE3xG,EAAE9H,EAAE1G,EAAU,OAARipI,EAAEx6H,EAAEiH,EAAElX,EAASkI,EAAEo0J,KAAK,KAAK,EAAc,GAAG,oBAAf36C,EAAEz5G,EAAE8hO,SAAiC,CAACtuB,EAAE/5F,EAAElkH,KAAKyZ,EAAEwkM,EAAEjxE,GAAG,MAAMz6H,EAAE0rM,EAAE/5F,EAAE,MAAM3xG,EAAE,KAAK,EAAE2xG,EAAEi9D,OAAe,KAATj9D,EAAEi9D,MAAY,GAAG,KAAK,EAAsD,GAAG,QAA3Cn0C,EAAE,oBAAd9oB,EAAEz5G,EAAE8hO,SAAgCroH,EAAElkH,KAAKyZ,EAAEwkM,EAAEjxE,GAAG9oB,SAAe,IAAS8oB,EAAE,MAAMz6H,EAAE0rM,EAAE1vL,EAAE,GAAG0vL,EAAEjxE,GAAG,MAAMz6H,EAAE,KAAK,EAAEo5N,IAAG,GAAI,OAAO5nO,EAAEkG,WAAWsI,EAAE4uK,OAAO,GAAe,QAAZn0C,EAAElpI,EAAEooO,SAAiBpoO,EAAEooO,QAAQ,CAACnoO,GAAGipI,EAAE7sI,KAAK4D,SAAS0V,EAAE,CAAC4yN,UAAU5yN,EAAE6yN,KAAKt/F,EAAE6xB,IAAI96J,EAAE86J,IAAI0tE,QAAQxoO,EAAEwoO,QAAQtiO,SAASlG,EAAEkG,SAAShK,KAAK,MAAM,OAAOQ,GAAGq8E,EAAEr8E,EAAEgZ,EAAET,EAAEilM,GAAGx9M,EAAEA,EAAER,KAAKwZ,EAAEtT,GAAG6mI,EAAW,GAAG,QAAZjpI,EAAEA,EAAE9D,MAC1e,IAAsB,QAAnB+sI,EAAElpI,EAAE4hH,OAAOumH,SAAiB,MAAWloO,EAAEipI,EAAE/sI,KAAK+sI,EAAE/sI,KAAK,KAAK6D,EAAEkoO,eAAeh/F,EAAElpI,EAAE4hH,OAAOumH,QAAQ,MAAc,OAAOxrO,IAAIuY,EAAEilM,GAAGn6M,EAAEgoO,UAAU9yN,EAAElV,EAAEioO,gBAAgBjvJ,EAAEh5E,EAAEkoO,eAAevrO,EAAEksO,IAAIxmO,EAAEoM,EAAEg5N,MAAMplO,EAAEoM,EAAE2kN,cAAcjZ,GAAG,SAAS2uB,GAAGr6N,EAAEC,EAAEjQ,GAA8B,GAA3BgQ,EAAEC,EAAE05N,QAAQ15N,EAAE05N,QAAQ,KAAQ,OAAO35N,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAEtT,OAAOuT,IAAI,CAAC,IAAItM,EAAEqM,EAAEC,GAAG1O,EAAEoC,EAAE+D,SAAS,GAAG,OAAOnG,EAAE,CAAqB,GAApBoC,EAAE+D,SAAS,KAAK/D,EAAE3D,EAAK,oBAAoBuB,EAAE,MAAMkK,MAAMtD,EAAE,IAAI5G,IAAIA,EAAE9D,KAAKkG,KAAK,IAAI2mO,IAAI,IAAIvgB,EAAGhtM,WAAWiqM,KAC3b,SAASujB,GAAGv6N,EAAEC,EAAEjQ,EAAE2D,GAA8B3D,EAAE,QAAXA,EAAEA,EAAE2D,EAAtBsM,EAAED,EAAE2kN,sBAAmC,IAAS30N,EAAEiQ,EAAE+b,EAAE,GAAG/b,EAAEjQ,GAAGgQ,EAAE2kN,cAAc30N,EAAE,IAAIgQ,EAAEg5N,QAAQh5N,EAAEs5N,YAAYC,UAAUvpO,GAC3I,IAAIwqO,GAAG,CAAC7jB,UAAU,SAAS32M,GAAG,SAAOA,EAAEA,EAAEy6N,kBAAiBjW,GAAGxkN,KAAKA,GAAM82M,gBAAgB,SAAS92M,EAAEC,EAAEjQ,GAAGgQ,EAAEA,EAAEy6N,gBAAgB,IAAI9mO,EAAE+mO,KAAKnpO,EAAEopO,GAAG36N,GAAGxO,EAAEqoO,GAAGlmO,EAAEpC,GAAGC,EAAEwoO,QAAQ/5N,OAAE,IAASjQ,GAAG,OAAOA,IAAIwB,EAAEkG,SAAS1H,GAAGiqO,GAAGj6N,EAAExO,GAAGopO,GAAG56N,EAAEzO,EAAEoC,IAAIkjN,oBAAoB,SAAS72M,EAAEC,EAAEjQ,GAAGgQ,EAAEA,EAAEy6N,gBAAgB,IAAI9mO,EAAE+mO,KAAKnpO,EAAEopO,GAAG36N,GAAGxO,EAAEqoO,GAAGlmO,EAAEpC,GAAGC,EAAE86J,IAAI,EAAE96J,EAAEwoO,QAAQ/5N,OAAE,IAASjQ,GAAG,OAAOA,IAAIwB,EAAEkG,SAAS1H,GAAGiqO,GAAGj6N,EAAExO,GAAGopO,GAAG56N,EAAEzO,EAAEoC,IAAIijN,mBAAmB,SAAS52M,EAAEC,GAAGD,EAAEA,EAAEy6N,gBAAgB,IAAIzqO,EAAE0qO,KAAK/mO,EAAEgnO,GAAG36N,GAAGzO,EAAEsoO,GAAG7pO,EAAE2D,GAAGpC,EAAE+6J,IAAI,OAAE,IAASrsJ,GAAG,OAAOA,IAAI1O,EAAEmG,SACjfuI,GAAGg6N,GAAGj6N,EAAEzO,GAAGqpO,GAAG56N,EAAErM,EAAE3D,KAAK,SAAS6qO,GAAG76N,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,EAAEoC,GAAiB,MAAM,oBAApBoM,EAAEA,EAAEmjN,WAAsCnyK,sBAAsBhxC,EAAEgxC,sBAAsBr9C,EAAEnC,EAAEoC,IAAGqM,EAAE7R,YAAW6R,EAAE7R,UAAUipN,wBAAsB0a,GAAG/hO,EAAE2D,KAAKo+N,GAAGxgO,EAAEC,IAC/M,SAASspO,GAAG96N,EAAEC,EAAEjQ,GAAG,IAAI2D,GAAE,EAAGpC,EAAEikO,GAAOhkO,EAAEyO,EAAEwxC,YAA2W,MAA/V,kBAAkBjgD,GAAG,OAAOA,EAAEA,EAAE0nO,GAAG1nO,IAAID,EAAEskO,GAAG51N,GAAGw1N,GAAG1d,GAAEj3M,QAAyBtP,GAAGmC,EAAE,QAAtBA,EAAEsM,EAAEkgL,oBAA4B,IAASxsL,GAAG+hO,GAAG11N,EAAEzO,GAAGikO,IAAIv1N,EAAE,IAAIA,EAAEjQ,EAAEwB,GAAGwO,EAAE2kN,cAAc,OAAO1kN,EAAEkP,YAAO,IAASlP,EAAEkP,MAAMlP,EAAEkP,MAAM,KAAKlP,EAAEg3M,QAAQujB,GAAGx6N,EAAEmjN,UAAUljN,EAAEA,EAAEw6N,gBAAgBz6N,EAAErM,KAAIqM,EAAEA,EAAEmjN,WAAYwS,4CAA4CpkO,EAAEyO,EAAE41N,0CAA0CpkO,GAAUyO,EAC3Z,SAAS86N,GAAG/6N,EAAEC,EAAEjQ,EAAE2D,GAAGqM,EAAEC,EAAEkP,MAAM,oBAAoBlP,EAAE0/K,2BAA2B1/K,EAAE0/K,0BAA0B3vL,EAAE2D,GAAG,oBAAoBsM,EAAE+6N,kCAAkC/6N,EAAE+6N,iCAAiChrO,EAAE2D,GAAGsM,EAAEkP,QAAQnP,GAAGw6N,GAAG3jB,oBAAoB52M,EAAEA,EAAEkP,MAAM,MAC/P,SAAS8rN,GAAGj7N,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEyO,EAAEmjN,UAAU5xN,EAAEhB,MAAMP,EAAEuB,EAAE4d,MAAMnP,EAAE2kN,cAAcpzN,EAAEylN,KAAKsjB,GAAGjB,GAAGr5N,GAAG,IAAIxO,EAAEyO,EAAEwxC,YAAY,kBAAkBjgD,GAAG,OAAOA,EAAED,EAAE4mB,QAAQ+gN,GAAG1nO,IAAIA,EAAEqkO,GAAG51N,GAAGw1N,GAAG1d,GAAEj3M,QAAQvP,EAAE4mB,QAAQu9M,GAAG11N,EAAExO,IAAI2oO,GAAGn6N,EAAEhQ,EAAEuB,EAAEoC,GAAGpC,EAAE4d,MAAMnP,EAAE2kN,cAA2C,oBAA7BnzN,EAAEyO,EAAEugL,4BAAiD+5C,GAAGv6N,EAAEC,EAAEzO,EAAExB,GAAGuB,EAAE4d,MAAMnP,EAAE2kN,eAAe,oBAAoB1kN,EAAEugL,0BAA0B,oBAAoBjvL,EAAE2pO,yBAAyB,oBAAoB3pO,EAAE4pO,2BAA2B,oBAAoB5pO,EAAE6pO,qBACven7N,EAAE1O,EAAE4d,MAAM,oBAAoB5d,EAAE6pO,oBAAoB7pO,EAAE6pO,qBAAqB,oBAAoB7pO,EAAE4pO,2BAA2B5pO,EAAE4pO,4BAA4Bl7N,IAAI1O,EAAE4d,OAAOqrN,GAAG3jB,oBAAoBtlN,EAAEA,EAAE4d,MAAM,MAAMgrN,GAAGn6N,EAAEhQ,EAAEuB,EAAEoC,GAAGpC,EAAE4d,MAAMnP,EAAE2kN,eAAe,oBAAoBpzN,EAAEylD,oBAAoBh3C,EAAE4uK,OAAO,GAAG,IAAIysD,GAAGxuO,MAAME,QACvT,SAASuuO,GAAGt7N,EAAEC,EAAEjQ,GAAW,GAAG,QAAXgQ,EAAEhQ,EAAE6c,MAAiB,oBAAoB7M,GAAG,kBAAkBA,EAAE,CAAC,GAAGhQ,EAAE6nN,OAAO,CAAY,GAAX7nN,EAAEA,EAAE6nN,OAAY,CAAC,GAAG,IAAI7nN,EAAEs8J,IAAI,MAAM7wJ,MAAMtD,EAAE,MAAM,IAAIxE,EAAE3D,EAAEmzN,UAAU,IAAIxvN,EAAE,MAAM8H,MAAMtD,EAAE,IAAI6H,IAAI,IAAIzO,EAAE,GAAGyO,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAE4M,KAAK,oBAAoB5M,EAAE4M,KAAK5M,EAAE4M,IAAI0uN,aAAahqO,EAAS0O,EAAE4M,KAAI5M,EAAE,SAASD,GAAG,IAAIC,EAAEtM,EAAEqjN,KAAK/2M,IAAIq6N,KAAKr6N,EAAEtM,EAAEqjN,KAAK,IAAI,OAAOh3M,SAASC,EAAE1O,GAAG0O,EAAE1O,GAAGyO,GAAGC,EAAEs7N,WAAWhqO,EAAS0O,GAAE,GAAG,kBAAkBD,EAAE,MAAMvE,MAAMtD,EAAE,MAAM,IAAInI,EAAE6nN,OAAO,MAAMp8M,MAAMtD,EAAE,IAAI6H,IAAK,OAAOA,EAChe,SAASw7N,GAAGx7N,EAAEC,GAAG,GAAG,aAAaD,EAAEzQ,KAAK,MAAMkM,MAAMtD,EAAE,GAAG,oBAAoBhK,OAAOC,UAAUC,SAASZ,KAAKwS,GAAG,qBAAqB9R,OAAOqS,KAAKP,GAAGhQ,KAAK,MAAM,IAAIgQ,IAClK,SAASw7N,GAAGz7N,GAAG,SAASC,EAAEA,EAAEjQ,GAAG,GAAGgQ,EAAE,CAAC,IAAIrM,EAAEsM,EAAEy7N,WAAW,OAAO/nO,GAAGA,EAAEgoO,WAAW3rO,EAAEiQ,EAAEy7N,WAAW1rO,GAAGiQ,EAAE27N,YAAY37N,EAAEy7N,WAAW1rO,EAAEA,EAAE2rO,WAAW,KAAK3rO,EAAE4+K,MAAM,GAAG,SAAS5+K,EAAEA,EAAE2D,GAAG,IAAIqM,EAAE,OAAO,KAAK,KAAK,OAAOrM,GAAGsM,EAAEjQ,EAAE2D,GAAGA,EAAEA,EAAEmxN,QAAQ,OAAO,KAAK,SAASnxN,EAAEqM,EAAEC,GAAG,IAAID,EAAE,IAAIqW,IAAI,OAAOpW,GAAG,OAAOA,EAAEpQ,IAAImQ,EAAEwJ,IAAIvJ,EAAEpQ,IAAIoQ,GAAGD,EAAEwJ,IAAIvJ,EAAEmuD,MAAMnuD,GAAGA,EAAEA,EAAE6kN,QAAQ,OAAO9kN,EAAE,SAASzO,EAAEyO,EAAEC,GAAsC,OAAnCD,EAAE67N,GAAG77N,EAAEC,IAAKmuD,MAAM,EAAEpuD,EAAE8kN,QAAQ,KAAY9kN,EAAE,SAASxO,EAAEyO,EAAEjQ,EAAE2D,GAAa,OAAVsM,EAAEmuD,MAAMz6D,EAAMqM,EAA4B,QAAjBrM,EAAEsM,EAAEwkN,YAA6B9wN,EAAEA,EAAEy6D,OAAQp+D,GAAGiQ,EAAE2uK,MAAM,EACpf5+K,GAAG2D,GAAEsM,EAAE2uK,MAAM,EAAS5+K,GADoaA,EACla,SAAS4D,EAAEqM,GAAsC,OAAnCD,GAAG,OAAOC,EAAEwkN,YAAYxkN,EAAE2uK,MAAM,GAAU3uK,EAAE,SAASw6H,EAAEz6H,EAAEC,EAAEjQ,EAAE2D,GAAG,OAAG,OAAOsM,GAAG,IAAIA,EAAEqsJ,MAAWrsJ,EAAE67N,GAAG9rO,EAAEgQ,EAAE68F,KAAKlpG,IAAK9B,OAAOmO,EAAEC,KAAEA,EAAE1O,EAAE0O,EAAEjQ,IAAK6B,OAAOmO,EAASC,GAAE,SAASwG,EAAEzG,EAAEC,EAAEjQ,EAAE2D,GAAG,OAAG,OAAOsM,GAAGA,EAAE87N,cAAc/rO,EAAET,OAAYoE,EAAEpC,EAAE0O,EAAEjQ,EAAEO,QAASsc,IAAIyuN,GAAGt7N,EAAEC,EAAEjQ,GAAG2D,EAAE9B,OAAOmO,EAAErM,KAAEA,EAAEqoO,GAAGhsO,EAAET,KAAKS,EAAEH,IAAIG,EAAEO,MAAM,KAAKyP,EAAE68F,KAAKlpG,IAAKkZ,IAAIyuN,GAAGt7N,EAAEC,EAAEjQ,GAAG2D,EAAE9B,OAAOmO,EAASrM,GAAE,SAAS42E,EAAEvqE,EAAEC,EAAEjQ,EAAE2D,GAAG,OAAG,OAAOsM,GAAG,IAAIA,EAAEqsJ,KAAKrsJ,EAAEkjN,UAAUyD,gBAAgB52N,EAAE42N,eAAe3mN,EAAEkjN,UAAU8Y,iBAAiBjsO,EAAEisO,iBAAsBh8N,EACrgBi8N,GAAGlsO,EAAEgQ,EAAE68F,KAAKlpG,IAAK9B,OAAOmO,EAAEC,KAAEA,EAAE1O,EAAE0O,EAAEjQ,EAAEuE,UAAU,KAAM1C,OAAOmO,EAASC,GAAE,SAAS/R,EAAE8R,EAAEC,EAAEjQ,EAAE2D,EAAEnC,GAAG,OAAG,OAAOyO,GAAG,IAAIA,EAAEqsJ,MAAWrsJ,EAAEk8N,GAAGnsO,EAAEgQ,EAAE68F,KAAKlpG,EAAEnC,IAAKK,OAAOmO,EAAEC,KAAEA,EAAE1O,EAAE0O,EAAEjQ,IAAK6B,OAAOmO,EAASC,GAAE,SAASyrM,EAAE1rM,EAAEC,EAAEjQ,GAAG,GAAG,kBAAkBiQ,GAAG,kBAAkBA,EAAE,OAAOA,EAAE67N,GAAG,GAAG77N,EAAED,EAAE68F,KAAK7sG,IAAK6B,OAAOmO,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE23M,UAAU,KAAK4D,EAAG,OAAOxrN,EAAEgsO,GAAG/7N,EAAE1Q,KAAK0Q,EAAEpQ,IAAIoQ,EAAE1P,MAAM,KAAKyP,EAAE68F,KAAK7sG,IAAK6c,IAAIyuN,GAAGt7N,EAAE,KAAKC,GAAGjQ,EAAE6B,OAAOmO,EAAEhQ,EAAE,KAAKyrN,EAAG,OAAOx7M,EAAEi8N,GAAGj8N,EAAED,EAAE68F,KAAK7sG,IAAK6B,OAAOmO,EAAEC,EAAE,GAAGo7N,GAAGp7N,IAAIy8M,EAAGz8M,GAAG,OAAOA,EAAEk8N,GAAGl8N,EACnfD,EAAE68F,KAAK7sG,EAAE,OAAQ6B,OAAOmO,EAAEC,EAAEu7N,GAAGx7N,EAAEC,GAAG,OAAO,KAAK,SAASiH,EAAElH,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAE,OAAO0O,EAAEA,EAAEpQ,IAAI,KAAK,GAAG,kBAAkBG,GAAG,kBAAkBA,EAAE,OAAO,OAAOuB,EAAE,KAAKkpI,EAAEz6H,EAAEC,EAAE,GAAGjQ,EAAE2D,GAAG,GAAG,kBAAkB3D,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE4nN,UAAU,KAAK4D,EAAG,OAAOxrN,EAAEH,MAAM0B,EAAEvB,EAAET,OAAO8N,EAAGnP,EAAE8R,EAAEC,EAAEjQ,EAAEO,MAAMgE,SAASZ,EAAEpC,GAAGkV,EAAEzG,EAAEC,EAAEjQ,EAAE2D,GAAG,KAAK,KAAK8nN,EAAG,OAAOzrN,EAAEH,MAAM0B,EAAEg5E,EAAEvqE,EAAEC,EAAEjQ,EAAE2D,GAAG,KAAK,GAAG0nO,GAAGrrO,IAAI0sN,EAAG1sN,GAAG,OAAO,OAAOuB,EAAE,KAAKrD,EAAE8R,EAAEC,EAAEjQ,EAAE2D,EAAE,MAAM6nO,GAAGx7N,EAAEhQ,GAAG,OAAO,KAAK,SAAS2hH,EAAE3xG,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,GAAG,kBAAkBoC,GAAG,kBAAkBA,EAAE,OACle8mI,EAAEx6H,EADueD,EAAEA,EAAEsJ,IAAItZ,IACtf,KAAW,GAAG2D,EAAEpC,GAAG,GAAG,kBAAkBoC,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEikN,UAAU,KAAK4D,EAAG,OAAOx7M,EAAEA,EAAEsJ,IAAI,OAAO3V,EAAE9D,IAAIG,EAAE2D,EAAE9D,MAAM,KAAK8D,EAAEpE,OAAO8N,EAAGnP,EAAE+R,EAAED,EAAErM,EAAEpD,MAAMgE,SAAShD,EAAEoC,EAAE9D,KAAK4W,EAAExG,EAAED,EAAErM,EAAEpC,GAAG,KAAKkqN,EAAG,OAA2ClxI,EAAEtqE,EAAtCD,EAAEA,EAAEsJ,IAAI,OAAO3V,EAAE9D,IAAIG,EAAE2D,EAAE9D,MAAM,KAAW8D,EAAEpC,GAAG,GAAG8pO,GAAG1nO,IAAI+oN,EAAG/oN,GAAG,OAAwBzF,EAAE+R,EAAnBD,EAAEA,EAAEsJ,IAAItZ,IAAI,KAAW2D,EAAEpC,EAAE,MAAMiqO,GAAGv7N,EAAEtM,GAAG,OAAO,KAAK,SAASuE,EAAE3G,EAAEqC,EAAE6mI,EAAEh0H,GAAG,IAAI,IAAI8jE,EAAE,KAAK/iE,EAAE,KAAKgvM,EAAE5iN,EAAE8iN,EAAE9iN,EAAE,EAAE0iN,EAAE,KAAK,OAAOE,GAAGE,EAAEj8E,EAAE/tI,OAAOgqN,IAAI,CAACF,EAAEpoJ,MAAMsoJ,GAAGJ,EAAEE,EAAEA,EAAE,MAAMF,EAAEE,EAAEsO,QAAQ,IAAI52N,EAAEgZ,EAAE3V,EAAEilN,EAAE/7E,EAAEi8E,GAAGjwM,GAAG,GAAG,OAAOvY,EAAE,CAAC,OAAOsoN,IAAIA,EAAEF,GAAG,MAAMt2M,GAAGw2M,GAAG,OACjftoN,EAAEu2N,WAAWxkN,EAAE1O,EAAEilN,GAAG5iN,EAAEpC,EAAEtD,EAAE0F,EAAE8iN,GAAG,OAAOlvM,EAAE+iE,EAAEr8E,EAAEsZ,EAAEs9M,QAAQ52N,EAAEsZ,EAAEtZ,EAAEsoN,EAAEF,EAAE,GAAGI,IAAIj8E,EAAE/tI,OAAO,OAAOsD,EAAEuB,EAAEilN,GAAGjsI,EAAE,GAAG,OAAOisI,EAAE,CAAC,KAAKE,EAAEj8E,EAAE/tI,OAAOgqN,IAAkB,QAAdF,EAAE9K,EAAEn6M,EAAEkpI,EAAEi8E,GAAGjwM,MAAc7S,EAAEpC,EAAEglN,EAAE5iN,EAAE8iN,GAAG,OAAOlvM,EAAE+iE,EAAEisI,EAAEhvM,EAAEs9M,QAAQtO,EAAEhvM,EAAEgvM,GAAG,OAAOjsI,EAAE,IAAIisI,EAAE7iN,EAAEpC,EAAEilN,GAAGE,EAAEj8E,EAAE/tI,OAAOgqN,IAAsB,QAAlBJ,EAAE3kG,EAAE6kG,EAAEjlN,EAAEmlN,EAAEj8E,EAAEi8E,GAAGjwM,MAAczG,GAAG,OAAOs2M,EAAEmO,WAAWjO,EAAE2P,OAAO,OAAO7P,EAAEzmN,IAAI6mN,EAAEJ,EAAEzmN,KAAK+D,EAAEpC,EAAE8kN,EAAE1iN,EAAE8iN,GAAG,OAAOlvM,EAAE+iE,EAAE+rI,EAAE9uM,EAAEs9M,QAAQxO,EAAE9uM,EAAE8uM,GAA4C,OAAzCt2M,GAAGw2M,EAAEvzM,SAAQ,SAASjD,GAAG,OAAOC,EAAE1O,EAAEyO,MAAYuqE,EAAE,SAASpnC,EAAE5xC,EAAEqC,EAAE6mI,EAAEh0H,GAAG,IAAI8jE,EAAEmyI,EAAGjiF,GAAG,GAAG,oBAAoBlwD,EAAE,MAAM9uE,MAAMtD,EAAE,MAAkB,GAAG,OAAfsiI,EAAElwD,EAAE98E,KAAKgtI,IAC1e,MAAMh/H,MAAMtD,EAAE,MAAM,IAAI,IAAIqP,EAAE+iE,EAAE,KAAKisI,EAAE5iN,EAAE8iN,EAAE9iN,EAAE,EAAE0iN,EAAE,KAAKpoN,EAAEusI,EAAE/sI,OAAO,OAAO8oN,IAAItoN,EAAEP,KAAK+oN,IAAIxoN,EAAEusI,EAAE/sI,OAAO,CAAC8oN,EAAEpoJ,MAAMsoJ,GAAGJ,EAAEE,EAAEA,EAAE,MAAMF,EAAEE,EAAEsO,QAAQ,IAAI3hL,EAAEj8B,EAAE3V,EAAEilN,EAAEtoN,EAAEL,MAAM4Y,GAAG,GAAG,OAAO08B,EAAE,CAAC,OAAOqzK,IAAIA,EAAEF,GAAG,MAAMt2M,GAAGw2M,GAAG,OAAOrzK,EAAEshL,WAAWxkN,EAAE1O,EAAEilN,GAAG5iN,EAAEpC,EAAE2xC,EAAEvvC,EAAE8iN,GAAG,OAAOlvM,EAAE+iE,EAAEpnC,EAAE37B,EAAEs9M,QAAQ3hL,EAAE37B,EAAE27B,EAAEqzK,EAAEF,EAAE,GAAGpoN,EAAEP,KAAK,OAAOqC,EAAEuB,EAAEilN,GAAGjsI,EAAE,GAAG,OAAOisI,EAAE,CAAC,MAAMtoN,EAAEP,KAAK+oN,IAAIxoN,EAAEusI,EAAE/sI,OAAwB,QAAjBQ,EAAEw9M,EAAEn6M,EAAErD,EAAEL,MAAM4Y,MAAc7S,EAAEpC,EAAEtD,EAAE0F,EAAE8iN,GAAG,OAAOlvM,EAAE+iE,EAAEr8E,EAAEsZ,EAAEs9M,QAAQ52N,EAAEsZ,EAAEtZ,GAAG,OAAOq8E,EAAE,IAAIisI,EAAE7iN,EAAEpC,EAAEilN,IAAItoN,EAAEP,KAAK+oN,IAAIxoN,EAAEusI,EAAE/sI,OAA4B,QAArBQ,EAAEyjH,EAAE6kG,EAAEjlN,EAAEmlN,EAAExoN,EAAEL,MAAM4Y,MAAczG,GAAG,OAAO9R,EAAEu2N,WAChfjO,EAAE2P,OAAO,OAAOj4N,EAAE2B,IAAI6mN,EAAExoN,EAAE2B,KAAK+D,EAAEpC,EAAEtD,EAAE0F,EAAE8iN,GAAG,OAAOlvM,EAAE+iE,EAAEr8E,EAAEsZ,EAAEs9M,QAAQ52N,EAAEsZ,EAAEtZ,GAA4C,OAAzC8R,GAAGw2M,EAAEvzM,SAAQ,SAASjD,GAAG,OAAOC,EAAE1O,EAAEyO,MAAYuqE,EAAE,OAAO,SAASvqE,EAAErM,EAAEnC,EAAEipI,GAAG,IAAIh0H,EAAE,kBAAkBjV,GAAG,OAAOA,GAAGA,EAAEjC,OAAO8N,GAAI,OAAO7L,EAAE3B,IAAI4W,IAAIjV,EAAEA,EAAEjB,MAAMgE,UAAU,IAAIg2E,EAAE,kBAAkB/4E,GAAG,OAAOA,EAAE,GAAG+4E,EAAE,OAAO/4E,EAAEomN,UAAU,KAAK4D,EAAGx7M,EAAE,CAAS,IAARuqE,EAAE/4E,EAAE3B,IAAQ4W,EAAE9S,EAAE,OAAO8S,GAAG,CAAC,GAAGA,EAAE5W,MAAM06E,EAAE,CAAC,GAAmB,IAAZ9jE,EAAE6lJ,KAAY,GAAG96J,EAAEjC,OAAO8N,EAAG,CAACrN,EAAEgQ,EAAEyG,EAAEq+M,UAASnxN,EAAEpC,EAAEkV,EAAEjV,EAAEjB,MAAMgE,WAAY1C,OAAOmO,EAAEA,EAAErM,EAAE,MAAMqM,QAAgB,GAAGyG,EAAEs1N,cAAcvqO,EAAEjC,KAAK,CAACS,EAAEgQ,EAAEyG,EAAEq+M,UAC5enxN,EAAEpC,EAAEkV,EAAEjV,EAAEjB,QAASsc,IAAIyuN,GAAGt7N,EAAEyG,EAAEjV,GAAGmC,EAAE9B,OAAOmO,EAAEA,EAAErM,EAAE,MAAMqM,EAAGhQ,EAAEgQ,EAAEyG,GAAG,MAAWxG,EAAED,EAAEyG,GAAGA,EAAEA,EAAEq+M,QAAQtzN,EAAEjC,OAAO8N,IAAI1J,EAAEwoO,GAAG3qO,EAAEjB,MAAMgE,SAASyL,EAAE68F,KAAK49B,EAAEjpI,EAAE3B,MAAOgC,OAAOmO,EAAEA,EAAErM,KAAI8mI,EAAEuhG,GAAGxqO,EAAEjC,KAAKiC,EAAE3B,IAAI2B,EAAEjB,MAAM,KAAKyP,EAAE68F,KAAK49B,IAAK5tH,IAAIyuN,GAAGt7N,EAAErM,EAAEnC,GAAGipI,EAAE5oI,OAAOmO,EAAEA,EAAEy6H,GAAG,OAAO7mI,EAAEoM,GAAG,KAAKy7M,EAAGz7M,EAAE,CAAC,IAAIyG,EAAEjV,EAAE3B,IAAI,OAAO8D,GAAG,CAAC,GAAGA,EAAE9D,MAAM4W,EAAX,CAAa,GAAG,IAAI9S,EAAE24J,KAAK34J,EAAEwvN,UAAUyD,gBAAgBp1N,EAAEo1N,eAAejzN,EAAEwvN,UAAU8Y,iBAAiBzqO,EAAEyqO,eAAe,CAACjsO,EAAEgQ,EAAErM,EAAEmxN,UAASnxN,EAAEpC,EAAEoC,EAAEnC,EAAE+C,UAAU,KAAM1C,OAAOmO,EAAEA,EAAErM,EAAE,MAAMqM,EAAOhQ,EAAEgQ,EAAErM,GAAG,MAAWsM,EAAED,EAAErM,GAAGA,EAAEA,EAAEmxN,SAAQnxN,EACpfuoO,GAAG1qO,EAAEwO,EAAE68F,KAAK49B,IAAK5oI,OAAOmO,EAAEA,EAAErM,EAAE,OAAOC,EAAEoM,GAAG,GAAG,kBAAkBxO,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOmC,GAAG,IAAIA,EAAE24J,KAAKt8J,EAAEgQ,EAAErM,EAAEmxN,UAASnxN,EAAEpC,EAAEoC,EAAEnC,IAAKK,OAAOmO,EAAEA,EAAErM,IAAI3D,EAAEgQ,EAAErM,IAAGA,EAAEmoO,GAAGtqO,EAAEwO,EAAE68F,KAAK49B,IAAK5oI,OAAOmO,EAAEA,EAAErM,GAAGC,EAAEoM,GAAG,GAAGq7N,GAAG7pO,GAAG,OAAO0G,EAAE8H,EAAErM,EAAEnC,EAAEipI,GAAG,GAAGiiF,EAAGlrN,GAAG,OAAO2xC,EAAEnjC,EAAErM,EAAEnC,EAAEipI,GAAc,GAAXlwD,GAAGixJ,GAAGx7N,EAAExO,GAAM,qBAAqBA,IAAIiV,EAAE,OAAOzG,EAAEssJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM7wJ,MAAMtD,EAAE,IAAI8kN,EAAGj9M,EAAEzQ,OAAO,cAAe,OAAOS,EAAEgQ,EAAErM,IAAI,IAAIyoO,GAAGX,IAAG,GAAIY,GAAGZ,IAAG,GAAIa,GAAG,GAAGC,GAAGhH,GAAG+G,IAAIE,GAAGjH,GAAG+G,IAAIG,GAAGlH,GAAG+G,IACtd,SAASI,GAAG18N,GAAG,GAAGA,IAAIs8N,GAAG,MAAM7gO,MAAMtD,EAAE,MAAM,OAAO6H,EAAE,SAAS28N,GAAG38N,EAAEC,GAAyC,OAAtCu3M,GAAEilB,GAAGx8N,GAAGu3M,GAAEglB,GAAGx8N,GAAGw3M,GAAE+kB,GAAGD,IAAIt8N,EAAEC,EAAEtL,UAAmB,KAAK,EAAE,KAAK,GAAGsL,GAAGA,EAAEA,EAAEvN,iBAAiBuN,EAAEg/M,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkE7+M,EAAE6+M,GAArC7+M,GAAvBD,EAAE,IAAIA,EAAEC,EAAEzL,WAAWyL,GAAMg/M,cAAc,KAAKj/M,EAAEA,EAAE4pG,SAAkB2tG,GAAEglB,IAAI/kB,GAAE+kB,GAAGt8N,GAAG,SAAS28N,KAAKrlB,GAAEglB,IAAIhlB,GAAEilB,IAAIjlB,GAAEklB,IAAI,SAASI,GAAG78N,GAAG08N,GAAGD,GAAG37N,SAAS,IAAIb,EAAEy8N,GAAGH,GAAGz7N,SAAa9Q,EAAE8uN,GAAG7+M,EAAED,EAAEzQ,MAAM0Q,IAAIjQ,IAAIwnN,GAAEglB,GAAGx8N,GAAGw3M,GAAE+kB,GAAGvsO,IAAI,SAAS8sO,GAAG98N,GAAGw8N,GAAG17N,UAAUd,IAAIu3M,GAAEglB,IAAIhlB,GAAEilB,KAAK,IAAIr7F,GAAEo0F,GAAG,GAC9c,SAASwH,GAAG/8N,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAEqsJ,IAAI,CAAC,IAAIt8J,EAAEiQ,EAAE0kN,cAAc,GAAG,OAAO30N,IAAmB,QAAfA,EAAEA,EAAE40N,aAAqB,OAAO50N,EAAE0Q,MAAM,OAAO1Q,EAAE0Q,MAAM,OAAOT,OAAO,GAAG,KAAKA,EAAEqsJ,UAAK,IAASrsJ,EAAE+8N,cAAcC,aAAa,GAAG,KAAa,GAARh9N,EAAE2uK,OAAU,OAAO3uK,OAAO,GAAG,OAAOA,EAAEygG,MAAM,CAACzgG,EAAEygG,MAAM7uG,OAAOoO,EAAEA,EAAEA,EAAEygG,MAAM,SAAS,GAAGzgG,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE6kN,SAAS,CAAC,GAAG,OAAO7kN,EAAEpO,QAAQoO,EAAEpO,SAASmO,EAAE,OAAO,KAAKC,EAAEA,EAAEpO,OAAOoO,EAAE6kN,QAAQjzN,OAAOoO,EAAEpO,OAAOoO,EAAEA,EAAE6kN,QAAQ,OAAO,KAAK,IAAIoY,GAAG,KAAKC,GAAG,KAAKC,IAAG,EACpd,SAASC,GAAGr9N,EAAEC,GAAG,IAAIjQ,EAAEstO,GAAG,EAAE,KAAK,KAAK,GAAGttO,EAAE+rO,YAAY,UAAU/rO,EAAET,KAAK,UAAUS,EAAEmzN,UAAUljN,EAAEjQ,EAAE6B,OAAOmO,EAAEhQ,EAAE4+K,MAAM,EAAE,OAAO5uK,EAAE07N,YAAY17N,EAAE07N,WAAWC,WAAW3rO,EAAEgQ,EAAE07N,WAAW1rO,GAAGgQ,EAAE47N,YAAY57N,EAAE07N,WAAW1rO,EAAE,SAASutO,GAAGv9N,EAAEC,GAAG,OAAOD,EAAEssJ,KAAK,KAAK,EAAE,IAAIt8J,EAAEgQ,EAAEzQ,KAAyE,OAAO,QAA3E0Q,EAAE,IAAIA,EAAEtL,UAAU3E,EAAEsN,gBAAgB2C,EAAErE,SAAS0B,cAAc,KAAK2C,KAAmBD,EAAEmjN,UAAUljN,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKD,EAAEw9N,cAAc,IAAIv9N,EAAEtL,SAAS,KAAKsL,KAAYD,EAAEmjN,UAAUljN,GAAE,GAAwB,QAAQ,OAAM,GACve,SAASw9N,GAAGz9N,GAAG,GAAGo9N,GAAG,CAAC,IAAIn9N,EAAEk9N,GAAG,GAAGl9N,EAAE,CAAC,IAAIjQ,EAAEiQ,EAAE,IAAIs9N,GAAGv9N,EAAEC,GAAG,CAAqB,KAApBA,EAAE40N,GAAG7kO,EAAEkiO,gBAAqBqL,GAAGv9N,EAAEC,GAAuC,OAAnCD,EAAE4uK,OAAe,KAAT5uK,EAAE4uK,MAAY,EAAEwuD,IAAG,OAAGF,GAAGl9N,GAASq9N,GAAGH,GAAGltO,GAAGktO,GAAGl9N,EAAEm9N,GAAGtI,GAAG50N,EAAEqqC,iBAAiBtqC,EAAE4uK,OAAe,KAAT5uK,EAAE4uK,MAAY,EAAEwuD,IAAG,EAAGF,GAAGl9N,GAAG,SAAS09N,GAAG19N,GAAG,IAAIA,EAAEA,EAAEnO,OAAO,OAAOmO,GAAG,IAAIA,EAAEssJ,KAAK,IAAItsJ,EAAEssJ,KAAK,KAAKtsJ,EAAEssJ,KAAKtsJ,EAAEA,EAAEnO,OAAOqrO,GAAGl9N,EAC5S,SAAS29N,GAAG39N,GAAG,GAAGA,IAAIk9N,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOM,GAAG19N,GAAGo9N,IAAG,GAAG,EAAG,IAAIn9N,EAAED,EAAEzQ,KAAK,GAAG,IAAIyQ,EAAEssJ,KAAK,SAASrsJ,GAAG,SAASA,IAAIw0N,GAAGx0N,EAAED,EAAEg9N,eAAe,IAAI/8N,EAAEk9N,GAAGl9N,GAAGo9N,GAAGr9N,EAAEC,GAAGA,EAAE40N,GAAG50N,EAAEiyN,aAAmB,GAANwL,GAAG19N,GAAM,KAAKA,EAAEssJ,IAAI,CAAgD,KAA7BtsJ,EAAE,QAApBA,EAAEA,EAAE2kN,eAAyB3kN,EAAE4kN,WAAW,MAAW,MAAMnpN,MAAMtD,EAAE,MAAM6H,EAAE,CAAiB,IAAhBA,EAAEA,EAAEkyN,YAAgBjyN,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAErL,SAAS,CAAC,IAAI3E,EAAEgQ,EAAEU,KAAK,GAAG,OAAO1Q,EAAE,CAAC,GAAG,IAAIiQ,EAAE,CAACk9N,GAAGtI,GAAG70N,EAAEkyN,aAAa,MAAMlyN,EAAEC,QAAQ,MAAMjQ,GAAG,OAAOA,GAAG,OAAOA,GAAGiQ,IAAID,EAAEA,EAAEkyN,YAAYiL,GAAG,WAAWA,GAAGD,GAAGrI,GAAG70N,EAAEmjN,UAAU+O,aAAa,KAAK,OAAM,EACtf,SAAS0L,KAAKT,GAAGD,GAAG,KAAKE,IAAG,EAAG,IAAIS,GAAG,GAAG,SAASC,KAAK,IAAI,IAAI99N,EAAE,EAAEA,EAAE69N,GAAGnxO,OAAOsT,IAAI69N,GAAG79N,GAAG+9N,8BAA8B,KAAKF,GAAGnxO,OAAO,EAAE,IAAIsxO,GAAGziB,EAAG/C,uBAAuBylB,GAAG1iB,EAAG9C,wBAAwBylB,GAAG,EAAE5lB,GAAE,KAAK/K,GAAE,KAAKgL,GAAE,KAAK4lB,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAK,MAAM5iO,MAAMtD,EAAE,MAAO,SAASmmO,GAAGt+N,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIjQ,EAAE,EAAEA,EAAEiQ,EAAEvT,QAAQsD,EAAEgQ,EAAEtT,OAAOsD,IAAI,IAAI6hO,GAAG7xN,EAAEhQ,GAAGiQ,EAAEjQ,IAAI,OAAM,EAAG,OAAM,EAC9X,SAASuuO,GAAGv+N,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAyH,GAAtH0sO,GAAG1sO,EAAE8mN,GAAEr4M,EAAEA,EAAE0kN,cAAc,KAAK1kN,EAAEq5N,YAAY,KAAKr5N,EAAE+4N,MAAM,EAAEgF,GAAGl9N,QAAQ,OAAOd,GAAG,OAAOA,EAAE2kN,cAAc6Z,GAAGC,GAAGz+N,EAAEhQ,EAAE2D,EAAEpC,GAAM6sO,GAAG,CAAC5sO,EAAE,EAAE,EAAE,CAAO,GAAN4sO,IAAG,IAAQ,GAAG5sO,GAAG,MAAMiK,MAAMtD,EAAE,MAAM3G,GAAG,EAAE+mN,GAAEhL,GAAE,KAAKttM,EAAEq5N,YAAY,KAAK0E,GAAGl9N,QAAQ49N,GAAG1+N,EAAEhQ,EAAE2D,EAAEpC,SAAS6sO,IAAkE,GAA9DJ,GAAGl9N,QAAQ69N,GAAG1+N,EAAE,OAAOstM,IAAG,OAAOA,GAAE7/M,KAAKwwO,GAAG,EAAE3lB,GAAEhL,GAAE+K,GAAE,KAAK6lB,IAAG,EAAMl+N,EAAE,MAAMxE,MAAMtD,EAAE,MAAM,OAAO6H,EAAE,SAAS4+N,KAAK,IAAI5+N,EAAE,CAAC2kN,cAAc,KAAK4U,UAAU,KAAKsF,UAAU,KAAKj5K,MAAM,KAAKl4D,KAAK,MAA8C,OAAxC,OAAO6qN,GAAED,GAAEqM,cAAcpM,GAAEv4M,EAAEu4M,GAAEA,GAAE7qN,KAAKsS,EAASu4M,GAC/e,SAASumB,KAAK,GAAG,OAAOvxB,GAAE,CAAC,IAAIvtM,EAAEs4M,GAAEmM,UAAUzkN,EAAE,OAAOA,EAAEA,EAAE2kN,cAAc,UAAU3kN,EAAEutM,GAAE7/M,KAAK,IAAIuS,EAAE,OAAOs4M,GAAED,GAAEqM,cAAcpM,GAAE7qN,KAAK,GAAG,OAAOuS,EAAEs4M,GAAEt4M,EAAEstM,GAAEvtM,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMvE,MAAMtD,EAAE,MAAU6H,EAAE,CAAC2kN,eAAPpX,GAAEvtM,GAAqB2kN,cAAc4U,UAAUhsB,GAAEgsB,UAAUsF,UAAUtxB,GAAEsxB,UAAUj5K,MAAM2nJ,GAAE3nJ,MAAMl4D,KAAK,MAAM,OAAO6qN,GAAED,GAAEqM,cAAcpM,GAAEv4M,EAAEu4M,GAAEA,GAAE7qN,KAAKsS,EAAE,OAAOu4M,GAAE,SAASwmB,GAAG/+N,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,EACvY,SAAS++N,GAAGh/N,GAAG,IAAIC,EAAE6+N,KAAK9uO,EAAEiQ,EAAE2lD,MAAM,GAAG,OAAO51D,EAAE,MAAMyL,MAAMtD,EAAE,MAAMnI,EAAEivO,oBAAoBj/N,EAAE,IAAIrM,EAAE45M,GAAEh8M,EAAEoC,EAAEkrO,UAAUrtO,EAAExB,EAAE0pO,QAAQ,GAAG,OAAOloO,EAAE,CAAC,GAAG,OAAOD,EAAE,CAAC,IAAIqC,EAAErC,EAAE7D,KAAK6D,EAAE7D,KAAK8D,EAAE9D,KAAK8D,EAAE9D,KAAKkG,EAAED,EAAEkrO,UAAUttO,EAAEC,EAAExB,EAAE0pO,QAAQ,KAAK,GAAG,OAAOnoO,EAAE,CAACA,EAAEA,EAAE7D,KAAKiG,EAAEA,EAAE4lO,UAAU,IAAI9+F,EAAE7mI,EAAEpC,EAAE,KAAKiV,EAAElV,EAAE,EAAE,CAAC,IAAIg5E,EAAE9jE,EAAEszN,KAAK,IAAImE,GAAG3zJ,KAAKA,EAAE,OAAOkwD,IAAIA,EAAEA,EAAE/sI,KAAK,CAACqsO,KAAK,EAAEj/L,OAAOr0B,EAAEq0B,OAAOokM,aAAaz4N,EAAEy4N,aAAaC,WAAW14N,EAAE04N,WAAWzxO,KAAK,OAAOiG,EAAE8S,EAAEy4N,eAAel/N,EAAEyG,EAAE04N,WAAWn/N,EAAErM,EAAE8S,EAAEq0B,YAAY,CAAC,IAAI5sC,EAAE,CAAC6rO,KAAKxvJ,EAAEzvC,OAAOr0B,EAAEq0B,OAAOokM,aAAaz4N,EAAEy4N,aAC9fC,WAAW14N,EAAE04N,WAAWzxO,KAAK,MAAM,OAAO+sI,GAAG7mI,EAAE6mI,EAAEvsI,EAAEsD,EAAEmC,GAAG8mI,EAAEA,EAAE/sI,KAAKQ,EAAEoqN,GAAE0gB,OAAOzuJ,EAAE6vJ,IAAI7vJ,EAAE9jE,EAAEA,EAAE/Y,WAAW,OAAO+Y,GAAGA,IAAIlV,GAAG,OAAOkpI,EAAEjpI,EAAEmC,EAAE8mI,EAAE/sI,KAAKkG,EAAEi+N,GAAGl+N,EAAEsM,EAAE0kN,iBAAiBsU,IAAG,GAAIh5N,EAAE0kN,cAAchxN,EAAEsM,EAAEs5N,UAAU/nO,EAAEyO,EAAE4+N,UAAUpkG,EAAEzqI,EAAEovO,kBAAkBzrO,EAAE,MAAM,CAACsM,EAAE0kN,cAAc30N,EAAEqoB,UACtQ,SAASgnN,GAAGr/N,GAAG,IAAIC,EAAE6+N,KAAK9uO,EAAEiQ,EAAE2lD,MAAM,GAAG,OAAO51D,EAAE,MAAMyL,MAAMtD,EAAE,MAAMnI,EAAEivO,oBAAoBj/N,EAAE,IAAIrM,EAAE3D,EAAEqoB,SAAS9mB,EAAEvB,EAAE0pO,QAAQloO,EAAEyO,EAAE0kN,cAAc,GAAG,OAAOpzN,EAAE,CAACvB,EAAE0pO,QAAQ,KAAK,IAAI9lO,EAAErC,EAAEA,EAAE7D,KAAK,GAAG8D,EAAEwO,EAAExO,EAAEoC,EAAEknC,QAAQlnC,EAAEA,EAAElG,WAAWkG,IAAIrC,GAAGsgO,GAAGrgO,EAAEyO,EAAE0kN,iBAAiBsU,IAAG,GAAIh5N,EAAE0kN,cAAcnzN,EAAE,OAAOyO,EAAE4+N,YAAY5+N,EAAEs5N,UAAU/nO,GAAGxB,EAAEovO,kBAAkB5tO,EAAE,MAAM,CAACA,EAAEmC,GACnV,SAAS2rO,GAAGt/N,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEsM,EAAEs/N,YAAY5rO,EAAEA,EAAEsM,EAAEu/N,SAAS,IAAIjuO,EAAE0O,EAAE89N,8BAAyI,GAAxG,OAAOxsO,EAAEyO,EAAEzO,IAAIoC,GAAUqM,EAAEA,EAAEy/N,kBAAiBz/N,GAAGk+N,GAAGl+N,KAAKA,KAAEC,EAAE89N,8BAA8BpqO,EAAEkqO,GAAGjwO,KAAKqS,KAAMD,EAAE,OAAOhQ,EAAEiQ,EAAEu/N,SAAoB,MAAX3B,GAAGjwO,KAAKqS,GAASxE,MAAMtD,EAAE,MACzP,SAASunO,GAAG1/N,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEouO,GAAE,GAAG,OAAOpuO,EAAE,MAAMkK,MAAMtD,EAAE,MAAM,IAAI3G,EAAEyO,EAAEs/N,YAAY3rO,EAAEpC,EAAEyO,EAAEu/N,SAAS/kG,EAAEujG,GAAGl9N,QAAQ2F,EAAEg0H,EAAEq/E,UAAS,WAAW,OAAOwlB,GAAG/tO,EAAE0O,EAAEjQ,MAAKu6E,EAAE9jE,EAAE,GAAGvY,EAAEuY,EAAE,GAAGA,EAAE8xM,GAAE,IAAI7M,EAAE1rM,EAAE2kN,cAAcz9M,EAAEwkM,EAAEsL,KAAKrlG,EAAEzqG,EAAE04N,YAAY1nO,EAAEwzM,EAAE1oM,OAAO0oM,EAAEA,EAAEm0B,UAAU,IAAI18L,EAAEm1K,GACuO,OADrOt4M,EAAE2kN,cAAc,CAAC3N,KAAK9vM,EAAElE,OAAO/C,EAAE4/N,UAAUlsO,GAAG8mI,EAAE++E,WAAU,WAAWtyM,EAAE04N,YAAY5vO,EAAEkX,EAAE44N,YAAYv1J,EAAE,IAAIvqE,EAAExO,EAAEyO,EAAEu/N,SAAS,IAAI3N,GAAGj+N,EAAEoM,GAAG,CAACA,EAAEhQ,EAAEiQ,EAAEu/N,SAAS3N,GAAG3jO,EAAE8R,KAAKuqE,EAAEvqE,GAAGA,EAAE26N,GAAGx3L,GAAG5xC,EAAEkuO,kBAAkBz/N,EAAEzO,EAAEm3N,cAAc1oN,EAAEzO,EAAEkuO,iBAAiBluO,EAAEw3N,gBAAgB/oN,EAAE,IAAI,IAAIrM,EAC5fpC,EAAEy3N,cAAcvuF,EAAEz6H,EAAE,EAAEy6H,GAAG,CAAC,IAAIh0H,EAAE,GAAGqiN,GAAGruF,GAAGrJ,EAAE,GAAG3qH,EAAE9S,EAAE8S,IAAIzG,EAAEy6H,IAAIrJ,MAAK,CAACphI,EAAEiQ,EAAEtM,IAAI8mI,EAAE++E,WAAU,WAAW,OAAO7lN,EAAEsM,EAAEu/N,SAAQ,WAAW,IAAIx/N,EAAEkH,EAAE04N,YAAY5vO,EAAEkX,EAAE44N,YAAY,IAAI9vO,EAAEgQ,EAAEC,EAAEu/N,UAAU,IAAI7rO,EAAEgnO,GAAGx3L,GAAG5xC,EAAEkuO,kBAAkB9rO,EAAEpC,EAAEm3N,aAAa,MAAMpS,GAAGtmN,GAAE,WAAW,MAAMsmN,WAAS,CAACr2M,EAAEtM,IAAIk+N,GAAGlgH,EAAE3hH,IAAI6hO,GAAG35N,EAAE+H,IAAI4xN,GAAGnmB,EAAE/3M,MAAKqM,EAAE,CAAC05N,QAAQ,KAAKrhN,SAAS,KAAK4mN,oBAAoBF,GAAGK,kBAAkBlxO,IAAKmqB,SAASkyD,EAAEw1J,GAAGj0N,KAAK,KAAKwsM,GAAEt4M,GAAGyG,EAAEm/C,MAAM5lD,EAAEyG,EAAEo4N,UAAU,KAAK3wO,EAAEoxO,GAAG/tO,EAAE0O,EAAEjQ,GAAGyW,EAAEk+M,cAAcl+M,EAAE8yN,UAAUrrO,GAAUA,EACte,SAAS8xO,GAAGhgO,EAAEC,EAAEjQ,GAAc,OAAO0vO,GAAZZ,KAAiB9+N,EAAEC,EAAEjQ,GAAG,SAASiwO,GAAGjgO,GAAG,IAAIC,EAAE2+N,KAAmL,MAA9K,oBAAoB5+N,IAAIA,EAAEA,KAAKC,EAAE0kN,cAAc1kN,EAAEs5N,UAAUv5N,EAAoFA,GAAlFA,EAAEC,EAAE2lD,MAAM,CAAC8zK,QAAQ,KAAKrhN,SAAS,KAAK4mN,oBAAoBF,GAAGK,kBAAkBp/N,IAAOqY,SAAS0nN,GAAGj0N,KAAK,KAAKwsM,GAAEt4M,GAAS,CAACC,EAAE0kN,cAAc3kN,GAChR,SAASkgO,GAAGlgO,EAAEC,EAAEjQ,EAAE2D,GAAkO,OAA/NqM,EAAE,CAACssJ,IAAItsJ,EAAE0K,OAAOzK,EAAEwQ,QAAQzgB,EAAEqiD,KAAK1+C,EAAEjG,KAAK,MAAsB,QAAhBuS,EAAEq4M,GAAEghB,cAAsBr5N,EAAE,CAACy7N,WAAW,MAAMpjB,GAAEghB,YAAYr5N,EAAEA,EAAEy7N,WAAW17N,EAAEtS,KAAKsS,GAAmB,QAAfhQ,EAAEiQ,EAAEy7N,YAAoBz7N,EAAEy7N,WAAW17N,EAAEtS,KAAKsS,GAAGrM,EAAE3D,EAAEtC,KAAKsC,EAAEtC,KAAKsS,EAAEA,EAAEtS,KAAKiG,EAAEsM,EAAEy7N,WAAW17N,GAAWA,EAAE,SAASmgO,GAAGngO,GAA4B,OAAdA,EAAE,CAACc,QAAQd,GAAhB4+N,KAA4Bja,cAAc3kN,EAAE,SAASogO,KAAK,OAAOtB,KAAKna,cAAc,SAAS0b,GAAGrgO,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEqtO,KAAKtmB,GAAE1pC,OAAO5uK,EAAEzO,EAAEozN,cAAcub,GAAG,EAAEjgO,EAAEjQ,OAAE,OAAO,IAAS2D,EAAE,KAAKA,GACjc,SAAS2sO,GAAGtgO,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEutO,KAAKnrO,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAInC,OAAE,EAAO,GAAG,OAAO+7M,GAAE,CAAC,IAAI35M,EAAE25M,GAAEoX,cAA0B,GAAZnzN,EAAEoC,EAAE6c,QAAW,OAAO9c,GAAG2qO,GAAG3qO,EAAEC,EAAEy+C,MAAmB,YAAZ6tL,GAAGjgO,EAAEjQ,EAAEwB,EAAEmC,GAAW2kN,GAAE1pC,OAAO5uK,EAAEzO,EAAEozN,cAAcub,GAAG,EAAEjgO,EAAEjQ,EAAEwB,EAAEmC,GAAG,SAAS4sO,GAAGvgO,EAAEC,GAAG,OAAOogO,GAAG,IAAI,EAAErgO,EAAEC,GAAG,SAASugO,GAAGxgO,EAAEC,GAAG,OAAOqgO,GAAG,IAAI,EAAEtgO,EAAEC,GAAG,SAASwgO,GAAGzgO,EAAEC,GAAG,OAAOqgO,GAAG,EAAE,EAAEtgO,EAAEC,GAAG,SAASygO,GAAG1gO,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAEa,QAAQd,EAAE,WAAWC,EAAEa,QAAQ,YAAtE,EACxY,SAAS6/N,GAAG3gO,EAAEC,EAAEjQ,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEF,OAAO,CAACkQ,IAAI,KAAYsgO,GAAG,EAAE,EAAEI,GAAG50N,KAAK,KAAK7L,EAAED,GAAGhQ,GAAG,SAAS4wO,MAAM,SAASC,GAAG7gO,EAAEC,GAAG,IAAIjQ,EAAE8uO,KAAK7+N,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAItM,EAAE3D,EAAE20N,cAAc,OAAG,OAAOhxN,GAAG,OAAOsM,GAAGq+N,GAAGr+N,EAAEtM,EAAE,IAAWA,EAAE,IAAG3D,EAAE20N,cAAc,CAAC3kN,EAAEC,GAAUD,GAAE,SAAS8gO,GAAG9gO,EAAEC,GAAG,IAAIjQ,EAAE8uO,KAAK7+N,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAItM,EAAE3D,EAAE20N,cAAc,OAAG,OAAOhxN,GAAG,OAAOsM,GAAGq+N,GAAGr+N,EAAEtM,EAAE,IAAWA,EAAE,IAAGqM,EAAEA,IAAIhQ,EAAE20N,cAAc,CAAC3kN,EAAEC,GAAUD,GACzZ,SAAS+gO,GAAG/gO,EAAEC,GAAG,IAAIjQ,EAAE8nO,KAAKC,GAAG,GAAG/nO,EAAE,GAAGA,GAAE,WAAWgQ,GAAE,MAAM+3N,GAAG,GAAG/nO,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEiuO,GAAG5gE,WAAW4gE,GAAG5gE,WAAW,EAAE,IAAIr9J,GAAE,GAAIC,IAAV,QAAsBg+N,GAAG5gE,WAAWrtK,MAC5J,SAAS+vO,GAAG//N,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAE+mO,KAAKnpO,EAAEopO,GAAG36N,GAAGxO,EAAE,CAACuoO,KAAKxoO,EAAEupC,OAAO9qC,EAAEkvO,aAAa,KAAKC,WAAW,KAAKzxO,KAAK,MAAMkG,EAAEqM,EAAEy5N,QAA6E,GAArE,OAAO9lO,EAAEpC,EAAE9D,KAAK8D,GAAGA,EAAE9D,KAAKkG,EAAElG,KAAKkG,EAAElG,KAAK8D,GAAGyO,EAAEy5N,QAAQloO,EAAEoC,EAAEoM,EAAEykN,UAAazkN,IAAIs4M,IAAG,OAAO1kN,GAAGA,IAAI0kN,GAAE8lB,GAAGD,IAAG,MAAO,CAAC,GAAG,IAAIn+N,EAAEg5N,QAAQ,OAAOplO,GAAG,IAAIA,EAAEolO,QAAiC,QAAxBplO,EAAEqM,EAAEg/N,qBAA8B,IAAI,IAAIxkG,EAAEx6H,EAAEm/N,kBAAkB34N,EAAE7S,EAAE6mI,EAAEzqI,GAAmC,GAAhCwB,EAAE0tO,aAAatrO,EAAEpC,EAAE2tO,WAAW14N,EAAKorN,GAAGprN,EAAEg0H,GAAG,OAAO,MAAMlwD,IAAaqwJ,GAAG56N,EAAEzO,EAAEoC,IAC9Z,IAAIgrO,GAAG,CAACqC,YAAY9H,GAAG5f,YAAY+kB,GAAGtsH,WAAWssH,GAAG7kB,UAAU6kB,GAAG5kB,oBAAoB4kB,GAAG3kB,gBAAgB2kB,GAAG1kB,QAAQ0kB,GAAGzkB,WAAWykB,GAAGxkB,OAAOwkB,GAAGvkB,SAASukB,GAAG9kB,cAAc8kB,GAAG4C,iBAAiB5C,GAAG6C,cAAc7C,GAAG8C,iBAAiB9C,GAAG+C,oBAAoB/C,GAAGgD,0BAAyB,GAAI7C,GAAG,CAACwC,YAAY9H,GAAG5f,YAAY,SAASt5M,EAAEC,GAA4C,OAAzC2+N,KAAKja,cAAc,CAAC3kN,OAAE,IAASC,EAAE,KAAKA,GAAUD,GAAG+xG,WAAWmnH,GAAG1f,UAAU+mB,GAAG9mB,oBAAoB,SAASz5M,EAAEC,EAAEjQ,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEF,OAAO,CAACkQ,IAAI,KAAYqgO,GAAG,EAAE,EAAEK,GAAG50N,KAAK,KACvf7L,EAAED,GAAGhQ,IAAI0pN,gBAAgB,SAAS15M,EAAEC,GAAG,OAAOogO,GAAG,EAAE,EAAErgO,EAAEC,IAAI05M,QAAQ,SAAS35M,EAAEC,GAAG,IAAIjQ,EAAE4uO,KAAqD,OAAhD3+N,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIhQ,EAAE20N,cAAc,CAAC3kN,EAAEC,GAAUD,GAAG45M,WAAW,SAAS55M,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEirO,KAAuK,OAAlK3+N,OAAE,IAASjQ,EAAEA,EAAEiQ,GAAGA,EAAEtM,EAAEgxN,cAAchxN,EAAE4lO,UAAUt5N,EAAmFD,GAAjFA,EAAErM,EAAEiyD,MAAM,CAAC8zK,QAAQ,KAAKrhN,SAAS,KAAK4mN,oBAAoBj/N,EAAEo/N,kBAAkBn/N,IAAOoY,SAAS0nN,GAAGj0N,KAAK,KAAKwsM,GAAEt4M,GAAS,CAACrM,EAAEgxN,cAAc3kN,IAAI65M,OAAOsmB,GAAGrmB,SAASmmB,GAAG1mB,cAAcqnB,GAAGK,iBAAiB,SAASjhO,GAAG,IAAIC,EAAEggO,GAAGjgO,GAAGhQ,EAAEiQ,EAAE,GAAGtM,EAAEsM,EAAE,GAC5Z,OAD+ZsgO,IAAG,WAAW,IAAItgO,EAAEg+N,GAAG5gE,WAC9e4gE,GAAG5gE,WAAW,EAAE,IAAI1pK,EAAEqM,GAAN,QAAiBi+N,GAAG5gE,WAAWp9J,KAAI,CAACD,IAAWhQ,GAAGkxO,cAAc,WAAW,IAAIlhO,EAAEigO,IAAG,GAAIhgO,EAAED,EAAE,GAA8B,OAANmgO,GAArBngO,EAAE+gO,GAAGj1N,KAAK,KAAK9L,EAAE,KAAgB,CAACA,EAAEC,IAAIkhO,iBAAiB,SAASnhO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEirO,KAAkF,OAA7EjrO,EAAEgxN,cAAc,CAAC3N,KAAK,CAAC4oB,YAAY3/N,EAAE6/N,YAAY,MAAM98N,OAAOhD,EAAE6/N,UAAU7vO,GAAU0vO,GAAG/rO,EAAEqM,EAAEC,EAAEjQ,IAAIoxO,oBAAoB,WAAW,GAAGhE,GAAG,CAAC,IAAIp9N,GAAE,EAAGC,EAzDlD,SAAYD,GAAG,MAAM,CAAC43M,SAASwE,EAAG/tN,SAAS2R,EAAEsL,QAAQtL,GAyDDshO,EAAG,WAAiD,MAAtCthO,IAAIA,GAAE,EAAGhQ,EAAE,MAAMglO,MAAM3mO,SAAS,MAAYoN,MAAMtD,EAAE,SAASnI,EAAEiwO,GAAGhgO,GAAG,GAC1Z,OAD6Z,KAAY,EAAPq4M,GAAEz7G,QAAUy7G,GAAE1pC,OAAO,IAAIsxD,GAAG,GAAE,WAAWlwO,EAAE,MAAMglO,MAAM3mO,SAAS,YAChf,EAAO,OAAc4R,EAAmC,OAANggO,GAA3BhgO,EAAE,MAAM+0N,MAAM3mO,SAAS,KAAiB4R,GAAGohO,0BAAyB,GAAI5C,GAAG,CAACuC,YAAY9H,GAAG5f,YAAYunB,GAAG9uH,WAAWmnH,GAAG1f,UAAUgnB,GAAG/mB,oBAAoBknB,GAAGjnB,gBAAgB+mB,GAAG9mB,QAAQmnB,GAAGlnB,WAAWolB,GAAGnlB,OAAOumB,GAAGtmB,SAAS,WAAW,OAAOklB,GAAGD,KAAKxlB,cAAcqnB,GAAGK,iBAAiB,SAASjhO,GAAG,IAAIC,EAAE++N,GAAGD,IAAI/uO,EAAEiQ,EAAE,GAAGtM,EAAEsM,EAAE,GAA6F,OAA1FugO,IAAG,WAAW,IAAIvgO,EAAEg+N,GAAG5gE,WAAW4gE,GAAG5gE,WAAW,EAAE,IAAI1pK,EAAEqM,GAAN,QAAiBi+N,GAAG5gE,WAAWp9J,KAAI,CAACD,IAAWhQ,GAAGkxO,cAAc,WAAW,IAAIlhO,EAAEg/N,GAAGD,IAAI,GAAG,MAAM,CAACqB,KAAKt/N,QAC9ed,IAAImhO,iBAAiBnB,GAAGoB,oBAAoB,WAAW,OAAOpC,GAAGD,IAAI,IAAIsC,0BAAyB,GAAI3C,GAAG,CAACsC,YAAY9H,GAAG5f,YAAYunB,GAAG9uH,WAAWmnH,GAAG1f,UAAUgnB,GAAG/mB,oBAAoBknB,GAAGjnB,gBAAgB+mB,GAAG9mB,QAAQmnB,GAAGlnB,WAAWylB,GAAGxlB,OAAOumB,GAAGtmB,SAAS,WAAW,OAAOulB,GAAGN,KAAKxlB,cAAcqnB,GAAGK,iBAAiB,SAASjhO,GAAG,IAAIC,EAAEo/N,GAAGN,IAAI/uO,EAAEiQ,EAAE,GAAGtM,EAAEsM,EAAE,GAA6F,OAA1FugO,IAAG,WAAW,IAAIvgO,EAAEg+N,GAAG5gE,WAAW4gE,GAAG5gE,WAAW,EAAE,IAAI1pK,EAAEqM,GAAN,QAAiBi+N,GAAG5gE,WAAWp9J,KAAI,CAACD,IAAWhQ,GAAGkxO,cAAc,WAAW,IAAIlhO,EAAEq/N,GAAGN,IAAI,GAAG,MAAM,CAACqB,KAAKt/N,QACrfd,IAAImhO,iBAAiBnB,GAAGoB,oBAAoB,WAAW,OAAO/B,GAAGN,IAAI,IAAIsC,0BAAyB,GAAIE,GAAGhmB,EAAG7C,kBAAkBugB,IAAG,EAAG,SAASuI,GAAGxhO,EAAEC,EAAEjQ,EAAE2D,GAAGsM,EAAEygG,MAAM,OAAO1gG,EAAEq8N,GAAGp8N,EAAE,KAAKjQ,EAAE2D,GAAGyoO,GAAGn8N,EAAED,EAAE0gG,MAAM1wG,EAAE2D,GAAG,SAAS8tO,GAAGzhO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAGvB,EAAEA,EAAEqgB,OAAO,IAAI7e,EAAEyO,EAAE4M,IAA8B,OAA1BgsN,GAAG54N,EAAE1O,GAAGoC,EAAE4qO,GAAGv+N,EAAEC,EAAEjQ,EAAE2D,EAAEnC,EAAED,GAAM,OAAOyO,GAAIi5N,IAA0Eh5N,EAAE2uK,OAAO,EAAE4yD,GAAGxhO,EAAEC,EAAEtM,EAAEpC,GAAU0O,EAAEygG,QAAhGzgG,EAAEq5N,YAAYt5N,EAAEs5N,YAAYr5N,EAAE2uK,QAAQ,IAAI5uK,EAAEg5N,QAAQznO,EAAEmwO,GAAG1hO,EAAEC,EAAE1O,IACxW,SAASowO,GAAG3hO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG,GAAG,OAAOwO,EAAE,CAAC,IAAIpM,EAAE5D,EAAET,KAAK,MAAG,oBAAoBqE,GAAIguO,GAAGhuO,SAAI,IAASA,EAAEs4E,cAAc,OAAOl8E,EAAE+wL,cAAS,IAAS/wL,EAAEk8E,eAAsDlsE,EAAEg8N,GAAGhsO,EAAET,KAAK,KAAKoE,EAAEsM,EAAEA,EAAE48F,KAAKrrG,IAAKqb,IAAI5M,EAAE4M,IAAI7M,EAAEnO,OAAOoO,EAASA,EAAEygG,MAAM1gG,IAAvGC,EAAEqsJ,IAAI,GAAGrsJ,EAAE1Q,KAAKqE,EAAEiuO,GAAG7hO,EAAEC,EAAErM,EAAED,EAAEpC,EAAEC,IAAoF,OAAVoC,EAAEoM,EAAE0gG,MAAS,KAAKnvG,EAAEC,KAAKD,EAAEqC,EAAEopO,eAA0BhtO,EAAE,QAAdA,EAAEA,EAAE+wL,SAAmB/wL,EAAE+hO,IAAKxgO,EAAEoC,IAAIqM,EAAE6M,MAAM5M,EAAE4M,KAAY60N,GAAG1hO,EAAEC,EAAEzO,IAAGyO,EAAE2uK,OAAO,GAAE5uK,EAAE67N,GAAGjoO,EAAED,IAAKkZ,IAAI5M,EAAE4M,IAAI7M,EAAEnO,OAAOoO,EAASA,EAAEygG,MAAM1gG,GAClb,SAAS6hO,GAAG7hO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG,GAAG,OAAOwO,GAAG+xN,GAAG/xN,EAAEg9N,cAAcrpO,IAAIqM,EAAE6M,MAAM5M,EAAE4M,IAAI,IAAGosN,IAAG,EAAG,KAAKznO,EAAED,GAAqC,OAAO0O,EAAE+4N,MAAMh5N,EAAEg5N,MAAM0I,GAAG1hO,EAAEC,EAAEzO,GAAhE,KAAa,MAARwO,EAAE4uK,SAAeqqD,IAAG,GAA0C,OAAO6I,GAAG9hO,EAAEC,EAAEjQ,EAAE2D,EAAEnC,GACnL,SAASuwO,GAAG/hO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEsM,EAAEu9N,aAAajsO,EAAEoC,EAAEY,SAAS/C,EAAE,OAAOwO,EAAEA,EAAE2kN,cAAc,KAAK,GAAG,WAAWhxN,EAAEkpG,MAAM,kCAAkClpG,EAAEkpG,KAAK,GAAG,KAAY,EAAP58F,EAAE48F,MAAQ58F,EAAE0kN,cAAc,CAACqd,UAAU,GAAGC,GAAGhiO,EAAEjQ,OAAQ,IAAG,KAAO,WAAFA,GAA8E,OAAOgQ,EAAE,OAAOxO,EAAEA,EAAEwwO,UAAUhyO,EAAEA,EAAEiQ,EAAE+4N,MAAM/4N,EAAE24N,WAAW,WAAW34N,EAAE0kN,cAAc,CAACqd,UAAUhiO,GAAGiiO,GAAGhiO,EAAED,GAAG,KAAxKC,EAAE0kN,cAAc,CAACqd,UAAU,GAAGC,GAAGhiO,EAAE,OAAOzO,EAAEA,EAAEwwO,UAAUhyO,QAA0H,OAAOwB,GAAGmC,EAAEnC,EAAEwwO,UAAUhyO,EAAEiQ,EAAE0kN,cAAc,MAAMhxN,EAAE3D,EAAEiyO,GAAGhiO,EAAEtM,GAAe,OAAZ6tO,GAAGxhO,EAAEC,EAAE1O,EAAEvB,GAAUiQ,EAAEygG,MAC1e,SAASwhI,GAAGliO,EAAEC,GAAG,IAAIjQ,EAAEiQ,EAAE4M,KAAO,OAAO7M,GAAG,OAAOhQ,GAAG,OAAOgQ,GAAGA,EAAE6M,MAAM7c,KAAEiQ,EAAE2uK,OAAO,KAAI,SAASkzD,GAAG9hO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,IAAIC,EAAEqkO,GAAG7lO,GAAGylO,GAAG1d,GAAEj3M,QAA4C,OAApCtP,EAAEkkO,GAAGz1N,EAAEzO,GAAGqnO,GAAG54N,EAAE1O,GAAGvB,EAAEuuO,GAAGv+N,EAAEC,EAAEjQ,EAAE2D,EAAEnC,EAAED,GAAM,OAAOyO,GAAIi5N,IAA0Eh5N,EAAE2uK,OAAO,EAAE4yD,GAAGxhO,EAAEC,EAAEjQ,EAAEuB,GAAU0O,EAAEygG,QAAhGzgG,EAAEq5N,YAAYt5N,EAAEs5N,YAAYr5N,EAAE2uK,QAAQ,IAAI5uK,EAAEg5N,QAAQznO,EAAEmwO,GAAG1hO,EAAEC,EAAE1O,IAC9P,SAAS4wO,GAAGniO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,GAAGskO,GAAG7lO,GAAG,CAAC,IAAIwB,GAAE,EAAGykO,GAAGh2N,QAAQzO,GAAE,EAAW,GAARqnO,GAAG54N,EAAE1O,GAAM,OAAO0O,EAAEkjN,UAAU,OAAOnjN,IAAIA,EAAEykN,UAAU,KAAKxkN,EAAEwkN,UAAU,KAAKxkN,EAAE2uK,OAAO,GAAGksD,GAAG76N,EAAEjQ,EAAE2D,GAAGsnO,GAAGh7N,EAAEjQ,EAAE2D,EAAEpC,GAAGoC,GAAE,OAAQ,GAAG,OAAOqM,EAAE,CAAC,IAAIpM,EAAEqM,EAAEkjN,UAAU1oF,EAAEx6H,EAAE+8N,cAAcppO,EAAErD,MAAMkqI,EAAE,IAAIh0H,EAAE7S,EAAEukB,QAAQoyD,EAAEv6E,EAAEyhD,YAAY,kBAAkB84B,GAAG,OAAOA,EAAEA,EAAE2uJ,GAAG3uJ,GAAyBA,EAAEmrJ,GAAGz1N,EAA1BsqE,EAAEsrJ,GAAG7lO,GAAGylO,GAAG1d,GAAEj3M,SAAmB,IAAI5S,EAAE8B,EAAEwwL,yBAAyBkrB,EAAE,oBAAoBx9M,GAAG,oBAAoB0F,EAAEsnO,wBAAwBxvB,GAAG,oBAAoB93M,EAAEonO,kCACpd,oBAAoBpnO,EAAE+rL,4BAA4BllD,IAAI9mI,GAAG8S,IAAI8jE,IAAIwwJ,GAAG96N,EAAErM,EAAED,EAAE42E,GAAG6uJ,IAAG,EAAG,IAAIlyN,EAAEjH,EAAE0kN,cAAc/wN,EAAEub,MAAMjI,EAAEizN,GAAGl6N,EAAEtM,EAAEC,EAAErC,GAAGkV,EAAExG,EAAE0kN,cAAclqF,IAAI9mI,GAAGuT,IAAIT,GAAGuxM,GAAEl3M,SAASs4N,IAAI,oBAAoBlrO,IAAIqsO,GAAGt6N,EAAEjQ,EAAE9B,EAAEyF,GAAG8S,EAAExG,EAAE0kN,gBAAgBlqF,EAAE2+F,IAAIyB,GAAG56N,EAAEjQ,EAAEyqI,EAAE9mI,EAAEuT,EAAET,EAAE8jE,KAAKmhI,GAAG,oBAAoB93M,EAAEunO,2BAA2B,oBAAoBvnO,EAAEwnO,qBAAqB,oBAAoBxnO,EAAEwnO,oBAAoBxnO,EAAEwnO,qBAAqB,oBAAoBxnO,EAAEunO,2BAA2BvnO,EAAEunO,6BAA6B,oBACzevnO,EAAEojD,oBAAoB/2C,EAAE2uK,OAAO,KAAK,oBAAoBh7K,EAAEojD,oBAAoB/2C,EAAE2uK,OAAO,GAAG3uK,EAAE+8N,cAAcrpO,EAAEsM,EAAE0kN,cAAcl+M,GAAG7S,EAAErD,MAAMoD,EAAEC,EAAEub,MAAM1I,EAAE7S,EAAEukB,QAAQoyD,EAAE52E,EAAE8mI,IAAI,oBAAoB7mI,EAAEojD,oBAAoB/2C,EAAE2uK,OAAO,GAAGj7K,GAAE,OAAQ,CAACC,EAAEqM,EAAEkjN,UAAUyW,GAAG55N,EAAEC,GAAGw6H,EAAEx6H,EAAE+8N,cAAczyJ,EAAEtqE,EAAE1Q,OAAO0Q,EAAE87N,YAAYthG,EAAE29F,GAAGn4N,EAAE1Q,KAAKkrI,GAAG7mI,EAAErD,MAAMg6E,EAAEmhI,EAAEzrM,EAAEu9N,aAAat2N,EAAEtT,EAAEukB,QAAwB,kBAAhB1R,EAAEzW,EAAEyhD,cAAiC,OAAOhrC,EAAEA,EAAEyyN,GAAGzyN,GAAyBA,EAAEivN,GAAGz1N,EAA1BwG,EAAEovN,GAAG7lO,GAAGylO,GAAG1d,GAAEj3M,SAAmB,IAAI6wG,EAAE3hH,EAAEwwL,0BAA0BtyL,EAAE,oBAAoByjH,GACnf,oBAAoB/9G,EAAEsnO,0BAA0B,oBAAoBtnO,EAAEonO,kCAAkC,oBAAoBpnO,EAAE+rL,4BAA4BllD,IAAIixE,GAAGxkM,IAAIT,IAAIs0N,GAAG96N,EAAErM,EAAED,EAAE8S,GAAG2yN,IAAG,EAAGlyN,EAAEjH,EAAE0kN,cAAc/wN,EAAEub,MAAMjI,EAAEizN,GAAGl6N,EAAEtM,EAAEC,EAAErC,GAAG,IAAI2G,EAAE+H,EAAE0kN,cAAclqF,IAAIixE,GAAGxkM,IAAIhP,GAAG8/M,GAAEl3M,SAASs4N,IAAI,oBAAoBznH,IAAI4oH,GAAGt6N,EAAEjQ,EAAE2hH,EAAEh+G,GAAGuE,EAAE+H,EAAE0kN,gBAAgBp6I,EAAE6uJ,IAAIyB,GAAG56N,EAAEjQ,EAAEu6E,EAAE52E,EAAEuT,EAAEhP,EAAEuO,KAAKvY,GAAG,oBAAoB0F,EAAEwuO,4BAA4B,oBAAoBxuO,EAAEyuO,sBAAsB,oBAAoBzuO,EAAEyuO,qBAAqBzuO,EAAEyuO,oBAAoB1uO,EAC1gBuE,EAAEuO,GAAG,oBAAoB7S,EAAEwuO,4BAA4BxuO,EAAEwuO,2BAA2BzuO,EAAEuE,EAAEuO,IAAI,oBAAoB7S,EAAEsjD,qBAAqBj3C,EAAE2uK,OAAO,GAAG,oBAAoBh7K,EAAEsnO,0BAA0Bj7N,EAAE2uK,OAAO,OAAO,oBAAoBh7K,EAAEsjD,oBAAoBujF,IAAIz6H,EAAEg9N,eAAe91N,IAAIlH,EAAE2kN,gBAAgB1kN,EAAE2uK,OAAO,GAAG,oBAAoBh7K,EAAEsnO,yBAAyBzgG,IAAIz6H,EAAEg9N,eAAe91N,IAAIlH,EAAE2kN,gBAAgB1kN,EAAE2uK,OAAO,KAAK3uK,EAAE+8N,cAAcrpO,EAAEsM,EAAE0kN,cAAczsN,GAAGtE,EAAErD,MAAMoD,EAAEC,EAAEub,MAAMjX,EAAEtE,EAAEukB,QAAQ1R,EAAE9S,EAAE42E,IAAI,oBAAoB32E,EAAEsjD,oBAC7fujF,IAAIz6H,EAAEg9N,eAAe91N,IAAIlH,EAAE2kN,gBAAgB1kN,EAAE2uK,OAAO,GAAG,oBAAoBh7K,EAAEsnO,yBAAyBzgG,IAAIz6H,EAAEg9N,eAAe91N,IAAIlH,EAAE2kN,gBAAgB1kN,EAAE2uK,OAAO,KAAKj7K,GAAE,GAAI,OAAO2uO,GAAGtiO,EAAEC,EAAEjQ,EAAE2D,EAAEnC,EAAED,GACzL,SAAS+wO,GAAGtiO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG0wO,GAAGliO,EAAEC,GAAG,IAAIrM,EAAE,KAAa,GAARqM,EAAE2uK,OAAU,IAAIj7K,IAAIC,EAAE,OAAOrC,GAAG4kO,GAAGl2N,EAAEjQ,GAAE,GAAI0xO,GAAG1hO,EAAEC,EAAEzO,GAAGmC,EAAEsM,EAAEkjN,UAAUoe,GAAGzgO,QAAQb,EAAE,IAAIw6H,EAAE7mI,GAAG,oBAAoB5D,EAAEuwL,yBAAyB,KAAK5sL,EAAE0c,SAAwI,OAA/HpQ,EAAE2uK,OAAO,EAAE,OAAO5uK,GAAGpM,GAAGqM,EAAEygG,MAAM07H,GAAGn8N,EAAED,EAAE0gG,MAAM,KAAKlvG,GAAGyO,EAAEygG,MAAM07H,GAAGn8N,EAAE,KAAKw6H,EAAEjpI,IAAIgwO,GAAGxhO,EAAEC,EAAEw6H,EAAEjpI,GAAGyO,EAAE0kN,cAAchxN,EAAEwb,MAAM5d,GAAG4kO,GAAGl2N,EAAEjQ,GAAE,GAAWiQ,EAAEygG,MAAM,SAAS6hI,GAAGviO,GAAG,IAAIC,EAAED,EAAEmjN,UAAUljN,EAAEuiO,eAAezM,GAAG/1N,EAAEC,EAAEuiO,eAAeviO,EAAEuiO,iBAAiBviO,EAAEkY,SAASlY,EAAEkY,SAAS49M,GAAG/1N,EAAEC,EAAEkY,SAAQ,GAAIwkN,GAAG38N,EAAEC,EAAE2mN,eAC7d,IAS0V6b,GAAMC,GAAGC,GAT/VC,GAAG,CAAChe,WAAW,KAAKie,UAAU,GAClC,SAASC,GAAG9iO,EAAEC,EAAEjQ,GAAG,IAAsC4D,EAAlCD,EAAEsM,EAAEu9N,aAAajsO,EAAE4vI,GAAErgI,QAAQtP,GAAE,EAA6M,OAAvMoC,EAAE,KAAa,GAARqM,EAAE2uK,UAAah7K,GAAE,OAAOoM,GAAG,OAAOA,EAAE2kN,gBAAiB,KAAO,EAAFpzN,IAAMqC,GAAGpC,GAAE,EAAGyO,EAAE2uK,QAAQ,IAAI,OAAO5uK,GAAG,OAAOA,EAAE2kN,oBAAe,IAAShxN,EAAE8oD,WAAU,IAAK9oD,EAAEovO,6BAA6BxxO,GAAG,GAAGimN,GAAEr2E,GAAI,EAAF5vI,GAAQ,OAAOyO,QAAG,IAASrM,EAAE8oD,UAAUghL,GAAGx9N,GAAGD,EAAErM,EAAEY,SAAShD,EAAEoC,EAAE8oD,SAAYjrD,GAASwO,EAAEyvB,GAAGxvB,EAAED,EAAEzO,EAAEvB,GAAGiQ,EAAEygG,MAAMikH,cAAc,CAACqd,UAAUhyO,GAAGiQ,EAAE0kN,cAAcie,GAAG5iO,GAAK,kBAAkBrM,EAAEqvO,2BAAiChjO,EAAEyvB,GAAGxvB,EAAED,EAAEzO,EAAEvB,GAAGiQ,EAAEygG,MAAMikH,cAAc,CAACqd,UAAUhyO,GAC/fiQ,EAAE0kN,cAAcie,GAAG3iO,EAAE+4N,MAAM,SAASh5N,KAAEhQ,EAAEizO,GAAG,CAACpmI,KAAK,UAAUtoG,SAASyL,GAAGC,EAAE48F,KAAK7sG,EAAE,OAAQ6B,OAAOoO,EAASA,EAAEygG,MAAM1wG,KAAYgQ,EAAE2kN,cAAkBnzN,GAASmC,EAAEuvO,GAAGljO,EAAEC,EAAEtM,EAAEY,SAASZ,EAAE8oD,SAASzsD,GAAGwB,EAAEyO,EAAEygG,MAAMnvG,EAAEyO,EAAE0gG,MAAMikH,cAAcnzN,EAAEmzN,cAAc,OAAOpzN,EAAE,CAACywO,UAAUhyO,GAAG,CAACgyO,UAAUzwO,EAAEywO,UAAUhyO,GAAGwB,EAAEonO,WAAW54N,EAAE44N,YAAY5oO,EAAEiQ,EAAE0kN,cAAcie,GAAGjvO,IAAE3D,EAAEmzO,GAAGnjO,EAAEC,EAAEtM,EAAEY,SAASvE,GAAGiQ,EAAE0kN,cAAc,KAAY30N,IAClQ,SAASy/B,GAAGzvB,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEyO,EAAE68F,KAAKrrG,EAAEwO,EAAE0gG,MAAuK,OAAjKzgG,EAAE,CAAC48F,KAAK,SAAStoG,SAAS0L,GAAG,KAAO,EAAF1O,IAAM,OAAOC,GAAGA,EAAEonO,WAAW,EAAEpnO,EAAEgsO,aAAav9N,GAAGzO,EAAEyxO,GAAGhjO,EAAE1O,EAAE,EAAE,MAAMvB,EAAEmsO,GAAGnsO,EAAEuB,EAAEoC,EAAE,MAAMnC,EAAEK,OAAOmO,EAAEhQ,EAAE6B,OAAOmO,EAAExO,EAAEszN,QAAQ90N,EAAEgQ,EAAE0gG,MAAMlvG,EAASxB,EACrV,SAASmzO,GAAGnjO,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEyO,EAAE0gG,MAAiL,OAA3K1gG,EAAEzO,EAAEuzN,QAAQ90N,EAAE6rO,GAAGtqO,EAAE,CAACsrG,KAAK,UAAUtoG,SAASvE,IAAI,KAAY,EAAPiQ,EAAE48F,QAAU7sG,EAAEgpO,MAAMrlO,GAAG3D,EAAE6B,OAAOoO,EAAEjQ,EAAE80N,QAAQ,KAAK,OAAO9kN,IAAIA,EAAE27N,WAAW,KAAK37N,EAAE4uK,MAAM,EAAE3uK,EAAE27N,YAAY37N,EAAEy7N,WAAW17N,GAAUC,EAAEygG,MAAM1wG,EAC7N,SAASkzO,GAAGljO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,IAAIC,EAAEyO,EAAE48F,KAAKjpG,EAAEoM,EAAE0gG,MAAM1gG,EAAEpM,EAAEkxN,QAAQ,IAAIrqF,EAAE,CAAC59B,KAAK,SAAStoG,SAASvE,GAAoS,OAAjS,KAAO,EAAFwB,IAAMyO,EAAEygG,QAAQ9sG,IAAG5D,EAAEiQ,EAAEygG,OAAQk4H,WAAW,EAAE5oO,EAAEwtO,aAAa/iG,EAAiB,QAAf7mI,EAAE5D,EAAE0rO,aAAqBz7N,EAAE27N,YAAY5rO,EAAE4rO,YAAY37N,EAAEy7N,WAAW9nO,EAAEA,EAAE+nO,WAAW,MAAM17N,EAAE27N,YAAY37N,EAAEy7N,WAAW,MAAM1rO,EAAE6rO,GAAGjoO,EAAE6mI,GAAG,OAAOz6H,EAAErM,EAAEkoO,GAAG77N,EAAErM,IAAIA,EAAEwoO,GAAGxoO,EAAEnC,EAAED,EAAE,OAAQq9K,OAAO,EAAGj7K,EAAE9B,OAAOoO,EAAEjQ,EAAE6B,OAAOoO,EAAEjQ,EAAE80N,QAAQnxN,EAAEsM,EAAEygG,MAAM1wG,EAAS2D,EAAE,SAASyvO,GAAGpjO,EAAEC,GAAGD,EAAEg5N,OAAO/4N,EAAE,IAAIjQ,EAAEgQ,EAAEykN,UAAU,OAAOz0N,IAAIA,EAAEgpO,OAAO/4N,GAAG04N,GAAG34N,EAAEnO,OAAOoO,GACtd,SAASojO,GAAGrjO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG,IAAIoC,EAAEoM,EAAE2kN,cAAc,OAAO/wN,EAAEoM,EAAE2kN,cAAc,CAAC2e,YAAYrjO,EAAEsjO,UAAU,KAAKC,mBAAmB,EAAEjpO,KAAK5G,EAAE8vO,KAAKzzO,EAAE0zO,SAASnyO,EAAEmqO,WAAWlqO,IAAIoC,EAAE0vO,YAAYrjO,EAAErM,EAAE2vO,UAAU,KAAK3vO,EAAE4vO,mBAAmB,EAAE5vO,EAAE2G,KAAK5G,EAAEC,EAAE6vO,KAAKzzO,EAAE4D,EAAE8vO,SAASnyO,EAAEqC,EAAE8nO,WAAWlqO,GACvQ,SAASmyO,GAAG3jO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEsM,EAAEu9N,aAAajsO,EAAEoC,EAAEspO,YAAYzrO,EAAEmC,EAAE8vO,KAAsC,GAAjCjC,GAAGxhO,EAAEC,EAAEtM,EAAEY,SAASvE,GAAkB,KAAO,GAAtB2D,EAAEwtI,GAAErgI,UAAqBnN,EAAI,EAAFA,EAAI,EAAEsM,EAAE2uK,OAAO,OAAO,CAAC,GAAG,OAAO5uK,GAAG,KAAa,GAARA,EAAE4uK,OAAU5uK,EAAE,IAAIA,EAAEC,EAAEygG,MAAM,OAAO1gG,GAAG,CAAC,GAAG,KAAKA,EAAEssJ,IAAI,OAAOtsJ,EAAE2kN,eAAeye,GAAGpjO,EAAEhQ,QAAQ,GAAG,KAAKgQ,EAAEssJ,IAAI82E,GAAGpjO,EAAEhQ,QAAQ,GAAG,OAAOgQ,EAAE0gG,MAAM,CAAC1gG,EAAE0gG,MAAM7uG,OAAOmO,EAAEA,EAAEA,EAAE0gG,MAAM,SAAS,GAAG1gG,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAE8kN,SAAS,CAAC,GAAG,OAAO9kN,EAAEnO,QAAQmO,EAAEnO,SAASoO,EAAE,MAAMD,EAAEA,EAAEA,EAAEnO,OAAOmO,EAAE8kN,QAAQjzN,OAAOmO,EAAEnO,OAAOmO,EAAEA,EAAE8kN,QAAQnxN,GAAG,EAAS,GAAP6jN,GAAEr2E,GAAExtI,GAAM,KAAY,EAAPsM,EAAE48F,MAAQ58F,EAAE0kN,cACze,UAAU,OAAOpzN,GAAG,IAAK,WAAqB,IAAVvB,EAAEiQ,EAAEygG,MAAUnvG,EAAE,KAAK,OAAOvB,GAAiB,QAAdgQ,EAAEhQ,EAAEy0N,YAAoB,OAAOsY,GAAG/8N,KAAKzO,EAAEvB,GAAGA,EAAEA,EAAE80N,QAAY,QAAJ90N,EAAEuB,IAAYA,EAAE0O,EAAEygG,MAAMzgG,EAAEygG,MAAM,OAAOnvG,EAAEvB,EAAE80N,QAAQ90N,EAAE80N,QAAQ,MAAMue,GAAGpjO,GAAE,EAAG1O,EAAEvB,EAAEwB,EAAEyO,EAAEy7N,YAAY,MAAM,IAAK,YAA6B,IAAjB1rO,EAAE,KAAKuB,EAAE0O,EAAEygG,MAAUzgG,EAAEygG,MAAM,KAAK,OAAOnvG,GAAG,CAAe,GAAG,QAAjByO,EAAEzO,EAAEkzN,YAAuB,OAAOsY,GAAG/8N,GAAG,CAACC,EAAEygG,MAAMnvG,EAAE,MAAMyO,EAAEzO,EAAEuzN,QAAQvzN,EAAEuzN,QAAQ90N,EAAEA,EAAEuB,EAAEA,EAAEyO,EAAEqjO,GAAGpjO,GAAE,EAAGjQ,EAAE,KAAKwB,EAAEyO,EAAEy7N,YAAY,MAAM,IAAK,WAAW2H,GAAGpjO,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEy7N,YAAY,MAAM,QAAQz7N,EAAE0kN,cAAc,KAAK,OAAO1kN,EAAEygG,MAC/f,SAASghI,GAAG1hO,EAAEC,EAAEjQ,GAAyD,GAAtD,OAAOgQ,IAAIC,EAAE64N,aAAa94N,EAAE84N,cAAcsB,IAAIn6N,EAAE+4N,MAAS,KAAKhpO,EAAEiQ,EAAE24N,YAAY,CAAC,GAAG,OAAO54N,GAAGC,EAAEygG,QAAQ1gG,EAAE0gG,MAAM,MAAMjlG,MAAMtD,EAAE,MAAM,GAAG,OAAO8H,EAAEygG,MAAM,CAA4C,IAAjC1wG,EAAE6rO,GAAZ77N,EAAEC,EAAEygG,MAAa1gG,EAAEw9N,cAAcv9N,EAAEygG,MAAM1wG,EAAMA,EAAE6B,OAAOoO,EAAE,OAAOD,EAAE8kN,SAAS9kN,EAAEA,EAAE8kN,SAAQ90N,EAAEA,EAAE80N,QAAQ+W,GAAG77N,EAAEA,EAAEw9N,eAAgB3rO,OAAOoO,EAAEjQ,EAAE80N,QAAQ,KAAK,OAAO7kN,EAAEygG,MAAM,OAAO,KAK5P,SAASkjI,GAAG5jO,EAAEC,GAAG,IAAIm9N,GAAG,OAAOp9N,EAAE0jO,UAAU,IAAK,SAASzjO,EAAED,EAAEyjO,KAAK,IAAI,IAAIzzO,EAAE,KAAK,OAAOiQ,GAAG,OAAOA,EAAEwkN,YAAYz0N,EAAEiQ,GAAGA,EAAEA,EAAE6kN,QAAQ,OAAO90N,EAAEgQ,EAAEyjO,KAAK,KAAKzzO,EAAE80N,QAAQ,KAAK,MAAM,IAAK,YAAY90N,EAAEgQ,EAAEyjO,KAAK,IAAI,IAAI9vO,EAAE,KAAK,OAAO3D,GAAG,OAAOA,EAAEy0N,YAAY9wN,EAAE3D,GAAGA,EAAEA,EAAE80N,QAAQ,OAAOnxN,EAAEsM,GAAG,OAAOD,EAAEyjO,KAAKzjO,EAAEyjO,KAAK,KAAKzjO,EAAEyjO,KAAK3e,QAAQ,KAAKnxN,EAAEmxN,QAAQ,MAC7Z,SAAS+e,GAAG7jO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEsM,EAAEu9N,aAAa,OAAOv9N,EAAEqsJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAQyC,KAAK,GAAG,OAAOupE,GAAG51N,EAAE1Q,OAAOumO,KAAK,KAR1C,KAAK,EAAsL,OAApL8G,KAAKrlB,GAAES,IAAGT,GAAEQ,IAAG+lB,MAAKnqO,EAAEsM,EAAEkjN,WAAYqf,iBAAiB7uO,EAAEwkB,QAAQxkB,EAAE6uO,eAAe7uO,EAAE6uO,eAAe,MAAS,OAAOxiO,GAAG,OAAOA,EAAE0gG,QAAMi9H,GAAG19N,GAAGA,EAAE2uK,OAAO,EAAEj7K,EAAEgzN,UAAU1mN,EAAE2uK,OAAO,MAAkB,KAAK,KAAK,EAAEkuD,GAAG78N,GAAG,IAAI1O,EAAEmrO,GAAGD,GAAG37N,SAAkB,GAAT9Q,EAAEiQ,EAAE1Q,KAAQ,OAAOyQ,GAAG,MAAMC,EAAEkjN,UAAUuf,GAAG1iO,EAAEC,EAAEjQ,EAAE2D,GAAKqM,EAAE6M,MAAM5M,EAAE4M,MAAM5M,EAAE2uK,OAAO,SAAS,CAAC,IAAIj7K,EAAE,CAAC,GAAG,OAC7fsM,EAAEkjN,UAAU,MAAM1nN,MAAMtD,EAAE,MAAM,OAAO,KAAsB,GAAjB6H,EAAE08N,GAAGH,GAAGz7N,SAAY68N,GAAG19N,GAAG,CAACtM,EAAEsM,EAAEkjN,UAAUnzN,EAAEiQ,EAAE1Q,KAAK,IAAIiC,EAAEyO,EAAE+8N,cAA8B,OAAhBrpO,EAAEuhO,IAAIj1N,EAAEtM,EAAEwhO,IAAI3jO,EAASxB,GAAG,IAAK,SAASsnN,GAAE,SAAS3jN,GAAG2jN,GAAE,QAAQ3jN,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ2jN,GAAE,OAAO3jN,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIqM,EAAE,EAAEA,EAAEqzN,GAAG3mO,OAAOsT,IAAIs3M,GAAE+b,GAAGrzN,GAAGrM,GAAG,MAAM,IAAK,SAAS2jN,GAAE,QAAQ3jN,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO2jN,GAAE,QAAQ3jN,GAAG2jN,GAAE,OAAO3jN,GAAG,MAAM,IAAK,UAAU2jN,GAAE,SAAS3jN,GAAG,MAAM,IAAK,QAAQkqN,GAAGlqN,EAAEnC,GAAG8lN,GAAE,UAAU3jN,GAAG,MAAM,IAAK,SAASA,EAAEgqN,cAC5f,CAACmmB,cAActyO,EAAEumH,UAAUu/F,GAAE,UAAU3jN,GAAG,MAAM,IAAK,WAAW8qN,GAAG9qN,EAAEnC,GAAG8lN,GAAE,UAAU3jN,GAAkB,IAAI,IAAIC,KAAvB4uN,GAAGxyN,EAAEwB,GAAGwO,EAAE,KAAkBxO,EAAEA,EAAEiP,eAAe7M,KAAKrC,EAAEC,EAAEoC,GAAG,aAAaA,EAAE,kBAAkBrC,EAAEoC,EAAEmL,cAAcvN,IAAIyO,EAAE,CAAC,WAAWzO,IAAI,kBAAkBA,GAAGoC,EAAEmL,cAAc,GAAGvN,IAAIyO,EAAE,CAAC,WAAW,GAAGzO,IAAIs1B,EAAGpmB,eAAe7M,IAAI,MAAMrC,GAAG,aAAaqC,GAAG0jN,GAAE,SAAS3jN,IAAI,OAAO3D,GAAG,IAAK,QAAQotN,EAAGzpN,GAAG6mL,GAAG7mL,EAAEnC,GAAE,GAAI,MAAM,IAAK,WAAW4rN,EAAGzpN,GAAGgrN,GAAGhrN,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBnC,EAAEugE,UAAUp+D,EAAEowO,QACtf1P,IAAI1gO,EAAEqM,EAAEC,EAAEq5N,YAAY3lO,EAAE,OAAOA,IAAIsM,EAAE2uK,OAAO,OAAO,CAAiZ,OAAhZh7K,EAAE,IAAIrC,EAAEoD,SAASpD,EAAEA,EAAE4sN,cAAcn+M,IAAI4+M,KAAU5+M,EAAE6+M,GAAG7uN,IAAIgQ,IAAI4+M,GAAQ,WAAW5uN,IAAGgQ,EAAEpM,EAAEmJ,cAAc,QAAS6B,UAAU,qBAAuBoB,EAAEA,EAAEtE,YAAYsE,EAAEsqC,aAAa,kBAAkB32C,EAAE+uN,GAAG1iN,EAAEpM,EAAEmJ,cAAc/M,EAAE,CAAC0yN,GAAG/uN,EAAE+uN,MAAM1iN,EAAEpM,EAAEmJ,cAAc/M,GAAG,WAAWA,IAAI4D,EAAEoM,EAAErM,EAAEokH,SAASnkH,EAAEmkH,UAAS,EAAGpkH,EAAEujH,OAAOtjH,EAAEsjH,KAAKvjH,EAAEujH,QAAQl3G,EAAEpM,EAAEowO,gBAAgBhkO,EAAEhQ,GAAGgQ,EAAEk1N,IAAIj1N,EAAED,EAAEm1N,IAAIxhO,EAAE8uO,GAAGziO,EAAEC,GAASA,EAAEkjN,UAAUnjN,EAAEpM,EAAE6uN,GAAGzyN,EAAE2D,GAAU3D,GAAG,IAAK,SAASsnN,GAAE,SAASt3M,GAAGs3M,GAAE,QAAQt3M,GACpfzO,EAAEoC,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ2jN,GAAE,OAAOt3M,GAAGzO,EAAEoC,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIpC,EAAE,EAAEA,EAAE8hO,GAAG3mO,OAAO6E,IAAI+lN,GAAE+b,GAAG9hO,GAAGyO,GAAGzO,EAAEoC,EAAE,MAAM,IAAK,SAAS2jN,GAAE,QAAQt3M,GAAGzO,EAAEoC,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO2jN,GAAE,QAAQt3M,GAAGs3M,GAAE,OAAOt3M,GAAGzO,EAAEoC,EAAE,MAAM,IAAK,UAAU2jN,GAAE,SAASt3M,GAAGzO,EAAEoC,EAAE,MAAM,IAAK,QAAQkqN,GAAG79M,EAAErM,GAAGpC,EAAEmsN,EAAG19M,EAAErM,GAAG2jN,GAAE,UAAUt3M,GAAG,MAAM,IAAK,SAASzO,EAAE6sN,GAAGp+M,EAAErM,GAAG,MAAM,IAAK,SAASqM,EAAE29M,cAAc,CAACmmB,cAAcnwO,EAAEokH,UAAUxmH,EAAEyqB,EAAE,GAAGroB,EAAE,CAAC9F,WAAM,IAASypN,GAAE,UAAUt3M,GAAG,MAAM,IAAK,WAAWy+M,GAAGz+M,EAAErM,GAAGpC,EACpfitN,GAAGx+M,EAAErM,GAAG2jN,GAAE,UAAUt3M,GAAG,MAAM,QAAQzO,EAAEoC,EAAE6uN,GAAGxyN,EAAEuB,GAAG,IAAIkpI,EAAElpI,EAAE,IAAIC,KAAKipI,EAAE,GAAGA,EAAEh6H,eAAejP,GAAG,CAAC,IAAIiV,EAAEg0H,EAAEjpI,GAAG,UAAUA,EAAEswN,GAAG9hN,EAAEyG,GAAG,4BAA4BjV,EAAuB,OAApBiV,EAAEA,EAAEA,EAAEilE,YAAO,IAAgBszI,GAAGh/M,EAAEyG,GAAI,aAAajV,EAAE,kBAAkBiV,GAAG,aAAazW,GAAG,KAAKyW,IAAI24M,GAAGp/M,EAAEyG,GAAG,kBAAkBA,GAAG24M,GAAGp/M,EAAE,GAAGyG,GAAG,mCAAmCjV,GAAG,6BAA6BA,GAAG,cAAcA,IAAIq1B,EAAGpmB,eAAejP,GAAG,MAAMiV,GAAG,aAAajV,GAAG8lN,GAAE,SAASt3M,GAAG,MAAMyG,GAAGu0M,EAAGh7M,EAAExO,EAAEiV,EAAE7S,IAAI,OAAO5D,GAAG,IAAK,QAAQotN,EAAGp9M,GAAGw6K,GAAGx6K,EAAErM,GAAE,GACnf,MAAM,IAAK,WAAWypN,EAAGp9M,GAAG2+M,GAAG3+M,GAAG,MAAM,IAAK,SAAS,MAAMrM,EAAE9F,OAAOmS,EAAEkmF,aAAa,QAAQ,GAAGg3H,EAAGvpN,EAAE9F,QAAQ,MAAM,IAAK,SAASmS,EAAE+3G,WAAWpkH,EAAEokH,SAAmB,OAAVvmH,EAAEmC,EAAE9F,OAAcywN,GAAGt+M,IAAIrM,EAAEokH,SAASvmH,GAAE,GAAI,MAAMmC,EAAE24E,cAAcgyI,GAAGt+M,IAAIrM,EAAEokH,SAASpkH,EAAE24E,cAAa,GAAI,MAAM,QAAQ,oBAAoB/6E,EAAEwgE,UAAU/xD,EAAE+jO,QAAQ1P,IAAIG,GAAGxkO,EAAE2D,KAAKsM,EAAE2uK,OAAO,GAAG,OAAO3uK,EAAE4M,MAAM5M,EAAE2uK,OAAO,KAAK,OAAO,KAAK,KAAK,EAAE,GAAG5uK,GAAG,MAAMC,EAAEkjN,UAAUwf,GAAG3iO,EAAEC,EAAED,EAAEg9N,cAAcrpO,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOsM,EAAEkjN,UAAU,MAAM1nN,MAAMtD,EAAE,MAC/enI,EAAE0sO,GAAGD,GAAG37N,SAAS47N,GAAGH,GAAGz7N,SAAS68N,GAAG19N,IAAItM,EAAEsM,EAAEkjN,UAAUnzN,EAAEiQ,EAAE+8N,cAAcrpO,EAAEuhO,IAAIj1N,EAAEtM,EAAE2rN,YAAYtvN,IAAIiQ,EAAE2uK,OAAO,MAAKj7K,GAAG,IAAI3D,EAAE2E,SAAS3E,EAAEA,EAAEmuN,eAAen/M,eAAerL,IAAKuhO,IAAIj1N,EAAEA,EAAEkjN,UAAUxvN,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvB4jN,GAAEp2E,IAAGxtI,EAAEsM,EAAE0kN,cAAiB,KAAa,GAAR1kN,EAAE2uK,QAAiB3uK,EAAE+4N,MAAMhpO,EAAEiQ,IAAEtM,EAAE,OAAOA,EAAE3D,GAAE,EAAG,OAAOgQ,OAAE,IAASC,EAAE+8N,cAAcvgL,UAAUkhL,GAAG19N,GAAGjQ,EAAE,OAAOgQ,EAAE2kN,cAAiBhxN,IAAI3D,GAAG,KAAY,EAAPiQ,EAAE48F,QAAW,OAAO78F,IAAG,IAAKC,EAAE+8N,cAAc+F,4BAA4B,KAAe,EAAV5hG,GAAErgI,SAAW,IAAIosK,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAOyyD,IAAG,KAAQ,UAAHvF,KAAe,KAAQ,UAAH6J,KAAeC,GAAGvE,GAAEwE,OAAMxwO,GAAG3D,KAAEiQ,EAAE2uK,OAAO,GAAS,MAAK,KAAK,EAAE,OAAOguD,KAAW,OAAO58N,GAAG4zN,GAAG3zN,EAAEkjN,UAAUyD,eAAe,KAAK,KAAK,GAAG,OAAO8R,GAAGz4N,GAAG,KAA0C,KAAK,GAA0B,GAAvBs3M,GAAEp2E,IAAwB,QAArBxtI,EAAEsM,EAAE0kN,eAA0B,OAAO,KAAsC,GAAjCnzN,EAAE,KAAa,GAARyO,EAAE2uK,OAA2B,QAAjBh7K,EAAED,EAAE4vO,WAAsB,GAAG/xO,EAAEoyO,GAAGjwO,GAAE,OAAQ,CAAC,GAAG,IAAIu5K,IAAG,OAAOltK,GAAG,KAAa,GAARA,EAAE4uK,OAAU,IAAI5uK,EAAEC,EAAEygG,MAAM,OAAO1gG,GAAG,CAAS,GAAG,QAAXpM,EAAEmpO,GAAG/8N,IAAe,CACjW,IADkWC,EAAE2uK,OAAO,GAAGg1D,GAAGjwO,GAAE,GAAoB,QAAhBnC,EAAEoC,EAAE0lO,eAAuBr5N,EAAEq5N,YAAY9nO,EAAEyO,EAAE2uK,OAAO,GACnf,OAAOj7K,EAAE+nO,aAAaz7N,EAAE27N,YAAY,MAAM37N,EAAEy7N,WAAW/nO,EAAE+nO,WAAW/nO,EAAE3D,EAAMA,EAAEiQ,EAAEygG,MAAM,OAAO1wG,GAAOgQ,EAAErM,GAANnC,EAAExB,GAAQ4+K,OAAO,EAAEp9K,EAAEmqO,WAAW,KAAKnqO,EAAEoqO,YAAY,KAAKpqO,EAAEkqO,WAAW,KAAmB,QAAd9nO,EAAEpC,EAAEizN,YAAoBjzN,EAAEonO,WAAW,EAAEpnO,EAAEwnO,MAAMh5N,EAAExO,EAAEkvG,MAAM,KAAKlvG,EAAEwrO,cAAc,KAAKxrO,EAAEmzN,cAAc,KAAKnzN,EAAE8nO,YAAY,KAAK9nO,EAAEsnO,aAAa,KAAKtnO,EAAE2xN,UAAU,OAAO3xN,EAAEonO,WAAWhlO,EAAEglO,WAAWpnO,EAAEwnO,MAAMplO,EAAEolO,MAAMxnO,EAAEkvG,MAAM9sG,EAAE8sG,MAAMlvG,EAAEwrO,cAAcppO,EAAEopO,cAAcxrO,EAAEmzN,cAAc/wN,EAAE+wN,cAAcnzN,EAAE8nO,YAAY1lO,EAAE0lO,YAAY9nO,EAAEjC,KAAKqE,EAAErE,KAAKyQ,EAAEpM,EAAEklO,aACpftnO,EAAEsnO,aAAa,OAAO94N,EAAE,KAAK,CAACg5N,MAAMh5N,EAAEg5N,MAAMD,aAAa/4N,EAAE+4N,eAAe/oO,EAAEA,EAAE80N,QAA2B,OAAnBtN,GAAEr2E,GAAY,EAAVA,GAAErgI,QAAU,GAAUb,EAAEygG,MAAM1gG,EAAEA,EAAE8kN,QAAQ,OAAOnxN,EAAE8vO,MAAMviG,KAAIkjG,KAAKnkO,EAAE2uK,OAAO,GAAGp9K,GAAE,EAAGoyO,GAAGjwO,GAAE,GAAIsM,EAAE+4N,MAAM,cAAc,CAAC,IAAIxnO,EAAE,GAAW,QAARwO,EAAE+8N,GAAGnpO,KAAa,GAAGqM,EAAE2uK,OAAO,GAAGp9K,GAAE,EAAmB,QAAhBxB,EAAEgQ,EAAEs5N,eAAuBr5N,EAAEq5N,YAAYtpO,EAAEiQ,EAAE2uK,OAAO,GAAGg1D,GAAGjwO,GAAE,GAAI,OAAOA,EAAE8vO,MAAM,WAAW9vO,EAAE+vO,WAAW9vO,EAAE6wN,YAAY2Y,GAAG,OAAmC,QAA5Bn9N,EAAEA,EAAEy7N,WAAW/nO,EAAE+nO,cAAsBz7N,EAAE07N,WAAW,MAAM,UAAU,EAAEz6F,KAAIvtI,EAAE6vO,mBAAmBY,IAAI,aAAap0O,IAAIiQ,EAAE2uK,OACjf,GAAGp9K,GAAE,EAAGoyO,GAAGjwO,GAAE,GAAIsM,EAAE+4N,MAAM,UAAUrlO,EAAE2vO,aAAa1vO,EAAEkxN,QAAQ7kN,EAAEygG,MAAMzgG,EAAEygG,MAAM9sG,IAAa,QAAT5D,EAAE2D,EAAE4G,MAAcvK,EAAE80N,QAAQlxN,EAAEqM,EAAEygG,MAAM9sG,EAAED,EAAE4G,KAAK3G,GAAG,OAAO,OAAOD,EAAE8vO,MAAMzzO,EAAE2D,EAAE8vO,KAAK9vO,EAAE4vO,UAAUvzO,EAAE2D,EAAE8vO,KAAKzzO,EAAE80N,QAAQnxN,EAAE+nO,WAAWz7N,EAAEy7N,WAAW/nO,EAAE6vO,mBAAmBtiG,KAAIlxI,EAAE80N,QAAQ,KAAK7kN,EAAEkhI,GAAErgI,QAAQ02M,GAAEr2E,GAAE3vI,EAAI,EAAFyO,EAAI,EAAI,EAAFA,GAAKjQ,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOq0O,KAAK,OAAOrkO,GAAG,OAAOA,EAAE2kN,iBAAiB,OAAO1kN,EAAE0kN,gBAAgB,kCAAkChxN,EAAEkpG,OAAO58F,EAAE2uK,OAAO,GAAG,KAAK,MAAMnzK,MAAMtD,EAAE,IAAI8H,EAAEqsJ,MAChd,SAASg4E,GAAGtkO,GAAG,OAAOA,EAAEssJ,KAAK,KAAK,EAAEupE,GAAG71N,EAAEzQ,OAAOumO,KAAK,IAAI71N,EAAED,EAAE4uK,MAAM,OAAS,KAAF3uK,GAAQD,EAAE4uK,OAAS,KAAH3uK,EAAQ,GAAGD,GAAG,KAAK,KAAK,EAAgC,GAA9B48N,KAAKrlB,GAAES,IAAGT,GAAEQ,IAAG+lB,KAAkB,KAAO,IAApB79N,EAAED,EAAE4uK,QAAoB,MAAMnzK,MAAMtD,EAAE,MAAyB,OAAnB6H,EAAE4uK,OAAS,KAAH3uK,EAAQ,GAAUD,EAAE,KAAK,EAAE,OAAO88N,GAAG98N,GAAG,KAAK,KAAK,GAAG,OAAOu3M,GAAEp2E,IAAe,MAAZlhI,EAAED,EAAE4uK,QAAc5uK,EAAE4uK,OAAS,KAAH3uK,EAAQ,GAAGD,GAAG,KAAK,KAAK,GAAG,OAAOu3M,GAAEp2E,IAAG,KAAK,KAAK,EAAE,OAAOy7F,KAAK,KAAK,KAAK,GAAG,OAAOlE,GAAG14N,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOqkO,KAAK,KAAK,QAAQ,OAAO,MACra,SAASE,GAAGvkO,EAAEC,GAAG,IAAI,IAAIjQ,EAAE,GAAG2D,EAAEsM,EAAE,GAAGjQ,GAAG+sN,EAAGppN,GAAGA,EAAEA,EAAE9B,aAAa8B,GAAG,IAAIpC,EAAEvB,EAAE,MAAMwB,GAAGD,EAAE,6BAA6BC,EAAEktD,QAAQ,KAAKltD,EAAEy/M,MAAM,MAAM,CAACpjN,MAAMmS,EAAEgD,OAAO/C,EAAEgxM,MAAM1/M,GAAG,SAASizO,GAAGxkO,EAAEC,GAAG,IAAI4Q,QAAQjU,MAAMqD,EAAEpS,OAAO,MAAMmC,GAAG4K,YAAW,WAAW,MAAM5K,MAlB3PyyO,GAAG,SAASziO,EAAEC,GAAG,IAAI,IAAIjQ,EAAEiQ,EAAEygG,MAAM,OAAO1wG,GAAG,CAAC,GAAG,IAAIA,EAAEs8J,KAAK,IAAIt8J,EAAEs8J,IAAItsJ,EAAEzE,YAAYvL,EAAEmzN,gBAAgB,GAAG,IAAInzN,EAAEs8J,KAAK,OAAOt8J,EAAE0wG,MAAM,CAAC1wG,EAAE0wG,MAAM7uG,OAAO7B,EAAEA,EAAEA,EAAE0wG,MAAM,SAAS,GAAG1wG,IAAIiQ,EAAE,MAAM,KAAK,OAAOjQ,EAAE80N,SAAS,CAAC,GAAG,OAAO90N,EAAE6B,QAAQ7B,EAAE6B,SAASoO,EAAE,OAAOjQ,EAAEA,EAAE6B,OAAO7B,EAAE80N,QAAQjzN,OAAO7B,EAAE6B,OAAO7B,EAAEA,EAAE80N,UAChS4d,GAAG,SAAS1iO,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAEyO,EAAEg9N,cAAc,GAAGzrO,IAAIoC,EAAE,CAACqM,EAAEC,EAAEkjN,UAAUuZ,GAAGH,GAAGz7N,SAAS,IAAyUlN,EAArUpC,EAAE,KAAK,OAAOxB,GAAG,IAAK,QAAQuB,EAAEmsN,EAAG19M,EAAEzO,GAAGoC,EAAE+pN,EAAG19M,EAAErM,GAAGnC,EAAE,GAAG,MAAM,IAAK,SAASD,EAAE6sN,GAAGp+M,EAAEzO,GAAGoC,EAAEyqN,GAAGp+M,EAAErM,GAAGnC,EAAE,GAAG,MAAM,IAAK,SAASD,EAAEyqB,EAAE,GAAGzqB,EAAE,CAAC1D,WAAM,IAAS8F,EAAEqoB,EAAE,GAAGroB,EAAE,CAAC9F,WAAM,IAAS2D,EAAE,GAAG,MAAM,IAAK,WAAWD,EAAEitN,GAAGx+M,EAAEzO,GAAGoC,EAAE6qN,GAAGx+M,EAAErM,GAAGnC,EAAE,GAAG,MAAM,QAAQ,oBAAoBD,EAAEwgE,SAAS,oBAAoBp+D,EAAEo+D,UAAU/xD,EAAE+jO,QAAQ1P,IAAyB,IAAI9pJ,KAAzBi4I,GAAGxyN,EAAE2D,GAAS3D,EAAE,KAAcuB,EAAE,IAAIoC,EAAE8M,eAAe8pE,IAAIh5E,EAAEkP,eAAe8pE,IAAI,MAAMh5E,EAAEg5E,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAIkwD,EAAElpI,EAAEg5E,GAAG,IAAI32E,KAAK6mI,EAAEA,EAAEh6H,eAAe7M,KAAK5D,IAAIA,EAAE,IAAIA,EAAE4D,GAAG,QAAQ,4BAA4B22E,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAI1jD,EAAGpmB,eAAe8pE,GAAG/4E,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI5D,KAAK28E,EAAE,OAAO,IAAIA,KAAK52E,EAAE,CAAC,IAAI8S,EAAE9S,EAAE42E,GAAyB,GAAtBkwD,EAAE,MAAMlpI,EAAEA,EAAEg5E,QAAG,EAAU52E,EAAE8M,eAAe8pE,IAAI9jE,IAAIg0H,IAAI,MAAMh0H,GAAG,MAAMg0H,GAAG,GAAG,UAAUlwD,EAAE,GAAGkwD,EAAE,CAAC,IAAI7mI,KAAK6mI,GAAGA,EAAEh6H,eAAe7M,IAAI6S,GAAGA,EAAEhG,eAAe7M,KAAK5D,IAAIA,EAAE,IAAIA,EAAE4D,GAAG,IAAI,IAAIA,KAAK6S,EAAEA,EAAEhG,eAAe7M,IAAI6mI,EAAE7mI,KAAK6S,EAAE7S,KAAK5D,IAClfA,EAAE,IAAIA,EAAE4D,GAAG6S,EAAE7S,SAAS5D,IAAIwB,IAAIA,EAAE,IAAIA,EAAE5D,KAAK28E,EAAEv6E,IAAIA,EAAEyW,MAAM,4BAA4B8jE,GAAG9jE,EAAEA,EAAEA,EAAEilE,YAAO,EAAO+uD,EAAEA,EAAEA,EAAE/uD,YAAO,EAAO,MAAMjlE,GAAGg0H,IAAIh0H,IAAIjV,EAAEA,GAAG,IAAI5D,KAAK28E,EAAE9jE,IAAI,aAAa8jE,EAAE,kBAAkB9jE,GAAG,kBAAkBA,IAAIjV,EAAEA,GAAG,IAAI5D,KAAK28E,EAAE,GAAG9jE,GAAG,mCAAmC8jE,GAAG,6BAA6BA,IAAI1jD,EAAGpmB,eAAe8pE,IAAI,MAAM9jE,GAAG,aAAa8jE,GAAG+sI,GAAE,SAASt3M,GAAGxO,GAAGipI,IAAIh0H,IAAIjV,EAAE,KAAK,kBAAkBiV,GAAG,OAAOA,GAAGA,EAAEmxM,WAAWwE,EAAG31M,EAAEpY,YAAYmD,EAAEA,GAAG,IAAI5D,KAAK28E,EAAE9jE,IAAIzW,IAAIwB,EAAEA,GAAG,IAAI5D,KAAK,QAC/eoC,GAAG,IAAIu6E,EAAE/4E,GAAKyO,EAAEq5N,YAAY/uJ,KAAEtqE,EAAE2uK,OAAO,KAAI+zD,GAAG,SAAS3iO,EAAEC,EAAEjQ,EAAE2D,GAAG3D,IAAI2D,IAAIsM,EAAE2uK,OAAO,IAcgL,IAAI61D,GAAG,oBAAoBj5E,QAAQA,QAAQn1I,IAAI,SAASquN,GAAG1kO,EAAEC,EAAEjQ,IAAGA,EAAE6pO,IAAI,EAAE7pO,IAAKs8J,IAAI,EAAEt8J,EAAEgqO,QAAQ,CAAC1lO,QAAQ,MAAM,IAAIX,EAAEsM,EAAEpS,MAAsD,OAAhDmC,EAAE0H,SAAS,WAAWitO,KAAKA,IAAG,EAAGC,GAAGjxO,GAAG6wO,GAAGxkO,EAAEC,IAAWjQ,EACpb,SAAS60O,GAAG7kO,EAAEC,EAAEjQ,IAAGA,EAAE6pO,IAAI,EAAE7pO,IAAKs8J,IAAI,EAAE,IAAI34J,EAAEqM,EAAEzQ,KAAKgxL,yBAAyB,GAAG,oBAAoB5sL,EAAE,CAAC,IAAIpC,EAAE0O,EAAEpS,MAAMmC,EAAEgqO,QAAQ,WAAmB,OAARwK,GAAGxkO,EAAEC,GAAUtM,EAAEpC,IAAI,IAAIC,EAAEwO,EAAEmjN,UAA8O,OAApO,OAAO3xN,GAAG,oBAAoBA,EAAEszO,oBAAoB90O,EAAE0H,SAAS,WAAW,oBAAoB/D,IAAI,OAAOoxO,GAAGA,GAAG,IAAIr4I,IAAI,CAAC36F,OAAOgzO,GAAGhwO,IAAIhD,MAAMyyO,GAAGxkO,EAAEC,IAAI,IAAIjQ,EAAEiQ,EAAEgxM,MAAMl/M,KAAK+yO,kBAAkB7kO,EAAEpS,MAAM,CAACm3O,eAAe,OAAOh1O,EAAEA,EAAE,OAAcA,EAAE,IAAIi1O,GAAG,oBAAoBC,QAAQA,QAAQx4I,IACxc,SAASy4I,GAAGnlO,GAAG,IAAIC,EAAED,EAAE6M,IAAI,GAAG,OAAO5M,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAMjQ,GAAGo1O,GAAGplO,EAAEhQ,QAAQiQ,EAAEa,QAAQ,KAAK,SAASukO,GAAGrlO,EAAEC,GAAG,OAAOA,EAAEqsJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA8Q,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAjS,KAAK,EAAE,GAAW,IAARrsJ,EAAE2uK,OAAW,OAAO5uK,EAAE,CAAC,IAAIhQ,EAAEgQ,EAAEg9N,cAAcrpO,EAAEqM,EAAE2kN,cAA4B1kN,GAAdD,EAAEC,EAAEkjN,WAAc+X,wBAAwBj7N,EAAE87N,cAAc97N,EAAE1Q,KAAKS,EAAEooO,GAAGn4N,EAAE1Q,KAAKS,GAAG2D,GAAGqM,EAAEslO,oCAAoCrlO,EAAE,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAE2uK,OAAWgmD,GAAG30N,EAAEkjN,UAAUyD,gBAA0D,MAAMnrN,MAAMtD,EAAE,MAC5e,SAASotO,GAAGvlO,EAAEC,EAAEjQ,GAAG,OAAOA,EAAEs8J,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhCrsJ,EAAE,QAAlBA,EAAEjQ,EAAEspO,aAAuBr5N,EAAEy7N,WAAW,MAAiB,CAAC17N,EAAEC,EAAEA,EAAEvS,KAAK,EAAE,CAAC,GAAG,KAAW,EAANsS,EAAEssJ,KAAO,CAAC,IAAI34J,EAAEqM,EAAE0K,OAAO1K,EAAEyQ,QAAQ9c,IAAIqM,EAAEA,EAAEtS,WAAWsS,IAAIC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEjQ,EAAEspO,aAAuBr5N,EAAEy7N,WAAW,MAAiB,CAAC17N,EAAEC,EAAEA,EAAEvS,KAAK,EAAE,CAAC,IAAI6D,EAAEyO,EAAErM,EAAEpC,EAAE7D,KAAa,KAAO,GAAf6D,EAAEA,EAAE+6J,OAAe,KAAO,EAAF/6J,KAAOi0O,GAAGx1O,EAAEgQ,GAAGylO,GAAGz1O,EAAEgQ,IAAIA,EAAErM,QAAQqM,IAAIC,GAAG,OAAO,KAAK,EACtR,OADwRD,EAAEhQ,EAAEmzN,UAAkB,EAARnzN,EAAE4+K,QAAU,OAAO3uK,EAAED,EAAEg3C,qBAAqBrjD,EAAE3D,EAAE+rO,cAAc/rO,EAAET,KAAK0Q,EAAE+8N,cAAc5E,GAAGpoO,EAAET,KAAK0Q,EAAE+8N,eAAeh9N,EAAEk3C,mBAAmBvjD,EACxgBsM,EAAE0kN,cAAc3kN,EAAEslO,4CAAuD,QAAhBrlO,EAAEjQ,EAAEspO,cAAsBe,GAAGrqO,EAAEiQ,EAAED,IAAU,KAAK,EAAkB,GAAG,QAAnBC,EAAEjQ,EAAEspO,aAAwB,CAAQ,GAAPt5N,EAAE,KAAQ,OAAOhQ,EAAE0wG,MAAM,OAAO1wG,EAAE0wG,MAAM4rD,KAAK,KAAK,EAA4B,KAAK,EAAEtsJ,EAAEhQ,EAAE0wG,MAAMyiH,UAAUkX,GAAGrqO,EAAEiQ,EAAED,GAAG,OAAO,KAAK,EAA2E,OAAzEA,EAAEhQ,EAAEmzN,eAAU,OAAOljN,GAAW,EAARjQ,EAAE4+K,OAAS4lD,GAAGxkO,EAAET,KAAKS,EAAEgtO,gBAAgBh9N,EAAEm+E,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GACnX,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAD6U,KAAK,GACzY,YAD4Y,OAAOnuF,EAAE20N,gBAAgB30N,EAAEA,EAAEy0N,UAAU,OAAOz0N,IAAIA,EAAEA,EAAE20N,cAAc,OAAO30N,IAAIA,EAAEA,EAAE40N,WAAW,OAAO50N,GAAGo3N,GAAGp3N,OACzb,MAAMyL,MAAMtD,EAAE,MAC5E,SAASutO,GAAG1lO,EAAEC,GAAG,IAAI,IAAIjQ,EAAEgQ,IAAI,CAAC,GAAG,IAAIhQ,EAAEs8J,IAAI,CAAC,IAAI34J,EAAE3D,EAAEmzN,UAAU,GAAGljN,EAAY,oBAAVtM,EAAEA,EAAExB,OAA4B0+K,YAAYl9K,EAAEk9K,YAAY,UAAU,OAAO,aAAal9K,EAAEsG,QAAQ,WAAW,CAACtG,EAAE3D,EAAEmzN,UAAU,IAAI5xN,EAAEvB,EAAEgtO,cAAc7qO,MAAMZ,OAAE,IAASA,GAAG,OAAOA,GAAGA,EAAEkP,eAAe,WAAWlP,EAAE0I,QAAQ,KAAKtG,EAAExB,MAAM8H,QAAQ4nN,GAAG,UAAUtwN,SAAS,GAAG,IAAIvB,EAAEs8J,IAAIt8J,EAAEmzN,UAAU7D,UAAUr/M,EAAE,GAAGjQ,EAAEgtO,mBAAmB,IAAI,KAAKhtO,EAAEs8J,KAAK,KAAKt8J,EAAEs8J,KAAK,OAAOt8J,EAAE20N,eAAe30N,IAAIgQ,IAAI,OAAOhQ,EAAE0wG,MAAM,CAAC1wG,EAAE0wG,MAAM7uG,OAAO7B,EAAEA,EAAEA,EAAE0wG,MAAM,SAAS,GAAG1wG,IACtfgQ,EAAE,MAAM,KAAK,OAAOhQ,EAAE80N,SAAS,CAAC,GAAG,OAAO90N,EAAE6B,QAAQ7B,EAAE6B,SAASmO,EAAE,OAAOhQ,EAAEA,EAAE6B,OAAO7B,EAAE80N,QAAQjzN,OAAO7B,EAAE6B,OAAO7B,EAAEA,EAAE80N,SACjH,SAAS6gB,GAAG3lO,EAAEC,GAAG,GAAGo2N,IAAI,oBAAoBA,GAAGuP,qBAAqB,IAAIvP,GAAGuP,qBAAqBxP,GAAGn2N,GAAG,MAAMzO,IAAI,OAAOyO,EAAEqsJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnBtsJ,EAAEC,EAAEq5N,cAAyC,QAAft5N,EAAEA,EAAE07N,YAAqB,CAAC,IAAI1rO,EAAEgQ,EAAEA,EAAEtS,KAAK,EAAE,CAAC,IAAIiG,EAAE3D,EAAEuB,EAAEoC,EAAE8c,QAAgB,GAAR9c,EAAEA,EAAE24J,SAAO,IAAS/6J,EAAE,GAAG,KAAO,EAAFoC,GAAK6xO,GAAGvlO,EAAEjQ,OAAO,CAAC2D,EAAEsM,EAAE,IAAI1O,IAAI,MAAMC,GAAG4zO,GAAGzxO,EAAEnC,IAAIxB,EAAEA,EAAEtC,WAAWsC,IAAIgQ,GAAG,MAAM,KAAK,EAAsB,GAApBmlO,GAAGllO,GAAoB,oBAAjBD,EAAEC,EAAEkjN,WAAmChsK,qBAAqB,IAAIn3C,EAAEzP,MAAM0P,EAAE+8N,cAAch9N,EAAEmP,MAAMlP,EAAE0kN,cAAc3kN,EAAEm3C,uBAAuB,MAAM3lD,GAAG4zO,GAAGnlO,EAC/gBzO,GAAG,MAAM,KAAK,EAAE2zO,GAAGllO,GAAG,MAAM,KAAK,EAAE4lO,GAAG7lO,EAAEC,IAAI,SAAS6lO,GAAG9lO,GAAGA,EAAEykN,UAAU,KAAKzkN,EAAE0gG,MAAM,KAAK1gG,EAAE84N,aAAa,KAAK94N,EAAE47N,YAAY,KAAK57N,EAAE07N,WAAW,KAAK17N,EAAEg9N,cAAc,KAAKh9N,EAAE2kN,cAAc,KAAK3kN,EAAEw9N,aAAa,KAAKx9N,EAAEnO,OAAO,KAAKmO,EAAEs5N,YAAY,KAAK,SAASyM,GAAG/lO,GAAG,OAAO,IAAIA,EAAEssJ,KAAK,IAAItsJ,EAAEssJ,KAAK,IAAItsJ,EAAEssJ,IACnS,SAAS05E,GAAGhmO,GAAGA,EAAE,CAAC,IAAI,IAAIC,EAAED,EAAEnO,OAAO,OAAOoO,GAAG,CAAC,GAAG8lO,GAAG9lO,GAAG,MAAMD,EAAEC,EAAEA,EAAEpO,OAAO,MAAM4J,MAAMtD,EAAE,MAAO,IAAInI,EAAEiQ,EAAgB,OAAdA,EAAEjQ,EAAEmzN,UAAiBnzN,EAAEs8J,KAAK,KAAK,EAAE,IAAI34J,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAEsM,EAAEA,EAAE2mN,cAAcjzN,GAAE,EAAG,MAAM,QAAQ,MAAM8H,MAAMtD,EAAE,MAAe,GAARnI,EAAE4+K,QAAWwwC,GAAGn/M,EAAE,IAAIjQ,EAAE4+K,QAAQ,IAAI5uK,EAAEC,EAAE,IAAIjQ,EAAEgQ,IAAI,CAAC,KAAK,OAAOhQ,EAAE80N,SAAS,CAAC,GAAG,OAAO90N,EAAE6B,QAAQk0O,GAAG/1O,EAAE6B,QAAQ,CAAC7B,EAAE,KAAK,MAAMgQ,EAAEhQ,EAAEA,EAAE6B,OAAiC,IAA1B7B,EAAE80N,QAAQjzN,OAAO7B,EAAE6B,OAAW7B,EAAEA,EAAE80N,QAAQ,IAAI90N,EAAEs8J,KAAK,IAAIt8J,EAAEs8J,KAAK,KAAKt8J,EAAEs8J,KAAK,CAAC,GAAW,EAARt8J,EAAE4+K,MAAQ,SAAS3uK,EAAE,GAAG,OAC/ejQ,EAAE0wG,OAAO,IAAI1wG,EAAEs8J,IAAI,SAASrsJ,EAAOjQ,EAAE0wG,MAAM7uG,OAAO7B,EAAEA,EAAEA,EAAE0wG,MAAM,KAAa,EAAR1wG,EAAE4+K,OAAS,CAAC5+K,EAAEA,EAAEmzN,UAAU,MAAMnjN,GAAGrM,EAAEsyO,GAAGjmO,EAAEhQ,EAAEiQ,GAAGimO,GAAGlmO,EAAEhQ,EAAEiQ,GACzH,SAASgmO,GAAGjmO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEqM,EAAEssJ,IAAI/6J,EAAE,IAAIoC,GAAG,IAAIA,EAAE,GAAGpC,EAAEyO,EAAEzO,EAAEyO,EAAEmjN,UAAUnjN,EAAEmjN,UAAUhzN,SAAS8P,EAAE,IAAIjQ,EAAE2E,SAAS3E,EAAEwE,WAAW2/K,aAAan0K,EAAEC,GAAGjQ,EAAEmkL,aAAan0K,EAAEC,IAAI,IAAIjQ,EAAE2E,UAAUsL,EAAEjQ,EAAEwE,YAAa2/K,aAAan0K,EAAEhQ,IAAKiQ,EAAEjQ,GAAIuL,YAAYyE,GAA4B,QAAxBhQ,EAAEA,EAAEm2O,2BAA8B,IAASn2O,GAAG,OAAOiQ,EAAE8jO,UAAU9jO,EAAE8jO,QAAQ1P,UAAU,GAAG,IAAI1gO,GAAc,QAAVqM,EAAEA,EAAE0gG,OAAgB,IAAIulI,GAAGjmO,EAAEC,EAAEjQ,GAAGgQ,EAAEA,EAAE8kN,QAAQ,OAAO9kN,GAAGimO,GAAGjmO,EAAEC,EAAEjQ,GAAGgQ,EAAEA,EAAE8kN,QAC9Y,SAASohB,GAAGlmO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEqM,EAAEssJ,IAAI/6J,EAAE,IAAIoC,GAAG,IAAIA,EAAE,GAAGpC,EAAEyO,EAAEzO,EAAEyO,EAAEmjN,UAAUnjN,EAAEmjN,UAAUhzN,SAAS8P,EAAEjQ,EAAEmkL,aAAan0K,EAAEC,GAAGjQ,EAAEuL,YAAYyE,QAAQ,GAAG,IAAIrM,GAAc,QAAVqM,EAAEA,EAAE0gG,OAAgB,IAAIwlI,GAAGlmO,EAAEC,EAAEjQ,GAAGgQ,EAAEA,EAAE8kN,QAAQ,OAAO9kN,GAAGkmO,GAAGlmO,EAAEC,EAAEjQ,GAAGgQ,EAAEA,EAAE8kN,QACrN,SAAS+gB,GAAG7lO,EAAEC,GAAG,IAAI,IAAa1O,EAAEC,EAAXxB,EAAEiQ,EAAEtM,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAE3D,EAAE6B,OAAOmO,EAAE,OAAO,CAAC,GAAG,OAAOrM,EAAE,MAAM8H,MAAMtD,EAAE,MAAoB,OAAd5G,EAAEoC,EAAEwvN,UAAiBxvN,EAAE24J,KAAK,KAAK,EAAE96J,GAAE,EAAG,MAAMwO,EAAE,KAAK,EAAiC,KAAK,EAAEzO,EAAEA,EAAEq1N,cAAcp1N,GAAE,EAAG,MAAMwO,EAAErM,EAAEA,EAAE9B,OAAO8B,GAAE,EAAG,GAAG,IAAI3D,EAAEs8J,KAAK,IAAIt8J,EAAEs8J,IAAI,CAACtsJ,EAAE,IAAI,IAAIpM,EAAEoM,EAAEy6H,EAAEzqI,EAAEyW,EAAEg0H,IAAI,GAAGkrG,GAAG/xO,EAAE6S,GAAG,OAAOA,EAAEi6F,OAAO,IAAIj6F,EAAE6lJ,IAAI7lJ,EAAEi6F,MAAM7uG,OAAO4U,EAAEA,EAAEA,EAAEi6F,UAAU,CAAC,GAAGj6F,IAAIg0H,EAAE,MAAMz6H,EAAE,KAAK,OAAOyG,EAAEq+M,SAAS,CAAC,GAAG,OAAOr+M,EAAE5U,QAAQ4U,EAAE5U,SAAS4oI,EAAE,MAAMz6H,EAAEyG,EAAEA,EAAE5U,OAAO4U,EAAEq+M,QAAQjzN,OAAO4U,EAAE5U,OAAO4U,EAAEA,EAAEq+M,QAAQtzN,GAAGoC,EAAErC,EAAEkpI,EAAEzqI,EAAEmzN,UACrf,IAAIvvN,EAAEe,SAASf,EAAEY,WAAWkH,YAAY++H,GAAG7mI,EAAE8H,YAAY++H,IAAIlpI,EAAEmK,YAAY1L,EAAEmzN,gBAAgB,GAAG,IAAInzN,EAAEs8J,KAAK,GAAG,OAAOt8J,EAAE0wG,MAAM,CAACnvG,EAAEvB,EAAEmzN,UAAUyD,cAAcp1N,GAAE,EAAGxB,EAAE0wG,MAAM7uG,OAAO7B,EAAEA,EAAEA,EAAE0wG,MAAM,eAAe,GAAGilI,GAAG3lO,EAAEhQ,GAAG,OAAOA,EAAE0wG,MAAM,CAAC1wG,EAAE0wG,MAAM7uG,OAAO7B,EAAEA,EAAEA,EAAE0wG,MAAM,SAAS,GAAG1wG,IAAIiQ,EAAE,MAAM,KAAK,OAAOjQ,EAAE80N,SAAS,CAAC,GAAG,OAAO90N,EAAE6B,QAAQ7B,EAAE6B,SAASoO,EAAE,OAAkB,KAAXjQ,EAAEA,EAAE6B,QAAay6J,MAAM34J,GAAE,GAAI3D,EAAE80N,QAAQjzN,OAAO7B,EAAE6B,OAAO7B,EAAEA,EAAE80N,SAClZ,SAASshB,GAAGpmO,EAAEC,GAAG,OAAOA,EAAEqsJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIt8J,EAAEiQ,EAAEq5N,YAAyC,GAAG,QAAhCtpO,EAAE,OAAOA,EAAEA,EAAE0rO,WAAW,MAAiB,CAAC,IAAI/nO,EAAE3D,EAAEA,EAAEtC,KAAK,GAAG,KAAW,EAANiG,EAAE24J,OAAStsJ,EAAErM,EAAE8c,QAAQ9c,EAAE8c,aAAQ,OAAO,IAASzQ,GAAGA,KAAKrM,EAAEA,EAAEjG,WAAWiG,IAAI3D,GAAG,OAAO,KAAK,EAErJ,KAAK,GAAoG,KAAK,GAAG,OAF6C,KAAK,EAAgB,GAAG,OAAjBA,EAAEiQ,EAAEkjN,WAAqB,CAACxvN,EAAEsM,EAAE+8N,cAAc,IAAIzrO,EAAE,OAAOyO,EAAEA,EAAEg9N,cAAcrpO,EAAEqM,EAAEC,EAAE1Q,KAAK,IAAIiC,EAAEyO,EAAEq5N,YAA+B,GAAnBr5N,EAAEq5N,YAAY,KAAQ,OAAO9nO,EAAE,CAAgF,IAA/ExB,EAAEmlO,IAAIxhO,EAAE,UAAUqM,GAAG,UAAUrM,EAAEpE,MAAM,MAAMoE,EAAEnF,MAAMwvN,GAAGhuN,EAAE2D,GAAG8uN,GAAGziN,EAAEzO,GAAG0O,EAAEwiN,GAAGziN,EAAErM,GAAOpC,EAAE,EAAEA,EAAEC,EAAE9E,OAAO6E,GAClf,EAAE,CAAC,IAAIqC,EAAEpC,EAAED,GAAGkpI,EAAEjpI,EAAED,EAAE,GAAG,UAAUqC,EAAEkuN,GAAG9xN,EAAEyqI,GAAG,4BAA4B7mI,EAAEorN,GAAGhvN,EAAEyqI,GAAG,aAAa7mI,EAAEwrN,GAAGpvN,EAAEyqI,GAAGugF,EAAGhrN,EAAE4D,EAAE6mI,EAAEx6H,GAAG,OAAOD,GAAG,IAAK,QAAQi+M,GAAGjuN,EAAE2D,GAAG,MAAM,IAAK,WAAW+qN,GAAG1uN,EAAE2D,GAAG,MAAM,IAAK,SAASqM,EAAEhQ,EAAE2tN,cAAcmmB,YAAY9zO,EAAE2tN,cAAcmmB,cAAcnwO,EAAEokH,SAAmB,OAAVvmH,EAAEmC,EAAE9F,OAAcywN,GAAGtuN,IAAI2D,EAAEokH,SAASvmH,GAAE,GAAIwO,MAAMrM,EAAEokH,WAAW,MAAMpkH,EAAE24E,aAAagyI,GAAGtuN,IAAI2D,EAAEokH,SAASpkH,EAAE24E,cAAa,GAAIgyI,GAAGtuN,IAAI2D,EAAEokH,SAASpkH,EAAEokH,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAO93G,EAAEkjN,UAAU,MAAM1nN,MAAMtD,EAAE,MAC/c,YADqd8H,EAAEkjN,UAAU7D,UACjfr/M,EAAE+8N,eAAqB,KAAK,EAA8D,aAA5DhtO,EAAEiQ,EAAEkjN,WAAYwD,UAAU32N,EAAE22N,SAAQ,EAAGS,GAAGp3N,EAAE42N,iBAAsC,KAAK,GAAyD,OAAtD,OAAO3mN,EAAE0kN,gBAAgB0hB,GAAGnlG,KAAIwkG,GAAGzlO,EAAEygG,OAAM,SAAK4lI,GAAGrmO,GAAU,KAAK,GAAS,YAANqmO,GAAGrmO,GAAyB,KAAK,GAAG,KAAK,GAAgC,YAA7BylO,GAAGzlO,EAAE,OAAOA,EAAE0kN,eAAsB,MAAMlpN,MAAMtD,EAAE,MAAO,SAASmuO,GAAGtmO,GAAG,IAAIC,EAAED,EAAEs5N,YAAY,GAAG,OAAOr5N,EAAE,CAACD,EAAEs5N,YAAY,KAAK,IAAItpO,EAAEgQ,EAAEmjN,UAAU,OAAOnzN,IAAIA,EAAEgQ,EAAEmjN,UAAU,IAAI8hB,IAAIhlO,EAAEgD,SAAQ,SAAShD,GAAG,IAAItM,EAAE4yO,GAAGz6N,KAAK,KAAK9L,EAAEC,GAAGjQ,EAAEojH,IAAInzG,KAAKjQ,EAAE+E,IAAIkL,GAAGA,EAAE6hD,KAAKnuD,EAAEA,QACne,SAAS6yO,GAAGxmO,EAAEC,GAAG,OAAO,OAAOD,IAAsB,QAAlBA,EAAEA,EAAE2kN,gBAAwB,OAAO3kN,EAAE4kN,cAA+B,QAAlB3kN,EAAEA,EAAE0kN,gBAAwB,OAAO1kN,EAAE2kN,YAAe,IAAI6hB,GAAGtvO,KAAK8hE,KAAKytK,GAAGnrB,EAAG/C,uBAAuBmuB,GAAGprB,EAAG7C,kBAAkBkuB,GAAE,EAAEjH,GAAE,KAAKkH,GAAE,KAAK1C,GAAE,EAAE2C,GAAG,EAAEC,GAAGxR,GAAG,GAAGroD,GAAE,EAAE85D,GAAG,KAAKC,GAAG,EAAE7M,GAAG,EAAE6J,GAAG,EAAEiD,GAAG,EAAEC,GAAG,KAAKd,GAAG,EAAEjC,GAAGgD,IAAS,SAASC,KAAKjD,GAAGljG,KAAI,IAAI,IA8BsFomG,GA9BlFC,GAAE,KAAK5C,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKyC,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAAS1N,KAAK,OAAO,KAAO,GAAFkM,IAAM1lG,MAAK,IAAI8mG,GAAGA,GAAGA,GAAG9mG,KAC3e,SAASy5F,GAAG36N,GAAY,GAAG,KAAO,GAAnBA,EAAEA,EAAE68F,OAAkB,OAAO,EAAE,GAAG,KAAO,EAAF78F,GAAK,OAAO,KAAK83N,KAAK,EAAE,EAAkB,GAAhB,IAAImQ,KAAKA,GAAGhB,IAAO,IAAI9O,GAAG96D,WAAW,CAAC,IAAI6qE,KAAKA,GAAG,OAAOf,GAAGA,GAAGze,aAAa,GAAG1oN,EAAEioO,GAAG,IAAIhoO,EAAE,SAASioO,GAAsD,OAA7C,KAANjoO,IAAIA,KAA8B,KAAPA,GAAbD,EAAE,SAASA,IAAOA,KAAUC,EAAE,OAAcA,EAA4D,OAA1DD,EAAE83N,KAAK,KAAO,EAAF8O,KAAM,KAAK5mO,EAAEA,EAAEkpN,GAAG,GAAG+e,IAAajoO,EAAEkpN,GAAVlpN,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,GAsKuJqoO,CAAGroO,GAAUioO,IAAYjoO,EACnT,SAAS46N,GAAG56N,EAAEC,EAAEjQ,GAAG,GAAG,GAAG83O,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKtsO,MAAMtD,EAAE,MAAgB,GAAG,QAAb6H,EAAEsoO,GAAGtoO,EAAEC,IAAe,OAAO,KAAKopN,GAAGrpN,EAAEC,EAAEjQ,GAAGgQ,IAAI2/N,KAAIsE,IAAIhkO,EAAE,IAAIitK,IAAGg3D,GAAGlkO,EAAEmkO,KAAI,IAAIxwO,EAAEmkO,KAAK,IAAI73N,EAAE,KAAO,EAAF2mO,KAAM,KAAO,GAAFA,IAAM2B,GAAGvoO,IAAIwoO,GAAGxoO,EAAEhQ,GAAG,IAAI42O,KAAIS,KAAKpP,QAAQ,KAAO,EAAF2O,KAAM,KAAKjzO,GAAG,KAAKA,IAAI,OAAOk0O,GAAGA,GAAG,IAAIn7I,IAAI,CAAC1sF,IAAI6nO,GAAG9yO,IAAIiL,IAAIwoO,GAAGxoO,EAAEhQ,IAAIm3O,GAAGnnO,EAAE,SAASsoO,GAAGtoO,EAAEC,GAAGD,EAAEg5N,OAAO/4N,EAAE,IAAIjQ,EAAEgQ,EAAEykN,UAAqC,IAA3B,OAAOz0N,IAAIA,EAAEgpO,OAAO/4N,GAAGjQ,EAAEgQ,EAAMA,EAAEA,EAAEnO,OAAO,OAAOmO,GAAGA,EAAE44N,YAAY34N,EAAgB,QAAdjQ,EAAEgQ,EAAEykN,aAAqBz0N,EAAE4oO,YAAY34N,GAAGjQ,EAAEgQ,EAAEA,EAAEA,EAAEnO,OAAO,OAAO,IAAI7B,EAAEs8J,IAAIt8J,EAAEmzN,UAAU,KACze,SAASqlB,GAAGxoO,EAAEC,GAAG,IAAI,IAAIjQ,EAAEgQ,EAAEyoO,aAAa90O,EAAEqM,EAAE4oN,eAAer3N,EAAEyO,EAAE6oN,YAAYr3N,EAAEwO,EAAE0oO,gBAAgB90O,EAAEoM,EAAE0oN,aAAa,EAAE90N,GAAG,CAAC,IAAI6mI,EAAE,GAAGquF,GAAGl1N,GAAG6S,EAAE,GAAGg0H,EAAElwD,EAAE/4E,EAAEipI,GAAG,IAAI,IAAIlwD,GAAG,GAAG,KAAK9jE,EAAE9S,IAAI,KAAK8S,EAAElV,GAAG,CAACg5E,EAAEtqE,EAAEuoN,GAAG/hN,GAAG,IAAIvY,EAAEmD,GAAEG,EAAEipI,GAAG,IAAIvsI,EAAEq8E,EAAE,IAAI,GAAGr8E,EAAEq8E,EAAE,KAAK,QAAQA,GAAGtqE,IAAID,EAAE2oN,cAAcliN,GAAG7S,IAAI6S,EAAwB,GAAtB9S,EAAE80N,GAAGzoN,EAAEA,IAAI2/N,GAAEwE,GAAE,GAAGlkO,EAAE5O,GAAK,IAAIsC,EAAE,OAAO3D,IAAIA,IAAIynO,IAAIjB,GAAGxmO,GAAGgQ,EAAEyoO,aAAa,KAAKzoO,EAAE2oO,iBAAiB,OAAO,CAAC,GAAG,OAAO34O,EAAE,CAAC,GAAGgQ,EAAE2oO,mBAAmB1oO,EAAE,OAAOjQ,IAAIynO,IAAIjB,GAAGxmO,GAAG,KAAKiQ,GAAGjQ,EAAEu4O,GAAGz8N,KAAK,KAAK9L,GAAG,OAAO23N,IAAIA,GAAG,CAAC3nO,GAAG8iC,GAAGyjM,GAAGU,GAAGiB,KAAKP,GAAG/pO,KAAKoC,GACrfA,EAAEynO,IAAI,KAAKx3N,EAAEjQ,EAAEgoO,GAAG,GAAGuQ,GAAGz8N,KAAK,KAAK9L,KAAKhQ,EAzK+F,SAAYgQ,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMvE,MAAMtD,EAAE,IAAI6H,KAyKxT4oO,CAAG3oO,GAAGjQ,EAAEgoO,GAAGhoO,EAAE64O,GAAG/8N,KAAK,KAAK9L,KAAKA,EAAE2oO,iBAAiB1oO,EAAED,EAAEyoO,aAAaz4O,GAC5G,SAAS64O,GAAG7oO,GAAiB,GAAdgoO,IAAI,EAAEE,GAAGD,GAAG,EAAK,KAAO,GAAFrB,IAAM,MAAMnrO,MAAMtD,EAAE,MAAM,IAAI8H,EAAED,EAAEyoO,aAAa,GAAGK,MAAM9oO,EAAEyoO,eAAexoO,EAAE,OAAO,KAAK,IAAIjQ,EAAEy4N,GAAGzoN,EAAEA,IAAI2/N,GAAEwE,GAAE,GAAG,GAAG,IAAIn0O,EAAE,OAAO,KAAK,IAAI2D,EAAE3D,EAAMuB,EAAEq1O,GAAEA,IAAG,GAAG,IAAIp1O,EAAEu3O,KAAkC,IAA1BpJ,KAAI3/N,GAAGmkO,KAAIxwO,IAAE0zO,KAAK2B,GAAGhpO,EAAErM,MAAM,IAAIs1O,KAAK,MAAM,MAAMxuG,GAAGyuG,GAAGlpO,EAAEy6H,GAAgE,GAApDg+F,KAAKiO,GAAG5lO,QAAQtP,EAAEo1O,GAAEr1O,EAAE,OAAOs1O,GAAElzO,EAAE,GAAGgsO,GAAE,KAAKwE,GAAE,EAAExwO,EAAEu5K,IAAM,KAAK+5D,GAAGhD,IAAI+E,GAAGhpO,EAAE,QAAQ,GAAG,IAAIrM,EAAE,CAAyF,GAAxF,IAAIA,IAAIizO,IAAG,GAAG5mO,EAAE2mN,UAAU3mN,EAAE2mN,SAAQ,EAAGiO,GAAG50N,EAAE4mN,gBAAwB,KAAR52N,EAAEi5N,GAAGjpN,MAAWrM,EAAEw1O,GAAGnpO,EAAEhQ,KAAQ,IAAI2D,EAAE,MAAMsM,EAAE+mO,GAAGgC,GAAGhpO,EAAE,GAAGkkO,GAAGlkO,EAAEhQ,GAAGw4O,GAAGxoO,EAAEkhI,MAAKjhI,EAC3c,OAD6cD,EAAEopO,aACrfppO,EAAEc,QAAQ2jN,UAAUzkN,EAAEqpO,cAAcr5O,EAAS2D,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM8H,MAAMtD,EAAE,MAAM,KAAK,EACI,KAAK,EAAEmxO,GAAGtpO,GAAG,MADH,KAAK,EAAU,GAARkkO,GAAGlkO,EAAEhQ,IAAS,SAAFA,KAAcA,GAAiB,IAAb2D,EAAE0yO,GAAG,IAAInlG,MAAU,CAAC,GAAG,IAAIunF,GAAGzoN,EAAE,GAAG,MAAyB,KAAnBzO,EAAEyO,EAAE4oN,gBAAqB54N,KAAKA,EAAE,CAAC0qO,KAAK16N,EAAE6oN,aAAa7oN,EAAE4oN,eAAer3N,EAAE,MAAMyO,EAAE8xM,cAAc4iB,GAAG4U,GAAGx9N,KAAK,KAAK9L,GAAGrM,GAAG,MAAM21O,GAAGtpO,GAAG,MAAM,KAAK,EAAU,GAARkkO,GAAGlkO,EAAEhQ,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAf2D,EAAEqM,EAAEspN,WAAe/3N,GAAG,EAAE,EAAEvB,GAAG,CAAC,IAAI4D,EAAE,GAAGk1N,GAAG94N,GAAGwB,EAAE,GAAGoC,GAAEA,EAAED,EAAEC,IAAKrC,IAAIA,EAAEqC,GAAG5D,IAAIwB,EACjZ,GADmZxB,EAAEuB,EAClZ,IAD4ZvB,GAAG,KAAXA,EAAEkxI,KAAIlxI,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAKy2O,GAAGz2O,EAAE,OAAOA,GAAU,CAACgQ,EAAE8xM,cAAc4iB,GAAG4U,GAAGx9N,KAAK,KAAK9L,GAAGhQ,GAAG,MAAMs5O,GAAGtpO,GAAG,MAAyB,QAAQ,MAAMvE,MAAMtD,EAAE,OAAkB,OAAVqwO,GAAGxoO,EAAEkhI,MAAYlhI,EAAEyoO,eAAexoO,EAAE4oO,GAAG/8N,KAAK,KAAK9L,GAAG,KAAK,SAASkkO,GAAGlkO,EAAEC,GAAuD,IAApDA,IAAIinO,GAAGjnO,IAAIgkO,GAAGjkO,EAAE4oN,gBAAgB3oN,EAAED,EAAE6oN,cAAc5oN,EAAMD,EAAEA,EAAE0oO,gBAAgB,EAAEzoO,GAAG,CAAC,IAAIjQ,EAAE,GAAG84N,GAAG7oN,GAAGtM,EAAE,GAAG3D,EAAEgQ,EAAEhQ,IAAI,EAAEiQ,IAAItM,GAC1U,SAAS40O,GAAGvoO,GAAG,GAAG,KAAO,GAAF4mO,IAAM,MAAMnrO,MAAMtD,EAAE,MAAW,GAAL2wO,KAAQ9oO,IAAI2/N,IAAG,KAAK3/N,EAAE2oN,aAAawb,IAAG,CAAC,IAAIlkO,EAAEkkO,GAAMn0O,EAAEm5O,GAAGnpO,EAAEC,GAAG,KAAKgnO,GAAGhD,MAAgBj0O,EAAEm5O,GAAGnpO,EAAfC,EAAEwoN,GAAGzoN,EAAEC,UAA6BjQ,EAAEm5O,GAAGnpO,EAAfC,EAAEwoN,GAAGzoN,EAAE,IAAgH,GAAnG,IAAIA,EAAEssJ,KAAK,IAAIt8J,IAAI42O,IAAG,GAAG5mO,EAAE2mN,UAAU3mN,EAAE2mN,SAAQ,EAAGiO,GAAG50N,EAAE4mN,gBAAwB,KAAR3mN,EAAEgpN,GAAGjpN,MAAWhQ,EAAEm5O,GAAGnpO,EAAEC,KAAQ,IAAIjQ,EAAE,MAAMA,EAAEg3O,GAAGgC,GAAGhpO,EAAE,GAAGkkO,GAAGlkO,EAAEC,GAAGuoO,GAAGxoO,EAAEkhI,MAAKlxI,EAAuE,OAArEgQ,EAAEopO,aAAappO,EAAEc,QAAQ2jN,UAAUzkN,EAAEqpO,cAAcppO,EAAEqpO,GAAGtpO,GAAGwoO,GAAGxoO,EAAEkhI,MAAY,KACnR,SAASqoG,GAAGvpO,EAAEC,GAAG,IAAIjQ,EAAE42O,GAAEA,IAAG,EAAE,IAAI,OAAO5mO,EAAEC,GAAb,QAA4B,KAAJ2mO,GAAE52O,KAAUq3O,KAAKpP,OAAO,SAASuR,GAAGxpO,EAAEC,GAAG,IAAIjQ,EAAE42O,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAO5mO,EAAEC,GAAb,QAA4B,KAAJ2mO,GAAE52O,KAAUq3O,KAAKpP,OAAO,SAASgK,GAAGjiO,EAAEC,GAAGu3M,GAAEuvB,GAAGD,IAAIA,IAAI7mO,EAAEgnO,IAAIhnO,EAAE,SAASokO,KAAKyC,GAAGC,GAAGjmO,QAAQy2M,GAAEwvB,IAC5V,SAASiC,GAAGhpO,EAAEC,GAAGD,EAAEopO,aAAa,KAAKppO,EAAEqpO,cAAc,EAAE,IAAIr5O,EAAEgQ,EAAE8xM,cAAiD,IAAlC,IAAI9hN,IAAIgQ,EAAE8xM,eAAe,EAAE6iB,GAAG3kO,IAAO,OAAO62O,GAAE,IAAI72O,EAAE62O,GAAEh1O,OAAO,OAAO7B,GAAG,CAAC,IAAI2D,EAAE3D,EAAE,OAAO2D,EAAE24J,KAAK,KAAK,EAA6B,QAA3B34J,EAAEA,EAAEpE,KAAKswL,yBAA4B,IAASlsL,GAAGmiO,KAAK,MAAM,KAAK,EAAE8G,KAAKrlB,GAAES,IAAGT,GAAEQ,IAAG+lB,KAAK,MAAM,KAAK,EAAEhB,GAAGnpO,GAAG,MAAM,KAAK,EAAEipO,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGrlB,GAAEp2E,IAAG,MAAM,KAAK,GAAGu3F,GAAG/kO,GAAG,MAAM,KAAK,GAAG,KAAK,GAAG0wO,KAAKr0O,EAAEA,EAAE6B,OAAO8tO,GAAE3/N,EAAE6mO,GAAEhL,GAAG77N,EAAEc,QAAQ,MAAMqjO,GAAE2C,GAAGG,GAAGhnO,EAAEitK,GAAE,EAAE85D,GAAG,KAAKE,GAAGjD,GAAG7J,GAAG,EACvc,SAAS8O,GAAGlpO,EAAEC,GAAG,OAAE,CAAC,IAAIjQ,EAAE62O,GAAE,IAAuB,GAAnBpO,KAAKuF,GAAGl9N,QAAQ69N,GAAMR,GAAG,CAAC,IAAI,IAAIxqO,EAAE2kN,GAAEqM,cAAc,OAAOhxN,GAAG,CAAC,IAAIpC,EAAEoC,EAAEiyD,MAAM,OAAOr0D,IAAIA,EAAEmoO,QAAQ,MAAM/lO,EAAEA,EAAEjG,KAAKywO,IAAG,EAAyC,GAAtCD,GAAG,EAAE3lB,GAAEhL,GAAE+K,GAAE,KAAK8lB,IAAG,EAAGuI,GAAG7lO,QAAQ,KAAQ,OAAO9Q,GAAG,OAAOA,EAAE6B,OAAO,CAACq7K,GAAE,EAAE85D,GAAG/mO,EAAE4mO,GAAE,KAAK,MAAM7mO,EAAE,CAAC,IAAIxO,EAAEwO,EAAEpM,EAAE5D,EAAE6B,OAAO4oI,EAAEzqI,EAAEyW,EAAExG,EAAoD,GAAlDA,EAAEkkO,GAAE1pG,EAAEm0C,OAAO,KAAKn0C,EAAEmhG,YAAYnhG,EAAEihG,WAAW,KAAQ,OAAOj1N,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAEq7C,KAAK,CAAC,IAAIyoB,EAAE9jE,EAAE,GAAG,KAAY,EAAPg0H,EAAE59B,MAAQ,CAAC,IAAI3uG,EAAEusI,EAAEgqF,UAAUv2N,GAAGusI,EAAE6+F,YAAYprO,EAAEorO,YAAY7+F,EAAEkqF,cAAcz2N,EAAEy2N,cAAclqF,EAAEu+F,MAAM9qO,EAAE8qO,QACpfv+F,EAAE6+F,YAAY,KAAK7+F,EAAEkqF,cAAc,MAAM,IAAIjZ,EAAE,KAAe,EAAVvqE,GAAErgI,SAAWoG,EAAEtT,EAAE,EAAE,CAAC,IAAI+9G,EAAE,GAAGA,EAAE,KAAKzqG,EAAEolJ,IAAI,CAAC,IAAIp0J,EAAEgP,EAAEy9M,cAAc,GAAG,OAAOzsN,EAAEy5G,EAAE,OAAOz5G,EAAE0sN,eAAqB,CAAC,IAAIzhL,EAAEj8B,EAAE81N,cAAcrrH,OAAE,IAASxuE,EAAEsZ,YAAY,IAAKtZ,EAAE4/L,6BAA8Br3B,IAAS,GAAG/5F,EAAE,CAAC,IAAI+kG,EAAExvM,EAAEoyN,YAAY,GAAG,OAAO5iB,EAAE,CAAC,IAAIF,EAAE,IAAI9pH,IAAI8pH,EAAEzhN,IAAIw1E,GAAGrjE,EAAEoyN,YAAY9iB,OAAOE,EAAE3hN,IAAIw1E,GAAG,GAAG,KAAY,EAAPrjE,EAAE21F,MAAQ,CAA2C,GAA1C31F,EAAE0nK,OAAO,GAAGn0C,EAAEm0C,OAAO,MAAMn0C,EAAEm0C,QAAQ,KAAQ,IAAIn0C,EAAE6xB,IAAI,GAAG,OAAO7xB,EAAEgqF,UAAUhqF,EAAE6xB,IAAI,OAAO,CAAC,IAAI9kJ,EAAEqyN,IAAI,EAAE,GAAGryN,EAAE8kJ,IAAI,EAAE2tE,GAAGx/F,EAAEjzH,GAAGizH,EAAEu+F,OAAO,EAAE,MAAMh5N,EAAEyG,OAC5f,EAAOg0H,EAAEx6H,EAAE,IAAIq2M,EAAE9kN,EAAEi4O,UAA+G,GAArG,OAAOnzB,GAAGA,EAAE9kN,EAAEi4O,UAAU,IAAIhF,GAAGh+N,EAAE,IAAIimF,IAAI4pH,EAAE9sM,IAAI+gE,EAAE9jE,SAAgB,KAAXA,EAAE6vM,EAAEhtM,IAAIihE,MAAgB9jE,EAAE,IAAIimF,IAAI4pH,EAAE9sM,IAAI+gE,EAAE9jE,KAASA,EAAE2sG,IAAIqnB,GAAG,CAACh0H,EAAE1R,IAAI0lI,GAAG,IAAIrJ,EAAEs4G,GAAG59N,KAAK,KAAKta,EAAE+4E,EAAEkwD,GAAGlwD,EAAEzoB,KAAKsvE,EAAEA,GAAGlqH,EAAE0nK,OAAO,KAAK1nK,EAAE8xN,MAAM/4N,EAAE,MAAMD,EAAEkH,EAAEA,EAAErV,aAAa,OAAOqV,GAAGT,EAAEhL,OAAOwhN,EAAGxiF,EAAElrI,OAAO,qBAAqB,yLAAyL,IAAI29K,KAAIA,GAAE,GAAGzmK,EAAE89N,GAAG99N,EAAEg0H,GAAGvzH,EACpftT,EAAE,EAAE,CAAC,OAAOsT,EAAEolJ,KAAK,KAAK,EAAE96J,EAAEiV,EAAES,EAAE0nK,OAAO,KAAK3uK,IAAIA,EAAEiH,EAAE8xN,OAAO/4N,EAAkBi6N,GAAGhzN,EAAbw9N,GAAGx9N,EAAE1V,EAAEyO,IAAW,MAAMD,EAAE,KAAK,EAAExO,EAAEiV,EAAE,IAAIyxM,EAAEhxM,EAAE3X,KAAK4oN,EAAEjxM,EAAEi8M,UAAU,GAAG,KAAa,GAARj8M,EAAE0nK,SAAY,oBAAoBspC,EAAE33B,0BAA0B,OAAO43B,GAAG,oBAAoBA,EAAE2sB,oBAAoB,OAAOC,KAAKA,GAAG3xH,IAAI+kG,KAAK,CAACjxM,EAAE0nK,OAAO,KAAK3uK,IAAIA,EAAEiH,EAAE8xN,OAAO/4N,EAAkBi6N,GAAGhzN,EAAb29N,GAAG39N,EAAE1V,EAAEyO,IAAW,MAAMD,GAAGkH,EAAEA,EAAErV,aAAa,OAAOqV,GAAGyiO,GAAG35O,GAAG,MAAM45O,GAAI3pO,EAAE2pO,EAAG/C,KAAI72O,GAAG,OAAOA,IAAI62O,GAAE72O,EAAEA,EAAE6B,QAAQ,SAAS,OAC/a,SAASk3O,KAAK,IAAI/oO,EAAE0mO,GAAG5lO,QAAsB,OAAd4lO,GAAG5lO,QAAQ69N,GAAU,OAAO3+N,EAAE2+N,GAAG3+N,EAAE,SAASmpO,GAAGnpO,EAAEC,GAAG,IAAIjQ,EAAE42O,GAAEA,IAAG,GAAG,IAAIjzO,EAAEo1O,KAA2B,IAAtBpJ,KAAI3/N,GAAGmkO,KAAIlkO,GAAG+oO,GAAGhpO,EAAEC,KAAM,IAAI4pO,KAAK,MAAM,MAAMt4O,GAAG23O,GAAGlpO,EAAEzO,GAAkC,GAAtBknO,KAAKmO,GAAE52O,EAAE02O,GAAG5lO,QAAQnN,EAAK,OAAOkzO,GAAE,MAAMprO,MAAMtD,EAAE,MAAiB,OAAXwnO,GAAE,KAAKwE,GAAE,EAASj3D,GAAE,SAAS28D,KAAK,KAAK,OAAOhD,IAAGiD,GAAGjD,IAAG,SAASoC,KAAK,KAAK,OAAOpC,KAAInQ,MAAMoT,GAAGjD,IAAG,SAASiD,GAAG9pO,GAAG,IAAIC,EAAEqnO,GAAGtnO,EAAEykN,UAAUzkN,EAAE8mO,IAAI9mO,EAAEg9N,cAAch9N,EAAEw9N,aAAa,OAAOv9N,EAAE0pO,GAAG3pO,GAAG6mO,GAAE5mO,EAAE0mO,GAAG7lO,QAAQ,KAC5a,SAAS6oO,GAAG3pO,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAIhQ,EAAEiQ,EAAEwkN,UAAqB,GAAXzkN,EAAEC,EAAEpO,OAAU,KAAa,KAARoO,EAAE2uK,OAAY,CAAc,GAAG,QAAhB5+K,EAAE6zO,GAAG7zO,EAAEiQ,EAAE6mO,KAAqB,YAAJD,GAAE72O,GAAa,GAAG,MAAPA,EAAEiQ,GAAYqsJ,KAAK,KAAKt8J,EAAEs8J,KAAK,OAAOt8J,EAAE20N,eAAe,KAAQ,WAAHmiB,KAAgB,KAAY,EAAP92O,EAAE6sG,MAAQ,CAAC,IAAI,IAAIlpG,EAAE,EAAEpC,EAAEvB,EAAE0wG,MAAM,OAAOnvG,GAAGoC,GAAGpC,EAAEynO,MAAMznO,EAAEqnO,WAAWrnO,EAAEA,EAAEuzN,QAAQ90N,EAAE4oO,WAAWjlO,EAAE,OAAOqM,GAAG,KAAa,KAARA,EAAE4uK,SAAc,OAAO5uK,EAAE47N,cAAc57N,EAAE47N,YAAY37N,EAAE27N,aAAa,OAAO37N,EAAEy7N,aAAa,OAAO17N,EAAE07N,aAAa17N,EAAE07N,WAAWC,WAAW17N,EAAE27N,aAAa57N,EAAE07N,WAAWz7N,EAAEy7N,YAAY,EAAEz7N,EAAE2uK,QAAQ,OAC/e5uK,EAAE07N,WAAW17N,EAAE07N,WAAWC,WAAW17N,EAAED,EAAE47N,YAAY37N,EAAED,EAAE07N,WAAWz7N,QAAQ,CAAS,GAAG,QAAXjQ,EAAEs0O,GAAGrkO,IAAkC,OAAlBjQ,EAAE4+K,OAAO,UAAKi4D,GAAE72O,GAAS,OAAOgQ,IAAIA,EAAE47N,YAAY57N,EAAE07N,WAAW,KAAK17N,EAAE4uK,OAAO,MAAkB,GAAG,QAAf3uK,EAAEA,EAAE6kN,SAAyB,YAAJ+hB,GAAE5mO,GAAS4mO,GAAE5mO,EAAED,QAAQ,OAAOC,GAAG,IAAIitK,KAAIA,GAAE,GAAG,SAASo8D,GAAGtpO,GAAG,IAAIC,EAAE63N,KAA8B,OAAzBC,GAAG,GAAGgS,GAAGj+N,KAAK,KAAK9L,EAAEC,IAAW,KACtT,SAAS8pO,GAAG/pO,EAAEC,GAAG,GAAG6oO,WAAW,OAAOrB,IAAI,GAAG,KAAO,GAAFb,IAAM,MAAMnrO,MAAMtD,EAAE,MAAM,IAAInI,EAAEgQ,EAAEopO,aAAa,GAAG,OAAOp5O,EAAE,OAAO,KAA2C,GAAtCgQ,EAAEopO,aAAa,KAAKppO,EAAEqpO,cAAc,EAAKr5O,IAAIgQ,EAAEc,QAAQ,MAAMrF,MAAMtD,EAAE,MAAM6H,EAAEyoO,aAAa,KAAK,IAAI90O,EAAE3D,EAAEgpO,MAAMhpO,EAAE4oO,WAAWrnO,EAAEoC,EAAEnC,EAAEwO,EAAE0oN,cAAcn3N,EAAEyO,EAAE0oN,aAAan3N,EAAEyO,EAAE4oN,eAAe,EAAE5oN,EAAE6oN,YAAY,EAAE7oN,EAAE2oN,cAAcp3N,EAAEyO,EAAEy/N,kBAAkBluO,EAAEyO,EAAE+oN,gBAAgBx3N,EAAEA,EAAEyO,EAAEgpN,cAAc,IAAI,IAAIp1N,EAAEoM,EAAEspN,WAAW7uF,EAAEz6H,EAAE0oO,gBAAgB,EAAEl3O,GAAG,CAAC,IAAIiV,EAAE,GAAGqiN,GAAGt3N,GAAG+4E,EAAE,GAAG9jE,EAAElV,EAAEkV,GAAG,EAAE7S,EAAE6S,IAAI,EAAEg0H,EAAEh0H,IAAI,EAAEjV,IAAI+4E,EACnV,GADqV,OACjfs9J,IAAI,KAAO,GAAFl0O,IAAOk0O,GAAGz0H,IAAIpzG,IAAI6nO,GAAG1hB,OAAOnmN,GAAGA,IAAI2/N,KAAIkH,GAAElH,GAAE,KAAKwE,GAAE,GAAG,EAAEn0O,EAAE4+K,MAAM,OAAO5+K,EAAE0rO,YAAY1rO,EAAE0rO,WAAWC,WAAW3rO,EAAE2D,EAAE3D,EAAE4rO,aAAajoO,EAAE3D,EAAE2D,EAAE3D,EAAE4rO,YAAe,OAAOjoO,EAAE,CAAwC,GAAvCpC,EAAEq1O,GAAEA,IAAG,GAAGD,GAAG7lO,QAAQ,KAAKwzN,GAAGxK,GAAayI,GAAV3+N,EAAEy+N,MAAc,CAAC,GAAG,mBAAmBz+N,EAAE6mI,EAAE,CAAC9yH,MAAM/T,EAAEoR,eAAeH,IAAIjR,EAAEqR,mBAAmBjF,EAAE,GAAGy6H,GAAGA,EAAE7mI,EAAEuqN,gBAAgB1jF,EAAEu4F,aAAargO,QAAQ43E,EAAEkwD,EAAEn+H,cAAcm+H,EAAEn+H,iBAAiB,IAAIiuE,EAAE9tE,WAAW,CAACg+H,EAAElwD,EAAEwoJ,WAAWvhO,EAAE+4E,EAAE0oJ,aAAaxsN,EAAE8jE,EAAE4lH,UAAU5lH,EAAEA,EAAE2oJ,YAAY,IAAIz4F,EAAE9lI,SAAS8R,EAAE9R,SAAS,MAAMi1O,GAAInvG,EAAE,KACnf,MAAMz6H,EAAE,IAAI9R,EAAE,EAAEw9M,GAAG,EAAExkM,GAAG,EAAEyqG,EAAE,EAAEz5G,EAAE,EAAEirC,EAAEvvC,EAAE8iN,EAAE,KAAKz2M,EAAE,OAAO,CAAC,IAAI,IAAIu2M,EAAKrzK,IAAIs3F,GAAG,IAAIjpI,GAAG,IAAI2xC,EAAExuC,WAAW+2M,EAAEx9M,EAAEsD,GAAG2xC,IAAI18B,GAAG,IAAI8jE,GAAG,IAAIpnC,EAAExuC,WAAWuS,EAAEhZ,EAAEq8E,GAAG,IAAIpnC,EAAExuC,WAAWzG,GAAGi1C,EAAEm8K,UAAU5yN,QAAW,QAAQ8pN,EAAErzK,EAAEmH,aAAkBosK,EAAEvzK,EAAEA,EAAEqzK,EAAE,OAAO,CAAC,GAAGrzK,IAAIvvC,EAAE,MAAMqM,EAA8C,GAA5Cy2M,IAAIj8E,KAAK9oB,IAAIngH,IAAIk6M,EAAEx9M,GAAGwoN,IAAIjwM,KAAKvO,IAAIqyE,IAAIrjE,EAAEhZ,GAAM,QAAQsoN,EAAErzK,EAAE+uL,aAAa,MAAUxb,GAAJvzK,EAAEuzK,GAAMliN,WAAW2uC,EAAEqzK,EAAE/7E,GAAG,IAAIixE,IAAI,IAAIxkM,EAAE,KAAK,CAACS,MAAM+jM,EAAE7mM,IAAIqC,QAAQuzH,EAAE,KAAKA,EAAEA,GAAG,CAAC9yH,MAAM,EAAE9C,IAAI,QAAQ41H,EAAE,KAAK85F,GAAG,CAACyV,YAAYp2O,EAAEgqE,eAAe68D,GAAGqvF,IAAG,EAAGqe,GAAG,KAAKC,IAAG,EAAGb,GAAE5zO,EAAE,GAAG,IAAIs2O,KAAK,MAAML,GAAI,GAAG,OACvgBrC,GAAE,MAAM9rO,MAAMtD,EAAE,MAAMitO,GAAGmC,GAAEqC,GAAIrC,GAAEA,GAAE5L,kBAAiB,OAAO4L,IAAGY,GAAG,KAAKZ,GAAE5zO,EAAE,GAAG,IAAI,IAAIC,EAAEoM,EAAE,OAAOunO,IAAG,CAAC,IAAI//N,EAAE+/N,GAAE34D,MAA+B,GAAvB,GAAFpnK,GAAM43M,GAAGmoB,GAAEpkB,UAAU,IAAS,IAAF37M,EAAM,CAAC,IAAI8uM,EAAEixB,GAAE9iB,UAAU,GAAG,OAAOnO,EAAE,CAAC,IAAIllF,EAAEklF,EAAEzpM,IAAI,OAAOukH,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAEtwH,QAAQ,OAAO,OAAS,KAAF0G,GAAQ,KAAK,EAAEw+N,GAAGuB,IAAGA,GAAE34D,QAAQ,EAAE,MAAM,KAAK,EAAEo3D,GAAGuB,IAAGA,GAAE34D,QAAQ,EAAEw3D,GAAGmB,GAAE9iB,UAAU8iB,IAAG,MAAM,KAAK,KAAKA,GAAE34D,QAAQ,KAAK,MAAM,KAAK,KAAK24D,GAAE34D,QAAQ,KAAKw3D,GAAGmB,GAAE9iB,UAAU8iB,IAAG,MAAM,KAAK,EAAEnB,GAAGmB,GAAE9iB,UAAU8iB,IAAG,MAAM,KAAK,EAAM1B,GAAGjyO,EAAP6mI,EAAE8sG,IAAU,IAAI5vB,EAAEl9E,EAAEgqF,UAAUqhB,GAAGrrG,GAAG,OACnfk9E,GAAGmuB,GAAGnuB,GAAG4vB,GAAEA,GAAE5L,YAAY,MAAMiO,GAAI,GAAG,OAAOrC,GAAE,MAAM9rO,MAAMtD,EAAE,MAAMitO,GAAGmC,GAAEqC,GAAIrC,GAAEA,GAAE5L,kBAAiB,OAAO4L,IAAkD,GAA/Cn2G,EAAEmjG,GAAGje,EAAE+b,KAAK7qN,EAAE4pH,EAAE44G,YAAYp2O,EAAEw9H,EAAExzD,eAAkB04I,IAAI9uM,GAAGA,GAAGA,EAAE22M,eAAegU,GAAG3qN,EAAE22M,cAAczrN,gBAAgB8U,GAAG,CAAC,OAAO5T,GAAG2+N,GAAG/qN,KAAK8uM,EAAE1iN,EAAE+T,WAAc,KAARypH,EAAEx9H,EAAEiR,OAAiBusH,EAAEklF,GAAG,mBAAmB9uM,GAAGA,EAAExC,eAAesxM,EAAE9uM,EAAEvC,aAAa9N,KAAKs6B,IAAI2/F,EAAE5pH,EAAE3Z,MAAMnB,UAAU0kI,GAAGklF,EAAE9uM,EAAE22M,eAAe1rN,WAAW6jN,EAAE0c,aAAargO,QAAS2J,eAAe80H,EAAEA,EAAE90H,eAAem+H,EAAEjzH,EAAE1I,YAAYpS,OAAOirN,EAAExgN,KAAKs6B,IAAI79B,EAAE+T,MAAM8yH,GAAG7mI,OAAE,IACpfA,EAAEiR,IAAI8yM,EAAExgN,KAAKs6B,IAAI79B,EAAEiR,IAAI41H,IAAIrJ,EAAE7P,QAAQo2F,EAAE/jN,IAAI6mI,EAAE7mI,EAAEA,EAAE+jN,EAAEA,EAAEl9E,GAAGA,EAAEw3F,GAAGzqN,EAAEmwM,GAAGnmN,EAAEygO,GAAGzqN,EAAE5T,GAAG6mI,GAAGjpI,IAAI,IAAI4/H,EAAE30H,YAAY20H,EAAE2hG,aAAat4F,EAAEnhI,MAAM83H,EAAE6hG,eAAex4F,EAAEt+H,QAAQi1H,EAAE++D,YAAY3+L,EAAE8H,MAAM83H,EAAE8hG,cAAc1hO,EAAE2K,WAAUm6M,EAAEA,EAAEpxM,eAAgB26B,SAAS46F,EAAEnhI,KAAKmhI,EAAEt+H,QAAQi1H,EAAE50H,kBAAkBm7M,EAAE/jN,GAAGw9H,EAAE84G,SAAS5zB,GAAGllF,EAAE7P,OAAO/vH,EAAE8H,KAAK9H,EAAE2K,UAAUm6M,EAAEt2K,OAAOxuC,EAAE8H,KAAK9H,EAAE2K,QAAQi1H,EAAE84G,SAAS5zB,OAAQA,EAAE,GAAG,IAAIllF,EAAE5pH,EAAE4pH,EAAEA,EAAE58H,YAAY,IAAI48H,EAAEz8H,UAAU2hN,EAAE1oN,KAAK,CAAC0G,QAAQ88H,EAAE/8H,KAAK+8H,EAAEp+H,WAAWmB,IAAIi9H,EAAEv+H,YAAmD,IAAvC,oBAAoB2U,EAAE22E,OAAO32E,EAAE22E,QAAY32E,EACrf,EAAEA,EAAE8uM,EAAE5pN,OAAO8a,KAAI4pH,EAAEklF,EAAE9uM,IAAKlT,QAAQtB,WAAWo+H,EAAE/8H,KAAK+8H,EAAE98H,QAAQzB,UAAUu+H,EAAEj9H,IAAI21N,KAAKwK,GAAGC,GAAGD,GAAG,KAAKt0N,EAAEc,QAAQ9Q,EAAEu3O,GAAE5zO,EAAE,GAAG,IAAI,IAAI6T,EAAExH,EAAE,OAAOunO,IAAG,CAAC,IAAIrvB,EAAEqvB,GAAE34D,MAAgC,GAAxB,GAAFspC,GAAMqtB,GAAG/9N,EAAE+/N,GAAE9iB,UAAU8iB,IAAQ,IAAFrvB,EAAM,CAAC5B,OAAE,EAAO,IAAI6B,EAAEovB,GAAE16N,IAAI,GAAG,OAAOsrM,EAAE,CAAC,IAAIL,EAAEyvB,GAAEpkB,UAAiBokB,GAAEj7E,IAA8BgqD,EAAEwB,EAAE,oBAAoBK,EAAEA,EAAE7B,GAAG6B,EAAEr3M,QAAQw1M,GAAGixB,GAAEA,GAAE5L,YAAY,MAAMiO,GAAI,GAAG,OAAOrC,GAAE,MAAM9rO,MAAMtD,EAAE,MAAMitO,GAAGmC,GAAEqC,GAAIrC,GAAEA,GAAE5L,kBAAiB,OAAO4L,IAAGA,GAAE,KAAK7P,KAAKkP,GAAEr1O,OAAOyO,EAAEc,QAAQ9Q,EAAE,GAAGw3O,GAAGA,IAAG,EAAGC,GAAGznO,EAAE0nO,GAAGznO,OAAO,IAAIsnO,GAAE5zO,EAAE,OAAO4zO,IAAGtnO,EACpfsnO,GAAE5L,WAAW4L,GAAE5L,WAAW,KAAa,EAAR4L,GAAE34D,SAAUspC,EAAEqvB,IAAIziB,QAAQ,KAAK5M,EAAEiL,UAAU,MAAMokB,GAAEtnO,EAAqF,GAAlE,KAAjBtM,EAAEqM,EAAE0oN,gBAAqBqc,GAAG,MAAM,IAAIpxO,EAAEqM,IAAI+nO,GAAGD,MAAMA,GAAG,EAAEC,GAAG/nO,GAAG8nO,GAAG,EAAE93O,EAAEA,EAAEmzN,UAAakT,IAAI,oBAAoBA,GAAG8T,kBAAkB,IAAI9T,GAAG8T,kBAAkB/T,GAAGpmO,OAAE,EAAO,MAAsB,GAAhBA,EAAE8Q,QAAQ8tK,QAAW,MAAMg7D,IAAe,GAAVpB,GAAGxoO,EAAEkhI,MAAQyjG,GAAG,MAAMA,IAAG,EAAG3kO,EAAE4kO,GAAGA,GAAG,KAAK5kO,EAAE,OAAG,KAAO,EAAF4mO,KAAiB3O,KAAL,KACjW,SAASgS,KAAK,KAAK,OAAO1C,IAAG,CAAC,IAAIvnO,EAAEunO,GAAE9iB,UAAU2jB,IAAI,OAAOD,KAAK,KAAa,EAARZ,GAAE34D,OAASo2C,GAAGuiB,GAAEY,MAAMC,IAAG,GAAI,KAAKb,GAAEj7E,KAAKk6E,GAAGxmO,EAAEunO,KAAIviB,GAAGuiB,GAAEY,MAAMC,IAAG,IAAK,IAAInoO,EAAEsnO,GAAE34D,MAAM,KAAO,IAAF3uK,IAAQolO,GAAGrlO,EAAEunO,IAAG,KAAO,IAAFtnO,IAAQunO,KAAKA,IAAG,EAAGxP,GAAG,IAAG,WAAgB,OAAL8Q,KAAY,SAAQvB,GAAEA,GAAE5L,YAAY,SAASmN,KAAK,GAAG,KAAKpB,GAAG,CAAC,IAAI1nO,EAAE,GAAG0nO,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAU3P,GAAG/3N,EAAEoqO,IAAI,OAAM,EAAG,SAAS3E,GAAGzlO,EAAEC,GAAG0nO,GAAG/5O,KAAKqS,EAAED,GAAGwnO,KAAKA,IAAG,EAAGxP,GAAG,IAAG,WAAgB,OAAL8Q,KAAY,SAAQ,SAAStD,GAAGxlO,EAAEC,GAAG2nO,GAAGh6O,KAAKqS,EAAED,GAAGwnO,KAAKA,IAAG,EAAGxP,GAAG,IAAG,WAAgB,OAAL8Q,KAAY,SACzd,SAASsB,KAAK,GAAG,OAAO3C,GAAG,OAAM,EAAG,IAAIznO,EAAEynO,GAAW,GAARA,GAAG,KAAQ,KAAO,GAAFb,IAAM,MAAMnrO,MAAMtD,EAAE,MAAM,IAAI8H,EAAE2mO,GAAEA,IAAG,GAAG,IAAI52O,EAAE43O,GAAGA,GAAG,GAAG,IAAI,IAAIj0O,EAAE,EAAEA,EAAE3D,EAAEtD,OAAOiH,GAAG,EAAE,CAAC,IAAIpC,EAAEvB,EAAE2D,GAAGnC,EAAExB,EAAE2D,EAAE,GAAGC,EAAErC,EAAEkf,QAAyB,GAAjBlf,EAAEkf,aAAQ,EAAU,oBAAoB7c,EAAE,IAAIA,IAAI,MAAM6S,GAAG,GAAG,OAAOjV,EAAE,MAAMiK,MAAMtD,EAAE,MAAMitO,GAAG5zO,EAAEiV,IAAe,IAAXzW,EAAE23O,GAAGA,GAAG,GAAOh0O,EAAE,EAAEA,EAAE3D,EAAEtD,OAAOiH,GAAG,EAAE,CAACpC,EAAEvB,EAAE2D,GAAGnC,EAAExB,EAAE2D,EAAE,GAAG,IAAI,IAAI8mI,EAAElpI,EAAEmZ,OAAOnZ,EAAEkf,QAAQgqH,IAAI,MAAMh0H,GAAG,GAAG,OAAOjV,EAAE,MAAMiK,MAAMtD,EAAE,MAAMitO,GAAG5zO,EAAEiV,IAAI,IAAIg0H,EAAEz6H,EAAEc,QAAQ86N,YAAY,OAAOnhG,GAAGz6H,EAAEy6H,EAAEkhG,WAAWlhG,EAAEkhG,WAAW,KAAa,EAARlhG,EAAEm0C,QAAUn0C,EAAEqqF,QACjf,KAAKrqF,EAAE0oF,UAAU,MAAM1oF,EAAEz6H,EAAW,OAAT4mO,GAAE3mO,EAAEg4N,MAAW,EAAG,SAASoS,GAAGrqO,EAAEC,EAAEjQ,GAAyBiqO,GAAGj6N,EAAfC,EAAEykO,GAAG1kO,EAAfC,EAAEskO,GAAGv0O,EAAEiQ,GAAY,IAAWA,EAAEy6N,KAAe,QAAV16N,EAAEsoO,GAAGtoO,EAAE,MAAcqpN,GAAGrpN,EAAE,EAAEC,GAAGuoO,GAAGxoO,EAAEC,IACzI,SAASmlO,GAAGplO,EAAEC,GAAG,GAAG,IAAID,EAAEssJ,IAAI+9E,GAAGrqO,EAAEA,EAAEC,QAAQ,IAAI,IAAIjQ,EAAEgQ,EAAEnO,OAAO,OAAO7B,GAAG,CAAC,GAAG,IAAIA,EAAEs8J,IAAI,CAAC+9E,GAAGr6O,EAAEgQ,EAAEC,GAAG,MAAW,GAAG,IAAIjQ,EAAEs8J,IAAI,CAAC,IAAI34J,EAAE3D,EAAEmzN,UAAU,GAAG,oBAAoBnzN,EAAET,KAAKgxL,0BAA0B,oBAAoB5sL,EAAEmxO,oBAAoB,OAAOC,KAAKA,GAAG3xH,IAAIz/G,IAAI,CAAW,IAAIpC,EAAEszO,GAAG70O,EAAnBgQ,EAAEukO,GAAGtkO,EAAED,GAAgB,GAA4B,GAAzBi6N,GAAGjqO,EAAEuB,GAAGA,EAAEmpO,KAAkB,QAAb1qO,EAAEs4O,GAAGt4O,EAAE,IAAeq5N,GAAGr5N,EAAE,EAAEuB,GAAGi3O,GAAGx4O,EAAEuB,QAAQ,GAAG,oBAAoBoC,EAAEmxO,oBAAoB,OAAOC,KAAKA,GAAG3xH,IAAIz/G,IAAI,IAAIA,EAAEmxO,kBAAkB7kO,EAAED,GAAG,MAAMxO,IAAI,OAAOxB,EAAEA,EAAE6B,QACpd,SAAS63O,GAAG1pO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEqM,EAAEypO,UAAU,OAAO91O,GAAGA,EAAEwyN,OAAOlmN,GAAGA,EAAEy6N,KAAK16N,EAAE6oN,aAAa7oN,EAAE4oN,eAAe54N,EAAE2vO,KAAI3/N,IAAImkO,GAAEn0O,KAAKA,IAAI,IAAIk9K,IAAG,IAAIA,KAAM,SAAFi3D,MAAcA,IAAG,IAAIjjG,KAAImlG,GAAG2C,GAAGhpO,EAAE,GAAGknO,IAAIl3O,GAAGw4O,GAAGxoO,EAAEC,GAAG,SAASsmO,GAAGvmO,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAEmjN,UAAU,OAAOnzN,GAAGA,EAAEm2N,OAAOlmN,GAAO,KAAJA,EAAE,KAAmB,KAAO,GAAhBA,EAAED,EAAE68F,OAAe58F,EAAE,EAAE,KAAO,EAAFA,GAAKA,EAAE,KAAK63N,KAAK,EAAE,GAAG,IAAImQ,KAAKA,GAAGhB,IAAuB,KAAnBhnO,EAAEkpN,GAAG,UAAU8e,OAAYhoO,EAAE,WAAWjQ,EAAE0qO,KAAe,QAAV16N,EAAEsoO,GAAGtoO,EAAEC,MAAcopN,GAAGrpN,EAAEC,EAAEjQ,GAAGw4O,GAAGxoO,EAAEhQ,IAUjZ,SAASs6O,GAAGtqO,EAAEC,EAAEjQ,EAAE2D,GAAG5B,KAAKu6J,IAAItsJ,EAAEjO,KAAKlC,IAAIG,EAAE+B,KAAK+yN,QAAQ/yN,KAAK2uG,MAAM3uG,KAAKF,OAAOE,KAAKoxN,UAAUpxN,KAAKxC,KAAKwC,KAAKgqO,YAAY,KAAKhqO,KAAKq8D,MAAM,EAAEr8D,KAAK8a,IAAI,KAAK9a,KAAKyrO,aAAav9N,EAAElO,KAAK+mO,aAAa/mO,KAAK4yN,cAAc5yN,KAAKunO,YAAYvnO,KAAKirO,cAAc,KAAKjrO,KAAK8qG,KAAKlpG,EAAE5B,KAAK68K,MAAM,EAAE78K,KAAK2pO,WAAW3pO,KAAK6pO,YAAY7pO,KAAK4pO,WAAW,KAAK5pO,KAAK6mO,WAAW7mO,KAAKinO,MAAM,EAAEjnO,KAAK0yN,UAAU,KAAK,SAAS6Y,GAAGt9N,EAAEC,EAAEjQ,EAAE2D,GAAG,OAAO,IAAI22O,GAAGtqO,EAAEC,EAAEjQ,EAAE2D,GAAG,SAASiuO,GAAG5hO,GAAiB,UAAdA,EAAEA,EAAE5R,aAAuB4R,EAAEm3M,kBAErd,SAAS0kB,GAAG77N,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAEykN,UACuB,OADb,OAAOz0N,IAAGA,EAAEstO,GAAGt9N,EAAEssJ,IAAIrsJ,EAAED,EAAEnQ,IAAImQ,EAAE68F,OAAQk/H,YAAY/7N,EAAE+7N,YAAY/rO,EAAET,KAAKyQ,EAAEzQ,KAAKS,EAAEmzN,UAAUnjN,EAAEmjN,UAAUnzN,EAAEy0N,UAAUzkN,EAAEA,EAAEykN,UAAUz0N,IAAIA,EAAEwtO,aAAav9N,EAAEjQ,EAAET,KAAKyQ,EAAEzQ,KAAKS,EAAE4+K,MAAM,EAAE5+K,EAAE2rO,WAAW,KAAK3rO,EAAE4rO,YAAY,KAAK5rO,EAAE0rO,WAAW,MAAM1rO,EAAE4oO,WAAW54N,EAAE44N,WAAW5oO,EAAEgpO,MAAMh5N,EAAEg5N,MAAMhpO,EAAE0wG,MAAM1gG,EAAE0gG,MAAM1wG,EAAEgtO,cAAch9N,EAAEg9N,cAAchtO,EAAE20N,cAAc3kN,EAAE2kN,cAAc30N,EAAEspO,YAAYt5N,EAAEs5N,YAAYr5N,EAAED,EAAE84N,aAAa9oO,EAAE8oO,aAAa,OAAO74N,EAAE,KAAK,CAAC+4N,MAAM/4N,EAAE+4N,MAAMD,aAAa94N,EAAE84N,cAC3e/oO,EAAE80N,QAAQ9kN,EAAE8kN,QAAQ90N,EAAEo+D,MAAMpuD,EAAEouD,MAAMp+D,EAAE6c,IAAI7M,EAAE6M,IAAW7c,EACvD,SAASgsO,GAAGh8N,EAAEC,EAAEjQ,EAAE2D,EAAEpC,EAAEC,GAAG,IAAIoC,EAAE,EAAM,GAAJD,EAAEqM,EAAK,oBAAoBA,EAAE4hO,GAAG5hO,KAAKpM,EAAE,QAAQ,GAAG,kBAAkBoM,EAAEpM,EAAE,OAAOoM,EAAE,OAAOA,GAAG,KAAK3C,EAAG,OAAO8+N,GAAGnsO,EAAEuE,SAAShD,EAAEC,EAAEyO,GAAG,KAAKo8M,EAAGzoN,EAAE,EAAErC,GAAG,GAAG,MAAM,KAAKmqN,EAAG9nN,EAAE,EAAErC,GAAG,EAAE,MAAM,KAAKoqN,EAAG,OAAO37M,EAAEs9N,GAAG,GAAGttO,EAAEiQ,EAAI,EAAF1O,IAAOwqO,YAAYpgB,EAAG37M,EAAEzQ,KAAKosN,EAAG37M,EAAEg5N,MAAMxnO,EAAEwO,EAAE,KAAK+7M,EAAG,OAAO/7M,EAAEs9N,GAAG,GAAGttO,EAAEiQ,EAAE1O,IAAKhC,KAAKwsN,EAAG/7M,EAAE+7N,YAAYhgB,EAAG/7M,EAAEg5N,MAAMxnO,EAAEwO,EAAE,KAAKg8M,EAAG,OAAOh8M,EAAEs9N,GAAG,GAAGttO,EAAEiQ,EAAE1O,IAAKwqO,YAAY/f,EAAGh8M,EAAEg5N,MAAMxnO,EAAEwO,EAAE,KAAKs8M,EAAG,OAAO2mB,GAAGjzO,EAAEuB,EAAEC,EAAEyO,GAAG,KAAKs8M,EAAG,OAAOv8M,EAAEs9N,GAAG,GAAGttO,EAAEiQ,EAAE1O,IAAKwqO,YAAYxf,EAAGv8M,EAAEg5N,MAAMxnO,EAAEwO,EAAE,QAAQ,GAAG,kBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAE43M,UAAU,KAAKgE,EAAGhoN,EAAE,GAAG,MAAMoM,EAAE,KAAK67M,EAAGjoN,EAAE,EAAE,MAAMoM,EAAE,KAAK87M,EAAGloN,EAAE,GAAG,MAAMoM,EAAE,KAAKi8M,EAAGroN,EAAE,GAAG,MAAMoM,EAAE,KAAKk8M,EAAGtoN,EAAE,GAAGD,EAAE,KAAK,MAAMqM,EAAE,KAAKm8M,EAAGvoN,EAAE,GAAG,MAAMoM,EAAE,MAAMvE,MAAMtD,EAAE,IAAI,MAAM6H,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAEq9N,GAAG1pO,EAAE5D,EAAEiQ,EAAE1O,IAAKwqO,YAAY/7N,EAAEC,EAAE1Q,KAAKoE,EAAEsM,EAAE+4N,MAAMxnO,EAASyO,EAAE,SAASk8N,GAAGn8N,EAAEC,EAAEjQ,EAAE2D,GAA2B,OAAxBqM,EAAEs9N,GAAG,EAAEt9N,EAAErM,EAAEsM,IAAK+4N,MAAMhpO,EAASgQ,EAAE,SAASijO,GAAGjjO,EAAEC,EAAEjQ,EAAE2D,GAA6C,OAA1CqM,EAAEs9N,GAAG,GAAGt9N,EAAErM,EAAEsM,IAAK87N,YAAYzf,EAAGt8M,EAAEg5N,MAAMhpO,EAASgQ,EAAE,SAAS87N,GAAG97N,EAAEC,EAAEjQ,GAA8B,OAA3BgQ,EAAEs9N,GAAG,EAAEt9N,EAAE,KAAKC,IAAK+4N,MAAMhpO,EAASgQ,EAClc,SAASk8N,GAAGl8N,EAAEC,EAAEjQ,GAA8J,OAA3JiQ,EAAEq9N,GAAG,EAAE,OAAOt9N,EAAEzL,SAASyL,EAAEzL,SAAS,GAAGyL,EAAEnQ,IAAIoQ,IAAK+4N,MAAMhpO,EAAEiQ,EAAEkjN,UAAU,CAACyD,cAAc5mN,EAAE4mN,cAAc2jB,gBAAgB,KAAKtO,eAAej8N,EAAEi8N,gBAAuBh8N,EACrL,SAASuqO,GAAGxqO,EAAEC,EAAEjQ,GAAG+B,KAAKu6J,IAAIrsJ,EAAElO,KAAK60N,cAAc5mN,EAAEjO,KAAKq3O,aAAar3O,KAAK03O,UAAU13O,KAAK+O,QAAQ/O,KAAKw4O,gBAAgB,KAAKx4O,KAAK+/M,eAAe,EAAE//M,KAAKywO,eAAezwO,KAAKomB,QAAQ,KAAKpmB,KAAK40N,QAAQ32N,EAAE+B,KAAK02O,aAAa,KAAK12O,KAAK42O,iBAAiB,EAAE52O,KAAKu3N,WAAWF,GAAG,GAAGr3N,KAAK22O,gBAAgBtf,IAAI,GAAGr3N,KAAKg3N,eAAeh3N,KAAKs3O,cAAct3O,KAAK0tO,iBAAiB1tO,KAAK42N,aAAa52N,KAAK82N,YAAY92N,KAAK62N,eAAe72N,KAAK22N,aAAa,EAAE32N,KAAKi3N,cAAcI,GAAG,GAAGr3N,KAAK04O,gCAAgC,KAC7e,SAASC,GAAG1qO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAE,EAAEzE,UAAUxC,aAAQ,IAASwC,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAAC0oN,SAAS6D,EAAG5rN,IAAI,MAAM8D,EAAE,KAAK,GAAGA,EAAEY,SAASyL,EAAE4mN,cAAc3mN,EAAEg8N,eAAejsO,GACxK,SAAS26O,GAAG3qO,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIpC,EAAE0O,EAAEa,QAAQtP,EAAEkpO,KAAK9mO,EAAE+mO,GAAGppO,GAAGyO,EAAE,GAAGhQ,EAAE,CAAqBiQ,EAAE,CAAC,GAAGukN,GAA1Bx0N,EAAEA,EAAEyqO,mBAA8BzqO,GAAG,IAAIA,EAAEs8J,IAAI,MAAM7wJ,MAAMtD,EAAE,MAAM,IAAIsiI,EAAEzqI,EAAE,EAAE,CAAC,OAAOyqI,EAAE6xB,KAAK,KAAK,EAAE7xB,EAAEA,EAAE0oF,UAAUhrM,QAAQ,MAAMlY,EAAE,KAAK,EAAE,GAAG41N,GAAGp7F,EAAElrI,MAAM,CAACkrI,EAAEA,EAAE0oF,UAAU+S,0CAA0C,MAAMj2N,GAAGw6H,EAAEA,EAAE5oI,aAAa,OAAO4oI,GAAG,MAAMh/H,MAAMtD,EAAE,MAAO,GAAG,IAAInI,EAAEs8J,IAAI,CAAC,IAAI7lJ,EAAEzW,EAAET,KAAK,GAAGsmO,GAAGpvN,GAAG,CAACzW,EAAEgmO,GAAGhmO,EAAEyW,EAAEg0H,GAAG,MAAMz6H,GAAGhQ,EAAEyqI,OAAOzqI,EAAEwlO,GACrW,OADwW,OAAOv1N,EAAEkY,QAAQlY,EAAEkY,QAAQnoB,EAAEiQ,EAAEuiO,eAAexyO,GAAEiQ,EAAE45N,GAAGroO,EAAEoC,IAAKomO,QAAQ,CAAC1lO,QAAQ0L,GAAuB,QAApBrM,OAAE,IAASA,EAAE,KAAKA,KAC1esM,EAAEvI,SAAS/D,GAAGsmO,GAAG1oO,EAAE0O,GAAG26N,GAAGrpO,EAAEqC,EAAEpC,GAAUoC,EAAE,SAASg3O,GAAG5qO,GAAe,OAAZA,EAAEA,EAAEc,SAAc4/F,OAAyB1gG,EAAE0gG,MAAM4rD,IAAoDtsJ,EAAE0gG,MAAMyiH,WAAhF,KAA2F,SAAS0nB,GAAG7qO,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAE2kN,gBAA2B,OAAO3kN,EAAE4kN,WAAW,CAAC,IAAI50N,EAAEgQ,EAAE6iO,UAAU7iO,EAAE6iO,UAAU,IAAI7yO,GAAGA,EAAEiQ,EAAEjQ,EAAEiQ,GAAG,SAAS28G,GAAG58G,EAAEC,GAAG4qO,GAAG7qO,EAAEC,IAAID,EAAEA,EAAEykN,YAAYomB,GAAG7qO,EAAEC,GACxV,SAAS6qO,GAAG9qO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAE,MAAM3D,GAAG,MAAMA,EAAE+6O,kBAAkB/6O,EAAE+6O,iBAAiBC,gBAAgB,KAAiK,GAA5Jh7O,EAAE,IAAIw6O,GAAGxqO,EAAEC,EAAE,MAAMjQ,IAAG,IAAKA,EAAE22N,SAAS1mN,EAAEq9N,GAAG,EAAE,KAAK,KAAK,IAAIr9N,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAGjQ,EAAE8Q,QAAQb,EAAEA,EAAEkjN,UAAUnzN,EAAEqpO,GAAGp5N,GAAGD,EAAEg0N,IAAIhkO,EAAE8Q,QAAQ8yN,GAAG,IAAI5zN,EAAErL,SAASqL,EAAExL,WAAWwL,GAAMrM,EAAE,IAAIqM,EAAE,EAAEA,EAAErM,EAAEjH,OAAOsT,IAAI,CAAQ,IAAIzO,GAAX0O,EAAEtM,EAAEqM,IAAWu/N,YAAYhuO,EAAEA,EAAE0O,EAAEu/N,SAAS,MAAMxvO,EAAEy6O,gCAAgCz6O,EAAEy6O,gCAAgC,CAACxqO,EAAE1O,GAAGvB,EAAEy6O,gCAAgC78O,KAAKqS,EAAE1O,GAAGQ,KAAKk5O,cAAcj7O,EAC/R,SAASk7O,GAAGlrO,GAAG,SAASA,GAAG,IAAIA,EAAErL,UAAU,IAAIqL,EAAErL,UAAU,KAAKqL,EAAErL,WAAW,IAAIqL,EAAErL,UAAU,iCAAiCqL,EAAEs/M,YAEvT,SAAS6rB,GAAGnrO,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,IAAIC,EAAExB,EAAEm2O,oBAAoB,GAAG30O,EAAE,CAAC,IAAIoC,EAAEpC,EAAEy5O,cAAc,GAAG,oBAAoB15O,EAAE,CAAC,IAAIkpI,EAAElpI,EAAEA,EAAE,WAAW,IAAIyO,EAAE4qO,GAAGh3O,GAAG6mI,EAAEhtI,KAAKuS,IAAI2qO,GAAG1qO,EAAErM,EAAEoM,EAAEzO,OAAO,CAAmD,GAAlDC,EAAExB,EAAEm2O,oBAD1K,SAAYnmO,EAAEC,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAED,EAAE,IAAIA,EAAErL,SAASqL,EAAEtN,gBAAgBsN,EAAEsqC,WAAW,OAAa,IAAIrqC,EAAEtL,WAAWsL,EAAE2R,aAAa,qBAAwB3R,EAAE,IAAI,IAAIjQ,EAAEA,EAAEgQ,EAAEq/M,WAAWr/M,EAAEtE,YAAY1L,GAAG,OAAO,IAAI86O,GAAG9qO,EAAE,EAAEC,EAAE,CAAC0mN,SAAQ,QAAI,GAC3BykB,CAAGp7O,EAAE2D,GAAGC,EAAEpC,EAAEy5O,cAAiB,oBAAoB15O,EAAE,CAAC,IAAIkV,EAAElV,EAAEA,EAAE,WAAW,IAAIyO,EAAE4qO,GAAGh3O,GAAG6S,EAAEhZ,KAAKuS,IAAIwpO,IAAG,WAAWmB,GAAG1qO,EAAErM,EAAEoM,EAAEzO,MAAK,OAAOq5O,GAAGh3O,GAGlG,SAASy3O,GAAGrrO,EAAEC,GAAG,IAAIjQ,EAAE,EAAEd,UAAUxC,aAAQ,IAASwC,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIg8O,GAAGjrO,GAAG,MAAMxE,MAAMtD,EAAE,MAAM,OAAOuyO,GAAG1qO,EAAEC,EAAE,KAAKjQ,GA1BtWs3O,GAAG,SAAStnO,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEsM,EAAE+4N,MAAM,GAAG,OAAOh5N,EAAE,GAAGA,EAAEg9N,gBAAgB/8N,EAAEu9N,cAAcxlB,GAAEl3M,QAAQm4N,IAAG,MAAQ,IAAG,KAAKjpO,EAAE2D,GAAoC,CAAO,OAANslO,IAAG,EAAUh5N,EAAEqsJ,KAAK,KAAK,EAAEi2E,GAAGtiO,GAAG29N,KAAK,MAAM,KAAK,EAAEf,GAAG58N,GAAG,MAAM,KAAK,EAAE41N,GAAG51N,EAAE1Q,OAAO0mO,GAAGh2N,GAAG,MAAM,KAAK,EAAE08N,GAAG18N,EAAEA,EAAEkjN,UAAUyD,eAAe,MAAM,KAAK,GAAGjzN,EAAEsM,EAAE+8N,cAAcnvO,MAAM,IAAI0D,EAAE0O,EAAE1Q,KAAKkwC,SAAS+3K,GAAE6gB,GAAG9mO,EAAEynN,eAAeznN,EAAEynN,cAAcrlN,EAAE,MAAM,KAAK,GAAG,GAAG,OAAOsM,EAAE0kN,cAAe,OAAG,KAAK30N,EAAEiQ,EAAEygG,MAAMk4H,YAAmBkK,GAAG9iO,EAAEC,EAAEjQ,IAAGwnN,GAAEr2E,GAAY,EAAVA,GAAErgI,SAA8B,QAAnBb,EAAEyhO,GAAG1hO,EAAEC,EAAEjQ,IAC/eiQ,EAAE6kN,QAAQ,MAAKtN,GAAEr2E,GAAY,EAAVA,GAAErgI,SAAW,MAAM,KAAK,GAA0B,GAAvBnN,EAAE,KAAK3D,EAAEiQ,EAAE24N,YAAe,KAAa,GAAR54N,EAAE4uK,OAAU,CAAC,GAAGj7K,EAAE,OAAOgwO,GAAG3jO,EAAEC,EAAEjQ,GAAGiQ,EAAE2uK,OAAO,GAA+F,GAA1E,QAAlBr9K,EAAE0O,EAAE0kN,iBAAyBpzN,EAAEgyO,UAAU,KAAKhyO,EAAEkyO,KAAK,KAAKlyO,EAAEmqO,WAAW,MAAMlkB,GAAEr2E,GAAEA,GAAErgI,SAAYnN,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOsM,EAAE+4N,MAAM,EAAE+I,GAAG/hO,EAAEC,EAAEjQ,GAAG,OAAO0xO,GAAG1hO,EAAEC,EAAEjQ,GAD3LipO,GAAG,KAAa,MAARj5N,EAAE4uK,YACyLqqD,IAAG,EAAa,OAAVh5N,EAAE+4N,MAAM,EAAS/4N,EAAEqsJ,KAAK,KAAK,EAA+I,GAA7I34J,EAAEsM,EAAE1Q,KAAK,OAAOyQ,IAAIA,EAAEykN,UAAU,KAAKxkN,EAAEwkN,UAAU,KAAKxkN,EAAE2uK,OAAO,GAAG5uK,EAAEC,EAAEu9N,aAAajsO,EAAEmkO,GAAGz1N,EAAE83M,GAAEj3M,SAAS+3N,GAAG54N,EAAEjQ,GAAGuB,EAAEgtO,GAAG,KAAKt+N,EAAEtM,EAAEqM,EAAEzO,EAAEvB,GAAGiQ,EAAE2uK,OAAO,EAAK,kBACrer9K,GAAG,OAAOA,GAAG,oBAAoBA,EAAE8e,aAAQ,IAAS9e,EAAEqmN,SAAS,CAAiD,GAAhD33M,EAAEqsJ,IAAI,EAAErsJ,EAAE0kN,cAAc,KAAK1kN,EAAEq5N,YAAY,KAAQzD,GAAGliO,GAAG,CAAC,IAAInC,GAAE,EAAGykO,GAAGh2N,QAAQzO,GAAE,EAAGyO,EAAE0kN,cAAc,OAAOpzN,EAAE4d,YAAO,IAAS5d,EAAE4d,MAAM5d,EAAE4d,MAAM,KAAKkqN,GAAGp5N,GAAG,IAAIrM,EAAED,EAAE6sL,yBAAyB,oBAAoB5sL,GAAG2mO,GAAGt6N,EAAEtM,EAAEC,EAAEoM,GAAGzO,EAAE0lN,QAAQujB,GAAGv6N,EAAEkjN,UAAU5xN,EAAEA,EAAEkpO,gBAAgBx6N,EAAEg7N,GAAGh7N,EAAEtM,EAAEqM,EAAEhQ,GAAGiQ,EAAEqiO,GAAG,KAAKriO,EAAEtM,GAAE,EAAGnC,EAAExB,QAAQiQ,EAAEqsJ,IAAI,EAAEk1E,GAAG,KAAKvhO,EAAE1O,EAAEvB,GAAGiQ,EAAEA,EAAEygG,MAAM,OAAOzgG,EAAE,KAAK,GAAG1O,EAAE0O,EAAE87N,YAAY/7N,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAEykN,UAAU,KAAKxkN,EAAEwkN,UAAU,KAAKxkN,EAAE2uK,OAAO,GACnf5uK,EAAEC,EAAEu9N,aAAuBjsO,GAAVC,EAAED,EAAE8nN,OAAU9nN,EAAE6nN,UAAUn5M,EAAE1Q,KAAKgC,EAAEC,EAAEyO,EAAEqsJ,IAOxD,SAAYtsJ,GAAG,GAAG,oBAAoBA,EAAE,OAAO4hO,GAAG5hO,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAE43M,YAAgBkE,EAAG,OAAO,GAAG,GAAG97M,IAAIi8M,EAAG,OAAO,GAAG,OAAO,EAPlFqvB,CAAG/5O,GAAGyO,EAAEo4N,GAAG7mO,EAAEyO,GAAUxO,GAAG,KAAK,EAAEyO,EAAE6hO,GAAG,KAAK7hO,EAAE1O,EAAEyO,EAAEhQ,GAAG,MAAMgQ,EAAE,KAAK,EAAEC,EAAEkiO,GAAG,KAAKliO,EAAE1O,EAAEyO,EAAEhQ,GAAG,MAAMgQ,EAAE,KAAK,GAAGC,EAAEwhO,GAAG,KAAKxhO,EAAE1O,EAAEyO,EAAEhQ,GAAG,MAAMgQ,EAAE,KAAK,GAAGC,EAAE0hO,GAAG,KAAK1hO,EAAE1O,EAAE6mO,GAAG7mO,EAAEhC,KAAKyQ,GAAGrM,EAAE3D,GAAG,MAAMgQ,EAAE,MAAMvE,MAAMtD,EAAE,IAAI5G,EAAE,KAAM,OAAO0O,EAAE,KAAK,EAAE,OAAOtM,EAAEsM,EAAE1Q,KAAKgC,EAAE0O,EAAEu9N,aAA2CsE,GAAG9hO,EAAEC,EAAEtM,EAArCpC,EAAE0O,EAAE87N,cAAcpoO,EAAEpC,EAAE6mO,GAAGzkO,EAAEpC,GAAcvB,GAAG,KAAK,EAAE,OAAO2D,EAAEsM,EAAE1Q,KAAKgC,EAAE0O,EAAEu9N,aAA2C2E,GAAGniO,EAAEC,EAAEtM,EAArCpC,EAAE0O,EAAE87N,cAAcpoO,EAAEpC,EAAE6mO,GAAGzkO,EAAEpC,GAAcvB,GAAG,KAAK,EAAwB,GAAtBuyO,GAAGtiO,GAAGtM,EAAEsM,EAAEq5N,YAAe,OAAOt5N,GAAG,OAAOrM,EAAE,MAAM8H,MAAMtD,EAAE,MAC3Y,GAA9GxE,EAAEsM,EAAEu9N,aAA+BjsO,EAAE,QAApBA,EAAE0O,EAAE0kN,eAAyBpzN,EAAE+C,QAAQ,KAAKslO,GAAG55N,EAAEC,GAAGk6N,GAAGl6N,EAAEtM,EAAE,KAAK3D,IAAG2D,EAAEsM,EAAE0kN,cAAcrwN,WAAe/C,EAAEqsO,KAAK39N,EAAEyhO,GAAG1hO,EAAEC,EAAEjQ,OAAO,CAAuF,IAArEwB,GAAjBD,EAAE0O,EAAEkjN,WAAiBwD,WAAQwW,GAAGtI,GAAG50N,EAAEkjN,UAAUyD,cAAct8K,YAAY4yL,GAAGj9N,EAAEzO,EAAE4rO,IAAG,GAAM5rO,EAAE,CAAqC,GAAG,OAAvCwO,EAAEzO,EAAEk5O,iCAA2C,IAAIl5O,EAAE,EAAEA,EAAEyO,EAAEtT,OAAO6E,GAAG,GAAEC,EAAEwO,EAAEzO,IAAKwsO,8BAA8B/9N,EAAEzO,EAAE,GAAGssO,GAAGjwO,KAAK4D,GAAoB,IAAjBxB,EAAEqsO,GAAGp8N,EAAE,KAAKtM,EAAE3D,GAAOiQ,EAAEygG,MAAM1wG,EAAEA,GAAGA,EAAE4+K,OAAe,EAAT5+K,EAAE4+K,MAAS,KAAK5+K,EAAEA,EAAE80N,aAAa0c,GAAGxhO,EAAEC,EAAEtM,EAAE3D,GAAG4tO,KAAK39N,EAAEA,EAAEygG,MAAM,OAAOzgG,EAAE,KAAK,EAAE,OAAO48N,GAAG58N,GAAG,OAAOD,GACnfy9N,GAAGx9N,GAAGtM,EAAEsM,EAAE1Q,KAAKgC,EAAE0O,EAAEu9N,aAAahsO,EAAE,OAAOwO,EAAEA,EAAEg9N,cAAc,KAAKppO,EAAErC,EAAEgD,SAASkgO,GAAG9gO,EAAEpC,GAAGqC,EAAE,KAAK,OAAOpC,GAAGijO,GAAG9gO,EAAEnC,KAAKyO,EAAE2uK,OAAO,IAAIszD,GAAGliO,EAAEC,GAAGuhO,GAAGxhO,EAAEC,EAAErM,EAAE5D,GAAGiQ,EAAEygG,MAAM,KAAK,EAAE,OAAO,OAAO1gG,GAAGy9N,GAAGx9N,GAAG,KAAK,KAAK,GAAG,OAAO6iO,GAAG9iO,EAAEC,EAAEjQ,GAAG,KAAK,EAAE,OAAO2sO,GAAG18N,EAAEA,EAAEkjN,UAAUyD,eAAejzN,EAAEsM,EAAEu9N,aAAa,OAAOx9N,EAAEC,EAAEygG,MAAM07H,GAAGn8N,EAAE,KAAKtM,EAAE3D,GAAGwxO,GAAGxhO,EAAEC,EAAEtM,EAAE3D,GAAGiQ,EAAEygG,MAAM,KAAK,GAAG,OAAO/sG,EAAEsM,EAAE1Q,KAAKgC,EAAE0O,EAAEu9N,aAA2CiE,GAAGzhO,EAAEC,EAAEtM,EAArCpC,EAAE0O,EAAE87N,cAAcpoO,EAAEpC,EAAE6mO,GAAGzkO,EAAEpC,GAAcvB,GAAG,KAAK,EAAE,OAAOwxO,GAAGxhO,EAAEC,EAAEA,EAAEu9N,aAAaxtO,GAAGiQ,EAAEygG,MAAM,KAAK,EACtc,KAAK,GAAG,OAAO8gI,GAAGxhO,EAAEC,EAAEA,EAAEu9N,aAAajpO,SAASvE,GAAGiQ,EAAEygG,MAAM,KAAK,GAAG1gG,EAAE,CAACrM,EAAEsM,EAAE1Q,KAAKkwC,SAASluC,EAAE0O,EAAEu9N,aAAa5pO,EAAEqM,EAAE+8N,cAAcxrO,EAAED,EAAE1D,MAAM,IAAI4sI,EAAEx6H,EAAE1Q,KAAKkwC,SAAiD,GAAxC+3K,GAAE6gB,GAAG59F,EAAEu+E,eAAev+E,EAAEu+E,cAAcxnN,EAAK,OAAOoC,EAAE,GAAG6mI,EAAE7mI,EAAE/F,MAA0G,KAApG2D,EAAEqgO,GAAGp3F,EAAEjpI,GAAG,EAAwF,GAArF,oBAAoBmC,EAAEolN,sBAAsBplN,EAAEolN,sBAAsBt+E,EAAEjpI,GAAG,cAAqB,GAAGoC,EAAEW,WAAWhD,EAAEgD,WAAWyjN,GAAEl3M,QAAQ,CAACb,EAAEyhO,GAAG1hO,EAAEC,EAAEjQ,GAAG,MAAMgQ,QAAQ,IAAc,QAAVy6H,EAAEx6H,EAAEygG,SAAiB+5B,EAAE5oI,OAAOoO,GAAG,OAAOw6H,GAAG,CAAC,IAAIh0H,EAAEg0H,EAAEq+F,aAAa,GAAG,OAAOryN,EAAE,CAAC7S,EAAE6mI,EAAE/5B,MAAM,IAAI,IAAIn2B,EACtf9jE,EAAEsyN,aAAa,OAAOxuJ,GAAG,CAAC,GAAGA,EAAEpyD,UAAUxkB,GAAG,KAAK42E,EAAE01G,aAAazuL,GAAG,CAAC,IAAIipI,EAAE6xB,OAAM/hF,EAAEsvJ,IAAI,EAAE7pO,GAAGA,IAAKs8J,IAAI,EAAE2tE,GAAGx/F,EAAElwD,IAAIkwD,EAAEu+F,OAAOhpO,EAAgB,QAAdu6E,EAAEkwD,EAAEgqF,aAAqBl6I,EAAEyuJ,OAAOhpO,GAAG2oO,GAAGl+F,EAAE5oI,OAAO7B,GAAGyW,EAAEuyN,OAAOhpO,EAAE,MAAMu6E,EAAEA,EAAE78E,WAAWkG,EAAE,KAAK6mI,EAAE6xB,KAAI7xB,EAAElrI,OAAO0Q,EAAE1Q,KAAK,KAAakrI,EAAE/5B,MAAM,GAAG,OAAO9sG,EAAEA,EAAE/B,OAAO4oI,OAAO,IAAI7mI,EAAE6mI,EAAE,OAAO7mI,GAAG,CAAC,GAAGA,IAAIqM,EAAE,CAACrM,EAAE,KAAK,MAAkB,GAAG,QAAf6mI,EAAE7mI,EAAEkxN,SAAoB,CAACrqF,EAAE5oI,OAAO+B,EAAE/B,OAAO+B,EAAE6mI,EAAE,MAAM7mI,EAAEA,EAAE/B,OAAO4oI,EAAE7mI,EAAE4tO,GAAGxhO,EAAEC,EAAE1O,EAAEgD,SAASvE,GAAGiQ,EAAEA,EAAEygG,MAAM,OAAOzgG,EAAE,KAAK,EAAE,OAAO1O,EAAE0O,EAAE1Q,KAAsBoE,GAAjBnC,EAAEyO,EAAEu9N,cAAiBjpO,SAASskO,GAAG54N,EAAEjQ,GACnd2D,EAAEA,EADodpC,EAAE2nO,GAAG3nO,EACpfC,EAAE+5O,wBAA8BtrO,EAAE2uK,OAAO,EAAE4yD,GAAGxhO,EAAEC,EAAEtM,EAAE3D,GAAGiQ,EAAEygG,MAAM,KAAK,GAAG,OAAgBlvG,EAAE4mO,GAAX7mO,EAAE0O,EAAE1Q,KAAY0Q,EAAEu9N,cAA6BmE,GAAG3hO,EAAEC,EAAE1O,EAAtBC,EAAE4mO,GAAG7mO,EAAEhC,KAAKiC,GAAcmC,EAAE3D,GAAG,KAAK,GAAG,OAAO6xO,GAAG7hO,EAAEC,EAAEA,EAAE1Q,KAAK0Q,EAAEu9N,aAAa7pO,EAAE3D,GAAG,KAAK,GAAG,OAAO2D,EAAEsM,EAAE1Q,KAAKgC,EAAE0O,EAAEu9N,aAAajsO,EAAE0O,EAAE87N,cAAcpoO,EAAEpC,EAAE6mO,GAAGzkO,EAAEpC,GAAG,OAAOyO,IAAIA,EAAEykN,UAAU,KAAKxkN,EAAEwkN,UAAU,KAAKxkN,EAAE2uK,OAAO,GAAG3uK,EAAEqsJ,IAAI,EAAEupE,GAAGliO,IAAIqM,GAAE,EAAGi2N,GAAGh2N,IAAID,GAAE,EAAG64N,GAAG54N,EAAEjQ,GAAG8qO,GAAG76N,EAAEtM,EAAEpC,GAAG0pO,GAAGh7N,EAAEtM,EAAEpC,EAAEvB,GAAGsyO,GAAG,KAAKriO,EAAEtM,GAAE,EAAGqM,EAAEhQ,GAAG,KAAK,GAAG,OAAO2zO,GAAG3jO,EAAEC,EAAEjQ,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAO+xO,GAAG/hO,EAAEC,EAAEjQ,GAAG,MAAMyL,MAAMtD,EAAE,IAAI8H,EAAEqsJ,OAa/ew+E,GAAG18O,UAAUiiB,OAAO,SAASrQ,GAAG2qO,GAAG3qO,EAAEjO,KAAKk5O,cAAc,KAAK,OAAOH,GAAG18O,UAAUo9O,QAAQ,WAAW,IAAIxrO,EAAEjO,KAAKk5O,cAAchrO,EAAED,EAAE4mN,cAAc+jB,GAAG,KAAK3qO,EAAE,MAAK,WAAWC,EAAE+zN,IAAI,SAEwJ/O,GAAG,SAASjlN,GAAM,KAAKA,EAAEssJ,MAAgBsuE,GAAG56N,EAAE,EAAV06N,MAAe99G,GAAG58G,EAAE,KAAKklN,GAAG,SAASllN,GAAM,KAAKA,EAAEssJ,MAAgBsuE,GAAG56N,EAAE,SAAV06N,MAAsB99G,GAAG58G,EAAE,YACncmlN,GAAG,SAASnlN,GAAG,GAAG,KAAKA,EAAEssJ,IAAI,CAAC,IAAIrsJ,EAAEy6N,KAAK1qO,EAAE2qO,GAAG36N,GAAG46N,GAAG56N,EAAEhQ,EAAEiQ,GAAG28G,GAAG58G,EAAEhQ,KAAKo1N,GAAG,SAASplN,EAAEC,GAAG,OAAOA,KAC7F6iN,GAAG,SAAS9iN,EAAEC,EAAEjQ,GAAG,OAAOiQ,GAAG,IAAK,QAAyB,GAAjBg+M,GAAGj+M,EAAEhQ,GAAGiQ,EAAEjQ,EAAExB,KAAQ,UAAUwB,EAAET,MAAM,MAAM0Q,EAAE,CAAC,IAAIjQ,EAAEgQ,EAAEhQ,EAAEwE,YAAYxE,EAAEA,EAAEwE,WAAsF,IAA3ExE,EAAEA,EAAEsF,iBAAiB,cAAc00C,KAAKC,UAAU,GAAGhqC,GAAG,mBAAuBA,EAAE,EAAEA,EAAEjQ,EAAEtD,OAAOuT,IAAI,CAAC,IAAItM,EAAE3D,EAAEiQ,GAAG,GAAGtM,IAAIqM,GAAGrM,EAAE6hN,OAAOx1M,EAAEw1M,KAAK,CAAC,IAAIjkN,EAAE6xN,GAAGzvN,GAAG,IAAIpC,EAAE,MAAMkK,MAAMtD,EAAE,KAAKqlN,EAAG7pN,GAAGsqN,GAAGtqN,EAAEpC,KAAK,MAAM,IAAK,WAAWmtN,GAAG1+M,EAAEhQ,GAAG,MAAM,IAAK,SAAmB,OAAViQ,EAAEjQ,EAAEnC,QAAeywN,GAAGt+M,IAAIhQ,EAAE+nH,SAAS93G,GAAE,KAAMsjN,GAAGgmB,GAC9Z/lB,GAAG,SAASxjN,EAAEC,EAAEjQ,EAAE2D,EAAEpC,GAAG,IAAIC,EAAEo1O,GAAEA,IAAG,EAAE,IAAI,OAAO7O,GAAG,GAAG/3N,EAAE8L,KAAK,KAAK7L,EAAEjQ,EAAE2D,EAAEpC,IAAnC,QAAmD,KAAJq1O,GAAEp1O,KAAU61O,KAAKpP,QAAQxU,GAAG,WAAW,KAAO,GAAFmjB,MAhD/H,WAAc,GAAG,OAAOiB,GAAG,CAAC,IAAI7nO,EAAE6nO,GAAGA,GAAG,KAAK7nO,EAAEiD,SAAQ,SAASjD,GAAGA,EAAE2oN,cAAc,GAAG3oN,EAAE0oN,aAAa8f,GAAGxoO,EAAEkhI,SAAO+2F,KAgDsBwT,GAAK3C,OAAOplB,GAAG,SAAS1jN,EAAEC,GAAG,IAAIjQ,EAAE42O,GAAEA,IAAG,EAAE,IAAI,OAAO5mO,EAAEC,GAAb,QAA4B,KAAJ2mO,GAAE52O,KAAUq3O,KAAKpP,QAA+I,IAAIyT,GAAG,CAACC,OAAO,CAACzoB,GAAG4N,GAAG1N,GAAGC,GAAGC,GAAGwlB,GAAG,CAAChoO,SAAQ,KAAM8qO,GAAG,CAACC,wBAAwBtlB,GAAGulB,WAAW,EAAE1uO,QAAQ,SAAS2uO,oBAAoB,aACveC,GAAG,CAACF,WAAWF,GAAGE,WAAW1uO,QAAQwuO,GAAGxuO,QAAQ2uO,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBnxB,EAAG/C,uBAAuBm0B,wBAAwB,SAAS3sO,GAAW,OAAO,QAAfA,EAAEqO,GAAGrO,IAAmB,KAAKA,EAAEmjN,WAAW0oB,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,MAS7We,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,qBAAqB76H,+BAA+B,CAAC,IAAI86H,GAAG96H,+BAA+B,IAAI86H,GAAG76N,YAAY66N,GAAGC,cAAc,IAAI9W,GAAG6W,GAAGE,OAAOnB,IAAI3V,GAAG4W,GAAG,MAAMjtO,MAAK3T,EAAQysN,mDAAmD4yB,GAAGr/O,EAAQsjB,aAAa07N,GACnXh/O,EAAQ+gP,YAAY,SAASptO,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAErL,SAAS,OAAOqL,EAAE,IAAIC,EAAED,EAAEy6N,gBAAgB,QAAG,IAASx6N,EAAE,CAAC,GAAG,oBAAoBD,EAAEqQ,OAAO,MAAM5U,MAAMtD,EAAE,MAAM,MAAMsD,MAAMtD,EAAE,IAAIhK,OAAOqS,KAAKR,KAA0C,OAA5BA,EAAE,QAAVA,EAAEqO,GAAGpO,IAAc,KAAKD,EAAEmjN,WAAoB92N,EAAQghP,UAAU,SAASrtO,EAAEC,GAAG,IAAIjQ,EAAE42O,GAAE,GAAG,KAAO,GAAF52O,GAAM,OAAOgQ,EAAEC,GAAG2mO,IAAG,EAAE,IAAI,GAAG5mO,EAAE,OAAO+3N,GAAG,GAAG/3N,EAAE8L,KAAK,KAAK7L,IAAlC,QAA8C2mO,GAAE52O,EAAEioO,OAAO5rO,EAAQs6N,QAAQ,SAAS3mN,EAAEC,EAAEjQ,GAAG,IAAIk7O,GAAGjrO,GAAG,MAAMxE,MAAMtD,EAAE,MAAM,OAAOgzO,GAAG,KAAKnrO,EAAEC,GAAE,EAAGjQ,IACnd3D,EAAQgkB,OAAO,SAASrQ,EAAEC,EAAEjQ,GAAG,IAAIk7O,GAAGjrO,GAAG,MAAMxE,MAAMtD,EAAE,MAAM,OAAOgzO,GAAG,KAAKnrO,EAAEC,GAAE,EAAGjQ,IAAI3D,EAAQqkB,uBAAuB,SAAS1Q,GAAG,IAAIkrO,GAAGlrO,GAAG,MAAMvE,MAAMtD,EAAE,KAAK,QAAO6H,EAAEmmO,sBAAqBqD,IAAG,WAAW2B,GAAG,KAAK,KAAKnrO,GAAE,GAAG,WAAWA,EAAEmmO,oBAAoB,KAAKnmO,EAAEg0N,IAAI,YAAS,IAAQ3nO,EAAQihP,wBAAwB/D,GAAGl9O,EAAQkhP,sBAAsB,SAASvtO,EAAEC,GAAG,OAAOorO,GAAGrrO,EAAEC,EAAE,EAAE/Q,UAAUxC,aAAQ,IAASwC,UAAU,GAAGA,UAAU,GAAG,OAC9a7C,EAAQmhP,oCAAoC,SAASxtO,EAAEC,EAAEjQ,EAAE2D,GAAG,IAAIu3O,GAAGl7O,GAAG,MAAMyL,MAAMtD,EAAE,MAAM,GAAG,MAAM6H,QAAG,IAASA,EAAEy6N,gBAAgB,MAAMh/N,MAAMtD,EAAE,KAAK,OAAOgzO,GAAGnrO,EAAEC,EAAEjQ,GAAE,EAAG2D,IAAItH,EAAQ+Q,QAAQ,U,6BCrS3LhR,EAAOC,QAAUC,EAAQ,M,6BCKd,IAAIkF,EAAEoC,EAAE6mI,EAAEh0H,EAAE,GAAG,kBAAkBy3J,aAAa,oBAAoBA,YAAYrhI,IAAI,CAAC,IAAI0tC,EAAE2zF,YAAY7xK,EAAQk8N,aAAa,WAAW,OAAOh+I,EAAE1tC,WAAW,CAAC,IAAI31B,EAAE1M,KAAK87M,EAAEpvM,EAAE21B,MAAMxwC,EAAQk8N,aAAa,WAAW,OAAOrhN,EAAE21B,MAAMy5K,GAC3O,GAAG,qBAAqB3jN,QAAQ,oBAAoB86O,eAAe,CAAC,IAAIjmO,EAAE,KAAKgvM,EAAE,KAAKrzK,EAAE,SAAFA,IAAa,GAAG,OAAO37B,EAAE,IAAI,IAAIxH,EAAE3T,EAAQk8N,eAAe/gN,GAAE,EAAGxH,GAAGwH,EAAE,KAAK,MAAMvH,GAAG,MAAMrF,WAAWuoC,EAAE,GAAGljC,IAAKzO,EAAE,SAASwO,GAAG,OAAOwH,EAAE5M,WAAWpJ,EAAE,EAAEwO,IAAIwH,EAAExH,EAAEpF,WAAWuoC,EAAE,KAAKvvC,EAAE,SAASoM,EAAEC,GAAGu2M,EAAE57M,WAAWoF,EAAEC,IAAIw6H,EAAE,WAAW3yH,aAAa0uM,IAAInqN,EAAQsqO,qBAAqB,WAAW,OAAM,GAAIlwN,EAAEpa,EAAQqhP,wBAAwB,iBAAiB,CAAC,IAAIx1O,EAAEvF,OAAOiI,WAAWzC,EAAExF,OAAOmV,aAAa,GAAG,qBAAqB+I,QAAQ,CAAC,IAAI6lM,EAC7f/jN,OAAOywM,qBAAqB,oBAAoBzwM,OAAOgI,uBAAuBkW,QAAQjU,MAAM,sJAAsJ,oBAAoB85M,GAAG7lM,QAAQjU,MAAM,qJAAqJ,IAAI8uM,GAAE,EAAGqL,EAAE,KAAKplG,GAAG,EAAEulG,EAAE,EAAEzL,EAAE,EAAEp/M,EAAQsqO,qBAAqB,WAAW,OAAOtqO,EAAQk8N,gBAChgB9c,GAAGhlM,EAAE,aAAapa,EAAQqhP,wBAAwB,SAAS1tO,GAAG,EAAEA,GAAG,IAAIA,EAAE6Q,QAAQjU,MAAM,mHAAmHs6M,EAAE,EAAEl3M,EAAE7I,KAAKsmB,MAAM,IAAIzd,GAAG,GAAG,IAAI3O,EAAE,IAAIo8O,eAAen2B,EAAEjmN,EAAEs8O,MAAMt8O,EAAEu8O,MAAMx4D,UAAU,WAAW,GAAG,OAAO2hC,EAAE,CAAC,IAAI/2M,EAAE3T,EAAQk8N,eAAe9c,EAAEzrM,EAAEk3M,EAAE,IAAIH,GAAE,EAAG/2M,GAAGs3M,EAAEhiC,YAAY,OAAOo2B,GAAE,EAAGqL,EAAE,MAAM,MAAM92M,GAAG,MAAMq3M,EAAEhiC,YAAY,MAAMr1K,QAASyrM,GAAE,GAAIl6M,EAAE,SAASwO,GAAG+2M,EAAE/2M,EAAE0rM,IAAIA,GAAE,EAAG4L,EAAEhiC,YAAY,QAAQ1hL,EAAE,SAASoM,EAAEC,GAAG0xG,EACtfz5G,GAAE,WAAW8H,EAAE3T,EAAQk8N,kBAAiBtoN,IAAIw6H,EAAE,WAAWtiI,EAAEw5G,GAAGA,GAAG,GAAG,SAAS4lG,EAAEv3M,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAEtT,OAAOsT,EAAEpS,KAAKqS,GAAGD,EAAE,OAAO,CAAC,IAAIrM,EAAE3D,EAAE,IAAI,EAAEuB,EAAEyO,EAAErM,GAAG,UAAG,IAASpC,GAAG,EAAEimN,EAAEjmN,EAAE0O,IAA0B,MAAMD,EAA7BA,EAAErM,GAAGsM,EAAED,EAAEhQ,GAAGuB,EAAEvB,EAAE2D,GAAgB,SAASgkN,EAAE33M,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAChP,SAASk4M,EAAEl4M,GAAG,IAAIC,EAAED,EAAE,GAAG,QAAG,IAASC,EAAE,CAAC,IAAIjQ,EAAEgQ,EAAEi5G,MAAM,GAAGjpH,IAAIiQ,EAAE,CAACD,EAAE,GAAGhQ,EAAEgQ,EAAE,IAAI,IAAIrM,EAAE,EAAEpC,EAAEyO,EAAEtT,OAAOiH,EAAEpC,GAAG,CAAC,IAAIyqB,EAAE,GAAGroB,EAAE,GAAG,EAAEzF,EAAE8R,EAAEgc,GAAGo1G,EAAEp1G,EAAE,EAAE+zE,EAAE/vF,EAAEoxH,GAAG,QAAG,IAASljI,GAAG,EAAEspN,EAAEtpN,EAAE8B,QAAG,IAAS+/F,GAAG,EAAEynH,EAAEznH,EAAE7hG,IAAI8R,EAAErM,GAAGo8F,EAAE/vF,EAAEoxH,GAAGphI,EAAE2D,EAAEy9H,IAAIpxH,EAAErM,GAAGzF,EAAE8R,EAAEgc,GAAGhsB,EAAE2D,EAAEqoB,OAAQ,WAAG,IAAS+zE,GAAG,EAAEynH,EAAEznH,EAAE//F,IAA0B,MAAMgQ,EAA7BA,EAAErM,GAAGo8F,EAAE/vF,EAAEoxH,GAAGphI,EAAE2D,EAAEy9H,IAAgB,OAAOnxH,EAAE,OAAO,KAAK,SAASu3M,EAAEx3M,EAAEC,GAAG,IAAIjQ,EAAEgQ,EAAE6tO,UAAU5tO,EAAE4tO,UAAU,OAAO,IAAI79O,EAAEA,EAAEgQ,EAAE6V,GAAG5V,EAAE4V,GAAG,IAAIiiM,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAE92E,EAAE,KAAKC,EAAE,EAAEg3E,GAAE,EAAGG,GAAE,EAAG/K,GAAE,EACja,SAASgL,EAAEv4M,GAAG,IAAI,IAAIC,EAAE03M,EAAEI,GAAG,OAAO93M,GAAG,CAAC,GAAG,OAAOA,EAAEvI,SAASwgN,EAAEH,OAAQ,MAAG93M,EAAEulC,WAAWxlC,GAAgD,MAA9Ck4M,EAAEH,GAAG93M,EAAE4tO,UAAU5tO,EAAE6tO,eAAev2B,EAAEO,EAAE73M,GAAcA,EAAE03M,EAAEI,IAAI,SAAS4nB,EAAE3/N,GAAa,GAAVutM,GAAE,EAAGgL,EAAEv4M,IAAOs4M,EAAE,GAAG,OAAOX,EAAEG,GAAGQ,GAAE,EAAG9mN,EAAE07K,OAAO,CAAC,IAAIjtK,EAAE03M,EAAEI,GAAG,OAAO93M,GAAGrM,EAAE+rO,EAAE1/N,EAAEulC,UAAUxlC,IACtP,SAASktK,EAAEltK,EAAEC,GAAGq4M,GAAE,EAAG/K,IAAIA,GAAE,EAAG9yE,KAAK09E,GAAE,EAAG,IAAInoN,EAAEmxI,EAAE,IAAS,IAALo3E,EAAEt4M,GAAOihI,EAAEy2E,EAAEG,GAAG,OAAO52E,MAAMA,EAAE4sG,eAAe7tO,IAAID,IAAI3T,EAAQsqO,yBAAyB,CAAC,IAAIhjO,EAAEutI,EAAExpI,SAAS,GAAG,oBAAoB/D,EAAE,CAACutI,EAAExpI,SAAS,KAAKypI,EAAED,EAAE6sG,cAAc,IAAIx8O,EAAEoC,EAAEutI,EAAE4sG,gBAAgB7tO,GAAGA,EAAE5T,EAAQk8N,eAAe,oBAAoBh3N,EAAE2vI,EAAExpI,SAASnG,EAAE2vI,IAAIy2E,EAAEG,IAAII,EAAEJ,GAAGS,EAAEt4M,QAAQi4M,EAAEJ,GAAG52E,EAAEy2E,EAAEG,GAAG,GAAG,OAAO52E,EAAE,IAAIllH,GAAE,MAAO,CAAC,IAAI9tB,EAAEypN,EAAEI,GAAG,OAAO7pN,GAAG0F,EAAE+rO,EAAEzxO,EAAEs3C,UAAUvlC,GAAG+b,GAAE,EAAG,OAAOA,EAArX,QAA+XklH,EAAE,KAAKC,EAAEnxI,EAAEmoN,GAAE,GAAI,IAAIgsB,EAAE19N,EAAEpa,EAAQmrO,sBAAsB,EACtenrO,EAAQ6qO,2BAA2B,EAAE7qO,EAAQirO,qBAAqB,EAAEjrO,EAAQ86N,wBAAwB,EAAE96N,EAAQ2hP,mBAAmB,KAAK3hP,EAAQu9N,8BAA8B,EAAEv9N,EAAQoqO,wBAAwB,SAASz2N,GAAGA,EAAEtI,SAAS,MAAMrL,EAAQ4hP,2BAA2B,WAAW31B,GAAGH,IAAIG,GAAE,EAAG9mN,EAAE07K,KAAK7gL,EAAQ2qO,iCAAiC,WAAW,OAAO71F,GAAG90I,EAAQ6hP,8BAA8B,WAAW,OAAOv2B,EAAEG,IACpazrN,EAAQ8hP,cAAc,SAASnuO,GAAG,OAAOmhI,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIlhI,EAAE,EAAE,MAAM,QAAQA,EAAEkhI,EAAE,IAAInxI,EAAEmxI,EAAEA,EAAElhI,EAAE,IAAI,OAAOD,IAAX,QAAuBmhI,EAAEnxI,IAAI3D,EAAQ+hP,wBAAwB,aAAa/hP,EAAQwqO,sBAAsBsN,EAAE93O,EAAQo6N,yBAAyB,SAASzmN,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIhQ,EAAEmxI,EAAEA,EAAEnhI,EAAE,IAAI,OAAOC,IAAX,QAAuBkhI,EAAEnxI,IACpW3D,EAAQ66N,0BAA0B,SAASlnN,EAAEC,EAAEjQ,GAAG,IAAI2D,EAAEtH,EAAQk8N,eAA8F,OAA/E,kBAAkBv4N,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAE6kB,QAA6B,EAAE7kB,EAAE2D,EAAE3D,EAAE2D,EAAG3D,EAAE2D,EAASqM,GAAG,KAAK,EAAE,IAAIzO,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMyO,EAAE,CAAC6V,GAAGmiM,IAAItgN,SAASuI,EAAE8tO,cAAc/tO,EAAEwlC,UAAUx1C,EAAE89O,eAAvDv8O,EAAEvB,EAAEuB,EAAoEs8O,WAAW,GAAG79O,EAAE2D,GAAGqM,EAAE6tO,UAAU79O,EAAEunN,EAAEQ,EAAE/3M,GAAG,OAAO23M,EAAEG,IAAI93M,IAAI23M,EAAEI,KAAKxK,EAAE9yE,IAAI8yE,GAAE,EAAG35M,EAAE+rO,EAAE3vO,EAAE2D,MAAMqM,EAAE6tO,UAAUt8O,EAAEgmN,EAAEO,EAAE93M,GAAGs4M,GAAGH,IAAIG,GAAE,EAAG9mN,EAAE07K,KAAYltK,GAC1d3T,EAAQgiP,sBAAsB,SAASruO,GAAG,IAAIC,EAAEkhI,EAAE,OAAO,WAAW,IAAInxI,EAAEmxI,EAAEA,EAAElhI,EAAE,IAAI,OAAOD,EAAE3E,MAAMtJ,KAAK7C,WAAxB,QAA2CiyI,EAAEnxI,M,6BCXhH1D,EAAQ,IAAiB,IAAIkF,EAAElF,EAAQ,GAASsH,EAAE,MAA6B,GAAvBvH,EAAQ2rB,SAAS,MAAS,oBAAoB9qB,QAAQA,OAAOupN,IAAI,CAAC,IAAIh8E,EAAEvtI,OAAOupN,IAAI7iN,EAAE6mI,EAAE,iBAAiBpuI,EAAQ2rB,SAASyiH,EAAE,kBAAkB,IAAIz+G,EAAExqB,EAAEsnN,mDAAmDJ,kBAAkBxqN,EAAEC,OAAOC,UAAUqS,eAAeyG,EAAE,CAACrX,KAAI,EAAGgd,KAAI,EAAG4qM,QAAO,EAAGC,UAAS,GACrW,SAASpB,EAAEtmN,EAAEgQ,EAAEyG,GAAG,IAAIxG,EAAEtM,EAAE,GAAGpC,EAAE,KAAKg5E,EAAE,KAAiF,IAAItqE,UAAhF,IAASwG,IAAIlV,EAAE,GAAGkV,QAAG,IAASzG,EAAEnQ,MAAM0B,EAAE,GAAGyO,EAAEnQ,UAAK,IAASmQ,EAAE6M,MAAM09D,EAAEvqE,EAAE6M,KAAc7M,EAAE9R,EAAET,KAAKuS,EAAEC,KAAKiH,EAAEzG,eAAeR,KAAKtM,EAAEsM,GAAGD,EAAEC,IAAI,GAAGjQ,GAAGA,EAAEk8E,aAAa,IAAIjsE,KAAKD,EAAEhQ,EAAEk8E,kBAAe,IAASv4E,EAAEsM,KAAKtM,EAAEsM,GAAGD,EAAEC,IAAI,MAAM,CAAC23M,SAAShkN,EAAErE,KAAKS,EAAEH,IAAI0B,EAAEsb,IAAI09D,EAAEh6E,MAAMoD,EAAEkkN,OAAO77L,EAAElb,SAASzU,EAAQiiP,IAAIh4B,EAAEjqN,EAAQkiP,KAAKj4B,G,6BCAvV,IAAIk4B,EAAuBliP,EAAQ,KAEnC,SAASmiP,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3CriP,EAAOC,QAAU,WACf,SAASuiP,EAAKr+O,EAAOgpB,EAAUs1N,EAAe17K,EAAU27K,EAAcC,GACpE,GAAIA,IAAWP,EAAf,CAIA,IAAI1gP,EAAM,IAAI2N,MACZ,mLAKF,MADA3N,EAAIU,KAAO,sBACLV,GAGR,SAASkhP,IACP,OAAOJ,EAFTA,EAAK7uD,WAAa6uD,EAMlB,IAAIK,EAAiB,CACnB/kN,MAAO0kN,EACP/9K,KAAM+9K,EACN1zN,KAAM0zN,EACNve,OAAQue,EACRnsO,OAAQmsO,EACR1mC,OAAQ0mC,EACRhiE,OAAQgiE,EAERM,IAAKN,EACLO,QAASH,EACT16O,QAASs6O,EACT7S,YAAa6S,EACbQ,WAAYJ,EACZ11O,KAAMs1O,EACNS,SAAUL,EACVM,MAAON,EACPO,UAAWP,EACXruG,MAAOquG,EACP7+H,MAAO6+H,EAEPQ,eAAgBd,EAChBC,kBAAmBF,GAKrB,OAFAQ,EAAenvD,UAAYmvD,EAEpBA,I,6BCnDT7iP,EAAOC,QAFoB,gD,cCT3BD,EAAOC,QAAUQ,MAAME,SAAW,SAAUP,GAC1C,MAA8C,kBAAvC2B,OAAOC,UAAUC,SAASZ,KAAKjB,K,6BCQ3B,IAAIyT,EAAE,oBAAoB/S,QAAQA,OAAOupN,IAAIzmN,EAAEiQ,EAAE/S,OAAOupN,IAAI,iBAAiB,MAAM9iN,EAAEsM,EAAE/S,OAAOupN,IAAI,gBAAgB,MAAMllN,EAAE0O,EAAE/S,OAAOupN,IAAI,kBAAkB,MAAMjlN,EAAEyO,EAAE/S,OAAOupN,IAAI,qBAAqB,MAAM7iN,EAAEqM,EAAE/S,OAAOupN,IAAI,kBAAkB,MAAMh8E,EAAEx6H,EAAE/S,OAAOupN,IAAI,kBAAkB,MAAMhwM,EAAExG,EAAE/S,OAAOupN,IAAI,iBAAiB,MAAMlsI,EAAEtqE,EAAE/S,OAAOupN,IAAI,oBAAoB,MAAMz6L,EAAE/b,EAAE/S,OAAOupN,IAAI,yBAAyB,MAAMvoN,EAAE+R,EAAE/S,OAAOupN,IAAI,qBAAqB,MAAMvvM,EAAEjH,EAAE/S,OAAOupN,IAAI,kBAAkB,MAAMH,EAAEr2M,EACpf/S,OAAOupN,IAAI,uBAAuB,MAAM1mH,EAAE9vF,EAAE/S,OAAOupN,IAAI,cAAc,MAAMjvM,EAAEvH,EAAE/S,OAAOupN,IAAI,cAAc,MAAMrlF,EAAEnxH,EAAE/S,OAAOupN,IAAI,eAAe,MAAMtzK,EAAEljC,EAAE/S,OAAOupN,IAAI,qBAAqB,MAAMv+M,EAAE+H,EAAE/S,OAAOupN,IAAI,mBAAmB,MAAMt+M,EAAE8H,EAAE/S,OAAOupN,IAAI,eAAe,MAClQ,SAASC,EAAE12M,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIw2M,EAAEx2M,EAAE43M,SAAS,OAAOpB,GAAG,KAAKxmN,EAAE,OAAOgQ,EAAEA,EAAEzQ,MAAQ,KAAKg7E,EAAE,KAAKvuD,EAAE,KAAKzqB,EAAE,KAAKqC,EAAE,KAAKpC,EAAE,KAAK0V,EAAE,OAAOlH,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE43M,UAAY,KAAKnxM,EAAE,KAAKvY,EAAE,KAAKsZ,EAAE,KAAKuoF,EAAE,KAAK0qC,EAAE,OAAOz6H,EAAE,QAAQ,OAAOw2M,GAAG,KAAK7iN,EAAE,OAAO6iN,IAAI,SAAS9K,EAAE1rM,GAAG,OAAO02M,EAAE12M,KAAKgc,EAAE3vB,EAAQojP,UAAUllK,EAAEl+E,EAAQqjP,eAAe1zN,EAAE3vB,EAAQsjP,gBAAgBlpO,EAAEpa,EAAQujP,gBAAgBn1G,EAAEpuI,EAAQ09K,QAAQ/5K,EAAE3D,EAAQ80L,WAAWjzL,EAAE7B,EAAQ2rB,SAASzmB,EAAElF,EAAQwjP,KAAKroO,EAAEnb,EAAQ+0L,KAAKrxF,EAAE1jG,EAAQ6iB,OAAOvb,EAChftH,EAAQgqN,SAASziN,EAAEvH,EAAQ+pN,WAAW5kN,EAAEnF,EAAQkqN,SAASrvM,EAAE7a,EAAQyjP,YAAY,SAAS9vO,GAAG,OAAO0rM,EAAE1rM,IAAI02M,EAAE12M,KAAKuqE,GAAGl+E,EAAQ0jP,iBAAiBrkC,EAAEr/M,EAAQ2jP,kBAAkB,SAAShwO,GAAG,OAAO02M,EAAE12M,KAAKyG,GAAGpa,EAAQ4jP,kBAAkB,SAASjwO,GAAG,OAAO02M,EAAE12M,KAAKy6H,GAAGpuI,EAAQiP,UAAU,SAAS0E,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE43M,WAAW5nN,GAAG3D,EAAQ6jP,aAAa,SAASlwO,GAAG,OAAO02M,EAAE12M,KAAK9R,GAAG7B,EAAQ8jP,WAAW,SAASnwO,GAAG,OAAO02M,EAAE12M,KAAKzO,GAAGlF,EAAQ+jP,OAAO,SAASpwO,GAAG,OAAO02M,EAAE12M,KAAKwH,GACzdnb,EAAQ60L,OAAO,SAASlhL,GAAG,OAAO02M,EAAE12M,KAAK+vF,GAAG1jG,EAAQgkP,SAAS,SAASrwO,GAAG,OAAO02M,EAAE12M,KAAKrM,GAAGtH,EAAQikP,WAAW,SAAStwO,GAAG,OAAO02M,EAAE12M,KAAKpM,GAAGvH,EAAQ+nM,aAAa,SAASp0L,GAAG,OAAO02M,EAAE12M,KAAKxO,GAAGnF,EAAQkkP,WAAW,SAASvwO,GAAG,OAAO02M,EAAE12M,KAAKkH,GACzO7a,EAAQmkP,mBAAmB,SAASxwO,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIzO,GAAGyO,IAAIgc,GAAGhc,IAAIpM,GAAGoM,IAAIxO,GAAGwO,IAAIkH,GAAGlH,IAAIs2M,GAAG,kBAAkBt2M,GAAG,OAAOA,IAAIA,EAAE43M,WAAWpwM,GAAGxH,EAAE43M,WAAW7nH,GAAG/vF,EAAE43M,WAAWn9E,GAAGz6H,EAAE43M,WAAWnxM,GAAGzG,EAAE43M,WAAW1pN,GAAG8R,EAAE43M,WAAWz0K,GAAGnjC,EAAE43M,WAAW1/M,GAAG8H,EAAE43M,WAAWz/M,GAAG6H,EAAE43M,WAAWxmF,IAAI/kI,EAAQokP,OAAO/5B,G,mFCZnU,IAAIp7B,EAAQhvL,EAAQ,IAChBwf,EAAOxf,EAAQ,KACfokP,EAAQpkP,EAAQ,KAChBqkP,EAAcrkP,EAAQ,KAS1B,SAASskP,EAAe77L,GACtB,IAAI58B,EAAU,IAAIu4N,EAAM37L,GACpB5kD,EAAW2b,EAAK4kO,EAAMtiP,UAAU4hD,QAAS73B,GAQ7C,OALAmjK,EAAM/5D,OAAOpxH,EAAUugP,EAAMtiP,UAAW+pB,GAGxCmjK,EAAM/5D,OAAOpxH,EAAUgoB,GAEhBhoB,EAIT,IAAI0gP,EAAQD,EAtBGtkP,EAAQ,MAyBvBukP,EAAMH,MAAQA,EAGdG,EAAMnmO,OAAS,SAAgBomO,GAC7B,OAAOF,EAAeD,EAAYE,EAAMv7L,SAAUw7L,KAIpDD,EAAM9xD,OAASzyL,EAAQ,KACvBukP,EAAME,YAAczkP,EAAQ,KAC5BukP,EAAMG,SAAW1kP,EAAQ,KAGzBukP,EAAM16D,IAAM,SAAa86D,GACvB,OAAOz6H,QAAQ2/D,IAAI86D,IAErBJ,EAAMK,OAAS5kP,EAAQ,KAEvBF,EAAOC,QAAUwkP,EAGjBzkP,EAAOC,QAAQqxF,QAAUmzJ,G,6BClDzB,IAAIv1D,EAAQhvL,EAAQ,IAChBkwL,EAAWlwL,EAAQ,KACnB6kP,EAAqB7kP,EAAQ,KAC7B8kP,EAAkB9kP,EAAQ,KAC1BqkP,EAAcrkP,EAAQ,KAO1B,SAASokP,EAAMI,GACb/+O,KAAKujD,SAAWw7L,EAChB/+O,KAAKs/O,aAAe,CAClBrhM,QAAS,IAAImhM,EACb1zD,SAAU,IAAI0zD,GASlBT,EAAMtiP,UAAU4hD,QAAU,SAAiBghB,GAGnB,kBAAXA,GACTA,EAAS9hE,UAAU,IAAM,IAClB0pB,IAAM1pB,UAAU,GAEvB8hE,EAASA,GAAU,IAGrBA,EAAS2/K,EAAY5+O,KAAKujD,SAAU0b,IAGzB/O,OACT+O,EAAO/O,OAAS+O,EAAO/O,OAAO3kD,cACrBvL,KAAKujD,SAAS2M,OACvB+O,EAAO/O,OAASlwD,KAAKujD,SAAS2M,OAAO3kD,cAErC0zD,EAAO/O,OAAS,MAIlB,IAAIqvL,EAAQ,CAACF,OAAiB55O,GAC1BojL,EAAUpkE,QAAQH,QAAQrlD,GAU9B,IARAj/D,KAAKs/O,aAAarhM,QAAQ/sC,SAAQ,SAAoCsuO,GACpED,EAAM/xN,QAAQgyN,EAAYC,UAAWD,EAAY/8B,aAGnDziN,KAAKs/O,aAAa5zD,SAASx6K,SAAQ,SAAkCsuO,GACnED,EAAM1jP,KAAK2jP,EAAYC,UAAWD,EAAY/8B,aAGzC88B,EAAM5kP,QACXkuL,EAAUA,EAAQ94H,KAAKwvL,EAAMrrL,QAASqrL,EAAMrrL,SAG9C,OAAO20H,GAGT81D,EAAMtiP,UAAUqjP,OAAS,SAAgBzgL,GAEvC,OADAA,EAAS2/K,EAAY5+O,KAAKujD,SAAU0b,GAC7BwrH,EAASxrH,EAAOp4C,IAAKo4C,EAAO3vD,OAAQ2vD,EAAOuqH,kBAAkBrmL,QAAQ,MAAO,KAIrFomL,EAAMr4K,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6Bg/C,GAE/EyuL,EAAMtiP,UAAU6zD,GAAU,SAASrpC,EAAKo4C,GACtC,OAAOj/D,KAAKi+C,QAAQsrI,EAAMtrH,MAAMgB,GAAU,GAAI,CAC5C/O,OAAQA,EACRrpC,IAAKA,SAKX0iK,EAAMr4K,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+Bg/C,GAErEyuL,EAAMtiP,UAAU6zD,GAAU,SAASrpC,EAAKlY,EAAMswD,GAC5C,OAAOj/D,KAAKi+C,QAAQsrI,EAAMtrH,MAAMgB,GAAU,GAAI,CAC5C/O,OAAQA,EACRrpC,IAAKA,EACLlY,KAAMA,SAKZtU,EAAOC,QAAUqkP,G,6BC3FjB,IAAIp1D,EAAQhvL,EAAQ,IAEpB,SAAS6kP,IACPp/O,KAAKwkB,SAAW,GAWlB46N,EAAmB/iP,UAAUsjP,IAAM,SAAaF,EAAWh9B,GAKzD,OAJAziN,KAAKwkB,SAAS3oB,KAAK,CACjB4jP,UAAWA,EACXh9B,SAAUA,IAELziN,KAAKwkB,SAAS7pB,OAAS,GAQhCykP,EAAmB/iP,UAAUujP,MAAQ,SAAe97N,GAC9C9jB,KAAKwkB,SAASV,KAChB9jB,KAAKwkB,SAASV,GAAM,OAYxBs7N,EAAmB/iP,UAAU6U,QAAU,SAAiByzG,GACtD4kE,EAAMr4K,QAAQlR,KAAKwkB,UAAU,SAAwBkkH,GACzC,OAANA,GACF/jB,EAAG+jB,OAKTruI,EAAOC,QAAU8kP,G,6BCjDjB,IAAI71D,EAAQhvL,EAAQ,IAChBslP,EAAgBtlP,EAAQ,KACxB0kP,EAAW1kP,EAAQ,KACnBgpD,EAAWhpD,EAAQ,KAKvB,SAASulP,EAA6B7gL,GAChCA,EAAOotH,aACTptH,EAAOotH,YAAY0zD,mBAUvB1lP,EAAOC,QAAU,SAAyB2kE,GA6BxC,OA5BA6gL,EAA6B7gL,GAG7BA,EAAOozD,QAAUpzD,EAAOozD,SAAW,GAGnCpzD,EAAOtwD,KAAOkxO,EACZ5gL,EAAOtwD,KACPswD,EAAOozD,QACPpzD,EAAOgrH,kBAIThrH,EAAOozD,QAAUk3D,EAAMtrH,MACrBgB,EAAOozD,QAAQk4D,QAAU,GACzBtrH,EAAOozD,QAAQpzD,EAAO/O,SAAW,GACjC+O,EAAOozD,SAGTk3D,EAAMr4K,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2Bg/C,UAClB+O,EAAOozD,QAAQniE,OAIZ+O,EAAO8qH,SAAWxmI,EAASwmI,SAE1B9qH,GAAQlP,MAAK,SAA6B27H,GAUvD,OATAo0D,EAA6B7gL,GAG7BysH,EAAS/8K,KAAOkxO,EACdn0D,EAAS/8K,KACT+8K,EAASr5D,QACTpzD,EAAOirH,mBAGFwB,KACN,SAA4BtC,GAc7B,OAbK61D,EAAS71D,KACZ02D,EAA6B7gL,GAGzBmqH,GAAUA,EAAOsC,WACnBtC,EAAOsC,SAAS/8K,KAAOkxO,EACrBz2D,EAAOsC,SAAS/8K,KAChBy6K,EAAOsC,SAASr5D,QAChBpzD,EAAOirH,qBAKNzlE,QAAQhnC,OAAO2rG,Q,6BC1E1B,IAAIG,EAAQhvL,EAAQ,IAUpBF,EAAOC,QAAU,SAAuBqU,EAAM0jH,EAAS2tH,GAMrD,OAJAz2D,EAAMr4K,QAAQ8uO,GAAK,SAAmBr7H,GACpCh2G,EAAOg2G,EAAGh2G,EAAM0jH,MAGX1jH,I,cCjBT,IAOIsxO,EACAC,EARAplE,EAAUzgL,EAAOC,QAAU,GAU/B,SAAS6lP,IACL,MAAM,IAAIz2O,MAAM,mCAEpB,SAAS02O,IACL,MAAM,IAAI12O,MAAM,qCAsBpB,SAAS22O,EAAWC,GAChB,GAAIL,IAAqBp3O,WAErB,OAAOA,WAAWy3O,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqBp3O,WAEhE,OADAo3O,EAAmBp3O,WACZA,WAAWy3O,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAM9gP,GACJ,IAEI,OAAOygP,EAAiBvkP,KAAK,KAAM4kP,EAAK,GAC1C,MAAM9gP,GAEJ,OAAOygP,EAAiBvkP,KAAKsE,KAAMsgP,EAAK,MAvCnD,WACG,IAEQL,EADsB,oBAAfp3O,WACYA,WAEAs3O,EAEzB,MAAO3gP,GACLygP,EAAmBE,EAEvB,IAEQD,EADwB,oBAAjBnqO,aACcA,aAEAqqO,EAE3B,MAAO5gP,GACL0gP,EAAqBE,GAjB5B,GAwED,IAEIG,EAFA1sL,EAAQ,GACR2sL,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAa5lP,OACbk5D,EAAQ0sL,EAAaxiP,OAAO81D,GAE5B4sL,GAAc,EAEd5sL,EAAMl5D,QACNgmP,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAI56N,EAAUy6N,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAI9lP,EAAMm5D,EAAMl5D,OACVD,GAAK,CAGP,IAFA6lP,EAAe1sL,EACfA,EAAQ,KACC4sL,EAAa/lP,GACd6lP,GACAA,EAAaE,GAAY19D,MAGjC09D,GAAc,EACd/lP,EAAMm5D,EAAMl5D,OAEhB4lP,EAAe,KACfC,GAAW,EAnEf,SAAyBt1N,GACrB,GAAIg1N,IAAuBnqO,aAEvB,OAAOA,aAAamV,GAGxB,IAAKg1N,IAAuBE,IAAwBF,IAAuBnqO,aAEvE,OADAmqO,EAAqBnqO,aACdA,aAAamV,GAExB,IAEWg1N,EAAmBh1N,GAC5B,MAAO1rB,GACL,IAEI,OAAO0gP,EAAmBxkP,KAAK,KAAMwvB,GACvC,MAAO1rB,GAGL,OAAO0gP,EAAmBxkP,KAAKsE,KAAMkrB,KAgD7C01N,CAAgBh7N,IAiBpB,SAASi7N,EAAKP,EAAKnoN,GACfn4B,KAAKsgP,IAAMA,EACXtgP,KAAKm4B,MAAQA,EAYjB,SAASsnF,KA5BTq7D,EAAQgmE,SAAW,SAAUR,GACzB,IAAIljP,EAAO,IAAItC,MAAMqC,UAAUxC,OAAS,GACxC,GAAIwC,UAAUxC,OAAS,EACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAClCwC,EAAKxC,EAAI,GAAKuC,UAAUvC,GAGhCi5D,EAAMh4D,KAAK,IAAIglP,EAAKP,EAAKljP,IACJ,IAAjBy2D,EAAMl5D,QAAiB6lP,GACvBH,EAAWM,IASnBE,EAAKxkP,UAAU0mL,IAAM,WACjB/iL,KAAKsgP,IAAIh3O,MAAM,KAAMtJ,KAAKm4B,QAE9B2iJ,EAAQh/I,MAAQ,UAChBg/I,EAAQ5vK,SAAU,EAClB4vK,EAAQgI,IAAM,GACdhI,EAAQimE,KAAO,GACfjmE,EAAQzvK,QAAU,GAClByvK,EAAQE,SAAW,GAInBF,EAAQv2J,GAAKk7F,EACbq7D,EAAQkmE,YAAcvhI,EACtBq7D,EAAQmmE,KAAOxhI,EACfq7D,EAAQr2J,IAAMg7F,EACdq7D,EAAQomE,eAAiBzhI,EACzBq7D,EAAQqmE,mBAAqB1hI,EAC7Bq7D,EAAQp2J,KAAO+6F,EACfq7D,EAAQsmE,gBAAkB3hI,EAC1Bq7D,EAAQumE,oBAAsB5hI,EAE9Bq7D,EAAQpyD,UAAY,SAAUjsH,GAAQ,MAAO,IAE7Cq+K,EAAQwmE,QAAU,SAAU7kP,GACxB,MAAM,IAAIiN,MAAM,qCAGpBoxK,EAAQymE,IAAM,WAAc,MAAO,KACnCzmE,EAAQ0mE,MAAQ,SAAUvrH,GACtB,MAAM,IAAIvsH,MAAM,mCAEpBoxK,EAAQ2mE,MAAQ,WAAa,OAAO,I,6BCrLpC,IAAIl4D,EAAQhvL,EAAQ,IAEpBF,EAAOC,QAAU,SAA6B+3H,EAASqvH,GACrDn4D,EAAMr4K,QAAQmhH,GAAS,SAAuBv2H,EAAOW,GAC/CA,IAASilP,GAAkBjlP,EAAK4zD,gBAAkBqxL,EAAerxL,gBACnEgiE,EAAQqvH,GAAkB5lP,SACnBu2H,EAAQ51H,S,6BCNrB,IAAIouL,EAActwL,EAAQ,KAS1BF,EAAOC,QAAU,SAAgBgqH,EAAS7mC,EAAQiuG,GAChD,IAAIpB,EAAiBoB,EAASzsH,OAAOqrH,gBAChCA,GAAkBA,EAAeoB,EAAS96H,QAC7C0zD,EAAQonE,GAERjuG,EAAOotG,EACL,mCAAqCa,EAAS96H,OAC9C86H,EAASzsH,OACT,KACAysH,EAASztI,QACTytI,M,6BCTNrxL,EAAOC,QAAU,SAAsBuQ,EAAOo0D,EAAQhtB,EAAMgM,EAASytI,GA4BnE,OA3BA7gL,EAAMo0D,OAASA,EACXhtB,IACFpnC,EAAMonC,KAAOA,GAGfpnC,EAAMozC,QAAUA,EAChBpzC,EAAM6gL,SAAWA,EACjB7gL,EAAM82O,cAAe,EAErB92O,EAAMmkC,OAAS,WACb,MAAO,CAEL2d,QAAS3sD,KAAK2sD,QACdlwD,KAAMuD,KAAKvD,KAEXm5M,YAAa51M,KAAK41M,YAClB0oB,OAAQt+N,KAAKs+N,OAEb9mE,SAAUx3J,KAAKw3J,SACfoqF,WAAY5hP,KAAK4hP,WACjBC,aAAc7hP,KAAK6hP,aACnB3iC,MAAOl/M,KAAKk/M,MAEZjgJ,OAAQj/D,KAAKi/D,OACbhtB,KAAMjyC,KAAKiyC,OAGRpnC,I,6BCtCT,IAAIi3O,EAAgBvnP,EAAQ,KACxBwnP,EAAcxnP,EAAQ,KAW1BF,EAAOC,QAAU,SAAuBgxL,EAAS02D,GAC/C,OAAI12D,IAAYw2D,EAAcE,GACrBD,EAAYz2D,EAAS02D,GAEvBA,I,6BCVT3nP,EAAOC,QAAU,SAAuBusB,GAItC,MAAO,gCAAgClqB,KAAKkqB,K,6BCH9CxsB,EAAOC,QAAU,SAAqBgxL,EAAS22D,GAC7C,OAAOA,EACH32D,EAAQnoL,QAAQ,OAAQ,IAAM,IAAM8+O,EAAY9+O,QAAQ,OAAQ,IAChEmoL,I,6BCVN,IAAI/B,EAAQhvL,EAAQ,IAIhB2nP,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5B7nP,EAAOC,QAAU,SAAsB+3H,GACrC,IACIv0H,EACAuY,EACAzb,EAHA4hC,EAAS,GAKb,OAAK61F,GAELk3D,EAAMr4K,QAAQmhH,EAAQtvH,MAAM,OAAO,SAAgBo8M,GAKjD,GAJAvkN,EAAIukN,EAAKzzM,QAAQ,KACjB5N,EAAMyrL,EAAMj5K,KAAK6uM,EAAK31L,OAAO,EAAG5uB,IAAI2Q,cACpC8K,EAAMkzK,EAAMj5K,KAAK6uM,EAAK31L,OAAO5uB,EAAI,IAE7BkD,EAAK,CACP,GAAI0+B,EAAO1+B,IAAQokP,EAAkBx2O,QAAQ5N,IAAQ,EACnD,OAGA0+B,EAAO1+B,GADG,eAARA,GACa0+B,EAAO1+B,GAAO0+B,EAAO1+B,GAAO,IAAIC,OAAO,CAACsY,IAEzCmmB,EAAO1+B,GAAO0+B,EAAO1+B,GAAO,KAAOuY,EAAMA,MAKtDmmB,GAnBgBA,I,6BC9BzB,IAAI+sJ,EAAQhvL,EAAQ,IAEpBF,EAAOC,QACLivL,EAAMn6D,uBAIH,WACC,IAEI+yH,EAFAC,EAAO,kBAAkBzlP,KAAKuM,UAAUC,WACxCk5O,EAAiB3hP,SAASsK,cAAc,KAS5C,SAASs3O,EAAWz7N,GAClB,IAAIq6C,EAAOr6C,EAWX,OATIu7N,IAEFC,EAAeluJ,aAAa,OAAQjzB,GACpCA,EAAOmhL,EAAenhL,MAGxBmhL,EAAeluJ,aAAa,OAAQjzB,GAG7B,CACLA,KAAMmhL,EAAenhL,KACrBqhL,SAAUF,EAAeE,SAAWF,EAAeE,SAASp/O,QAAQ,KAAM,IAAM,GAChFq/O,KAAMH,EAAeG,KACrBv8O,OAAQo8O,EAAep8O,OAASo8O,EAAep8O,OAAO9C,QAAQ,MAAO,IAAM,GAC3EuqB,KAAM20N,EAAe30N,KAAO20N,EAAe30N,KAAKvqB,QAAQ,KAAM,IAAM,GACpEs/O,SAAUJ,EAAeI,SACzBC,KAAML,EAAeK,KACrB/kI,SAAiD,MAAtC0kI,EAAe1kI,SAAShqG,OAAO,GACxC0uO,EAAe1kI,SACf,IAAM0kI,EAAe1kI,UAY3B,OARAwkI,EAAYG,EAAW1hP,OAAOwgE,SAASF,MAQhC,SAAyByhL,GAC9B,IAAInmN,EAAU+sJ,EAAM56D,SAASg0H,GAAeL,EAAWK,GAAcA,EACrE,OAAQnmN,EAAO+lN,WAAaJ,EAAUI,UAClC/lN,EAAOgmN,OAASL,EAAUK,MAhDjC,GAsDQ,WACL,OAAO,I,6BC9Df,IAAIj5D,EAAQhvL,EAAQ,IAEpBF,EAAOC,QACLivL,EAAMn6D,uBAIK,CACL8rC,MAAO,SAAez+J,EAAMX,EAAO8mP,EAASnlI,EAAM89C,EAAQsnF,GACxD,IAAIC,EAAS,GACbA,EAAOjnP,KAAKY,EAAO,IAAMu0D,mBAAmBl1D,IAExCytL,EAAM36D,SAASg0H,IACjBE,EAAOjnP,KAAK,WAAa,IAAI4M,KAAKm6O,GAASG,eAGzCx5D,EAAM56D,SAASlR,IACjBqlI,EAAOjnP,KAAK,QAAU4hH,GAGpB8rE,EAAM56D,SAAS4sC,IACjBunF,EAAOjnP,KAAK,UAAY0/J,IAGX,IAAXsnF,GACFC,EAAOjnP,KAAK,UAGd6E,SAASoiP,OAASA,EAAO5kP,KAAK,OAGhCguL,KAAM,SAAczvL,GAClB,IAAI+O,EAAQ9K,SAASoiP,OAAOt3O,MAAM,IAAIpI,OAAO,aAAe3G,EAAO,cACnE,OAAQ+O,EAAQk4M,mBAAmBl4M,EAAM,IAAM,MAGjDtI,OAAQ,SAAgBzG,GACtBuD,KAAKk7J,MAAMz+J,EAAM,GAAIgM,KAAKqiC,MAAQ,SAO/B,CACLowH,MAAO,aACPgxB,KAAM,WAAkB,OAAO,MAC/BhpL,OAAQ,e,6BC/ChB,IAAI8pL,EAASzyL,EAAQ,KAQrB,SAASykP,EAAYgE,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAInmP,UAAU,gCAGtB,IAAIomP,EACJjjP,KAAK6oL,QAAU,IAAIpkE,SAAQ,SAAyBH,GAClD2+H,EAAiB3+H,KAGnB,IAAIzrF,EAAQ74B,KACZgjP,GAAS,SAAgBr2L,GACnB9zB,EAAMuwJ,SAKVvwJ,EAAMuwJ,OAAS,IAAI4D,EAAOrgI,GAC1Bs2L,EAAepqN,EAAMuwJ,YAOzB41D,EAAY3iP,UAAU0jP,iBAAmB,WACvC,GAAI//O,KAAKopL,OACP,MAAMppL,KAAKopL,QAQf41D,EAAY/tO,OAAS,WACnB,IAAI2sE,EAIJ,MAAO,CACL/kD,MAJU,IAAImmN,GAAY,SAAkB/gP,GAC5C2/E,EAAS3/E,KAIT2/E,OAAQA,IAIZvjF,EAAOC,QAAU0kP,G,6BClCjB3kP,EAAOC,QAAU,SAAgBqL,GAC/B,OAAO,SAAclL,GACnB,OAAOkL,EAAS2D,MAAM,KAAM7O,M,cCxBhC+mL,MAAMU,UAAUghE,MAAQ,CACvB,QAAW,CACV,CACC3nH,QAAS,kCACTwoD,YAAY,GAEb,CACCxoD,QAAS,mBACTwoD,YAAY,IAGd,OAAU,CACTxoD,QAAS,iDACTyoD,QAAQ,GAET,aAAc,CACbzoD,QAAS,iGACTwoD,YAAY,EACZ1B,OAAQ,CACP8gE,YAAa,UAGf,QAAW,6GACX,QAAW,qBACX,SAAY,oBACZ,OAAU,gDACV,SAAY,0DACZ,YAAe,kB,cC3BhB3hE,MAAMU,UAAUkhE,OAAS,CACxB,QAAW,kBACX,OAAU,iBACV,QAAW,sBACX,MAAS,0BACT,IAAO,CACN7nH,QAAS,wGACT8mD,OAAQ,CACP,IAAO,CACN9mD,QAAS,kBACT8mD,OAAQ,CACP,YAAe,QACf,UAAa,iBAGf,aAAc,CACb9mD,QAAS,oDACT8mD,OAAQ,CACP,YAAe,CACd,KACA,CACC9mD,QAAS,gBACTwoD,YAAY,MAKhB,YAAe,OACf,YAAa,CACZxoD,QAAS,YACT8mD,OAAQ,CACP,UAAa,mBAMjB,OAAU,qBAGXb,MAAMU,UAAUkhE,OAAhB,IAA8B/gE,OAAO,cAAcA,OAAnD,OACCb,MAAMU,UAAUkhE,OAAhB,OAGD5hE,MAAMj/H,MAAMv/C,IAAI,QAAQ,SAAS8/K,GAEf,WAAbA,EAAItlL,OACPslL,EAAIyB,WAAJ,MAA0BzB,EAAI9jK,QAAQ7b,QAAQ,QAAS,SAIzDq+K,MAAMU,UAAUmhE,IAAM7hE,MAAMU,UAAUkhE,OACtC5hE,MAAMU,UAAUzvH,KAAO+uH,MAAMU,UAAUkhE,OACvC5hE,MAAMU,UAAUohE,OAAS9hE,MAAMU,UAAUkhE,OACzC5hE,MAAMU,UAAUqhE,IAAM/hE,MAAMU,UAAUkhE,Q,eCtDrC,SAAS5hE,GAEV,IAAIgiE,EAAahiE,EAAMK,KAAKI,MAAMT,EAAMU,UAAUshE,YAElDhiE,EAAMU,UAAUq6D,IAAM/6D,EAAMU,UAAU1yD,OAAO,SAAUg0H,GACvDhiE,EAAMU,UAAUq6D,IAAIhiF,IAAIh/B,QAAS,kKAEjCimD,EAAMU,UAAUq6D,IAAIhiF,IAAI8nB,OAAO,cAAc9mD,QAAU,yDAEvDimD,EAAMU,UAAUE,aAAa,SAAU,YAAa,CACnD,OAAU,CACT7mD,QAAS,6CACT8mD,OAAQ,CACP,YAAe,cACf,aAAc,SAGdb,EAAMU,UAAUq6D,IAAIhiF,KAEvB,IAAIkpF,EAAgBjiE,EAAMK,KAAKI,MAAMT,EAAMU,UAAUq6D,YAE9CkH,EAAcN,YAErBM,EAAgBjiE,EAAMU,UAAUE,aAAa,MAAO,WAAY,CAC9D,YAAe,wBACd,CAAEm6D,IAAKkH,IAEVjiE,EAAMU,UAAUE,aAAa,SAAU,aAAa,CACnD,OAAU,CAET7mD,QAAS,8BACT8mD,OAAQohE,EACR,MAAS,wBAERjiE,EAAMU,UAAUq6D,IAAIhiF,KAlCtB,CAoCCinB,Q,cCpCFA,MAAMU,UAAUshE,WAAahiE,MAAMU,UAAU1yD,OAAO,QAAS,CAC5D,QAAW,8TACX,OAAU,4FAEV,SAAY,gDACZ,SAAY,mGAGbgyD,MAAMU,UAAUE,aAAa,aAAc,UAAW,CACrD,MAAS,CACR7mD,QAAS,wFACTwoD,YAAY,EACZC,QAAQ,GAGT,oBAAqB,CACpBzoD,QAAS,wHACTwmD,MAAO,cAITP,MAAMU,UAAUE,aAAa,aAAc,SAAU,CACpD,kBAAmB,CAClB7mD,QAAS,yBACTyoD,QAAQ,EACR3B,OAAQ,CACP,cAAiB,CAChB9mD,QAAS,cACT8mD,OAAQ,CACP,4BAA6B,CAC5B9mD,QAAS,YACTwmD,MAAO,eAERx/D,KAAMi/D,MAAMU,UAAUshE,aAGxB,OAAU,cAKThiE,MAAMU,UAAUkhE,QACnB5hE,MAAMU,UAAUE,aAAa,SAAU,MAAO,CAC7C,OAAU,CACT7mD,QAAS,4CACTwoD,YAAY,EACZ1B,OAAQb,MAAMU,UAAUshE,WACxBzhE,MAAO,sBACPiC,QAAQ,KAKXxC,MAAMU,UAAUwhE,GAAKliE,MAAMU,UAAUshE,Y,cCrDrChiE,MAAMU,UAAUyhE,IAAM,CACrB,QAAW,mBACX,OAAU,CACTpoH,QAAS,8BACT8mD,OAAQ,CACP,KAAQ,YAIV,IAAO,iEACP,SAAY,2BACZ,OAAU,CACT9mD,QAAS,gDACTyoD,QAAQ,GAET,SAAY,+CACZ,UAAa,kBACb,SAAY,oBACZ,YAAe,YAGhBxC,MAAMU,UAAUyhE,IAAhB,OAA8BthE,OAAO9/D,KAAOi/D,MAAMK,KAAKI,MAAMT,MAAMU,UAAUyhE,KAEzEniE,MAAMU,UAAUkhE,SACnB5hE,MAAMU,UAAUE,aAAa,SAAU,MAAO,CAC7C,MAAS,CACR7mD,QAAS,0CACTwoD,YAAY,EACZ1B,OAAQb,MAAMU,UAAUyhE,IACxB5hE,MAAO,eACPiC,QAAQ,KAIVxC,MAAMU,UAAUE,aAAa,SAAU,aAAc,CACpD,aAAc,CACb7mD,QAAS,6CACT8mD,OAAQ,CACP,YAAa,CACZ9mD,QAAS,aACT8mD,OAAQb,MAAMU,UAAUkhE,OAAO7oF,IAAI8nB,QAEpC,YAAe,wBACf,aAAc,CACb9mD,QAAS,MACT8mD,OAAQb,MAAMU,UAAUyhE,MAG1B5hE,MAAO,iBAENP,MAAMU,UAAUkhE,OAAO7oF,O,cClD3BinB,MAAMU,UAAU0hE,KAAOpiE,MAAMU,UAAU1yD,OAAO,MAAO,CACpD,QAAW,CACV+L,QAAS,uCACTwoD,YAAY,GAEb,OAAU,CACTxoD,QAAS,0CACT8mD,OAAQ,CACP,KAAQ,YAKV,IAAO,0BAQP,SAAY,CAEX9mD,QAAS,mFACT8mD,OAAQ,CACP,OAAU,CACT9mD,QAAS,IACTwmD,MAAO,aAER,YAAe,UACf,SAAY,6BAKfP,MAAMU,UAAUE,aAAa,OAAQ,SAAU,CAC9C,QAAW,CACV,sGACA,CACC7mD,QAAS,4BACTwoD,YAAY,MAKfvC,MAAMU,UAAU0hE,KAAK5xG,SAAW,CAC/BzW,QAAS,6CACT8mD,OAAQ,CACP,SAAY,2BAIdb,MAAMU,UAAUE,aAAa,OAAQ,YAAa,CAEjD,SAAY,2BAGbZ,MAAMU,UAAUE,aAAa,OAAQ,WAAY,CAChD,YAAe,CACd7mD,QAAS,UACTwmD,MAAO,YAER,UAAa,CACZxmD,QAAS,6BACTwmD,MAAO,WAER,QAAW,qBACX,KAAQ,WACR,SAAY,CACXxmD,QAAS,kDACTwoD,YAAY,KAIdvC,MAAMU,UAAU0hE,KAAhB,OAA+BvhE,OAAO9/D,KAAOi/D,MAAMK,KAAKI,MAAMT,MAAMU,UAAU0hE,O,uECnE9E,IAAIC,EAAW,SAAUvpP,GACvB,aAEA,IAEImL,EAFAq+O,EAAK1nP,OAAOC,UACZmvF,EAASs4J,EAAGp1O,eAEZisK,EAA4B,oBAAXx/K,OAAwBA,OAAS,GAClD4oP,EAAiBppE,EAAQv/K,UAAY,aACrC4oP,EAAsBrpE,EAAQspE,eAAiB,kBAC/CC,EAAoBvpE,EAAQwpE,aAAe,gBAE/C,SAASC,EAAOpnP,EAAKc,EAAKhC,GAOxB,OANAM,OAAOyC,eAAe7B,EAAKc,EAAK,CAC9BhC,MAAOA,EACP4C,YAAY,EACZC,cAAc,EACdC,UAAU,IAEL5B,EAAIc,GAEb,IAEEsmP,EAAO,GAAI,IACX,MAAOroP,GACPqoP,EAAS,SAASpnP,EAAKc,EAAKhC,GAC1B,OAAOkB,EAAIc,GAAOhC,GAItB,SAAS65M,EAAK0uC,EAASC,EAASnsO,EAAMosO,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQjoP,qBAAqBooP,EAAYH,EAAUG,EAC/Ev+L,EAAY9pD,OAAOuc,OAAO6rO,EAAenoP,WACzC+pB,EAAU,IAAIs+N,EAAQH,GAAe,IAMzC,OAFAr+L,EAAUy+L,QAuMZ,SAA0BN,EAASlsO,EAAMiO,GACvC,IAAIhJ,EAAQwnO,EAEZ,OAAO,SAAgB10L,EAAQP,GAC7B,GAAIvyC,IAAUynO,EACZ,MAAM,IAAIn7O,MAAM,gCAGlB,GAAI0T,IAAU0nO,EAAmB,CAC/B,GAAe,UAAX50L,EACF,MAAMP,EAKR,OAAOo1L,IAMT,IAHA3+N,EAAQ8pC,OAASA,EACjB9pC,EAAQupC,IAAMA,IAED,CACX,IAAIq1L,EAAW5+N,EAAQ4+N,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAU5+N,GACnD,GAAI6+N,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnB7+N,EAAQ8pC,OAGV9pC,EAAQg/N,KAAOh/N,EAAQi/N,MAAQj/N,EAAQupC,SAElC,GAAuB,UAAnBvpC,EAAQ8pC,OAAoB,CACrC,GAAI9yC,IAAUwnO,EAEZ,MADAxnO,EAAQ0nO,EACF1+N,EAAQupC,IAGhBvpC,EAAQk/N,kBAAkBl/N,EAAQupC,SAEN,WAAnBvpC,EAAQ8pC,QACjB9pC,EAAQm/N,OAAO,SAAUn/N,EAAQupC,KAGnCvyC,EAAQynO,EAER,IAAIv1I,EAASk2I,EAASnB,EAASlsO,EAAMiO,GACrC,GAAoB,WAAhBkpF,EAAO9xG,KAAmB,CAO5B,GAJA4f,EAAQgJ,EAAQxqB,KACZkpP,EACAW,EAEAn2I,EAAO3/C,MAAQw1L,EACjB,SAGF,MAAO,CACLrpP,MAAOwzG,EAAO3/C,IACd/zD,KAAMwqB,EAAQxqB,MAGS,UAAhB0zG,EAAO9xG,OAChB4f,EAAQ0nO,EAGR1+N,EAAQ8pC,OAAS,QACjB9pC,EAAQupC,IAAM2/C,EAAO3/C,OA/QP+1L,CAAiBrB,EAASlsO,EAAMiO,GAE7C8/B,EAcT,SAASs/L,EAAS7gI,EAAI3nH,EAAK2yD,GACzB,IACE,MAAO,CAAEnyD,KAAM,SAAUmyD,IAAKg1D,EAAGjpH,KAAKsB,EAAK2yD,IAC3C,MAAO5zD,GACP,MAAO,CAAEyB,KAAM,QAASmyD,IAAK5zD,IAhBjCzB,EAAQq7M,KAAOA,EAoBf,IAAIivC,EAAyB,iBACzBa,EAAyB,iBACzBZ,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAASV,KACT,SAASkB,KACT,SAASC,KAIT,IAAIt/D,EAAoB,GACxB89D,EAAO99D,EAAmBy9D,GAAgB,WACxC,OAAO/jP,QAGT,IAAI6lP,EAAWzpP,OAAO0c,eAClBgtO,EAA0BD,GAAYA,EAASA,EAASjnI,EAAO,MAC/DknI,GACAA,IAA4BhC,GAC5Bt4J,EAAO9vF,KAAKoqP,EAAyB/B,KAGvCz9D,EAAoBw/D,GAGtB,IAAIC,EAAKH,EAA2BvpP,UAClCooP,EAAUpoP,UAAYD,OAAOuc,OAAO2tK,GAYtC,SAAS0/D,EAAsB3pP,GAC7B,CAAC,OAAQ,QAAS,UAAU6U,SAAQ,SAASg/C,GAC3Ck0L,EAAO/nP,EAAW6zD,GAAQ,SAASP,GACjC,OAAO3vD,KAAK2kP,QAAQz0L,EAAQP,SAkClC,SAASs2L,EAAc//L,EAAWggM,GAChC,SAASC,EAAOj2L,EAAQP,EAAK20D,EAAS7mC,GACpC,IAAI6xB,EAASk2I,EAASt/L,EAAUgK,GAAShK,EAAWyJ,GACpD,GAAoB,UAAhB2/C,EAAO9xG,KAEJ,CACL,IAAIsR,EAASwgG,EAAO3/C,IAChB7zD,EAAQgT,EAAOhT,MACnB,OAAIA,GACiB,kBAAVA,GACP0vF,EAAO9vF,KAAKI,EAAO,WACdoqP,EAAY5hI,QAAQxoH,EAAMsqP,SAASr2L,MAAK,SAASj0D,GACtDqqP,EAAO,OAAQrqP,EAAOwoH,EAAS7mC,MAC9B,SAAS1hF,GACVoqP,EAAO,QAASpqP,EAAKuoH,EAAS7mC,MAI3ByoK,EAAY5hI,QAAQxoH,GAAOi0D,MAAK,SAASs2L,GAI9Cv3O,EAAOhT,MAAQuqP,EACf/hI,EAAQx1G,MACP,SAASjE,GAGV,OAAOs7O,EAAO,QAASt7O,EAAOy5G,EAAS7mC,MAvBzCA,EAAO6xB,EAAO3/C,KA4BlB,IAAI22L,EAgCJtmP,KAAK2kP,QA9BL,SAAiBz0L,EAAQP,GACvB,SAAS42L,IACP,OAAO,IAAIL,GAAY,SAAS5hI,EAAS7mC,GACvC0oK,EAAOj2L,EAAQP,EAAK20D,EAAS7mC,MAIjC,OAAO6oK,EAaLA,EAAkBA,EAAgBv2L,KAChCw2L,EAGAA,GACEA,KAkHV,SAASrB,EAAoBF,EAAU5+N,GACrC,IAAI8pC,EAAS80L,EAAS5pP,SAASgrB,EAAQ8pC,QACvC,GAAIA,IAAWzqD,EAAW,CAKxB,GAFA2gB,EAAQ4+N,SAAW,KAEI,UAAnB5+N,EAAQ8pC,OAAoB,CAE9B,GAAI80L,EAAS5pP,SAAT,SAGFgrB,EAAQ8pC,OAAS,SACjB9pC,EAAQupC,IAAMlqD,EACdy/O,EAAoBF,EAAU5+N,GAEP,UAAnBA,EAAQ8pC,QAGV,OAAOi1L,EAIX/+N,EAAQ8pC,OAAS,QACjB9pC,EAAQupC,IAAM,IAAI9yD,UAChB,kDAGJ,OAAOsoP,EAGT,IAAI71I,EAASk2I,EAASt1L,EAAQ80L,EAAS5pP,SAAUgrB,EAAQupC,KAEzD,GAAoB,UAAhB2/C,EAAO9xG,KAIT,OAHA4oB,EAAQ8pC,OAAS,QACjB9pC,EAAQupC,IAAM2/C,EAAO3/C,IACrBvpC,EAAQ4+N,SAAW,KACZG,EAGT,IAAI9uM,EAAOi5D,EAAO3/C,IAElB,OAAMtZ,EAOFA,EAAKz6C,MAGPwqB,EAAQ4+N,EAASwB,YAAcnwM,EAAKv6C,MAGpCsqB,EAAQzqB,KAAOqpP,EAASyB,QAQD,WAAnBrgO,EAAQ8pC,SACV9pC,EAAQ8pC,OAAS,OACjB9pC,EAAQupC,IAAMlqD,GAUlB2gB,EAAQ4+N,SAAW,KACZG,GANE9uM,GA3BPjwB,EAAQ8pC,OAAS,QACjB9pC,EAAQupC,IAAM,IAAI9yD,UAAU,oCAC5BupB,EAAQ4+N,SAAW,KACZG,GAoDX,SAASuB,EAAaC,GACpB,IAAIrrL,EAAQ,CAAEsrL,OAAQD,EAAK,IAEvB,KAAKA,IACPrrL,EAAMurL,SAAWF,EAAK,IAGpB,KAAKA,IACPrrL,EAAMwrL,WAAaH,EAAK,GACxBrrL,EAAMyrL,SAAWJ,EAAK,IAGxB3mP,KAAKgnP,WAAWnrP,KAAKy/D,GAGvB,SAAS2rL,EAAc3rL,GACrB,IAAIg0C,EAASh0C,EAAM4rL,YAAc,GACjC53I,EAAO9xG,KAAO,gBACP8xG,EAAO3/C,IACd2L,EAAM4rL,WAAa53I,EAGrB,SAASo1I,EAAQH,GAIfvkP,KAAKgnP,WAAa,CAAC,CAAEJ,OAAQ,SAC7BrC,EAAYrzO,QAAQw1O,EAAc1mP,MAClCA,KAAKmnP,OAAM,GA8Bb,SAASvoI,EAAOm7F,GACd,GAAIA,EAAU,CACZ,IAAIU,EAAiBV,EAASgqC,GAC9B,GAAItpC,EACF,OAAOA,EAAe/+M,KAAKq+M,GAG7B,GAA6B,oBAAlBA,EAASp+M,KAClB,OAAOo+M,EAGT,IAAKltL,MAAMktL,EAASp/M,QAAS,CAC3B,IAAIC,GAAK,EAAGe,EAAO,SAASA,IAC1B,OAASf,EAAIm/M,EAASp/M,QACpB,GAAI6wF,EAAO9vF,KAAKq+M,EAAUn/M,GAGxB,OAFAe,EAAKG,MAAQi+M,EAASn/M,GACtBe,EAAKC,MAAO,EACLD,EAOX,OAHAA,EAAKG,MAAQ2J,EACb9J,EAAKC,MAAO,EAELD,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMopP,GAIjB,SAASA,IACP,MAAO,CAAEjpP,MAAO2J,EAAW7J,MAAM,GA+MnC,OA7mBA+pP,EAAkBtpP,UAAYupP,EAC9BxB,EAAO2B,EAAI,cAAeH,GAC1BxB,EAAOwB,EAA4B,cAAeD,GAClDA,EAAkBhmI,YAAcykI,EAC9BwB,EACA1B,EACA,qBAaF5pP,EAAQ8sP,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAO7qP,YAClD,QAAO8qP,IACHA,IAAS3B,GAG2B,uBAAnC2B,EAAK3nI,aAAe2nI,EAAK7qP,QAIhCnC,EAAQitP,KAAO,SAASF,GAQtB,OAPIjrP,OAAOkc,eACTlc,OAAOkc,eAAe+uO,EAAQzB,IAE9ByB,EAAO9uO,UAAYqtO,EACnBxB,EAAOiD,EAAQnD,EAAmB,sBAEpCmD,EAAOhrP,UAAYD,OAAOuc,OAAOotO,GAC1BsB,GAOT/sP,EAAQktP,MAAQ,SAAS73L,GACvB,MAAO,CAAEy2L,QAASz2L,IAsEpBq2L,EAAsBC,EAAc5pP,WACpC+nP,EAAO6B,EAAc5pP,UAAW2nP,GAAqB,WACnD,OAAOhkP,QAET1F,EAAQ2rP,cAAgBA,EAKxB3rP,EAAQsoL,MAAQ,SAASyhE,EAASC,EAASnsO,EAAMosO,EAAa2B,QACxC,IAAhBA,IAAwBA,EAAczhI,SAE1C,IAAIx3B,EAAO,IAAIg5J,EACbtwC,EAAK0uC,EAASC,EAASnsO,EAAMosO,GAC7B2B,GAGF,OAAO5rP,EAAQ8sP,oBAAoB9C,GAC/Br3J,EACAA,EAAKtxF,OAAOo0D,MAAK,SAASjhD,GACxB,OAAOA,EAAOlT,KAAOkT,EAAOhT,MAAQmxF,EAAKtxF,WAuKjDqqP,EAAsBD,GAEtB3B,EAAO2B,EAAI7B,EAAmB,aAO9BE,EAAO2B,EAAIhC,GAAgB,WACzB,OAAO/jP,QAGTokP,EAAO2B,EAAI,YAAY,WACrB,MAAO,wBAkCTzrP,EAAQmU,KAAO,SAASiC,GACtB,IAAIjC,EAAO,GACX,IAAK,IAAI3Q,KAAO4S,EACdjC,EAAK5S,KAAKiC,GAMZ,OAJA2Q,EAAK4I,UAIE,SAAS1b,IACd,KAAO8S,EAAK9T,QAAQ,CAClB,IAAImD,EAAM2Q,EAAKy4G,MACf,GAAIppH,KAAO4S,EAGT,OAFA/U,EAAKG,MAAQgC,EACbnC,EAAKC,MAAO,EACLD,EAQX,OADAA,EAAKC,MAAO,EACLD,IAsCXrB,EAAQskH,OAASA,EAMjB8lI,EAAQroP,UAAY,CAClBG,YAAakoP,EAEbyC,MAAO,SAASM,GAcd,GAbAznP,KAAKuqC,KAAO,EACZvqC,KAAKrE,KAAO,EAGZqE,KAAKolP,KAAOplP,KAAKqlP,MAAQ5/O,EACzBzF,KAAKpE,MAAO,EACZoE,KAAKglP,SAAW,KAEhBhlP,KAAKkwD,OAAS,OACdlwD,KAAK2vD,IAAMlqD,EAEXzF,KAAKgnP,WAAW91O,QAAQ+1O,IAEnBQ,EACH,IAAK,IAAIhrP,KAAQuD,KAEQ,MAAnBvD,EAAKkX,OAAO,IACZ63E,EAAO9vF,KAAKsE,KAAMvD,KACjBowB,OAAOpwB,EAAKF,MAAM,MACrByD,KAAKvD,GAAQgJ,IAMrBylK,KAAM,WACJlrK,KAAKpE,MAAO,EAEZ,IACI8rP,EADY1nP,KAAKgnP,WAAW,GACLE,WAC3B,GAAwB,UAApBQ,EAAWlqP,KACb,MAAMkqP,EAAW/3L,IAGnB,OAAO3vD,KAAK2nP,MAGdrC,kBAAmB,SAASsC,GAC1B,GAAI5nP,KAAKpE,KACP,MAAMgsP,EAGR,IAAIxhO,EAAUpmB,KACd,SAASsoL,EAAOu/D,EAAKC,GAYnB,OAXAx4I,EAAO9xG,KAAO,QACd8xG,EAAO3/C,IAAMi4L,EACbxhO,EAAQzqB,KAAOksP,EAEXC,IAGF1hO,EAAQ8pC,OAAS,OACjB9pC,EAAQupC,IAAMlqD,KAGNqiP,EAGZ,IAAK,IAAIltP,EAAIoF,KAAKgnP,WAAWrsP,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAI0gE,EAAQt7D,KAAKgnP,WAAWpsP,GACxB00G,EAASh0C,EAAM4rL,WAEnB,GAAqB,SAAjB5rL,EAAMsrL,OAIR,OAAOt+D,EAAO,OAGhB,GAAIhtH,EAAMsrL,QAAU5mP,KAAKuqC,KAAM,CAC7B,IAAIw9M,EAAWv8J,EAAO9vF,KAAK4/D,EAAO,YAC9B0sL,EAAax8J,EAAO9vF,KAAK4/D,EAAO,cAEpC,GAAIysL,GAAYC,EAAY,CAC1B,GAAIhoP,KAAKuqC,KAAO+wB,EAAMurL,SACpB,OAAOv+D,EAAOhtH,EAAMurL,UAAU,GACzB,GAAI7mP,KAAKuqC,KAAO+wB,EAAMwrL,WAC3B,OAAOx+D,EAAOhtH,EAAMwrL,iBAGjB,GAAIiB,GACT,GAAI/nP,KAAKuqC,KAAO+wB,EAAMurL,SACpB,OAAOv+D,EAAOhtH,EAAMurL,UAAU,OAG3B,KAAImB,EAMT,MAAM,IAAIt+O,MAAM,0CALhB,GAAI1J,KAAKuqC,KAAO+wB,EAAMwrL,WACpB,OAAOx+D,EAAOhtH,EAAMwrL,gBAU9BvB,OAAQ,SAAS/nP,EAAMmyD,GACrB,IAAK,IAAI/0D,EAAIoF,KAAKgnP,WAAWrsP,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAI0gE,EAAQt7D,KAAKgnP,WAAWpsP,GAC5B,GAAI0gE,EAAMsrL,QAAU5mP,KAAKuqC,MACrBihD,EAAO9vF,KAAK4/D,EAAO,eACnBt7D,KAAKuqC,KAAO+wB,EAAMwrL,WAAY,CAChC,IAAImB,EAAe3sL,EACnB,OAIA2sL,IACU,UAATzqP,GACS,aAATA,IACDyqP,EAAarB,QAAUj3L,GACvBA,GAAOs4L,EAAanB,aAGtBmB,EAAe,MAGjB,IAAI34I,EAAS24I,EAAeA,EAAaf,WAAa,GAItD,OAHA53I,EAAO9xG,KAAOA,EACd8xG,EAAO3/C,IAAMA,EAETs4L,GACFjoP,KAAKkwD,OAAS,OACdlwD,KAAKrE,KAAOssP,EAAanB,WAClB3B,GAGFnlP,KAAKkoP,SAAS54I,IAGvB44I,SAAU,SAAS54I,EAAQy3I,GACzB,GAAoB,UAAhBz3I,EAAO9xG,KACT,MAAM8xG,EAAO3/C,IAcf,MAXoB,UAAhB2/C,EAAO9xG,MACS,aAAhB8xG,EAAO9xG,KACTwC,KAAKrE,KAAO2zG,EAAO3/C,IACM,WAAhB2/C,EAAO9xG,MAChBwC,KAAK2nP,KAAO3nP,KAAK2vD,IAAM2/C,EAAO3/C,IAC9B3vD,KAAKkwD,OAAS,SACdlwD,KAAKrE,KAAO,OACa,WAAhB2zG,EAAO9xG,MAAqBupP,IACrC/mP,KAAKrE,KAAOorP,GAGP5B,GAGTgD,OAAQ,SAASrB,GACf,IAAK,IAAIlsP,EAAIoF,KAAKgnP,WAAWrsP,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAI0gE,EAAQt7D,KAAKgnP,WAAWpsP,GAC5B,GAAI0gE,EAAMwrL,aAAeA,EAGvB,OAFA9mP,KAAKkoP,SAAS5sL,EAAM4rL,WAAY5rL,EAAMyrL,UACtCE,EAAc3rL,GACP6pL,IAKb,MAAS,SAASyB,GAChB,IAAK,IAAIhsP,EAAIoF,KAAKgnP,WAAWrsP,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAI0gE,EAAQt7D,KAAKgnP,WAAWpsP,GAC5B,GAAI0gE,EAAMsrL,SAAWA,EAAQ,CAC3B,IAAIt3I,EAASh0C,EAAM4rL,WACnB,GAAoB,UAAhB53I,EAAO9xG,KAAkB,CAC3B,IAAI4qP,EAAS94I,EAAO3/C,IACpBs3L,EAAc3rL,GAEhB,OAAO8sL,GAMX,MAAM,IAAI1+O,MAAM,0BAGlB2+O,cAAe,SAAStuC,EAAUysC,EAAYC,GAa5C,OAZAzmP,KAAKglP,SAAW,CACd5pP,SAAUwjH,EAAOm7F,GACjBysC,WAAYA,EACZC,QAASA,GAGS,SAAhBzmP,KAAKkwD,SAGPlwD,KAAK2vD,IAAMlqD,GAGN0/O,IAQJ7qP,EA9sBM,CAqtBgBD,EAAOC,SAGtC,IACEguP,mBAAqBzE,EACrB,MAAO0E,GAWmB,kBAAfvjI,WACTA,WAAWsjI,mBAAqBzE,EAEhC5+H,SAAS,IAAK,yBAAdA,CAAwC4+H,K,gEC/uB5C,SAAS2E,EAAiBC,EAAWC,GACnC,OAAOD,EAAUtlP,QAAQ,IAAIC,OAAO,UAAYslP,EAAgB,YAAa,KAAM,MAAMvlP,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,I,qCCDvH,GACH,E,QCODwlP,EAAY,YACZC,EAAS,SACTC,EAAW,WACXC,EAAU,UACVC,EAAU,UA6FjBC,EAA0B,SAAU11C,GAGtC,SAAS01C,EAAWxqP,EAAO4nB,GACzB,IAAI7gB,EAEJA,EAAQ+tM,EAAiB53M,KAAKsE,KAAMxB,EAAO4nB,IAAYpmB,KACvD,IAGIipP,EADAt1C,EAFcvtL,MAEuBqtL,WAAaj1M,EAAMk4G,MAAQl4G,EAAMm1M,OAuB1E,OArBApuM,EAAM2jP,aAAe,KAEjB1qP,EAAMmnB,GACJguL,GACFs1C,EAAgBL,EAChBrjP,EAAM2jP,aAAeL,GAErBI,EAAgBH,EAIhBG,EADEzqP,EAAMqnB,eAAiBrnB,EAAM2qP,aACfR,EAEAC,EAIpBrjP,EAAM6X,MAAQ,CACZwzC,OAAQq4L,GAEV1jP,EAAM6jP,aAAe,KACd7jP,EA/BT+6G,YAAe0oI,EAAY11C,GAkC3B01C,EAAWv6D,yBAA2B,SAAkC7wL,EAAM6lB,GAG5E,OAFa7lB,EAAK+nB,IAEJlC,EAAUmtC,SAAW+3L,EAC1B,CACL/3L,OAAQg4L,GAIL,MAmBT,IAAIl7D,EAASs7D,EAAW3sP,UA0OxB,OAxOAqxL,EAAOzoI,kBAAoB,WACzBjlD,KAAKqpP,cAAa,EAAMrpP,KAAKkpP,eAG/Bx7D,EAAOvoI,mBAAqB,SAA4B3hC,GACtD,IAAI8lO,EAAa,KAEjB,GAAI9lO,IAAcxjB,KAAKxB,MAAO,CAC5B,IAAIoyD,EAAS5wD,KAAKod,MAAMwzC,OAEpB5wD,KAAKxB,MAAMmnB,GACTirC,IAAWi4L,GAAYj4L,IAAWk4L,IACpCQ,EAAaT,GAGXj4L,IAAWi4L,GAAYj4L,IAAWk4L,IACpCQ,EAAaP,GAKnB/oP,KAAKqpP,cAAa,EAAOC,IAG3B57D,EAAOtoI,qBAAuB,WAC5BplD,KAAKupP,sBAGP77D,EAAO87D,YAAc,WACnB,IACI7yI,EAAMD,EAAOi9F,EADb/tL,EAAU5lB,KAAKxB,MAAMonB,QAWzB,OATA+wF,EAAOD,EAAQi9F,EAAS/tL,EAET,MAAXA,GAAsC,kBAAZA,IAC5B+wF,EAAO/wF,EAAQ+wF,KACfD,EAAQ9wF,EAAQ8wF,MAEhBi9F,OAA4BluM,IAAnBmgB,EAAQ+tL,OAAuB/tL,EAAQ+tL,OAASj9F,GAGpD,CACLC,KAAMA,EACND,MAAOA,EACPi9F,OAAQA,IAIZjmB,EAAO27D,aAAe,SAAsBI,EAAUH,QACnC,IAAbG,IACFA,GAAW,GAGM,OAAfH,GAEFtpP,KAAKupP,qBAEDD,IAAeT,EACjB7oP,KAAK0pP,aAAaD,GAElBzpP,KAAK2pP,eAEE3pP,KAAKxB,MAAMqnB,eAAiB7lB,KAAKod,MAAMwzC,SAAWg4L,GAC3D5oP,KAAKwd,SAAS,CACZozC,OAAQ+3L,KAKdj7D,EAAOg8D,aAAe,SAAsBD,GAC1C,IAAI9uO,EAAS3a,KAET02G,EAAQ12G,KAAKxB,MAAMk4G,MACnBkzI,EAAY5pP,KAAKomB,QAAUpmB,KAAKomB,QAAQqtL,WAAag2C,EAErD5rP,EAAQmC,KAAKxB,MAAMknB,QAAU,CAACkkO,GAAa,CAACjsO,IAAS09N,YAAYr7O,MAAO4pP,GACxEC,EAAYhsP,EAAM,GAClBisP,EAAiBjsP,EAAM,GAEvBksP,EAAW/pP,KAAKwpP,cAChBQ,EAAeJ,EAAYG,EAASp2C,OAASo2C,EAASrzI,OAGrD+yI,IAAa/yI,GAASz3C,EACzBj/D,KAAKiqP,aAAa,CAChBr5L,OAAQk4L,IACP,WACDnuO,EAAOnc,MAAM4mB,UAAUykO,OAK3B7pP,KAAKxB,MAAM0mB,QAAQ2kO,EAAWC,GAC9B9pP,KAAKiqP,aAAa,CAChBr5L,OAAQi4L,IACP,WACDluO,EAAOnc,MAAM2mB,WAAW0kO,EAAWC,GAEnCnvO,EAAO6sL,gBAAgBwiD,GAAc,WACnCrvO,EAAOsvO,aAAa,CAClBr5L,OAAQk4L,IACP,WACDnuO,EAAOnc,MAAM4mB,UAAUykO,EAAWC,cAM1Cp8D,EAAOi8D,YAAc,WACnB,IAAIzoO,EAASlhB,KAET22G,EAAO32G,KAAKxB,MAAMm4G,KAClBozI,EAAW/pP,KAAKwpP,cAChBK,EAAY7pP,KAAKxB,MAAMknB,aAAUjgB,EAAYkY,IAAS09N,YAAYr7O,MAEjE22G,IAAQ13C,GASbj/D,KAAKxB,MAAM6mB,OAAOwkO,GAClB7pP,KAAKiqP,aAAa,CAChBr5L,OAAQm4L,IACP,WACD7nO,EAAO1iB,MAAM8mB,UAAUukO,GAEvB3oO,EAAOsmL,gBAAgBuiD,EAASpzI,MAAM,WACpCz1F,EAAO+oO,aAAa,CAClBr5L,OAAQg4L,IACP,WACD1nO,EAAO1iB,MAAM+mB,SAASskO,aAlB1B7pP,KAAKiqP,aAAa,CAChBr5L,OAAQg4L,IACP,WACD1nO,EAAO1iB,MAAM+mB,SAASskO,OAqB5Bn8D,EAAO67D,mBAAqB,WACA,OAAtBvpP,KAAKopP,eACPppP,KAAKopP,aAAaxrK,SAClB59E,KAAKopP,aAAe,OAIxB17D,EAAOu8D,aAAe,SAAsB9qM,EAAWx5C,GAIrDA,EAAW3F,KAAKkqP,gBAAgBvkP,GAChC3F,KAAKwd,SAAS2hC,EAAWx5C,IAG3B+nL,EAAOw8D,gBAAkB,SAAyBvkP,GAChD,IAAIgc,EAAS3hB,KAETmnM,GAAS,EAcb,OAZAnnM,KAAKopP,aAAe,SAAU/0O,GACxB8yL,IACFA,GAAS,EACTxlL,EAAOynO,aAAe,KACtBzjP,EAAS0O,KAIbrU,KAAKopP,aAAaxrK,OAAS,WACzBupH,GAAS,GAGJnnM,KAAKopP,cAGd17D,EAAO8Z,gBAAkB,SAAyB5hL,EAAS3N,GACzDjY,KAAKkqP,gBAAgBjyO,GACrB,IAAI1Q,EAAOvH,KAAKxB,MAAMknB,QAAU1lB,KAAKxB,MAAMknB,QAAQ3W,QAAU4O,IAAS09N,YAAYr7O,MAC9EmqP,EAA0C,MAAXvkO,IAAoB5lB,KAAKxB,MAAM4rP,eAElE,GAAK7iP,IAAQ4iP,EAAb,CAKA,GAAInqP,KAAKxB,MAAM4rP,eAAgB,CAC7B,IAAIC,EAAQrqP,KAAKxB,MAAMknB,QAAU,CAAC1lB,KAAKopP,cAAgB,CAAC7hP,EAAMvH,KAAKopP,cAC/DS,EAAYQ,EAAM,GAClBC,EAAoBD,EAAM,GAE9BrqP,KAAKxB,MAAM4rP,eAAeP,EAAWS,GAGxB,MAAX1kO,GACF/c,WAAW7I,KAAKopP,aAAcxjO,QAb9B/c,WAAW7I,KAAKopP,aAAc,IAiBlC17D,EAAOpvK,OAAS,WACd,IAAIsyC,EAAS5wD,KAAKod,MAAMwzC,OAExB,GAAIA,IAAW+3L,EACb,OAAO,KAGT,IAAI90C,EAAc7zM,KAAKxB,MACnBgE,EAAWqxM,EAAYrxM,SAgBvB+nP,GAfM12C,EAAYluL,GACFkuL,EAAYs1C,aACXt1C,EAAYhuL,cACnBguL,EAAYF,OACbE,EAAYn9F,MACbm9F,EAAYl9F,KACTk9F,EAAYjuL,QACLiuL,EAAYu2C,eACnBv2C,EAAY3uL,QACT2uL,EAAY1uL,WACb0uL,EAAYzuL,UACfyuL,EAAYxuL,OACTwuL,EAAYvuL,UACbuuL,EAAYtuL,SACbsuL,EAAYnuL,QACV6qE,YAA8BsjH,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,aAEjP,OAGEh5L,IAAM7P,cAAc+oM,IAAuBzwI,SAAU,CACnDxnE,MAAO,MACc,oBAAb0G,EAA0BA,EAASouD,EAAQ25L,GAAc1vO,IAAM4D,aAAa5D,IAAMs8E,SAAS0vH,KAAKrkN,GAAW+nP,KAIlHvB,EAzSqB,CA0S5BnuO,IAAMG,WA+LR,SAASykG,KA7LTupI,EAAWtpM,YAAcq0J,IACzBi1C,EAAWr6D,UA0LP,GAIJq6D,EAAW7uK,aAAe,CACxBx0D,IAAI,EACJwjO,cAAc,EACdtjO,eAAe,EACf8tL,QAAQ,EACRj9F,OAAO,EACPC,MAAM,EACNzxF,QAASu6F,EACTt6F,WAAYs6F,EACZr6F,UAAWq6F,EACXp6F,OAAQo6F,EACRn6F,UAAWm6F,EACXl6F,SAAUk6F,GAEZupI,EAAWL,UAAYA,EACvBK,EAAWJ,OAASA,EACpBI,EAAWH,SAAWA,EACtBG,EAAWF,QAAUA,EACrBE,EAAWD,QAAUA,EACNC,QCvlBX9uO,EAAc,SAAqB3S,EAAMjK,GAC3C,OAAOiK,GAAQjK,GAAWA,EAAQyF,MAAM,KAAKmO,SAAQ,SAAUjT,GAC7D,OHPyCV,EGObU,QHPIsE,EGOVgF,GHNZ1E,UACVN,EAAQM,UAAUK,OAAO3F,GACa,kBAAtBgF,EAAQhF,UACxBgF,EAAQhF,UAAYirP,EAAiBjmP,EAAQhF,UAAWA,GAExDgF,EAAQ4xF,aAAa,QAASq0J,EAAiBjmP,EAAQhF,WAAagF,EAAQhF,UAAUitP,SAAW,GAAIjtP,KAN1F,IAAqBgF,EAAShF,MGiFzC0nB,EAA6B,SAAUquL,GAGzC,SAASruL,IAGP,IAFA,IAAI1f,EAEKrI,EAAOC,UAAUxC,OAAQyC,EAAO,IAAItC,MAAMoC,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAgHzB,OA7GAkI,EAAQ+tM,EAAiB53M,KAAK4N,MAAMgqM,EAAkB,CAACtzM,MAAMjC,OAAOX,KAAU4C,MACxEyqP,eAAiB,CACrB92C,OAAQ,GACRj9F,MAAO,GACPC,KAAM,IAGRpxG,EAAM2f,QAAU,SAAU2kO,EAAWC,GACnC,IAAIY,EAAwBnlP,EAAMolP,iBAAiBd,EAAWC,GAC1DviP,EAAOmjP,EAAsB,GAC7Bd,EAAYc,EAAsB,GAEtCnlP,EAAMqlP,cAAcrjP,EAAM,QAE1BhC,EAAMiV,SAASjT,EAAMqiP,EAAY,SAAW,QAAS,QAEjDrkP,EAAM/G,MAAM0mB,SACd3f,EAAM/G,MAAM0mB,QAAQ2kO,EAAWC,IAInCvkP,EAAM4f,WAAa,SAAU0kO,EAAWC,GACtC,IAAIe,EAAyBtlP,EAAMolP,iBAAiBd,EAAWC,GAC3DviP,EAAOsjP,EAAuB,GAG9BrtP,EAFYqtP,EAAuB,GAEhB,SAAW,QAElCtlP,EAAMiV,SAASjT,EAAM/J,EAAM,UAEvB+H,EAAM/G,MAAM2mB,YACd5f,EAAM/G,MAAM2mB,WAAW0kO,EAAWC,IAItCvkP,EAAM6f,UAAY,SAAUykO,EAAWC,GACrC,IAAIgB,EAAyBvlP,EAAMolP,iBAAiBd,EAAWC,GAC3DviP,EAAOujP,EAAuB,GAG9BttP,EAFYstP,EAAuB,GAEhB,SAAW,QAElCvlP,EAAMqlP,cAAcrjP,EAAM/J,GAE1B+H,EAAMiV,SAASjT,EAAM/J,EAAM,QAEvB+H,EAAM/G,MAAM4mB,WACd7f,EAAM/G,MAAM4mB,UAAUykO,EAAWC,IAIrCvkP,EAAM8f,OAAS,SAAUwkO,GACvB,IACItiP,EADyBhC,EAAMolP,iBAAiBd,GAClB,GAElCtkP,EAAMqlP,cAAcrjP,EAAM,UAE1BhC,EAAMqlP,cAAcrjP,EAAM,SAE1BhC,EAAMiV,SAASjT,EAAM,OAAQ,QAEzBhC,EAAM/G,MAAM6mB,QACd9f,EAAM/G,MAAM6mB,OAAOwkO,IAIvBtkP,EAAM+f,UAAY,SAAUukO,GAC1B,IACItiP,EADyBhC,EAAMolP,iBAAiBd,GAClB,GAElCtkP,EAAMiV,SAASjT,EAAM,OAAQ,UAEzBhC,EAAM/G,MAAM8mB,WACd/f,EAAM/G,MAAM8mB,UAAUukO,IAI1BtkP,EAAMggB,SAAW,SAAUskO,GACzB,IACItiP,EADyBhC,EAAMolP,iBAAiBd,GAClB,GAElCtkP,EAAMqlP,cAAcrjP,EAAM,QAE1BhC,EAAMiV,SAASjT,EAAM,OAAQ,QAEzBhC,EAAM/G,MAAM+mB,UACdhgB,EAAM/G,MAAM+mB,SAASskO,IAIzBtkP,EAAMolP,iBAAmB,SAAUd,EAAWC,GAC5C,OAAOvkP,EAAM/G,MAAMknB,QAAU,CAACngB,EAAM/G,MAAMknB,QAAQ3W,QAAS86O,GACzD,CAACA,EAAWC,IAGhBvkP,EAAMwlP,cAAgB,SAAUvtP,GAC9B,IAAIP,EAAasI,EAAM/G,MAAMvB,WACzB+tP,EAA2C,kBAAf/tP,EAE5BguP,EAAgBD,EAAqB,IAD5BA,GAAsB/tP,EAAaA,EAAa,IAAM,IACZO,EAAOP,EAAWO,GAGzE,MAAO,CACLytP,cAAeA,EACfloI,gBAJoBioI,EAAqBC,EAAgB,UAAYhuP,EAAWO,EAAO,UAKvF0tP,cAJkBF,EAAqBC,EAAgB,QAAUhuP,EAAWO,EAAO,UAQhF+H,EAtHT+6G,YAAer7F,EAAequL,GAyH9B,IAAI5lB,EAASzoK,EAAc5oB,UA6D3B,OA3DAqxL,EAAOlzK,SAAW,SAAkBjT,EAAM/J,EAAM2tP,GAC9C,IAAI5tP,EAAYyC,KAAK+qP,cAAcvtP,GAAM2tP,EAAQ,aAG7CD,EADsBlrP,KAAK+qP,cAAc,SACLG,cAE3B,WAAT1tP,GAA+B,SAAV2tP,GAAoBD,IAC3C3tP,GAAa,IAAM2tP,GAKP,WAAVC,GAEF5jP,GAAQA,EAAKzG,UAGXvD,IACFyC,KAAKyqP,eAAejtP,GAAM2tP,GAAS5tP,EAhOzB,SAAkBgK,EAAMjK,GAC/BiK,GAAQjK,GAAWA,EAAQyF,MAAM,KAAKmO,SAAQ,SAAUjT,GAC7D,OCJsCV,EDIbU,QCJIsE,EDIVgF,GCHT1E,UAAWN,EAAQM,UAAUG,IAAIzF,GCHhC,SAAkBgF,EAAShF,GACxC,OAAIgF,EAAQM,YAAoBtF,GAAagF,EAAQM,UAAUQ,SAAS9F,IACkC,KAAlG,KAAOgF,EAAQhF,UAAUitP,SAAWjoP,EAAQhF,WAAa,KAAKmO,QAAQ,IAAMnO,EAAY,KDC9BqxF,CAASrsF,EAAShF,KAA6C,kBAAtBgF,EAAQhF,UAAwBgF,EAAQhF,UAAYgF,EAAQhF,UAAY,IAAMA,EAAegF,EAAQ4xF,aAAa,SAAU5xF,EAAQhF,WAAagF,EAAQhF,UAAUitP,SAAW,IAAM,IAAMjtP,KADxR,IAAkBgF,EAAShF,KDoOpC6tP,CAAU7jP,EAAMhK,KAIpBmwL,EAAOk9D,cAAgB,SAAuBrjP,EAAM/J,GAClD,IAAI6tP,EAAwBrrP,KAAKyqP,eAAejtP,GAC5CytP,EAAgBI,EAAsBlsI,KACtC4D,EAAkBsoI,EAAsBlkD,OACxC+jD,EAAgBG,EAAsBzvP,KAC1CoE,KAAKyqP,eAAejtP,GAAQ,GAExBytP,GACF/wO,EAAY3S,EAAM0jP,GAGhBloI,GACF7oG,EAAY3S,EAAMw7G,GAGhBmoI,GACFhxO,EAAY3S,EAAM2jP,IAItBx9D,EAAOpvK,OAAS,WACd,IAAIu1L,EAAc7zM,KAAKxB,MAEnBA,GADIq1M,EAAY52M,WACRszF,YAA8BsjH,EAAa,CAAC,gBAExD,OAAoBh5L,IAAM7P,cAAcg+O,EAAYvwK,YAAS,GAAIj6E,EAAO,CACtE0mB,QAASllB,KAAKklB,QACdE,UAAWplB,KAAKolB,UAChBD,WAAYnlB,KAAKmlB,WACjBE,OAAQrlB,KAAKqlB,OACbC,UAAWtlB,KAAKslB,UAChBC,SAAUvlB,KAAKulB,aAIZN,EAvLwB,CAwL/BpK,IAAMG,WAERiK,EAAck1D,aAAe,CAC3Bl9E,WAAY,IAEdgoB,EAAc0pK,UAiIT,GACU1pK","file":"static/js/2.846b6e3d.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import PrimeReact from 'primereact/api';\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { CSSTransition as CSSTransition$1 } from 'react-transition-group';\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayLikeToArray$2(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray$2(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$2(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest();\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction classNames() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args) {\n var classes = [];\n\n for (var i = 0; i < args.length; i++) {\n var className = args[i];\n if (!className) continue;\n\n var type = _typeof(className);\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n var _classes = Array.isArray(className) ? className : Object.entries(className).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n return !!value ? key : null;\n });\n\n classes = _classes.length ? classes.concat(_classes.filter(function (c) {\n return !!c;\n })) : classes;\n }\n }\n\n return classes.join(' ');\n }\n\n return undefined;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\nfunction _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar DomHandler = /*#__PURE__*/function () {\n function DomHandler() {\n _classCallCheck(this, DomHandler);\n }\n\n _createClass(DomHandler, null, [{\n key: \"innerWidth\",\n value: function innerWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"width\",\n value: function width(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getWindowScrollTop\",\n value: function getWindowScrollTop() {\n var doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n }, {\n key: \"getWindowScrollLeft\",\n value: function getWindowScrollLeft() {\n var doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n }, {\n key: \"getOuterWidth\",\n value: function getOuterWidth(el, margin) {\n if (el) {\n var width = el.offsetWidth;\n\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getOuterHeight\",\n value: function getOuterHeight(el, margin) {\n if (el) {\n var height = el.offsetHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getClientHeight\",\n value: function getClientHeight(el, margin) {\n if (el) {\n var height = el.clientHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n return {\n width: w,\n height: h\n };\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n if (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"index\",\n value: function index(element) {\n if (element) {\n var children = element.parentNode.childNodes;\n var num = 0;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n\n return -1;\n }\n }, {\n key: \"addMultipleClasses\",\n value: function addMultipleClasses(element, className) {\n if (element && className) {\n if (element.classList) {\n var styles = className.split(' ');\n\n for (var i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n } else {\n var _styles = className.split(' ');\n\n for (var _i = 0; _i < _styles.length; _i++) {\n element.className += ' ' + _styles[_i];\n }\n }\n }\n }\n }, {\n key: \"addClass\",\n value: function addClass(element, className) {\n if (element && className) {\n if (element.classList) element.classList.add(className);else element.className += ' ' + className;\n }\n }\n }, {\n key: \"removeClass\",\n value: function removeClass(element, className) {\n if (element && className) {\n if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }, {\n key: \"hasClass\",\n value: function hasClass(element, className) {\n if (element) {\n if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n }\n }, {\n key: \"find\",\n value: function find(element, selector) {\n return element ? Array.from(element.querySelectorAll(selector)) : [];\n }\n }, {\n key: \"findSingle\",\n value: function findSingle(element, selector) {\n if (element) {\n return element.querySelector(selector);\n }\n\n return null;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(el) {\n if (el) {\n var height = el.offsetHeight;\n var style = getComputedStyle(el);\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay(overlay, target, appendTo) {\n if (overlay && target) {\n if (appendTo === 'self') {\n this.relativePosition(overlay, target);\n } else {\n overlay.style.minWidth = DomHandler.getOuterWidth(target) + 'px';\n this.absolutePosition(overlay, target);\n }\n }\n }\n }, {\n key: \"absolutePosition\",\n value: function absolutePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var elementOuterHeight = elementDimensions.height;\n var elementOuterWidth = elementDimensions.width;\n var targetOuterHeight = target.offsetHeight;\n var targetOuterWidth = target.offsetWidth;\n var targetOffset = target.getBoundingClientRect();\n var windowScrollTop = this.getWindowScrollTop();\n var windowScrollLeft = this.getWindowScrollLeft();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n\n if (top < 0) {\n top = windowScrollTop;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n\n if (targetOffset.left + targetOuterWidth + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);else left = targetOffset.left + windowScrollLeft;\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"relativePosition\",\n value: function relativePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var targetHeight = target.offsetHeight;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetHeight;\n element.style.transformOrigin = 'top';\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"flipfitCollision\",\n value: function flipfitCollision(element, target) {\n var _this = this;\n\n var my = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left top';\n var at = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'left bottom';\n var callback = arguments.length > 4 ? arguments[4] : undefined;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var myArr = my.split(' ');\n var atArr = at.split(' ');\n\n var getPositionValue = function getPositionValue(arr, isOffset) {\n return isOffset ? +arr.substring(arr.search(/(\\+|-)/g)) || 0 : arr.substring(0, arr.search(/(\\+|-)/g)) || arr;\n };\n\n var position = {\n my: {\n x: getPositionValue(myArr[0]),\n y: getPositionValue(myArr[1] || myArr[0]),\n offsetX: getPositionValue(myArr[0], true),\n offsetY: getPositionValue(myArr[1] || myArr[0], true)\n },\n at: {\n x: getPositionValue(atArr[0]),\n y: getPositionValue(atArr[1] || atArr[0]),\n offsetX: getPositionValue(atArr[0], true),\n offsetY: getPositionValue(atArr[1] || atArr[0], true)\n }\n };\n var myOffset = {\n left: function left() {\n var totalOffset = position.my.offsetX + position.at.offsetX;\n return totalOffset + targetOffset.left + (position.my.x === 'left' ? 0 : -1 * (position.my.x === 'center' ? _this.getOuterWidth(element) / 2 : _this.getOuterWidth(element)));\n },\n top: function top() {\n var totalOffset = position.my.offsetY + position.at.offsetY;\n return totalOffset + targetOffset.top + (position.my.y === 'top' ? 0 : -1 * (position.my.y === 'center' ? _this.getOuterHeight(element) / 2 : _this.getOuterHeight(element)));\n }\n };\n var alignWithAt = {\n count: {\n x: 0,\n y: 0\n },\n left: function left() {\n var left = myOffset.left();\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = scrollLeft + 'px';\n this.count.x = 0;\n } else if (left < 0) {\n this.count.x++;\n position.my.x = 'left';\n position.at.x = 'right';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.right();\n }\n },\n right: function right() {\n var left = myOffset.left() + DomHandler.getOuterWidth(target);\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = viewport.width - DomHandler.getOuterWidth(element) + scrollLeft + 'px';\n this.count.x = 0;\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.count.x++;\n position.my.x = 'right';\n position.at.x = 'left';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.left();\n }\n },\n top: function top() {\n var top = myOffset.top();\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = scrollTop + 'px';\n this.count.y = 0;\n } else if (top < 0) {\n this.count.y++;\n position.my.y = 'top';\n position.at.y = 'bottom';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.bottom();\n }\n },\n bottom: function bottom() {\n var top = myOffset.top() + DomHandler.getOuterHeight(target);\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = viewport.height - DomHandler.getOuterHeight(element) + scrollTop + 'px';\n this.count.y = 0;\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.count.y++;\n position.my.y = 'bottom';\n position.at.y = 'top';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.top();\n }\n },\n center: function center(axis) {\n if (axis === 'y') {\n var top = myOffset.top() + DomHandler.getOuterHeight(target) / 2;\n element.style.top = top + DomHandler.getWindowScrollTop() + 'px';\n\n if (top < 0) {\n this.bottom();\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.top();\n }\n } else {\n var left = myOffset.left() + DomHandler.getOuterWidth(target) / 2;\n element.style.left = left + DomHandler.getWindowScrollLeft() + 'px';\n\n if (left < 0) {\n this.left();\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.right();\n }\n }\n }\n };\n alignWithAt[position.at.x]('x');\n alignWithAt[position.at.y]('y');\n\n if (this.isFunction(callback)) {\n callback(position);\n }\n }\n }, {\n key: \"findCollisionPosition\",\n value: function findCollisionPosition(position) {\n if (position) {\n var isAxisY = position === 'top' || position === 'bottom';\n var myXPosition = position === 'left' ? 'right' : 'left';\n var myYPosition = position === 'top' ? 'bottom' : 'top';\n\n if (isAxisY) {\n return {\n axis: 'y',\n my: \"center \".concat(myYPosition),\n at: \"center \".concat(position)\n };\n }\n\n return {\n axis: 'x',\n my: \"\".concat(myXPosition, \" center\"),\n at: \"\".concat(position, \" center\")\n };\n }\n }\n }, {\n key: \"getParents\",\n value: function getParents(element) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n }\n }, {\n key: \"getScrollableParents\",\n value: function getScrollableParents(element) {\n var scrollableParents = [];\n\n if (element) {\n var parents = this.getParents(element);\n var overflowRegex = /(auto|scroll)/;\n\n var overflowCheck = function overflowCheck(node) {\n var styleDeclaration = window['getComputedStyle'](node, null);\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n };\n\n var _iterator = _createForOfIteratorHelper$1(parents),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var parent = _step.value;\n var scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n var selectors = scrollSelectors.split(',');\n\n var _iterator2 = _createForOfIteratorHelper$1(selectors),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var selector = _step2.value;\n var el = this.findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return scrollableParents;\n }\n }, {\n key: \"getHiddenElementOuterHeight\",\n value: function getHiddenElementOuterHeight(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementHeight = element.offsetHeight;\n element.style.display = '';\n element.style.visibility = '';\n return elementHeight;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementOuterWidth\",\n value: function getHiddenElementOuterWidth(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementWidth = element.offsetWidth;\n element.style.display = '';\n element.style.visibility = '';\n return elementWidth;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementDimensions\",\n value: function getHiddenElementDimensions(element) {\n var dimensions = {};\n\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = '';\n element.style.visibility = '';\n }\n\n return dimensions;\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(element, duration) {\n if (element) {\n element.style.opacity = 0;\n var last = +new Date();\n var opacity = 0;\n\n var tick = function tick() {\n opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n window.requestAnimationFrame && requestAnimationFrame(tick) || setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(element, duration) {\n if (element) {\n var opacity = 1,\n interval = 50,\n gap = interval / duration;\n var fading = setInterval(function () {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity;\n }, interval);\n }\n }\n }, {\n key: \"getUserAgent\",\n value: function getUserAgent() {\n return navigator.userAgent;\n }\n }, {\n key: \"isIOS\",\n value: function isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n }, {\n key: \"isAndroid\",\n value: function isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n }, {\n key: \"isTouchDevice\",\n value: function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"appendChild\",\n value: function appendChild(element, target) {\n if (this.isElement(target)) target.appendChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.appendChild(element);else throw new Error('Cannot append ' + target + ' to ' + element);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(element, target) {\n if (this.isElement(target)) target.removeChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.removeChild(element);else throw new Error('Cannot remove ' + element + ' from ' + target);\n }\n }, {\n key: \"isElement\",\n value: function isElement(obj) {\n return (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === \"object\" ? obj instanceof HTMLElement : obj && _typeof(obj) === \"object\" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === \"string\";\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(container, item) {\n var borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n var borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n var paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n var paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n var containerRect = container.getBoundingClientRect();\n var itemRect = item.getBoundingClientRect();\n var offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n var scroll = container.scrollTop;\n var elementHeight = container.clientHeight;\n var itemHeight = this.getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n } else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch (error) {//ignore IE bug\n }\n }\n }\n }, {\n key: \"calculateScrollbarWidth\",\n value: function calculateScrollbarWidth(el) {\n if (el) {\n var style = getComputedStyle(el);\n return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (this.calculatedScrollbarWidth != null) return this.calculatedScrollbarWidth;\n var scrollDiv = document.createElement(\"div\");\n scrollDiv.className = \"p-scrollbar-measure\";\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarWidth;\n return scrollbarWidth;\n }\n }\n }, {\n key: \"getBrowser\",\n value: function getBrowser() {\n if (!this.browser) {\n var matched = this.resolveUserAgent();\n this.browser = {};\n\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n\n return this.browser;\n }\n }, {\n key: \"resolveUserAgent\",\n value: function resolveUserAgent() {\n var ua = navigator.userAgent.toLowerCase();\n var match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [];\n return {\n browser: match[1] || \"\",\n version: match[2] || \"0\"\n };\n }\n }, {\n key: \"isVisible\",\n value: function isVisible(element) {\n return element && element.offsetParent != null;\n }\n }, {\n key: \"getFocusableElements\",\n value: function getFocusableElements(element) {\n var focusableElements = DomHandler.find(element, \"button:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n [href][clientHeight][clientWidth]:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n input:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]), select:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n textarea:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]), [tabIndex]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n [contenteditable]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\");\n var visibleFocusableElements = [];\n\n var _iterator3 = _createForOfIteratorHelper$1(focusableElements),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var focusableElement = _step3.value;\n if (getComputedStyle(focusableElement).display !== \"none\" && getComputedStyle(focusableElement).visibility !== \"hidden\") visibleFocusableElements.push(focusableElement);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return visibleFocusableElements;\n }\n }, {\n key: \"getFirstFocusableElement\",\n value: function getFirstFocusableElement(element) {\n var focusableElements = DomHandler.getFocusableElements(element);\n return focusableElements.length > 0 ? focusableElements[0] : null;\n }\n }, {\n key: \"getLastFocusableElement\",\n value: function getLastFocusableElement(element) {\n var focusableElements = DomHandler.getFocusableElements(element);\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n }\n }, {\n key: \"getCursorOffset\",\n value: function getCursorOffset(el, prevText, nextText, currentText) {\n if (el) {\n var style = getComputedStyle(el);\n var ghostDiv = document.createElement('div');\n ghostDiv.style.position = 'absolute';\n ghostDiv.style.top = '0px';\n ghostDiv.style.left = '0px';\n ghostDiv.style.visibility = 'hidden';\n ghostDiv.style.pointerEvents = 'none';\n ghostDiv.style.overflow = style.overflow;\n ghostDiv.style.width = style.width;\n ghostDiv.style.height = style.height;\n ghostDiv.style.padding = style.padding;\n ghostDiv.style.border = style.border;\n ghostDiv.style.overflowWrap = style.overflowWrap;\n ghostDiv.style.whiteSpace = style.whiteSpace;\n ghostDiv.style.lineHeight = style.lineHeight;\n ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '
');\n var ghostSpan = document.createElement('span');\n ghostSpan.textContent = currentText;\n ghostDiv.appendChild(ghostSpan);\n var text = document.createTextNode(nextText);\n ghostDiv.appendChild(text);\n document.body.appendChild(ghostDiv);\n var offsetLeft = ghostSpan.offsetLeft,\n offsetTop = ghostSpan.offsetTop,\n clientHeight = ghostSpan.clientHeight;\n document.body.removeChild(ghostDiv);\n return {\n left: Math.abs(offsetLeft - el.scrollLeft),\n top: Math.abs(offsetTop - el.scrollTop) + clientHeight\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }]);\n\n return DomHandler;\n}();\n\nvar ConnectedOverlayScrollHandler = /*#__PURE__*/function () {\n function ConnectedOverlayScrollHandler(element) {\n var listener = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n\n _classCallCheck(this, ConnectedOverlayScrollHandler);\n\n this.element = element;\n this.listener = listener;\n }\n\n _createClass(ConnectedOverlayScrollHandler, [{\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n this.scrollableParents = DomHandler.getScrollableParents(this.element);\n\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].addEventListener('scroll', this.listener);\n }\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollableParents) {\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].removeEventListener('scroll', this.listener);\n }\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n }]);\n\n return ConnectedOverlayScrollHandler;\n}();\n\nfunction EventBus () {\n var allHandlers = new Map();\n return {\n on: function on(type, handler) {\n var handlers = allHandlers.get(type);\n if (!handlers) handlers = [handler];else handlers.push(handler);\n allHandlers.set(type, handlers);\n },\n off: function off(type, handler) {\n var handlers = allHandlers.get(type);\n handlers && handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n },\n emit: function emit(type, evt) {\n var handlers = allHandlers.get(type);\n handlers && handlers.slice().forEach(function (handler) {\n return handler(evt);\n });\n }\n };\n}\n\nvar ObjectUtils = /*#__PURE__*/function () {\n function ObjectUtils() {\n _classCallCheck(this, ObjectUtils);\n }\n\n _createClass(ObjectUtils, null, [{\n key: \"equals\",\n value: function equals(obj1, obj2, field) {\n if (field && obj1 && _typeof(obj1) === 'object' && obj2 && _typeof(obj2) === 'object') return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);else return this.deepEquals(obj1, obj2);\n }\n }, {\n key: \"deepEquals\",\n value: function deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!this.deepEquals(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA !== arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return a.getTime() === b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n /*eslint no-self-compare: \"off\"*/\n\n\n return a !== a && b !== b;\n }\n }, {\n key: \"resolveFieldData\",\n value: function resolveFieldData(data, field) {\n if (data && Object.keys(data).length && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n var fields = field.split('.');\n var value = data;\n\n for (var i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n } else {\n return null;\n }\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"findDiffKeys\",\n value: function findDiffKeys(obj1, obj2) {\n if (!obj1 || !obj2) {\n return {};\n }\n\n return Object.keys(obj1).filter(function (key) {\n return !obj2.hasOwnProperty(key);\n }).reduce(function (result, current) {\n result[current] = obj1[current];\n return result;\n }, {});\n }\n }, {\n key: \"reorderArray\",\n value: function reorderArray(value, from, to) {\n var target;\n\n if (value && from !== to) {\n if (to >= value.length) {\n target = to - value.length;\n\n while (target-- + 1) {\n value.push(undefined);\n }\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n }, {\n key: \"findIndexInList\",\n value: function findIndexInList(value, list, dataKey) {\n var _this = this;\n\n if (list) {\n return dataKey ? list.findIndex(function (item) {\n return _this.equals(item, value, dataKey);\n }) : list.findIndex(function (item) {\n return item === value;\n });\n }\n\n return -1;\n }\n }, {\n key: \"getJSXElement\",\n value: function getJSXElement(obj) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n }\n }, {\n key: \"removeAccents\",\n value: function removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str.replace(/[\\xC0-\\xC5]/g, \"A\").replace(/[\\xC6]/g, \"AE\").replace(/[\\xC7]/g, \"C\").replace(/[\\xC8-\\xCB]/g, \"E\").replace(/[\\xCC-\\xCF]/g, \"I\").replace(/[\\xD0]/g, \"D\").replace(/[\\xD1]/g, \"N\").replace(/[\\xD2-\\xD6\\xD8]/g, \"O\").replace(/[\\xD9-\\xDC]/g, \"U\").replace(/[\\xDD]/g, \"Y\").replace(/[\\xDE]/g, \"P\").replace(/[\\xE0-\\xE5]/g, \"a\").replace(/[\\xE6]/g, \"ae\").replace(/[\\xE7]/g, \"c\").replace(/[\\xE8-\\xEB]/g, \"e\").replace(/[\\xEC-\\xEF]/g, \"i\").replace(/[\\xF1]/g, \"n\").replace(/[\\xF2-\\xF6\\xF8]/g, \"o\").replace(/[\\xF9-\\xFC]/g, \"u\").replace(/[\\xFE]/g, \"p\").replace(/[\\xFD\\xFF]/g, \"y\");\n }\n\n return str;\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty(value) {\n return value === null || value === undefined || value === '' || Array.isArray(value) && value.length === 0 || _typeof(value) === 'object' && Object.keys(value).length === 0;\n }\n }, {\n key: \"isNotEmpty\",\n value: function isNotEmpty(value) {\n return !this.isEmpty(value);\n }\n }]);\n\n return ObjectUtils;\n}();\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar FilterUtils = /*#__PURE__*/function () {\n function FilterUtils() {\n _classCallCheck(this, FilterUtils);\n }\n\n _createClass(FilterUtils, null, [{\n key: \"filter\",\n value: function filter(value, fields, filterValue, filterMatchMode, filterLocale) {\n var filteredItems = [];\n var filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(filterLocale);\n\n if (value) {\n var _iterator = _createForOfIteratorHelper(value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n var _iterator2 = _createForOfIteratorHelper(fields),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var field = _step2.value;\n var fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(item, field))).toLocaleLowerCase(filterLocale);\n\n if (FilterUtils[filterMatchMode](fieldValue, filterText, filterLocale)) {\n filteredItems.push(item);\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return filteredItems;\n }\n }, {\n key: \"startsWith\",\n value: function startsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.slice(0, filterValue.length) === filterValue;\n }\n }, {\n key: \"contains\",\n value: function contains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue) !== -1;\n }\n }, {\n key: \"endsWith\",\n value: function endsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue, stringValue.length - filterValue.length) !== -1;\n }\n }, {\n key: \"equals\",\n value: function equals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() === filter.getTime();else return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) === ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n }\n }, {\n key: \"notEquals\",\n value: function notEquals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return false;\n }\n\n if (value === undefined || value === null) {\n return true;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() !== filter.getTime();else return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) !== ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n }\n }, {\n key: \"in\",\n value: function _in(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.length === 0) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n for (var i = 0; i < filter.length; i++) {\n if (ObjectUtils.equals(value, filter[i])) {\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"lt\",\n value: function lt(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim && filter.trim().length === 0) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() < filter.getTime();else return value < parseFloat(filter);\n }\n }, {\n key: \"lte\",\n value: function lte(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim && filter.trim().length === 0) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() <= filter.getTime();else return value <= parseFloat(filter);\n }\n }, {\n key: \"gt\",\n value: function gt(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim && filter.trim().length === 0) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() > filter.getTime();else return value > parseFloat(filter);\n }\n }, {\n key: \"gte\",\n value: function gte(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim && filter.trim().length === 0) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() >= filter.getTime();else return value >= parseFloat(filter);\n }\n }]);\n\n return FilterUtils;\n}();\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nfunction mask(el, options) {\n var defaultOptions = {\n mask: null,\n slotChar: '_',\n autoClear: true,\n unmask: false,\n readOnly: false,\n onComplete: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n };\n options = _objectSpread$2(_objectSpread$2({}, defaultOptions), options);\n var tests, partialPosition, len, firstNonMaskPos, defs, androidChrome, lastRequiredNonMaskPos, oldVal, focusText, caretTimeoutId, buffer, defaultBuffer;\n\n var caret = function caret(first, last) {\n var range, begin, end;\n\n if (!el.offsetParent || el !== document.activeElement) {\n return;\n }\n\n if (typeof first === 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n\n if (el.setSelectionRange) {\n el.setSelectionRange(begin, end);\n } else if (el['createTextRange']) {\n range = el['createTextRange']();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', begin);\n range.select();\n }\n } else {\n if (el.setSelectionRange) {\n begin = el.selectionStart;\n end = el.selectionEnd;\n } else if (document['selection'] && document['selection'].createRange) {\n range = document['selection'].createRange();\n begin = 0 - range.duplicate().moveStart('character', -100000);\n end = begin + range.text.length;\n }\n\n return {\n begin: begin,\n end: end\n };\n }\n };\n\n var isCompleted = function isCompleted() {\n for (var i = firstNonMaskPos; i <= lastRequiredNonMaskPos; i++) {\n if (tests[i] && buffer[i] === getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n };\n\n var getPlaceholder = function getPlaceholder(i) {\n if (i < options.slotChar.length) {\n return options.slotChar.charAt(i);\n }\n\n return options.slotChar.charAt(0);\n };\n\n var getValue = function getValue() {\n return options.unmask ? getUnmaskedValue() : el && el.value;\n };\n\n var seekNext = function seekNext(pos) {\n while (++pos < len && !tests[pos]) {\n }\n\n return pos;\n };\n\n var seekPrev = function seekPrev(pos) {\n while (--pos >= 0 && !tests[pos]) {\n }\n\n return pos;\n };\n\n var shiftL = function shiftL(begin, end) {\n var i, j;\n\n if (begin < 0) {\n return;\n }\n\n for (i = begin, j = seekNext(end); i < len; i++) {\n if (tests[i]) {\n if (j < len && tests[i].test(buffer[j])) {\n buffer[i] = buffer[j];\n buffer[j] = getPlaceholder(j);\n } else {\n break;\n }\n\n j = seekNext(j);\n }\n }\n\n writeBuffer();\n caret(Math.max(firstNonMaskPos, begin));\n };\n\n var shiftR = function shiftR(pos) {\n var i, c, j, t;\n\n for (i = pos, c = getPlaceholder(pos); i < len; i++) {\n if (tests[i]) {\n j = seekNext(i);\n t = buffer[i];\n buffer[i] = c;\n\n if (j < len && tests[j].test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n };\n\n var handleAndroidInput = function handleAndroidInput(e) {\n var curVal = el.value;\n var pos = caret();\n\n if (oldVal && oldVal.length && oldVal.length > curVal.length) {\n // a deletion or backspace happened\n checkVal(true);\n\n while (pos.begin > 0 && !tests[pos.begin - 1]) {\n pos.begin--;\n }\n\n if (pos.begin === 0) {\n while (pos.begin < firstNonMaskPos && !tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n caret(pos.begin, pos.begin);\n } else {\n checkVal(true);\n\n while (pos.begin < len && !tests[pos.begin]) {\n pos.begin++;\n }\n\n caret(pos.begin, pos.begin);\n }\n\n if (options.onComplete && isCompleted()) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n\n var onBlur = function onBlur(e) {\n checkVal();\n updateModel(e);\n\n if (options.onBlur) {\n options.onBlur(e);\n }\n\n if (el.value !== focusText) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n el.dispatchEvent(event);\n }\n };\n\n var onKeyDown = function onKeyDown(e) {\n if (options.readOnly) {\n return;\n }\n\n var k = e.which || e.keyCode,\n pos,\n begin,\n end;\n var iPhone = /iphone/i.test(DomHandler.getUserAgent());\n oldVal = el.value; //backspace, delete, and escape get special treatment\n\n if (k === 8 || k === 46 || iPhone && k === 127) {\n pos = caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? seekPrev(begin) : end = seekNext(begin - 1);\n end = k === 46 ? seekNext(end) : end;\n }\n\n clearBuffer(begin, end);\n shiftL(begin, end - 1);\n updateModel(e);\n e.preventDefault();\n } else if (k === 13) {\n // enter\n onBlur(e);\n updateModel(e);\n } else if (k === 27) {\n // escape\n el.value = focusText;\n caret(0, checkVal());\n updateModel(e);\n e.preventDefault();\n }\n };\n\n var onKeyPress = function onKeyPress(e) {\n if (options.readOnly) {\n return;\n }\n\n var k = e.which || e.keyCode,\n pos = caret(),\n p,\n c,\n next,\n completed;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {\n //Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n clearBuffer(pos.begin, pos.end);\n shiftL(pos.begin, pos.end - 1);\n }\n\n p = seekNext(pos.begin - 1);\n\n if (p < len) {\n c = String.fromCharCode(k);\n\n if (tests[p].test(c)) {\n shiftR(p);\n buffer[p] = c;\n writeBuffer();\n next = seekNext(p);\n\n if (/android/i.test(DomHandler.getUserAgent())) {\n //Path for CSP Violation on FireFox OS 1.1\n var proxy = function proxy() {\n caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n caret(next);\n }\n\n if (pos.begin <= lastRequiredNonMaskPos) {\n completed = isCompleted();\n }\n }\n }\n\n e.preventDefault();\n }\n\n updateModel(e);\n\n if (options.onComplete && completed) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n\n var clearBuffer = function clearBuffer(start, end) {\n var i;\n\n for (i = start; i < end && i < len; i++) {\n if (tests[i]) {\n buffer[i] = getPlaceholder(i);\n }\n }\n };\n\n var writeBuffer = function writeBuffer() {\n el.value = buffer.join('');\n };\n\n var checkVal = function checkVal(allow) {\n //try to place characters where they belong\n var test = el.value,\n lastMatch = -1,\n i,\n c,\n pos;\n\n for (i = 0, pos = 0; i < len; i++) {\n if (tests[i]) {\n buffer[i] = getPlaceholder(i);\n\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n\n if (tests[i].test(c)) {\n buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n\n if (pos > test.length) {\n clearBuffer(i + 1, len);\n break;\n }\n } else {\n if (buffer[i] === test.charAt(pos)) {\n pos++;\n }\n\n if (i < partialPosition) {\n lastMatch = i;\n }\n }\n }\n\n if (allow) {\n writeBuffer();\n } else if (lastMatch + 1 < partialPosition) {\n if (options.autoClear || buffer.join('') === defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (el.value) el.value = '';\n clearBuffer(0, len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n writeBuffer();\n }\n } else {\n writeBuffer();\n el.value = el.value.substring(0, lastMatch + 1);\n }\n\n return partialPosition ? i : firstNonMaskPos;\n };\n\n var onFocus = function onFocus(e) {\n if (options.readOnly) {\n return;\n }\n\n clearTimeout(caretTimeoutId);\n var pos;\n focusText = el.value;\n pos = checkVal();\n caretTimeoutId = setTimeout(function () {\n if (el !== document.activeElement) {\n return;\n }\n\n writeBuffer();\n\n if (pos === options.mask.replace(\"?\", \"\").length) {\n caret(0, pos);\n } else {\n caret(pos);\n }\n }, 10);\n\n if (options.onFocus) {\n options.onFocus(e);\n }\n };\n\n var onInput = function onInput(event) {\n if (androidChrome) handleAndroidInput(event);else handleInputChange(event);\n };\n\n var handleInputChange = function handleInputChange(e) {\n if (options.readOnly) {\n return;\n }\n\n var pos = checkVal(true);\n caret(pos);\n updateModel(e);\n\n if (options.onComplete && isCompleted()) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n\n var getUnmaskedValue = function getUnmaskedValue() {\n var unmaskedBuffer = [];\n\n for (var i = 0; i < buffer.length; i++) {\n var c = buffer[i];\n\n if (tests[i] && c !== getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n\n return unmaskedBuffer.join('');\n };\n\n var updateModel = function updateModel(e) {\n if (options.onChange) {\n var val = getValue().replace(options.slotChar, '');\n options.onChange({\n originalEvent: e,\n value: defaultBuffer !== val ? val : ''\n });\n }\n };\n\n var bindEvents = function bindEvents() {\n el.addEventListener('focus', onFocus);\n el.addEventListener('blur', onBlur);\n el.addEventListener('keydown', onKeyDown);\n el.addEventListener('keypress', onKeyPress);\n el.addEventListener('input', onInput);\n el.addEventListener('paste', handleInputChange);\n };\n\n var unbindEvents = function unbindEvents() {\n el.removeEventListener('focus', onFocus);\n el.removeEventListener('blur', onBlur);\n el.removeEventListener('keydown', onKeyDown);\n el.removeEventListener('keypress', onKeyPress);\n el.removeEventListener('input', onInput);\n el.removeEventListener('paste', handleInputChange);\n };\n\n var init = function init() {\n tests = [];\n partialPosition = options.mask.length;\n len = options.mask.length;\n firstNonMaskPos = null;\n defs = {\n '9': '[0-9]',\n 'a': '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n };\n var ua = DomHandler.getUserAgent();\n androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n var maskTokens = options.mask.split('');\n\n for (var i = 0; i < maskTokens.length; i++) {\n var c = maskTokens[i];\n\n if (c === '?') {\n len--;\n partialPosition = i;\n } else if (defs[c]) {\n tests.push(new RegExp(defs[c]));\n\n if (firstNonMaskPos === null) {\n firstNonMaskPos = tests.length - 1;\n }\n\n if (i < partialPosition) {\n lastRequiredNonMaskPos = tests.length - 1;\n }\n } else {\n tests.push(null);\n }\n }\n\n buffer = [];\n\n for (var _i = 0; _i < maskTokens.length; _i++) {\n var _c = maskTokens[_i];\n\n if (_c !== '?') {\n if (defs[_c]) buffer.push(getPlaceholder(_i));else buffer.push(_c);\n }\n }\n\n defaultBuffer = buffer.join('');\n };\n\n if (el && options.mask) {\n init();\n bindEvents();\n }\n\n return {\n init: init,\n bindEvents: bindEvents,\n unbindEvents: unbindEvents,\n updateModel: updateModel,\n getValue: getValue\n };\n}\n\nvar lastId = 0;\nfunction UniqueComponentId () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pr_id_';\n lastId++;\n return \"\".concat(prefix).concat(lastId);\n}\n\nfunction handler() {\n var zIndexes = [];\n\n var generateZIndex = function generateZIndex(key, baseZIndex) {\n baseZIndex = baseZIndex || getBaseZIndex(key);\n var lastZIndex = getLastZIndex(key, baseZIndex);\n var newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n zIndexes.push({\n key: key,\n value: newZIndex\n });\n return newZIndex;\n };\n\n var revertZIndex = function revertZIndex(zIndex) {\n zIndexes = zIndexes.filter(function (obj) {\n return obj.value !== zIndex;\n });\n };\n\n var getBaseZIndex = function getBaseZIndex(key) {\n return PrimeReact.zIndex[key] || 999;\n };\n\n var getCurrentZIndex = function getCurrentZIndex(key) {\n return getLastZIndex(key).value;\n };\n\n var getLastZIndex = function getLastZIndex(key) {\n var baseZIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return (zIndexes || []).reverse().find(function (obj) {\n return PrimeReact.autoZIndex ? true : obj.key === key;\n }) || {\n key: key,\n value: baseZIndex\n };\n };\n\n return {\n get: function get(el) {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n },\n set: function set(key, el, baseZIndex) {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, baseZIndex));\n }\n },\n clear: function clear(el) {\n if (el) {\n revertZIndex(ZIndexUtils.get(el));\n el.style.zIndex = '';\n }\n },\n getBase: function getBase(key) {\n return getBaseZIndex(key);\n },\n getCurrent: function getCurrent(key) {\n return getCurrentZIndex(key);\n }\n };\n}\n\nvar ZIndexUtils = handler();\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Ripple = /*#__PURE__*/function (_Component) {\n _inherits(Ripple, _Component);\n\n var _super = _createSuper$3(Ripple);\n\n function Ripple(props) {\n var _this;\n\n _classCallCheck(this, Ripple);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Ripple, [{\n key: \"getTarget\",\n value: function getTarget() {\n return this.ink && this.ink.parentElement;\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (this.target) {\n this.target.addEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (this.target) {\n this.target.removeEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (!this.ink || getComputedStyle(this.ink, null).display === 'none') {\n return;\n }\n\n DomHandler.removeClass(this.ink, 'p-ink-active');\n\n if (!DomHandler.getHeight(this.ink) && !DomHandler.getWidth(this.ink)) {\n var d = Math.max(DomHandler.getOuterWidth(this.target), DomHandler.getOuterHeight(this.target));\n this.ink.style.height = d + 'px';\n this.ink.style.width = d + 'px';\n }\n\n var offset = DomHandler.getOffset(this.target);\n var x = event.pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(this.ink) / 2;\n var y = event.pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(this.ink) / 2;\n this.ink.style.top = y + 'px';\n this.ink.style.left = x + 'px';\n DomHandler.addClass(this.ink, 'p-ink-active');\n }\n }, {\n key: \"onAnimationEnd\",\n value: function onAnimationEnd(event) {\n DomHandler.removeClass(event.currentTarget, 'p-ink-active');\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.ink) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.ink && !this.target) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.ink) {\n this.target = null;\n this.unbindEvents();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return PrimeReact.ripple && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this2.ink = el;\n },\n className: \"p-ink\",\n onAnimationEnd: this.onAnimationEnd\n });\n }\n }]);\n\n return Ripple;\n}(Component);\n\nvar KeyFilter = /*#__PURE__*/function () {\n function KeyFilter() {\n _classCallCheck(this, KeyFilter);\n }\n\n _createClass(KeyFilter, null, [{\n key: \"isNavKeyPress\",\n value:\n /* eslint-disable */\n\n /* eslint-enable */\n function isNavKeyPress(e) {\n var k = e.keyCode;\n k = DomHandler.getBrowser().safari ? KeyFilter.SAFARI_KEYS[k] || k : k;\n return k >= 33 && k <= 40 || k === KeyFilter.KEYS.RETURN || k === KeyFilter.KEYS.TAB || k === KeyFilter.KEYS.ESC;\n }\n }, {\n key: \"isSpecialKey\",\n value: function isSpecialKey(e) {\n var k = e.keyCode;\n return k === 9 || k === 13 || k === 27 || k === 16 || k === 17 || k >= 18 && k <= 20 || DomHandler.getBrowser().opera && !e.shiftKey && (k === 8 || k >= 33 && k <= 35 || k >= 36 && k <= 39 || k >= 44 && k <= 45);\n }\n }, {\n key: \"getKey\",\n value: function getKey(e) {\n var k = e.keyCode || e.charCode;\n return DomHandler.getBrowser().safari ? KeyFilter.SAFARI_KEYS[k] || k : k;\n }\n }, {\n key: \"getCharCode\",\n value: function getCharCode(e) {\n return e.charCode || e.keyCode || e.which;\n }\n }, {\n key: \"onKeyPress\",\n value: function onKeyPress(e, keyfilter, validateOnly) {\n if (validateOnly) {\n return;\n }\n\n var regex = KeyFilter.DEFAULT_MASKS[keyfilter] ? KeyFilter.DEFAULT_MASKS[keyfilter] : keyfilter;\n var browser = DomHandler.getBrowser();\n\n if (e.ctrlKey || e.altKey) {\n return;\n }\n\n var k = this.getKey(e);\n\n if (browser.mozilla && (this.isNavKeyPress(e) || k === KeyFilter.KEYS.BACKSPACE || k === KeyFilter.KEYS.DELETE && e.charCode === 0)) {\n return;\n }\n\n var c = this.getCharCode(e);\n var cc = String.fromCharCode(c);\n\n if (browser.mozilla && (this.isSpecialKey(e) || !cc)) {\n return;\n }\n\n if (!regex.test(cc)) {\n e.preventDefault();\n }\n }\n }, {\n key: \"validate\",\n value: function validate(e, keyfilter) {\n var value = e.target.value,\n validatePattern = true;\n\n if (value && !keyfilter.test(value)) {\n validatePattern = false;\n }\n\n return validatePattern;\n }\n }]);\n\n return KeyFilter;\n}();\n\n_defineProperty(KeyFilter, \"DEFAULT_MASKS\", {\n pint: /[\\d]/,\n int: /[\\d\\-]/,\n pnum: /[\\d\\.]/,\n money: /[\\d\\.\\s,]/,\n num: /[\\d\\-\\.]/,\n hex: /[0-9a-f]/i,\n email: /[a-z0-9_\\.\\-@]/i,\n alpha: /[a-z_]/i,\n alphanum: /[a-z0-9_]/i\n});\n\n_defineProperty(KeyFilter, \"KEYS\", {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n BACKSPACE: 8,\n DELETE: 46\n});\n\n_defineProperty(KeyFilter, \"SAFARI_KEYS\", {\n 63234: 37,\n // left\n 63235: 39,\n // right\n 63232: 38,\n // up\n 63233: 40,\n // down\n 63276: 33,\n // page up\n 63277: 34,\n // page down\n 63272: 46,\n // delete\n 63273: 36,\n // home\n 63275: 35 // end\n\n});\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Portal = /*#__PURE__*/function (_Component) {\n _inherits(Portal, _Component);\n\n var _super = _createSuper$2(Portal);\n\n function Portal(props) {\n var _this;\n\n _classCallCheck(this, Portal);\n\n _this = _super.call(this, props);\n _this.state = {\n mounted: props.visible\n };\n return _this;\n }\n\n _createClass(Portal, [{\n key: \"hasDOM\",\n value: function hasDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.hasDOM() && !this.state.mounted) {\n this.setState({\n mounted: true\n }, this.props.onMounted);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.onUnmounted && this.props.onUnmounted();\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.props.element && this.state.mounted) {\n var appendTo = this.props.appendTo || PrimeReact.appendTo || document.body;\n return appendTo === 'self' ? this.props.element : /*#__PURE__*/ReactDOM.createPortal(this.props.element, appendTo);\n }\n\n return null;\n }\n }]);\n\n return Portal;\n}(Component);\n\n_defineProperty(Portal, \"defaultProps\", {\n element: null,\n appendTo: null,\n visible: false,\n onMounted: null,\n onUnmounted: null\n});\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nfunction tip(props) {\n var appendTo = props.appendTo || document.body;\n var tooltipWrapper = document.createDocumentFragment();\n DomHandler.appendChild(tooltipWrapper, appendTo);\n props = _objectSpread$1(_objectSpread$1({}, props), props.options);\n var tooltipEl = /*#__PURE__*/React.createElement(Tooltip, props);\n ReactDOM.render(tooltipEl, tooltipWrapper);\n\n var updateTooltip = function updateTooltip(newProps) {\n props = _objectSpread$1(_objectSpread$1({}, props), newProps);\n ReactDOM.render( /*#__PURE__*/React.cloneElement(tooltipEl, props), tooltipWrapper);\n };\n\n return {\n destroy: function destroy() {\n ReactDOM.unmountComponentAtNode(tooltipWrapper);\n },\n updateContent: function updateContent(newContent) {\n console.warn(\"The 'updateContent' method has been deprecated on Tooltip. Use update(newProps) method.\");\n updateTooltip({\n content: newContent\n });\n },\n update: function update(newProps) {\n updateTooltip(newProps);\n }\n };\n}\nvar Tooltip = /*#__PURE__*/function (_Component) {\n _inherits(Tooltip, _Component);\n\n var _super = _createSuper$1(Tooltip);\n\n function Tooltip(props) {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false,\n position: _this.props.position\n };\n _this.show = _this.show.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n _this.onMouseEnter = _this.onMouseEnter.bind(_assertThisInitialized(_this));\n _this.onMouseLeave = _this.onMouseLeave.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"isTargetContentEmpty\",\n value: function isTargetContentEmpty(target) {\n return !(this.props.content || this.getTargetOption(target, 'tooltip'));\n }\n }, {\n key: \"isContentEmpty\",\n value: function isContentEmpty(target) {\n return !(this.props.content || this.getTargetOption(target, 'tooltip') || this.props.children);\n }\n }, {\n key: \"isMouseTrack\",\n value: function isMouseTrack(target) {\n return this.getTargetOption(target, 'mousetrack') || this.props.mouseTrack;\n }\n }, {\n key: \"isDisabled\",\n value: function isDisabled(target) {\n return this.getTargetOption(target, 'disabled') === 'true' || this.hasTargetOption(target, 'disabled') || this.props.disabled;\n }\n }, {\n key: \"isAutoHide\",\n value: function isAutoHide() {\n return this.getTargetOption(this.currentTarget, 'autohide') || this.props.autoHide;\n }\n }, {\n key: \"getTargetOption\",\n value: function getTargetOption(target, option) {\n if (this.hasTargetOption(target, \"data-pr-\".concat(option))) {\n return target.getAttribute(\"data-pr-\".concat(option));\n }\n\n return null;\n }\n }, {\n key: \"hasTargetOption\",\n value: function hasTargetOption(target, option) {\n return target && target.hasAttribute(option);\n }\n }, {\n key: \"getEvents\",\n value: function getEvents(target) {\n var showEvent = this.getTargetOption(target, 'showevent') || this.props.showEvent;\n var hideEvent = this.getTargetOption(target, 'hideevent') || this.props.hideEvent;\n\n if (this.isMouseTrack(target)) {\n showEvent = 'mousemove';\n hideEvent = 'mouseleave';\n } else {\n var event = this.getTargetOption(target, 'event') || this.props.event;\n\n if (event === 'focus') {\n showEvent = 'focus';\n hideEvent = 'blur';\n }\n }\n\n return {\n showEvent: showEvent,\n hideEvent: hideEvent\n };\n }\n }, {\n key: \"getPosition\",\n value: function getPosition(target) {\n return this.getTargetOption(target, 'position') || this.state.position;\n }\n }, {\n key: \"getMouseTrackPosition\",\n value: function getMouseTrackPosition(target) {\n var top = this.getTargetOption(target, 'mousetracktop') || this.props.mouseTrackTop;\n var left = this.getTargetOption(target, 'mousetrackleft') || this.props.mouseTrackLeft;\n return {\n top: top,\n left: left\n };\n }\n }, {\n key: \"updateText\",\n value: function updateText(target, callback) {\n if (this.tooltipTextEl) {\n var content = this.getTargetOption(target, 'tooltip') || this.props.content;\n\n if (content) {\n this.tooltipTextEl.innerHTML = ''; // remove children\n\n this.tooltipTextEl.appendChild(document.createTextNode(content));\n callback();\n } else if (this.props.children) {\n callback();\n }\n }\n }\n }, {\n key: \"show\",\n value: function show(e) {\n var _this2 = this;\n\n this.currentTarget = e.currentTarget;\n\n if (this.isContentEmpty(this.currentTarget) || this.isDisabled(this.currentTarget)) {\n return;\n }\n\n var updateTooltipState = function updateTooltipState() {\n _this2.updateText(_this2.currentTarget, function () {\n if (_this2.props.autoZIndex && !ZIndexUtils.get(_this2.containerEl)) {\n ZIndexUtils.set('tooltip', _this2.containerEl, _this2.props.baseZIndex);\n }\n\n _this2.containerEl.style.left = '';\n _this2.containerEl.style.top = '';\n\n if (_this2.isMouseTrack(_this2.currentTarget) && !_this2.containerSize) {\n _this2.containerSize = {\n width: DomHandler.getOuterWidth(_this2.containerEl),\n height: DomHandler.getOuterHeight(_this2.containerEl)\n };\n }\n\n _this2.align(_this2.currentTarget, {\n x: e.pageX,\n y: e.pageY\n });\n });\n };\n\n if (this.state.visible) {\n this.applyDelay('updateDelay', updateTooltipState);\n } else {\n this.sendCallback(this.props.onBeforeShow, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('showDelay', function () {\n _this2.setState({\n visible: true,\n position: _this2.getPosition(_this2.currentTarget)\n }, function () {\n updateTooltipState();\n\n _this2.sendCallback(_this2.props.onShow, {\n originalEvent: e,\n target: _this2.currentTarget\n });\n });\n\n _this2.bindDocumentResizeListener();\n\n _this2.bindScrollListener();\n\n DomHandler.addClass(_this2.currentTarget, _this2.getTargetOption(_this2.currentTarget, 'classname'));\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(e) {\n var _this3 = this;\n\n this.clearTimeouts();\n\n if (this.state.visible) {\n DomHandler.removeClass(this.currentTarget, this.getTargetOption(this.currentTarget, 'classname'));\n this.sendCallback(this.props.onBeforeHide, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('hideDelay', function () {\n ZIndexUtils.clear(_this3.containerEl);\n DomHandler.removeClass(_this3.containerEl, 'p-tooltip-active');\n\n if (!_this3.isAutoHide() && _this3.allowHide === false) {\n return;\n }\n\n _this3.setState({\n visible: false,\n position: _this3.props.position\n }, function () {\n if (_this3.tooltipTextEl) {\n ReactDOM.unmountComponentAtNode(_this3.tooltipTextEl);\n }\n\n _this3.unbindDocumentResizeListener();\n\n _this3.unbindScrollListener();\n\n _this3.currentTarget = null;\n _this3.scrollHandler = null;\n _this3.containerSize = null;\n _this3.allowHide = true;\n\n _this3.sendCallback(_this3.props.onHide, {\n originalEvent: e,\n target: _this3.currentTarget\n });\n });\n });\n }\n }\n }, {\n key: \"align\",\n value: function align(target, coordinate) {\n var _this4 = this;\n\n var left = 0,\n top = 0;\n\n if (this.isMouseTrack(target) && coordinate) {\n var containerSize = {\n width: DomHandler.getOuterWidth(this.containerEl),\n height: DomHandler.getOuterHeight(this.containerEl)\n };\n left = coordinate.x;\n top = coordinate.y;\n\n var _this$getMouseTrackPo = this.getMouseTrackPosition(target),\n mouseTrackTop = _this$getMouseTrackPo.top,\n mouseTrackLeft = _this$getMouseTrackPo.left;\n\n switch (this.state.position) {\n case 'left':\n left -= containerSize.width + mouseTrackLeft;\n top -= containerSize.height / 2 - mouseTrackTop;\n break;\n\n case 'right':\n left += mouseTrackLeft;\n top -= containerSize.height / 2 - mouseTrackTop;\n break;\n\n case 'top':\n left -= containerSize.width / 2 - mouseTrackLeft;\n top -= containerSize.height + mouseTrackTop;\n break;\n\n case 'bottom':\n left -= containerSize.width / 2 - mouseTrackLeft;\n top += mouseTrackTop;\n break;\n }\n\n if (left <= 0 || this.containerSize.width > containerSize.width) {\n this.containerEl.style.left = '0px';\n this.containerEl.style.right = window.innerWidth - containerSize.width - left + 'px';\n } else {\n this.containerEl.style.right = '';\n this.containerEl.style.left = left + 'px';\n }\n\n this.containerEl.style.top = top + 'px';\n DomHandler.addClass(this.containerEl, 'p-tooltip-active');\n } else {\n var pos = DomHandler.findCollisionPosition(this.state.position);\n var my = this.getTargetOption(target, 'my') || this.props.my || pos.my;\n var at = this.getTargetOption(target, 'at') || this.props.at || pos.at;\n this.containerEl.style.padding = '0px';\n DomHandler.flipfitCollision(this.containerEl, target, my, at, function (currentPosition) {\n var _currentPosition$at = currentPosition.at,\n atX = _currentPosition$at.x,\n atY = _currentPosition$at.y;\n var myX = currentPosition.my.x;\n var position = _this4.props.at ? atX !== 'center' && atX !== myX ? atX : atY : currentPosition.at[\"\".concat(pos.axis)];\n _this4.containerEl.style.padding = '';\n\n _this4.setState({\n position: position\n }, function () {\n _this4.updateContainerPosition();\n\n DomHandler.addClass(_this4.containerEl, 'p-tooltip-active');\n });\n });\n }\n }\n }, {\n key: \"updateContainerPosition\",\n value: function updateContainerPosition() {\n if (this.containerEl) {\n var style = getComputedStyle(this.containerEl);\n if (this.state.position === 'left') this.containerEl.style.left = parseFloat(style.left) - parseFloat(style.paddingLeft) * 2 + 'px';else if (this.state.position === 'top') this.containerEl.style.top = parseFloat(style.top) - parseFloat(style.paddingTop) * 2 + 'px';\n }\n }\n }, {\n key: \"onMouseEnter\",\n value: function onMouseEnter() {\n if (!this.isAutoHide()) {\n this.allowHide = false;\n }\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(e) {\n if (!this.isAutoHide()) {\n this.allowHide = true;\n this.hide(e);\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n var _this5 = this;\n\n this.documentResizeListener = function (e) {\n if (!DomHandler.isAndroid()) {\n _this5.hide(e);\n }\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this6 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.currentTarget, function (e) {\n if (_this6.state.visible) {\n _this6.hide(e);\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindTargetEvent\",\n value: function bindTargetEvent(target) {\n if (target) {\n var _this$getEvents = this.getEvents(target),\n showEvent = _this$getEvents.showEvent,\n hideEvent = _this$getEvents.hideEvent;\n\n target.addEventListener(showEvent, this.show);\n target.addEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"unbindTargetEvent\",\n value: function unbindTargetEvent(target) {\n if (target) {\n var _this$getEvents2 = this.getEvents(target),\n showEvent = _this$getEvents2.showEvent,\n hideEvent = _this$getEvents2.hideEvent;\n\n target.removeEventListener(showEvent, this.show);\n target.removeEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"applyDelay\",\n value: function applyDelay(delayProp, callback) {\n this.clearTimeouts();\n var delay = this.getTargetOption(this.currentTarget, delayProp.toLowerCase()) || this.props[delayProp];\n\n if (!!delay) {\n this[\"\".concat(delayProp, \"Timeout\")] = setTimeout(function () {\n return callback();\n }, delay);\n } else {\n callback();\n }\n }\n }, {\n key: \"sendCallback\",\n value: function sendCallback(callback) {\n if (callback) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n callback.apply(void 0, params);\n }\n }\n }, {\n key: \"clearTimeouts\",\n value: function clearTimeouts() {\n clearTimeout(this.showDelayTimeout);\n clearTimeout(this.updateDelayTimeout);\n clearTimeout(this.hideDelayTimeout);\n }\n }, {\n key: \"updateTargetEvents\",\n value: function updateTargetEvents(target) {\n this.unloadTargetEvents(target);\n this.loadTargetEvents(target);\n }\n }, {\n key: \"loadTargetEvents\",\n value: function loadTargetEvents(target) {\n this.setTargetEventOperations(target || this.props.target, 'bindTargetEvent');\n }\n }, {\n key: \"unloadTargetEvents\",\n value: function unloadTargetEvents(target) {\n this.setTargetEventOperations(target || this.props.target, 'unbindTargetEvent');\n }\n }, {\n key: \"setTargetEventOperations\",\n value: function setTargetEventOperations(target, operation) {\n var _this7 = this;\n\n if (target) {\n if (DomHandler.isElement(target)) {\n this[operation](target);\n } else {\n var setEvent = function setEvent(target) {\n var element = DomHandler.find(document, target);\n element.forEach(function (el) {\n _this7[operation](el);\n });\n };\n\n if (target instanceof Array) {\n target.forEach(function (t) {\n setEvent(t);\n });\n } else {\n setEvent(target);\n }\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.target) {\n this.loadTargetEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this8 = this;\n\n if (prevProps.target !== this.props.target) {\n this.unloadTargetEvents(prevProps.target);\n this.loadTargetEvents();\n }\n\n if (this.state.visible) {\n if (prevProps.content !== this.props.content) {\n this.applyDelay('updateDelay', function () {\n _this8.updateText(_this8.currentTarget, function () {\n _this8.align(_this8.currentTarget);\n });\n });\n }\n\n if (this.currentTarget && this.isDisabled(this.currentTarget)) {\n this.hide();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearTimeouts();\n this.unbindDocumentResizeListener();\n this.unloadTargetEvents();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n ZIndexUtils.clear(this.containerEl);\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this9 = this;\n\n var tooltipClassName = classNames('p-tooltip p-component', _defineProperty({}, \"p-tooltip-\".concat(this.state.position), true), this.props.className);\n var isTargetContentEmpty = this.isTargetContentEmpty(this.currentTarget);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this9.containerEl = el;\n },\n className: tooltipClassName,\n style: this.props.style,\n role: \"tooltip\",\n \"aria-hidden\": this.state.visible,\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tooltip-arrow\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.tooltipTextEl = el;\n },\n className: \"p-tooltip-text\"\n }, isTargetContentEmpty && this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.state.visible) {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo,\n visible: true\n });\n }\n\n return null;\n }\n }]);\n\n return Tooltip;\n}(Component);\n\n_defineProperty(Tooltip, \"defaultProps\", {\n id: null,\n target: null,\n content: null,\n disabled: false,\n className: null,\n style: null,\n appendTo: null,\n position: 'right',\n my: null,\n at: null,\n event: null,\n showEvent: 'mouseenter',\n hideEvent: 'mouseleave',\n autoZIndex: true,\n baseZIndex: 0,\n mouseTrack: false,\n mouseTrackTop: 5,\n mouseTrackLeft: 5,\n showDelay: 0,\n updateDelay: 0,\n hideDelay: 0,\n autoHide: true,\n onBeforeShow: null,\n onBeforeHide: null,\n onShow: null,\n onHide: null\n});\n\nvar OverlayService = EventBus();\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar CSSTransition = /*#__PURE__*/function (_Component) {\n _inherits(CSSTransition, _Component);\n\n var _super = _createSuper(CSSTransition);\n\n function CSSTransition(props) {\n var _this;\n\n _classCallCheck(this, CSSTransition);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntering = _this.onEntering.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExiting = _this.onExiting.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(CSSTransition, [{\n key: \"onEnter\",\n value: function onEnter(node, isAppearing) {\n this.props.onEnter && this.props.onEnter(node, isAppearing); // component\n\n this.props.options && this.props.options.onEnter && this.props.options.onEnter(node, isAppearing); // user option\n }\n }, {\n key: \"onEntering\",\n value: function onEntering(node, isAppearing) {\n this.props.onEntering && this.props.onEntering(node, isAppearing); // component\n\n this.props.options && this.props.options.onEntering && this.props.options.onEntering(node, isAppearing); // user option\n }\n }, {\n key: \"onEntered\",\n value: function onEntered(node, isAppearing) {\n this.props.onEntered && this.props.onEntered(node, isAppearing); // component\n\n this.props.options && this.props.options.onEntered && this.props.options.onEntered(node, isAppearing); // user option\n }\n }, {\n key: \"onExit\",\n value: function onExit(node) {\n this.props.onExit && this.props.onExit(node); // component\n\n this.props.options && this.props.options.onExit && this.props.options.onExit(node); // user option\n }\n }, {\n key: \"onExiting\",\n value: function onExiting(node) {\n this.props.onExiting && this.props.onExiting(node); // component\n\n this.props.options && this.props.options.onExiting && this.props.options.onExiting(node); // user option\n }\n }, {\n key: \"onExited\",\n value: function onExited(node) {\n this.props.onExited && this.props.onExited(node); // component\n\n this.props.options && this.props.options.onExited && this.props.options.onExited(node); // user option\n }\n }, {\n key: \"render\",\n value: function render() {\n var immutableProps = {\n nodeRef: this.props.nodeRef,\n in: this.props.in,\n onEnter: this.onEnter,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n };\n var mutableProps = {\n classNames: this.props.classNames,\n timeout: this.props.timeout,\n unmountOnExit: this.props.unmountOnExit\n };\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, mutableProps), this.props.options || {}), immutableProps);\n\n return /*#__PURE__*/React.createElement(CSSTransition$1, props, this.props.children);\n }\n }]);\n\n return CSSTransition;\n}(Component);\n\nexport { CSSTransition, ConnectedOverlayScrollHandler, DomHandler, EventBus, FilterUtils, KeyFilter, ObjectUtils, OverlayService, Portal, Ripple, Tooltip, UniqueComponentId, ZIndexUtils, classNames, mask, tip };\n","/// \nif (typeof FullCalendarVDom === 'undefined') {\n throw new Error('Please import the top-level fullcalendar lib before attempting to import a plugin.');\n}\nvar Component = FullCalendarVDom.Component;\nvar createElement = FullCalendarVDom.createElement;\nvar render = FullCalendarVDom.render;\nvar createRef = FullCalendarVDom.createRef;\nvar Fragment = FullCalendarVDom.Fragment;\nvar createContext = FullCalendarVDom.createContext;\nvar createPortal = FullCalendarVDom.createPortal;\nvar flushToDom = FullCalendarVDom.flushToDom;\nvar unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;\n/* eslint-enable */\n\nexport { Component, Fragment, createContext, createElement, createPortal, createRef, flushToDom, render, unmountComponentAtNode };\n","import { EventSource } from '../structs/event-source'\nimport { CalendarContext } from '../CalendarContext'\n\n// no public types yet. when there are, export from:\n// import {} from './api-type-deps'\n\nexport class EventSourceApi {\n constructor(\n private context: CalendarContext,\n public internalEventSource: EventSource, // rename?\n ) {\n }\n\n remove() {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId,\n })\n }\n\n refetch() {\n this.context.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId],\n isRefetch: true,\n })\n }\n\n get id(): string {\n return this.internalEventSource.publicId\n }\n\n get url(): string {\n return this.internalEventSource.meta.url\n }\n\n get format(): string {\n return this.internalEventSource.meta.format // TODO: bad. not guaranteed\n }\n}\n","import { Dictionary } from '../options'\n\nexport function removeElement(el: HTMLElement) { // removes nodes in addition to elements. bad name\n if (el.parentNode) {\n el.parentNode.removeChild(el)\n }\n}\n\n// Querying\n// ----------------------------------------------------------------------------------------------------------------\n\nexport function elementClosest(el: HTMLElement, selector: string): HTMLElement {\n if (el.closest) {\n return el.closest(selector)\n\n // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n if (!document.documentElement.contains(el)) {\n return null\n }\n do {\n if (elementMatches(el, selector)) {\n return el\n }\n el = (el.parentElement || el.parentNode) as HTMLElement\n } while (el !== null && el.nodeType === 1)\n return null\n}\n\nexport function elementMatches(el: HTMLElement, selector: string): HTMLElement {\n let method = el.matches || (el as any).matchesSelector || (el as any).msMatchesSelector\n\n return method.call(el, selector)\n}\n\n// accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\nexport function findElements(container: HTMLElement[] | HTMLElement | NodeListOf, selector: string): HTMLElement[] {\n let containers = container instanceof HTMLElement ? [container] : container\n let allMatches: HTMLElement[] = []\n\n for (let i = 0; i < containers.length; i += 1) {\n let matches = containers[i].querySelectorAll(selector)\n\n for (let j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j] as HTMLElement)\n }\n }\n\n return allMatches\n}\n\n// accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\nexport function findDirectChildren(parent: HTMLElement[] | HTMLElement, selector?: string): HTMLElement[] {\n let parents = parent instanceof HTMLElement ? [parent] : parent\n let allMatches = []\n\n for (let i = 0; i < parents.length; i += 1) {\n let childNodes = parents[i].children // only ever elements\n\n for (let j = 0; j < childNodes.length; j += 1) {\n let childNode = childNodes[j]\n\n if (!selector || elementMatches(childNode as HTMLElement, selector)) {\n allMatches.push(childNode)\n }\n }\n }\n\n return allMatches\n}\n\n// Style\n// ----------------------------------------------------------------------------------------------------------------\n\nconst PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i\n\nexport function applyStyle(el: HTMLElement, props: Dictionary) {\n for (let propName in props) {\n applyStyleProp(el, propName, props[propName])\n }\n}\n\nexport function applyStyleProp(el: HTMLElement, name: string, val) {\n if (val == null) {\n el.style[name] = ''\n } else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = `${val}px`\n } else {\n el.style[name] = val\n }\n}\n\n// Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\nexport function getEventTargetViaRoot(ev: Event) {\n return ev.composedPath?.()[0] ?? ev.target\n}\n\n// Shadow DOM consuderations\n// ----------------------------------------------------------------------------------------------------------------\n\nexport function getElRoot(el: HTMLElement): ShadowRoot | Document {\n return el.getRootNode ? el.getRootNode() as ShadowRoot : document\n}\n","import { elementClosest } from './dom-manip'\nimport { VUIEvent } from '../vdom'\n\n// Stops a mouse/touch event from doing it's native browser action\nexport function preventDefault(ev) {\n ev.preventDefault()\n}\n\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\n\nexport function buildDelegationHandler(\n selector: string,\n handler: (ev: EventType, matchedTarget: HTMLElement) => void,\n) {\n return (ev: EventType) => {\n let matchedChild = elementClosest(ev.target as HTMLElement, selector)\n\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild)\n }\n }\n}\n\nexport function listenBySelector(\n container: HTMLElement,\n eventType: string,\n selector: string,\n handler: (ev: Event, matchedTarget: HTMLElement) => void,\n) {\n let attachedHandler = buildDelegationHandler(selector, handler)\n\n container.addEventListener(eventType, attachedHandler)\n\n return () => {\n container.removeEventListener(eventType, attachedHandler)\n }\n}\n\nexport function listenToHoverBySelector(\n container: HTMLElement,\n selector: string,\n onMouseEnter: (ev: Event, matchedTarget: HTMLElement) => void,\n onMouseLeave: (ev: Event, matchedTarget: HTMLElement) => void,\n) {\n let currentMatchedChild\n\n return listenBySelector(container, 'mouseover', selector, (mouseOverEv, matchedChild) => {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild\n onMouseEnter(mouseOverEv, matchedChild)\n\n let realOnMouseLeave = (mouseLeaveEv) => {\n currentMatchedChild = null\n onMouseLeave(mouseLeaveEv, matchedChild)\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave)\n }\n\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave)\n }\n })\n}\n\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\n\nconst transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend',\n]\n\n// triggered only when the next single subsequent transition finishes\nexport function whenTransitionDone(el: HTMLElement, callback: (ev: Event) => void) {\n let realCallback = (ev) => {\n callback(ev)\n transitionEventNames.forEach((eventName) => {\n el.removeEventListener(eventName, realCallback)\n })\n }\n\n transitionEventNames.forEach((eventName) => {\n el.addEventListener(eventName, realCallback) // cross-browser way to determine when the transition finishes\n })\n}\n","import { preventDefault } from './dom-event'\n\nexport type GenericHash = { [key: string]: any } // already did this somewhere\n\nlet guidNumber = 0\n\nexport function guid() {\n guidNumber += 1\n return String(guidNumber)\n}\n\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\n// Make the mouse cursor express that an event is not allowed in the current area\nexport function disableCursor() {\n document.body.classList.add('fc-not-allowed')\n}\n\n// Returns the mouse cursor to its original look\nexport function enableCursor() {\n document.body.classList.remove('fc-not-allowed')\n}\n\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport function preventSelection(el: HTMLElement) {\n el.classList.add('fc-unselectable')\n el.addEventListener('selectstart', preventDefault)\n}\n\nexport function allowSelection(el: HTMLElement) {\n el.classList.remove('fc-unselectable')\n el.removeEventListener('selectstart', preventDefault)\n}\n\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport function preventContextMenu(el: HTMLElement) {\n el.addEventListener('contextmenu', preventDefault)\n}\n\nexport function allowContextMenu(el: HTMLElement) {\n el.removeEventListener('contextmenu', preventDefault)\n}\n\n/* Object Ordering by Field\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport interface OrderSpec {\n field?: string\n order?: number\n func?: FieldSpecInputFunc\n}\n\nexport type FieldSpecInput = string | string[] | FieldSpecInputFunc | FieldSpecInputFunc[]\nexport type FieldSpecInputFunc = (a: Subject, b: Subject) => number\n\nexport function parseFieldSpecs(input: FieldSpecInput): OrderSpec[] {\n let specs: OrderSpec[] = []\n let tokens = []\n let i\n let token\n\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/)\n } else if (typeof input === 'function') {\n tokens = [input]\n } else if (Array.isArray(input)) {\n tokens = input\n }\n\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i]\n\n if (typeof token === 'string') {\n specs.push(\n token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 },\n )\n } else if (typeof token === 'function') {\n specs.push({ func: token })\n }\n }\n\n return specs\n}\n\nexport function compareByFieldSpecs(obj0: Subject, obj1: Subject, fieldSpecs: OrderSpec[]): number {\n let i\n let cmp\n\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i])\n if (cmp) {\n return cmp\n }\n }\n\n return 0\n}\n\nexport function compareByFieldSpec(obj0: Subject, obj1: Subject, fieldSpec: OrderSpec): number {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1)\n }\n\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1)\n}\n\nexport function flexibleCompare(a, b) {\n if (!a && !b) {\n return 0\n }\n if (b == null) {\n return -1\n }\n if (a == null) {\n return 1\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b))\n }\n return a - b\n}\n\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport function padStart(val, len) { // doesn't work with total length more than 3\n let s = String(val)\n return '000'.substr(0, len - s.length) + s\n}\n\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport function compareNumbers(a, b) { // for .sort()\n return a - b\n}\n\nexport function isInt(n) {\n return n % 1 === 0\n}\n\n/* Weird Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport function firstDefined(...args) {\n for (let i = 0; i < args.length; i += 1) {\n if (args[i] !== undefined) {\n return args[i]\n }\n }\n return undefined\n}\n\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport function computeSmallestCellWidth(cellEl: HTMLElement) {\n let allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame')\n let contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion')\n\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className') // TODO: use const\n }\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className')\n }\n\n return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n contentWidthEl.getBoundingClientRect().width\n}\n","import { Duration } from './duration'\n\nexport type DateMarker = Date\n\nexport const DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']\n\n// Adding\n\nexport function addWeeks(m: DateMarker, n: number) {\n let a = dateToUtcArray(m)\n a[2] += n * 7\n return arrayToUtcDate(a)\n}\n\nexport function addDays(m: DateMarker, n: number) {\n let a = dateToUtcArray(m)\n a[2] += n\n return arrayToUtcDate(a)\n}\n\nexport function addMs(m: DateMarker, n: number) {\n let a = dateToUtcArray(m)\n a[6] += n\n return arrayToUtcDate(a)\n}\n\n// Diffing (all return floats)\n// TODO: why not use ranges?\n\nexport function diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7\n}\n\nexport function diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24)\n}\n\nexport function diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60)\n}\n\nexport function diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60)\n}\n\nexport function diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000\n}\n\nexport function diffDayAndTime(m0: DateMarker, m1: DateMarker): Duration {\n let m0day = startOfDay(m0)\n let m1day = startOfDay(m1)\n\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),\n }\n}\n\n// Diffing Whole Units\n\nexport function diffWholeWeeks(m0: DateMarker, m1: DateMarker): number {\n let d = diffWholeDays(m0, m1)\n\n if (d !== null && d % 7 === 0) {\n return d / 7\n }\n\n return null\n}\n\nexport function diffWholeDays(m0: DateMarker, m1: DateMarker): number {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1))\n }\n return null\n}\n\n// Start-Of\n\nexport function startOfDay(m: DateMarker): DateMarker {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n ])\n}\n\nexport function startOfHour(m: DateMarker) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n ])\n}\n\nexport function startOfMinute(m: DateMarker) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n ])\n}\n\nexport function startOfSecond(m: DateMarker) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds(),\n ])\n}\n\n// Week Computation\n\nexport function weekOfYear(marker, dow, doy) {\n let y = marker.getUTCFullYear()\n let w = weekOfGivenYear(marker, y, dow, doy)\n\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy)\n }\n\n let nextW = weekOfGivenYear(marker, y + 1, dow, doy)\n if (nextW >= 1) {\n return Math.min(w, nextW)\n }\n\n return w\n}\n\nfunction weekOfGivenYear(marker, year, dow, doy) {\n let firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)])\n let dayStart = startOfDay(marker)\n let days = Math.round(diffDays(firstWeekStart, dayStart))\n\n return Math.floor(days / 7) + 1 // zero-indexed\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n let fwd = 7 + dow - doy\n\n // first-week day local weekday -- which local weekday is fwd\n let fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7\n\n return -fwdlw + fwd - 1\n}\n\n// Array Conversion\n\nexport function dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ]\n}\n\nexport function arrayToLocalDate(a) {\n return new Date(\n a[0],\n a[1] || 0,\n a[2] == null ? 1 : a[2], // day of month\n a[3] || 0,\n a[4] || 0,\n a[5] || 0,\n )\n}\n\nexport function dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds(),\n ]\n}\n\nexport function arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0])\n }\n\n return new Date(Date.UTC(...(a as [any, any])))\n}\n\n// Other Utils\n\nexport function isValidDate(m: DateMarker) {\n return !isNaN(m.valueOf())\n}\n\nexport function timeAsMs(m: DateMarker) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds()\n}\n","import { DateRange } from '../datelib/date-range'\nimport { guid } from '../util/misc'\n\nexport interface EventInstance {\n instanceId: string\n defId: string\n range: DateRange\n forcedStartTzo: number | null\n forcedEndTzo: number | null\n}\n\nexport type EventInstanceHash = { [instanceId: string]: EventInstance }\n\nexport function createEventInstance(\n defId: string,\n range: DateRange,\n forcedStartTzo?: number,\n forcedEndTzo?: number,\n): EventInstance {\n return {\n instanceId: guid(),\n defId,\n range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo,\n }\n}\n","const { hasOwnProperty } = Object.prototype\n\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nexport function mergeProps(propObjs, complexPropsMap?): any {\n let dest = {}\n\n if (complexPropsMap) {\n for (let name in complexPropsMap) {\n let complexObjs = []\n\n // collect the trailing object values, stopping when a non-object is discovered\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let val = propObjs[i][name]\n\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val)\n } else if (val !== undefined) {\n dest[name] = val // if there were no objects, this value will be used\n break\n }\n }\n\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs)\n }\n }\n }\n\n // copy values into the destination, going from last to first\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let props = propObjs[i]\n\n for (let name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name]\n }\n }\n }\n\n return dest\n}\n\nexport function filterHash(hash, func) {\n let filtered = {}\n\n for (let key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key]\n }\n }\n\n return filtered\n}\n\nexport function mapHash(\n hash: { [key: string]: InputItem },\n func: (input: InputItem, key: string) => OutputItem,\n): { [key: string]: OutputItem } {\n let newHash = {}\n\n for (let key in hash) {\n newHash[key] = func(hash[key], key)\n }\n\n return newHash\n}\n\nexport function arrayToHash(a): { [key: string]: true } { // TODO: rename to strinArrayToHash or something\n let hash = {}\n\n for (let item of a) {\n hash[item] = true\n }\n\n return hash\n}\n\nexport function buildHashFromArray(a: Item[], func: (item: Item, index: number) => [ string, ItemRes ]) {\n let hash: { [key: string]: ItemRes } = {}\n\n for (let i = 0; i < a.length; i += 1) {\n let tuple = func(a[i], i)\n\n hash[tuple[0]] = tuple[1]\n }\n\n return hash\n}\n\nexport function hashValuesToArray(obj) { // can't use Object.values yet because of no IE support\n let a = []\n\n for (let key in obj) {\n a.push(obj[key])\n }\n\n return a\n}\n\nexport function isPropsEqual(obj0, obj1) { // TODO: merge with compareObjs\n if (obj0 === obj1) {\n return true\n }\n\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false\n }\n }\n }\n\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false\n }\n }\n }\n\n return true\n}\n\nexport function getUnequalProps(obj0, obj1) {\n let keys: string[] = []\n\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n keys.push(key)\n }\n }\n }\n\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n keys.push(key)\n }\n }\n }\n\n return keys\n}\n\nexport type EqualityFunc = (a: T, b: T) => boolean\nexport type EqualityThing = EqualityFunc | true\n\nexport type EqualityFuncs = { // not really just a \"func\" anymore\n [K in keyof ObjType]?: EqualityThing\n}\n\nexport function compareObjs(oldProps, newProps, equalityFuncs: EqualityFuncs = {}) {\n if (oldProps === newProps) {\n return true\n }\n\n for (let key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) {\n // equal\n } else {\n return false\n }\n }\n\n // check for props that were omitted in the new\n for (let key in oldProps) {\n if (!(key in newProps)) {\n return false\n }\n }\n\n return true\n}\n\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\nfunction isObjValsEqual(val0: T, val1: T, comparator: EqualityThing) {\n if (val0 === val1 || comparator === true) {\n return true\n }\n if (comparator) {\n return comparator(val0, val1)\n }\n return false\n}\n\nexport function collectFromHash(\n hash: { [key: string]: Item },\n startIndex = 0,\n endIndex?: number,\n step = 1,\n) {\n let res: Item[] = []\n\n if (endIndex == null) {\n endIndex = Object.keys(hash).length\n }\n\n for (let i = startIndex; i < endIndex; i += step) {\n let val = hash[i]\n\n if (val !== undefined) { // will disregard undefined for sparse arrays\n res.push(val)\n }\n }\n\n return res\n}\n","import { EventDef } from './event-def'\nimport { EventInstance, createEventInstance } from './event-instance'\nimport { DateRange } from '../datelib/date-range'\nimport { DateEnv } from '../datelib/env'\nimport { Duration } from '../datelib/duration'\nimport { DateMarker, startOfDay } from '../datelib/marker'\nimport { EventStore } from './event-store'\nimport { CalendarContext } from '../CalendarContext'\nimport { filterHash } from '../util/object'\nimport { EventRefined } from './event-parse'\n\n/*\nThe plugin system for defining how a recurring event is expanded into individual instances.\n*/\n\nexport interface ParsedRecurring {\n typeData: RecurringData\n allDayGuess: boolean | null\n duration: Duration | null // signals hasEnd\n}\n\nexport interface RecurringType {\n parse: (refined: EventRefined, dateEnv: DateEnv) => ParsedRecurring | null // TODO: rename to post-process or something\n expand: (typeData: any, framingRange: DateRange, dateEnv: DateEnv) => DateMarker[]\n}\n\nexport function parseRecurring(\n refined: EventRefined,\n defaultAllDay: boolean | null,\n dateEnv: DateEnv,\n recurringTypes: RecurringType[],\n) {\n for (let i = 0; i < recurringTypes.length; i += 1) {\n let parsed = recurringTypes[i].parse(refined, dateEnv)\n\n if (parsed) {\n let { allDay } = refined\n if (allDay == null) {\n allDay = defaultAllDay\n if (allDay == null) {\n allDay = parsed.allDayGuess\n if (allDay == null) {\n allDay = false\n }\n }\n }\n\n return {\n allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i,\n }\n }\n }\n\n return null\n}\n\nexport function expandRecurring(eventStore: EventStore, framingRange: DateRange, context: CalendarContext): EventStore {\n let { dateEnv, pluginHooks, options } = context\n let { defs, instances } = eventStore\n\n // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n instances = filterHash(instances, (instance: EventInstance) => !defs[instance.defId].recurringDef)\n\n for (let defId in defs) {\n let def = defs[defId]\n\n if (def.recurringDef) {\n let { duration } = def.recurringDef\n\n if (!duration) {\n duration = def.allDay ?\n options.defaultAllDayEventDuration :\n options.defaultTimedEventDuration\n }\n\n let starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes)\n\n for (let start of starts) {\n let instance = createEventInstance(defId, {\n start,\n end: dateEnv.add(start, duration),\n })\n instances[instance.instanceId] = instance\n }\n }\n }\n\n return { defs, instances }\n}\n\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(\n eventDef: EventDef,\n duration: Duration,\n framingRange: DateRange,\n dateEnv: DateEnv,\n recurringTypes: RecurringType[],\n): DateMarker[] {\n let typeDef = recurringTypes[eventDef.recurringDef.typeId]\n let markers = typeDef.expand(\n eventDef.recurringDef.typeData,\n {\n start: dateEnv.subtract(framingRange.start, duration), // for when event starts before framing range and goes into\n end: framingRange.end,\n },\n dateEnv,\n )\n\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay)\n }\n\n return markers\n}\n","import { isInt } from '../util/misc'\n\nexport type DurationInput = DurationObjectInput | string | number\n\nexport interface DurationObjectInput {\n years?: number\n year?: number\n months?: number\n month?: number\n weeks?: number\n week?: number\n days?: number\n day?: number\n hours?: number\n hour?: number\n minutes?: number\n minute?: number\n seconds?: number\n second?: number\n milliseconds?: number\n millisecond?: number\n ms?: number\n}\n\nexport interface Duration {\n years: number\n months: number\n days: number\n milliseconds: number\n specifiedWeeks?: boolean\n}\n\nconst INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds']\nconst PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/\n\n// Parsing and Creation\n\nexport function createDuration(input: DurationInput, unit?: string): Duration | null {\n if (typeof input === 'string') {\n return parseString(input)\n }\n\n if (typeof input === 'object' && input) { // non-null object\n return parseObject(input)\n }\n\n if (typeof input === 'number') {\n return parseObject({ [unit || 'milliseconds']: input })\n }\n return null\n}\n\nfunction parseString(s: string): Duration {\n let m = PARSE_RE.exec(s)\n if (m) {\n let sign = m[1] ? -1 : 1\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * (\n (m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n ),\n }\n }\n return null\n}\n\nfunction parseObject(obj: DurationObjectInput): Duration {\n let duration: Duration = {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: obj.days || obj.day || 0,\n milliseconds:\n (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0), // ms\n }\n\n let weeks = obj.weeks || obj.week\n if (weeks) {\n duration.days += weeks * 7\n duration.specifiedWeeks = true\n }\n\n return duration\n}\n\n// Equality\n\nexport function durationsEqual(d0: Duration, d1: Duration): boolean {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds\n}\n\nexport function asCleanDays(dur: Duration) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days\n }\n return 0\n}\n\n// Simple Math\n\nexport function addDurations(d0: Duration, d1: Duration) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds,\n }\n}\n\nexport function subtractDurations(d1: Duration, d0: Duration): Duration {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds,\n }\n}\n\nexport function multiplyDuration(d: Duration, n: number) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n,\n }\n}\n\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\n\nexport function asRoughYears(dur: Duration) {\n return asRoughDays(dur) / 365\n}\n\nexport function asRoughMonths(dur: Duration) {\n return asRoughDays(dur) / 30\n}\n\nexport function asRoughDays(dur: Duration) {\n return asRoughMs(dur) / 864e5\n}\n\nexport function asRoughHours(dur: Duration) {\n return asRoughMs(dur) / (1000 * 60 * 60)\n}\n\nexport function asRoughMinutes(dur: Duration) {\n return asRoughMs(dur) / (1000 * 60)\n}\n\nexport function asRoughSeconds(dur: Duration) {\n return asRoughMs(dur) / 1000\n}\n\nexport function asRoughMs(dur: Duration) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds\n}\n\n// Advanced Math\n\nexport function wholeDivideDurations(numerator: Duration, denominator: Duration): number {\n let res = null\n\n for (let i = 0; i < INTERNAL_UNITS.length; i += 1) {\n let unit = INTERNAL_UNITS[i]\n\n if (denominator[unit]) {\n let localRes = numerator[unit] / denominator[unit]\n\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null\n }\n\n res = localRes\n } else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null\n }\n }\n\n return res\n}\n\nexport function greatestDurationDenominator(dur: Duration) {\n let ms = dur.milliseconds\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms }\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 }\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) }\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) }\n }\n }\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 }\n }\n return { unit: 'day', value: dur.days }\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months }\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years }\n }\n return { unit: 'millisecond', value: 0 }\n}\n","import { DateMarker } from './marker'\nimport { padStart } from '../util/misc'\n\n// timeZoneOffset is in minutes\nexport function buildIsoString(marker: DateMarker, timeZoneOffset?: number, stripZeroTime: boolean = false) {\n let s = marker.toISOString()\n\n s = s.replace('.000', '')\n\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '')\n }\n\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '')\n } else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true))\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n\n return s\n}\n\n// formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\nexport function formatDayString(marker: DateMarker) {\n return marker.toISOString().replace(/T.*$/, '')\n}\n\n// TODO: use Date::toISOString and use everything after the T?\nexport function formatIsoTimeString(marker: DateMarker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2)\n}\n\nexport function formatTimeZoneOffset(minutes: number, doIso = false) {\n let sign = minutes < 0 ? '-' : '+'\n let abs = Math.abs(minutes)\n let hours = Math.floor(abs / 60)\n let mins = Math.round(abs % 60)\n\n if (doIso) {\n return `${sign + padStart(hours, 2)}:${padStart(mins, 2)}`\n }\n return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`\n}\n","// TODO: new util arrayify?\n// Array.prototype.slice.call(\n\nexport function removeMatching(array, testFunc) {\n let removeCnt = 0\n let i = 0\n\n while (i < array.length) {\n if (testFunc(array[i])) { // truthy value means *remove*\n array.splice(i, 1)\n removeCnt += 1\n } else {\n i += 1\n }\n }\n\n return removeCnt\n}\n\nexport function removeExact(array, exactVal) {\n let removeCnt = 0\n let i = 0\n\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1)\n removeCnt += 1\n } else {\n i += 1\n }\n }\n\n return removeCnt\n}\n\nexport function isArraysEqual(a0, a1, equalityFunc?: (v0, v1) => boolean) { // TODO: better typing\n if (a0 === a1) {\n return true\n }\n\n let len = a0.length\n let i\n\n if (len !== a1.length) { // not array? or not same length?\n return false\n }\n\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false\n }\n }\n\n return true\n}\n","import { isArraysEqual } from './array'\nimport { isPropsEqual } from './object'\nimport { Dictionary } from '../options'\n\nexport function memoize(\n workerFunc: (...args: Args) => Res,\n resEquality?: (res0: Res, res1: Res) => boolean,\n teardownFunc?: (res: Res) => void,\n): (...args: Args) => Res {\n let currentArgs: Args | undefined\n let currentRes: Res | undefined\n\n return function (...newArgs: Args) { // eslint-disable-line func-names\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs)\n } else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes)\n }\n\n let res = workerFunc.apply(this, newArgs)\n\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res\n }\n }\n\n currentArgs = newArgs\n\n return currentRes\n }\n}\n\nexport function memoizeObjArg(\n workerFunc: (arg: Arg) => Res,\n resEquality?: (res0: Res, res1: Res) => boolean,\n teardownFunc?: (res: Res) => void,\n): (arg: Arg) => Res {\n let currentArg: Arg | undefined\n let currentRes: Res | undefined\n\n return (newArg: Arg) => {\n if (!currentArg) {\n currentRes = workerFunc.call(this, newArg)\n } else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes)\n }\n\n let res = workerFunc.call(this, newArg)\n\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res\n }\n }\n\n currentArg = newArg\n\n return currentRes\n }\n}\n\nexport function memoizeArraylike( // used at all?\n workerFunc: (...args: Args) => Res,\n resEquality?: (res0: Res, res1: Res) => boolean,\n teardownFunc?: (res: Res) => void,\n): (argSets: Args[]) => Res[] {\n let currentArgSets: Args[] = []\n let currentResults: Res[] = []\n\n return (newArgSets: Args[]) => {\n let currentLen = currentArgSets.length\n let newLen = newArgSets.length\n let i = 0\n\n for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) { // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i])\n }\n } else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i])\n }\n\n let res = workerFunc.apply(this, newArgSets[i])\n\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res\n }\n }\n }\n\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(this, newArgSets[i])\n }\n\n currentArgSets = newArgSets\n currentResults.splice(newLen) // remove excess\n\n return currentResults\n }\n}\n\nexport function memoizeHashlike( // used?\n workerFunc: (...args: Args) => Res,\n resEquality?: (res0: Res, res1: Res) => boolean,\n teardownFunc?: (res: Res) => void, // TODO: change arg order\n): (argHash: { [key: string]: Args }) => { [key: string]: Res } {\n let currentArgHash: { [key: string]: Args } = {}\n let currentResHash: { [key: string]: Res } = {}\n\n return (newArgHash: { [key: string]: Args }) => {\n let newResHash: { [key: string]: Res } = {}\n\n for (let key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(this, newArgHash[key])\n } else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key])\n }\n\n let res = workerFunc.apply(this, newArgHash[key])\n\n newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))\n ? currentResHash[key]\n : res\n } else {\n newResHash[key] = currentResHash[key]\n }\n }\n\n currentArgHash = newArgHash\n currentResHash = newResHash\n\n return newResHash\n }\n}\n","import { DateMarker, timeAsMs } from './marker'\nimport { CalendarSystem } from './calendar-system'\nimport { Locale } from './locale'\nimport { DateFormatter, DateFormattingContext } from './DateFormatter'\nimport { ZonedMarker } from './zoned-marker'\nimport { formatTimeZoneOffset } from './formatting-utils'\nimport { memoize } from '../util/memoize'\n\nconst EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0, // 0 = not applicable\n omitZeroMinute: 0,\n meridiem: 0, // like am/pm\n omitCommas: 0,\n}\n\nconst STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1,\n}\n\nconst MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i // eats up leading spaces too\nconst COMMA_RE = /,/g // we need re for globalness\nconst MULTI_SPACE_RE = /\\s+/g\nconst LTR_RE = /\\u200e/g // control character\nconst UTC_RE = /UTC|GMT/\n\nexport interface NativeFormatterOptions extends Intl.DateTimeFormatOptions {\n week?: 'short' | 'narrow' | 'numeric'\n meridiem?: 'lowercase' | 'short' | 'narrow' | boolean\n omitZeroMinute?: boolean\n omitCommas?: boolean\n separator?: string\n}\n\nexport class NativeFormatter implements DateFormatter {\n standardDateProps: any\n extendedSettings: any\n severity: number\n private buildFormattingFunc: typeof buildFormattingFunc // caching for efficiency with same date env\n\n constructor(formatSettings: NativeFormatterOptions) {\n let standardDateProps: any = {}\n let extendedSettings: any = {}\n let severity = 0\n\n for (let name in formatSettings) {\n if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name] = formatSettings[name]\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name], severity)\n } else {\n standardDateProps[name] = formatSettings[name]\n\n if (name in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name], severity)\n }\n }\n }\n\n this.standardDateProps = standardDateProps\n this.extendedSettings = extendedSettings\n this.severity = severity\n\n this.buildFormattingFunc = memoize(buildFormattingFunc)\n }\n\n format(date: ZonedMarker, context: DateFormattingContext) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date)\n }\n\n formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, betterDefaultSeparator?: string) {\n let { standardDateProps, extendedSettings } = this\n\n let diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem)\n if (!diffSeverity) {\n return this.format(start, context)\n }\n\n let biggestUnitForPartial = diffSeverity\n if (\n biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')\n ) {\n biggestUnitForPartial = 1 // make it look like the dates are only different in terms of time\n }\n\n let full0 = this.format(start, context)\n let full1 = this.format(end, context)\n\n if (full0 === full1) {\n return full0\n }\n\n let partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial)\n let partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context)\n let partial0 = partialFormattingFunc(start)\n let partial1 = partialFormattingFunc(end)\n\n let insertion = findCommonInsertion(full0, partial0, full1, partial1)\n let separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || ''\n\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after\n }\n\n return full0 + separator + full1\n }\n\n getLargestUnit() {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year'\n case 4:\n return 'month'\n case 3:\n return 'week'\n case 2:\n return 'day'\n default:\n return 'time' // really?\n }\n }\n}\n\nfunction buildFormattingFunc(\n standardDateProps,\n extendedSettings,\n context: DateFormattingContext,\n): (date: ZonedMarker) => string {\n let standardDatePropCnt = Object.keys(standardDateProps).length\n\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return (date: ZonedMarker) => (\n formatTimeZoneOffset(date.timeZoneOffset)\n )\n }\n\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return (date: ZonedMarker) => (\n formatWeekNumber(\n context.computeWeekNumber(date.marker),\n context.weekText,\n context.locale,\n extendedSettings.week,\n )\n )\n }\n\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context)\n}\n\nfunction buildNativeFormattingFunc(\n standardDateProps,\n extendedSettings,\n context: DateFormattingContext,\n): (date: ZonedMarker) => string {\n standardDateProps = { ...standardDateProps } // copy\n extendedSettings = { ...extendedSettings } // copy\n\n sanitizeSettings(standardDateProps, extendedSettings)\n\n standardDateProps.timeZone = 'UTC' // we leverage the only guaranteed timeZone for our UTC markers\n\n let normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps)\n let zeroFormat // needed?\n\n if (extendedSettings.omitZeroMinute) {\n let zeroProps = { ...standardDateProps }\n delete zeroProps.minute // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps)\n }\n\n return (date: ZonedMarker) => {\n let { marker } = date\n let format\n\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat\n } else {\n format = normalFormat\n }\n\n let s = format.format(marker)\n\n return postProcess(s, date, standardDateProps, extendedSettings, context)\n }\n}\n\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit'\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit'\n }\n }\n\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short'\n }\n\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute\n }\n}\n\nfunction postProcess(s: string, date: ZonedMarker, standardDateProps, extendedSettings, context: DateFormattingContext): string {\n s = s.replace(LTR_RE, '') // remove left-to-right control chars. do first. good for other regexes\n\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(\n s,\n (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset),\n )\n }\n\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim()\n }\n\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', '') // zeroFormat doesn't always achieve this\n }\n\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim()\n } else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, (m0, m1) => m1.toLocaleLowerCase())\n } else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, (m0, m1) => `${m1.toLocaleLowerCase()}m`)\n } else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, (m0) => m0.toLocaleLowerCase())\n }\n\n s = s.replace(MULTI_SPACE_RE, ' ')\n s = s.trim()\n\n return s\n}\n\nfunction injectTzoStr(s: string, tzoStr: string): string {\n let replaced = false\n\n s = s.replace(UTC_RE, () => {\n replaced = true\n return tzoStr\n })\n\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ` ${tzoStr}`\n }\n\n return s\n}\n\nfunction formatWeekNumber(num: number, weekText: string, locale: Locale, display?: 'numeric' | 'narrow' | 'short'): string {\n let parts = []\n\n if (display === 'narrow') {\n parts.push(weekText)\n } else if (display === 'short') {\n parts.push(weekText, ' ')\n }\n // otherwise, considered 'numeric'\n\n parts.push(locale.simpleNumberFormat.format(num))\n\n if (locale.options.direction === 'rtl') { // TODO: use control characters instead?\n parts.reverse()\n }\n\n return parts.join('')\n}\n\n// Range Formatting Utils\n\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0: DateMarker, d1: DateMarker, ca: CalendarSystem) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1\n }\n return 0\n}\n\nfunction computePartialFormattingOptions(options, biggestUnit) {\n let partialOptions = {}\n\n for (let name in options) {\n if (\n !(name in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name] <= biggestUnit\n ) {\n partialOptions[name] = options[name]\n }\n }\n\n return partialOptions\n}\n\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n let i0 = 0\n while (i0 < full0.length) {\n let found0 = full0.indexOf(partial0, i0)\n if (found0 === -1) {\n break\n }\n\n let before0 = full0.substr(0, found0)\n i0 = found0 + partial0.length\n let after0 = full0.substr(i0)\n\n let i1 = 0\n while (i1 < full1.length) {\n let found1 = full1.indexOf(partial1, i1)\n if (found1 === -1) {\n break\n }\n\n let before1 = full1.substr(0, found1)\n i1 = found1 + partial1.length\n let after1 = full1.substr(i1)\n\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0,\n }\n }\n }\n }\n\n return null\n}\n","import { DateMarker } from './marker'\nimport { CalendarSystem } from './calendar-system'\n\nexport interface ZonedMarker {\n marker: DateMarker,\n timeZoneOffset: number\n}\n\nexport interface ExpandedZonedMarker extends ZonedMarker {\n array: number[],\n year: number,\n month: number,\n day: number,\n hour: number,\n minute: number,\n second: number,\n millisecond: number\n}\n\nexport function expandZonedMarker(dateInfo: ZonedMarker, calendarSystem: CalendarSystem): ExpandedZonedMarker {\n let a = calendarSystem.markerToArray(dateInfo.marker)\n\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6],\n }\n}\n","import { DateMarker } from './marker'\nimport { CalendarSystem } from './calendar-system'\nimport { Locale } from './locale'\nimport { ZonedMarker, ExpandedZonedMarker, expandZonedMarker } from './zoned-marker'\n\nexport interface VerboseFormattingArg { // TODO: kill this\n date: ExpandedZonedMarker\n start: ExpandedZonedMarker\n end?: ExpandedZonedMarker\n timeZone: string\n localeCodes: string[],\n defaultSeparator: string\n}\n\nexport function createVerboseFormattingArg(\n start: ZonedMarker,\n end: ZonedMarker,\n context: DateFormattingContext,\n betterDefaultSeparator?: string,\n): VerboseFormattingArg {\n let startInfo = expandZonedMarker(start, context.calendarSystem)\n let endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null\n\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n defaultSeparator: betterDefaultSeparator || context.defaultSeparator,\n }\n}\n\nexport type CmdFormatterFunc = (cmd: string, arg: VerboseFormattingArg) => string\n\nexport interface DateFormattingContext {\n timeZone: string,\n locale: Locale,\n calendarSystem: CalendarSystem\n computeWeekNumber: (d: DateMarker) => number\n weekText: string\n cmdFormatter?: CmdFormatterFunc\n defaultSeparator: string\n}\n\nexport interface DateFormatter {\n format(date: ZonedMarker, context: DateFormattingContext): string\n formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, betterDefaultSeparator?: string): string\n}\n","import { DateFormatter, DateFormattingContext, createVerboseFormattingArg } from './DateFormatter'\nimport { ZonedMarker } from './zoned-marker'\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nexport class CmdFormatter implements DateFormatter {\n cmdStr: string\n\n constructor(cmdStr: string) {\n this.cmdStr = cmdStr\n }\n\n format(date: ZonedMarker, context: DateFormattingContext, betterDefaultSeparator?: string) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator))\n }\n\n formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, betterDefaultSeparator?: string) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator))\n }\n}\n","import { DateFormatter, DateFormattingContext, createVerboseFormattingArg, VerboseFormattingArg } from './DateFormatter'\nimport { ZonedMarker } from './zoned-marker'\n\nexport type FuncFormatterFunc = (arg: VerboseFormattingArg) => string\n\nexport class FuncFormatter implements DateFormatter {\n func: FuncFormatterFunc\n\n constructor(func: FuncFormatterFunc) {\n this.func = func\n }\n\n format(date: ZonedMarker, context: DateFormattingContext, betterDefaultSeparator?: string) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator))\n }\n\n formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext, betterDefaultSeparator?: string) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator))\n }\n}\n","import { NativeFormatter, NativeFormatterOptions } from './formatting-native'\nimport { CmdFormatter } from './formatting-cmd'\nimport { FuncFormatter, FuncFormatterFunc } from './formatting-func'\nimport { DateFormatter } from './DateFormatter'\n\nexport type FormatterInput = NativeFormatterOptions | string | FuncFormatterFunc\n\nexport function createFormatter(input: FormatterInput): DateFormatter {\n if (typeof input === 'object' && input) { // non-null object\n return new NativeFormatter(input)\n }\n\n if (typeof input === 'string') {\n return new CmdFormatter(input)\n }\n\n if (typeof input === 'function') {\n return new FuncFormatter(input as FuncFormatterFunc)\n }\n\n return null\n}\n","import { identity, Identity, EventDropArg } from '@fullcalendar/common'\n\n// public\nimport {\n DateClickArg,\n EventDragStartArg, EventDragStopArg,\n EventResizeStartArg, EventResizeStopArg, EventResizeDoneArg,\n DropArg, EventReceiveArg, EventLeaveArg,\n} from './api-type-deps'\n\nexport const OPTION_REFINERS = {\n fixedMirrorParent: identity as Identity,\n}\n\nexport const LISTENER_REFINERS = {\n dateClick: identity as Identity<(arg: DateClickArg) => void>,\n eventDragStart: identity as Identity<(arg: EventDragStartArg) => void>,\n eventDragStop: identity as Identity<(arg: EventDragStopArg) => void>,\n eventDrop: identity as Identity<(arg: EventDropArg) => void>,\n eventResizeStart: identity as Identity<(arg: EventResizeStartArg) => void>,\n eventResizeStop: identity as Identity<(arg: EventResizeStopArg) => void>,\n eventResize: identity as Identity<(arg: EventResizeDoneArg) => void>,\n drop: identity as Identity<(arg: DropArg) => void>,\n eventReceive: identity as Identity<(arg: EventReceiveArg) => void>,\n eventLeave: identity as Identity<(arg: EventLeaveArg) => void>,\n}\n","import { EventDef, EventDefHash } from './event-def'\nimport { EventInstance, EventInstanceHash } from './event-instance'\nimport { EventInput, parseEvent, EventTuple, buildEventRefiners } from './event-parse'\nimport { filterHash } from '../util/object'\nimport { CalendarContext } from '../CalendarContext'\nimport { EventSource } from './event-source'\n\n/*\nA data structure that encapsulates EventDefs and EventInstances.\nUtils for parsing this data from raw EventInputs.\nUtils for manipulating an EventStore.\n*/\n\nexport interface EventStore {\n defs: EventDefHash\n instances: EventInstanceHash\n}\n\nexport function parseEvents(\n rawEvents: EventInput[],\n eventSource: EventSource | null,\n context: CalendarContext,\n allowOpenRange?: boolean,\n): EventStore {\n let eventStore = createEmptyEventStore()\n let eventRefiners = buildEventRefiners(context)\n\n for (let rawEvent of rawEvents) {\n let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners)\n\n if (tuple) {\n eventTupleToStore(tuple, eventStore)\n }\n }\n\n return eventStore\n}\n\nexport function eventTupleToStore(tuple: EventTuple, eventStore: EventStore = createEmptyEventStore()) {\n eventStore.defs[tuple.def.defId] = tuple.def\n\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance\n }\n\n return eventStore\n}\n\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nexport function getRelevantEvents(eventStore: EventStore, instanceId: string): EventStore {\n let instance = eventStore.instances[instanceId]\n\n if (instance) {\n let def = eventStore.defs[instance.defId]\n\n // get events/instances with same group\n let newStore = filterEventStoreDefs(eventStore, (lookDef) => isEventDefsGrouped(def, lookDef))\n\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def.defId] = def\n newStore.instances[instance.instanceId] = instance\n\n return newStore\n }\n\n return createEmptyEventStore()\n}\n\nfunction isEventDefsGrouped(def0: EventDef, def1: EventDef): boolean {\n return Boolean(def0.groupId && def0.groupId === def1.groupId)\n}\n\nexport function createEmptyEventStore(): EventStore {\n return { defs: {}, instances: {} }\n}\n\nexport function mergeEventStores(store0: EventStore, store1: EventStore): EventStore {\n return {\n defs: { ...store0.defs, ...store1.defs },\n instances: { ...store0.instances, ...store1.instances },\n }\n}\n\nexport function filterEventStoreDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore {\n let defs = filterHash(eventStore.defs, filterFunc)\n let instances = filterHash(eventStore.instances, (instance: EventInstance) => (\n defs[instance.defId] // still exists?\n ))\n return { defs, instances }\n}\n\nexport function excludeSubEventStore(master: EventStore, sub: EventStore): EventStore {\n let { defs, instances } = master\n let filteredDefs: { [defId: string]: EventDef } = {}\n let filteredInstances: { [instanceId: string]: EventInstance } = {}\n\n for (let defId in defs) {\n if (!sub.defs[defId]) { // not explicitly excluded\n filteredDefs[defId] = defs[defId]\n }\n }\n\n for (let instanceId in instances) {\n if (\n !sub.instances[instanceId] && // not explicitly excluded\n filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n ) {\n filteredInstances[instanceId] = instances[instanceId]\n }\n }\n\n return {\n defs: filteredDefs,\n instances: filteredInstances,\n }\n}\n","export type ClassNamesInput = string | string[]\n\nexport function parseClassNames(raw: ClassNamesInput) {\n if (Array.isArray(raw)) {\n return raw\n }\n\n if (typeof raw === 'string') {\n return raw.split(/\\s+/)\n }\n\n return []\n}\n","import { Constraint, AllowFunc, normalizeConstraint } from '../structs/constraint'\nimport { parseClassNames } from '../util/html'\nimport { CalendarContext } from '../CalendarContext'\nimport { RawOptionsFromRefiners, RefinedOptionsFromRefiners, identity, Identity } from '../options'\n\n// TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\n\nexport const EVENT_UI_REFINERS = {\n display: String,\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: identity as Identity, // Identity, // circular reference. ts dies. event->constraint->event\n overlap: identity as Identity,\n allow: identity as Identity,\n className: parseClassNames, // will both end up as array of strings\n classNames: parseClassNames, // \"\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String,\n}\n\nconst EMPTY_EVENT_UI: EventUi = {\n display: null,\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n}\n\ntype BuiltInEventUiRefiners = typeof EVENT_UI_REFINERS\n\ninterface EventUiRefiners extends BuiltInEventUiRefiners {\n // to prevent circular reference (and give is the option for ambient modification for later)\n}\n\nexport type EventUiInput = RawOptionsFromRefiners> // Required hack\nexport type EventUiRefined = RefinedOptionsFromRefiners> // Required hack\n\nexport interface EventUi {\n display: string | null\n startEditable: boolean | null\n durationEditable: boolean | null\n constraints: Constraint[]\n overlap: boolean | null\n allows: AllowFunc[] // crappy name to indicate plural\n backgroundColor: string\n borderColor: string\n textColor: string,\n classNames: string[]\n}\n\nexport type EventUiHash = { [defId: string]: EventUi }\n\nexport function createEventUi(refined: EventUiRefined, context: CalendarContext): EventUi {\n let constraint = normalizeConstraint(refined.constraint, context)\n\n return {\n display: refined.display || null,\n startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: refined.overlap != null ? refined.overlap : null,\n allows: refined.allow != null ? [refined.allow] : [],\n backgroundColor: refined.backgroundColor || refined.color || '',\n borderColor: refined.borderColor || refined.color || '',\n textColor: refined.textColor || '',\n classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural\n }\n}\n\n// TODO: prevent against problems with <2 args!\nexport function combineEventUis(uis: EventUi[]): EventUi {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI)\n}\n\nfunction combineTwoEventUis(item0: EventUi, item1: EventUi): EventUi { // hash1 has higher precedence\n return {\n display: item1.display != null ? item1.display : item0.display,\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames),\n }\n}\n","import { EventStore, parseEvents } from './event-store'\nimport { EventInput } from './event-parse'\nimport { DateSpanApi } from './date-span'\nimport { EventApi } from '../api/EventApi'\nimport { SplittableProps } from '../component/event-splitting'\nimport { CalendarContext } from '../CalendarContext'\n\n// TODO: rename to \"criteria\" ?\nexport type ConstraintInput = 'businessHours' | string | EventInput | EventInput[]\nexport type Constraint = 'businessHours' | string | EventStore | false // false means won't pass at all\nexport type OverlapFunc = ((stillEvent: EventApi, movingEvent: EventApi | null) => boolean)\nexport type AllowFunc = (span: DateSpanApi, movingEvent: EventApi | null) => boolean\nexport type isPropsValidTester = (props: SplittableProps, context: CalendarContext) => boolean\n\nexport function normalizeConstraint(input: ConstraintInput, context: CalendarContext): Constraint | null {\n if (Array.isArray(input)) {\n return parseEvents(input, null, context, true) // allowOpenRange=true\n } if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], null, context, true) // allowOpenRange=true\n } if (input != null) {\n return String(input)\n }\n return null\n}\n","import { __assign } from 'tslib'\nimport { guid } from '../util/misc'\nimport { DateInput } from '../datelib/env'\nimport { startOfDay } from '../datelib/marker'\nimport { parseRecurring } from './recurring-event'\nimport { CalendarContext } from '../CalendarContext'\nimport { EventDef } from './event-def'\nimport { createEventInstance, EventInstance } from './event-instance'\nimport { EventSource } from './event-source'\nimport { RefinedOptionsFromRefiners, RawOptionsFromRefiners, identity, Identity, Dictionary, refineProps } from '../options'\nimport { EVENT_UI_REFINERS, createEventUi, EventUiInput, EventUiRefined } from '../component/event-ui'\n\nexport const EVENT_NON_DATE_REFINERS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n}\n\nexport const EVENT_DATE_REFINERS = {\n start: identity as Identity,\n end: identity as Identity,\n date: identity as Identity,\n allDay: Boolean,\n}\n\nconst EVENT_REFINERS = { // does NOT include EVENT_UI_REFINERS\n ...EVENT_NON_DATE_REFINERS,\n ...EVENT_DATE_REFINERS,\n extendedProps: identity as Identity,\n}\n\ntype BuiltInEventRefiners = typeof EVENT_REFINERS\n\nexport interface EventRefiners extends BuiltInEventRefiners {\n // for ambient\n}\n\nexport type EventInput =\n EventUiInput &\n RawOptionsFromRefiners> & // Required hack\n { [extendedProp: string]: any }\n\nexport type EventRefined =\n EventUiRefined &\n RefinedOptionsFromRefiners> // Required hack\n\nexport interface EventTuple {\n def: EventDef\n instance: EventInstance | null\n}\n\nexport type EventInputTransformer = (input: EventInput) => EventInput\nexport type EventDefMemberAdder = (refined: EventRefined) => Partial\n\nexport function parseEvent(\n raw: EventInput,\n eventSource: EventSource | null,\n context: CalendarContext,\n allowOpenRange: boolean,\n refiners = buildEventRefiners(context),\n): EventTuple | null {\n let { refined, extra } = refineEventDef(raw, context, refiners)\n\n let defaultAllDay = computeIsDefaultAllDay(eventSource, context)\n let recurringRes = parseRecurring(\n refined,\n defaultAllDay,\n context.dateEnv,\n context.pluginHooks.recurringTypes,\n )\n\n if (recurringRes) {\n let def = parseEventDef(\n refined,\n extra,\n eventSource ? eventSource.sourceId : '',\n recurringRes.allDay,\n Boolean(recurringRes.duration),\n context,\n )\n\n def.recurringDef = { // don't want all the props from recurringRes. TODO: more efficient way to do this\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration,\n }\n\n return { def, instance: null }\n }\n let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange)\n\n if (singleRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context)\n let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo)\n\n return { def, instance }\n }\n\n return null\n}\n\nexport function refineEventDef(raw: EventInput, context: CalendarContext, refiners = buildEventRefiners(context)) {\n return refineProps(raw, refiners)\n}\n\nexport function buildEventRefiners(context: CalendarContext) {\n return { ...EVENT_UI_REFINERS, ...EVENT_REFINERS, ...context.pluginHooks.eventRefiners }\n}\n\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\nexport function parseEventDef(\n refined: EventRefined,\n extra: Dictionary,\n sourceId: string,\n allDay: boolean,\n hasEnd: boolean,\n context: CalendarContext,\n): EventDef {\n let def: EventDef = {\n title: refined.title || '',\n groupId: refined.groupId || '',\n publicId: refined.id || '',\n url: refined.url || '',\n recurringDef: null,\n defId: guid(),\n sourceId,\n allDay,\n hasEnd,\n ui: createEventUi(refined, context),\n extendedProps: {\n ...(refined.extendedProps || {}),\n ...extra,\n },\n }\n\n for (let memberAdder of context.pluginHooks.eventDefMemberAdders) {\n __assign(def, memberAdder(refined))\n }\n\n // help out EventApi from having user modify props\n Object.freeze(def.ui.classNames)\n Object.freeze(def.extendedProps)\n\n return def\n}\n\nfunction parseSingle(refined: EventRefined, defaultAllDay: boolean | null, context: CalendarContext, allowOpenRange?: boolean) {\n let { allDay } = refined\n let startMeta\n let startMarker = null\n let hasEnd = false\n let endMeta\n let endMarker = null\n\n let startInput = refined.start != null ? refined.start : refined.date\n startMeta = context.dateEnv.createMarkerMeta(startInput)\n\n if (startMeta) {\n startMarker = startMeta.marker\n } else if (!allowOpenRange) {\n return null\n }\n\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end)\n }\n\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay\n } else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified)\n }\n }\n\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker)\n }\n\n if (endMeta) {\n endMarker = endMeta.marker\n\n if (allDay) {\n endMarker = startOfDay(endMarker)\n }\n\n if (startMarker && endMarker <= startMarker) {\n endMarker = null\n }\n }\n\n if (endMarker) {\n hasEnd = true\n } else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false\n\n endMarker = context.dateEnv.add(\n startMarker,\n allDay ?\n context.options.defaultAllDayEventDuration :\n context.options.defaultTimedEventDuration,\n )\n }\n\n return {\n allDay,\n hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null,\n }\n}\n\nfunction computeIsDefaultAllDay(eventSource: EventSource | null, context: CalendarContext): boolean | null {\n let res = null\n\n if (eventSource) {\n res = eventSource.defaultAllDay\n }\n\n if (res == null) {\n res = context.options.defaultAllDay\n }\n\n return res\n}\n","import { DateMarker, startOfDay, addDays, diffDays, diffDayAndTime } from '../datelib/marker'\nimport { Duration, asRoughMs, createDuration } from '../datelib/duration'\nimport { DateEnv } from '../datelib/env'\nimport { DateRange, OpenDateRange } from '../datelib/date-range'\n\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nexport function computeAlignedDayRange(timedRange: DateRange): DateRange {\n let dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1\n let start = startOfDay(timedRange.start)\n let end = addDays(start, dayCnt)\n return { start, end }\n}\n\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nexport function computeVisibleDayRange(timedRange: OpenDateRange, nextDayThreshold: Duration = createDuration(0)): OpenDateRange {\n let startDay: DateMarker = null\n let endDay: DateMarker = null\n\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end)\n\n let endTimeMS: number = timedRange.end.valueOf() - endDay.valueOf() // # of milliseconds into `endDay`\n\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1)\n }\n }\n\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start) // the beginning of the day the range starts\n\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1)\n }\n }\n\n return { start: startDay, end: endDay }\n}\n\n// spans from one day into another?\nexport function isMultiDayRange(range: DateRange) {\n let visibleRange = computeVisibleDayRange(range)\n\n return diffDays(visibleRange.start, visibleRange.end) > 1\n}\n\nexport function diffDates(date0: DateMarker, date1: DateMarker, dateEnv: DateEnv, largeUnit?: string) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year')!\n }\n\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month')!\n }\n\n return diffDayAndTime(date0, date1) // returns a duration\n}\n","import { DateMarker } from './marker'\nimport { DateEnv, DateInput } from './env'\n\nexport interface DateRangeInput {\n start?: DateInput\n end?: DateInput\n}\n\nexport interface OpenDateRange {\n start: DateMarker | null\n end: DateMarker | null\n}\n\nexport interface DateRange {\n start: DateMarker\n end: DateMarker\n}\n\nexport function parseRange(input: DateRangeInput, dateEnv: DateEnv): OpenDateRange {\n let start = null\n let end = null\n\n if (input.start) {\n start = dateEnv.createMarker(input.start)\n }\n\n if (input.end) {\n end = dateEnv.createMarker(input.end)\n }\n\n if (!start && !end) {\n return null\n }\n\n if (start && end && end < start) {\n return null\n }\n\n return { start, end }\n}\n\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nexport function invertRanges(ranges: DateRange[], constraintRange: DateRange): DateRange[] {\n let invertedRanges: DateRange[] = []\n let { start } = constraintRange // the end of the previous range. the start of the new range\n let i\n let dateRange\n\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges)\n\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i]\n\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: dateRange.start })\n }\n\n if (dateRange.end > start) {\n start = dateRange.end\n }\n }\n\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: constraintRange.end })\n }\n\n return invertedRanges\n}\n\nfunction compareRanges(range0: DateRange, range1: DateRange) {\n return range0.start.valueOf() - range1.start.valueOf() // earlier ranges go first\n}\n\nexport function intersectRanges(range0: OpenDateRange, range1: OpenDateRange): OpenDateRange {\n let { start, end } = range0\n let newRange = null\n\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start\n } else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()))\n }\n }\n\n if (range1.end != null) {\n if (end === null) {\n end = range1.end\n } else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()))\n }\n }\n\n if (start === null || end === null || start < end) {\n newRange = { start, end }\n }\n\n return newRange\n}\n\nexport function rangesEqual(range0: OpenDateRange, range1: OpenDateRange): boolean {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf())\n}\n\nexport function rangesIntersect(range0: OpenDateRange, range1: OpenDateRange): boolean {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end)\n}\n\nexport function rangeContainsRange(outerRange: OpenDateRange, innerRange: OpenDateRange): boolean {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end))\n}\n\nexport function rangeContainsMarker(range: OpenDateRange, date: DateMarker | number): boolean { // date can be a millisecond time\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end)\n}\n\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nexport function constrainMarkerToRange(date: DateMarker, range: DateRange): DateMarker {\n if (range.start != null && date < range.start) {\n return range.start\n }\n\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1)\n }\n\n return date\n}\n","import { EventDef, EventDefHash } from '../structs/event-def'\nimport { EventTuple } from '../structs/event-parse'\nimport { EventStore } from '../structs/event-store'\nimport { DateRange, invertRanges, intersectRanges, rangeContainsMarker } from '../datelib/date-range'\nimport { Duration } from '../datelib/duration'\nimport { compareByFieldSpecs, OrderSpec } from '../util/misc'\nimport { computeVisibleDayRange } from '../util/date'\nimport { Seg } from './DateComponent'\nimport { EventApi } from '../api/EventApi'\nimport { EventUi, EventUiHash, combineEventUis } from './event-ui'\nimport { mapHash } from '../util/object'\nimport { ViewContext } from '../ViewContext'\nimport { DateFormatter } from '../datelib/DateFormatter'\nimport { addMs, DateMarker, startOfDay } from '../datelib/marker'\nimport { ViewApi } from '../ViewApi'\nimport { MountArg } from '../common/render-hook'\n\nexport interface EventRenderRange extends EventTuple {\n ui: EventUi\n range: DateRange\n isStart: boolean\n isEnd: boolean\n}\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nexport function sliceEventStore(eventStore: EventStore, eventUiBases: EventUiHash, framingRange: DateRange, nextDayThreshold?: Duration) {\n let inverseBgByGroupId: { [groupId: string]: DateRange[] } = {}\n let inverseBgByDefId: { [defId: string]: DateRange[] } = {}\n let defByGroupId: { [groupId: string]: EventDef } = {}\n let bgRanges: EventRenderRange[] = []\n let fgRanges: EventRenderRange[] = []\n let eventUis = compileEventUis(eventStore.defs, eventUiBases)\n\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId]\n let ui = eventUis[def.defId]\n\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = []\n\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def\n }\n } else {\n inverseBgByDefId[defId] = []\n }\n }\n }\n\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId]\n let def = eventStore.defs[instance.defId]\n let ui = eventUis[def.defId]\n let origRange = instance.range\n\n let normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange\n\n let slicedRange = intersectRanges(normalRange, framingRange)\n\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange)\n } else {\n inverseBgByDefId[instance.defId].push(slicedRange)\n }\n } else if (ui.display !== 'none') {\n (ui.display === 'background' ? bgRanges : fgRanges).push({\n def,\n ui,\n instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf(),\n })\n }\n }\n }\n\n for (let groupId in inverseBgByGroupId) { // BY GROUP\n let ranges = inverseBgByGroupId[groupId]\n let invertedRanges = invertRanges(ranges, framingRange)\n\n for (let invertedRange of invertedRanges) {\n let def = defByGroupId[groupId]\n let ui = eventUis[def.defId]\n\n bgRanges.push({\n def,\n ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n })\n }\n }\n\n for (let defId in inverseBgByDefId) {\n let ranges = inverseBgByDefId[defId]\n let invertedRanges = invertRanges(ranges, framingRange)\n\n for (let invertedRange of invertedRanges) {\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n })\n }\n }\n\n return { bg: bgRanges, fg: fgRanges }\n}\n\nexport function hasBgRendering(def: EventDef) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background'\n}\n\nexport function setElSeg(el: HTMLElement, seg: Seg) {\n (el as any).fcSeg = seg\n}\n\nexport function getElSeg(el: HTMLElement): Seg | null {\n return (el as any).fcSeg ||\n (el.parentNode as any).fcSeg || // for the harness\n null\n}\n\n// event ui computation\n\nexport function compileEventUis(eventDefs: EventDefHash, eventUiBases: EventUiHash) {\n return mapHash(eventDefs, (eventDef: EventDef) => compileEventUi(eventDef, eventUiBases))\n}\n\nexport function compileEventUi(eventDef: EventDef, eventUiBases: EventUiHash) {\n let uis = []\n\n if (eventUiBases['']) {\n uis.push(eventUiBases[''])\n }\n\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId])\n }\n\n uis.push(eventDef.ui)\n\n return combineEventUis(uis)\n}\n\nexport function sortEventSegs(segs, eventOrderSpecs: OrderSpec[]): Seg[] {\n let objs = segs.map(buildSegCompareObj)\n\n objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs))\n\n return objs.map((c) => c._seg)\n}\n\n// returns a object with all primitive props that can be compared\nexport function buildSegCompareObj(seg: Seg) {\n let { eventRange } = seg\n let eventDef = eventRange.def\n let range = eventRange.instance ? eventRange.instance.range : eventRange.range\n let start = range.start ? range.start.valueOf() : 0 // TODO: better support for open-range events\n let end = range.end ? range.end.valueOf() : 0 // \"\n\n return {\n ...eventDef.extendedProps,\n ...eventDef,\n id: eventDef.publicId,\n start,\n end,\n duration: end - start,\n allDay: Number(eventDef.allDay),\n _seg: seg, // for later retrieval\n }\n}\n\n// other stuff\n\nexport interface EventContentArg { // for *Content handlers\n event: EventApi\n timeText: string\n backgroundColor: string // TODO: add other EventUi props?\n borderColor: string //\n textColor: string //\n isDraggable: boolean\n isStartResizable: boolean\n isEndResizable: boolean\n isMirror: boolean\n isStart: boolean\n isEnd: boolean\n isPast: boolean\n isFuture: boolean\n isToday: boolean\n isSelected: boolean\n isDragging: boolean\n isResizing: boolean\n view: ViewApi // specifically for the API\n}\n\nexport type EventMountArg = MountArg\n\nexport function computeSegDraggable(seg: Seg, context: ViewContext) {\n let { pluginHooks } = context\n let transformers = pluginHooks.isDraggableTransformers\n let { def, ui } = seg.eventRange\n let val = ui.startEditable\n\n for (let transformer of transformers) {\n val = transformer(val, def, ui, context)\n }\n\n return val\n}\n\nexport function computeSegStartResizable(seg: Seg, context: ViewContext) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart\n}\n\nexport function computeSegEndResizable(seg: Seg, context: ViewContext) {\n return seg.isEnd && seg.eventRange.ui.durationEditable\n}\n\nexport function buildSegTimeText(\n seg: Seg,\n timeFormat: DateFormatter,\n context: ViewContext,\n defaultDisplayEventTime?: boolean, // defaults to true\n defaultDisplayEventEnd?: boolean, // defaults to true\n startOverride?: DateMarker,\n endOverride?: DateMarker,\n) {\n let { dateEnv, options } = context\n let { displayEventTime, displayEventEnd } = options\n let eventDef = seg.eventRange.def\n let eventInstance = seg.eventRange.instance\n\n if (displayEventTime == null) { displayEventTime = defaultDisplayEventTime !== false }\n if (displayEventEnd == null) { displayEventEnd = defaultDisplayEventEnd !== false }\n\n let wholeEventStart = eventInstance.range.start\n let wholeEventEnd = eventInstance.range.end\n let segStart = startOverride || seg.start || seg.eventRange.range.start\n let segEnd = endOverride || seg.end || seg.eventRange.range.end\n let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf()\n let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf()\n\n if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart\n segEnd = isEndDay ? wholeEventEnd : segEnd\n\n if (displayEventEnd && eventDef.hasEnd) {\n return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooooooooooo, give tzo if same date\n forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo,\n })\n }\n return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same\n })\n }\n\n return ''\n}\n\nexport function getSegMeta(seg: Seg, todayRange: DateRange, nowDate?: DateMarker) { // TODO: make arg order consistent with date util\n let segRange = seg.eventRange.range\n\n return {\n isPast: segRange.end < (nowDate || todayRange.start),\n isFuture: segRange.start >= (nowDate || todayRange.end),\n isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),\n }\n}\n\nexport function getEventClassNames(props: EventContentArg) { // weird that we use this interface, but convenient\n let classNames: string[] = ['fc-event']\n\n if (props.isMirror) {\n classNames.push('fc-event-mirror')\n }\n\n if (props.isDraggable) {\n classNames.push('fc-event-draggable')\n }\n\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable')\n }\n\n if (props.isDragging) {\n classNames.push('fc-event-dragging')\n }\n\n if (props.isResizing) {\n classNames.push('fc-event-resizing')\n }\n\n if (props.isSelected) {\n classNames.push('fc-event-selected')\n }\n\n if (props.isStart) {\n classNames.push('fc-event-start')\n }\n\n if (props.isEnd) {\n classNames.push('fc-event-end')\n }\n\n if (props.isPast) {\n classNames.push('fc-event-past')\n }\n\n if (props.isToday) {\n classNames.push('fc-event-today')\n }\n\n if (props.isFuture) {\n classNames.push('fc-event-future')\n }\n\n return classNames\n}\n\nexport function buildEventRangeKey(eventRange: EventRenderRange) {\n return eventRange.instance\n ? eventRange.instance.instanceId\n : `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`\n // inverse-background events don't have specific instances. TODO: better solution\n}\n","import { DateRange, rangesEqual, OpenDateRange } from '../datelib/date-range'\nimport { DateInput, DateEnv } from '../datelib/env'\nimport { Duration } from '../datelib/duration'\nimport { createEventInstance } from './event-instance'\nimport { parseEventDef, refineEventDef } from './event-parse'\nimport { EventRenderRange, compileEventUi } from '../component/event-rendering'\nimport { EventUiHash } from '../component/event-ui'\nimport { CalendarContext } from '../CalendarContext'\nimport { refineProps, identity, Identity } from '../options'\n\n/*\nA data-structure for a date-range that will be visually displayed.\nContains other metadata like allDay, and anything else Components might like to store.\n\nTODO: in future, put otherProps in own object.\n*/\n\nexport interface OpenDateSpanInput {\n start?: DateInput\n end?: DateInput\n allDay?: boolean\n [otherProp: string]: any\n}\n\nexport interface DateSpanInput extends OpenDateSpanInput {\n start: DateInput\n end: DateInput\n}\n\nexport interface OpenDateSpan {\n range: OpenDateRange\n allDay: boolean\n [otherProp: string]: any\n}\n\nexport interface DateSpan extends OpenDateSpan {\n range: DateRange\n}\n\nexport interface RangeApi {\n start: Date\n end: Date\n startStr: string\n endStr: string\n}\n\nexport interface DateSpanApi extends RangeApi {\n allDay: boolean\n}\n\nexport interface RangeApiWithTimeZone extends RangeApi {\n timeZone: string\n}\n\nexport interface DatePointApi {\n date: Date\n dateStr: string\n allDay: boolean\n}\n\nconst STANDARD_PROPS = {\n start: identity as Identity,\n end: identity as Identity,\n allDay: Boolean,\n}\n\nexport function parseDateSpan(raw: DateSpanInput, dateEnv: DateEnv, defaultDuration?: Duration): DateSpan | null {\n let span = parseOpenDateSpan(raw, dateEnv)\n let { range } = span\n\n if (!range.start) {\n return null\n }\n\n if (!range.end) {\n if (defaultDuration == null) {\n return null\n }\n range.end = dateEnv.add(range.start, defaultDuration)\n }\n\n return span as DateSpan\n}\n\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nexport function parseOpenDateSpan(raw: OpenDateSpanInput, dateEnv: DateEnv): OpenDateSpan | null {\n let { refined: standardProps, extra } = refineProps(raw, STANDARD_PROPS)\n let startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null\n let endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null\n let { allDay } = standardProps\n\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified)\n }\n\n return {\n range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null,\n },\n allDay,\n ...extra,\n }\n}\n\nexport function isDateSpansEqual(span0: DateSpan, span1: DateSpan): boolean {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1)\n}\n\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0: DateSpan, span1: DateSpan): boolean {\n for (let propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false\n }\n }\n }\n\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (let propName in span0) {\n if (!(propName in span1)) {\n return false\n }\n }\n\n return true\n}\n\nexport function buildDateSpanApi(span: DateSpan, dateEnv: DateEnv): DateSpanApi {\n return {\n ...buildRangeApi(span.range, dateEnv, span.allDay),\n allDay: span.allDay,\n }\n}\n\nexport function buildRangeApiWithTimeZone(range: DateRange, dateEnv: DateEnv, omitTime?: boolean): RangeApiWithTimeZone {\n return {\n ...buildRangeApi(range, dateEnv, omitTime),\n timeZone: dateEnv.timeZone,\n }\n}\n\nexport function buildRangeApi(range: DateRange, dateEnv: DateEnv, omitTime?: boolean): RangeApi {\n return {\n start: dateEnv.toDate(range.start),\n end: dateEnv.toDate(range.end),\n startStr: dateEnv.formatIso(range.start, { omitTime }),\n endStr: dateEnv.formatIso(range.end, { omitTime }),\n }\n}\n\nexport function fabricateEventRange(dateSpan: DateSpan, eventUiBases: EventUiHash, context: CalendarContext): EventRenderRange {\n let res = refineEventDef({ editable: false }, context)\n let def = parseEventDef(\n res.refined,\n res.extra,\n '', // sourceId\n dateSpan.allDay,\n true, // hasEnd\n context,\n )\n\n return {\n def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true,\n }\n}\n","import { __assign } from 'tslib'\nimport { PointerDragEvent } from './interactions/pointer'\nimport { buildDateSpanApi, DateSpanApi, DatePointApi, DateSpan } from './structs/date-span'\nimport { CalendarContext } from './CalendarContext'\nimport { ViewApi } from './ViewApi'\nimport { DateMarker, startOfDay } from './datelib/marker'\n\nexport interface DateClickApi extends DatePointApi {\n dayEl: HTMLElement\n jsEvent: UIEvent\n view: ViewApi\n}\n\nexport interface DateSelectionApi extends DateSpanApi {\n jsEvent: UIEvent\n view: ViewApi\n}\n\nexport type DatePointTransform = (dateSpan: DateSpan, context: CalendarContext) => any\nexport type DateSpanTransform = (dateSpan: DateSpan, context: CalendarContext) => any\n\nexport type CalendarInteraction = { destroy: () => void }\nexport type CalendarInteractionClass = { new(context: CalendarContext): CalendarInteraction }\n\nexport type OptionChangeHandler = (propValue: any, context: CalendarContext) => void\nexport type OptionChangeHandlerMap = { [propName: string]: OptionChangeHandler }\n\nexport interface DateSelectArg extends DateSpanApi {\n jsEvent: MouseEvent | null\n view: ViewApi\n}\n\nexport function triggerDateSelect(selection: DateSpan, pev: PointerDragEvent | null, context: CalendarContext & { viewApi?: ViewApi }) {\n context.emitter.trigger('select', {\n ...buildDateSpanApiWithContext(selection, context),\n jsEvent: pev ? pev.origEvent as MouseEvent : null, // Is this always a mouse event? See #4655\n view: context.viewApi || context.calendarApi.view,\n } as DateSelectArg)\n}\n\nexport interface DateUnselectArg {\n jsEvent: MouseEvent\n view: ViewApi\n}\n\nexport function triggerDateUnselect(pev: PointerDragEvent | null, context: CalendarContext & { viewApi?: ViewApi }) {\n context.emitter.trigger('unselect', {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view,\n } as DateUnselectArg)\n}\n\nexport function buildDateSpanApiWithContext(dateSpan: DateSpan, context: CalendarContext) {\n let props = {} as DateSpanApi\n\n for (let transform of context.pluginHooks.dateSpanTransforms) {\n __assign(props, transform(dateSpan, context))\n }\n\n __assign(props, buildDateSpanApi(dateSpan, context.dateEnv))\n\n return props\n}\n\n// Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\nexport function getDefaultEventEnd(allDay: boolean, marker: DateMarker, context: CalendarContext): DateMarker {\n let { dateEnv, options } = context\n let end = marker\n\n if (allDay) {\n end = startOfDay(end)\n end = dateEnv.add(end, options.defaultAllDayEventDuration)\n } else {\n end = dateEnv.add(end, options.defaultTimedEventDuration)\n }\n\n return end\n}\n","import { Duration } from '../datelib/duration'\nimport { EventStore, createEmptyEventStore } from './event-store'\nimport { EventDef } from './event-def'\nimport { EventInstance } from './event-instance'\nimport { computeAlignedDayRange } from '../util/date'\nimport { startOfDay } from '../datelib/marker'\nimport { EventUiHash, EventUi } from '../component/event-ui'\nimport { compileEventUis } from '../component/event-rendering'\nimport { CalendarContext } from '../CalendarContext'\nimport { getDefaultEventEnd } from '../calendar-utils'\n\n/*\nA data structure for how to modify an EventDef/EventInstance within an EventStore\n*/\n\nexport interface EventMutation {\n datesDelta?: Duration // body start+end moving together. for dragging\n startDelta?: Duration // for resizing\n endDelta?: Duration // for resizing\n standardProps?: any // for the def. should not include extendedProps\n extendedProps?: any // for the def\n}\n\n// applies the mutation to ALL defs/instances within the event store\nexport function applyMutationToEventStore(\n eventStore: EventStore,\n eventConfigBase: EventUiHash,\n mutation: EventMutation,\n context: CalendarContext,\n): EventStore {\n let eventConfigs = compileEventUis(eventStore.defs, eventConfigBase)\n let dest = createEmptyEventStore()\n\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId]\n\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context)\n }\n\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId]\n let def = dest.defs[instance.defId] // important to grab the newly modified def\n\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context)\n }\n\n return dest\n}\n\nexport type eventDefMutationApplier = (eventDef: EventDef, mutation: EventMutation, context: CalendarContext) => void\n\nfunction applyMutationToEventDef(eventDef: EventDef, eventConfig: EventUi, mutation: EventMutation, context: CalendarContext): EventDef {\n let standardProps = mutation.standardProps || {}\n\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (\n standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)\n ) {\n standardProps.hasEnd = true // TODO: is this mutation okay?\n }\n\n let copy: EventDef = {\n ...eventDef,\n ...standardProps,\n ui: { ...eventDef.ui, ...standardProps.ui }, // the only prop we want to recursively overlay\n }\n\n if (mutation.extendedProps) {\n copy.extendedProps = { ...copy.extendedProps, ...mutation.extendedProps }\n }\n\n for (let applier of context.pluginHooks.eventDefMutationAppliers) {\n applier(copy, mutation, context)\n }\n\n if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true\n }\n\n return copy\n}\n\nfunction applyMutationToEventInstance(\n eventInstance: EventInstance,\n eventDef: EventDef, // must first be modified by applyMutationToEventDef\n eventConfig: EventUi,\n mutation: EventMutation,\n context: CalendarContext,\n): EventInstance {\n let { dateEnv } = context\n let forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true\n let clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false\n let copy = { ...eventInstance } as EventInstance\n\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range)\n }\n\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta),\n }\n }\n\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end,\n }\n }\n\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta),\n }\n }\n\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),\n }\n }\n\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end),\n }\n }\n\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context)\n }\n\n return copy\n}\n","import { DateEnv } from './datelib/env'\nimport { CalendarData } from './reducers/data-types'\n\n// no public types yet. when there are, export from:\n// import {} from './api-type-deps'\n\nexport class ViewApi { // always represents the current view. otherwise, it'd need to change value every time date changes\n constructor(\n public type: string,\n private getCurrentData: () => CalendarData,\n private dateEnv: DateEnv,\n ) {\n }\n\n get calendar() {\n return this.getCurrentData().calendarApi\n }\n\n get title() {\n return this.getCurrentData().viewTitle\n }\n\n get activeStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)\n }\n\n get activeEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)\n }\n\n get currentStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)\n }\n\n get currentEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)\n }\n\n getOption(name: string) {\n return this.getCurrentData().options[name] // are the view-specific options\n }\n}\n","import { EventInput, EventInputTransformer } from './event-parse'\nimport { EventSourceFunc } from '../event-sources/func-event-source'\nimport { EventSource, EventSourceSuccessResponseHandler, EventSourceErrorResponseHandler } from './event-source'\nimport { JSON_FEED_EVENT_SOURCE_REFINERS } from '../event-sources/json-feed-event-source-refiners'\nimport { CalendarContext } from '../CalendarContext'\nimport { guid } from '../util/misc'\nimport { EVENT_UI_REFINERS, createEventUi, EventUiInput, EventUiRefined } from '../component/event-ui'\nimport { identity, Identity, RawOptionsFromRefiners, refineProps, RefinedOptionsFromRefiners } from '../options'\n\nconst EVENT_SOURCE_REFINERS = { // does NOT include EVENT_UI_REFINERS\n id: String,\n defaultAllDay: Boolean,\n url: String,\n format: String,\n events: identity as Identity, // array or function\n eventDataTransform: identity as Identity,\n\n // for any network-related sources\n success: identity as Identity,\n failure: identity as Identity,\n}\n\ntype BuiltInEventSourceRefiners = typeof EVENT_SOURCE_REFINERS &\n typeof JSON_FEED_EVENT_SOURCE_REFINERS\n\nexport interface EventSourceRefiners extends BuiltInEventSourceRefiners {\n // for extending\n}\n\nexport type EventSourceInputObject =\n EventUiInput &\n RawOptionsFromRefiners> // Required hack\n\nexport type EventSourceInput =\n EventSourceInputObject | // object in extended form\n EventInput[] |\n EventSourceFunc | // just a function\n string // a URL for a JSON feed\n\nexport type EventSourceRefined =\n EventUiRefined &\n RefinedOptionsFromRefiners> // Required hack\n\nexport function parseEventSource(\n raw: EventSourceInput,\n context: CalendarContext,\n refiners = buildEventSourceRefiners(context),\n): EventSource | null {\n let rawObj: EventSourceInputObject\n\n if (typeof raw === 'string') {\n rawObj = { url: raw }\n } else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = { events: raw }\n } else if (typeof raw === 'object' && raw) { // not null\n rawObj = raw\n }\n\n if (rawObj) {\n let { refined, extra } = refineProps(rawObj, refiners)\n let metaRes = buildEventSourceMeta(refined, context)\n\n if (metaRes) {\n return {\n _raw: raw,\n isFetching: false,\n latestFetchId: '',\n fetchRange: null,\n defaultAllDay: refined.defaultAllDay,\n eventDataTransform: refined.eventDataTransform,\n success: refined.success,\n failure: refined.failure,\n publicId: refined.id || '',\n sourceId: guid(),\n sourceDefId: metaRes.sourceDefId,\n meta: metaRes.meta,\n ui: createEventUi(refined, context),\n extendedProps: extra,\n }\n }\n }\n\n return null\n}\n\nexport function buildEventSourceRefiners(context: CalendarContext) {\n return { ...EVENT_UI_REFINERS, ...EVENT_SOURCE_REFINERS, ...context.pluginHooks.eventSourceRefiners }\n}\n\nfunction buildEventSourceMeta(raw: EventSourceRefined, context: CalendarContext) {\n let defs = context.pluginHooks.eventSourceDefs\n\n for (let i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence\n let def = defs[i]\n let meta = def.parseMeta(raw)\n\n if (meta) {\n return { sourceDefId: i, meta }\n }\n }\n\n return null\n}\n","import { DateEnv, DateInput } from '../datelib/env'\nimport { DateMarker } from '../datelib/marker'\nimport { Action } from './Action'\nimport { BaseOptionsRefined } from '../options'\n\nexport function reduceCurrentDate(currentDate: DateMarker, action: Action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker\n default:\n return currentDate\n }\n}\n\nexport function getInitialDate(options: BaseOptionsRefined, dateEnv: DateEnv) {\n let initialDateInput = options.initialDate\n\n // compute the initial ambig-timezone date\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput)\n }\n return getNow(options.now, dateEnv) // getNow already returns unzoned\n}\n\nexport function getNow(nowInput: DateInput | (() => DateInput), dateEnv: DateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput()\n }\n\n if (nowInput == null) {\n return dateEnv.createNowMarker()\n }\n\n return dateEnv.createMarker(nowInput)\n}\n","import { DateMarker } from './datelib/marker'\nimport { createFormatter } from './datelib/formatting'\nimport { createDuration } from './datelib/duration'\nimport { parseDateSpan } from './structs/date-span'\nimport { parseEventSource } from './structs/event-source-parse'\nimport { parseEvent } from './structs/event-parse'\nimport { eventTupleToStore } from './structs/event-store'\nimport { ViewSpec } from './structs/view-spec'\nimport { PointerDragEvent } from './interactions/pointer'\nimport { getNow } from './reducers/current-date'\nimport { triggerDateSelect, triggerDateUnselect } from './calendar-utils'\nimport { hashValuesToArray } from './util/object'\nimport { CalendarDataManager } from './reducers/CalendarDataManager'\nimport { Action } from './reducers/Action'\nimport { EventSource } from './structs/event-source'\nimport { eventApiToStore, buildEventApis } from './api/EventApi'\n\n// public\nimport {\n CalendarOptions,\n CalendarListeners,\n DateInput,\n DurationInput,\n DateSpanInput,\n DateRangeInput,\n EventSourceInput,\n EventInput,\n EventSourceApi,\n EventApi,\n ViewApi,\n} from './api-type-deps'\n\nexport class CalendarApi {\n currentDataManager?: CalendarDataManager // will be set by CalendarDataManager\n\n getCurrentData() {\n return this.currentDataManager!.getCurrentData()\n }\n\n dispatch(action: Action) {\n return this.currentDataManager!.dispatch(action)\n }\n\n get view(): ViewApi { return this.getCurrentData().viewApi } // for public API\n\n batchRendering(callback: () => void) { // subclasses should implement\n callback()\n }\n\n updateSize() { // public\n this.trigger('_resize', true)\n }\n\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n\n setOption(name: OptionName, val: CalendarOptions[OptionName]) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val,\n })\n }\n\n getOption(name: OptionName): CalendarOptions[OptionName] { // getter, used externally. WTF TS\n return this.currentDataManager!.currentCalendarOptionsInput[name]\n }\n\n getAvailableLocaleCodes() {\n return Object.keys(this.getCurrentData().availableRawLocales)\n }\n\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n\n on(handlerName: ListenerName, handler: CalendarListeners[ListenerName]) {\n let { currentDataManager } = this\n\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler)\n } else {\n console.warn(`Unknown listener name '${handlerName}'`)\n }\n }\n\n off(handlerName: ListenerName, handler: CalendarListeners[ListenerName]) {\n this.currentDataManager!.emitter.off(handlerName, handler)\n }\n\n // not meant for public use\n trigger(handlerName: ListenerName, ...args: Parameters) {\n this.currentDataManager!.emitter.trigger(handlerName, ...args)\n }\n\n // View\n // -----------------------------------------------------------------------------------------------------------------\n\n changeView(viewType: string, dateOrRange?: DateRangeInput | DateInput) {\n this.batchRendering(() => {\n this.unselect()\n\n if (dateOrRange) {\n if ((dateOrRange as DateRangeInput).start && (dateOrRange as DateRangeInput).end) { // a range\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n })\n this.dispatch({ // not very efficient to do two dispatches\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange,\n })\n } else {\n let { dateEnv } = this.getCurrentData()\n\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n dateMarker: dateEnv.createMarker(dateOrRange as DateInput),\n })\n }\n } else {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n })\n }\n })\n }\n\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n zoomTo(dateMarker: DateMarker, viewType?: string) {\n let state = this.getCurrentData()\n let spec\n\n viewType = viewType || 'day' // day is default zoom\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType)\n\n this.unselect()\n\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker,\n })\n } else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker,\n })\n }\n }\n\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n private getUnitViewSpec(unit: string): ViewSpec | null {\n let { viewSpecs, toolbarConfig } = this.getCurrentData()\n let viewTypes = [].concat(toolbarConfig.viewsWithButtons)\n let i\n let spec\n\n for (let viewType in viewSpecs) {\n viewTypes.push(viewType)\n }\n\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]]\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec\n }\n }\n }\n\n return null\n }\n\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n\n prev() {\n this.unselect()\n this.dispatch({ type: 'PREV' })\n }\n\n next() {\n this.unselect()\n this.dispatch({ type: 'NEXT' })\n }\n\n prevYear() {\n let state = this.getCurrentData()\n this.unselect()\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, -1),\n })\n }\n\n nextYear() {\n let state = this.getCurrentData()\n\n this.unselect()\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, 1),\n })\n }\n\n today() {\n let state = this.getCurrentData()\n\n this.unselect()\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: getNow(state.calendarOptions.now, state.dateEnv),\n })\n }\n\n gotoDate(zonedDateInput) {\n let state = this.getCurrentData()\n\n this.unselect()\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.createMarker(zonedDateInput),\n })\n }\n\n incrementDate(deltaInput) { // is public facing\n let state = this.getCurrentData()\n let delta = createDuration(deltaInput)\n\n if (delta) { // else, warn about invalid input?\n this.unselect()\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.add(state.currentDate, delta),\n })\n }\n }\n\n // for external API\n getDate(): Date {\n let state = this.getCurrentData()\n return state.dateEnv.toDate(state.currentDate)\n }\n\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n\n formatDate(d: DateInput, formatter): string {\n let { dateEnv } = this.getCurrentData()\n\n return dateEnv.format(\n dateEnv.createMarker(d),\n createFormatter(formatter),\n )\n }\n\n // `settings` is for formatter AND isEndExclusive\n formatRange(d0: DateInput, d1: DateInput, settings) {\n let { dateEnv } = this.getCurrentData()\n\n return dateEnv.formatRange(\n dateEnv.createMarker(d0),\n dateEnv.createMarker(d1),\n createFormatter(settings),\n settings,\n )\n }\n\n formatIso(d: DateInput, omitTime?: boolean) {\n let { dateEnv } = this.getCurrentData()\n\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime })\n }\n\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n\n // this public method receives start/end dates in any format, with any timezone\n // NOTE: args were changed from v3\n select(dateOrObj: DateInput | any, endDate?: DateInput) {\n let selectionInput: DateSpanInput\n\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj as DateSpanInput\n } else {\n selectionInput = {\n start: dateOrObj,\n end: null,\n }\n }\n } else {\n selectionInput = {\n start: dateOrObj,\n end: endDate,\n } as DateSpanInput\n }\n\n let state = this.getCurrentData()\n let selection = parseDateSpan(\n selectionInput,\n state.dateEnv,\n createDuration({ days: 1 }), // TODO: cache this?\n )\n\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection })\n triggerDateSelect(selection, null, state)\n }\n }\n\n // public method\n unselect(pev?: PointerDragEvent) {\n let state = this.getCurrentData()\n\n if (state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' })\n triggerDateUnselect(pev, state)\n }\n }\n\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n\n addEvent(eventInput: EventInput, sourceInput?: EventSourceApi | string | boolean): EventApi | null {\n if (eventInput instanceof EventApi) {\n let def = eventInput._def\n let instance = eventInput._instance\n let currentData = this.getCurrentData()\n\n // not already present? don't want to add an old snapshot\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def, instance }), // TODO: better util for two args?\n })\n this.triggerEventAdd(eventInput)\n }\n\n return eventInput\n }\n\n let state = this.getCurrentData()\n let eventSource: EventSource\n\n if (sourceInput instanceof EventSourceApi) {\n eventSource = sourceInput.internalEventSource\n } else if (typeof sourceInput === 'boolean') {\n if (sourceInput) { // true. part of the first event source\n [eventSource] = hashValuesToArray(state.eventSources)\n }\n } else if (sourceInput != null) { // an ID. accepts a number too\n let sourceApi = this.getEventSourceById(sourceInput) // TODO: use an internal function\n\n if (!sourceApi) {\n console.warn(`Could not find an event source with ID \"${sourceInput}\"`) // TODO: test\n return null\n }\n eventSource = sourceApi.internalEventSource\n }\n\n let tuple = parseEvent(eventInput, eventSource, state, false)\n\n if (tuple) {\n let newEventApi = new EventApi(\n state,\n tuple.def,\n tuple.def.recurringDef ? null : tuple.instance,\n )\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple),\n })\n this.triggerEventAdd(newEventApi)\n\n return newEventApi\n }\n\n return null\n }\n\n private triggerEventAdd(eventApi: EventApi) {\n let { emitter } = this.getCurrentData()\n\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: () => {\n this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi),\n })\n },\n })\n }\n\n // TODO: optimize\n getEventById(id: string): EventApi | null {\n let state = this.getCurrentData()\n let { defs, instances } = state.eventStore\n id = String(id)\n\n for (let defId in defs) {\n let def = defs[defId]\n\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(state, def, null)\n }\n\n for (let instanceId in instances) {\n let instance = instances[instanceId]\n\n if (instance.defId === def.defId) {\n return new EventApi(state, def, instance)\n }\n }\n }\n }\n\n return null\n }\n\n getEvents(): EventApi[] {\n let currentData = this.getCurrentData()\n\n return buildEventApis(currentData.eventStore, currentData)\n }\n\n removeAllEvents() {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' })\n }\n\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n\n getEventSources(): EventSourceApi[] {\n let state = this.getCurrentData()\n let sourceHash = state.eventSources\n let sourceApis: EventSourceApi[] = []\n\n for (let internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(state, sourceHash[internalId]))\n }\n\n return sourceApis\n }\n\n getEventSourceById(id: string): EventSourceApi | null {\n let state = this.getCurrentData()\n let sourceHash = state.eventSources\n id = String(id)\n\n for (let sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(state, sourceHash[sourceId])\n }\n }\n\n return null\n }\n\n addEventSource(sourceInput: EventSourceInput): EventSourceApi {\n let state = this.getCurrentData()\n\n if (sourceInput instanceof EventSourceApi) {\n // not already present? don't want to add an old snapshot\n if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource],\n })\n }\n\n return sourceInput\n }\n\n let eventSource = parseEventSource(sourceInput, state)\n\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] })\n\n return new EventSourceApi(state, eventSource)\n }\n\n return null\n }\n\n removeAllEventSources() {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' })\n }\n\n refetchEvents() {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true })\n }\n\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n\n scrollToTime(timeInput: DurationInput) {\n let time = createDuration(timeInput)\n\n if (time) {\n this.trigger('_scrollRequest', { time })\n }\n }\n}\n","import { __assign } from 'tslib'\nimport { EventDef } from '../structs/event-def'\nimport { EVENT_NON_DATE_REFINERS, EVENT_DATE_REFINERS } from '../structs/event-parse'\nimport { EventInstance } from '../structs/event-instance'\nimport { EVENT_UI_REFINERS, EventUiHash } from '../component/event-ui'\nimport { EventMutation, applyMutationToEventStore } from '../structs/event-mutation'\nimport { diffDates, computeAlignedDayRange } from '../util/date'\nimport { createDuration, durationsEqual } from '../datelib/duration'\nimport { createFormatter } from '../datelib/formatting'\nimport { CalendarContext } from '../CalendarContext'\nimport { getRelevantEvents, EventStore } from '../structs/event-store'\nimport { Dictionary } from '../options'\n\n// public\nimport {\n DateInput,\n DurationInput,\n FormatterInput,\n EventSourceApi,\n} from '../api-type-deps'\n\nexport class EventApi {\n _context: CalendarContext\n _def: EventDef\n _instance: EventInstance | null\n // instance will be null if expressing a recurring event that has no current instances,\n // OR if trying to validate an incoming external event that has no dates assigned\n\n constructor(context: CalendarContext, def: EventDef, instance?: EventInstance) {\n this._context = context\n this._def = def\n this._instance = instance || null\n }\n\n /*\n TODO: make event struct more responsible for this\n */\n setProp(name: string, val: any) {\n if (name in EVENT_DATE_REFINERS) {\n console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.')\n // TODO: make proper aliasing system?\n } else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val)\n\n this.mutate({\n standardProps: { publicId: val }, // hardcoded internal name\n })\n } else if (name in EVENT_NON_DATE_REFINERS) {\n val = EVENT_NON_DATE_REFINERS[name](val)\n\n this.mutate({\n standardProps: { [name]: val },\n })\n } else if (name in EVENT_UI_REFINERS) {\n let ui = EVENT_UI_REFINERS[name](val)\n\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val }\n } else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val }\n } else {\n ui = { [name]: val }\n }\n\n this.mutate({\n standardProps: { ui },\n })\n } else {\n console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`)\n }\n }\n\n setExtendedProp(name: string, val: any) {\n this.mutate({\n extendedProps: { [name]: val },\n })\n }\n\n setStart(startInput: DateInput, options: { granularity?: string, maintainDuration?: boolean } = {}) {\n let { dateEnv } = this._context\n let start = dateEnv.createMarker(startInput)\n\n if (start && this._instance) { // TODO: warning if parsed bad\n let instanceRange = this._instance.range\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity) // what if parsed bad!?\n\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta })\n } else {\n this.mutate({ startDelta })\n }\n }\n }\n\n setEnd(endInput: DateInput | null, options: { granularity?: string } = {}) {\n let { dateEnv } = this._context\n let end\n\n if (endInput != null) {\n end = dateEnv.createMarker(endInput)\n\n if (!end) {\n return // TODO: warning if parsed bad\n }\n }\n\n if (this._instance) {\n if (end) {\n let endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity)\n this.mutate({ endDelta })\n } else {\n this.mutate({ standardProps: { hasEnd: false } })\n }\n }\n }\n\n setDates(startInput: DateInput, endInput: DateInput | null, options: { allDay?: boolean, granularity?: string } = {}) {\n let { dateEnv } = this._context\n let standardProps = { allDay: options.allDay } as any\n let start = dateEnv.createMarker(startInput)\n let end\n\n if (!start) {\n return // TODO: warning if parsed bad\n }\n\n if (endInput != null) {\n end = dateEnv.createMarker(endInput)\n\n if (!end) { // TODO: warning if parsed bad\n return\n }\n }\n\n if (this._instance) {\n let instanceRange = this._instance.range\n\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange)\n }\n\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity)\n\n if (end) {\n let endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity)\n\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps })\n } else {\n this.mutate({ startDelta, endDelta, standardProps })\n }\n } else { // means \"clear the end\"\n standardProps.hasEnd = false\n this.mutate({ datesDelta: startDelta, standardProps })\n }\n }\n }\n\n moveStart(deltaInput: DurationInput) {\n let delta = createDuration(deltaInput)\n\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta })\n }\n }\n\n moveEnd(deltaInput: DurationInput) {\n let delta = createDuration(deltaInput)\n\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta })\n }\n }\n\n moveDates(deltaInput: DurationInput) {\n let delta = createDuration(deltaInput)\n\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta })\n }\n }\n\n setAllDay(allDay: boolean, options: { maintainDuration?: boolean } = {}) {\n let standardProps = { allDay } as any\n let { maintainDuration } = options\n\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration\n }\n\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration\n }\n\n this.mutate({ standardProps })\n }\n\n formatRange(formatInput: FormatterInput) {\n let { dateEnv } = this._context\n let instance = this._instance\n let formatter = createFormatter(formatInput)\n\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo,\n })\n }\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo,\n })\n }\n\n mutate(mutation: EventMutation) { // meant to be private. but plugins need access\n let instance = this._instance\n\n if (instance) {\n let def = this._def\n let context = this._context\n let { eventStore } = context.getCurrentData()\n let relevantEvents = getRelevantEvents(eventStore, instance.instanceId)\n let eventConfigBase = {\n '': { // HACK. always allow API to mutate events\n display: '',\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n },\n } as EventUiHash\n\n relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context)\n\n let oldEvent = new EventApi(context, def, instance) // snapshot\n this._def = relevantEvents.defs[def.defId]\n this._instance = relevantEvents.instances[instance.instanceId]\n\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n })\n\n context.emitter.trigger('eventChange', {\n oldEvent,\n event: this,\n relatedEvents: buildEventApis(relevantEvents, context, instance),\n revert() {\n context.dispatch({\n type: 'RESET_EVENTS',\n eventStore, // the ORIGINAL store\n })\n },\n })\n }\n }\n\n remove() {\n let context = this._context\n let asStore = eventApiToStore(this)\n\n context.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: asStore,\n })\n\n context.emitter.trigger('eventRemove', {\n event: this,\n relatedEvents: [],\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore,\n })\n },\n })\n }\n\n get source(): EventSourceApi | null {\n let { sourceId } = this._def\n\n if (sourceId) {\n return new EventSourceApi(\n this._context,\n this._context.getCurrentData().eventSources[sourceId],\n )\n }\n return null\n }\n\n get start(): Date | null {\n return this._instance ?\n this._context.dateEnv.toDate(this._instance.range.start) :\n null\n }\n\n get end(): Date | null {\n return (this._instance && this._def.hasEnd) ?\n this._context.dateEnv.toDate(this._instance.range.end) :\n null\n }\n\n get startStr(): string {\n let instance = this._instance\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo,\n })\n }\n return ''\n }\n\n get endStr(): string {\n let instance = this._instance\n if (instance && this._def.hasEnd) {\n return this._context.dateEnv.formatIso(instance.range.end, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedEndTzo,\n })\n }\n return ''\n }\n\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get id() { return this._def.publicId }\n get groupId() { return this._def.groupId }\n get allDay() { return this._def.allDay }\n get title() { return this._def.title }\n get url() { return this._def.url }\n get display() { return this._def.ui.display || 'auto' } // bad. just normalize the type earlier\n get startEditable() { return this._def.ui.startEditable }\n get durationEditable() { return this._def.ui.durationEditable }\n get constraint() { return this._def.ui.constraints[0] || null }\n get overlap() { return this._def.ui.overlap }\n get allow() { return this._def.ui.allows[0] || null }\n get backgroundColor() { return this._def.ui.backgroundColor }\n get borderColor() { return this._def.ui.borderColor }\n get textColor() { return this._def.ui.textColor }\n\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get classNames() { return this._def.ui.classNames }\n get extendedProps() { return this._def.extendedProps }\n\n toPlainObject(settings: { collapseExtendedProps?: boolean, collapseColor?: boolean } = {}): Dictionary {\n let def = this._def\n let { ui } = def\n let { startStr, endStr } = this\n let res: Dictionary = {}\n\n if (def.title) {\n res.title = def.title\n }\n\n if (startStr) {\n res.start = startStr\n }\n\n if (endStr) {\n res.end = endStr\n }\n\n if (def.publicId) {\n res.id = def.publicId\n }\n\n if (def.groupId) {\n res.groupId = def.groupId\n }\n\n if (def.url) {\n res.url = def.url\n }\n\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display\n }\n\n // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor\n } else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor\n }\n if (ui.borderColor) {\n res.borderColor = ui.borderColor\n }\n }\n\n if (ui.textColor) {\n res.textColor = ui.textColor\n }\n\n if (ui.classNames.length) {\n res.classNames = ui.classNames\n }\n\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n __assign(res, def.extendedProps)\n } else {\n res.extendedProps = def.extendedProps\n }\n }\n\n return res\n }\n\n toJSON() {\n return this.toPlainObject()\n }\n}\n\nexport function eventApiToStore(eventApi: EventApi): EventStore {\n let def = eventApi._def\n let instance = eventApi._instance\n\n return {\n defs: { [def.defId]: def },\n instances: instance\n ? { [instance.instanceId]: instance }\n : {},\n }\n}\n\nexport function buildEventApis(eventStore: EventStore, context: CalendarContext, excludeInstance?: EventInstance): EventApi[] {\n let { defs, instances } = eventStore\n let eventApis: EventApi[] = []\n let excludeInstanceId = excludeInstance ? excludeInstance.instanceId : ''\n\n for (let id in instances) {\n let instance = instances[id]\n let def = defs[instance.defId]\n\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventApi(context, def, instance))\n }\n }\n\n return eventApis\n}\n","import { DateMarker, arrayToUtcDate, dateToUtcArray } from './marker'\n\nexport interface CalendarSystem {\n getMarkerYear(d: DateMarker): number\n getMarkerMonth(d: DateMarker): number\n getMarkerDay(d: DateMarker): number\n arrayToMarker(arr: number[]): DateMarker\n markerToArray(d: DateMarker): number[]\n}\n\nlet calendarSystemClassMap = {}\n\nexport function registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass\n}\n\nexport function createCalendarSystem(name) {\n return new calendarSystemClassMap[name]()\n}\n\nclass GregorianCalendarSystem implements CalendarSystem {\n getMarkerYear(d: DateMarker) {\n return d.getUTCFullYear()\n }\n\n getMarkerMonth(d: DateMarker) {\n return d.getUTCMonth()\n }\n\n getMarkerDay(d: DateMarker) {\n return d.getUTCDate()\n }\n\n arrayToMarker(arr) {\n return arrayToUtcDate(arr)\n }\n\n markerToArray(marker) {\n return dateToUtcArray(marker)\n }\n}\n\nregisterCalendarSystem('gregory', GregorianCalendarSystem)\n","import { isValidDate } from './marker'\n\nconst ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/\n\nexport function parse(str) {\n let m = ISO_RE.exec(str)\n\n if (m) {\n let marker = new Date(Date.UTC(\n Number(m[1]),\n m[3] ? Number(m[3]) - 1 : 0,\n Number(m[5] || 1),\n Number(m[7] || 0),\n Number(m[8] || 0),\n Number(m[10] || 0),\n m[12] ? Number(`0.${m[12]}`) * 1000 : 0,\n ))\n\n if (isValidDate(marker)) {\n let timeZoneOffset = null\n\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (\n Number(m[16] || 0) * 60 +\n Number(m[18] || 0)\n )\n }\n\n return {\n marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset,\n }\n }\n }\n\n return null\n}\n","import {\n DateMarker, addMs,\n diffHours, diffMinutes, diffSeconds, diffWholeWeeks, diffWholeDays,\n startOfDay, startOfHour, startOfMinute, startOfSecond,\n weekOfYear, arrayToUtcDate, dateToUtcArray, dateToLocalArray, arrayToLocalDate, timeAsMs, isValidDate,\n} from './marker'\nimport { CalendarSystem, createCalendarSystem } from './calendar-system'\nimport { Locale } from './locale'\nimport { NamedTimeZoneImpl, NamedTimeZoneImplClass } from './timezone'\nimport { Duration, asRoughYears, asRoughMonths, asRoughDays, asRoughMs } from './duration'\nimport { DateFormatter, CmdFormatterFunc } from './DateFormatter'\nimport { buildIsoString } from './formatting-utils'\nimport { parse } from './parsing'\nimport { isInt } from '../util/misc'\n\nexport type WeekNumberCalculation = 'local' | 'ISO' | ((m: Date) => number)\n\nexport interface DateEnvSettings {\n timeZone: string\n namedTimeZoneImpl?: NamedTimeZoneImplClass\n calendarSystem: string\n locale: Locale\n weekNumberCalculation?: WeekNumberCalculation\n firstDay?: number, // will override what the locale wants\n weekText?: string,\n cmdFormatter?: CmdFormatterFunc\n defaultSeparator?: string\n}\n\nexport type DateInput = Date | string | number | number[]\n\nexport interface DateMarkerMeta {\n marker: DateMarker\n isTimeUnspecified: boolean\n forcedTzo: number | null\n}\n\nexport class DateEnv {\n timeZone: string\n namedTimeZoneImpl: NamedTimeZoneImpl\n canComputeOffset: boolean\n\n calendarSystem: CalendarSystem\n locale: Locale\n weekDow: number // which day begins the week\n weekDoy: number // which day must be within the year, for computing the first week number\n weekNumberFunc: any\n weekText: string // DON'T LIKE how options are confused with local\n cmdFormatter?: CmdFormatterFunc\n defaultSeparator: string\n\n constructor(settings: DateEnvSettings) {\n let timeZone = this.timeZone = settings.timeZone\n let isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC'\n\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone)\n }\n\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl)\n\n this.calendarSystem = createCalendarSystem(settings.calendarSystem)\n this.locale = settings.locale\n this.weekDow = settings.locale.week.dow\n this.weekDoy = settings.locale.week.doy\n\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1\n this.weekDoy = 4\n }\n\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay\n }\n\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation\n }\n\n this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText\n\n this.cmdFormatter = settings.cmdFormatter\n this.defaultSeparator = settings.defaultSeparator\n }\n\n // Creating / Parsing\n\n createMarker(input: DateInput): DateMarker {\n let meta = this.createMarkerMeta(input)\n if (meta === null) {\n return null\n }\n return meta.marker\n }\n\n createNowMarker(): DateMarker {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf())\n }\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()))\n }\n\n createMarkerMeta(input: DateInput): DateMarkerMeta {\n if (typeof input === 'string') {\n return this.parse(input)\n }\n\n let marker = null\n\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input)\n } else if (input instanceof Date) {\n input = input.valueOf()\n\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input)\n }\n } else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input)\n }\n\n if (marker === null || !isValidDate(marker)) {\n return null\n }\n\n return { marker, isTimeUnspecified: false, forcedTzo: null }\n }\n\n parse(s: string) {\n let parts = parse(s)\n if (parts === null) {\n return null\n }\n\n let { marker } = parts\n let forcedTzo = null\n\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000)\n } else {\n forcedTzo = parts.timeZoneOffset\n }\n }\n\n return { marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo }\n }\n\n // Accessors\n\n getYear(marker: DateMarker): number {\n return this.calendarSystem.getMarkerYear(marker)\n }\n\n getMonth(marker: DateMarker): number {\n return this.calendarSystem.getMarkerMonth(marker)\n }\n\n // Adding / Subtracting\n\n add(marker: DateMarker, dur: Duration): DateMarker {\n let a = this.calendarSystem.markerToArray(marker)\n a[0] += dur.years\n a[1] += dur.months\n a[2] += dur.days\n a[6] += dur.milliseconds\n return this.calendarSystem.arrayToMarker(a)\n }\n\n subtract(marker: DateMarker, dur: Duration): DateMarker {\n let a = this.calendarSystem.markerToArray(marker)\n a[0] -= dur.years\n a[1] -= dur.months\n a[2] -= dur.days\n a[6] -= dur.milliseconds\n return this.calendarSystem.arrayToMarker(a)\n }\n\n addYears(marker: DateMarker, n: number) {\n let a = this.calendarSystem.markerToArray(marker)\n a[0] += n\n return this.calendarSystem.arrayToMarker(a)\n }\n\n addMonths(marker: DateMarker, n: number) {\n let a = this.calendarSystem.markerToArray(marker)\n a[1] += n\n return this.calendarSystem.arrayToMarker(a)\n }\n\n // Diffing Whole Units\n\n diffWholeYears(m0: DateMarker, m1: DateMarker): number {\n let { calendarSystem } = this\n\n if (\n timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)\n ) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)\n }\n return null\n }\n\n diffWholeMonths(m0: DateMarker, m1: DateMarker): number {\n let { calendarSystem } = this\n\n if (\n timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)\n ) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12\n }\n return null\n }\n\n // Range / Duration\n\n greatestWholeUnit(m0: DateMarker, m1: DateMarker) {\n let n = this.diffWholeYears(m0, m1)\n\n if (n !== null) {\n return { unit: 'year', value: n }\n }\n\n n = this.diffWholeMonths(m0, m1)\n\n if (n !== null) {\n return { unit: 'month', value: n }\n }\n\n n = diffWholeWeeks(m0, m1)\n\n if (n !== null) {\n return { unit: 'week', value: n }\n }\n\n n = diffWholeDays(m0, m1)\n\n if (n !== null) {\n return { unit: 'day', value: n }\n }\n\n n = diffHours(m0, m1)\n\n if (isInt(n)) {\n return { unit: 'hour', value: n }\n }\n\n n = diffMinutes(m0, m1)\n\n if (isInt(n)) {\n return { unit: 'minute', value: n }\n }\n\n n = diffSeconds(m0, m1)\n\n if (isInt(n)) {\n return { unit: 'second', value: n }\n }\n\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() }\n }\n\n countDurationsBetween(m0: DateMarker, m1: DateMarker, d: Duration) {\n // TODO: can use greatestWholeUnit\n let diff\n\n if (d.years) {\n diff = this.diffWholeYears(m0, m1)\n if (diff !== null) {\n return diff / asRoughYears(d)\n }\n }\n\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1)\n if (diff !== null) {\n return diff / asRoughMonths(d)\n }\n }\n\n if (d.days) {\n diff = diffWholeDays(m0, m1)\n if (diff !== null) {\n return diff / asRoughDays(d)\n }\n }\n\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d)\n }\n\n // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n\n startOf(m: DateMarker, unit: string) {\n if (unit === 'year') {\n return this.startOfYear(m)\n }\n if (unit === 'month') {\n return this.startOfMonth(m)\n }\n if (unit === 'week') {\n return this.startOfWeek(m)\n }\n if (unit === 'day') {\n return startOfDay(m)\n }\n if (unit === 'hour') {\n return startOfHour(m)\n }\n if (unit === 'minute') {\n return startOfMinute(m)\n }\n if (unit === 'second') {\n return startOfSecond(m)\n }\n return null\n }\n\n startOfYear(m: DateMarker): DateMarker {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n ])\n }\n\n startOfMonth(m: DateMarker): DateMarker {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n ])\n }\n\n startOfWeek(m: DateMarker): DateMarker {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),\n ])\n }\n\n // Week Number\n\n computeWeekNumber(marker: DateMarker): number {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker))\n }\n return weekOfYear(marker, this.weekDow, this.weekDoy)\n }\n\n // TODO: choke on timeZoneName: long\n format(marker: DateMarker, formatter: DateFormatter, dateOptions: { forcedTzo?: number } = {}) {\n return formatter.format(\n {\n marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker),\n },\n this,\n )\n }\n\n formatRange(\n start: DateMarker,\n end: DateMarker,\n formatter: DateFormatter,\n dateOptions: { forcedStartTzo?: number, forcedEndTzo?: number, isEndExclusive?: boolean, defaultSeparator?: string } = {},\n ) {\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1)\n }\n\n return formatter.formatRange(\n {\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start),\n },\n {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end),\n },\n this,\n dateOptions.defaultSeparator,\n )\n }\n\n /*\n DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n might as well use buildIsoString or some other util directly\n */\n formatIso(marker: DateMarker, extraOptions: any = {}) {\n let timeZoneOffset = null\n\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo\n } else {\n timeZoneOffset = this.offsetForMarker(marker)\n }\n }\n\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime)\n }\n\n // TimeZone\n\n timestampToMarker(ms: number) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)))\n } if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms)\n }\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms))\n }\n\n offsetForMarker(m: DateMarker) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset() // convert \"inverse\" offset to \"normal\" offset\n } if (this.timeZone === 'UTC') {\n return 0\n } if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m))\n }\n return null\n }\n\n // Conversion\n\n toDate(m: DateMarker, forcedTzo?: number): Date {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m))\n }\n\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()) // make sure it's a copy\n }\n\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0))\n }\n\n return new Date(\n m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60, // convert minutes -> ms\n )\n }\n}\n","import { LocaleInput } from './datelib/locale'\n\nexport const globalLocales: LocaleInput[] = []\n","import { mergeProps } from '../util/object'\nimport { globalLocales } from '../global-locales' // weird to be importing this\nimport { CalendarOptions, CalendarOptionsRefined } from '../options'\n\nexport type LocaleCodeArg = string | string[]\nexport type LocaleSingularArg = LocaleCodeArg | LocaleInput\n\nexport interface Locale {\n codeArg: LocaleCodeArg\n codes: string[]\n week: { dow: number, doy: number }\n simpleNumberFormat: Intl.NumberFormat\n options: CalendarOptionsRefined\n}\n\nexport interface LocaleInput extends CalendarOptions {\n code: string\n}\n\nexport type LocaleInputMap = { [code: string]: LocaleInput }\n\nexport interface RawLocaleInfo {\n map: LocaleInputMap\n defaultCode: string\n}\n\nconst RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 4, // 4 days need to be within the year to be considered the first week\n },\n direction: 'ltr' as ('ltr' | 'rtl'), // TODO: make a real type for this\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list',\n },\n weekText: 'W',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display',\n}\n\nexport function organizeRawLocales(explicitRawLocales: LocaleInput[]): RawLocaleInfo {\n let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en'\n let allRawLocales = globalLocales.concat(explicitRawLocales)\n let rawLocaleMap: LocaleInputMap = {\n en: RAW_EN_LOCALE, // necessary?\n }\n\n for (let rawLocale of allRawLocales) {\n rawLocaleMap[rawLocale.code] = rawLocale\n }\n\n return {\n map: rawLocaleMap,\n defaultCode,\n }\n}\n\nexport function buildLocale(inputSingular: LocaleSingularArg, available: LocaleInputMap) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(\n inputSingular.code,\n [inputSingular.code],\n inputSingular,\n )\n }\n return queryLocale(inputSingular, available)\n}\n\nfunction queryLocale(codeArg: LocaleCodeArg, available: LocaleInputMap): Locale {\n let codes = [].concat(codeArg || []) // will convert to array\n let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE\n\n return parseLocale(codeArg, codes, raw)\n}\n\nfunction queryRawLocale(codes: string[], available: LocaleInputMap): LocaleInput {\n for (let i = 0; i < codes.length; i += 1) {\n let parts = codes[i].toLocaleLowerCase().split('-')\n\n for (let j = parts.length; j > 0; j -= 1) {\n let simpleId = parts.slice(0, j).join('-')\n\n if (available[simpleId]) {\n return available[simpleId]\n }\n }\n }\n return null\n}\n\nfunction parseLocale(codeArg: LocaleCodeArg, codes: string[], raw: LocaleInput): Locale {\n let merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText'])\n\n delete merged.code // don't want this part of the options\n let { week } = merged\n delete merged.week\n\n return {\n codeArg,\n codes,\n week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged,\n }\n}\n","import { EventInput } from './event-parse'\nimport { EventStore, parseEvents } from './event-store'\nimport { CalendarContext } from '../CalendarContext'\n\n/*\nUtils for converting raw business hour input into an EventStore,\nfor both rendering and the constraint system.\n*/\n\nexport type BusinessHoursInput = boolean | EventInput | EventInput[]\n\nconst DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5], // monday - friday\n display: 'inverse-background',\n classNames: 'fc-non-business',\n groupId: '_businessHours', // so multiple defs get grouped\n}\n\n/*\nTODO: pass around as EventDefHash!!!\n*/\nexport function parseBusinessHours(input: BusinessHoursInput, context: CalendarContext): EventStore {\n return parseEvents(\n refineInputs(input),\n null,\n context,\n )\n}\n\nfunction refineInputs(input: BusinessHoursInput) {\n let rawDefs\n\n if (input === true) {\n rawDefs = [{}] // will get DEF_DEFAULTS verbatim\n } else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter((rawDef) => rawDef.daysOfWeek)\n } else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input]\n } else { // is probably false\n rawDefs = []\n }\n\n rawDefs = rawDefs.map((rawDef) => ({ ...DEF_DEFAULTS, ...rawDef }))\n\n return rawDefs\n}\n","let canVGrowWithinCell: boolean\n\nexport function getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell()\n }\n return canVGrowWithinCell\n}\n\nfunction computeCanVGrowWithinCell() {\n // for SSR, because this function is call immediately at top-level\n // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n if (typeof document === 'undefined') {\n return true\n }\n\n let el = document.createElement('div')\n el.style.position = 'absolute'\n el.style.top = '0px'\n el.style.left = '0px'\n el.innerHTML = '
'\n el.querySelector('table').style.height = '100px'\n el.querySelector('div').style.height = '100%'\n\n document.body.appendChild(el)\n\n let div = el.querySelector('div')\n let possible = div.offsetHeight > 0\n document.body.removeChild(el)\n return possible\n}\n","export interface Point {\n left: number\n top: number\n}\n\nexport interface Rect {\n left: number\n right: number\n top: number\n bottom: number\n}\n\nexport function pointInsideRect(point: Point, rect: Rect): boolean {\n return point.left >= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom\n}\n\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nexport function intersectRects(rect1: Rect, rect2: Rect): Rect | false {\n let res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom),\n }\n\n if (res.left < res.right && res.top < res.bottom) {\n return res\n }\n\n return false\n}\n\nexport function translateRect(rect: Rect, deltaX: number, deltaY: number): Rect {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY,\n }\n}\n\n// Returns a new point that will have been moved to reside within the given rectangle\nexport function constrainPoint(point: Point, rect: Rect): Point {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom),\n }\n}\n\n// Returns a point that is the center of the given rectangle\nexport function getRectCenter(rect: Rect): Point {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2,\n }\n}\n\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nexport function diffPoints(point1: Point, point2: Point): Point {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top,\n }\n}\n","import { __assign } from 'tslib'\nimport { EventStore, createEmptyEventStore } from '../structs/event-store'\nimport { EventDef } from '../structs/event-def'\nimport { EventInteractionState } from '../interactions/event-interaction-state'\nimport { mapHash } from '../util/object'\nimport { memoize } from '../util/memoize'\nimport { EventUiHash, EventUi, combineEventUis } from './event-ui'\nimport { DateSpan } from '../structs/date-span'\n\nexport interface SplittableProps {\n businessHours: EventStore | null // is this really allowed to be null?\n dateSelection: DateSpan | null\n eventStore: EventStore\n eventUiBases: EventUiHash\n eventSelection: string\n eventDrag: EventInteractionState | null\n eventResize: EventInteractionState | null\n}\n\nconst EMPTY_EVENT_STORE = createEmptyEventStore() // for purecomponents. TODO: keep elsewhere\n\nexport abstract class Splitter {\n private getKeysForEventDefs = memoize(this._getKeysForEventDefs)\n private splitDateSelection = memoize(this._splitDateSpan)\n private splitEventStore = memoize(this._splitEventStore)\n private splitIndividualUi = memoize(this._splitIndividualUi)\n private splitEventDrag = memoize(this._splitInteraction)\n private splitEventResize = memoize(this._splitInteraction)\n private eventUiBuilders = {} // TODO: typescript protection\n\n abstract getKeyInfo(props: PropsType): { [key: string]: { ui?: EventUi, businessHours?: EventStore } }\n abstract getKeysForDateSpan(dateSpan: DateSpan): string[]\n abstract getKeysForEventDef(eventDef: EventDef): string[]\n\n splitProps(props: PropsType): { [key: string]: SplittableProps } {\n let keyInfos = this.getKeyInfo(props)\n let defKeys = this.getKeysForEventDefs(props.eventStore)\n let dateSelections = this.splitDateSelection(props.dateSelection)\n let individualUi = this.splitIndividualUi(props.eventUiBases, defKeys) // the individual *bases*\n let eventStores = this.splitEventStore(props.eventStore, defKeys)\n let eventDrags = this.splitEventDrag(props.eventDrag)\n let eventResizes = this.splitEventResize(props.eventResize)\n let splitProps: { [key: string]: SplittableProps } = {}\n\n this.eventUiBuilders = mapHash(keyInfos, (info, key) => this.eventUiBuilders[key] || memoize(buildEventUiForKey))\n\n for (let key in keyInfos) {\n let keyInfo = keyInfos[key]\n let eventStore = eventStores[key] || EMPTY_EVENT_STORE\n let buildEventUi = this.eventUiBuilders[key]\n\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null,\n }\n }\n\n return splitProps\n }\n\n private _splitDateSpan(dateSpan: DateSpan | null) {\n let dateSpans = {}\n\n if (dateSpan) {\n let keys = this.getKeysForDateSpan(dateSpan)\n\n for (let key of keys) {\n dateSpans[key] = dateSpan\n }\n }\n\n return dateSpans\n }\n\n private _getKeysForEventDefs(eventStore: EventStore) {\n return mapHash(eventStore.defs, (eventDef: EventDef) => this.getKeysForEventDef(eventDef))\n }\n\n private _splitEventStore(eventStore: EventStore, defKeys): { [key: string]: EventStore } {\n let { defs, instances } = eventStore\n let splitStores = {}\n\n for (let defId in defs) {\n for (let key of defKeys[defId]) {\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore()\n }\n\n splitStores[key].defs[defId] = defs[defId]\n }\n }\n\n for (let instanceId in instances) {\n let instance = instances[instanceId]\n\n for (let key of defKeys[instance.defId]) {\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance\n }\n }\n }\n\n return splitStores\n }\n\n private _splitIndividualUi(eventUiBases: EventUiHash, defKeys): { [key: string]: EventUiHash } {\n let splitHashes: { [key: string]: EventUiHash } = {}\n\n for (let defId in eventUiBases) {\n if (defId) { // not the '' key\n for (let key of defKeys[defId]) {\n if (!splitHashes[key]) {\n splitHashes[key] = {}\n }\n\n splitHashes[key][defId] = eventUiBases[defId]\n }\n }\n }\n\n return splitHashes\n }\n\n private _splitInteraction(interaction: EventInteractionState | null): { [key: string]: EventInteractionState } {\n let splitStates: { [key: string]: EventInteractionState } = {}\n\n if (interaction) {\n let affectedStores = this._splitEventStore(\n interaction.affectedEvents,\n this._getKeysForEventDefs(interaction.affectedEvents), // can't use cached. might be events from other calendar\n )\n\n // can't rely on defKeys because event data is mutated\n let mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents)\n let mutatedStores = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId)\n\n let populate = (key) => {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n }\n }\n }\n\n for (let key in affectedStores) {\n populate(key)\n }\n\n for (let key in mutatedStores) {\n populate(key)\n }\n }\n\n return splitStates\n }\n}\n\nfunction buildEventUiForKey(allUi: EventUi | null, eventUiForKey: EventUi | null, individualUi: EventUiHash | null) {\n let baseParts = []\n\n if (allUi) {\n baseParts.push(allUi)\n }\n\n if (eventUiForKey) {\n baseParts.push(eventUiForKey)\n }\n\n let stuff = {\n '': combineEventUis(baseParts),\n }\n\n if (individualUi) {\n __assign(stuff, individualUi)\n }\n\n return stuff\n}\n","import { DateMarker, DAY_IDS } from '../datelib/marker'\nimport { rangeContainsMarker, DateRange } from '../datelib/date-range'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Theme } from '../theme/Theme'\n\nexport interface DateMeta {\n dow: number\n isDisabled: boolean\n isOther: boolean // like, is it in the non-current \"other\" month\n isToday: boolean\n isPast: boolean\n isFuture: boolean\n}\n\nexport function getDateMeta(date: DateMarker, todayRange?: DateRange, nowDate?: DateMarker, dateProfile?: DateProfile): DateMeta {\n return {\n dow: date.getUTCDay(),\n isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),\n isFuture: Boolean(nowDate ? (date > nowDate) : todayRange ? (date >= todayRange.end) : false),\n }\n}\n\nexport function getDayClassNames(meta: DateMeta, theme: Theme) {\n let classNames: string[] = [\n 'fc-day',\n `fc-day-${DAY_IDS[meta.dow]}`,\n ]\n\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled')\n } else {\n if (meta.isToday) {\n classNames.push('fc-day-today')\n classNames.push(theme.getClass('today'))\n }\n\n if (meta.isPast) {\n classNames.push('fc-day-past')\n }\n\n if (meta.isFuture) {\n classNames.push('fc-day-future')\n }\n\n if (meta.isOther) {\n classNames.push('fc-day-other')\n }\n }\n\n return classNames\n}\n\nexport function getSlotClassNames(meta: DateMeta, theme: Theme) {\n let classNames: string[] = [\n 'fc-slot',\n `fc-slot-${DAY_IDS[meta.dow]}`,\n ]\n\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled')\n } else {\n if (meta.isToday) {\n classNames.push('fc-slot-today')\n classNames.push(theme.getClass('today'))\n }\n\n if (meta.isPast) {\n classNames.push('fc-slot-past')\n }\n\n if (meta.isFuture) {\n classNames.push('fc-slot-future')\n }\n }\n\n return classNames\n}\n","import { formatDayString } from '../datelib/formatting-utils'\nimport { DateMarker } from '../datelib/marker'\n\nexport function buildNavLinkData(date: DateMarker, type = 'day') {\n return JSON.stringify({\n date: formatDayString(date),\n type,\n })\n}\n","import { removeElement, applyStyle } from './dom-manip'\n\nlet _isRtlScrollbarOnLeft: boolean | null = null\n\nexport function getIsRtlScrollbarOnLeft() { // responsible for caching the computation\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft()\n }\n return _isRtlScrollbarOnLeft\n}\n\nfunction computeIsRtlScrollbarOnLeft() { // creates an offscreen test element, then removes it\n let outerEl = document.createElement('div')\n applyStyle(outerEl, {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl',\n })\n outerEl.innerHTML = '
'\n\n document.body.appendChild(outerEl)\n let innerEl = outerEl.firstChild as HTMLElement\n let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left\n\n removeElement(outerEl)\n return res\n}\n","export interface ScrollbarWidths {\n x: number\n y: number // TODO: rename to vertical. less confusing when dealing with width/height verbage\n}\n\nlet _scrollbarWidths: ScrollbarWidths | undefined\n\nexport function getScrollbarWidths() { // TODO: way to force recompute?\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths()\n }\n\n return _scrollbarWidths\n}\n\nfunction computeScrollbarWidths(): ScrollbarWidths {\n let el = document.createElement('div')\n el.style.overflow = 'scroll'\n el.style.position = 'absolute'\n el.style.top = '-9999px'\n el.style.left = '-9999px'\n document.body.appendChild(el)\n let res = computeScrollbarWidthsForEl(el)\n document.body.removeChild(el)\n return res\n}\n\n// WARNING: will include border\nexport function computeScrollbarWidthsForEl(el: HTMLElement): ScrollbarWidths {\n return {\n x: el.offsetHeight - el.clientHeight,\n y: el.offsetWidth - el.clientWidth,\n }\n}\n","import { intersectRects, Rect } from './geom'\nimport { getIsRtlScrollbarOnLeft } from './scrollbar-side'\nimport { computeScrollbarWidthsForEl } from './scrollbar-width'\n\nexport interface EdgeInfo {\n borderLeft: number\n borderRight: number\n borderTop: number\n borderBottom: number\n scrollbarLeft: number\n scrollbarRight: number\n scrollbarBottom: number\n paddingLeft?: number\n paddingRight?: number\n paddingTop?: number\n paddingBottom?: number\n}\n\nexport function computeEdges(el: HTMLElement, getPadding = false): EdgeInfo { // cache somehow?\n let computedStyle = window.getComputedStyle(el)\n let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0\n let borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0\n let borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0\n let borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0\n let badScrollbarWidths = computeScrollbarWidthsForEl(el) // includes border!\n let scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight\n let scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom\n\n let res: EdgeInfo = {\n borderLeft,\n borderRight,\n borderTop,\n borderBottom,\n scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0,\n }\n\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight\n } else {\n res.scrollbarRight = scrollbarLeftRight\n }\n\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0\n }\n\n return res\n}\n\nexport function computeInnerRect(el, goWithinPadding = false, doFromWindowViewport?: boolean) {\n let outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el)\n let edges = computeEdges(el, goWithinPadding)\n let res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom,\n }\n\n if (goWithinPadding) {\n res.left += edges.paddingLeft\n res.right -= edges.paddingRight\n res.top += edges.paddingTop\n res.bottom -= edges.paddingBottom\n }\n\n return res\n}\n\nexport function computeRect(el): Rect {\n let rect = el.getBoundingClientRect()\n\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset,\n }\n}\n\nexport function computeClippedClientRect(el: HTMLElement): Rect | null {\n let clippingParents = getClippingParents(el)\n let rect: Rect = el.getBoundingClientRect()\n\n for (let clippingParent of clippingParents) {\n let intersection = intersectRects(rect, clippingParent.getBoundingClientRect())\n if (intersection) {\n rect = intersection\n } else {\n return null\n }\n }\n\n return rect\n}\n\nexport function computeHeightAndMargins(el: HTMLElement) {\n return el.getBoundingClientRect().height + computeVMargins(el)\n}\n\nexport function computeVMargins(el: HTMLElement) {\n let computed = window.getComputedStyle(el)\n\n return parseInt(computed.marginTop, 10) +\n parseInt(computed.marginBottom, 10)\n}\n\n// does not return window\nexport function getClippingParents(el: HTMLElement): HTMLElement[] {\n let parents: HTMLElement[] = []\n\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n let computedStyle = window.getComputedStyle(el)\n\n if (computedStyle.position === 'fixed') {\n break\n }\n\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el)\n }\n\n el = el.parentNode as HTMLElement\n }\n\n return parents\n}\n","export interface HandlerFuncTypeHash {\n [eventName: string]: (...args: any[]) => any // with all properties required\n}\n\nexport class Emitter {\n private handlers: { [Prop in keyof HandlerFuncs]?: HandlerFuncs[Prop][] } = {}\n\n private options: Partial\n\n private thisContext: any = null\n\n setThisContext(thisContext) {\n this.thisContext = thisContext\n }\n\n setOptions(options: Partial) {\n this.options = options\n }\n\n on(type: Prop, handler: HandlerFuncs[Prop]) {\n addToHash(this.handlers, type, handler)\n }\n\n off(type: Prop, handler?: HandlerFuncs[Prop]) {\n removeFromHash(this.handlers, type, handler)\n }\n\n trigger(type: Prop, ...args: Parameters) {\n let attachedHandlers = this.handlers[type] || []\n let optionHandler = this.options && this.options[type]\n let handlers = [].concat(optionHandler || [], attachedHandlers)\n\n for (let handler of handlers) {\n handler.apply(this.thisContext, args)\n }\n }\n\n hasHandlers(type: keyof HandlerFuncs) {\n return (this.handlers[type] && this.handlers[type].length) ||\n (this.options && this.options[type])\n }\n}\n\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler)\n}\n\nfunction removeFromHash(hash, type, handler?) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter((func) => func !== handler)\n }\n } else {\n delete hash[type] // remove all handler funcs for this type\n }\n}\n","/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nexport class PositionCache {\n els: HTMLElement[] // assumed to be siblings\n originClientRect: ClientRect\n\n // arrays of coordinates (from topleft of originEl)\n // caller can access these directly\n lefts: any\n rights: any\n tops: any\n bottoms: any\n\n constructor(originEl: HTMLElement, els: HTMLElement[], isHorizontal: boolean, isVertical: boolean) {\n this.els = els\n\n let originClientRect = this.originClientRect = originEl.getBoundingClientRect() // relative to viewport top-left\n\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left)\n }\n\n if (isVertical) {\n this.buildElVerticals(originClientRect.top)\n }\n }\n\n // Populates the left/right internal coordinate arrays\n buildElHorizontals(originClientLeft: number) {\n let lefts = []\n let rights = []\n\n for (let el of this.els) {\n let rect = el.getBoundingClientRect()\n lefts.push(rect.left - originClientLeft)\n rights.push(rect.right - originClientLeft)\n }\n\n this.lefts = lefts\n this.rights = rights\n }\n\n // Populates the top/bottom internal coordinate arrays\n buildElVerticals(originClientTop: number) {\n let tops = []\n let bottoms = []\n\n for (let el of this.els) {\n let rect = el.getBoundingClientRect()\n tops.push(rect.top - originClientTop)\n bottoms.push(rect.bottom - originClientTop)\n }\n\n this.tops = tops\n this.bottoms = bottoms\n }\n\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n leftToIndex(leftPosition: number) {\n let { lefts, rights } = this\n let len = lefts.length\n let i\n\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i\n }\n }\n\n return undefined // TODO: better\n }\n\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n topToIndex(topPosition: number) {\n let { tops, bottoms } = this\n let len = tops.length\n let i\n\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i\n }\n }\n\n return undefined // TODO: better\n }\n\n // Gets the width of the element at the given index\n getWidth(leftIndex: number) {\n return this.rights[leftIndex] - this.lefts[leftIndex]\n }\n\n // Gets the height of the element at the given index\n getHeight(topIndex: number) {\n return this.bottoms[topIndex] - this.tops[topIndex]\n }\n}\n","/* eslint max-classes-per-file: \"off\" */\n\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nexport abstract class ScrollController {\n abstract getScrollTop(): number\n abstract getScrollLeft(): number\n abstract setScrollTop(top: number): void\n abstract setScrollLeft(left: number): void\n abstract getClientWidth(): number\n abstract getClientHeight(): number\n abstract getScrollWidth(): number\n abstract getScrollHeight(): number\n\n getMaxScrollTop() {\n return this.getScrollHeight() - this.getClientHeight()\n }\n\n getMaxScrollLeft() {\n return this.getScrollWidth() - this.getClientWidth()\n }\n\n canScrollVertically() {\n return this.getMaxScrollTop() > 0\n }\n\n canScrollHorizontally() {\n return this.getMaxScrollLeft() > 0\n }\n\n canScrollUp() {\n return this.getScrollTop() > 0\n }\n\n canScrollDown() {\n return this.getScrollTop() < this.getMaxScrollTop()\n }\n\n canScrollLeft() {\n return this.getScrollLeft() > 0\n }\n\n canScrollRight() {\n return this.getScrollLeft() < this.getMaxScrollLeft()\n }\n}\n\nexport class ElementScrollController extends ScrollController {\n el: HTMLElement\n\n constructor(el: HTMLElement) {\n super()\n this.el = el\n }\n\n getScrollTop() {\n return this.el.scrollTop\n }\n\n getScrollLeft() {\n return this.el.scrollLeft\n }\n\n setScrollTop(top: number) {\n this.el.scrollTop = top\n }\n\n setScrollLeft(left: number) {\n this.el.scrollLeft = left\n }\n\n getScrollWidth() {\n return this.el.scrollWidth\n }\n\n getScrollHeight() {\n return this.el.scrollHeight\n }\n\n getClientHeight() {\n return this.el.clientHeight\n }\n\n getClientWidth() {\n return this.el.clientWidth\n }\n}\n\nexport class WindowScrollController extends ScrollController {\n getScrollTop() {\n return window.pageYOffset\n }\n\n getScrollLeft() {\n return window.pageXOffset\n }\n\n setScrollTop(n: number) {\n window.scroll(window.pageXOffset, n)\n }\n\n setScrollLeft(n: number) {\n window.scroll(n, window.pageYOffset)\n }\n\n getScrollWidth() {\n return document.documentElement.scrollWidth\n }\n\n getScrollHeight() {\n return document.documentElement.scrollHeight\n }\n\n getClientHeight() {\n return document.documentElement.clientHeight\n }\n\n getClientWidth() {\n return document.documentElement.clientWidth\n }\n}\n","import { CalendarOptionsRefined } from '../options'\n\nexport class Theme {\n // settings. default values are set after the class\n classes: any\n iconClasses: any\n rtlIconClasses: any\n baseIconClass: string // className that ALL icon elements for this theme should have\n iconOverrideOption: any // the name of the setting to use for icons. the subclass must set this.\n iconOverrideCustomButtonOption: any // the name of the setting, *within* each customButtons object, to use for icons\n iconOverridePrefix: string\n\n constructor(calendarOptions: CalendarOptionsRefined) {\n if (this.iconOverrideOption) {\n this.setIconOverride(\n calendarOptions[this.iconOverrideOption],\n )\n }\n }\n\n setIconOverride(iconOverrideHash) {\n let iconClassesCopy\n let buttonName\n\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = { ...this.iconClasses }\n\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(\n iconOverrideHash[buttonName],\n )\n }\n\n this.iconClasses = iconClassesCopy\n } else if (iconOverrideHash === false) {\n this.iconClasses = {}\n }\n }\n\n applyIconOverridePrefix(className) {\n let prefix = this.iconOverridePrefix\n\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className\n }\n\n return className\n }\n\n getClass(key) {\n return this.classes[key] || ''\n }\n\n getIconClass(buttonName, isRtl?: boolean) {\n let className\n\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName]\n } else {\n className = this.iconClasses[buttonName]\n }\n\n if (className) {\n return `${this.baseIconClass} ${className}`\n }\n\n return ''\n }\n\n getCustomButtonIconClass(customButtonProps) {\n let className\n\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption]\n\n if (className) {\n return `${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`\n }\n }\n\n return ''\n }\n}\n\nTheme.prototype.classes = {}\nTheme.prototype.iconClasses = {}\nTheme.prototype.baseIconClass = ''\nTheme.prototype.iconOverridePrefix = ''\n\nexport type ThemeClass = { new(calendarOptions: any): Theme }\n","import { __assign } from 'tslib'\nimport { Duration } from './datelib/duration'\nimport { Emitter } from './common/Emitter'\nimport { CalendarListeners } from './options'\n\nexport interface ScrollRequest {\n time?: Duration\n [otherProp: string]: any\n}\n\nexport type ScrollRequestHandler = (request: ScrollRequest) => boolean\n\nexport class ScrollResponder {\n queuedRequest: ScrollRequest\n\n constructor(\n private execFunc: ScrollRequestHandler,\n private emitter: Emitter,\n private scrollTime: Duration,\n private scrollTimeReset: boolean,\n ) {\n emitter.on('_scrollRequest', this.handleScrollRequest)\n this.fireInitialScroll()\n }\n\n detach() {\n this.emitter.off('_scrollRequest', this.handleScrollRequest)\n }\n\n update(isDatesNew: boolean) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll() // will drain\n } else {\n this.drain()\n }\n }\n\n private fireInitialScroll() {\n this.handleScrollRequest({\n time: this.scrollTime,\n })\n }\n\n private handleScrollRequest = (request: ScrollRequest) => {\n this.queuedRequest = __assign({}, this.queuedRequest || {}, request)\n this.drain()\n }\n\n private drain() {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null\n }\n }\n}\n","import { CalendarApi } from './CalendarApi'\nimport { ViewApi } from './ViewApi'\nimport { Theme } from './theme/Theme'\nimport { DateEnv } from './datelib/env'\nimport { PluginHooks } from './plugin-system-struct'\nimport { createContext, Context } from './vdom'\nimport { ScrollResponder, ScrollRequestHandler } from './ScrollResponder'\nimport { DateProfileGenerator } from './DateProfileGenerator'\nimport { ViewSpec } from './structs/view-spec'\nimport { CalendarData } from './reducers/data-types'\nimport { Action } from './reducers/Action'\nimport { Emitter } from './common/Emitter'\nimport { InteractionSettingsInput } from './interactions/interaction'\nimport { DateComponent } from './component/DateComponent'\nimport { CalendarContext } from './CalendarContext'\nimport { createDuration } from './datelib/duration'\nimport { ViewOptionsRefined, CalendarListeners } from './options'\n\nexport const ViewContextType: Context = createContext({} as any) // for Components\nexport type ResizeHandler = (force: boolean) => void\n\n/*\nit's important that ViewContext extends CalendarContext so that components that subscribe to ViewContext\ncan pass in their ViewContext to util functions that accept CalendarContext.\n*/\nexport interface ViewContext extends CalendarContext {\n options: ViewOptionsRefined // more specific than BaseOptionsRefined\n theme: Theme\n isRtl: boolean\n dateProfileGenerator: DateProfileGenerator\n viewSpec: ViewSpec\n viewApi: ViewApi\n addResizeHandler: (handler: ResizeHandler) => void\n removeResizeHandler: (handler: ResizeHandler) => void\n createScrollResponder: (execFunc: ScrollRequestHandler) => ScrollResponder\n registerInteractiveComponent: (component: DateComponent, settingsInput: InteractionSettingsInput) => void\n unregisterInteractiveComponent: (component: DateComponent) => void\n}\n\nexport function buildViewContext(\n viewSpec: ViewSpec,\n viewApi: ViewApi,\n viewOptions: ViewOptionsRefined,\n dateProfileGenerator: DateProfileGenerator,\n dateEnv: DateEnv,\n theme: Theme,\n pluginHooks: PluginHooks,\n dispatch: (action: Action) => void,\n getCurrentData: () => CalendarData,\n emitter: Emitter,\n calendarApi: CalendarApi,\n registerInteractiveComponent: (component: DateComponent, settingsInput: InteractionSettingsInput) => void,\n unregisterInteractiveComponent: (component: DateComponent) => void,\n): ViewContext {\n return {\n dateEnv,\n options: viewOptions,\n pluginHooks,\n emitter,\n dispatch,\n getCurrentData,\n calendarApi,\n viewSpec,\n viewApi,\n dateProfileGenerator,\n theme,\n isRtl: viewOptions.direction === 'rtl',\n addResizeHandler(handler: ResizeHandler) {\n emitter.on('_resize', handler)\n },\n removeResizeHandler(handler: ResizeHandler) {\n emitter.off('_resize', handler)\n },\n createScrollResponder(execFunc: ScrollRequestHandler) {\n return new ScrollResponder(\n execFunc,\n emitter,\n createDuration(viewOptions.scrollTime),\n viewOptions.scrollTimeReset,\n )\n },\n registerInteractiveComponent,\n unregisterInteractiveComponent,\n }\n}\n","/* eslint max-classes-per-file: off */\n\nimport { __assign } from 'tslib'\nimport { Component, Ref } from './vdom'\nimport { ViewContextType, ViewContext } from './ViewContext'\nimport { compareObjs, EqualityFuncs, getUnequalProps } from './util/object'\nimport { Dictionary } from './options'\n\nexport abstract class PureComponent extends Component {\n static addPropsEquality = addPropsEquality\n static addStateEquality = addStateEquality\n static contextType: any = ViewContextType\n\n context: ViewContext\n propEquality: EqualityFuncs\n stateEquality: EqualityFuncs\n\n debug: boolean\n\n shouldComponentUpdate(nextProps: Props, nextState: State) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state))\n }\n\n return !compareObjs(this.props, nextProps, this.propEquality) ||\n !compareObjs(this.state, nextState, this.stateEquality)\n }\n}\n\nPureComponent.prototype.propEquality = {}\nPureComponent.prototype.stateEquality = {}\n\nexport abstract class BaseComponent extends PureComponent {\n static contextType: any = ViewContextType\n\n context: ViewContext\n}\n\nfunction addPropsEquality(this: { prototype: { propEquality: any } }, propEquality) {\n let hash = Object.create(this.prototype.propEquality)\n __assign(hash, propEquality)\n this.prototype.propEquality = hash\n}\n\nfunction addStateEquality(this: { prototype: { stateEquality: any } }, stateEquality) {\n let hash = Object.create(this.prototype.stateEquality)\n __assign(hash, stateEquality)\n this.prototype.stateEquality = hash\n}\n\n// use other one\nexport function setRef(ref: Ref | void, current: RefType) {\n if (typeof ref === 'function') {\n ref(current)\n } else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n (ref as any).current = current\n }\n}\n","import { BaseComponent } from '../vdom-util'\nimport { EventRenderRange } from './event-rendering'\nimport { EventInstanceHash } from '../structs/event-instance'\nimport { Hit } from '../interactions/hit'\nimport { elementClosest } from '../util/dom-manip'\nimport { guid } from '../util/misc'\nimport { Dictionary } from '../options'\n\nexport type DateComponentHash = { [uid: string]: DateComponent }\n\n// NOTE: for fg-events, eventRange.range is NOT sliced,\n// thus, we need isStart/isEnd\nexport interface Seg {\n component?: DateComponent\n isStart: boolean\n isEnd: boolean\n eventRange?: EventRenderRange\n [otherProp: string]: any // TODO: remove this. extending Seg will handle this\n el?: never\n // NOTE: can sometimes have start/end, which are important values :(\n}\n\nexport interface EventSegUiInteractionState {\n affectedInstances: EventInstanceHash\n segs: Seg[]\n isEvent: boolean\n}\n\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nexport abstract class DateComponent extends BaseComponent {\n uid = guid()\n\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n\n prepareHits() {\n }\n\n queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit | null {\n return null // this should be abstract\n }\n\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n\n isValidSegDownEl(el: HTMLElement) {\n return !(this.props as any).eventDrag && // HACK\n !(this.props as any).eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror')\n }\n\n isValidDateDownEl(el: HTMLElement) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&\n !elementClosest(el, '.fc-more-link') && // a \"more..\" link\n !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n !elementClosest(el, '.fc-popover') // hack\n }\n}\n","import { guid } from './util/misc'\nimport { PluginDefInput, PluginDef, PluginHooks } from './plugin-system-struct'\nimport { isArraysEqual } from './util/array'\n\n// TODO: easier way to add new hooks? need to update a million things\n\nexport function createPlugin(input: PluginDefInput): PluginDef {\n return {\n id: guid(),\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n viewContainerAppends: input.viewContainerAppends || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n contentTypeHandlers: input.contentTypeHandlers || {},\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {},\n }\n}\n\nfunction buildPluginHooks(pluginDefs: PluginDef[], globalDefs: PluginDef[]): PluginHooks {\n let isAdded: { [pluginId: string]: boolean } = {}\n let hooks: PluginHooks = {\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n contentTypeHandlers: {},\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {},\n }\n\n function addDefs(defs: PluginDef[]) {\n for (let def of defs) {\n if (!isAdded[def.id]) {\n isAdded[def.id] = true\n addDefs(def.deps)\n hooks = combineHooks(hooks, def)\n }\n }\n }\n\n if (pluginDefs) {\n addDefs(pluginDefs)\n }\n\n addDefs(globalDefs)\n\n return hooks\n}\n\nexport function buildBuildPluginHooks() { // memoizes\n let currentOverrideDefs: PluginDef[] = []\n let currentGlobalDefs: PluginDef[] = []\n let currentHooks: PluginHooks\n\n return (overrideDefs: PluginDef[], globalDefs: PluginDef[]) => {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs)\n }\n currentOverrideDefs = overrideDefs\n currentGlobalDefs = globalDefs\n return currentHooks\n }\n}\n\nfunction combineHooks(hooks0: PluginHooks, hooks1: PluginHooks): PluginHooks {\n return {\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: { ...hooks0.eventRefiners, ...hooks1.eventRefiners },\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: { ...hooks0.eventSourceRefiners, ...hooks1.eventSourceRefiners },\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: { ...hooks0.views, ...hooks1.views },\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: { ...hooks0.themeClasses, ...hooks1.themeClasses },\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n initialView: hooks0.initialView || hooks1.initialView, // put earlier plugins FIRST\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl, // \"\n optionChangeHandlers: { ...hooks0.optionChangeHandlers, ...hooks1.optionChangeHandlers },\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n contentTypeHandlers: { ...hooks0.contentTypeHandlers, ...hooks1.contentTypeHandlers },\n listenerRefiners: { ...hooks0.listenerRefiners, ...hooks1.listenerRefiners },\n optionRefiners: { ...hooks0.optionRefiners, ...hooks1.optionRefiners },\n propSetHandlers: { ...hooks0.propSetHandlers, ...hooks1.propSetHandlers },\n }\n}\n","import { Theme } from './Theme'\n\nexport class StandardTheme extends Theme {\n}\n\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard', // TODO: compute this off of registered theme name\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n}\n\nStandardTheme.prototype.baseIconClass = 'fc-icon'\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right',\n}\nStandardTheme.prototype.rtlIconClasses = {\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left',\n}\n\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons' // TODO: make TS-friendly\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-'\n","import { ViewConfigHash, ViewComponentType } from './view-config'\nimport { ViewOptions } from '../options'\n\n/*\nRepresents information for an instantiatable View class along with settings\nthat are specific to that view. No other settings, like calendar-wide settings, are stored.\n*/\nexport interface ViewDef {\n type: string\n component: ViewComponentType\n overrides: ViewOptions\n defaults: ViewOptions\n}\n\nexport type ViewDefHash = { [viewType: string]: ViewDef }\n\nexport function compileViewDefs(defaultConfigs: ViewConfigHash, overrideConfigs: ViewConfigHash): ViewDefHash {\n let hash: ViewDefHash = {}\n let viewType: string\n\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs)\n }\n\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs)\n }\n\n return hash\n}\n\nfunction ensureViewDef(\n viewType: string,\n hash: ViewDefHash,\n defaultConfigs: ViewConfigHash,\n overrideConfigs: ViewConfigHash,\n): ViewDef | null {\n if (hash[viewType]) {\n return hash[viewType]\n }\n\n let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs)\n\n if (viewDef) {\n hash[viewType] = viewDef\n }\n\n return viewDef\n}\n\nfunction buildViewDef(\n viewType: string,\n hash: ViewDefHash,\n defaultConfigs: ViewConfigHash,\n overrideConfigs: ViewConfigHash,\n): ViewDef | null {\n let defaultConfig = defaultConfigs[viewType]\n let overrideConfig = overrideConfigs[viewType]\n\n let queryProp = (name) => (\n (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null)\n )\n\n let theComponent = queryProp('component') as ViewComponentType\n let superType = queryProp('superType') as string\n let superDef: ViewDef | null = null\n\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself')\n }\n\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs)\n }\n\n if (!theComponent && superDef) {\n theComponent = superDef.component\n }\n\n if (!theComponent) {\n return null // don't throw a warning, might be settings for a single-unit view\n }\n\n return {\n type: viewType,\n component: theComponent,\n defaults: {\n ...(superDef ? superDef.defaults : {}),\n ...(defaultConfig ? defaultConfig.rawOptions : {}),\n },\n overrides: {\n ...(superDef ? superDef.overrides : {}),\n ...(overrideConfig ? overrideConfig.rawOptions : {}),\n },\n }\n}\n","/* eslint max-classes-per-file: off */\n\nimport { Ref, createRef, ComponentChildren, createElement, RefObject, createContext, Context } from '../vdom'\nimport { setRef, BaseComponent } from '../vdom-util'\nimport { isPropsEqual } from '../util/object'\nimport { parseClassNames, ClassNamesInput } from '../util/html'\n\nexport type MountArg = ContentArg & { el: HTMLElement }\nexport type DidMountHandler = (mountArg: TheMountArg) => void\nexport type WillUnmountHandler = (mountArg: TheMountArg) => void\n\nexport interface RenderHookProps {\n hookProps: ContentArg\n classNames: ClassNamesGenerator\n content: CustomContentGenerator\n defaultContent?: DefaultContentGenerator\n didMount: DidMountHandler>\n willUnmount: WillUnmountHandler>\n children: RenderHookPropsChildren\n elRef?: Ref\n}\n\nexport type RenderHookPropsChildren = (\n rootElRef: Ref,\n classNames: string[],\n innerElRef: Ref,\n innerContent: ComponentChildren // if falsy, means it wasn't specified\n) => ComponentChildren\n\nexport interface ContentTypeHandlers {\n [contentKey: string]: () => ({\n render: (el: HTMLElement, contentVal: any) => void\n destroy?: () => void\n })\n}\n\n// NOTE: in JSX, you should always use this class with arg. otherwise, will default to any???\nexport class RenderHook extends BaseComponent> {\n private rootElRef = createRef()\n\n render() {\n let { props } = this\n let { hookProps } = props\n\n return (\n \n {(rootElRef) => (\n \n {(innerElRef, innerContent) => props.children(\n rootElRef,\n normalizeClassNames(props.classNames, hookProps),\n innerElRef,\n innerContent,\n )}\n \n )}\n \n )\n }\n\n handleRootEl = (el: HTMLElement | null) => {\n setRef(this.rootElRef, el)\n\n if (this.props.elRef) {\n setRef(this.props.elRef, el)\n }\n }\n}\n\nexport interface ObjCustomContent {\n html: string\n domNodes: any[]\n [custom: string]: any // TODO: expose hook for plugins to add!\n}\n\nexport type CustomContent = ComponentChildren | ObjCustomContent\nexport type CustomContentGenerator = CustomContent | ((hookProps: HookProps) => CustomContent)\n\nexport type DefaultContentGenerator = (hookProps: HookProps) => ComponentChildren\n// TODO: rename to be about function, not default. use in above type\n\n// for forcing rerender of components that use the ContentHook\nexport const CustomContentRenderContext: Context = createContext(0)\n\nexport interface ContentHookProps {\n hookProps: HookProps // produced by FullCalendar internally, for rendering an entity/whatever\n content: CustomContentGenerator // the value of a user-hook, like `eventContent`\n defaultContent?: DefaultContentGenerator // if content not specified (TODO: just use content?)\n children: ( // for producing a wrapper around the content\n innerElRef: Ref,\n innerContent: ComponentChildren // if falsy, means it wasn't specified\n ) => ComponentChildren\n backupElRef?: RefObject\n}\n\ninterface ContentHookInnerProps extends ContentHookProps {\n renderId: number\n}\n\nexport function ContentHook(props: ContentHookProps) { // TODO: rename to CustomContentHook?\n return (\n \n {(renderId) => (\n \n )}\n \n )\n}\n\nclass ContentHookInner extends BaseComponent> {\n private innerElRef = createRef()\n\n private customContentInfo: {\n contentKey: string\n contentVal: any\n render: (el: HTMLElement, contentVal: any) => void\n destroy?: () => void\n }\n\n render() {\n return this.props.children(this.innerElRef, this.renderInnerContent())\n }\n\n componentDidMount() {\n this.updateCustomContent()\n }\n\n componentDidUpdate() {\n this.updateCustomContent()\n }\n\n componentWillUnmount() {\n if (this.customContentInfo && this.customContentInfo.destroy) {\n this.customContentInfo.destroy()\n }\n }\n\n private renderInnerContent() {\n let { customContentInfo } = this // only populated if using non-[p]react node(s)\n let innerContent = this.getInnerContent()\n let meta = this.getContentMeta(innerContent)\n\n // initial run, or content-type changing? (from vue -> react for example)\n if (!customContentInfo || customContentInfo.contentKey !== meta.contentKey) {\n // clearing old value\n if (customContentInfo) {\n if (customContentInfo.destroy) {\n customContentInfo.destroy()\n }\n customContentInfo = this.customContentInfo = null\n }\n // assigning new value\n if (meta.contentKey) {\n customContentInfo = this.customContentInfo = { // for non-[p]react\n contentKey: meta.contentKey,\n contentVal: innerContent[meta.contentKey],\n ...meta.buildLifecycleFuncs(),\n }\n }\n // updating\n } else if (customContentInfo) {\n customContentInfo.contentVal = innerContent[meta.contentKey]\n }\n\n return customContentInfo\n ? [] // signal that something was specified\n : innerContent // assume a [p]react vdom node. use it\n }\n\n private getInnerContent() {\n let { props } = this\n let innerContent = normalizeContent(props.content, props.hookProps)\n\n if (innerContent === undefined) { // use the default\n innerContent = normalizeContent(props.defaultContent, props.hookProps)\n }\n\n return innerContent == null ? null : innerContent // convert undefined to null (better for React)\n }\n\n private getContentMeta(innerContent: any) {\n let { contentTypeHandlers } = this.context.pluginHooks\n let contentKey = ''\n let buildLifecycleFuncs = null\n\n if (innerContent) { // allowed to be null, for convenience to caller\n for (let searchKey in contentTypeHandlers) {\n if (innerContent[searchKey] !== undefined) {\n contentKey = searchKey\n buildLifecycleFuncs = contentTypeHandlers[searchKey]\n break\n }\n }\n }\n\n return { contentKey, buildLifecycleFuncs }\n }\n\n private updateCustomContent() {\n if (this.customContentInfo) { // for non-[p]react\n this.customContentInfo.render(\n this.innerElRef.current || this.props.backupElRef.current, // the element to render into\n this.customContentInfo.contentVal,\n )\n }\n }\n}\n\nexport interface MountHookProps {\n hookProps: ContentArg\n didMount: DidMountHandler>\n willUnmount: WillUnmountHandler>\n children: (rootElRef: Ref) => ComponentChildren\n elRef?: Ref // maybe get rid of once we have better API for caller to combine refs\n}\n\nexport class MountHook extends BaseComponent> {\n rootEl: HTMLElement\n\n render() {\n return this.props.children(this.handleRootEl)\n }\n\n componentDidMount() {\n let callback = this.props.didMount\n\n if (callback) {\n callback({ ...this.props.hookProps, el: this.rootEl })\n }\n }\n\n componentWillUnmount() {\n let callback = this.props.willUnmount\n\n if (callback) {\n callback({ ...this.props.hookProps, el: this.rootEl })\n }\n }\n\n private handleRootEl = (rootEl: HTMLElement) => {\n this.rootEl = rootEl\n\n if (this.props.elRef) {\n setRef(this.props.elRef, rootEl)\n }\n }\n}\n\nexport function buildClassNameNormalizer() { // TODO: general deep-memoizer?\n let currentGenerator: ClassNamesGenerator\n let currentHookProps: HookProps\n let currentClassNames: string[] = []\n\n return (generator: ClassNamesGenerator, hookProps: HookProps) => {\n if (!currentHookProps || !isPropsEqual(currentHookProps, hookProps) || generator !== currentGenerator) {\n currentGenerator = generator\n currentHookProps = hookProps\n currentClassNames = normalizeClassNames(generator, hookProps)\n }\n\n return currentClassNames\n }\n}\n\nexport type ClassNamesGenerator = ClassNamesInput | ((hookProps: HookProps) => ClassNamesInput)\n\nfunction normalizeClassNames(classNames: ClassNamesGenerator, hookProps: HookProps): string[] {\n if (typeof classNames === 'function') {\n classNames = classNames(hookProps)\n }\n\n return parseClassNames(classNames)\n}\n\nfunction normalizeContent(input, hookProps) {\n if (typeof input === 'function') {\n return input(hookProps, createElement) // give the function the vdom-creation func\n }\n return input\n}\n","import { ViewSpec } from '../structs/view-spec'\nimport { MountHook, buildClassNameNormalizer, MountArg } from './render-hook'\nimport { ComponentChildren, createElement, Ref } from '../vdom'\nimport { BaseComponent } from '../vdom-util'\nimport { ViewApi } from '../ViewApi'\n\nexport interface ViewRootProps {\n viewSpec: ViewSpec\n children: (rootElRef: Ref, classNames: string[]) => ComponentChildren\n elRef?: Ref\n}\n\nexport interface ViewContentArg {\n view: ViewApi\n}\n\nexport type ViewMountArg = MountArg\n\nexport class ViewRoot extends BaseComponent {\n normalizeClassNames = buildClassNameNormalizer()\n\n render() {\n let { props, context } = this\n let { options } = context\n let hookProps: ViewContentArg = { view: context.viewApi }\n let customClassNames = this.normalizeClassNames(options.viewClassNames, hookProps)\n\n return (\n \n {(rootElRef) => props.children(\n rootElRef,\n [`fc-${props.viewSpec.type}-view`, 'fc-view'].concat(customClassNames),\n )}\n \n )\n }\n}\n","import { ViewProps } from '../View'\nimport { mapHash } from '../util/object'\nimport { ComponentType, Component, createElement } from '../vdom'\nimport { ViewRoot } from '../common/ViewRoot'\nimport { RenderHook, MountArg } from '../common/render-hook'\nimport { ViewContext, ViewContextType } from '../ViewContext'\nimport { ViewOptions } from '../options'\nimport { Duration } from '../datelib/duration'\n\n/*\nA view-config represents information for either:\nA) creating a new instantiatable view class. in which case, supplied a class/type in addition to options, OR\nB) options to customize an existing view, in which case only provides options.\n*/\n\nexport type ViewComponent = Component // an instance\nexport type ViewComponentType = ComponentType\n\nexport type ViewConfigInput = ViewComponentType | ViewOptions\nexport type ViewConfigInputHash = { [viewType: string]: ViewConfigInput }\n\nexport interface ViewConfig {\n superType: string\n component: ViewComponentType | null\n rawOptions: ViewOptions\n}\n\nexport type ViewConfigHash = { [viewType: string]: ViewConfig }\n\nexport function parseViewConfigs(inputs: ViewConfigInputHash): ViewConfigHash {\n return mapHash(inputs, parseViewConfig)\n}\n\nfunction parseViewConfig(input: ViewConfigInput): ViewConfig {\n let rawOptions: ViewOptions = typeof input === 'function' ?\n { component: input } :\n input\n let { component } = rawOptions\n\n if (rawOptions.content) {\n component = createViewHookComponent(rawOptions)\n // TODO: remove content/classNames/didMount/etc from options?\n }\n\n return {\n superType: rawOptions.type as any,\n component: component as any,\n rawOptions, // includes type and component too :(\n }\n}\n\nexport interface SpecificViewContentArg extends ViewProps {\n nextDayThreshold: Duration\n}\n\nexport type SpecificViewMountArg = MountArg\n\nfunction createViewHookComponent(options: ViewOptions) {\n return (viewProps: ViewProps) => (\n \n {(context: ViewContext) => (\n \n {(viewElRef, viewClassNames) => {\n let hookProps: SpecificViewContentArg = {\n ...viewProps,\n nextDayThreshold: context.options.nextDayThreshold,\n }\n return (\n \n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n
\n {innerContent}\n
\n )}\n \n )\n }}\n
\n )}\n
\n )\n}\n","import { ViewDef, compileViewDefs } from './view-def'\nimport { Duration, createDuration, greatestDurationDenominator, DurationInput } from '../datelib/duration'\nimport { mapHash } from '../util/object'\nimport { ViewOptions, CalendarOptions, BASE_OPTION_DEFAULTS } from '../options'\nimport { ViewConfigInputHash, parseViewConfigs, ViewConfigHash, ViewComponentType } from './view-config'\n\n/*\nRepresents everything needed to instantiate a new view instance,\nincluding options that have been compiled from view-specific and calendar-wide options,\nas well as duration information.\n\nOverall flow:\nViewConfig -> ViewDef -> ViewSpec\n*/\nexport interface ViewSpec {\n type: string\n component: ViewComponentType\n duration: Duration\n durationUnit: string\n singleUnit: string\n optionDefaults: ViewOptions\n optionOverrides: ViewOptions\n buttonTextOverride: string\n buttonTextDefault: string\n}\n\nexport type ViewSpecHash = { [viewType: string]: ViewSpec }\n\nexport function buildViewSpecs(\n defaultInputs: ViewConfigInputHash,\n optionOverrides: CalendarOptions,\n dynamicOptionOverrides: CalendarOptions,\n localeDefaults,\n): ViewSpecHash {\n let defaultConfigs = parseViewConfigs(defaultInputs)\n let overrideConfigs = parseViewConfigs(optionOverrides.views)\n let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs)\n\n return mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults))\n}\n\nfunction buildViewSpec(\n viewDef: ViewDef,\n overrideConfigs: ViewConfigHash,\n optionOverrides: CalendarOptions,\n dynamicOptionOverrides: CalendarOptions,\n localeDefaults,\n): ViewSpec {\n let durationInput =\n viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n dynamicOptionOverrides.duration ||\n optionOverrides.duration\n\n let duration = null\n let durationUnit = ''\n let singleUnit = ''\n let singleUnitOverrides: ViewOptions = {}\n\n if (durationInput) {\n duration = createDurationCached(durationInput)\n\n if (duration) { // valid?\n let denom = greatestDurationDenominator(duration)\n durationUnit = denom.unit\n\n if (denom.value === 1) {\n singleUnit = durationUnit\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {}\n }\n }\n }\n\n let queryButtonText = (optionsSubset) => {\n let buttonTextMap = optionsSubset.buttonText || {}\n let buttonTextKey = viewDef.defaults.buttonTextKey as string\n\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey]\n }\n\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type]\n }\n\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit]\n }\n\n return null\n }\n\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration,\n durationUnit,\n singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: { ...singleUnitOverrides, ...viewDef.overrides },\n\n buttonTextOverride:\n queryButtonText(dynamicOptionOverrides) ||\n queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText, // `buttonText` for view-specific options is a string\n\n buttonTextDefault:\n queryButtonText(localeDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(BASE_OPTION_DEFAULTS) ||\n viewDef.type, // fall back to given view name\n }\n}\n\n// hack to get memoization working\n\nlet durationInputMap: { [json: string]: Duration } = {}\n\nfunction createDurationCached(durationInput: DurationInput) {\n let json = JSON.stringify(durationInput)\n let res = durationInputMap[json]\n\n if (res === undefined) {\n res = createDuration(durationInput)\n durationInputMap[json] = res\n }\n\n return res\n}\n","import { DateMarker, startOfDay, addDays } from './datelib/marker'\nimport { Duration, createDuration, asRoughDays, asRoughMs, greatestDurationDenominator } from './datelib/duration'\nimport {\n DateRange,\n OpenDateRange,\n constrainMarkerToRange,\n intersectRanges,\n rangesIntersect,\n parseRange,\n DateRangeInput,\n} from './datelib/date-range'\nimport { DateEnv, DateInput } from './datelib/env'\nimport { computeVisibleDayRange } from './util/date'\nimport { getNow } from './reducers/current-date'\nimport { CalendarApi } from './CalendarApi'\n\nexport interface DateProfile {\n currentRange: DateRange // TODO: does this include slotMinTime/slotMaxTime?\n currentRangeUnit: string\n isRangeAllDay: boolean\n validRange: OpenDateRange\n activeRange: DateRange | null\n renderRange: DateRange\n slotMinTime: Duration\n slotMaxTime: Duration\n isValid: boolean\n dateIncrement: Duration\n}\n\nexport interface DateProfileGeneratorProps extends DateProfileOptions {\n dateProfileGeneratorClass: DateProfileGeneratorClass // not used by DateProfileGenerator itself\n duration: Duration\n durationUnit: string\n usesMinMaxTime: boolean\n dateEnv: DateEnv\n calendarApi: CalendarApi\n}\n\nexport interface DateProfileOptions {\n slotMinTime: Duration\n slotMaxTime: Duration\n showNonCurrentDates?: boolean\n dayCount?: number\n dateAlignment?: string\n dateIncrement?: Duration\n hiddenDays?: number[]\n weekends?: boolean\n nowInput?: DateInput | (() => DateInput)\n validRangeInput?: DateRangeInput | ((this: CalendarApi, nowDate: Date) => DateRangeInput)\n visibleRangeInput?: DateRangeInput | ((this: CalendarApi, nowDate: Date) => DateRangeInput)\n monthMode?: boolean\n fixedWeekCount?: boolean\n}\n\nexport type DateProfileGeneratorClass = {\n new(props: DateProfileGeneratorProps): DateProfileGenerator\n}\n\nexport class DateProfileGenerator { // only publicly used for isHiddenDay :(\n nowDate: DateMarker\n\n isHiddenDayHash: boolean[]\n\n constructor(protected props: DateProfileGeneratorProps) {\n this.nowDate = getNow(props.nowInput, props.dateEnv)\n this.initHiddenDays()\n }\n\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n buildPrev(currentDateProfile: DateProfile, currentDate: DateMarker, forceToValid?: boolean): DateProfile {\n let { dateEnv } = this.props\n\n let prevDate = dateEnv.subtract(\n dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement,\n )\n\n return this.build(prevDate, -1, forceToValid)\n }\n\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n buildNext(currentDateProfile: DateProfile, currentDate: DateMarker, forceToValid?: boolean): DateProfile {\n let { dateEnv } = this.props\n\n let nextDate = dateEnv.add(\n dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement,\n )\n\n return this.build(nextDate, 1, forceToValid)\n }\n\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n build(currentDate: DateMarker, direction?, forceToValid = true): DateProfile {\n let { props } = this\n let validRange: DateRange\n let currentInfo\n let isRangeAllDay\n let renderRange: DateRange\n let activeRange: DateRange\n let isValid\n\n validRange = this.buildValidRange()\n validRange = this.trimHiddenDays(validRange)\n\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange)\n }\n\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction)\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit)\n renderRange = this.buildRenderRange(\n this.trimHiddenDays(currentInfo.range),\n currentInfo.unit,\n isRangeAllDay,\n )\n renderRange = this.trimHiddenDays(renderRange)\n activeRange = renderRange\n\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range)\n }\n\n activeRange = this.adjustActiveRange(activeRange)\n activeRange = intersectRanges(activeRange, validRange) // might return null\n\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange)\n\n return {\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange,\n\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n\n isRangeAllDay,\n\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange,\n\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange,\n\n // Duration object that denotes the first visible time of any given day\n slotMinTime: props.slotMinTime,\n\n // Duration object that denotes the exclusive visible end time of any given day\n slotMaxTime: props.slotMaxTime,\n\n isValid,\n\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration),\n // pass a fallback (might be null) ^\n }\n }\n\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n buildValidRange(): OpenDateRange {\n let input = this.props.validRangeInput\n let simpleInput = typeof input === 'function'\n ? input.call(this.props.calendarApi, this.nowDate)\n : input\n\n return this.refineRange(simpleInput) ||\n { start: null, end: null } // completely open-ended\n }\n\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n buildCurrentRangeInfo(date: DateMarker, direction) {\n let { props } = this\n let duration = null\n let unit = null\n let range = null\n let dayCount\n\n if (props.duration) {\n duration = props.duration\n unit = props.durationUnit\n range = this.buildRangeFromDuration(date, direction, duration, unit)\n } else if ((dayCount = this.props.dayCount)) {\n unit = 'day'\n range = this.buildRangeFromDayCount(date, direction, dayCount)\n } else if ((range = this.buildCustomVisibleRange(date))) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit\n } else {\n duration = this.getFallbackDuration()\n unit = greatestDurationDenominator(duration).unit\n range = this.buildRangeFromDuration(date, direction, duration, unit)\n }\n\n return { duration, unit, range }\n }\n\n getFallbackDuration(): Duration {\n return createDuration({ day: 1 })\n }\n\n // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n adjustActiveRange(range: DateRange) {\n let { dateEnv, usesMinMaxTime, slotMinTime, slotMaxTime } = this.props\n let { start, end } = range\n\n if (usesMinMaxTime) {\n // expand active range if slotMinTime is negative (why not when positive?)\n if (asRoughDays(slotMinTime) < 0) {\n start = startOfDay(start) // necessary?\n start = dateEnv.add(start, slotMinTime)\n }\n\n // expand active range if slotMaxTime is beyond one day (why not when negative?)\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end) // necessary?\n end = addDays(end, -1)\n end = dateEnv.add(end, slotMaxTime)\n }\n }\n\n return { start, end }\n }\n\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n buildRangeFromDuration(date: DateMarker, direction, duration: Duration, unit) {\n let { dateEnv, dateAlignment } = this.props\n let start: DateMarker\n let end: DateMarker\n let res\n\n // compute what the alignment should be\n if (!dateAlignment) {\n let { dateIncrement } = this.props\n\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit\n } else {\n dateAlignment = unit\n }\n } else {\n dateAlignment = unit\n }\n }\n\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction)\n start = startOfDay(start)\n }\n }\n\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment)\n end = dateEnv.add(start, duration)\n res = { start, end }\n }\n\n computeRes()\n\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction)\n computeRes()\n }\n\n return res\n }\n\n // Builds the \"current\" range when a dayCount is specified.\n buildRangeFromDayCount(date: DateMarker, direction, dayCount) {\n let { dateEnv, dateAlignment } = this.props\n let runningCount = 0\n let start: DateMarker = date\n let end: DateMarker\n\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment)\n }\n\n start = startOfDay(start)\n start = this.skipHiddenDays(start, direction)\n\n end = start\n do {\n end = addDays(end, 1)\n if (!this.isHiddenDay(end)) {\n runningCount += 1\n }\n } while (runningCount < dayCount)\n\n return { start, end }\n }\n\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n buildCustomVisibleRange(date: DateMarker) {\n let { props } = this\n let input = props.visibleRangeInput\n let simpleInput = typeof input === 'function'\n ? input.call(props.calendarApi, props.dateEnv.toDate(date))\n : input\n\n let range = this.refineRange(simpleInput)\n\n if (range && (range.start == null || range.end == null)) {\n return null\n }\n\n return range\n }\n\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n buildRenderRange(currentRange: DateRange, currentRangeUnit, isRangeAllDay) {\n return currentRange\n }\n\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n buildDateIncrement(fallback): Duration {\n let { dateIncrement } = this.props\n let customAlignment\n\n if (dateIncrement) {\n return dateIncrement\n }\n\n if ((customAlignment = this.props.dateAlignment)) {\n return createDuration(1, customAlignment)\n }\n\n if (fallback) {\n return fallback\n }\n\n return createDuration({ days: 1 })\n }\n\n refineRange(rangeInput: DateRangeInput | undefined): DateRange | null {\n if (rangeInput) {\n let range = parseRange(rangeInput, this.props.dateEnv)\n\n if (range) {\n range = computeVisibleDayRange(range)\n }\n\n return range\n }\n\n return null\n }\n\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n\n // Initializes internal variables related to calculating hidden days-of-week\n initHiddenDays() {\n let hiddenDays = this.props.hiddenDays || [] // array of day-of-week indices that are hidden\n let isHiddenDayHash = [] // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n let dayCnt = 0\n let i\n\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6) // 0=sunday, 6=saturday\n }\n\n for (i = 0; i < 7; i += 1) {\n if (\n !(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)\n ) {\n dayCnt += 1\n }\n }\n\n if (!dayCnt) {\n throw new Error('invalid hiddenDays') // all days were hidden? bad.\n }\n\n this.isHiddenDayHash = isHiddenDayHash\n }\n\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n trimHiddenDays(range: DateRange): DateRange | null {\n let { start, end } = range\n\n if (start) {\n start = this.skipHiddenDays(start)\n }\n\n if (end) {\n end = this.skipHiddenDays(end, -1, true)\n }\n\n if (start == null || end == null || start < end) {\n return { start, end }\n }\n\n return null\n }\n\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n isHiddenDay(day) {\n if (day instanceof Date) {\n day = day.getUTCDay()\n }\n return this.isHiddenDayHash[day]\n }\n\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n skipHiddenDays(date: DateMarker, inc = 1, isExclusive = false) {\n while (\n this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]\n ) {\n date = addDays(date, inc)\n }\n return date\n }\n}\n","import { EventSource, EventSourceHash } from '../structs/event-source'\nimport { parseEventSource, buildEventSourceRefiners } from '../structs/event-source-parse'\nimport { arrayToHash, filterHash } from '../util/object'\nimport { DateRange } from '../datelib/date-range'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Action } from './Action'\nimport { guid } from '../util/misc'\nimport { CalendarContext } from '../CalendarContext'\nimport { CalendarOptions } from '../options'\n\nexport function initEventSources(calendarOptions, dateProfile: DateProfile, context: CalendarContext) {\n let activeRange = dateProfile ? dateProfile.activeRange : null\n\n return addSources(\n {},\n parseInitialSources(calendarOptions, context),\n activeRange,\n context,\n )\n}\n\nexport function reduceEventSources(\n eventSources: EventSourceHash,\n action: Action,\n dateProfile: DateProfile,\n context: CalendarContext,\n): EventSourceHash {\n let activeRange = dateProfile ? dateProfile.activeRange : null // need this check?\n\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, activeRange, context)\n\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId)\n\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context)\n }\n return eventSources\n\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(\n eventSources,\n (action as any).sourceIds ? // why no type?\n arrayToHash((action as any).sourceIds) :\n excludeStaticSources(eventSources, context),\n activeRange,\n action.isRefetch || false,\n context,\n )\n\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange)\n\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {}\n\n default:\n return eventSources\n }\n}\n\nexport function reduceEventSourcesNewTimeZone(eventSources: EventSourceHash, dateProfile: DateProfile, context: CalendarContext) {\n let activeRange = dateProfile ? dateProfile.activeRange : null // need this check?\n\n return fetchSourcesByIds(\n eventSources,\n excludeStaticSources(eventSources, context),\n activeRange,\n true,\n context,\n )\n}\n\nexport function computeEventSourcesLoading(eventSources: EventSourceHash): boolean {\n for (let sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true\n }\n }\n\n return false\n}\n\nfunction addSources(\n eventSourceHash: EventSourceHash,\n sources: EventSource[],\n fetchRange: DateRange | null,\n context: CalendarContext,\n): EventSourceHash {\n let hash: EventSourceHash = {}\n\n for (let source of sources) {\n hash[source.sourceId] = source\n }\n\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context)\n }\n\n return { ...eventSourceHash, ...hash }\n}\n\nfunction removeSource(eventSourceHash: EventSourceHash, sourceId: string): EventSourceHash {\n return filterHash(eventSourceHash, (eventSource: EventSource) => eventSource.sourceId !== sourceId)\n}\n\nfunction fetchDirtySources(sourceHash: EventSourceHash, fetchRange: DateRange, context: CalendarContext): EventSourceHash {\n return fetchSourcesByIds(\n sourceHash,\n filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)),\n fetchRange,\n false,\n context,\n )\n}\n\nfunction isSourceDirty(eventSource: EventSource, fetchRange: DateRange, context: CalendarContext) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId\n }\n return !context.options.lazyFetching ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end\n}\n\nfunction fetchSourcesByIds(\n prevSources: EventSourceHash,\n sourceIdHash: { [sourceId: string]: any },\n fetchRange: DateRange,\n isRefetch: boolean,\n context: CalendarContext,\n): EventSourceHash {\n let nextSources: EventSourceHash = {}\n\n for (let sourceId in prevSources) {\n let source = prevSources[sourceId]\n\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context)\n } else {\n nextSources[sourceId] = source\n }\n }\n\n return nextSources\n}\n\nfunction fetchSource(eventSource: EventSource, fetchRange: DateRange, isRefetch: boolean, context: CalendarContext) {\n let { options, calendarApi } = context\n let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId]\n let fetchId = guid()\n\n sourceDef.fetch(\n {\n eventSource,\n range: fetchRange,\n isRefetch,\n context,\n },\n (res) => { // success callback\n let { rawEvents } = res\n\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.xhr) || rawEvents\n }\n\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.xhr) || rawEvents\n }\n\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n rawEvents,\n })\n },\n (error) => { // failure callback\n console.warn(error.message, error)\n\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error)\n }\n\n if (eventSource.failure) {\n eventSource.failure(error)\n }\n\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n error,\n })\n },\n )\n\n return {\n ...eventSource,\n isFetching: true,\n latestFetchId: fetchId,\n }\n}\n\nfunction receiveResponse(sourceHash: EventSourceHash, sourceId: string, fetchId: string, fetchRange: DateRange) {\n let eventSource: EventSource = sourceHash[sourceId]\n\n if (\n eventSource && // not already removed\n fetchId === eventSource.latestFetchId\n ) {\n return {\n ...sourceHash,\n [sourceId]: {\n ...eventSource,\n isFetching: false,\n fetchRange, // also serves as a marker that at least one fetch has completed\n },\n }\n }\n\n return sourceHash\n}\n\nfunction excludeStaticSources(eventSources: EventSourceHash, context: CalendarContext): EventSourceHash {\n return filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context))\n}\n\nfunction parseInitialSources(rawOptions: CalendarOptions, context: CalendarContext) {\n let refiners = buildEventSourceRefiners(context)\n let rawSources = [].concat(rawOptions.eventSources || [])\n let sources = [] // parsed\n\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents)\n }\n\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events)\n }\n\n for (let rawSource of rawSources) {\n let source = parseEventSource(rawSource, context, refiners)\n if (source) {\n sources.push(source)\n }\n }\n\n return sources\n}\n\nfunction doesSourceNeedRange(eventSource: EventSource, context: CalendarContext) {\n let defs = context.pluginHooks.eventSourceDefs\n\n return !defs[eventSource.sourceDefId].ignoreRange\n}\n","import { filterHash, mapHash } from '../util/object'\nimport { EventDef } from '../structs/event-def'\nimport { EventInstance, EventInstanceHash } from '../structs/event-instance'\nimport { EventInput } from '../structs/event-parse'\nimport {\n EventStore,\n mergeEventStores,\n createEmptyEventStore,\n filterEventStoreDefs,\n excludeSubEventStore,\n parseEvents,\n} from '../structs/event-store'\nimport { Action } from './Action'\nimport { EventSourceHash, EventSource } from '../structs/event-source'\nimport { DateRange } from '../datelib/date-range'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { DateEnv } from '../datelib/env'\nimport { CalendarContext } from '../CalendarContext'\nimport { expandRecurring } from '../structs/recurring-event'\n\nexport function reduceEventStore(\n eventStore: EventStore,\n action: Action,\n eventSources: EventSourceHash,\n dateProfile: DateProfile,\n context: CalendarContext,\n): EventStore {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(\n eventStore,\n eventSources[action.sourceId],\n action.fetchId,\n action.fetchRange,\n action.rawEvents,\n context,\n )\n\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(\n eventStore,\n action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null,\n context,\n )\n\n case 'RESET_EVENTS':\n return action.eventStore\n\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore)\n\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context)\n }\n return eventStore\n\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore)\n\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId)\n\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, (eventDef: EventDef) => (\n !eventDef.sourceId // only keep events with no source id\n ))\n\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore()\n\n default:\n return eventStore\n }\n}\n\nfunction receiveRawEvents(\n eventStore: EventStore,\n eventSource: EventSource,\n fetchId: string,\n fetchRange: DateRange | null,\n rawEvents: EventInput[],\n context: CalendarContext,\n): EventStore {\n if (\n eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n let subset = parseEvents(\n transformRawEvents(rawEvents, eventSource, context),\n eventSource,\n context,\n )\n\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context)\n }\n\n return mergeEventStores(\n excludeEventsBySourceId(eventStore, eventSource.sourceId),\n subset,\n )\n }\n\n return eventStore\n}\n\nfunction transformRawEvents(rawEvents, eventSource: EventSource, context: CalendarContext) {\n let calEachTransform = context.options.eventDataTransform\n let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null\n\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform)\n }\n\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform)\n }\n\n return rawEvents\n}\n\nfunction transformEachRawEvent(rawEvents, func) {\n let refinedEvents\n\n if (!func) {\n refinedEvents = rawEvents\n } else {\n refinedEvents = []\n\n for (let rawEvent of rawEvents) {\n let refinedEvent = func(rawEvent)\n\n if (refinedEvent) {\n refinedEvents.push(refinedEvent)\n } else if (refinedEvent == null) {\n refinedEvents.push(rawEvent)\n } // if a different falsy value, do nothing\n }\n }\n\n return refinedEvents\n}\n\nfunction addEvent(eventStore: EventStore, subset: EventStore, expandRange: DateRange | null, context: CalendarContext): EventStore {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context)\n }\n\n return mergeEventStores(eventStore, subset)\n}\n\nexport function rezoneEventStoreDates(eventStore: EventStore, oldDateEnv: DateEnv, newDateEnv: DateEnv): EventStore {\n let { defs } = eventStore\n\n let instances = mapHash(eventStore.instances, (instance: EventInstance): EventInstance => {\n let def = defs[instance.defId]\n\n if (def.allDay || def.recurringDef) {\n return instance // isn't dependent on timezone\n }\n return {\n ...instance,\n range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),\n },\n forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo,\n forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo,\n }\n })\n\n return { defs, instances }\n}\n\nfunction excludeEventsBySourceId(eventStore: EventStore, sourceId: string) {\n return filterEventStoreDefs(eventStore, (eventDef: EventDef) => eventDef.sourceId !== sourceId)\n}\n\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nexport function excludeInstances(eventStore: EventStore, removals: EventInstanceHash): EventStore {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, (instance: EventInstance) => !removals[instance.instanceId]),\n }\n}\n","import { DateSpan } from '../structs/date-span'\nimport { Action } from './Action'\n\nexport function reduceDateSelection(currentSelection: DateSpan | null, action: Action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null\n\n case 'SELECT_DATES':\n return action.selection\n\n default:\n return currentSelection\n }\n}\n","import { Action } from './Action'\n\nexport function reduceSelectedEvent(currentInstanceId: string, action: Action): string {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return ''\n\n case 'SELECT_EVENT':\n return action.eventInstanceId\n\n default:\n return currentInstanceId\n }\n}\n","import { Action } from './Action'\nimport { EventInteractionState } from '../interactions/event-interaction-state'\n\nexport function reduceEventDrag(currentDrag: EventInteractionState | null, action: Action): EventInteractionState | null {\n let newDrag: EventInteractionState\n\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null\n\n case 'SET_EVENT_DRAG':\n newDrag = action.state\n\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n }\n\n default:\n return currentDrag\n }\n}\n","import { EventInteractionState } from '../interactions/event-interaction-state'\nimport { Action } from './Action'\n\nexport function reduceEventResize(currentResize: EventInteractionState | null, action: Action): EventInteractionState | null {\n let newResize: EventInteractionState\n\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null\n\n case 'SET_EVENT_RESIZE':\n newResize = action.state\n\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n }\n\n default:\n return currentResize\n }\n}\n","import { ViewSpec, ViewSpecHash } from './structs/view-spec'\nimport { Theme } from './theme/Theme'\nimport { mapHash } from './util/object'\nimport { CalendarApi } from './CalendarApi'\nimport { CalendarOptionsRefined, CalendarOptions } from './options'\nimport { ToolbarInput, ToolbarModel, ToolbarWidget, CustomButtonInput } from './toolbar-struct'\n\nexport function parseToolbars(\n calendarOptions: CalendarOptionsRefined,\n calendarOptionOverrides: CalendarOptions,\n theme: Theme,\n viewSpecs: ViewSpecHash,\n calendarApi: CalendarApi,\n) {\n let viewsWithButtons: string[] = []\n let headerToolbar = calendarOptions.headerToolbar ? parseToolbar(\n calendarOptions.headerToolbar,\n calendarOptions,\n calendarOptionOverrides,\n theme,\n viewSpecs,\n calendarApi,\n viewsWithButtons,\n ) : null\n let footerToolbar = calendarOptions.footerToolbar ? parseToolbar(\n calendarOptions.footerToolbar,\n calendarOptions,\n calendarOptionOverrides,\n theme,\n viewSpecs,\n calendarApi,\n viewsWithButtons,\n ) : null\n\n return { headerToolbar, footerToolbar, viewsWithButtons }\n}\n\nfunction parseToolbar(\n sectionStrHash: ToolbarInput,\n calendarOptions: CalendarOptionsRefined,\n calendarOptionOverrides: CalendarOptions,\n theme: Theme,\n viewSpecs: ViewSpecHash,\n calendarApi: CalendarApi,\n viewsWithButtons: string[], // dump side effects\n) : ToolbarModel {\n return mapHash(\n sectionStrHash as { [section: string]: string },\n (sectionStr) => parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi, viewsWithButtons),\n )\n}\n\n/*\nBAD: querying icons and text here. should be done at render time\n*/\nfunction parseSection(\n sectionStr: string,\n calendarOptions: CalendarOptionsRefined,\n calendarOptionOverrides: CalendarOptions,\n theme: Theme,\n viewSpecs: ViewSpecHash,\n calendarApi: CalendarApi,\n viewsWithButtons: string[], // dump side effects\n): ToolbarWidget[][] {\n let isRtl = calendarOptions.direction === 'rtl'\n let calendarCustomButtons = calendarOptions.customButtons || {}\n let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {}\n let calendarButtonText = calendarOptions.buttonText || {}\n let sectionSubstrs = sectionStr ? sectionStr.split(' ') : []\n\n return sectionSubstrs.map(\n (buttonGroupStr): ToolbarWidget[] => (\n buttonGroupStr.split(',').map((buttonName): ToolbarWidget => {\n if (buttonName === 'title') {\n return { buttonName }\n }\n\n let customButtonProps: CustomButtonInput\n let viewSpec: ViewSpec\n let buttonClick\n let buttonIcon // only one of these will be set\n let buttonText // \"\n\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = (ev: UIEvent) => {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target) // TODO: use Calendar this context?\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = customButtonProps.text)\n } else if ((viewSpec = viewSpecs[buttonName])) {\n viewsWithButtons.push(buttonName)\n\n buttonClick = () => {\n calendarApi.changeView(buttonName)\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = viewSpec.buttonTextDefault)\n } else if (calendarApi[buttonName]) { // a calendarApi method\n buttonClick = () => {\n calendarApi[buttonName]()\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = calendarButtonText[buttonName])\n // ^ everything else is considered default\n }\n\n return { buttonName, buttonClick, buttonIcon, buttonText }\n })\n ),\n )\n}\n","import { createPlugin } from '../plugin-system'\nimport { EventSourceDef } from '../structs/event-source-def'\nimport { EventInput } from '../structs/event-parse'\n\nlet eventSourceDef: EventSourceDef = {\n ignoreRange: true,\n\n parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events\n }\n return null\n },\n\n fetch(arg, success) {\n success({\n rawEvents: arg.eventSource.meta,\n })\n },\n}\n\nexport const arrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef],\n})\n","import { unpromisify } from '../util/promise'\nimport { EventSourceDef } from '../structs/event-source-def'\nimport { EventSourceError } from '../structs/event-source'\nimport { EventInput } from '../structs/event-parse'\nimport { createPlugin } from '../plugin-system'\nimport { buildRangeApiWithTimeZone } from '../structs/date-span'\n\nexport type EventSourceFunc = (\n arg: {\n start: Date\n end: Date\n startStr: string\n endStr: string\n timeZone: string\n },\n successCallback: (events: EventInput[]) => void,\n failureCallback: (error: EventSourceError) => void\n) => (void | PromiseLike)\n\nlet eventSourceDef: EventSourceDef = {\n\n parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events\n }\n return null\n },\n\n fetch(arg, success, failure) {\n let { dateEnv } = arg.context\n let func = arg.eventSource.meta\n\n unpromisify(\n func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)),\n (rawEvents) => { // success\n success({ rawEvents }) // needs an object response\n },\n failure, // send errorObj directly to failure callback\n )\n },\n\n}\n\nexport const funcEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef],\n})\n","// given a function that resolves a result asynchronously.\n// the function can either call passed-in success and failure callbacks,\n// or it can return a promise.\n// if you need to pass additional params to func, bind them first.\nexport function unpromisify(func, success, failure?) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n let isResolved = false\n let wrappedSuccess = function () { // eslint-disable-line func-names\n if (!isResolved) {\n isResolved = true\n success.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n }\n let wrappedFailure = function () { // eslint-disable-line func-names\n if (!isResolved) {\n isResolved = true\n if (failure) {\n failure.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n }\n }\n\n let res = func(wrappedSuccess, wrappedFailure)\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure)\n }\n}\n","import { Dictionary } from '../options'\n\nexport function requestJson(method: string, url: string, params: Dictionary, successCallback, failureCallback) {\n method = method.toUpperCase()\n\n let body = null\n\n if (method === 'GET') {\n url = injectQueryStringParams(url, params)\n } else {\n body = encodeParams(params)\n }\n\n let xhr = new XMLHttpRequest()\n xhr.open(method, url, true)\n\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')\n }\n\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 400) {\n let parsed = false\n let res\n\n try {\n res = JSON.parse(xhr.responseText)\n parsed = true\n } catch (err) {\n // will handle parsed=false\n }\n\n if (parsed) {\n successCallback(res, xhr)\n } else {\n failureCallback('Failure parsing JSON', xhr)\n }\n } else {\n failureCallback('Request failed', xhr)\n }\n }\n\n xhr.onerror = () => {\n failureCallback('Request failed', xhr)\n }\n\n xhr.send(body)\n}\n\nfunction injectQueryStringParams(url: string, params) {\n return url +\n (url.indexOf('?') === -1 ? '?' : '&') +\n encodeParams(params)\n}\n\nfunction encodeParams(params) {\n let parts = []\n\n for (let key in params) {\n parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)\n }\n\n return parts.join('&')\n}\n","import { createPlugin } from './plugin-system'\nimport { hashValuesToArray } from './util/object'\nimport { EventSource } from './structs/event-source'\nimport { CalendarContext } from './CalendarContext'\n\nexport const changeHandlerPlugin = createPlugin({\n optionChangeHandlers: {\n events(events, context) {\n handleEventSources([events], context)\n },\n eventSources: handleEventSources,\n },\n})\n\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\nfunction handleEventSources(inputs, context: CalendarContext) {\n let unfoundSources: EventSource[] = hashValuesToArray(context.getCurrentData().eventSources)\n let newInputs = []\n\n for (let input of inputs) {\n let inputFound = false\n\n for (let i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1) // delete\n inputFound = true\n break\n }\n }\n\n if (!inputFound) {\n newInputs.push(input)\n }\n }\n\n for (let unfoundSource of unfoundSources) {\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId,\n })\n }\n\n for (let newInput of newInputs) {\n context.calendarApi.addEventSource(newInput)\n }\n}\n","import { PluginDef } from './plugin-system-struct'\nimport { createPlugin } from './plugin-system'\nimport { arrayEventSourcePlugin } from './event-sources/array-event-source'\nimport { funcEventSourcePlugin } from './event-sources/func-event-source'\nimport { jsonFeedEventSourcePlugin } from './event-sources/json-feed-event-source'\nimport { simpleRecurringEventsPlugin } from './structs/recurring-event-simple'\nimport { changeHandlerPlugin } from './option-change-handlers'\nimport { handleDateProfile } from './dates-set'\nimport { handleEventStore } from './event-crud'\nimport { isArraysEqual } from './util/array'\nimport { removeElement } from './util/dom-manip'\nimport { computeEventSourcesLoading } from './reducers/eventSources'\nimport { CalendarDataManagerState } from './reducers/data-types'\n\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\nexport const globalPlugins: PluginDef[] = [ // TODO: make a const?\n arrayEventSourcePlugin,\n funcEventSourcePlugin,\n jsonFeedEventSourcePlugin,\n simpleRecurringEventsPlugin,\n changeHandlerPlugin,\n createPlugin({ // misc...\n isLoadingFuncs: [\n (state: CalendarDataManagerState) => computeEventSourcesLoading(state.eventSources),\n ],\n contentTypeHandlers: {\n html: () => ({ render: injectHtml }),\n domNodes: () => ({ render: injectDomNodes }),\n },\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore,\n },\n }),\n]\n\nexport function injectHtml(el: HTMLElement, html: string) {\n el.innerHTML = html\n}\n\nexport function injectDomNodes(el: HTMLElement, domNodes: Node[] | NodeList) {\n let oldNodes = Array.prototype.slice.call(el.childNodes) // TODO: use array util\n let newNodes = Array.prototype.slice.call(domNodes) // TODO: use array util\n\n if (!isArraysEqual(oldNodes, newNodes)) {\n for (let newNode of newNodes) {\n el.appendChild(newNode)\n }\n oldNodes.forEach(removeElement)\n }\n}\n","import { __assign } from 'tslib'\nimport { requestJson } from '../util/requestJson'\nimport { CalendarContext } from '../CalendarContext'\nimport { EventSourceDef } from '../structs/event-source-def'\nimport { DateRange } from '../datelib/date-range'\nimport { createPlugin } from '../plugin-system'\nimport { JSON_FEED_EVENT_SOURCE_REFINERS } from './json-feed-event-source-refiners'\n\ninterface JsonFeedMeta {\n url: string\n format: 'json' // for EventSourceApi\n method: string\n extraParams?: any\n startParam?: string\n endParam?: string\n timeZoneParam?: string\n}\n\nlet eventSourceDef: EventSourceDef = {\n\n parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam,\n }\n }\n return null\n },\n\n fetch(arg, success, failure) {\n let { meta } = arg.eventSource\n let requestParams = buildRequestParams(meta, arg.range, arg.context)\n\n requestJson(\n meta.method, meta.url, requestParams,\n (rawEvents, xhr) => {\n success({ rawEvents, xhr })\n },\n (errorMessage, xhr) => {\n failure({ message: errorMessage, xhr })\n },\n )\n },\n\n}\n\nexport const jsonFeedEventSourcePlugin = createPlugin({\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef],\n})\n\nfunction buildRequestParams(meta: JsonFeedMeta, range: DateRange, context: CalendarContext) {\n let { dateEnv, options } = context\n let startParam\n let endParam\n let timeZoneParam\n let customRequestParams\n let params = {}\n\n startParam = meta.startParam\n if (startParam == null) {\n startParam = options.startParam\n }\n\n endParam = meta.endParam\n if (endParam == null) {\n endParam = options.endParam\n }\n\n timeZoneParam = meta.timeZoneParam\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam\n }\n\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams()\n } else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {}\n }\n\n __assign(params, customRequestParams)\n\n params[startParam] = dateEnv.formatIso(range.start)\n params[endParam] = dateEnv.formatIso(range.end)\n\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone\n }\n\n return params\n}\n","import { identity, Identity, Dictionary } from '../options'\n\nexport const JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity as Identity Dictionary)>,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n}\n","import { startOfDay, addDays, DateMarker } from '../datelib/marker'\nimport { Duration, subtractDurations } from '../datelib/duration'\nimport { arrayToHash } from '../util/object'\nimport { RecurringType } from './recurring-event'\nimport { EventRefined } from './event-parse'\nimport { DateRange, intersectRanges } from '../datelib/date-range'\nimport { DateEnv } from '../datelib/env'\nimport { createPlugin } from '../plugin-system'\nimport { SIMPLE_RECURRING_REFINERS } from './recurring-event-simple-refiners'\nimport './recurring-event-simple-declare'\n\n/*\nAn implementation of recurring events that only supports every-day or weekly recurrences.\n*/\n\ninterface SimpleRecurringData {\n daysOfWeek: number[] | null\n startTime: Duration | null\n endTime: Duration | null\n startRecur: DateMarker | null\n endRecur: DateMarker | null\n}\n\nlet recurring: RecurringType = {\n\n parse(refined: EventRefined, dateEnv: DateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n let recurringData: SimpleRecurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n }\n\n let duration: Duration\n\n if (refined.duration) {\n duration = refined.duration\n }\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime)\n }\n\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration,\n typeData: recurringData, // doesn't need endTime anymore but oh well\n }\n }\n\n return null\n },\n\n expand(typeData: SimpleRecurringData, framingRange: DateRange, dateEnv: DateEnv): DateMarker[] {\n let clippedFramingRange = intersectRanges(\n framingRange,\n { start: typeData.startRecur, end: typeData.endRecur },\n )\n\n if (clippedFramingRange) {\n return expandRanges(\n typeData.daysOfWeek,\n typeData.startTime,\n clippedFramingRange,\n dateEnv,\n )\n }\n return []\n },\n\n}\n\nexport const simpleRecurringEventsPlugin = createPlugin({\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS,\n})\n\nfunction expandRanges(\n daysOfWeek: number[] | null,\n startTime: Duration | null,\n framingRange: DateRange,\n dateEnv: DateEnv,\n): DateMarker[] {\n let dowHash: { [num: string]: true } | null = daysOfWeek ? arrayToHash(daysOfWeek) : null\n let dayMarker = startOfDay(framingRange.start)\n let endMarker = framingRange.end\n let instanceStarts: DateMarker[] = []\n\n while (dayMarker < endMarker) {\n let instanceStart\n\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime)\n } else {\n instanceStart = dayMarker\n }\n\n instanceStarts.push(instanceStart)\n }\n\n dayMarker = addDays(dayMarker, 1)\n }\n\n return instanceStarts\n}\n","import { createDuration } from '../datelib/duration'\nimport { DateInput } from '../datelib/env'\nimport { identity, Identity } from '../options'\n\nexport const SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity as Identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity as Identity,\n endRecur: identity as Identity,\n}\n","import { DateProfile } from './DateProfileGenerator'\nimport { CalendarData } from './reducers/data-types'\nimport { RangeApiWithTimeZone, buildRangeApiWithTimeZone } from './structs/date-span'\nimport { ViewApi } from './ViewApi'\n\nexport type DatesSetArg = RangeApiWithTimeZone & { view: ViewApi }\n\nexport function handleDateProfile(dateProfile: DateProfile, context: CalendarData) {\n context.emitter.trigger('datesSet', {\n ...buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv),\n view: context.viewApi,\n })\n}\n","import { EventStore } from './structs/event-store'\nimport { CalendarData } from './reducers/data-types'\nimport { EventApi, buildEventApis } from './api/EventApi'\nimport { Duration } from './datelib/duration'\nimport { ViewApi } from './ViewApi'\n\nexport interface EventAddArg {\n event: EventApi\n relatedEvents: EventApi[]\n revert: () => void\n}\n\nexport interface EventChangeArg {\n oldEvent: EventApi\n event: EventApi\n relatedEvents: EventApi[]\n revert: () => void\n}\n\nexport interface EventDropArg extends EventChangeArg { // not best place. deals w/ UI\n el: HTMLElement\n delta: Duration\n jsEvent: MouseEvent\n view: ViewApi\n // and other \"transformed\" things\n}\n\nexport interface EventRemoveArg {\n event: EventApi\n relatedEvents: EventApi[]\n revert: () => void\n}\n\nexport function handleEventStore(eventStore: EventStore, context: CalendarData) {\n let { emitter } = context\n\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context))\n }\n}\n","export class DelayedRunner {\n private isRunning = false\n private isDirty = false\n private pauseDepths: { [scope: string]: number } = {}\n private timeoutId: number = 0\n\n constructor(\n private drainedOption?: () => void,\n ) {\n }\n\n request(delay?: number) {\n this.isDirty = true\n\n if (!this.isPaused()) {\n this.clearTimeout()\n\n if (delay == null) {\n this.tryDrain()\n } else {\n this.timeoutId = setTimeout( // NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this),\n delay,\n ) as unknown as number\n }\n }\n }\n\n pause(scope = '') {\n let { pauseDepths } = this\n\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1\n\n this.clearTimeout()\n }\n\n resume(scope = '', force?: boolean) {\n let { pauseDepths } = this\n\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope]\n } else {\n pauseDepths[scope] -= 1\n let depth = pauseDepths[scope]\n\n if (depth <= 0) {\n delete pauseDepths[scope]\n }\n }\n\n this.tryDrain()\n }\n }\n\n isPaused() {\n return Object.keys(this.pauseDepths).length\n }\n\n tryDrain() {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true\n\n while (this.isDirty) {\n this.isDirty = false\n this.drained() // might set isDirty to true again\n }\n\n this.isRunning = false\n }\n }\n\n clear() {\n this.clearTimeout()\n this.isDirty = false\n this.pauseDepths = {}\n }\n\n private clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId)\n this.timeoutId = 0\n }\n }\n\n protected drained() { // subclasses can implement\n if (this.drainedOption) {\n this.drainedOption()\n }\n }\n}\n","import { DelayedRunner } from './DelayedRunner'\n\nexport class TaskRunner { // this class USES the DelayedRunner\n private queue: Task[] = []\n\n private delayedRunner: DelayedRunner // will most likely be used WITHOUT any delay\n\n constructor(\n private runTaskOption?: (task: Task) => void,\n private drainedOption?: (completedTasks: Task[]) => void,\n ) {\n this.delayedRunner = new DelayedRunner(this.drain.bind(this))\n }\n\n request(task: Task, delay?: number) {\n this.queue.push(task)\n this.delayedRunner.request(delay)\n }\n\n pause(scope?: string) {\n this.delayedRunner.pause(scope)\n }\n\n resume(scope?: string, force?: boolean) {\n this.delayedRunner.resume(scope, force)\n }\n\n drain() {\n let { queue } = this\n\n while (queue.length) {\n let completedTasks: Task[] = []\n let task: Task\n\n while ((task = queue.shift())) {\n this.runTask(task)\n completedTasks.push(task)\n }\n\n this.drained(completedTasks)\n } // keep going, in case new tasks were added in the drained handler\n }\n\n protected runTask(task: Task) { // subclasses can implement\n if (this.runTaskOption) {\n this.runTaskOption(task)\n }\n }\n\n protected drained(completedTasks: Task[]) { // subclasses can implement\n if (this.drainedOption) {\n this.drainedOption(completedTasks)\n }\n }\n}\n","import { DateProfile } from '../DateProfileGenerator'\nimport { diffWholeDays } from '../datelib/marker'\nimport { createFormatter, FormatterInput } from '../datelib/formatting'\nimport { DateRange } from '../datelib/date-range'\nimport { DateEnv } from '../datelib/env'\nimport { BaseOptions } from '../options'\n\n// Computes what the title at the top of the calendarApi should be for this view\nexport function buildTitle(dateProfile: DateProfile, viewOptions: BaseOptions, dateEnv: DateEnv) {\n let range: DateRange\n\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange\n } else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange\n }\n\n return dateEnv.formatRange(\n range.start,\n range.end,\n createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)),\n {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator,\n },\n )\n}\n\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile: DateProfile): FormatterInput {\n let { currentRangeUnit } = dateProfile\n\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' }\n }\n\n if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' } // like \"September 2014\"\n }\n\n let days = diffWholeDays(\n dateProfile.currentRange.start,\n dateProfile.currentRange.end,\n )\n\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' }\n }\n\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' }\n}\n","import { __assign } from 'tslib'\nimport { buildLocale, RawLocaleInfo, organizeRawLocales, LocaleSingularArg } from '../datelib/locale'\nimport { memoize, memoizeObjArg } from '../util/memoize'\nimport { Action } from './Action'\nimport { buildBuildPluginHooks } from '../plugin-system'\nimport { PluginHooks } from '../plugin-system-struct'\nimport { DateEnv } from '../datelib/env'\nimport { CalendarApi } from '../CalendarApi'\nimport { StandardTheme } from '../theme/StandardTheme'\nimport { EventSourceHash } from '../structs/event-source'\nimport { buildViewSpecs, ViewSpec } from '../structs/view-spec'\nimport { mapHash, isPropsEqual } from '../util/object'\nimport { DateProfileGenerator, DateProfileGeneratorProps } from '../DateProfileGenerator'\nimport { reduceViewType } from './view-type'\nimport { getInitialDate, reduceCurrentDate } from './current-date'\nimport { reduceDynamicOptionOverrides } from './options'\nimport { reduceDateProfile } from './date-profile'\nimport { reduceEventSources, initEventSources, reduceEventSourcesNewTimeZone, computeEventSourcesLoading } from './eventSources'\nimport { reduceEventStore, rezoneEventStoreDates } from './eventStore'\nimport { reduceDateSelection } from './date-selection'\nimport { reduceSelectedEvent } from './selected-event'\nimport { reduceEventDrag } from './event-drag'\nimport { reduceEventResize } from './event-resize'\nimport { Emitter } from '../common/Emitter'\nimport { EventUiHash, EventUi, createEventUi } from '../component/event-ui'\nimport { EventDefHash } from '../structs/event-def'\nimport { parseToolbars } from '../toolbar-parse'\nimport {\n CalendarOptionsRefined, CalendarOptions,\n CALENDAR_OPTION_REFINERS, COMPLEX_OPTION_COMPARATORS,\n ViewOptions, ViewOptionsRefined,\n BASE_OPTION_DEFAULTS, mergeRawOptions,\n BASE_OPTION_REFINERS, VIEW_OPTION_REFINERS,\n CalendarListeners, CALENDAR_LISTENER_REFINERS, Dictionary,\n} from '../options'\nimport { rangeContainsMarker } from '../datelib/date-range'\nimport { ViewApi } from '../ViewApi'\nimport { parseBusinessHours } from '../structs/business-hours'\nimport { globalPlugins } from '../global-plugins'\nimport { createEmptyEventStore } from '../structs/event-store'\nimport { CalendarContext } from '../CalendarContext'\nimport { CalendarDataManagerState, CalendarOptionsData, CalendarCurrentViewData, CalendarData } from './data-types'\nimport { TaskRunner } from '../util/TaskRunner'\nimport { buildTitle } from './title-formatting'\n\nexport interface CalendarDataManagerProps {\n optionOverrides: CalendarOptions\n calendarApi: CalendarApi\n onAction?: (action: Action) => void\n onData?: (data: CalendarData) => void\n}\n\nexport type ReducerFunc = ( // TODO: rename to CalendarDataInjector. move view-props-manip hook here as well?\n currentState: Dictionary | null,\n action: Action | null,\n context: CalendarContext & CalendarDataManagerState // more than just context\n) => Dictionary\n\n// in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\n\nexport class CalendarDataManager {\n private computeOptionsData = memoize(this._computeOptionsData)\n private computeCurrentViewData = memoize(this._computeCurrentViewData)\n private organizeRawLocales = memoize(organizeRawLocales)\n private buildLocale = memoize(buildLocale)\n private buildPluginHooks = buildBuildPluginHooks()\n private buildDateEnv = memoize(buildDateEnv)\n private buildTheme = memoize(buildTheme)\n private parseToolbars = memoize(parseToolbars)\n private buildViewSpecs = memoize(buildViewSpecs)\n private buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator)\n private buildViewApi = memoize(buildViewApi)\n private buildViewUiProps = memoizeObjArg(buildViewUiProps)\n private buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual)\n private buildEventUiBases = memoize(buildEventUiBases)\n private parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours)\n private buildTitle = memoize(buildTitle)\n\n public emitter = new Emitter()\n private actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this))\n private props: CalendarDataManagerProps\n private state: CalendarDataManagerState\n private data: CalendarData\n\n public currentCalendarOptionsInput: CalendarOptions = {}\n private currentCalendarOptionsRefined: CalendarOptionsRefined = ({} as any)\n private currentViewOptionsInput: ViewOptions = {}\n private currentViewOptionsRefined: ViewOptionsRefined = ({} as any)\n public currentCalendarOptionsRefiners: any = {}\n\n constructor(props: CalendarDataManagerProps) {\n this.props = props\n this.actionRunner.pause()\n\n let dynamicOptionOverrides: CalendarOptions = {}\n let optionsData = this.computeOptionsData(\n props.optionOverrides,\n dynamicOptionOverrides,\n props.calendarApi,\n )\n\n let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView\n let currentViewData = this.computeCurrentViewData(\n currentViewType,\n optionsData,\n props.optionOverrides,\n dynamicOptionOverrides,\n )\n\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this\n this.emitter.setThisContext(props.calendarApi)\n this.emitter.setOptions(currentViewData.options)\n\n let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv)\n let dateProfile = currentViewData.dateProfileGenerator.build(currentDate)\n\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start\n }\n\n let calendarContext: CalendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData,\n }\n\n // needs to be after setThisContext\n for (let callback of optionsData.pluginHooks.contextInit) {\n callback(calendarContext)\n }\n\n // NOT DRY\n let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext)\n\n let initialState: CalendarDataManagerState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext), // weird to have this in state\n eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,\n }\n let contextAndState = { ...calendarContext, ...initialState }\n\n for (let reducer of optionsData.pluginHooks.reducers) {\n __assign(initialState, reducer(null, null, contextAndState))\n }\n\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true) // NOT DRY\n }\n\n this.state = initialState\n this.updateData()\n this.actionRunner.resume()\n }\n\n getCurrentData = () => this.data\n\n dispatch = (action: Action) => {\n this.actionRunner.request(action) // protects against recursive calls to _handleAction\n }\n\n resetOptions(optionOverrides: CalendarOptions, append?: boolean) {\n let { props } = this\n\n props.optionOverrides = append\n ? { ...props.optionOverrides, ...optionOverrides }\n : optionOverrides\n\n this.actionRunner.request({ // hack. will cause updateData\n type: 'NOTHING',\n })\n }\n\n _handleAction(action: Action) {\n let { props, state, emitter } = this\n\n let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action)\n let optionsData = this.computeOptionsData(\n props.optionOverrides,\n dynamicOptionOverrides,\n props.calendarApi,\n )\n\n let currentViewType = reduceViewType(state.currentViewType, action)\n let currentViewData = this.computeCurrentViewData(\n currentViewType,\n optionsData,\n props.optionOverrides,\n dynamicOptionOverrides,\n )\n\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this\n emitter.setThisContext(props.calendarApi)\n emitter.setOptions(currentViewData.options)\n\n let calendarContext: CalendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter,\n getCurrentData: this.getCurrentData,\n }\n\n let { currentDate, dateProfile } = state\n\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate)\n }\n\n currentDate = reduceCurrentDate(currentDate, action)\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator)\n\n if (\n action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)\n ) {\n currentDate = dateProfile.currentRange.start\n }\n\n let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext)\n let eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext)\n let isEventsLoading = computeEventSourcesLoading(eventSources) // BAD. also called in this func in computeIsLoading\n\n let renderableEventStore =\n (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n (state.renderableEventStore || eventStore) : // try from previous state\n eventStore\n\n let { eventUiSingleBase, selectionConfig } = this.buildViewUiProps(calendarContext) // will memoize obj\n let eventUiBySource = this.buildEventUiBySource(eventSources)\n let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource)\n\n let newState: CalendarDataManagerState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n eventSources,\n eventStore,\n renderableEventStore,\n selectionConfig,\n eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext), // will memoize obj\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action),\n }\n let contextAndState = { ...calendarContext, ...newState }\n\n for (let reducer of optionsData.pluginHooks.reducers) {\n __assign(newState, reducer(state, action, contextAndState)) // give the OLD state, for old value\n }\n\n let wasLoading = computeIsLoading(state, calendarContext)\n let isLoading = computeIsLoading(newState, calendarContext)\n\n // TODO: use propSetHandlers in plugin system\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true)\n } else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false)\n }\n\n this.state = newState\n\n if (props.onAction) {\n props.onAction(action)\n }\n }\n\n updateData() {\n let { props, state } = this\n let oldData = this.data\n\n let optionsData = this.computeOptionsData(\n props.optionOverrides,\n state.dynamicOptionOverrides,\n props.calendarApi,\n )\n\n let currentViewData = this.computeCurrentViewData(\n state.currentViewType,\n optionsData,\n props.optionOverrides,\n state.dynamicOptionOverrides,\n )\n\n let data: CalendarData = this.data = {\n viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv),\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData,\n ...optionsData,\n ...currentViewData,\n ...state,\n }\n\n let changeHandlers = optionsData.pluginHooks.optionChangeHandlers\n let oldCalendarOptions = oldData && oldData.calendarOptions\n let newCalendarOptions = optionsData.calendarOptions\n\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data)\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv)\n }\n\n for (let optionName in changeHandlers) {\n if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data)\n }\n }\n }\n\n if (props.onData) {\n props.onData(data)\n }\n }\n\n _computeOptionsData(\n optionOverrides: CalendarOptions,\n dynamicOptionOverrides: CalendarOptions,\n calendarApi: CalendarApi,\n ): CalendarOptionsData {\n // TODO: blacklist options that are handled by optionChangeHandlers\n\n let {\n refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra,\n } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides)\n\n warnUnknownOptions(extra)\n\n let dateEnv = this.buildDateEnv(\n refinedOptions.timeZone,\n refinedOptions.locale,\n refinedOptions.weekNumberCalculation,\n refinedOptions.firstDay,\n refinedOptions.weekText,\n pluginHooks,\n availableLocaleData,\n refinedOptions.defaultRangeSeparator,\n )\n\n let viewSpecs = this.buildViewSpecs(pluginHooks.views, optionOverrides, dynamicOptionOverrides, localeDefaults)\n let theme = this.buildTheme(refinedOptions, pluginHooks)\n let toolbarConfig = this.parseToolbars(refinedOptions, optionOverrides, theme, viewSpecs, calendarApi)\n\n return {\n calendarOptions: refinedOptions,\n pluginHooks,\n dateEnv,\n viewSpecs,\n theme,\n toolbarConfig,\n localeDefaults,\n availableRawLocales: availableLocaleData.map,\n }\n }\n\n // always called from behind a memoizer\n processRawCalendarOptions(optionOverrides: CalendarOptions, dynamicOptionOverrides: CalendarOptions) {\n let { locales, locale } = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n optionOverrides,\n dynamicOptionOverrides,\n ])\n let availableLocaleData = this.organizeRawLocales(locales)\n let availableRawLocales = availableLocaleData.map\n let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options\n let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins)\n let refiners = this.currentCalendarOptionsRefiners = {\n ...BASE_OPTION_REFINERS,\n ...CALENDAR_LISTENER_REFINERS,\n ...CALENDAR_OPTION_REFINERS,\n ...pluginHooks.listenerRefiners,\n ...pluginHooks.optionRefiners,\n }\n let extra = {}\n\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n ])\n let refined: Partial = {}\n let currentRaw = this.currentCalendarOptionsInput\n let currentRefined = this.currentCalendarOptionsRefined\n let anyChanges = false\n\n for (let optionName in raw) {\n if (optionName !== 'plugins') { // because plugins is special-cased\n if (\n raw[optionName] === currentRaw[optionName] ||\n (\n COMPLEX_OPTION_COMPARATORS[optionName] &&\n (optionName in currentRaw) &&\n COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])\n )\n ) {\n refined[optionName] = currentRefined[optionName]\n } else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName])\n anyChanges = true\n } else {\n extra[optionName] = currentRaw[optionName]\n }\n }\n }\n\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw\n this.currentCalendarOptionsRefined = refined as CalendarOptionsRefined\n }\n\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks,\n availableLocaleData,\n localeDefaults,\n extra,\n }\n }\n\n _computeCurrentViewData(\n viewType: string,\n optionsData: CalendarOptionsData,\n optionOverrides: CalendarOptions,\n dynamicOptionOverrides: CalendarOptions,\n ): CalendarCurrentViewData {\n let viewSpec = optionsData.viewSpecs[viewType]\n\n if (!viewSpec) {\n throw new Error(`viewType \"${viewType}\" is not available. Please make sure you've loaded all neccessary plugins`)\n }\n\n let { refinedOptions, extra } = this.processRawViewOptions(\n viewSpec,\n optionsData.pluginHooks,\n optionsData.localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n )\n\n warnUnknownOptions(extra)\n\n let dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass as any,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime as any,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi, // should come from elsewhere?\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n monthMode: refinedOptions.monthMode,\n fixedWeekCount: refinedOptions.fixedWeekCount,\n })\n\n let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv)\n\n return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi }\n }\n\n processRawViewOptions(\n viewSpec: ViewSpec,\n pluginHooks: PluginHooks,\n localeDefaults: CalendarOptions,\n optionOverrides: CalendarOptions,\n dynamicOptionOverrides: CalendarOptions,\n ) {\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n viewSpec.optionDefaults,\n localeDefaults,\n optionOverrides,\n viewSpec.optionOverrides,\n dynamicOptionOverrides,\n ])\n let refiners = {\n ...BASE_OPTION_REFINERS,\n ...CALENDAR_LISTENER_REFINERS,\n ...CALENDAR_OPTION_REFINERS,\n ...VIEW_OPTION_REFINERS,\n ...pluginHooks.listenerRefiners,\n ...pluginHooks.optionRefiners,\n }\n let refined: Partial = {}\n let currentRaw = this.currentViewOptionsInput\n let currentRefined = this.currentViewOptionsRefined\n let anyChanges = false\n let extra = {}\n\n for (let optionName in raw) {\n if (raw[optionName] === currentRaw[optionName]) {\n refined[optionName] = currentRefined[optionName]\n } else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName]) {\n if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName]\n }\n } else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName])\n } else {\n extra[optionName] = raw[optionName]\n }\n\n anyChanges = true\n }\n }\n\n if (anyChanges) {\n this.currentViewOptionsInput = raw\n this.currentViewOptionsRefined = refined as ViewOptionsRefined\n }\n\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra,\n }\n }\n}\n\nfunction buildDateEnv(\n timeZone: string,\n explicitLocale: LocaleSingularArg,\n weekNumberCalculation,\n firstDay: number | undefined,\n weekText,\n pluginHooks: PluginHooks,\n availableLocaleData: RawLocaleInfo,\n defaultSeparator: string,\n) {\n let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map)\n\n return new DateEnv({\n calendarSystem: 'gregory', // TODO: make this a setting\n timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale,\n weekNumberCalculation,\n firstDay,\n weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator,\n })\n}\n\nfunction buildTheme(options: CalendarOptionsRefined, pluginHooks: PluginHooks) {\n let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme\n\n return new ThemeClass(options)\n}\n\nfunction buildDateProfileGenerator(props: DateProfileGeneratorProps): DateProfileGenerator {\n let DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator\n\n return new DateProfileGeneratorClass(props)\n}\n\nfunction buildViewApi(type: string, getCurrentData: () => CalendarData, dateEnv: DateEnv) {\n return new ViewApi(type, getCurrentData, dateEnv)\n}\n\nfunction buildEventUiBySource(eventSources: EventSourceHash): EventUiHash {\n return mapHash(eventSources, (eventSource) => eventSource.ui)\n}\n\nfunction buildEventUiBases(eventDefs: EventDefHash, eventUiSingleBase: EventUi, eventUiBySource: EventUiHash) {\n let eventUiBases: EventUiHash = { '': eventUiSingleBase }\n\n for (let defId in eventDefs) {\n let def = eventDefs[defId]\n\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId]\n }\n }\n\n return eventUiBases\n}\n\nfunction buildViewUiProps(calendarContext: CalendarContext) {\n let { options } = calendarContext\n\n return {\n eventUiSingleBase: createEventUi(\n {\n display: options.eventDisplay,\n editable: options.editable, // without \"event\" at start\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor,\n // classNames: options.eventClassNames // render hook will handle this\n },\n calendarContext,\n ),\n selectionConfig: createEventUi(\n {\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow,\n },\n calendarContext,\n ),\n }\n}\n\nfunction computeIsLoading(state: CalendarDataManagerState, context: CalendarContext) {\n for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {\n if (isLoadingFunc(state)) {\n return true\n }\n }\n\n return false\n}\n\nfunction parseContextBusinessHours(calendarContext: CalendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext)\n}\n\nfunction warnUnknownOptions(options: any, viewName?: string) {\n for (let optionName in options) {\n console.warn(\n `Unknown option '${optionName}'` +\n (viewName ? ` for view '${viewName}'` : ''),\n )\n }\n}\n","import { Action } from './Action'\n\nexport function reduceDynamicOptionOverrides(dynamicOptionOverrides, action: Action) {\n switch (action.type) {\n case 'SET_OPTION':\n return { ...dynamicOptionOverrides, [action.optionName]: action.rawOptionValue }\n default:\n return dynamicOptionOverrides\n }\n}\n","import { Action } from './Action'\n\nexport function reduceViewType(viewType: string, action: Action): string {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType\n }\n\n return viewType\n}\n","import { DateProfile, DateProfileGenerator } from '../DateProfileGenerator'\nimport { Action } from './Action'\nimport { DateMarker } from '../datelib/marker'\n\nexport function reduceDateProfile(\n currentDateProfile: DateProfile | null,\n action: Action,\n currentDate: DateMarker,\n dateProfileGenerator: DateProfileGenerator,\n): DateProfile {\n let dp: DateProfile\n\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate)\n\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker)\n\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate)\n if (dp.isValid) {\n return dp\n }\n break\n\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate)\n if (dp.isValid) {\n return dp\n }\n break\n }\n\n return currentDateProfile\n}\n","import { Component, ComponentChildren } from '../vdom'\nimport { CalendarDataManager } from '../reducers/CalendarDataManager'\nimport { CalendarApi } from '../CalendarApi'\nimport { CalendarData } from '../reducers/data-types'\n\nexport interface CalendarDataProviderProps {\n optionOverrides: any\n calendarApi: CalendarApi\n children?: (data: CalendarData) => ComponentChildren\n}\n\n// TODO: move this to react plugin?\nexport class CalendarDataProvider extends Component {\n dataManager: CalendarDataManager\n\n constructor(props: CalendarDataProviderProps) {\n super(props)\n\n this.dataManager = new CalendarDataManager({\n optionOverrides: props.optionOverrides,\n calendarApi: props.calendarApi,\n onData: this.handleData,\n })\n }\n\n handleData = (data: CalendarData) => {\n if (!this.dataManager) { // still within initial run, before assignment in constructor\n // eslint-disable-next-line react/no-direct-mutation-state\n this.state = data // can't use setState yet\n } else {\n this.setState(data)\n }\n }\n\n render() {\n return this.props.children(this.state)\n }\n\n componentDidUpdate(prevProps: CalendarDataProviderProps) {\n let newOptionOverrides = this.props.optionOverrides\n\n if (newOptionOverrides !== prevProps.optionOverrides) { // prevent recursive handleData\n this.dataManager.resetOptions(newOptionOverrides)\n }\n }\n}\n","export interface SegSpan {\n start: number\n end: number\n}\n\nexport interface SegEntry {\n index: number\n thickness: number // should be an integer\n span: SegSpan\n}\n\n// used internally. exposed for subclasses of SegHierarchy\nexport interface SegInsertion {\n level: number // will have an equal coord, or slightly before, entries in existing level\n levelCoord: number\n lateral: number // where to insert in the existing level. -1 if creating a new level\n touchingLevel: number // -1 if no touching\n touchingLateral: number // -1 if no touching\n touchingEntry: SegEntry // the last touching entry in the level\n stackCnt: number\n}\n\nexport interface SegRect extends SegEntry {\n levelCoord: number\n}\n\nexport interface SegEntryGroup {\n entries: SegEntry[]\n span: SegSpan\n}\n\nexport class SegHierarchy {\n // settings\n strictOrder: boolean = false\n allowReslicing: boolean = false\n maxCoord: number = -1 // -1 means no max\n maxStackCnt: number = -1 // -1 means no max\n\n levelCoords: number[] = [] // ordered\n entriesByLevel: SegEntry[][] = [] // parallel with levelCoords\n stackCnts: { [entryId: string]: number } = {} // TODO: use better technique!?\n\n addSegs(inputs: SegEntry[]): SegEntry[] {\n let hiddenEntries: SegEntry[] = []\n\n for (let input of inputs) {\n this.insertEntry(input, hiddenEntries)\n }\n\n return hiddenEntries\n }\n\n insertEntry(entry: SegEntry, hiddenEntries: SegEntry[]): number {\n let insertion = this.findInsertion(entry)\n\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion)\n return 1\n }\n\n return this.handleInvalidInsertion(insertion, entry, hiddenEntries)\n }\n\n isInsertionValid(insertion: SegInsertion, entry: SegEntry): boolean {\n return (this.maxCoord === -1 || insertion.levelCoord + entry.thickness <= this.maxCoord) &&\n (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt)\n }\n\n // returns number of new entries inserted\n handleInvalidInsertion(insertion: SegInsertion, entry: SegEntry, hiddenEntries: SegEntry[]): number {\n if (this.allowReslicing && insertion.touchingEntry) {\n return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries)\n }\n\n hiddenEntries.push(entry)\n return 0\n }\n\n splitEntry(entry: SegEntry, barrier: SegEntry, hiddenEntries: SegEntry[]): number {\n let partCnt = 0\n let splitHiddenEntries: SegEntry[] = []\n let entrySpan = entry.span\n let barrierSpan = barrier.span\n\n if (entrySpan.start < barrierSpan.start) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: entrySpan.start, end: barrierSpan.start },\n }, splitHiddenEntries)\n }\n\n if (entrySpan.end > barrierSpan.end) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: barrierSpan.end, end: entrySpan.end },\n }, splitHiddenEntries)\n }\n\n if (partCnt) {\n hiddenEntries.push({\n index: entry.index,\n thickness: entry.thickness,\n span: intersectSpans(barrierSpan, entrySpan), // guaranteed to intersect\n }, ...splitHiddenEntries)\n return partCnt\n }\n\n hiddenEntries.push(entry)\n return 0\n }\n\n insertEntryAt(entry: SegEntry, insertion: SegInsertion): void {\n let { entriesByLevel, levelCoords } = this\n\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord)\n insertAt(entriesByLevel, insertion.level, [entry])\n } else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry)\n }\n\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt\n }\n\n findInsertion(newEntry: SegEntry): SegInsertion {\n let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this\n let levelCnt = levelCoords.length\n let candidateCoord = 0\n let touchingLevel: number = -1\n let touchingLateral: number = -1\n let touchingEntry: SegEntry = null\n let stackCnt = 0\n\n for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n let trackingCoord = levelCoords[trackingLevel]\n\n // if the current level is past the placed entry, we have found a good empty space and can stop.\n // if strictOrder, keep finding more lateral intersections.\n if (!strictOrder && trackingCoord >= candidateCoord + newEntry.thickness) {\n break\n }\n\n let trackingEntries = entriesByLevel[trackingLevel]\n let trackingEntry: SegEntry\n let searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd) // find first entry after newEntry's end\n let lateralIndex = searchRes[0] + searchRes[1] // if exact match (which doesn't collide), go to next one\n\n while ( // loop through entries that horizontally intersect\n (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list\n trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n ) {\n let trackingEntryBottom = trackingCoord + trackingEntry.thickness\n // intersects into the top of the candidate?\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom\n touchingEntry = trackingEntry\n touchingLevel = trackingLevel\n touchingLateral = lateralIndex\n }\n // butts up against top of candidate? (will happen if just intersected as well)\n if (trackingEntryBottom === candidateCoord) {\n // accumulate the highest possible stackCnt of the trackingEntries that butt up\n stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1)\n }\n lateralIndex += 1\n }\n }\n\n // the destination level will be after touchingEntry's level. find it\n let destLevel = 0\n if (touchingEntry) {\n destLevel = touchingLevel + 1\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1\n }\n }\n\n // if adding to an existing level, find where to insert\n let destLateral = -1\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0]\n }\n\n return {\n touchingLevel,\n touchingLateral,\n touchingEntry,\n stackCnt,\n levelCoord: candidateCoord,\n level: destLevel,\n lateral: destLateral,\n }\n }\n\n // sorted by levelCoord (lowest to highest)\n toRects(): SegRect[] {\n let { entriesByLevel, levelCoords } = this\n let levelCnt = entriesByLevel.length\n let rects: SegRect[] = []\n\n for (let level = 0; level < levelCnt; level += 1) {\n let entries = entriesByLevel[level]\n let levelCoord = levelCoords[level]\n\n for (let entry of entries) {\n rects.push({ ...entry, levelCoord })\n }\n }\n\n return rects\n }\n}\n\nexport function getEntrySpanEnd(entry: SegEntry) {\n return entry.span.end\n}\n\nexport function buildEntryKey(entry: SegEntry) { // TODO: use Map instead?\n return entry.index + ':' + entry.span.start\n}\n\n// returns groups with entries sorted by input order\nexport function groupIntersectingEntries(entries: SegEntry[]): SegEntryGroup[] {\n let merges: SegEntryGroup[] = []\n\n for (let entry of entries) {\n let filteredMerges: SegEntryGroup[] = []\n let hungryMerge: SegEntryGroup = { // the merge that will eat what it collides with\n span: entry.span,\n entries: [entry],\n }\n\n for (let merge of merges) {\n if (intersectSpans(merge.span, hungryMerge.span)) {\n hungryMerge = {\n entries: merge.entries.concat(hungryMerge.entries), // keep preexisting merge's items first. maintains order\n span: joinSpans(merge.span, hungryMerge.span),\n }\n } else {\n filteredMerges.push(merge)\n }\n }\n\n filteredMerges.push(hungryMerge)\n merges = filteredMerges\n }\n\n return merges\n}\n\nexport function joinSpans(span0: SegSpan, span1: SegSpan): SegSpan {\n return {\n start: Math.min(span0.start, span1.start),\n end: Math.max(span0.end, span1.end),\n }\n}\n\nexport function intersectSpans(span0: SegSpan, span1: SegSpan): SegSpan | null {\n let start = Math.max(span0.start, span1.start)\n let end = Math.min(span0.end, span1.end)\n\n if (start < end) {\n return { start, end }\n }\n\n return null\n}\n\n// general util\n// ---------------------------------------------------------------------------------------------------------------------\n\nfunction insertAt(arr: Item[], index: number, item: Item) {\n arr.splice(index, 0, item)\n}\n\nexport function binarySearch(\n a: Item[],\n searchVal: number,\n getItemVal: (item: Item) => number,\n): [number, number] { // returns [level, isExactMatch ? 1 : 0]\n let startIndex = 0\n let endIndex = a.length // exclusive\n\n if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item\n return [0, 0]\n }\n if (searchVal > getItemVal(a[endIndex - 1])) { // after last item\n return [endIndex, 0]\n }\n\n while (startIndex < endIndex) {\n let middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2)\n let middleVal = getItemVal(a[middleIndex])\n\n if (searchVal < middleVal) {\n endIndex = middleIndex\n } else if (searchVal > middleVal) {\n startIndex = middleIndex + 1\n } else { // equal!\n return [middleIndex, 1]\n }\n }\n\n return [startIndex, 0]\n}\n","import { DateComponent } from '../component/DateComponent'\nimport { Hit } from './hit'\n\nexport abstract class Interaction {\n component: DateComponent\n isHitComboAllowed: ((hit0: Hit, hit1: Hit) => boolean) | null\n\n constructor(settings: InteractionSettings) {\n this.component = settings.component\n this.isHitComboAllowed = settings.isHitComboAllowed || null\n }\n\n destroy() {\n }\n}\n\nexport type InteractionClass = { new(settings: InteractionSettings): Interaction }\n\nexport interface InteractionSettingsInput {\n el: HTMLElement\n useEventCenter?: boolean\n isHitComboAllowed?: (hit0: Hit, hit1: Hit) => boolean\n}\n\nexport interface InteractionSettings {\n component: DateComponent\n el: HTMLElement\n useEventCenter: boolean\n isHitComboAllowed: ((hit0: Hit, hit1: Hit) => boolean) | null\n}\n\nexport type InteractionSettingsStore = { [componenUid: string]: InteractionSettings }\n\nexport function parseInteractionSettings(component: DateComponent, input: InteractionSettingsInput): InteractionSettings {\n return {\n component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null,\n }\n}\n\nexport function interactionSettingsToStore(settings: InteractionSettings) {\n return {\n [settings.component.uid]: settings,\n }\n}\n\n// global state\nexport const interactionSettingsStore: InteractionSettingsStore = {}\n","import { Emitter } from '../common/Emitter'\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nexport abstract class ElementDragging { // TODO: rename to *Interface?\n emitter: Emitter\n\n constructor(el: HTMLElement, selector?: string) {\n this.emitter = new Emitter()\n }\n\n destroy() {\n }\n\n // if given true, should prevent dragstart+dragmove+dragend from firing\n abstract setIgnoreMove(bool: boolean): void\n\n setMirrorIsVisible(bool: boolean) {\n // optional if subclass doesn't want to support a mirror\n }\n\n setMirrorNeedsRevert(bool: boolean) {\n // optional if subclass doesn't want to support a mirror\n }\n\n setAutoScrollEnabled(bool: boolean) {\n // optional\n }\n}\n\nexport type ElementDraggingClass = { new(el: HTMLElement, selector?: string): ElementDragging }\n","// TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\nexport const config = {} as any\n","import { createDuration, Duration } from '../datelib/duration'\nimport { refineProps, RawOptionsFromRefiners, Dictionary } from '../options'\n\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\n\nconst DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String,\n}\n\nexport type DragMetaInput =\n RawOptionsFromRefiners &\n { [otherProp: string]: any } // for leftoverProps\n\nexport interface DragMeta {\n startTime: Duration | null\n duration: Duration | null\n create: boolean // create an event when dropped?\n sourceId: string // similar to addEvent's parameter\n leftoverProps: Dictionary\n}\n\nexport function parseDragMeta(raw: DragMetaInput): DragMeta {\n let { refined, extra } = refineProps(raw, DRAG_META_REFINERS)\n\n return {\n startTime: refined.startTime || null,\n duration: refined.duration || null,\n create: refined.create != null ? refined.create : true,\n sourceId: refined.sourceId,\n leftoverProps: extra,\n }\n}\n","import { createElement, VNode } from './vdom'\nimport { BaseComponent } from './vdom-util'\nimport { ToolbarWidget } from './toolbar-struct'\n\nexport interface ToolbarContent {\n title: string\n activeButton: string\n isTodayEnabled: boolean\n isPrevEnabled: boolean\n isNextEnabled: boolean\n}\n\nexport interface ToolbarSectionProps extends ToolbarContent {\n widgetGroups: ToolbarWidget[][]\n}\n\nexport class ToolbarSection extends BaseComponent {\n render() {\n let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup))\n\n return createElement('div', { className: 'fc-toolbar-chunk' }, ...children)\n }\n\n renderWidgetGroup(widgetGroup: ToolbarWidget[]) {\n let { props } = this\n let { theme } = this.context\n let children: VNode[] = []\n let isOnlyButtons = true\n\n for (let widget of widgetGroup) {\n let { buttonName, buttonClick, buttonText, buttonIcon } = widget\n\n if (buttonName === 'title') {\n isOnlyButtons = false\n children.push(\n

{props.title}

,\n )\n } else {\n let ariaAttrs = buttonIcon ? { 'aria-label': buttonName } : {}\n\n let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')]\n if (buttonName === props.activeButton) {\n buttonClasses.push(theme.getClass('buttonActive'))\n }\n\n let isDisabled =\n (!props.isTodayEnabled && buttonName === 'today') ||\n (!props.isPrevEnabled && buttonName === 'prev') ||\n (!props.isNextEnabled && buttonName === 'next')\n\n children.push(\n \n {buttonText || (buttonIcon ? : '')}\n ,\n )\n }\n }\n\n if (children.length > 1) {\n let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || ''\n\n return createElement('div', { className: groupClassName }, ...children)\n }\n return children[0]\n }\n}\n","import { createElement } from './vdom'\nimport { BaseComponent } from './vdom-util'\nimport { ToolbarModel, ToolbarWidget } from './toolbar-struct'\nimport { ToolbarSection, ToolbarContent } from './ToolbarSection'\n\nexport interface ToolbarProps extends ToolbarContent {\n extraClassName: string // wish this could be array, but easier for pureness\n model: ToolbarModel\n}\n\nexport class Toolbar extends BaseComponent {\n render() {\n let { model, extraClassName } = this.props\n let forceLtr = false\n let startContent\n let endContent\n let centerContent = model.center\n\n if (model.left) {\n forceLtr = true\n startContent = model.left\n } else {\n startContent = model.start\n }\n\n if (model.right) {\n forceLtr = true\n endContent = model.right\n } else {\n endContent = model.end\n }\n\n let classNames = [\n extraClassName || '',\n 'fc-toolbar',\n forceLtr ? 'fc-toolbar-ltr' : '',\n ]\n\n return (\n
\n {this.renderSection('start', startContent || [])}\n {this.renderSection('center', centerContent || [])}\n {this.renderSection('end', endContent || [])}\n
\n )\n }\n\n renderSection(key: string, widgetGroups: ToolbarWidget[][]) {\n let { props } = this\n\n return (\n \n )\n }\n}\n","import { BaseComponent, setRef } from './vdom-util'\nimport { ComponentChildren, Ref, createElement, VUIEvent } from './vdom'\nimport { CssDimValue } from './scrollgrid/util'\n\nexport interface ViewContainerProps {\n liquid?: boolean\n height?: CssDimValue\n aspectRatio?: number\n onClick?: (ev: VUIEvent) => void\n elRef?: Ref\n children?: ComponentChildren\n}\n\ninterface ViewContainerState {\n availableWidth: number | null\n}\n\n// TODO: do function component?\nexport class ViewContainer extends BaseComponent {\n el: HTMLElement\n\n state: ViewContainerState = {\n availableWidth: null,\n }\n\n render() {\n let { props, state } = this\n let { aspectRatio } = props\n\n let classNames = [\n 'fc-view-harness',\n (aspectRatio || props.liquid || props.height)\n ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive', // let the view do the height\n ]\n let height: CssDimValue = ''\n let paddingBottom: CssDimValue = ''\n\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio\n } else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = `${(1 / aspectRatio) * 100}%`\n }\n } else {\n height = props.height || ''\n }\n\n return (\n \n {props.children}\n \n )\n }\n\n componentDidMount() {\n this.context.addResizeHandler(this.handleResize)\n }\n\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize)\n }\n\n handleEl = (el: HTMLElement | null) => {\n this.el = el\n setRef(this.props.elRef, el)\n this.updateAvailableWidth()\n }\n\n handleResize = () => {\n this.updateAvailableWidth()\n }\n\n updateAvailableWidth() {\n if (\n this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({ availableWidth: this.el.offsetWidth })\n }\n }\n}\n","import { listenBySelector } from '../util/dom-event'\nimport { EventApi } from '../api/EventApi'\nimport { elementClosest } from '../util/dom-manip'\nimport { getElSeg } from '../component/event-rendering'\nimport { Interaction, InteractionSettings } from './interaction'\nimport { ViewApi } from '../ViewApi'\n\nexport interface EventClickArg {\n el: HTMLElement\n event: EventApi\n jsEvent: MouseEvent\n view: ViewApi\n}\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nexport class EventClicking extends Interaction {\n constructor(settings: InteractionSettings) {\n super(settings)\n\n this.destroy = listenBySelector(\n settings.el,\n 'click',\n '.fc-event', // on both fg and bg events\n this.handleSegClick,\n )\n }\n\n handleSegClick = (ev: Event, segEl: HTMLElement) => {\n let { component } = this\n let { context } = component\n let seg = getElSeg(segEl)\n\n if (\n seg && // might be the
surrounding the more link\n component.isValidSegDownEl(ev.target as HTMLElement)\n ) {\n // our way to simulate a link click for elements that can't be tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n let hasUrlContainer = elementClosest(ev.target as HTMLElement, '.fc-event-forced-url')\n let url = hasUrlContainer ? (hasUrlContainer.querySelector('a[href]') as any).href : ''\n\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventApi(\n component.context,\n seg.eventRange.def,\n seg.eventRange.instance,\n ),\n jsEvent: ev as MouseEvent, // Is this always a mouse event? See #4655\n view: context.viewApi,\n } as EventClickArg)\n\n if (url && !ev.defaultPrevented) {\n window.location.href = url\n }\n }\n }\n}\n","import { listenToHoverBySelector } from '../util/dom-event'\nimport { EventApi } from '../api/EventApi'\nimport { getElSeg } from '../component/event-rendering'\nimport { Interaction, InteractionSettings } from './interaction'\nimport { ViewApi } from '../ViewApi'\n\nexport interface EventHoveringArg {\n el: HTMLElement\n event: EventApi\n jsEvent: MouseEvent\n view: ViewApi\n}\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nexport class EventHovering extends Interaction {\n removeHoverListeners: () => void\n\n currentSegEl: HTMLElement\n\n constructor(settings: InteractionSettings) {\n super(settings)\n\n this.removeHoverListeners = listenToHoverBySelector(\n settings.el,\n '.fc-event', // on both fg and bg events\n this.handleSegEnter,\n this.handleSegLeave,\n )\n }\n\n destroy() {\n this.removeHoverListeners()\n }\n\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n handleEventElRemove = (el: HTMLElement) => {\n if (el === this.currentSegEl) {\n this.handleSegLeave(null, this.currentSegEl)\n }\n }\n\n handleSegEnter = (ev: Event, segEl: HTMLElement) => {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n this.currentSegEl = segEl\n this.triggerEvent('eventMouseEnter', ev, segEl)\n }\n }\n\n handleSegLeave = (ev: Event | null, segEl: HTMLElement) => {\n if (this.currentSegEl) {\n this.currentSegEl = null\n this.triggerEvent('eventMouseLeave', ev, segEl)\n }\n }\n\n triggerEvent(publicEvName: 'eventMouseEnter' | 'eventMouseLeave', ev: Event | null, segEl: HTMLElement) {\n let { component } = this\n let { context } = component\n let seg = getElSeg(segEl)!\n\n if (!ev || component.isValidSegDownEl(ev.target as HTMLElement)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventApi(\n context,\n seg.eventRange.def,\n seg.eventRange.instance,\n ),\n jsEvent: ev as MouseEvent, // Is this always a mouse event? See #4655\n view: context.viewApi,\n } as EventHoveringArg)\n }\n }\n}\n","import { __assign } from 'tslib'\nimport { ViewContextType, buildViewContext } from './ViewContext'\nimport { ViewSpec } from './structs/view-spec'\nimport { ViewProps } from './View'\nimport { Toolbar } from './Toolbar'\nimport { DateProfileGenerator, DateProfile } from './DateProfileGenerator'\nimport { rangeContainsMarker } from './datelib/date-range'\nimport { memoize } from './util/memoize'\nimport { DateMarker } from './datelib/marker'\nimport { CalendarData } from './reducers/data-types'\nimport { ViewPropsTransformerClass } from './plugin-system-struct'\nimport { createElement, createRef, VUIEvent, Fragment, VNode } from './vdom'\nimport { buildDelegationHandler } from './util/dom-event'\nimport { ViewContainer } from './ViewContainer'\nimport {\n Interaction,\n InteractionSettingsInput,\n InteractionClass,\n parseInteractionSettings,\n interactionSettingsStore,\n} from './interactions/interaction'\nimport { DateComponent } from './component/DateComponent'\nimport { EventClicking } from './interactions/EventClicking'\nimport { EventHovering } from './interactions/EventHovering'\nimport { getNow } from './reducers/current-date'\nimport { CalendarInteraction } from './calendar-utils'\nimport { DelayedRunner } from './util/DelayedRunner'\nimport { PureComponent } from './vdom-util'\n\nexport interface CalendarContentProps extends CalendarData {\n forPrint: boolean\n isHeightAuto: boolean\n}\n\nexport class CalendarContent extends PureComponent {\n private buildViewContext = memoize(buildViewContext)\n private buildViewPropTransformers = memoize(buildViewPropTransformers)\n private buildToolbarProps = memoize(buildToolbarProps)\n private handleNavLinkClick = buildDelegationHandler('a[data-navlink]', this._handleNavLinkClick.bind(this))\n private headerRef = createRef()\n private footerRef = createRef()\n private interactionsStore: { [componentUid: string]: Interaction[] } = {}\n private calendarInteractions: CalendarInteraction[]\n\n /*\n renders INSIDE of an outer div\n */\n render() {\n let { props } = this\n let { toolbarConfig, options } = props\n\n let toolbarProps = this.buildToolbarProps(\n props.viewSpec,\n props.dateProfile,\n props.dateProfileGenerator,\n props.currentDate,\n getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle,\n )\n\n let viewVGrow = false\n let viewHeight: string | number = ''\n let viewAspectRatio: number | undefined\n\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = ''\n } else if (options.height != null) {\n viewVGrow = true\n } else if (options.contentHeight != null) {\n viewHeight = options.contentHeight\n } else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5) // prevent from getting too tall\n }\n\n let viewContext = this.buildViewContext(\n props.viewSpec,\n props.viewApi,\n props.options,\n props.dateProfileGenerator,\n props.dateEnv,\n props.theme,\n props.pluginHooks,\n props.dispatch,\n props.getCurrentData,\n props.emitter,\n props.calendarApi,\n this.registerInteractiveComponent,\n this.unregisterInteractiveComponent,\n )\n\n return (\n \n {toolbarConfig.headerToolbar && (\n \n )}\n \n {this.renderView(props)}\n {this.buildAppendContent()}\n \n {toolbarConfig.footerToolbar && (\n \n )}\n \n )\n }\n\n componentDidMount() {\n let { props } = this\n\n this.calendarInteractions = props.pluginHooks.calendarInteractions\n .map((CalendarInteractionClass) => new CalendarInteractionClass(props))\n\n window.addEventListener('resize', this.handleWindowResize)\n\n let { propSetHandlers } = props.pluginHooks\n for (let propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props)\n }\n }\n\n componentDidUpdate(prevProps: CalendarContentProps) {\n let { props } = this\n\n let { propSetHandlers } = props.pluginHooks\n for (let propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props)\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize)\n this.resizeRunner.clear()\n\n for (let interaction of this.calendarInteractions) {\n interaction.destroy()\n }\n\n this.props.emitter.trigger('_unmount')\n }\n\n _handleNavLinkClick(ev: VUIEvent, anchorEl: HTMLElement) {\n let { dateEnv, options, calendarApi } = this.props\n\n let navLinkOptions: any = anchorEl.getAttribute('data-navlink')\n navLinkOptions = navLinkOptions ? JSON.parse(navLinkOptions) : {}\n\n let dateMarker = dateEnv.createMarker(navLinkOptions.date)\n let viewType = navLinkOptions.type\n\n let customAction =\n viewType === 'day' ? options.navLinkDayClick :\n viewType === 'week' ? options.navLinkWeekClick : null\n\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev)\n } else {\n if (typeof customAction === 'string') {\n viewType = customAction\n }\n\n calendarApi.zoomTo(dateMarker, viewType)\n }\n }\n\n buildAppendContent(): VNode {\n let { props } = this\n\n let children = props.pluginHooks.viewContainerAppends.map(\n (buildAppendContent) => buildAppendContent(props),\n )\n\n return createElement(Fragment, {}, ...children)\n }\n\n renderView(props: CalendarContentProps) {\n let { pluginHooks } = props\n let { viewSpec } = props\n\n let viewProps: ViewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore, // !\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint,\n }\n\n let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers)\n\n for (let transformer of transformers) {\n __assign(\n viewProps,\n transformer.transform(viewProps, props),\n )\n }\n\n let ViewComponent = viewSpec.component\n\n return (\n \n )\n }\n\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n\n registerInteractiveComponent = (component: DateComponent, settingsInput: InteractionSettingsInput) => {\n let settings = parseInteractionSettings(component, settingsInput)\n let DEFAULT_INTERACTIONS: InteractionClass[] = [\n EventClicking,\n EventHovering,\n ]\n let interactionClasses: InteractionClass[] = DEFAULT_INTERACTIONS.concat(\n this.props.pluginHooks.componentInteractions,\n )\n let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings))\n\n this.interactionsStore[component.uid] = interactions\n interactionSettingsStore[component.uid] = settings\n }\n\n unregisterInteractiveComponent = (component: DateComponent) => {\n for (let listener of this.interactionsStore[component.uid]) {\n listener.destroy()\n }\n\n delete this.interactionsStore[component.uid]\n delete interactionSettingsStore[component.uid]\n }\n\n // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n\n resizeRunner = new DelayedRunner(() => {\n this.props.emitter.trigger('_resize', true) // should window resizes be considered \"forced\" ?\n this.props.emitter.trigger('windowResize', { view: this.props.viewApi })\n })\n\n handleWindowResize = (ev: UIEvent) => {\n let { options } = this.props\n\n if (\n options.handleWindowResize &&\n ev.target === window // avoid jqui events\n ) {\n this.resizeRunner.request(options.windowResizeDelay)\n }\n }\n}\n\nfunction buildToolbarProps(\n viewSpec: ViewSpec,\n dateProfile: DateProfile,\n dateProfileGenerator: DateProfileGenerator,\n currentDate: DateMarker,\n now: DateMarker,\n title: string,\n) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n let todayInfo = dateProfileGenerator.build(now, undefined, false) // TODO: need `undefined` or else INFINITE LOOP for some reason\n let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false)\n let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false)\n\n return {\n title,\n activeButton: viewSpec.type,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid,\n }\n}\n\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\n\nfunction buildViewPropTransformers(theClasses: ViewPropsTransformerClass[]) {\n return theClasses.map((TheClass) => new TheClass())\n}\n","import { ComponentChildren } from './vdom'\nimport { BaseComponent } from './vdom-util'\nimport { CssDimValue } from './scrollgrid/util'\nimport { CalendarOptions, CalendarListeners } from './options'\nimport { Theme } from './theme/Theme'\nimport { getCanVGrowWithinCell } from './util/table-styling'\nimport { Emitter } from './common/Emitter'\n\nexport interface CalendarRootProps {\n options: CalendarOptions\n theme: Theme\n emitter: Emitter\n children: (classNames: string[], height: CssDimValue, isHeightAuto: boolean, forPrint: boolean) => ComponentChildren\n}\n\ninterface CalendarRootState {\n forPrint: boolean\n}\n\nexport class CalendarRoot extends BaseComponent {\n state = {\n forPrint: false,\n }\n\n render() {\n let { props } = this\n let { options } = props\n let { forPrint } = this.state\n\n let isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto'\n let height = (!isHeightAuto && options.height != null) ? options.height : ''\n\n let classNames: string[] = [\n 'fc',\n forPrint ? 'fc-media-print' : 'fc-media-screen',\n `fc-direction-${options.direction}`,\n props.theme.getClass('root'),\n ]\n\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack')\n }\n\n return props.children(classNames, height, isHeightAuto, forPrint)\n }\n\n componentDidMount() {\n let { emitter } = this.props\n emitter.on('_beforeprint', this.handleBeforePrint)\n emitter.on('_afterprint', this.handleAfterPrint)\n }\n\n componentWillUnmount() {\n let { emitter } = this.props\n emitter.off('_beforeprint', this.handleBeforePrint)\n emitter.off('_afterprint', this.handleAfterPrint)\n }\n\n handleBeforePrint = () => {\n this.setState({ forPrint: true })\n }\n\n handleAfterPrint = () => {\n this.setState({ forPrint: false })\n }\n}\n","import { DayHeaderContentArg } from '../render-hook-misc'\n\nexport const CLASS_NAME = 'fc-col-header-cell' // do the cushion too? no\n\nexport function renderInner(hookProps: DayHeaderContentArg) {\n return hookProps.text\n}\n","import { DateRange } from '../datelib/date-range'\nimport { getDayClassNames, getDateMeta } from '../component/date-rendering'\nimport { DateMarker } from '../datelib/marker'\nimport { createElement } from '../vdom'\nimport { DateFormatter } from '../datelib/DateFormatter'\nimport { formatDayString } from '../datelib/formatting-utils'\nimport { BaseComponent } from '../vdom-util'\nimport { RenderHook } from './render-hook'\nimport { buildNavLinkData } from './nav-link'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { DayHeaderContentArg } from '../render-hook-misc'\nimport { Dictionary } from '../options'\nimport { CLASS_NAME, renderInner } from './table-cell-util'\n\nexport interface TableDateCellProps {\n date: DateMarker\n dateProfile: DateProfile\n todayRange: DateRange\n colCnt: number\n dayHeaderFormat: DateFormatter\n colSpan?: number\n isSticky?: boolean // TODO: get this outta here somehow\n extraDataAttrs?: Dictionary\n extraHookProps?: Dictionary\n}\n\nexport class TableDateCell extends BaseComponent { // BAD name for this class now. used in the Header\n render() {\n let { dateEnv, options, theme, viewApi } = this.context\n let { props } = this\n let { date, dateProfile } = props\n let dayMeta = getDateMeta(date, props.todayRange, null, dateProfile)\n\n let classNames = [CLASS_NAME].concat(\n getDayClassNames(dayMeta, theme),\n )\n let text = dateEnv.format(date, props.dayHeaderFormat)\n\n // if colCnt is 1, we are already in a day-view and don't need a navlink\n let navLinkAttrs = (options.navLinks && !dayMeta.isDisabled && props.colCnt > 1)\n ? { 'data-navlink': buildNavLinkData(date), tabIndex: 0 }\n : {}\n\n let hookProps: DayHeaderContentArg = {\n date: dateEnv.toDate(date),\n view: viewApi,\n ...props.extraHookProps,\n text,\n ...dayMeta,\n }\n\n return (\n \n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n \n \n \n )}\n \n )\n }\n}\n","import { getDayClassNames, DateMeta } from '../component/date-rendering'\nimport { addDays } from '../datelib/marker'\nimport { createElement } from '../vdom'\nimport { DateFormatter } from '../datelib/DateFormatter'\nimport { BaseComponent } from '../vdom-util'\nimport { RenderHook } from './render-hook'\nimport { Dictionary } from '../options'\nimport { CLASS_NAME, renderInner } from './table-cell-util'\nimport { DayHeaderContentArg } from '../render-hook-misc'\n\nexport interface TableDowCellProps {\n dow: number\n dayHeaderFormat: DateFormatter\n colSpan?: number\n isSticky?: boolean // TODO: get this outta here somehow\n extraHookProps?: Dictionary\n extraDataAttrs?: Dictionary\n extraClassNames?: string[]\n}\n\nexport class TableDowCell extends BaseComponent {\n render() {\n let { props } = this\n let { dateEnv, theme, viewApi, options } = this.context\n let date = addDays(new Date(259200000), props.dow) // start with Sun, 04 Jan 1970 00:00:00 GMT\n let dateMeta: DateMeta = {\n dow: props.dow,\n isDisabled: false,\n isFuture: false,\n isPast: false,\n isToday: false,\n isOther: false,\n }\n let classNames = [CLASS_NAME].concat(\n getDayClassNames(dateMeta, theme),\n props.extraClassNames || [],\n )\n let text = dateEnv.format(date, props.dayHeaderFormat)\n let hookProps: DayHeaderContentArg = { // TODO: make this public?\n date,\n ...dateMeta,\n view: viewApi,\n ...props.extraHookProps,\n text,\n }\n\n return (\n \n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n \n
\n \n {innerContent}\n \n
\n \n )}\n \n )\n }\n}\n","import { DateMarker, addMs, startOfDay, addDays } from './datelib/marker'\nimport { createDuration } from './datelib/duration'\nimport { ViewContext, ViewContextType } from './ViewContext'\nimport { ComponentChildren, Component } from './vdom'\nimport { DateRange } from './datelib/date-range'\nimport { getNow } from './reducers/current-date'\n\nexport interface NowTimerProps {\n unit: string // TODO: add type of unit\n children: (now: DateMarker, todayRange: DateRange) => ComponentChildren\n}\n\ninterface NowTimerState {\n nowDate: DateMarker\n todayRange: DateRange\n}\n\nexport class NowTimer extends Component {\n static contextType: any = ViewContextType\n context: ViewContext // do this for all components that use the context!!!\n initialNowDate: DateMarker\n initialNowQueriedMs: number\n timeoutId: any\n\n constructor(props: NowTimerProps, context: ViewContext) {\n super(props, context)\n\n this.initialNowDate = getNow(context.options.now, context.dateEnv)\n this.initialNowQueriedMs = new Date().valueOf()\n\n this.state = this.computeTiming().currentState\n }\n\n render() {\n let { props, state } = this\n return props.children(state.nowDate, state.todayRange)\n }\n\n componentDidMount() {\n this.setTimeout()\n }\n\n componentDidUpdate(prevProps: NowTimerProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout()\n this.setTimeout()\n }\n }\n\n componentWillUnmount() {\n this.clearTimeout()\n }\n\n private computeTiming() {\n let { props, context } = this\n let unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs)\n let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit)\n let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit))\n let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf()\n\n // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs)\n\n return {\n currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) } as NowTimerState,\n nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) } as NowTimerState,\n waitMs,\n }\n }\n\n private setTimeout() {\n let { nextState, waitMs } = this.computeTiming()\n\n this.timeoutId = setTimeout(() => {\n this.setState(nextState, () => {\n this.setTimeout()\n })\n }, waitMs)\n }\n\n private clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId)\n }\n }\n}\n\nfunction buildDayRange(date: DateMarker): DateRange { // TODO: make this a general util\n let start = startOfDay(date)\n let end = addDays(start, 1)\n\n return { start, end }\n}\n","import { BaseComponent } from '../vdom-util'\nimport { DateMarker } from '../datelib/marker'\nimport { computeFallbackHeaderFormat } from './table-utils'\nimport { VNode, createElement } from '../vdom'\nimport { TableDateCell } from './TableDateCell'\nimport { TableDowCell } from './TableDowCell'\nimport { NowTimer } from '../NowTimer'\nimport { DateRange } from '../datelib/date-range'\nimport { memoize } from '../util/memoize'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { DateFormatter } from '../datelib/DateFormatter'\n\nexport interface DayHeaderProps {\n dateProfile: DateProfile\n dates: DateMarker[]\n datesRepDistinctDays: boolean\n renderIntro?: (rowKey: string) => VNode\n}\n\nexport class DayHeader extends BaseComponent { // TODO: rename to DayHeaderTr?\n createDayHeaderFormatter = memoize(createDayHeaderFormatter)\n\n render() {\n let { context } = this\n let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props\n\n let dayHeaderFormat = this.createDayHeaderFormatter(\n context.options.dayHeaderFormat,\n datesRepDistinctDays,\n dates.length,\n )\n\n return (\n \n {(nowDate: DateMarker, todayRange: DateRange) => (\n \n {renderIntro && renderIntro('day')}\n {dates.map((date) => (\n datesRepDistinctDays ? (\n \n ) : (\n \n )\n ))}\n \n )}\n \n )\n }\n}\n\nfunction createDayHeaderFormatter(explicitFormat: DateFormatter, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt)\n}\n","import { createFormatter } from '../datelib/formatting'\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nexport function computeFallbackHeaderFormat(datesRepDistinctDays: boolean, dayCnt: number) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return createFormatter({ weekday: 'short' }) // \"Sat\"\n }\n\n if (dayCnt > 1) {\n return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }) // \"Sat 11/12\"\n }\n\n return createFormatter({ weekday: 'long' }) // \"Saturday\"\n}\n","import { DateProfileGenerator } from '../DateProfileGenerator'\nimport { DateMarker, addDays, diffDays } from '../datelib/marker'\nimport { DateRange } from '../datelib/date-range'\n\nexport interface DaySeriesSeg {\n firstIndex: number\n lastIndex: number\n isStart: boolean\n isEnd: boolean\n}\n\nexport class DaySeriesModel {\n cnt: number\n dates: DateMarker[] // whole-day dates for each column. left to right\n indices: number[] // for each day from start, the offset\n\n constructor(range: DateRange, dateProfileGenerator: DateProfileGenerator) {\n let date: DateMarker = range.start\n let { end } = range\n let indices: number[] = []\n let dates: DateMarker[] = []\n let dayIndex = -1\n\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5) // mark that it's between indices\n } else {\n dayIndex += 1\n indices.push(dayIndex)\n dates.push(date)\n }\n date = addDays(date, 1)\n }\n\n this.dates = dates\n this.indices = indices\n this.cnt = dates.length\n }\n\n sliceRange(range: DateRange): DaySeriesSeg | null {\n let firstIndex = this.getDateDayIndex(range.start) // inclusive first index\n let lastIndex = this.getDateDayIndex(addDays(range.end, -1)) // inclusive last index\n\n let clippedFirstIndex = Math.max(0, firstIndex)\n let clippedLastIndex = Math.min(this.cnt - 1, lastIndex)\n\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex) // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex) // in-between ends round to prev cell\n\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex,\n }\n }\n return null\n }\n\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n private getDateDayIndex(date: DateMarker) {\n let { indices } = this\n let dayOffset = Math.floor(diffDays(this.dates[0], date))\n\n if (dayOffset < 0) {\n return indices[0] - 1\n }\n\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1\n }\n\n return indices[dayOffset]\n }\n}\n","import { DaySeriesModel } from './DaySeriesModel'\nimport { DateRange } from '../datelib/date-range'\nimport { DateMarker } from '../datelib/marker'\nimport { Seg } from '../component/DateComponent'\nimport { Dictionary } from '../options'\n\nexport interface DayTableSeg extends Seg {\n row: number\n firstCol: number\n lastCol: number\n}\n\nexport interface DayTableCell {\n key: string // probably just the serialized date, but could be other metadata if this col is specific to another entity\n date: DateMarker\n extraHookProps?: Dictionary\n extraDataAttrs?: Dictionary\n extraClassNames?: string[]\n extraDateSpan?: Dictionary\n}\n\nexport class DayTableModel {\n rowCnt: number\n colCnt: number\n cells: DayTableCell[][]\n headerDates: DateMarker[]\n\n private daySeries: DaySeriesModel\n\n constructor(daySeries: DaySeriesModel, breakOnWeeks: boolean) {\n let { dates } = daySeries\n let daysPerRow\n let firstDay\n let rowCnt\n\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay()\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow)\n } else {\n rowCnt = 1\n daysPerRow = dates.length\n }\n\n this.rowCnt = rowCnt\n this.colCnt = daysPerRow\n this.daySeries = daySeries\n this.cells = this.buildCells()\n this.headerDates = this.buildHeaderDates()\n }\n\n private buildCells() {\n let rows = []\n\n for (let row = 0; row < this.rowCnt; row += 1) {\n let cells = []\n\n for (let col = 0; col < this.colCnt; col += 1) {\n cells.push(\n this.buildCell(row, col),\n )\n }\n\n rows.push(cells)\n }\n\n return rows\n }\n\n private buildCell(row, col): DayTableCell {\n let date = this.daySeries.dates[row * this.colCnt + col]\n return {\n key: date.toISOString(),\n date,\n }\n }\n\n private buildHeaderDates() {\n let dates = []\n\n for (let col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date)\n }\n\n return dates\n }\n\n sliceRange(range: DateRange): DayTableSeg[] {\n let { colCnt } = this\n let seriesSeg = this.daySeries.sliceRange(range)\n let segs: DayTableSeg[] = []\n\n if (seriesSeg) {\n let { firstIndex, lastIndex } = seriesSeg\n let index = firstIndex\n\n while (index <= lastIndex) {\n let row = Math.floor(index / colCnt)\n let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1)\n\n segs.push({\n row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,\n })\n\n index = nextIndex\n }\n }\n\n return segs\n }\n}\n","import { DateRange } from '../datelib/date-range'\nimport { EventStore } from '../structs/event-store'\nimport { EventUiHash } from '../component/event-ui'\nimport { sliceEventStore, EventRenderRange } from '../component/event-rendering'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Seg, EventSegUiInteractionState } from '../component/DateComponent' // TODO: rename EventSegUiInteractionState, move here\nimport { DateSpan, fabricateEventRange } from '../structs/date-span'\nimport { EventInteractionState } from '../interactions/event-interaction-state'\nimport { Duration } from '../datelib/duration'\nimport { memoize } from '../util/memoize'\nimport { DateMarker, addMs, addDays } from '../datelib/marker'\nimport { CalendarContext } from '../CalendarContext'\nimport { expandRecurring } from '../structs/recurring-event'\n\nexport interface SliceableProps {\n dateSelection: DateSpan\n businessHours: EventStore\n eventStore: EventStore\n eventDrag: EventInteractionState | null\n eventResize: EventInteractionState | null\n eventSelection: string\n eventUiBases: EventUiHash\n}\n\nexport interface SlicedProps {\n dateSelectionSegs: SegType[]\n businessHourSegs: SegType[]\n fgEventSegs: SegType[]\n bgEventSegs: SegType[]\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n eventSelection: string\n}\n\nexport abstract class Slicer {\n private sliceBusinessHours = memoize(this._sliceBusinessHours)\n private sliceDateSelection = memoize(this._sliceDateSpan)\n private sliceEventStore = memoize(this._sliceEventStore)\n private sliceEventDrag = memoize(this._sliceInteraction)\n private sliceEventResize = memoize(this._sliceInteraction)\n\n abstract sliceRange(dateRange: DateRange, ...extraArgs: ExtraArgs): SegType[]\n protected forceDayIfListItem = false // hack\n\n sliceProps(\n props: SliceableProps,\n dateProfile: DateProfile,\n nextDayThreshold: Duration | null,\n context: CalendarContext,\n ...extraArgs: ExtraArgs\n ): SlicedProps {\n let { eventUiBases } = props\n let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs)\n\n return {\n dateSelectionSegs: this.sliceDateSelection(props.dateSelection, eventUiBases, context, ...extraArgs),\n businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag(props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventResize: this.sliceEventResize(props.eventResize, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventSelection: props.eventSelection,\n } // TODO: give interactionSegs?\n }\n\n sliceNowDate( // does not memoize\n date: DateMarker,\n context: CalendarContext,\n ...extraArgs: ExtraArgs\n ): SegType[] {\n return this._sliceDateSpan(\n { range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range\n {},\n context,\n ...extraArgs,\n )\n }\n\n private _sliceBusinessHours(\n businessHours: EventStore,\n dateProfile: DateProfile,\n nextDayThreshold: Duration | null,\n context: CalendarContext,\n ...extraArgs: ExtraArgs\n ): SegType[] {\n if (!businessHours) {\n return []\n }\n\n return this._sliceEventStore(\n expandRecurring(\n businessHours,\n computeActiveRange(dateProfile, Boolean(nextDayThreshold)),\n context,\n ),\n {},\n dateProfile,\n nextDayThreshold,\n ...extraArgs,\n ).bg\n }\n\n private _sliceEventStore(\n eventStore: EventStore,\n eventUiBases: EventUiHash,\n dateProfile: DateProfile,\n nextDayThreshold: Duration | null,\n ...extraArgs: ExtraArgs\n ): { bg: SegType[], fg: SegType[] } {\n if (eventStore) {\n let rangeRes = sliceEventStore(\n eventStore,\n eventUiBases,\n computeActiveRange(dateProfile, Boolean(nextDayThreshold)),\n nextDayThreshold,\n )\n\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs),\n }\n }\n return { bg: [], fg: [] }\n }\n\n private _sliceInteraction(\n interaction: EventInteractionState,\n eventUiBases: EventUiHash,\n dateProfile: DateProfile,\n nextDayThreshold: Duration | null,\n ...extraArgs: ExtraArgs\n ): EventSegUiInteractionState {\n if (!interaction) {\n return null\n }\n\n let rangeRes = sliceEventStore(\n interaction.mutatedEvents,\n eventUiBases,\n computeActiveRange(dateProfile, Boolean(nextDayThreshold)),\n nextDayThreshold,\n )\n\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n }\n }\n\n private _sliceDateSpan(\n dateSpan: DateSpan,\n eventUiBases: EventUiHash,\n context: CalendarContext,\n ...extraArgs: ExtraArgs\n ): SegType[] {\n if (!dateSpan) {\n return []\n }\n\n let eventRange = fabricateEventRange(dateSpan, eventUiBases, context)\n let segs = this.sliceRange(dateSpan.range, ...extraArgs)\n\n for (let seg of segs) {\n seg.eventRange = eventRange\n }\n\n return segs\n }\n\n /*\n \"complete\" seg means it has component and eventRange\n */\n private sliceEventRanges(\n eventRanges: EventRenderRange[],\n extraArgs: ExtraArgs,\n ): SegType[] {\n let segs: SegType[] = []\n\n for (let eventRange of eventRanges) {\n segs.push(...this.sliceEventRange(eventRange, extraArgs))\n }\n\n return segs\n }\n\n /*\n \"complete\" seg means it has component and eventRange\n */\n private sliceEventRange(\n eventRange: EventRenderRange,\n extraArgs: ExtraArgs,\n ): SegType[] {\n let dateRange = eventRange.range\n\n // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1),\n }\n }\n\n let segs = this.sliceRange(dateRange, ...extraArgs)\n\n for (let seg of segs) {\n seg.eventRange = eventRange\n seg.isStart = eventRange.isStart && seg.isStart\n seg.isEnd = eventRange.isEnd && seg.isEnd\n }\n\n return segs\n }\n}\n\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile: DateProfile, isComponentAllDay: boolean): DateRange {\n let range = dateProfile.activeRange\n\n if (isComponentAllDay) {\n return range\n }\n\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day\n }\n}\n","import { EventStore, filterEventStoreDefs } from './structs/event-store'\nimport { DateSpan } from './structs/date-span'\nimport { rangeContainsRange, rangesIntersect, DateRange, OpenDateRange } from './datelib/date-range'\nimport { EventApi } from './api/EventApi'\nimport { compileEventUis } from './component/event-rendering'\nimport { excludeInstances } from './reducers/eventStore'\nimport { EventInteractionState } from './interactions/event-interaction-state'\nimport { SplittableProps } from './component/event-splitting'\nimport { mapHash } from './util/object'\nimport { CalendarContext } from './CalendarContext'\nimport { buildDateSpanApiWithContext } from './calendar-utils'\nimport { Constraint } from './structs/constraint'\nimport { expandRecurring } from './structs/recurring-event'\nimport { DateProfile } from './DateProfileGenerator'\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\n\nexport function isInteractionValid(\n interaction: EventInteractionState,\n dateProfile: DateProfile,\n context: CalendarContext,\n) {\n let { instances } = interaction.mutatedEvents\n for (let instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false\n }\n }\n return isNewPropsValid({ eventDrag: interaction }, context) // HACK: the eventDrag props is used for ALL interactions\n}\n\nexport function isDateSelectionValid(\n dateSelection: DateSpan,\n dateProfile: DateProfile,\n context: CalendarContext,\n) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false\n }\n return isNewPropsValid({ dateSelection }, context)\n}\n\nfunction isNewPropsValid(newProps, context: CalendarContext) {\n let calendarState = context.getCurrentData()\n\n let props = {\n businessHours: calendarState.businessHours,\n dateSelection: '',\n eventStore: calendarState.eventStore,\n eventUiBases: calendarState.eventUiBases,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n ...newProps,\n }\n\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context)\n}\n\nexport function isPropsValid(state: SplittableProps, context: CalendarContext, dateSpanMeta = {}, filterConfig?): boolean {\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false\n }\n\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false\n }\n\n return true\n}\n\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\n\nfunction isInteractionPropsValid(state: SplittableProps, context: CalendarContext, dateSpanMeta: any, filterConfig): boolean {\n let currentState = context.getCurrentData()\n let interaction = state.eventDrag // HACK: the eventDrag props is used for ALL interactions\n\n let subjectEventStore = interaction.mutatedEvents\n let subjectDefs = subjectEventStore.defs\n let subjectInstances = subjectEventStore.instances\n let subjectConfigs = compileEventUis(\n subjectDefs,\n interaction.isEvent ?\n state.eventUiBases :\n { '': currentState.selectionConfig }, // if not a real event, validate as a selection\n )\n\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig)\n }\n\n // exclude the subject events. TODO: exclude defs too?\n let otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances)\n\n let otherDefs = otherEventStore.defs\n let otherInstances = otherEventStore.instances\n let otherConfigs = compileEventUis(otherDefs, state.eventUiBases)\n\n for (let subjectInstanceId in subjectInstances) {\n let subjectInstance = subjectInstances[subjectInstanceId]\n let subjectRange = subjectInstance.range\n let subjectConfig = subjectConfigs[subjectInstance.defId]\n let subjectDef = subjectDefs[subjectInstance.defId]\n\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false\n }\n\n // overlap\n\n let { eventOverlap } = context.options\n let eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null\n\n for (let otherInstanceId in otherInstances) {\n let otherInstance = otherInstances[otherInstanceId]\n\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n let otherOverlap = otherConfigs[otherInstance.defId].overlap\n\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false\n }\n\n if (subjectConfig.overlap === false) {\n return false\n }\n\n if (eventOverlapFunc && !eventOverlapFunc(\n new EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(context, subjectDef, subjectInstance), // moving event\n )) {\n return false\n }\n }\n }\n\n // allow (a function)\n\n let calendarEventStore = currentState.eventStore // need global-to-calendar, not local to component (splittable)state\n\n for (let subjectAllow of subjectConfig.allows) {\n let subjectDateSpan: DateSpan = {\n ...dateSpanMeta,\n range: subjectInstance.range,\n allDay: subjectDef.allDay,\n }\n\n let origDef = calendarEventStore.defs[subjectDef.defId]\n let origInstance = calendarEventStore.instances[subjectInstanceId]\n let eventApi\n\n if (origDef) { // was previously in the calendar\n eventApi = new EventApi(context, origDef, origInstance)\n } else { // was an external event\n eventApi = new EventApi(context, subjectDef) // no instance, because had no dates\n }\n\n if (!subjectAllow(\n buildDateSpanApiWithContext(subjectDateSpan, context),\n eventApi,\n )) {\n return false\n }\n }\n }\n\n return true\n}\n\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\n\nfunction isDateSelectionPropsValid(state: SplittableProps, context: CalendarContext, dateSpanMeta: any, filterConfig): boolean {\n let relevantEventStore = state.eventStore\n let relevantDefs = relevantEventStore.defs\n let relevantInstances = relevantEventStore.instances\n\n let selection = state.dateSelection\n let selectionRange = selection.range\n let { selectionConfig } = context.getCurrentData()\n\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig)\n }\n\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false\n }\n\n // overlap\n\n let { selectOverlap } = context.options\n let selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null\n\n for (let relevantInstanceId in relevantInstances) {\n let relevantInstance = relevantInstances[relevantInstanceId]\n\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false\n }\n\n if (selectOverlapFunc && !selectOverlapFunc(\n new EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance),\n null,\n )) {\n return false\n }\n }\n }\n\n // allow (a function)\n for (let selectionAllow of selectionConfig.allows) {\n let fullDateSpan = { ...dateSpanMeta, ...selection }\n\n if (!selectionAllow(\n buildDateSpanApiWithContext(fullDateSpan, context),\n null,\n )) {\n return false\n }\n }\n\n return true\n}\n\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\n\nfunction allConstraintsPass(\n constraints: Constraint[],\n subjectRange: DateRange,\n otherEventStore: EventStore,\n businessHoursUnexpanded: EventStore,\n context: CalendarContext,\n): boolean {\n for (let constraint of constraints) {\n if (!anyRangesContainRange(\n constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context),\n subjectRange,\n )) {\n return false\n }\n }\n\n return true\n}\n\nfunction constraintToRanges(\n constraint: Constraint,\n subjectRange: DateRange, // for expanding a recurring constraint, or expanding business hours\n otherEventStore: EventStore, // for if constraint is an even group ID\n businessHoursUnexpanded: EventStore, // for if constraint is 'businessHours'\n context: CalendarContext, // for expanding businesshours\n): OpenDateRange[] {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(\n expandRecurring(businessHoursUnexpanded, subjectRange, context),\n )\n }\n\n if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(\n filterEventStoreDefs(otherEventStore, (eventDef) => eventDef.groupId === constraint),\n )\n }\n\n if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(\n expandRecurring(constraint, subjectRange, context),\n )\n }\n\n return [] // if it's false\n}\n\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore: EventStore): DateRange[] {\n let { instances } = eventStore\n let ranges: DateRange[] = []\n\n for (let instanceId in instances) {\n ranges.push(instances[instanceId].range)\n }\n\n return ranges\n}\n\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges: DateRange[], innerRange: DateRange): boolean {\n for (let outerRange of outerRanges) {\n if (rangeContainsRange(outerRange, innerRange)) {\n return true\n }\n }\n\n return false\n}\n","import { createElement, ComponentChildren, Ref } from '../vdom'\nimport { BaseComponent, setRef } from '../vdom-util'\nimport { CssDimValue, ScrollerLike } from './util'\n\nexport type OverflowValue = 'auto' | 'hidden' | 'scroll' | 'visible'\n\nexport interface ScrollerProps {\n overflowX: OverflowValue\n overflowY: OverflowValue\n overcomeLeft?: number\n overcomeRight?: number\n overcomeBottom?: number\n maxHeight?: CssDimValue\n liquid?: boolean\n liquidIsAbsolute?: boolean\n children?: ComponentChildren\n elRef?: Ref\n}\n\nconst VISIBLE_HIDDEN_RE = /^(visible|hidden)$/\n\nexport class Scroller extends BaseComponent implements ScrollerLike {\n private el: HTMLElement // TODO: just use this.base?\n\n render() {\n let { props } = this\n let { liquid, liquidIsAbsolute } = props\n let isAbsolute = liquid && liquidIsAbsolute\n let className = ['fc-scroller']\n\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute')\n } else {\n className.push('fc-scroller-liquid')\n }\n }\n\n return (\n \n {props.children}\n
\n )\n }\n\n handleEl = (el: HTMLElement) => {\n this.el = el\n setRef(this.props.elRef, el)\n }\n\n needsXScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false\n }\n\n // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n\n let { el } = this\n let realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth()\n let { children } = el\n\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i]\n\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true\n }\n }\n\n return false\n }\n\n needsYScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false\n }\n\n // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n\n let { el } = this\n let realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth()\n let { children } = el\n\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i]\n\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true\n }\n }\n\n return false\n }\n\n getXScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0\n }\n return this.el.offsetHeight - this.el.clientHeight // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n\n getYScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0\n }\n return this.el.offsetWidth - this.el.clientWidth // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n}\n","import { hashValuesToArray, collectFromHash } from './object'\n\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\nexport class RefMap {\n public currentMap: { [key: string]: RefType } = {}\n private depths: { [key: string]: number } = {}\n private callbackMap: { [key: string]: (val: RefType | null) => void } = {}\n\n constructor(public masterCallback?: (val: RefType | null, key: string) => void) {\n }\n\n createRef(key: string | number) {\n let refCallback = this.callbackMap[key]\n\n if (!refCallback) {\n refCallback = this.callbackMap[key] = (val: RefType | null) => {\n this.handleValue(val, String(key))\n }\n }\n\n return refCallback\n }\n\n handleValue = (val: RefType | null, key: string) => { // bind in case users want to pass it around\n let { depths, currentMap } = this\n let removed = false\n let added = false\n\n if (val !== null) {\n // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n removed = (key in currentMap)\n\n currentMap[key] = val\n depths[key] = (depths[key] || 0) + 1\n added = true\n } else {\n depths[key] -= 1\n\n if (!depths[key]) {\n delete currentMap[key]\n delete this.callbackMap[key]\n removed = true\n }\n }\n\n if (this.masterCallback) {\n if (removed) {\n this.masterCallback(null, String(key))\n }\n if (added) {\n this.masterCallback(val, String(key))\n }\n }\n }\n\n // TODO: check callers that don't care about order. should use getAll instead\n // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n collect(\n startIndex?: number,\n endIndex?: number,\n step?: number,\n ) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step)\n }\n\n getAll(): RefType[] { // returns in no partical order!\n return hashValuesToArray(this.currentMap)\n }\n}\n","import { VNode, createElement, Ref } from '../vdom'\nimport { findElements } from '../util/dom-manip'\nimport { ViewContext } from '../ViewContext'\nimport { computeSmallestCellWidth } from '../util/misc'\nimport { isPropsEqual } from '../util/object'\nimport { isArraysEqual } from '../util/array'\nimport { BaseOptionsRefined } from '../options'\n\nexport type CssDimValue = string | number // TODO: move to more general file\n\nexport interface ColProps {\n width?: CssDimValue\n minWidth?: CssDimValue\n span?: number\n}\n\nexport interface SectionConfig {\n outerContent?: VNode\n type: 'body' | 'header' | 'footer'\n className?: string\n maxHeight?: number\n liquid?: boolean\n expandRows?: boolean // TODO: how to get a bottom rule?\n syncRowHeights?: boolean // yuck\n isSticky?: boolean\n}\n\nexport type ChunkConfigContent = (contentProps: ChunkContentCallbackArgs) => VNode\nexport type ChunkConfigRowContent = VNode | ChunkConfigContent\n\nexport interface ChunkConfig {\n outerContent?: VNode\n content?: ChunkConfigContent\n rowContent?: ChunkConfigRowContent\n scrollerElRef?: Ref\n elRef?: Ref\n tableClassName?: string\n}\n\nexport interface ChunkContentCallbackArgs { // TODO: util for wrapping tables!?\n tableColGroupNode: VNode\n tableMinWidth: CssDimValue\n clientWidth: number | null // important to know whether 0 or not-yet-determined. for headless testing\n clientHeight: number | null //\n expandRows: boolean\n syncRowHeights: boolean\n rowSyncHeights: number[]\n reportRowHeightChange: (rowEl: HTMLElement, isStable: boolean) => void\n}\n\nexport function computeShrinkWidth(chunkEls: HTMLElement[]) { // all in same COL!\n let shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink')\n let largestWidth = 0\n\n for (let shrinkCell of shrinkCells) {\n largestWidth = Math.max(\n largestWidth,\n computeSmallestCellWidth(shrinkCell),\n )\n }\n\n return Math.ceil(largestWidth) // elements work best with integers. round up to ensure contents fits\n}\n\nexport interface ScrollerLike { // have scrollers implement?\n needsYScrolling(): boolean\n needsXScrolling(): boolean\n}\n\nexport function getSectionHasLiquidHeight(props: { liquid: boolean }, sectionConfig: SectionConfig) {\n return props.liquid && sectionConfig.liquid // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\n\nexport function getAllowYScrolling(props: { liquid: boolean }, sectionConfig: SectionConfig) {\n return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n getSectionHasLiquidHeight(props, sectionConfig) // if the section is liquid height, it might condense enough to require scrollbars\n}\n\n// TODO: ONLY use `arg`. force out internal function to use same API\nexport function renderChunkContent(sectionConfig: SectionConfig, chunkConfig: ChunkConfig, arg: ChunkContentCallbackArgs) {\n let { expandRows } = arg\n\n let content: VNode = typeof chunkConfig.content === 'function' ?\n chunkConfig.content(arg) :\n createElement('table',\n {\n className: [\n chunkConfig.tableClassName,\n sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',\n ].join(' '),\n style: {\n minWidth: arg.tableMinWidth, // because colMinWidths arent enough\n width: arg.clientWidth,\n height: expandRows ? arg.clientHeight : '', // css `height` on a
serves as a min-height\n },\n },\n arg.tableColGroupNode,\n createElement('tbody', {}, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent))\n\n return content\n}\n\nexport function isColPropsEqual(cols0: ColProps[], cols1: ColProps[]) {\n return isArraysEqual(cols0, cols1, isPropsEqual)\n}\n\nexport function renderMicroColGroup(cols: ColProps[], shrinkWidth?: number): VNode {\n let colNodes: VNode[] = []\n\n /*\n for ColProps with spans, it would have been great to make a single \n HOWEVER, Chrome was getting messing up distributing the width to elements makes Chrome behave.\n */\n for (let colProps of cols) {\n let span = colProps.span || 1\n\n for (let i = 0; i < span; i += 1) {\n colNodes.push(\n ,\n )\n }\n }\n\n return createElement('colgroup', {}, ...colNodes)\n}\n\nexport function sanitizeShrinkWidth(shrinkWidth?: number) {\n /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n 4 accounts for 2 2-pixel borders. TODO: better solution? */\n return shrinkWidth == null ? 4 : shrinkWidth\n}\n\nexport function hasShrinkWidth(cols: ColProps[]) {\n for (let col of cols) {\n if (col.width === 'shrink') {\n return true\n }\n }\n\n return false\n}\n\nexport function getScrollGridClassNames(liquid: boolean, context: ViewContext) {\n let classNames = [\n 'fc-scrollgrid',\n context.theme.getClass('table'),\n ]\n\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid')\n }\n\n return classNames\n}\n\nexport function getSectionClassNames(sectionConfig: SectionConfig, wholeTableVGrow: boolean) {\n let classNames = [\n 'fc-scrollgrid-section',\n `fc-scrollgrid-section-${sectionConfig.type}`,\n sectionConfig.className, // used?\n ]\n\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid')\n }\n\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky')\n }\n\n return classNames\n}\n\nexport function renderScrollShim(arg: ChunkContentCallbackArgs) {\n return (\n \n )\n}\n\nexport function getStickyHeaderDates(options: BaseOptionsRefined) {\n let { stickyHeaderDates } = options\n\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto'\n }\n\n return stickyHeaderDates\n}\n\nexport function getStickyFooterScrollbar(options: BaseOptionsRefined) {\n let { stickyFooterScrollbar } = options\n\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto'\n }\n\n return stickyFooterScrollbar\n}\n","import { VNode, createElement, Fragment } from '../vdom'\nimport { BaseComponent, setRef } from '../vdom-util'\nimport { Scroller, OverflowValue } from './Scroller'\nimport { RefMap } from '../util/RefMap'\nimport {\n ColProps, SectionConfig, renderMicroColGroup, computeShrinkWidth, getScrollGridClassNames, getSectionClassNames, getAllowYScrolling,\n renderChunkContent, getSectionHasLiquidHeight, ChunkConfig, hasShrinkWidth, CssDimValue,\n isColPropsEqual,\n} from './util'\nimport { getCanVGrowWithinCell } from '../util/table-styling'\nimport { memoize } from '../util/memoize'\nimport { isPropsEqual } from '../util/object'\nimport { getScrollbarWidths } from '../util/scrollbar-width'\n\nexport interface SimpleScrollGridProps {\n cols: ColProps[]\n sections: SimpleScrollGridSection[]\n liquid: boolean // liquid *height*\n collapsibleWidth: boolean // can ALL sections be fully collapsed in width?\n height?: CssDimValue // TODO: give to real ScrollGrid\n}\n\nexport interface SimpleScrollGridSection extends SectionConfig {\n key: string\n chunk?: ChunkConfig\n}\n\ninterface SimpleScrollGridState {\n shrinkWidth: number | null\n forceYScrollbars: boolean\n scrollerClientWidths: { [key: string]: number }\n scrollerClientHeights: { [key: string]: number }\n}\n\nexport class SimpleScrollGrid extends BaseComponent {\n processCols = memoize((a) => a, isColPropsEqual) // so we get same `cols` props every time\n\n // yucky to memoize VNodes, but much more efficient for consumers\n renderMicroColGroup: typeof renderMicroColGroup = memoize(renderMicroColGroup)\n\n scrollerRefs = new RefMap()\n scrollerElRefs = new RefMap(this._handleScrollerEl.bind(this))\n\n state: SimpleScrollGridState = {\n shrinkWidth: null,\n forceYScrollbars: false,\n scrollerClientWidths: {},\n scrollerClientHeights: {},\n }\n\n render(): VNode {\n let { props, state, context } = this\n let sectionConfigs = props.sections || []\n let cols = this.processCols(props.cols)\n\n let microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth)\n let classNames = getScrollGridClassNames(props.liquid, context)\n\n if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible')\n }\n\n // TODO: make DRY\n let configCnt = sectionConfigs.length\n let configI = 0\n let currentConfig: SimpleScrollGridSection\n let headSectionNodes: VNode[] = []\n let bodySectionNodes: VNode[] = []\n let footSectionNodes: VNode[] = []\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode))\n configI += 1\n }\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode))\n configI += 1\n }\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode))\n configI += 1\n }\n\n // firefox bug: when setting height on table and there is a thead or tfoot,\n // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n // if so, use a simpler dom structure, jam everything into a lone tbody.\n let isBuggy = !getCanVGrowWithinCell()\n\n return createElement(\n 'table',\n {\n className: classNames.join(' '),\n style: { height: props.height },\n },\n Boolean(!isBuggy && headSectionNodes.length) && createElement('thead', {}, ...headSectionNodes),\n Boolean(!isBuggy && bodySectionNodes.length) && createElement('tbody', {}, ...bodySectionNodes),\n Boolean(!isBuggy && footSectionNodes.length) && createElement('tfoot', {}, ...footSectionNodes),\n isBuggy && createElement('tbody', {}, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes),\n )\n }\n\n renderSection(sectionConfig: SimpleScrollGridSection, microColGroupNode: VNode) {\n if ('outerContent' in sectionConfig) {\n return (\n \n {sectionConfig.outerContent}\n \n )\n }\n\n return (\n \n {this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk)}\n \n )\n }\n\n renderChunkTd(sectionConfig: SimpleScrollGridSection, microColGroupNode: VNode, chunkConfig: ChunkConfig) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent\n }\n\n let { props } = this\n let { forceYScrollbars, scrollerClientWidths, scrollerClientHeights } = this.state\n\n let needsYScrolling = getAllowYScrolling(props, sectionConfig) // TODO: do lazily. do in section config?\n let isLiquid = getSectionHasLiquidHeight(props, sectionConfig)\n\n // for `!props.liquid` - is WHOLE scrollgrid natural height?\n // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n let overflowY: OverflowValue =\n !props.liquid ? 'visible' :\n forceYScrollbars ? 'scroll' :\n !needsYScrolling ? 'hidden' :\n 'auto'\n\n let sectionKey = sectionConfig.key\n let content = renderChunkContent(sectionConfig, chunkConfig, {\n tableColGroupNode: microColGroupNode,\n tableMinWidth: '',\n clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,\n clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n expandRows: sectionConfig.expandRows,\n syncRowHeights: false,\n rowSyncHeights: [],\n reportRowHeightChange: () => {},\n })\n\n return (\n \n )\n }\n\n _handleScrollerEl(scrollerEl: HTMLElement | null, key: string) {\n let section = getSectionByKey(this.props.sections, key)\n\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl)\n }\n }\n\n // TODO: can do a really simple print-view. dont need to join rows\n handleSizing = () => {\n this.setState({\n shrinkWidth: this.computeShrinkWidth(), // will create each chunk's . TODO: precompute hasShrinkWidth\n ...this.computeScrollerDims(),\n })\n }\n\n componentDidMount() {\n this.handleSizing()\n this.context.addResizeHandler(this.handleSizing)\n }\n\n componentDidUpdate() {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing()\n }\n\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleSizing)\n }\n\n computeShrinkWidth() {\n return hasShrinkWidth(this.props.cols)\n ? computeShrinkWidth(this.scrollerElRefs.getAll())\n : 0\n }\n\n computeScrollerDims() {\n let scrollbarWidth = getScrollbarWidths()\n let { scrollerRefs, scrollerElRefs } = this\n\n let forceYScrollbars = false\n let scrollerClientWidths: { [index: string]: number } = {}\n let scrollerClientHeights: { [index: string]: number } = {}\n\n for (let sectionKey in scrollerRefs.currentMap) {\n let scroller = scrollerRefs.currentMap[sectionKey]\n\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true\n break\n }\n }\n\n for (let section of this.props.sections) {\n let sectionKey = section.key\n let scrollerEl = scrollerElRefs.currentMap[sectionKey]\n\n if (scrollerEl) {\n let harnessEl = scrollerEl.parentNode as HTMLElement // TODO: weird way to get this. need harness b/c doesn't include table borders\n\n scrollerClientWidths[sectionKey] = Math.floor(\n harnessEl.getBoundingClientRect().width - (\n forceYScrollbars\n ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n : 0\n ),\n )\n\n scrollerClientHeights[sectionKey] = Math.floor(\n harnessEl.getBoundingClientRect().height, // never has horizontal scrollbars\n )\n }\n }\n\n return { forceYScrollbars, scrollerClientWidths, scrollerClientHeights }\n }\n}\n\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual,\n})\n\nfunction getSectionByKey(sections: SimpleScrollGridSection[], key: string): SimpleScrollGridSection | null {\n for (let section of sections) {\n if (section.key === key) {\n return section\n }\n }\n\n return null\n}\n","import { Seg } from '../component/DateComponent'\nimport { ComponentChildren, createElement, Ref, createRef, RefObject } from '../vdom'\nimport { EventApi } from '../api/EventApi'\nimport {\n computeSegDraggable,\n computeSegStartResizable,\n computeSegEndResizable,\n setElSeg,\n EventContentArg,\n getEventClassNames,\n} from '../component/event-rendering'\nimport { RenderHook } from './render-hook'\nimport { BaseComponent } from '../vdom-util'\n\nexport interface MinimalEventProps {\n seg: Seg\n isDragging: boolean // rename to isMirrorDragging? make optional?\n isResizing: boolean // rename to isMirrorResizing? make optional?\n isDateSelecting: boolean // rename to isMirrorDateSelecting? make optional?\n isSelected: boolean\n isPast: boolean\n isFuture: boolean\n isToday: boolean\n}\n\nexport interface EventRootProps extends MinimalEventProps {\n timeText: string\n disableDragging?: boolean\n disableResizing?: boolean\n defaultContent: (hookProps: EventContentArg) => ComponentChildren\n children: (\n rootElRef: Ref,\n classNames: string[],\n innerElRef: Ref,\n innerContent: ComponentChildren,\n hookProps: EventContentArg\n ) => ComponentChildren\n}\n\nexport class EventRoot extends BaseComponent {\n elRef: RefObject = createRef()\n\n render() {\n let { props, context } = this\n let { options } = context\n let { seg } = props\n let { eventRange } = seg\n let { ui } = eventRange\n\n let hookProps: EventContentArg = {\n event: new EventApi(context, eventRange.def, eventRange.instance),\n view: context.viewApi,\n timeText: props.timeText,\n textColor: ui.textColor,\n backgroundColor: ui.backgroundColor,\n borderColor: ui.borderColor,\n isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n isEndResizable: !props.disableResizing && computeSegEndResizable(seg, context),\n isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n isStart: Boolean(seg.isStart),\n isEnd: Boolean(seg.isEnd),\n isPast: Boolean(props.isPast), // TODO: don't cast. getDateMeta does it\n isFuture: Boolean(props.isFuture), // TODO: don't cast. getDateMeta does it\n isToday: Boolean(props.isToday), // TODO: don't cast. getDateMeta does it\n isSelected: Boolean(props.isSelected),\n isDragging: Boolean(props.isDragging),\n isResizing: Boolean(props.isResizing),\n }\n\n let standardClassNames = getEventClassNames(hookProps).concat(ui.classNames)\n\n return (\n \n {(rootElRef, customClassNames, innerElRef, innerContent) => props.children(\n rootElRef, standardClassNames.concat(customClassNames), innerElRef, innerContent, hookProps,\n )}\n \n )\n }\n\n componentDidMount() {\n setElSeg(this.elRef.current, this.props.seg)\n }\n\n /*\n need to re-assign seg to the element if seg changes, even if the element is the same\n */\n componentDidUpdate(prevProps: EventRootProps) {\n let { seg } = this.props\n\n if (seg !== prevProps.seg) {\n setElSeg(this.elRef.current, seg)\n }\n }\n}\n","import { ComponentChildren, createElement, Fragment } from '../vdom'\nimport { BaseComponent } from '../vdom-util'\nimport { buildSegTimeText, EventContentArg } from '../component/event-rendering'\nimport { EventRoot, MinimalEventProps } from './EventRoot'\nimport { Seg } from '../component/DateComponent'\nimport { DateFormatter } from '../datelib/DateFormatter'\n\nexport interface StandardEventProps extends MinimalEventProps {\n extraClassNames: string[]\n defaultTimeFormat: DateFormatter\n defaultDisplayEventTime?: boolean // default true\n defaultDisplayEventEnd?: boolean // default true\n disableDragging?: boolean // default false\n disableResizing?: boolean // default false\n defaultContent?: (hookProps: EventContentArg) => ComponentChildren // not used by anyone yet\n}\n\n// should not be a purecomponent\nexport class StandardEvent extends BaseComponent {\n render() {\n let { props, context } = this\n let { seg } = props\n let timeFormat = context.options.eventTimeFormat || props.defaultTimeFormat\n let timeText = buildSegTimeText(\n seg,\n timeFormat,\n context,\n props.defaultDisplayEventTime,\n props.defaultDisplayEventEnd,\n )\n\n return (\n \n {(rootElRef, classNames, innerElRef, innerContent, hookProps) => (\n \n
\n {innerContent}\n
\n {hookProps.isStartResizable &&\n
}\n {hookProps.isEndResizable &&\n
}\n \n )}\n \n )\n }\n}\n\nfunction renderInnerContent(innerProps: EventContentArg) {\n return (\n
\n {innerProps.timeText && (\n
{innerProps.timeText}
\n )}\n
\n
\n {innerProps.event.title ||  }\n
\n
\n
\n )\n}\n\nfunction getSegAnchorAttrs(seg: Seg) {\n let { url } = seg.eventRange.def\n return url ? { href: url } : {}\n}\n","import { RenderHook, RenderHookPropsChildren, MountArg } from './render-hook'\nimport { DateMarker } from '../datelib/marker'\nimport { ViewContext, ViewContextType } from '../ViewContext'\nimport { createElement } from '../vdom'\nimport { ViewApi } from '../ViewApi'\n\nexport interface NowIndicatorRootProps {\n isAxis: boolean\n date: DateMarker\n children: RenderHookPropsChildren\n}\n\nexport interface NowIndicatorContentArg {\n isAxis: boolean\n date: Date\n view: ViewApi\n}\n\nexport type NowIndicatorMountArg = MountArg\n\nexport const NowIndicatorRoot = (props: NowIndicatorRootProps) => (\n \n {(context: ViewContext) => {\n let { options } = context\n let hookProps: NowIndicatorContentArg = {\n isAxis: props.isAxis,\n date: context.dateEnv.toDate(props.date),\n view: context.viewApi,\n }\n\n return (\n \n {props.children}\n \n )\n }}\n \n)\n","import { Ref, ComponentChildren, createElement } from '../vdom'\nimport { DateMarker } from '../datelib/marker'\nimport { DateRange } from '../datelib/date-range'\nimport { getDateMeta, DateMeta } from '../component/date-rendering'\nimport { createFormatter } from '../datelib/formatting'\nimport { ContentHook } from './render-hook'\nimport { ViewApi } from '../ViewApi'\nimport { BaseComponent } from '../vdom-util'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Dictionary } from '../options'\nimport { DateEnv } from '../datelib/env'\n\nconst DAY_NUM_FORMAT = createFormatter({ day: 'numeric' })\n\nexport interface DayCellContentProps {\n date: DateMarker\n dateProfile: DateProfile\n todayRange: DateRange\n showDayNumber?: boolean // defaults to false\n extraHookProps?: Dictionary\n defaultContent?: (hookProps: DayCellContentArg) => ComponentChildren\n children: (\n innerElRef: Ref,\n innerContent: ComponentChildren\n ) => ComponentChildren\n}\n\nexport interface DayCellContentArg extends DateMeta {\n date: DateMarker // localized\n view: ViewApi\n dayNumberText: string\n [extraProp: string]: any // so can include a resource\n}\n\nexport interface DayCellHookPropsInput {\n date: DateMarker // generic\n dateProfile: DateProfile\n todayRange: DateRange\n dateEnv: DateEnv\n viewApi: ViewApi\n showDayNumber?: boolean // defaults to false\n extraProps?: Dictionary // so can include a resource\n}\n\nexport class DayCellContent extends BaseComponent {\n render() {\n let { props, context } = this\n let { options } = context\n let hookProps = refineDayCellHookProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n showDayNumber: props.showDayNumber,\n extraProps: props.extraHookProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv,\n })\n\n return (\n \n {props.children}\n \n )\n }\n}\n\nexport function refineDayCellHookProps(raw: DayCellHookPropsInput): DayCellContentArg {\n let { date, dateEnv } = raw\n let dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile)\n\n return {\n date: dateEnv.toDate(date),\n view: raw.viewApi,\n ...dayMeta,\n dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : '',\n ...raw.extraProps,\n }\n}\n","import { Ref, ComponentChildren, createElement } from '../vdom'\nimport { DateMarker } from '../datelib/marker'\nimport { DateRange } from '../datelib/date-range'\nimport { getDayClassNames, DateMeta } from '../component/date-rendering'\nimport { formatDayString } from '../datelib/formatting-utils'\nimport { buildClassNameNormalizer, MountHook, MountArg } from './render-hook'\nimport { ViewApi } from '../ViewApi'\nimport { BaseComponent } from '../vdom-util'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { memoizeObjArg } from '../util/memoize'\nimport { Dictionary } from '../options'\nimport { refineDayCellHookProps } from './DayCellContent'\n\nexport interface DayCellContentArg extends DateMeta {\n date: DateMarker // localized\n view: ViewApi\n dayNumberText: string\n [extraProp: string]: any // so can include a resource\n}\nexport type DayCellMountArg = MountArg\n\nexport interface DayCellRootProps {\n elRef?: Ref\n date: DateMarker\n dateProfile: DateProfile\n todayRange: DateRange\n showDayNumber?: boolean // defaults to false\n extraHookProps?: Dictionary\n children: (\n rootElRef: Ref,\n classNames: string[],\n rootDataAttrs,\n isDisabled: boolean\n ) => ComponentChildren\n}\n\nexport class DayCellRoot extends BaseComponent {\n refineHookProps = memoizeObjArg(refineDayCellHookProps)\n normalizeClassNames = buildClassNameNormalizer()\n\n render() {\n let { props, context } = this\n let { options } = context\n let hookProps = this.refineHookProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n showDayNumber: props.showDayNumber,\n extraProps: props.extraHookProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv,\n })\n\n let classNames = getDayClassNames(hookProps, context.theme).concat(\n hookProps.isDisabled\n ? [] // don't use custom classNames if disabled\n : this.normalizeClassNames(options.dayCellClassNames, hookProps),\n )\n\n let dataAttrs = hookProps.isDisabled ? {} : {\n 'data-date': formatDayString(props.date),\n }\n\n return (\n \n {(rootElRef) => props.children(rootElRef, classNames, dataAttrs, hookProps.isDisabled)}\n \n )\n }\n}\n","import { createElement } from '../vdom'\nimport { EventRoot } from './EventRoot'\nimport { Seg } from '../component/DateComponent'\nimport { EventContentArg } from '../component/event-rendering'\n\nexport function renderFill(fillType: string) {\n return (\n
\n )\n}\n\nexport interface BgEventProps {\n seg: Seg\n isPast: boolean\n isFuture: boolean\n isToday: boolean\n}\n\nexport const BgEvent = (props: BgEventProps) => (\n \n {(rootElRef, classNames, innerElRef, innerContent, hookProps) => (\n \n {innerContent}\n
\n )}\n \n)\n\nfunction renderInnerContent(props: EventContentArg) {\n let { title } = props.event\n\n return title && (\n
{props.event.title}
\n )\n}\n","import { ViewContext, ViewContextType } from '../ViewContext'\nimport { DateMarker } from '../datelib/marker'\nimport { RenderHook, RenderHookPropsChildren, MountArg } from './render-hook'\nimport { createElement } from '../vdom'\nimport { DateFormatter } from '../datelib/DateFormatter'\n\nexport interface WeekNumberRootProps {\n date: DateMarker\n defaultFormat: DateFormatter\n children: RenderHookPropsChildren\n}\n\nexport interface WeekNumberContentArg {\n num: number\n text: string\n date: Date\n}\nexport type WeekNumberMountArg = MountArg\n\nexport const WeekNumberRoot = (props: WeekNumberRootProps) => (\n \n {(context: ViewContext) => {\n let { dateEnv, options } = context\n let { date } = props\n let format = options.weekNumberFormat || props.defaultFormat\n let num = dateEnv.computeWeekNumber(date) // TODO: somehow use for formatting as well?\n let text = dateEnv.format(date, format)\n let hookProps: WeekNumberContentArg = { num, text, date }\n\n return (\n // why isn't WeekNumberContentArg being auto-detected?\n hookProps={hookProps}\n classNames={options.weekNumberClassNames}\n content={options.weekNumberContent}\n defaultContent={renderInner}\n didMount={options.weekNumberDidMount}\n willUnmount={options.weekNumberWillUnmount}\n >\n {props.children}\n \n )\n }}\n \n)\n\nfunction renderInner(innerProps) {\n return innerProps.text\n}\n","import { Dictionary } from '../options'\nimport { computeClippedClientRect } from '../util/dom-geom'\nimport { applyStyle, elementClosest, getEventTargetViaRoot } from '../util/dom-manip'\nimport { createElement, ComponentChildren, Ref, createPortal } from '../vdom'\nimport { BaseComponent, setRef } from '../vdom-util'\n\nexport interface PopoverProps {\n elRef?: Ref\n title: string\n extraClassNames?: string[]\n extraAttrs?: Dictionary\n parentEl: HTMLElement\n alignmentEl: HTMLElement\n alignGridTop?: boolean\n children?: ComponentChildren\n onClose?: () => void\n}\n\nconst PADDING_FROM_VIEWPORT = 10\n\nexport class Popover extends BaseComponent {\n private rootEl: HTMLElement\n\n render() {\n let { theme } = this.context\n let { props } = this\n let classNames = [\n 'fc-popover',\n theme.getClass('popover'),\n ].concat(\n props.extraClassNames || [],\n )\n\n return createPortal(\n
\n
\n \n {props.title}\n \n \n
\n
\n {props.children}\n
\n
,\n props.parentEl,\n )\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleDocumentMousedown)\n this.updateSize()\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleDocumentMousedown)\n }\n\n handleRootEl = (el: HTMLElement | null) => {\n this.rootEl = el\n\n if (this.props.elRef) {\n setRef(this.props.elRef, el)\n }\n }\n\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n handleDocumentMousedown = (ev) => {\n // only hide the popover if the click happened outside the popover\n const target = getEventTargetViaRoot(ev) as HTMLElement\n if (!this.rootEl.contains(target)) {\n this.handleCloseClick()\n }\n }\n\n handleCloseClick = () => {\n let { onClose } = this.props\n if (onClose) {\n onClose()\n }\n }\n\n private updateSize() {\n let { isRtl } = this.context\n let { alignmentEl, alignGridTop } = this.props\n let { rootEl } = this\n\n let alignmentRect = computeClippedClientRect(alignmentEl)\n if (alignmentRect) {\n let popoverDims = rootEl.getBoundingClientRect()\n\n // position relative to viewport\n let popoverTop = alignGridTop\n ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top\n : alignmentRect.top\n let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left\n\n // constrain\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT)\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width)\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT)\n\n let origin = rootEl.offsetParent.getBoundingClientRect()\n applyStyle(rootEl, {\n top: popoverTop - origin.top,\n left: popoverLeft - origin.left,\n })\n }\n }\n}\n","import { DateComponent } from '../component/DateComponent'\nimport { DateRange } from '../datelib/date-range'\nimport { DateMarker } from '../datelib/marker'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Hit } from '../interactions/hit'\nimport { Dictionary } from '../options'\nimport { createElement, ComponentChildren } from '../vdom'\nimport { DayCellContent } from './DayCellContent'\nimport { DayCellRoot } from './DayCellRoot'\nimport { Popover } from './Popover'\n\nexport interface MorePopoverProps {\n startDate: DateMarker\n endDate: DateMarker\n dateProfile: DateProfile\n parentEl: HTMLElement\n alignmentEl: HTMLElement\n alignGridTop?: boolean\n todayRange: DateRange\n extraDateSpan: Dictionary\n children: ComponentChildren\n onClose?: () => void\n}\n\nexport class MorePopover extends DateComponent {\n rootEl: HTMLElement\n\n render() {\n let { options, dateEnv } = this.context\n let { props } = this\n let { startDate, todayRange, dateProfile } = props\n let title = dateEnv.format(startDate, options.dayPopoverFormat)\n return (\n \n {(rootElRef, dayClassNames, dataAttrs) => (\n \n \n {(innerElRef, innerContent) => (\n innerContent &&\n
{innerContent}
\n )}\n
\n {props.children}\n \n )}\n
\n )\n }\n\n handleRootEl = (rootEl: HTMLDivElement | null) => {\n this.rootEl = rootEl\n if (rootEl) {\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n useEventCenter: false,\n })\n } else {\n this.context.unregisterInteractiveComponent(this)\n }\n }\n\n queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit {\n let { rootEl, props } = this\n\n if (\n positionLeft >= 0 && positionLeft < elWidth &&\n positionTop >= 0 && positionTop < elHeight\n ) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: {\n allDay: true,\n range: {\n start: props.startDate,\n end: props.endDate,\n },\n ...props.extraDateSpan,\n },\n dayEl: rootEl,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight,\n },\n layer: 1, // important when comparing with hits from other components\n }\n }\n\n return null\n }\n}\n","import { EventApi } from '../api/EventApi'\nimport { Seg } from '../component/DateComponent'\nimport { DateRange } from '../datelib/date-range'\nimport { addDays, DateMarker } from '../datelib/marker'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Dictionary } from '../options'\nimport { elementClosest } from '../util/dom-manip'\nimport { ComponentChildren, createElement, createRef, Fragment, Ref, RefObject, VNode } from '../vdom'\nimport { BaseComponent } from '../vdom-util'\nimport { ViewApi } from '../ViewApi'\nimport { ViewContext, ViewContextType } from '../ViewContext'\nimport { MorePopover } from './MorePopover'\nimport { MountArg, RenderHook } from './render-hook'\n\nexport type MoreLinkChildren = (\n rootElRef: Ref,\n classNames: string[],\n innerElRef: Ref,\n innerContent: ComponentChildren,\n handleClick: (ev: MouseEvent) => void,\n) => ComponentChildren\n\nexport interface MoreLinkRootProps { // what the MoreLinkRoot component receives\n dateProfile: DateProfile\n todayRange: DateRange\n allDayDate: DateMarker | null\n moreCnt: number // can't always derive from hiddenSegs. some hiddenSegs might be due to lack of dimensions\n allSegs: Seg[]\n hiddenSegs: Seg[]\n extraDateSpan?: Dictionary\n alignmentElRef: RefObject // for popover\n alignGridTop?: boolean // for popover\n topAlignmentElRef?: RefObject\n defaultContent?: (hookProps: MoreLinkContentArg) => ComponentChildren\n popoverContent: () => VNode\n children: MoreLinkChildren\n}\n\nexport interface MoreLinkContentArg { // what the render-hooks receive\n num: number\n text: string\n shortText: string\n view: ViewApi\n}\n\nexport type MoreLinkMountArg = MountArg\n\ninterface MoreLinkRootState {\n isPopoverOpen: boolean\n}\n\nexport class MoreLinkRoot extends BaseComponent {\n private linkElRef = createRef()\n private parentEl: HTMLElement\n\n state = {\n isPopoverOpen: false,\n }\n\n render() {\n let { props } = this\n return (\n \n {(context: ViewContext) => {\n let { viewApi, options, calendarApi } = context\n let { moreLinkText } = options\n let { moreCnt } = props\n let range = computeRange(props)\n\n let hookProps: MoreLinkContentArg = {\n num: moreCnt,\n shortText: `+${moreCnt}`, // TODO: offer hook or i18n?\n text: typeof moreLinkText === 'function'\n ? moreLinkText.call(calendarApi, moreCnt)\n : `+${moreCnt} ${moreLinkText}`,\n view: viewApi,\n }\n\n return (\n \n {Boolean(props.moreCnt) && (\n \n elRef={this.linkElRef}\n hookProps={hookProps}\n classNames={options.moreLinkClassNames}\n content={options.moreLinkContent}\n defaultContent={props.defaultContent || renderMoreLinkInner}\n didMount={options.moreLinkDidMount}\n willUnmount={options.moreLinkWillUnmount}\n >\n {(rootElRef, customClassNames, innerElRef, innerContent) => props.children(\n rootElRef, ['fc-more-link'].concat(customClassNames), innerElRef, innerContent, this.handleClick,\n )}\n \n )}\n {this.state.isPopoverOpen && (\n \n {props.popoverContent()}\n \n )}\n \n )\n }}\n \n )\n }\n\n componentDidMount() {\n this.updateParentEl()\n }\n\n componentDidUpdate() {\n this.updateParentEl()\n }\n\n updateParentEl() {\n if (this.linkElRef.current) {\n this.parentEl = elementClosest(this.linkElRef.current, '.fc-view-harness')\n }\n }\n\n handleClick = (ev: MouseEvent) => {\n let { props, context } = this\n let { moreLinkClick } = context.options\n let date = computeRange(props).start\n\n function buildPublicSeg(seg: Seg) {\n let { def, instance, range } = seg.eventRange\n return {\n event: new EventApi(context, def, instance),\n start: context.dateEnv.toDate(range.start),\n end: context.dateEnv.toDate(range.end),\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n }\n }\n\n if (typeof moreLinkClick === 'function') {\n moreLinkClick = moreLinkClick({\n date,\n allDay: Boolean(props.allDayDate),\n allSegs: props.allSegs.map(buildPublicSeg),\n hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n jsEvent: ev,\n view: context.viewApi,\n }) as string | undefined\n }\n\n if (!moreLinkClick || moreLinkClick === 'popover') {\n this.setState({ isPopoverOpen: true })\n } else if (typeof moreLinkClick === 'string') { // a view name\n context.calendarApi.zoomTo(date, moreLinkClick)\n }\n }\n\n handlePopoverClose = () => {\n this.setState({ isPopoverOpen: false })\n }\n}\n\nfunction renderMoreLinkInner(props: MoreLinkContentArg) {\n return props.text\n}\n\nfunction computeRange(props: MoreLinkRootProps): DateRange {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1),\n }\n }\n\n let { hiddenSegs } = props\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs),\n }\n}\n\nexport function computeEarliestSegStart(segs: Seg[]): DateMarker {\n return segs.reduce(pickEarliestStart).eventRange.range.start\n}\n\nfunction pickEarliestStart(seg0: Seg, seg1: Seg): Seg {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1\n}\n\nfunction computeLatestSegEnd(segs: Seg[]): DateMarker {\n return segs.reduce(pickLatestEnd).eventRange.range.end\n}\n\nfunction pickLatestEnd(seg0: Seg, seg1: Seg): Seg {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import React, { createRef, Component } from 'react';\nimport { tip, classNames, ObjectUtils, Ripple } from 'primereact/core';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ButtonComponent = /*#__PURE__*/function (_Component) {\n _inherits(ButtonComponent, _Component);\n\n var _super = _createSuper(ButtonComponent);\n\n function ButtonComponent(props) {\n var _this;\n\n _classCallCheck(this, ButtonComponent);\n\n _this = _super.call(this, props);\n _this.elementRef = /*#__PURE__*/createRef(_this.props.forwardRef);\n return _this;\n }\n\n _createClass(ButtonComponent, [{\n key: \"updateForwardRef\",\n value: function updateForwardRef() {\n var ref = this.props.forwardRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.elementRef.current);\n } else {\n ref.current = this.elementRef.current;\n }\n }\n }\n }, {\n key: \"isDisabled\",\n value: function isDisabled() {\n return this.props.disabled || this.props.loading;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateForwardRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.elementRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderIcon\",\n value: function renderIcon() {\n var icon = this.props.loading ? this.props.loadingIcon : this.props.icon;\n var content = null;\n\n if (icon) {\n var _classNames;\n\n var iconType = _typeof(icon);\n\n var className = classNames('p-button-icon p-c', (_classNames = {\n 'p-button-loading-icon': this.props.loading\n }, _defineProperty(_classNames, \"\".concat(icon), iconType === 'string'), _defineProperty(_classNames, 'p-button-icon-left', this.props.iconPos === 'left' && this.props.label), _defineProperty(_classNames, 'p-button-icon-right', this.props.iconPos === 'right' && this.props.label), _defineProperty(_classNames, 'p-button-icon-top', this.props.iconPos === 'top' && this.props.label), _defineProperty(_classNames, 'p-button-icon-bottom', this.props.iconPos === 'bottom' && this.props.label), _classNames));\n content = /*#__PURE__*/React.createElement(\"span\", {\n className: className\n });\n\n if (iconType !== 'string') {\n var defaultContentOptions = {\n className: className,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(icon, defaultContentOptions);\n }\n }\n\n return content;\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel() {\n if (this.props.label) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-button-label p-c\"\n }, this.props.label);\n }\n\n return !this.props.children && !this.props.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-button-label p-c\",\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n });\n }\n }, {\n key: \"renderBadge\",\n value: function renderBadge() {\n if (this.props.badge) {\n var badgeClassName = classNames('p-badge', this.props.badgeClassName);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: badgeClassName\n }, this.props.badge);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var disabled = this.isDisabled();\n var className = classNames('p-button p-component', this.props.className, _defineProperty({\n 'p-button-icon-only': (this.props.icon || this.props.loading && this.props.loadingIcon) && !this.props.label,\n 'p-button-vertical': (this.props.iconPos === 'top' || this.props.iconPos === 'bottom') && this.props.label,\n 'p-disabled': disabled,\n 'p-button-loading': this.props.loading,\n 'p-button-loading-label-only': this.props.loading && !this.props.icon && this.props.label\n }, \"p-button-loading-\".concat(this.props.iconPos), this.props.loading && this.props.loadingIcon && this.props.label));\n var icon = this.renderIcon();\n var label = this.renderLabel();\n var badge = this.renderBadge();\n var buttonProps = ObjectUtils.findDiffKeys(this.props, ButtonComponent.defaultProps);\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n ref: this.elementRef\n }, buttonProps, {\n className: className,\n disabled: disabled\n }), icon, label, this.props.children, badge, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return ButtonComponent;\n}(Component);\n\n_defineProperty(ButtonComponent, \"defaultProps\", {\n label: null,\n icon: null,\n iconPos: 'left',\n badge: null,\n badgeClassName: null,\n tooltip: null,\n tooltipOptions: null,\n forwardRef: null,\n disabled: false,\n loading: false,\n loadingIcon: 'pi pi-spinner pi-spin'\n});\n\nvar Button = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ButtonComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nexport { Button, ButtonComponent };\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React, { createRef, Component } from 'react';\nimport { KeyFilter, DomHandler, tip, classNames, ObjectUtils } from 'primereact/core';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar InputTextComponent = /*#__PURE__*/function (_Component) {\n _inherits(InputTextComponent, _Component);\n\n var _super = _createSuper(InputTextComponent);\n\n function InputTextComponent(props) {\n var _this;\n\n _classCallCheck(this, InputTextComponent);\n\n _this = _super.call(this, props);\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.onKeyPress = _this.onKeyPress.bind(_assertThisInitialized(_this));\n _this.elementRef = /*#__PURE__*/createRef(_this.props.forwardRef);\n return _this;\n }\n\n _createClass(InputTextComponent, [{\n key: \"isFilled\",\n value: function isFilled() {\n return this.props.value != null && this.props.value.toString().length > 0 || this.props.defaultValue != null && this.props.defaultValue.toString().length > 0 || this.elementRef && this.elementRef.current && this.elementRef.current.value != null && this.elementRef.current.value.toString().length > 0;\n }\n }, {\n key: \"onKeyPress\",\n value: function onKeyPress(event) {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.keyfilter) {\n KeyFilter.onKeyPress(event, this.props.keyfilter, this.props.validateOnly);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event) {\n var validatePattern = true;\n\n if (this.props.keyfilter && this.props.validateOnly) {\n validatePattern = KeyFilter.validate(event, this.props.keyfilter);\n }\n\n if (this.props.onInput) {\n this.props.onInput(event, validatePattern);\n }\n\n if (!this.props.onChange) {\n if (event.target.value.length > 0) DomHandler.addClass(event.target, 'p-filled');else DomHandler.removeClass(event.target, 'p-filled');\n }\n }\n }, {\n key: \"updateForwardRef\",\n value: function updateForwardRef() {\n var ref = this.props.forwardRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.elementRef.current);\n } else {\n ref.current = this.elementRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateForwardRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.elementRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-inputtext p-component', {\n 'p-disabled': this.props.disabled,\n 'p-filled': this.isFilled()\n }, this.props.className);\n var inputProps = ObjectUtils.findDiffKeys(this.props, InputTextComponent.defaultProps);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n ref: this.elementRef\n }, inputProps, {\n className: className,\n onInput: this.onInput,\n onKeyPress: this.onKeyPress\n }));\n }\n }]);\n\n return InputTextComponent;\n}(Component);\n\n_defineProperty(InputTextComponent, \"defaultProps\", {\n keyfilter: null,\n validateOnly: false,\n tooltip: null,\n tooltipOptions: null,\n onInput: null,\n onKeyPress: null,\n forwardRef: null\n});\n\nvar InputText = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(InputTextComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nexport { InputText };\n","import { Component } from 'react';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Column = /*#__PURE__*/function (_Component) {\n _inherits(Column, _Component);\n\n var _super = _createSuper(Column);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _super.apply(this, arguments);\n }\n\n return Column;\n}(Component);\n\n_defineProperty(Column, \"defaultProps\", {\n columnKey: null,\n field: null,\n sortField: null,\n filterField: null,\n header: null,\n body: null,\n loadingBody: null,\n footer: null,\n sortable: false,\n sortableDisabled: false,\n sortFunction: null,\n filter: false,\n filterMatchMode: 'startsWith',\n filterPlaceholder: null,\n filterType: 'text',\n filterMaxLength: null,\n filterElement: null,\n filterFunction: null,\n filterHeaderStyle: null,\n filterHeaderClassName: null,\n style: null,\n className: null,\n headerStyle: null,\n headerClassName: null,\n bodyStyle: null,\n bodyClassName: null,\n footerStyle: null,\n footerClassName: null,\n expander: false,\n frozen: false,\n selectionMode: null,\n colSpan: null,\n rowSpan: null,\n editor: null,\n editorValidator: null,\n editorValidatorEvent: 'click',\n onBeforeEditorHide: null,\n onBeforeEditorShow: null,\n onEditorInit: null,\n onEditorSubmit: null,\n onEditorCancel: null,\n excludeGlobalFilter: false,\n rowReorder: false,\n rowReorderIcon: 'pi pi-bars',\n rowEditor: false,\n exportable: true,\n reorderable: true\n});\n\nexport { Column };\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar PrimeReact = function PrimeReact() {\n _classCallCheck(this, PrimeReact);\n};\n\n_defineProperty(PrimeReact, \"ripple\", false);\n\n_defineProperty(PrimeReact, \"locale\", 'en');\n\n_defineProperty(PrimeReact, \"autoZIndex\", true);\n\n_defineProperty(PrimeReact, \"zIndex\", {\n modal: 1100,\n overlay: 1000,\n menu: 1000,\n tooltip: 1100,\n toast: 1200\n});\n\n_defineProperty(PrimeReact, \"appendTo\", null);\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar locales = {\n 'en': {\n accept: 'Yes',\n reject: 'No',\n choose: 'Choose',\n upload: 'Upload',\n cancel: 'Cancel',\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n today: 'Today',\n clear: 'Clear',\n weekHeader: 'Wk',\n firstDayOfWeek: 0,\n dateFormat: 'mm/dd/yy',\n weak: 'Weak',\n medium: 'Medium',\n strong: 'Strong',\n passwordPrompt: 'Enter a password'\n }\n};\n\nfunction locale(locale) {\n if (locale) {\n PrimeReact.locale = locale;\n }\n\n return {\n locale: PrimeReact.locale,\n options: locales[PrimeReact.locale]\n };\n}\n\nfunction addLocale(locale, options) {\n locales[locale] = _objectSpread(_objectSpread({}, locales['en']), options);\n}\n\nfunction updateLocaleOption(key, value, locale) {\n localeOptions(locale)[key] = value;\n}\n\nfunction updateLocaleOptions(options, locale) {\n var _locale = locale || PrimeReact.locale;\n\n locales[_locale] = _objectSpread(_objectSpread({}, locales[_locale]), options);\n}\n\nfunction localeOption(key, locale) {\n try {\n return localeOptions(locale)[key];\n } catch (error) {\n throw new Error(\"The \".concat(key, \" option is not found in the current locale('\").concat(locale || PrimeReact.locale, \"').\"));\n }\n}\n\nfunction localeOptions(locale) {\n var _locale = locale || PrimeReact.locale;\n\n return locales[_locale];\n}\n\nvar PrimeIcons = Object.freeze({\n ALIGN_CENTER: 'pi pi-align-center',\n ALIGN_JUSTIFY: 'pi pi-align-justify',\n ALIGN_LEFT: 'pi pi-align-left',\n ALIGN_RIGHT: 'pi pi-align-right',\n AMAZON: 'pi pi-amazon',\n ANDROID: 'pi pi-android',\n ANGLE_DOUBLE_DOWN: 'pi pi-angle-double-down',\n ANGLE_DOUBLE_LEFT: 'pi pi-angle-double-left',\n ANGLE_DOUBLE_RIGHT: 'pi pi-angle-double-right',\n ANGLE_DOUBLE_UP: 'pi pi-angle-double-up',\n ANGLE_DOWN: 'pi pi-angle-down',\n ANGLE_LEFT: 'pi pi-angle-left',\n ANGLE_RIGHT: 'pi pi-angle-right',\n ANGLE_UP: 'pi pi-angle-up',\n APPLE: 'pi pi-apple',\n ARROW_CIRCLE_DOWN: 'pi pi-arrow-circle-down',\n ARROW_CIRCLE_LEFT: 'pi pi-arrow-circle-left',\n ARROW_CIRCLE_RIGHT: 'pi pi-arrow-circle-right',\n ARROW_CIRCLE_UP: 'pi pi-arrow-circle-up',\n ARROW_DOWN: 'pi pi-arrow-down',\n ARROW_LEFT: 'pi pi-arrow-left',\n ARROW_RIGHT: 'pi pi-arrow-right',\n ARROW_UP: 'pi pi-arrow-up',\n BACKWARD: 'pi pi-backward',\n BAN: 'pi pi-ban',\n BARS: 'pi pi-bars',\n BELL: 'pi pi-bell',\n BOOK: 'pi pi-book',\n BOOKMARK: 'pi pi-bookmark',\n BRIEFCASE: 'pi pi-briefcase',\n CALENDAR_MINUS: 'pi pi-calendar-minus',\n CALENDAR_PLUS: 'pi pi-calendar-plus',\n CALENDAR_TIMES: 'pi pi-calendar-times',\n CALENDAR: 'pi pi-calendar',\n CAMERA: 'pi pi-camera',\n CARET_DOWN: 'pi pi-caret-down',\n CARET_LEFT: 'pi pi-caret-left',\n CARET_RIGHT: 'pi pi-caret-right',\n CARET_UP: 'pi pi-caret-up',\n CHART_BAR: 'pi pi-chart-bar',\n CHART_LINE: 'pi pi-chart-line',\n CHECK_CIRCLE: 'pi pi-check-circle',\n CHECK_SQUARE: 'pi pi-check-square',\n CHECK: 'pi pi-check',\n CHEVRON_CIRCLE_DOWN: 'pi pi-chevron-circle-down',\n CHEVRON_CIRCLE_LEFT: 'pi pi-chevron-circle-left',\n CHEVRON_CIRCLE_RIGHT: 'pi pi-chevron-circle-right',\n CHEVRON_CIRCLE_UP: 'pi pi-chevron-circle-up',\n CHEVRON_DOWN: 'pi pi-chevron-down',\n CHEVRON_LEFT: 'pi pi-chevron-left',\n CHEVRON_RIGHT: 'pi pi-chevron-right',\n CHEVRON_UP: 'pi pi-chevron-up',\n CLOCK: 'pi pi-clock',\n CLONE: 'pi pi-clone',\n CLOUD_DOWNLOAD: 'pi pi-cloud-download',\n CLOUD_UPLOAD: 'pi pi-cloud-upload',\n CLOUD: 'pi pi-cloud',\n COG: 'pi pi-cog',\n COMMENT: 'pi pi-comment',\n COMMENTS: 'pi pi-comments',\n COMPASS: 'pi pi-compass',\n COPY: 'pi pi-copy',\n CREDIT_CARD: 'pi pi-credit-card',\n DESKTOP: 'pi pi-desktop',\n DISCORD: 'pi pi-discord',\n DIRECTIONS_ALT: 'pi pi-directions-alt',\n DIRECTIONS: 'pi pi-directions',\n DOLLAR: 'pi pi-dollar',\n DOWNLOAD: 'pi pi-download',\n EJECT: 'pi pi-eject',\n ELLIPSIS_H: 'pi pi-ellipsis-h',\n ELLIPSIS_V: 'pi pi-ellipsis-v',\n ENVELOPE: 'pi pi-envelope',\n EXCLAMATION_CIRCLE: 'pi pi-exclamation-circle',\n EXCLAMATION_TRIANGLE: 'pi pi-exclamation-triangle ',\n EXTERNAL_LINK: 'pi pi-external-link',\n EYE_SLASH: 'pi pi-eye-slash',\n EYE: 'pi pi-eye',\n FACEBOOK: 'pi pi-facebook',\n FAST_BACKWARD: 'pi pi-fast-backward',\n FAST_FORWARD: 'pi pi-fast-forward',\n FILE_EXCEL: 'pi pi-file-excel',\n FILE_O: 'pi pi-file-o',\n FILE_PDF: 'pi pi-file-pdf',\n FILE: 'pi pi-file',\n FILTER: 'pi pi-filter',\n FILTER_SLASH: 'pi pi-filter-slash',\n FLAG: 'pi pi-flag',\n FOLDER_OPEN: 'pi pi-folder-open',\n FOLDER: 'pi pi-folder',\n FORWARD: 'pi pi-forward',\n GITHUB: 'pi pi-github',\n GLOBE: 'pi pi-globe',\n GOOGLE: 'pi pi-google',\n HEART: 'pi pi-heart',\n HOME: 'pi pi-home',\n ID_CARD: 'pi pi-id-card',\n IMAGE: 'pi pi-image',\n IMAGES: 'pi pi-images',\n INBOX: 'pi pi-inbox',\n INFO_CIRCLE: 'pi pi-info-circle',\n INFO: 'pi pi-info',\n KEY: 'pi pi-key',\n LINK: 'pi pi-link',\n LIST: 'pi pi-list',\n LOCK_OPEN: 'pi pi-lock-open',\n LOCK: 'pi pi-lock',\n MAP: 'pi pi-map',\n MAP_MARKER: 'pi pi-map-marker',\n MICROSOFT: 'pi pi-microsoft',\n MINUS_CIRCLE: 'pi pi-minus-circle',\n MINUS: 'pi pi-minus',\n MOBILE: 'pi pi-mobile',\n MONEY_BILL: 'pi pi-money-bill',\n MOON: 'pi pi-moon',\n PALETTE: 'pi pi-palette',\n PAPERCLIP: 'pi pi-paperclip',\n PAUSE: 'pi pi-pause',\n PAYPAL: 'pi pi-paypal',\n PENCIL: 'pi pi-pencil',\n PERCENTAGE: 'pi pi-percentage',\n PHONE: 'pi pi-phone',\n PLAY: 'pi pi-play',\n PLUS_CIRCLE: 'pi pi-plus-circle',\n PLUS: 'pi pi-plus',\n POWER_OFF: 'pi pi-power-off',\n PRINT: 'pi pi-print',\n QUESTION_CIRCLE: 'pi pi-question-circle',\n QUESTION: 'pi pi-question',\n RADIO_OFF: 'pi pi-radio-off',\n RADIO_ON: 'pi pi-radio-on',\n REFRESH: 'pi pi-refresh',\n REPLAY: 'pi pi-replay',\n REPLY: 'pi pi-reply',\n SAVE: 'pi pi-save',\n SEARCH_MINUS: 'pi pi-search-minus',\n SEARCH_PLUS: 'pi pi-search-plus',\n SEARCH: 'pi pi-search',\n SEND: 'pi pi-send',\n SHARE_ALT: 'pi pi-share-alt',\n SHIELD: 'pi pi-shield',\n SHOPPING_CART: 'pi pi-shopping-cart',\n SIGN_IN: 'pi pi-sign-in',\n SIGN_OUT: 'pi pi-sign-out',\n SITEMAP: 'pi pi-sitemap',\n SLACK: 'pi pi-slack',\n SLIDERS_H: 'pi pi-sliders-h',\n SLIDERS_V: 'pi pi-sliders-v',\n SORT_ALPHA_ALT_DOWN: 'pi pi-sort-alpha-alt-down',\n SORT_ALPHA_ALT_UP: 'pi pi-sort-alpha-alt-up',\n SORT_ALPHA_DOWN: 'pi pi-sort-alpha-down',\n SORT_ALPHA_UP: 'pi pi-sort-alpha-up',\n SORT_ALT: 'pi pi-sort-alt',\n SORT_AMOUNT_DOWN_ALT: 'pi pi-sort-amount-down-alt',\n SORT_AMOUNT_DOWN: 'pi pi-sort-amount-down',\n SORT_AMOUNT_UP_ALT: 'pi pi-sort-amount-up-alt',\n SORT_AMOUNT_UP: 'pi pi-sort-amount-up',\n SORT_DOWN: 'pi pi-sort-down',\n SORT_NUMERIC_ALT_DOWN: 'pi pi-sort-numeric-alt-down',\n SORT_NUMERIC_ALT_UP: 'pi pi-sort-numeric-alt-up',\n SORT_NUMERIC_DOWN: 'pi pi-sort-numeric-down',\n SORT_NUMERIC_UP: 'pi pi-sort-numeric-up',\n SORT_UP: 'pi pi-sort-up',\n SORT: 'pi pi-sort',\n SPINNER: 'pi pi-spinner',\n STAR_O: 'pi pi-star-o',\n STAR: 'pi pi-star',\n STEP_BACKWARD_ALT: 'pi pi-step-backward-alt',\n STEP_BACKWARD: 'pi pi-step-backward',\n STEP_FORWARD_ALT: 'pi pi-step-forward-alt',\n STEP_FORWARD: 'pi pi-step-forward',\n SUN: 'pi pi-sun',\n TABLE: 'pi pi-table',\n TABLET: 'pi pi-tablet',\n TAG: 'pi pi-tag',\n TAGS: 'pi pi-tags',\n TH_LARGE: 'pi pi-th-large',\n THUMBS_DOWN: 'pi pi-thumbs-down',\n THUMBS_UP: 'pi pi-thumbs-up',\n TICKET: 'pi pi-ticket',\n TIMES_CIRCLE: 'pi pi-times-circle',\n TIMES: 'pi pi-times',\n TRASH: 'pi pi-trash',\n TWITTER: 'pi pi-twitter',\n UNDO: 'pi pi-undo',\n UNLOCK: 'pi pi-unlock',\n UPLOAD: 'pi pi-upload',\n USER_EDIT: 'pi pi-user-edit',\n USER_MINUS: 'pi pi-user-minus',\n USER_PLUS: 'pi pi-user-plus',\n USER: 'pi pi-user',\n USERS: 'pi pi-users',\n VIDEO: 'pi pi-video',\n VIMEO: 'pi pi-vimeo',\n VOLUME_DOWN: 'pi pi-volume-down',\n VOLUME_OFF: 'pi pi-volume-off',\n VOLUME_UP: 'pi pi-volume-up',\n YOUTUBE: 'pi pi-youtube',\n WALLET: 'pi pi-wallet',\n WIFI: 'pi pi-wifi',\n WINDOW_MAXIMIZE: 'pi pi-window-maximize',\n WINDOW_MINIMIZE: 'pi pi-window-minimize'\n});\n\nvar MessageSeverity = Object.freeze({\n SUCCESS: 'success',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error'\n});\n\nexport default PrimeReact;\nexport { MessageSeverity, PrimeIcons, addLocale, locale, localeOption, localeOptions, updateLocaleOption, updateLocaleOptions };\n","module.exports = require('./lib/axios');","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = require(\"regenerator-runtime\");\n","import React, { createRef, Component } from 'react';\nimport { tip, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Checkbox = /*#__PURE__*/function (_Component) {\n _inherits(Checkbox, _Component);\n\n var _super = _createSuper(Checkbox);\n\n function Checkbox(props) {\n var _this;\n\n _classCallCheck(this, Checkbox);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: \"onClick\",\n value: function onClick(e) {\n if (!this.props.disabled && !this.props.readOnly && this.props.onChange) {\n var value = this.isChecked() ? this.props.falseValue : this.props.trueValue;\n this.props.onChange({\n originalEvent: e,\n value: this.props.value,\n checked: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n type: 'checkbox',\n name: this.props.name,\n id: this.props.id,\n value: this.props.value,\n checked: value\n }\n });\n this.inputRef.current.checked = !this.isChecked();\n this.inputRef.current.focus();\n e.preventDefault();\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.inputRef.current.checked = this.isChecked();\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Enter') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"isChecked\",\n value: function isChecked() {\n return this.props.checked === this.props.trueValue;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var containerClass = classNames('p-checkbox p-component', {\n 'p-checkbox-checked': this.isChecked(),\n 'p-checkbox-disabled': this.props.disabled,\n 'p-checkbox-focused': this.state.focused\n }, this.props.className);\n var boxClass = classNames('p-checkbox-box', {\n 'p-highlight': this.isChecked(),\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n var iconClass = classNames('p-checkbox-icon p-c', _defineProperty({}, this.props.icon, this.isChecked()));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this2.element = el;\n },\n id: this.props.id,\n className: containerClass,\n style: this.props.style,\n onClick: this.onClick,\n onContextMenu: this.props.onContextMenu,\n onMouseDown: this.props.onMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n type: \"checkbox\",\n \"aria-labelledby\": this.props.ariaLabelledBy,\n id: this.props.inputId,\n name: this.props.name,\n tabIndex: this.props.tabIndex,\n defaultChecked: this.isChecked(),\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: this.props.disabled,\n readOnly: this.props.readOnly,\n required: this.props.required\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: boxClass,\n ref: function ref(el) {\n return _this2.box = el;\n },\n role: \"checkbox\",\n \"aria-checked\": this.isChecked()\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClass\n })));\n }\n }]);\n\n return Checkbox;\n}(Component);\n\n_defineProperty(Checkbox, \"defaultProps\", {\n id: null,\n inputRef: null,\n inputId: null,\n value: null,\n name: null,\n checked: false,\n trueValue: true,\n falseValue: false,\n style: null,\n className: null,\n disabled: false,\n required: false,\n readOnly: false,\n tabIndex: null,\n icon: 'pi pi-check',\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onChange: null,\n onMouseDown: null,\n onContextMenu: null\n});\n\nexport { Checkbox };\n","import React, { Component } from 'react';\nimport { Paginator } from 'primereact/paginator';\nimport { DomHandler, classNames, OverlayService, ObjectUtils, Ripple, FilterUtils } from 'primereact/core';\nimport { InputText } from 'primereact/inputtext';\n\nfunction _arrayLikeToArray$2(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$2(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$2(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$2(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$c(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$c(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$c() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ScrollableView = /*#__PURE__*/function (_Component) {\n _inherits(ScrollableView, _Component);\n\n var _super = _createSuper$c(ScrollableView);\n\n function ScrollableView(props) {\n var _this;\n\n _classCallCheck(this, ScrollableView);\n\n _this = _super.call(this, props);\n _this.onHeaderScroll = _this.onHeaderScroll.bind(_assertThisInitialized(_this));\n _this.onBodyScroll = _this.onBodyScroll.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ScrollableView, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setScrollHeight();\n\n if (!this.props.frozen) {\n var scrollBarWidth = DomHandler.calculateScrollbarWidth();\n this.scrollHeaderBox.style.marginRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBox) {\n this.scrollFooterBox.style.marginRight = scrollBarWidth + 'px';\n }\n } else {\n this.scrollBody.style.paddingBottom = DomHandler.calculateScrollbarWidth() + 'px';\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.scrollHeight !== prevProps.scrollHeight) {\n this.setScrollHeight();\n }\n\n if (!this.props.frozen && this.props.virtualScroll) {\n this.virtualScroller.style.height = this.props.totalRecords * this.props.virtualRowHeight + 'px';\n }\n\n if (this.virtualScrollCallback && !this.props.loading) {\n this.virtualScrollCallback();\n this.virtualScrollCallback = null;\n }\n }\n }, {\n key: \"setScrollHeight\",\n value: function setScrollHeight() {\n if (this.props.scrollHeight) {\n var frozenView = this.container.previousElementSibling;\n\n if (frozenView) {\n var frozenScrollBody = DomHandler.findSingle(frozenView, '.p-datatable-scrollable-body');\n this.scrollBody.style.maxHeight = frozenScrollBody.style.maxHeight;\n } else {\n if (this.props.scrollHeight.indexOf('%') !== -1) {\n var datatableContainer = this.findDataTableContainer(this.container);\n this.scrollBody.style.visibility = 'hidden';\n this.scrollBody.style.height = '100px'; //temporary height to calculate static height\n\n var containerHeight = DomHandler.getOuterHeight(datatableContainer);\n var relativeHeight = DomHandler.getOuterHeight(datatableContainer.parentElement) * parseInt(this.props.scrollHeight, 10) / 100;\n var staticHeight = containerHeight - 100; //total height of headers, footers, paginators\n\n var scrollBodyHeight = relativeHeight - staticHeight;\n\n if (this.props.frozen) {\n scrollBodyHeight -= DomHandler.calculateScrollbarWidth();\n }\n\n this.scrollBody.style.height = 'auto';\n this.scrollBody.style.maxHeight = scrollBodyHeight + 'px';\n this.scrollBody.style.visibility = 'visible';\n } else {\n this.scrollBody.style.maxHeight = this.props.scrollHeight;\n }\n }\n }\n }\n }, {\n key: \"findDataTableContainer\",\n value: function findDataTableContainer(element) {\n if (element) {\n var el = element;\n\n while (el && !DomHandler.hasClass(el, 'p-datatable')) {\n el = el.parentElement;\n }\n\n return el;\n } else {\n return null;\n }\n }\n }, {\n key: \"onHeaderScroll\",\n value: function onHeaderScroll() {\n this.scrollHeader.scrollLeft = 0;\n }\n }, {\n key: \"onBodyScroll\",\n value: function onBodyScroll() {\n var _this2 = this;\n\n var frozenView = this.container.previousElementSibling;\n var frozenScrollBody;\n\n if (frozenView) {\n frozenScrollBody = DomHandler.findSingle(frozenView, '.p-datatable-scrollable-body');\n }\n\n this.scrollHeaderBox.style.marginLeft = -1 * this.scrollBody.scrollLeft + 'px';\n\n if (this.scrollFooterBox) {\n this.scrollFooterBox.style.marginLeft = -1 * this.scrollBody.scrollLeft + 'px';\n }\n\n if (frozenScrollBody) {\n frozenScrollBody.scrollTop = this.scrollBody.scrollTop;\n }\n\n if (this.props.virtualScroll) {\n var viewport = DomHandler.getClientHeight(this.scrollBody);\n var tableHeight = DomHandler.getOuterHeight(this.scrollTable);\n var pageHeight = this.props.virtualRowHeight * this.props.rows;\n var virtualTableHeight = DomHandler.getOuterHeight(this.virtualScroller);\n var pageCount = virtualTableHeight / pageHeight || 1;\n var scrollBodyTop = this.scrollTable.style.top || '0';\n\n if (this.scrollBody.scrollTop + viewport > parseFloat(scrollBodyTop) + tableHeight || this.scrollBody.scrollTop < parseFloat(scrollBodyTop)) {\n if (this.loadingTable) {\n this.loadingTable.style.display = 'table';\n this.loadingTable.style.top = this.scrollBody.scrollTop + 'px';\n }\n\n var page = Math.floor(this.scrollBody.scrollTop * pageCount / this.scrollBody.scrollHeight) + 1;\n\n if (this.props.onVirtualScroll) {\n this.props.onVirtualScroll({\n page: page\n });\n\n this.virtualScrollCallback = function () {\n if (_this2.loadingTable) {\n _this2.loadingTable.style.display = 'none';\n }\n\n _this2.scrollTable.style.top = (page - 1) * pageHeight + 'px';\n };\n }\n }\n }\n }\n }, {\n key: \"renderColGroup\",\n value: function renderColGroup() {\n if (this.props.columns && this.props.columns.length) {\n return /*#__PURE__*/React.createElement(\"colgroup\", {\n className: \"p-datatable-scrollable-colgroup\"\n }, this.props.columns.map(function (col, i) {\n return /*#__PURE__*/React.createElement(\"col\", {\n key: col.props.field + '_' + i,\n style: col.props.headerStyle || col.props.style,\n className: col.props.headerClassName || col.props.className\n });\n }));\n } else {\n return null;\n }\n }\n }, {\n key: \"renderLoadingTable\",\n value: function renderLoadingTable(colGroup) {\n var _this3 = this;\n\n if (this.props.virtualScroll) {\n return /*#__PURE__*/React.createElement(\"table\", {\n ref: function ref(el) {\n return _this3.loadingTable = el;\n },\n style: {\n top: '0',\n display: 'none'\n },\n className: \"p-datatable-scrollable-body-table p-datatable-loading-virtual-table p-datatable-virtual-table\"\n }, colGroup, this.props.loadingBody);\n } else {\n return null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var className = classNames('p-datatable-scrollable-view', {\n 'p-datatable-frozen-view': this.props.frozen,\n 'p-datatable-unfrozen-view': !this.props.frozen && this.props.frozenWidth\n });\n var tableBodyClassName = classNames('p-datatable-scrollable-body-table', this.props.tableClassName, {\n 'p-datatable-virtual-table': this.props.virtualScroll\n });\n var tableHeaderClassName = classNames('p-datatable-scrollable-header-table', this.props.tableClassName);\n var tableFooterClassName = classNames('p-datatable-scrollable-footer-table', this.props.tableClassName);\n var tableBodyStyle = Object.assign({\n top: '0'\n }, this.props.tableStyle);\n var width = this.props.columns ? this.props.frozen ? this.props.frozenWidth : 'calc(100% - ' + this.props.frozenWidth + ')' : 0;\n var left = this.props.frozen ? null : this.props.frozenWidth;\n var colGroup = this.renderColGroup();\n var loadingTable = this.renderLoadingTable(colGroup);\n var scrollableBodyStyle = !this.props.frozen && this.props.scrollHeight ? {\n overflowY: 'scroll'\n } : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: {\n width: width,\n left: left\n },\n ref: function ref(el) {\n _this4.container = el;\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-scrollable-header\",\n ref: function ref(el) {\n _this4.scrollHeader = el;\n },\n onScroll: this.onHeaderScroll\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-scrollable-header-box\",\n ref: function ref(el) {\n _this4.scrollHeaderBox = el;\n }\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: tableHeaderClassName,\n style: this.props.tableStyle\n }, colGroup, this.props.header, this.props.frozenBody))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-scrollable-body\",\n ref: function ref(el) {\n _this4.scrollBody = el;\n },\n style: scrollableBodyStyle,\n onScroll: this.onBodyScroll\n }, /*#__PURE__*/React.createElement(\"table\", {\n ref: function ref(el) {\n return _this4.scrollTable = el;\n },\n style: tableBodyStyle,\n className: tableBodyClassName\n }, colGroup, this.props.body), loadingTable, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-virtual-scroller\",\n ref: function ref(el) {\n _this4.virtualScroller = el;\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-scrollable-footer\",\n ref: function ref(el) {\n _this4.scrollFooter = el;\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-scrollable-footer-box\",\n ref: function ref(el) {\n _this4.scrollFooterBox = el;\n }\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: tableFooterClassName,\n style: this.props.tableStyle\n }, colGroup, this.props.footer))));\n }\n }]);\n\n return ScrollableView;\n}(Component);\n\n_defineProperty(ScrollableView, \"defaultProps\", {\n header: null,\n body: null,\n footer: null,\n columns: null,\n frozen: null,\n frozenWidth: null,\n frozenBody: null,\n virtualScroll: false,\n virtualRowHeight: null,\n rows: null,\n totalRecords: null,\n loading: false,\n tableStyle: null,\n tableClassName: null,\n onVirtualScroll: null\n});\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _createSuper$b(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$b(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$b() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowRadioButton = /*#__PURE__*/function (_Component) {\n _inherits(RowRadioButton, _Component);\n\n var _super = _createSuper$b(RowRadioButton);\n\n function RowRadioButton(props) {\n var _this;\n\n _classCallCheck(this, RowRadioButton);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onChange = _this.onChange.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(RowRadioButton, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n data: this.props.rowData\n });\n }\n\n this.input.focus();\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onChange\",\n value: function onChange(event) {\n this.onClick(event);\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.code === 'Space') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-radiobutton-box p-component p-clickable', {\n 'p-highlight': this.props.selected,\n 'p-focus': this.state.focused\n });\n var name = \"\".concat(this.props.tableId ? this.props.tableId + '_' : '', \"dt_radio\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-radiobutton p-component\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n ref: function ref(el) {\n return _this2.input = el;\n },\n type: \"radio\",\n checked: this.props.selected,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onClick: this.onClick,\n role: \"radio\",\n \"aria-checked\": this.props.selected\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-radiobutton-icon p-clickable\"\n })));\n }\n }]);\n\n return RowRadioButton;\n}(Component);\n\n_defineProperty(RowRadioButton, \"defaultProps\", {\n rowData: null,\n onClick: null,\n selected: false\n});\n\nfunction _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$a() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowCheckbox = /*#__PURE__*/function (_Component) {\n _inherits(RowCheckbox, _Component);\n\n var _super = _createSuper$a(RowCheckbox);\n\n function RowCheckbox(props) {\n var _this;\n\n _classCallCheck(this, RowCheckbox);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(RowCheckbox, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.props.disabled) {\n this.setState({\n focused: true\n });\n\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n data: this.props.rowData,\n checked: this.props.selected\n });\n }\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.code === 'Space') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-checkbox-box p-component p-clickable', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n var iconClassName = classNames('p-checkbox-icon p-clickable', {\n 'pi pi-check': this.props.selected\n });\n var tabIndex = this.props.disabled ? null : '0';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-checkbox p-component\",\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n role: \"checkbox\",\n \"aria-checked\": this.props.selected,\n tabIndex: tabIndex,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n })));\n }\n }]);\n\n return RowCheckbox;\n}(Component);\n\n_defineProperty(RowCheckbox, \"defaultProps\", {\n rowData: null,\n onClick: null,\n disabled: false\n});\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$9(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$9(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$9() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar BodyCell = /*#__PURE__*/function (_Component) {\n _inherits(BodyCell, _Component);\n\n var _super = _createSuper$9(BodyCell);\n\n function BodyCell(props) {\n var _this;\n\n _classCallCheck(this, BodyCell);\n\n _this = _super.call(this, props);\n _this.state = {\n editing: _this.props.editing\n };\n _this.onExpanderClick = _this.onExpanderClick.bind(_assertThisInitialized(_this));\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this));\n _this.onEditorFocus = _this.onEditorFocus.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(BodyCell, [{\n key: \"onExpanderClick\",\n value: function onExpanderClick(event) {\n if (this.props.onRowToggle) {\n this.props.onRowToggle({\n originalEvent: event,\n data: this.props.rowData\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (this.props.editMode !== 'row') {\n if (event.which === 13 || event.which === 9) {\n // tab || enter\n this.switchCellToViewMode(event, true);\n }\n\n if (event.which === 27) {\n // escape\n this.switchCellToViewMode(event, false);\n }\n }\n\n if (this.props.allowCellSelection) {\n var cell = event.currentTarget;\n\n switch (event.which) {\n //left arrow\n case 37:\n var prevCell = this.findPrevSelectableCell(cell);\n\n if (prevCell) {\n this.changeTabIndex(cell, prevCell);\n prevCell.focus();\n }\n\n event.preventDefault();\n break;\n //right arrow\n\n case 39:\n var nextCell = this.findNextSelectableCell(cell);\n\n if (nextCell) {\n this.changeTabIndex(cell, nextCell);\n nextCell.focus();\n }\n\n event.preventDefault();\n break;\n //up arrow\n\n case 38:\n var prevRow = this.findPrevSelectableRow(cell.parentElement);\n\n if (prevRow) {\n var upCell = prevRow.children[this.props.index];\n this.changeTabIndex(cell, upCell);\n upCell.focus();\n }\n\n event.preventDefault();\n break;\n //down arrow\n\n case 40:\n var nextRow = this.findNextSelectableRow(cell.parentElement);\n\n if (nextRow) {\n var downCell = nextRow.children[this.props.index];\n this.changeTabIndex(cell, downCell);\n downCell.focus();\n }\n\n event.preventDefault();\n break;\n //enter or space\n\n case 13: // @deprecated\n\n case 32:\n this.onClick(event);\n event.preventDefault();\n break;\n }\n }\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n var _this2 = this;\n\n if (this.props.editMode !== 'row' && this.props.editor && !this.state.editing && (this.props.selectOnEdit || !this.props.selectOnEdit && this.props.selected)) {\n this.selfClick = true;\n\n if (this.props.onBeforeEditorShow) {\n this.props.onBeforeEditorShow({\n originalEvent: event,\n columnProps: this.props\n });\n }\n\n this.setState({\n editing: true\n }, function () {\n if (_this2.props.onEditorInit) {\n _this2.props.onEditorInit({\n originalEvent: event,\n columnProps: _this2.props\n });\n }\n\n if (_this2.props.editorValidatorEvent === 'click') {\n _this2.bindDocumentEditListener();\n\n _this2.overlayEventListener = function (e) {\n if (!_this2.isOutsideClicked(e.target)) {\n _this2.selfClick = true;\n }\n };\n\n OverlayService.on('overlay-click', _this2.overlayEventListener);\n }\n\n if (_this2.props.onEditingCellChange) {\n _this2.props.onEditingCellChange({\n rowIndex: _this2.props.rowIndex,\n cellIndex: _this2.props.index,\n editing: true\n });\n }\n });\n }\n\n if (this.props.allowCellSelection && this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n value: ObjectUtils.resolveFieldData(this.props.rowData, this.props.field),\n field: this.props.field,\n rowData: this.props.rowData,\n rowIndex: this.props.rowIndex,\n cellIndex: this.props.index,\n selected: this.isSelected()\n });\n }\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(event) {\n this.selfClick = false;\n\n if (this.props.editMode !== 'row' && this.state.editing && this.props.editorValidatorEvent === 'blur') {\n this.switchCellToViewMode(event, true);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (this.props.onMouseDown) {\n this.props.onMouseDown({\n originalEvent: event,\n value: ObjectUtils.resolveFieldData(this.props.rowData, this.props.field),\n field: this.props.field,\n rowData: this.props.rowData,\n rowIndex: this.props.rowIndex,\n cellIndex: this.props.index,\n selected: this.isSelected()\n });\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp(event) {\n if (this.props.onMouseUp) {\n this.props.onMouseUp({\n originalEvent: event,\n value: ObjectUtils.resolveFieldData(this.props.rowData, this.props.field),\n field: this.props.field,\n rowData: this.props.rowData,\n rowIndex: this.props.rowIndex,\n cellIndex: this.props.index,\n selected: this.isSelected()\n });\n }\n }\n }, {\n key: \"onEditorFocus\",\n value: function onEditorFocus(event) {\n this.onClick(event);\n }\n }, {\n key: \"bindDocumentEditListener\",\n value: function bindDocumentEditListener() {\n var _this3 = this;\n\n if (!this.documentEditListener) {\n this.documentEditListener = function (e) {\n if (!_this3.selfClick && _this3.isOutsideClicked(e.target)) {\n _this3.switchCellToViewMode(e, true);\n }\n\n _this3.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return this.container && !(this.container.isSameNode(target) || this.container.contains(target));\n }\n }, {\n key: \"closeCell\",\n value: function closeCell(event) {\n var _this4 = this;\n\n if (this.props.onBeforeEditorHide) {\n this.props.onBeforeEditorHide({\n originalEvent: event,\n columnProps: this.props\n });\n }\n /* When using the 'tab' key, the focus event of the next cell is not called in IE. */\n\n\n setTimeout(function () {\n _this4.setState({\n editing: false\n }, function () {\n _this4.unbindDocumentEditListener();\n\n OverlayService.off('overlay-click', _this4.overlayEventListener);\n _this4.overlayEventListener = null;\n\n if (_this4.props.onEditingCellChange) {\n _this4.props.onEditingCellChange({\n rowIndex: _this4.props.rowIndex,\n cellIndex: _this4.props.index,\n editing: false\n });\n }\n });\n }, 1);\n }\n }, {\n key: \"switchCellToViewMode\",\n value: function switchCellToViewMode(event, submit) {\n var params = {\n originalEvent: event,\n columnProps: this.props\n };\n\n if (!submit && this.props.onEditorCancel) {\n this.props.onEditorCancel(params);\n }\n\n var valid = true;\n\n if (this.props.editorValidator) {\n valid = this.props.editorValidator(params);\n }\n\n if (valid) {\n if (submit && this.props.onEditorSubmit) {\n this.props.onEditorSubmit(params);\n }\n\n this.closeCell(event);\n }\n }\n }, {\n key: \"findNextSelectableCell\",\n value: function findNextSelectableCell(cell) {\n var nextCell = cell.nextElementSibling;\n\n if (nextCell) {\n return DomHandler.hasClass(nextCell, 'p-selectable-cell') ? nextCell : this.findNextSelectableRow(nextCell);\n }\n\n return null;\n }\n }, {\n key: \"findPrevSelectableCell\",\n value: function findPrevSelectableCell(cell) {\n var prevCell = cell.previousElementSibling;\n\n if (prevCell) {\n return DomHandler.hasClass(prevCell, 'p-selectable-cell') ? prevCell : this.findPrevSelectableRow(prevCell);\n }\n\n return null;\n }\n }, {\n key: \"findNextSelectableRow\",\n value: function findNextSelectableRow(row) {\n var nextRow = row.nextElementSibling;\n\n if (nextRow) {\n return DomHandler.hasClass(nextRow, 'p-selectable-row') ? nextRow : this.findNextSelectableRow(nextRow);\n }\n\n return null;\n }\n }, {\n key: \"findPrevSelectableRow\",\n value: function findPrevSelectableRow(row) {\n var prevRow = row.previousElementSibling;\n\n if (prevRow) {\n return DomHandler.hasClass(prevRow, 'p-selectable-row') ? prevRow : this.findPrevSelectableRow(prevRow);\n }\n\n return null;\n }\n }, {\n key: \"changeTabIndex\",\n value: function changeTabIndex(currentCell, nextCell) {\n if (currentCell && nextCell) {\n currentCell.tabIndex = -1;\n nextCell.tabIndex = 0;\n }\n }\n }, {\n key: \"getTabIndex\",\n value: function getTabIndex(cellSelected) {\n return this.props.allowCellSelection ? cellSelected ? 0 : this.props.rowIndex === 0 && this.props.index === 0 ? 0 : -1 : null;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected() {\n if (this.props.selection) {\n return this.props.selection instanceof Array ? this.findIndexInSelection() > -1 : this.equals(this.props.selection);\n }\n\n return false;\n }\n }, {\n key: \"equals\",\n value: function equals(selectedCell) {\n return (selectedCell.rowIndex === this.props.rowIndex || selectedCell.rowData === this.props.rowData) && (selectedCell.field === this.props.field || selectedCell.cellIndex === this.props.index);\n }\n }, {\n key: \"findIndexInSelection\",\n value: function findIndexInSelection() {\n var _this5 = this;\n\n return this.props.selection ? this.props.selection.findIndex(function (d) {\n return _this5.equals(d);\n }) : -1;\n }\n }, {\n key: \"unbindDocumentEditListener\",\n value: function unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this6 = this;\n\n if (this.props.editMode !== 'row' && this.container && this.props.editor) {\n clearTimeout(this.tabindexTimeout);\n this.tabindexTimeout = setTimeout(function () {\n if (_this6.state.editing) {\n var focusable = DomHandler.findSingle(_this6.container, 'input');\n\n if (focusable && document.activeElement !== focusable && !focusable.hasAttribute('data-isCellEditing')) {\n focusable.setAttribute('data-isCellEditing', true);\n focusable.focus();\n }\n\n _this6.keyHelper.tabIndex = -1;\n } else if (_this6.keyHelper) {\n _this6.keyHelper.setAttribute('tabindex', 0);\n }\n }, 1);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentEditListener();\n\n if (this.overlayEventListener) {\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n var content, editorKeyHelper;\n var cellSelected = this.props.allowCellSelection && this.isSelected();\n var cellClassName = null;\n\n if (this.props.cellClassName) {\n var cellData = ObjectUtils.resolveFieldData(this.props.rowData, this.props.field);\n cellClassName = this.props.cellClassName(cellData, _objectSpread$3(_objectSpread$3({}, this.props), {\n rowData: this.props.rowData\n }));\n }\n\n var className = classNames(this.props.bodyClassName || this.props.className, cellClassName, {\n 'p-selection-column': this.props.selectionMode,\n 'p-selectable-cell': this.props.allowCellSelection,\n 'p-highlight': cellSelected,\n 'p-editable-column': this.props.editor,\n 'p-cell-editing': this.state.editing && this.props.editor\n });\n var tabIndex = this.getTabIndex(cellSelected);\n\n if (this.props.expander) {\n var iconClassName = classNames('p-row-toggler-icon pi pi-fw p-clickable', {\n 'pi-chevron-down': this.props.expanded,\n 'pi-chevron-right': !this.props.expanded\n });\n var ariaControls = \"\".concat(this.props.tableId ? this.props.tableId + '_' : '', \"content_\").concat(this.props.rowIndex, \"_expanded\");\n var expanderProps = {\n onClick: this.onExpanderClick,\n className: 'p-row-toggler p-link',\n iconClassName: iconClassName\n };\n content = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: expanderProps.onClick,\n className: expanderProps.className,\n \"aria-expanded\": this.props.expanded,\n \"aria-controls\": ariaControls\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: expanderProps.iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.body) {\n expanderProps['element'] = content;\n content = this.props.body(this.props.rowData, _objectSpread$3(_objectSpread$3({}, this.props), {\n expander: expanderProps\n }));\n }\n } else if (this.props.selectionMode) {\n var showSelection = true;\n\n if (this.props.showSelectionElement) {\n showSelection = this.props.showSelectionElement(this.props.rowData);\n }\n\n if (showSelection) {\n if (this.props.selectionMode === 'single') content = /*#__PURE__*/React.createElement(RowRadioButton, {\n onClick: this.props.onRadioClick,\n rowData: this.props.rowData,\n selected: this.props.selected,\n tableId: this.props.tableId\n });else content = /*#__PURE__*/React.createElement(RowCheckbox, {\n onClick: this.props.onCheckboxClick,\n rowData: this.props.rowData,\n selected: this.props.selected\n });\n }\n } else if (this.props.rowReorder) {\n var showReorder = true;\n\n if (this.props.showRowReorderElement) {\n showReorder = this.props.showRowReorderElement(this.props.rowData);\n }\n\n if (showReorder) {\n var reorderIcon = classNames('p-datatable-reorderablerow-handle', this.props.rowReorderIcon);\n content = /*#__PURE__*/React.createElement(\"i\", {\n className: reorderIcon\n });\n }\n } else if (this.props.rowEditor) {\n var rowEditorProps = {};\n\n if (this.state.editing) {\n rowEditorProps = {\n editing: true,\n onSaveClick: this.props.onRowEditSave,\n saveClassName: 'p-row-editor-save p-link',\n saveIconClassName: 'p-row-editor-save-icon pi pi-fw pi-check p-clickable',\n onCancelClick: this.props.onRowEditCancel,\n cancelClassName: 'p-row-editor-cancel p-link',\n cancelIconClassName: 'p-row-editor-cancel-icon pi pi-fw pi-times p-clickable'\n };\n content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: rowEditorProps.onSaveClick,\n className: rowEditorProps.saveClassName\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: rowEditorProps.saveIconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: rowEditorProps.onCancelClick,\n className: rowEditorProps.cancelClassName\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: rowEditorProps.cancelIconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n } else {\n rowEditorProps = {\n editing: false,\n onInitClick: this.props.onRowEditInit,\n initClassName: 'p-row-editor-init p-link',\n initIconClassName: 'p-row-editor-init-icon pi pi-fw pi-pencil p-clickable'\n };\n content = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: rowEditorProps.onInitClick,\n className: rowEditorProps.initClassName\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: rowEditorProps.initIconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n if (this.props.body) {\n rowEditorProps['element'] = content;\n content = this.props.body(this.props.rowData, _objectSpread$3(_objectSpread$3({}, this.props), {\n rowEditor: rowEditorProps\n }));\n }\n } else {\n if (this.state.editing && this.props.editor) {\n content = this.props.editor(this.props);\n } else {\n if (this.props.body) content = this.props.body(this.props.rowData, this.props);else content = ObjectUtils.resolveFieldData(this.props.rowData, this.props.field);\n }\n }\n\n if (this.props.editMode !== 'row') {\n /* eslint-disable */\n editorKeyHelper = this.props.editor && /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: \"0\",\n ref: function ref(el) {\n _this7.keyHelper = el;\n },\n className: \"p-cell-editor-key-helper p-hidden-accessible\",\n onFocus: this.onEditorFocus\n }, /*#__PURE__*/React.createElement(\"span\", null));\n /* eslint-enable */\n }\n\n return /*#__PURE__*/React.createElement(\"td\", {\n ref: function ref(el) {\n _this7.container = el;\n },\n role: \"cell\",\n tabIndex: tabIndex,\n className: className,\n style: this.props.bodyStyle || this.props.style,\n onClick: this.onClick,\n onKeyDown: this.onKeyDown,\n rowSpan: this.props.rowSpan,\n onBlur: this.onBlur,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp\n }, editorKeyHelper, content);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.editMode === 'row' && nextProps.editing !== prevState.editing) {\n return {\n editing: nextProps.editing\n };\n }\n\n return null;\n }\n }]);\n\n return BodyCell;\n}(Component);\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$8() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar BodyRow = /*#__PURE__*/function (_Component) {\n _inherits(BodyRow, _Component);\n\n var _super = _createSuper$8(BodyRow);\n\n function BodyRow(props) {\n var _this;\n\n _classCallCheck(this, BodyRow);\n\n _this = _super.call(this, props);\n\n if (!_this.props.isRowEditingControlled) {\n _this.state = {\n editing: false\n };\n }\n\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onDoubleClick = _this.onDoubleClick.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.onRightClick = _this.onRightClick.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this));\n _this.onDragEnd = _this.onDragEnd.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onRowEditInit = _this.onRowEditInit.bind(_assertThisInitialized(_this));\n _this.onRowEditSave = _this.onRowEditSave.bind(_assertThisInitialized(_this));\n _this.onRowEditCancel = _this.onRowEditCancel.bind(_assertThisInitialized(_this));\n _this.updateEditingState = _this.updateEditingState.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(BodyRow, [{\n key: \"getEditing\",\n value: function getEditing() {\n return this.props.isRowEditingControlled ? this.props.editing : this.state.editing;\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n }\n }, {\n key: \"onDoubleClick\",\n value: function onDoubleClick(event) {\n if (this.props.onDoubleClick) {\n this.props.onDoubleClick({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(event) {\n if (this.props.onTouchEnd) {\n this.props.onTouchEnd(event);\n }\n }\n }, {\n key: \"onRightClick\",\n value: function onRightClick(event) {\n if (this.props.onRightClick) {\n this.props.onRightClick({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle')) event.currentTarget.draggable = true;else event.currentTarget.draggable = false;\n\n if (this.props.onMouseDown) {\n this.props.onMouseDown({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp(event) {\n if (this.props.onMouseUp) {\n this.props.onMouseUp({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(event) {\n if (this.props.onDragEnd) {\n this.props.onDragEnd(event);\n }\n\n event.currentTarget.draggable = false;\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n if (this.props.onDragOver) {\n this.props.onDragOver({\n originalEvent: event,\n rowElement: this.container\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n if (this.props.onDragLeave) {\n this.props.onDragLeave({\n originalEvent: event,\n rowElement: this.container\n });\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (this.props.onDrop) {\n this.props.onDrop({\n originalEvent: event,\n rowElement: this.container\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (this.isFocusable() && !this.props.allowCellSelection) {\n var target = event.target,\n row = event.currentTarget;\n\n switch (event.which) {\n //down arrow\n case 40:\n var nextRow = this.findNextSelectableRow(row);\n\n if (nextRow) {\n this.changeTabIndex(row, nextRow);\n nextRow.focus();\n }\n\n event.preventDefault();\n break;\n //up arrow\n\n case 38:\n var prevRow = this.findPrevSelectableRow(row);\n\n if (prevRow) {\n this.changeTabIndex(row, prevRow);\n prevRow.focus();\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n // @deprecated\n this.onClick(event);\n event.preventDefault();\n break;\n //space\n\n case 32:\n if (target.nodeName !== 'INPUT' && target.nodeName !== 'TEXTAREA' && !target.readOnly) {\n this.onClick(event);\n event.preventDefault();\n }\n\n break;\n }\n }\n }\n }, {\n key: \"changeTabIndex\",\n value: function changeTabIndex(currentRow, nextRow) {\n if (currentRow && nextRow) {\n currentRow.tabIndex = -1;\n nextRow.tabIndex = 0;\n }\n }\n }, {\n key: \"findNextSelectableRow\",\n value: function findNextSelectableRow(row) {\n var nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row')) return nextRow;else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n }\n }, {\n key: \"findPrevSelectableRow\",\n value: function findPrevSelectableRow(row) {\n var prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row')) return prevRow;else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n }\n }, {\n key: \"updateEditingState\",\n value: function updateEditingState(event, editing) {\n if (this.props.isRowEditingControlled) {\n this.props.onRowEditingToggle({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n } else {\n this.setState({\n editing: editing\n });\n }\n }\n }, {\n key: \"onRowEditInit\",\n value: function onRowEditInit(event) {\n if (this.props.onRowEditInit) {\n this.props.onRowEditInit({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n\n this.updateEditingState(event, true);\n event.preventDefault();\n }\n }, {\n key: \"onRowEditSave\",\n value: function onRowEditSave(event) {\n var valid = true;\n\n if (this.props.rowEditorValidator) {\n valid = this.props.rowEditorValidator(this.props.rowData);\n }\n\n if (this.props.onRowEditSave) {\n this.props.onRowEditSave({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex,\n valid: valid\n });\n }\n\n if (valid) {\n this.updateEditingState(event, false);\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onRowEditCancel\",\n value: function onRowEditCancel(event) {\n if (this.props.onRowEditCancel) {\n this.props.onRowEditCancel({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.rowIndex\n });\n }\n\n this.updateEditingState(event, false);\n event.preventDefault();\n }\n }, {\n key: \"isFocusable\",\n value: function isFocusable() {\n return this.props.selectionMode && this.props.selectionModeInColumn !== 'single' && this.props.selectionModeInColumn !== 'multiple';\n }\n }, {\n key: \"getTabIndex\",\n value: function getTabIndex() {\n return this.isFocusable() && !this.props.allowCellSelection ? this.props.rowIndex === 0 ? 0 : -1 : null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var columns = React.Children.toArray(this.props.children);\n var conditionalClassNames = {\n 'p-highlight': !this.props.allowCellSelection && this.props.selected,\n 'p-highlight-contextmenu': this.props.contextMenuSelected,\n 'p-selectable-row': this.props.allowRowSelection,\n 'p-row-odd': this.props.rowIndex % 2 !== 0\n };\n\n if (this.props.rowClassName) {\n var rowClassNameCondition = this.props.rowClassName(this.props.rowData);\n conditionalClassNames = _objectSpread$2(_objectSpread$2({}, conditionalClassNames), rowClassNameCondition);\n }\n\n var className = classNames(conditionalClassNames);\n var style = this.props.virtualScroll ? {\n height: this.props.virtualRowHeight\n } : {};\n var hasRowSpanGrouping = this.props.rowGroupMode === 'rowspan';\n var tabIndex = this.getTabIndex();\n var cells = [];\n\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n var rowSpan = void 0;\n\n if (hasRowSpanGrouping) {\n if (this.props.sortField === column.props.field) {\n if (this.props.groupRowSpan) {\n rowSpan = this.props.groupRowSpan;\n className += ' p-datatable-rowspan-group';\n } else {\n continue;\n }\n }\n }\n\n var editing = this.getEditing();\n var cell = /*#__PURE__*/React.createElement(BodyCell, _extends({\n tableId: this.props.tableId,\n key: i\n }, column.props, {\n value: this.props.value,\n rowSpan: rowSpan,\n rowData: this.props.rowData,\n index: i,\n rowIndex: this.props.rowIndex,\n onRowToggle: this.props.onRowToggle,\n expanded: this.props.expanded,\n onRadioClick: this.props.onRadioClick,\n onCheckboxClick: this.props.onCheckboxClick,\n selected: this.props.selected,\n selection: this.props.selection,\n selectOnEdit: this.props.selectOnEdit,\n editMode: this.props.editMode,\n editing: editing,\n onRowEditInit: this.onRowEditInit,\n onRowEditSave: this.onRowEditSave,\n onRowEditCancel: this.onRowEditCancel,\n onMouseDown: this.props.onCellMouseDown,\n onMouseUp: this.props.onCellMouseUp,\n showRowReorderElement: this.props.showRowReorderElement,\n showSelectionElement: this.props.showSelectionElement,\n allowCellSelection: this.props.allowCellSelection,\n onClick: this.props.onCellClick,\n onEditingCellChange: this.props.onEditingCellChange,\n cellClassName: this.props.cellClassName\n }));\n cells.push(cell);\n }\n\n return /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\",\n tabIndex: tabIndex,\n ref: function ref(el) {\n _this2.container = el;\n },\n className: className,\n onClick: this.onClick,\n onDoubleClick: this.onDoubleClick,\n onTouchEnd: this.onTouchEnd,\n onContextMenu: this.onRightClick,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n onDragStart: this.props.onDragStart,\n onDragEnd: this.onDragEnd,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop,\n style: style,\n onKeyDown: this.onKeyDown\n }, cells);\n }\n }]);\n\n return BodyRow;\n}(Component);\n\nfunction _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$7() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowTogglerButton = /*#__PURE__*/function (_Component) {\n _inherits(RowTogglerButton, _Component);\n\n var _super = _createSuper$7(RowTogglerButton);\n\n function RowTogglerButton(props) {\n var _this;\n\n _classCallCheck(this, RowTogglerButton);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(RowTogglerButton, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n data: this.props.rowData\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var iconClassName = classNames('p-row-toggler-icon pi pi-fw p-clickable', {\n 'pi-chevron-down': this.props.expanded,\n 'pi-chevron-right': !this.props.expanded\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.onClick,\n className: \"p-row-toggler p-link\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return RowTogglerButton;\n}(Component);\n\n_defineProperty(RowTogglerButton, \"defaultProps\", {\n rowData: null,\n onClick: null,\n expanded: false\n});\n\nvar _excluded = [\"originalEvent\"];\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$6() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableBody = /*#__PURE__*/function (_Component) {\n _inherits(TableBody, _Component);\n\n var _super = _createSuper$6(TableBody);\n\n function TableBody(props) {\n var _this;\n\n _classCallCheck(this, TableBody);\n\n _this = _super.call(this, props);\n _this.onRowClick = _this.onRowClick.bind(_assertThisInitialized(_this));\n _this.onRowRightClick = _this.onRowRightClick.bind(_assertThisInitialized(_this));\n _this.onRowTouchEnd = _this.onRowTouchEnd.bind(_assertThisInitialized(_this));\n _this.onRowToggle = _this.onRowToggle.bind(_assertThisInitialized(_this));\n _this.onRowEditingToggle = _this.onRowEditingToggle.bind(_assertThisInitialized(_this));\n _this.onRadioClick = _this.onRadioClick.bind(_assertThisInitialized(_this));\n _this.onCheckboxClick = _this.onCheckboxClick.bind(_assertThisInitialized(_this));\n _this.onDragSelectionMouseMove = _this.onDragSelectionMouseMove.bind(_assertThisInitialized(_this));\n _this.onDragSelectionMouseUp = _this.onDragSelectionMouseUp.bind(_assertThisInitialized(_this));\n _this.onRowDragEnd = _this.onRowDragEnd.bind(_assertThisInitialized(_this));\n _this.onRowDragLeave = _this.onRowDragLeave.bind(_assertThisInitialized(_this));\n _this.onRowDrop = _this.onRowDrop.bind(_assertThisInitialized(_this));\n _this.onRowMouseDown = _this.onRowMouseDown.bind(_assertThisInitialized(_this));\n _this.onRowMouseUp = _this.onRowMouseUp.bind(_assertThisInitialized(_this));\n _this.onCellClick = _this.onCellClick.bind(_assertThisInitialized(_this));\n _this.onCellMouseDown = _this.onCellMouseDown.bind(_assertThisInitialized(_this));\n _this.onCellMouseUp = _this.onCellMouseUp.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TableBody, [{\n key: \"onRowClick\",\n value: function onRowClick(event) {\n if (this.allowCellSelection() || !this.allowSelection(event)) {\n return;\n }\n\n this.props.onRowClick && this.props.onRowClick(event);\n\n if (this.allowRowSelection()) {\n if (this.allowRangeSelection(event)) {\n this.onRangeSelection(event);\n } else {\n var toggleable = this.isRadioSelectionModeInColumn() || this.isCheckboxSelectionModeInColumn() || this.allowMetaKeySelection(event);\n this.anchorRowIndex = event.index;\n this.rangeRowIndex = event.index;\n this.anchorRowFirst = this.props.first;\n\n if (this.isSingleSelection()) {\n this.onSingleSelection(_objectSpread$1(_objectSpread$1({}, event), {}, {\n toggleable: toggleable,\n type: 'row'\n }));\n } else {\n this.onMultipleSelection(_objectSpread$1(_objectSpread$1({}, event), {}, {\n toggleable: toggleable,\n type: 'row'\n }));\n }\n }\n } else {\n this.focusOnElement(event.originalEvent);\n }\n\n this.rowTouched = false;\n }\n }, {\n key: \"onCellClick\",\n value: function onCellClick(event) {\n if (!this.allowSelection(event)) {\n return;\n }\n\n this.props.onCellClick && this.props.onCellClick(event);\n\n if (this.allowCellSelection()) {\n if (this.allowRangeSelection(event)) {\n this.onRangeSelection(event);\n } else {\n var toggleable = this.allowMetaKeySelection(event);\n\n var originalEvent = event.originalEvent,\n data = _objectWithoutProperties(event, _excluded);\n\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n this.anchorRowFirst = this.props.first;\n this.anchorCellIndex = event.cellIndex;\n\n if (this.isSingleSelection()) {\n this.onSingleSelection({\n originalEvent: originalEvent,\n data: data,\n toggleable: toggleable,\n type: 'cell'\n });\n } else {\n this.onMultipleSelection({\n originalEvent: originalEvent,\n data: data,\n toggleable: toggleable,\n type: 'cell'\n });\n }\n }\n }\n\n this.rowTouched = false;\n }\n }, {\n key: \"onSingleSelection\",\n value: function onSingleSelection(_ref) {\n var originalEvent = _ref.originalEvent,\n data = _ref.data,\n toggleable = _ref.toggleable,\n type = _ref.type;\n var selected = this.isSelected(data);\n var selection = this.props.selection;\n\n if (selected) {\n if (toggleable) {\n selection = null;\n this.onUnselect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n } else {\n selection = data;\n this.onSelect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n\n this.focusOnElement(originalEvent, true);\n\n if (this.props.onSelectionChange && selection !== this.props.selection) {\n this.props.onSelectionChange({\n originalEvent: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"onMultipleSelection\",\n value: function onMultipleSelection(_ref2) {\n var _this2 = this;\n\n var originalEvent = _ref2.originalEvent,\n data = _ref2.data,\n toggleable = _ref2.toggleable,\n type = _ref2.type;\n var selected = this.isSelected(data);\n var selection = this.props.selection || [];\n\n if (selected) {\n if (toggleable) {\n var selectionIndex = this.findIndexInSelection(data);\n selection = this.props.selection.filter(function (val, i) {\n return i !== selectionIndex;\n });\n this.onUnselect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n } else if (selection.length) {\n this.props.selection.forEach(function (d) {\n return _this2.onUnselect({\n originalEvent: originalEvent,\n data: d,\n type: type\n });\n });\n selection = [data];\n this.onSelect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n } else {\n selection = toggleable && this.isMultipleSelection() ? [].concat(_toConsumableArray(selection), [data]) : [data];\n this.onSelect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n\n this.focusOnElement(originalEvent, true);\n\n if (this.props.onSelectionChange && selection !== this.props.selection) {\n this.props.onSelectionChange({\n originalEvent: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"onRangeSelection\",\n value: function onRangeSelection(event) {\n DomHandler.clearSelection();\n this.rangeRowIndex = this.allowCellSelection() ? event.rowIndex : event.index;\n var selectionInRange = this.selectRange(event);\n var selection = this.isMultipleSelection() ? _toConsumableArray(new Set([].concat(_toConsumableArray(this.props.selection || []), _toConsumableArray(selectionInRange)))) : selectionInRange;\n\n if (this.props.onSelectionChange && selection !== this.props.selection) {\n this.props.onSelectionChange({\n originalEvent: event.originalEvent,\n value: selection\n });\n }\n\n this.anchorRowIndex = this.rangeRowIndex;\n this.anchorCellIndex = event.cellIndex;\n this.focusOnElement(event.originalEvent, false);\n }\n }, {\n key: \"selectRange\",\n value: function selectRange(event) {\n var rangeStart, rangeEnd;\n var isLazyAndPaginator = this.props.lazy && this.props.paginator;\n\n if (isLazyAndPaginator) {\n this.anchorRowIndex += this.anchorRowFirst;\n this.rangeRowIndex += this.props.first;\n }\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = rangeEnd = this.rangeRowIndex;\n }\n\n if (isLazyAndPaginator) {\n rangeStart = Math.max(rangeStart - this.props.first, 0);\n rangeEnd -= this.props.first;\n }\n\n return this.allowCellSelection() ? this.selectRangeOnCell(event, rangeStart, rangeEnd) : this.selectRangeOnRow(event, rangeStart, rangeEnd);\n }\n }, {\n key: \"selectRangeOnRow\",\n value: function selectRangeOnRow(event, rowRangeStart, rowRangeEnd) {\n var value = this.props.value;\n var selection = [];\n\n for (var i = rowRangeStart; i <= rowRangeEnd; i++) {\n var rangeRowData = value[i];\n selection.push(rangeRowData);\n this.onSelect({\n originalEvent: event.originalEvent,\n data: rangeRowData,\n type: 'row'\n });\n }\n\n return selection;\n }\n }, {\n key: \"selectRangeOnCell\",\n value: function selectRangeOnCell(event, rowRangeStart, rowRangeEnd) {\n var cellRangeStart,\n cellRangeEnd,\n cellIndex = event.cellIndex;\n\n if (cellIndex > this.anchorCellIndex) {\n cellRangeStart = this.anchorCellIndex;\n cellRangeEnd = cellIndex;\n } else if (cellIndex < this.anchorCellIndex) {\n cellRangeStart = cellIndex;\n cellRangeEnd = this.anchorCellIndex;\n } else {\n cellRangeStart = cellRangeEnd = cellIndex;\n }\n\n var value = this.props.value;\n var selection = [];\n\n for (var i = rowRangeStart; i <= rowRangeEnd; i++) {\n var rowData = value[i];\n var columns = React.Children.toArray(this.props.children);\n\n for (var j = cellRangeStart; j <= cellRangeEnd; j++) {\n var field = columns[j].props.field;\n var rangeRowData = {\n value: ObjectUtils.resolveFieldData(rowData, field),\n field: field,\n rowData: rowData,\n rowIndex: i,\n cellIndex: j,\n selected: true\n };\n selection.push(rangeRowData);\n this.onSelect({\n originalEvent: event.originalEvent,\n data: rangeRowData,\n type: 'cell'\n });\n }\n }\n\n return selection;\n }\n }, {\n key: \"onSelect\",\n value: function onSelect(event) {\n if (this.allowCellSelection()) this.props.onCellSelect && this.props.onCellSelect(_objectSpread$1(_objectSpread$1({\n originalEvent: event.originalEvent\n }, event.data), {}, {\n type: event.type\n }));else this.props.onRowSelect && this.props.onRowSelect(event);\n }\n }, {\n key: \"onUnselect\",\n value: function onUnselect(event) {\n if (this.allowCellSelection()) this.props.onCellUnselect && this.props.onCellUnselect(_objectSpread$1(_objectSpread$1({\n originalEvent: event.originalEvent\n }, event.data), {}, {\n type: event.type\n }));else this.props.onRowUnselect && this.props.onRowUnselect(event);\n }\n }, {\n key: \"enableDragSelection\",\n value: function enableDragSelection(event) {\n if (this.props.dragSelection && !this.dragSelectionHelper) {\n this.dragSelectionHelper = document.createElement('div');\n DomHandler.addClass(this.dragSelectionHelper, 'p-datatable-drag-selection-helper');\n this.initialDragPosition = {\n x: event.clientX,\n y: event.clientY\n };\n this.dragSelectionHelper.style.top = \"\".concat(event.pageY, \"px\");\n this.dragSelectionHelper.style.left = \"\".concat(event.pageX, \"px\");\n this.bindDragSelectionEvents();\n }\n }\n }, {\n key: \"bindDragSelectionEvents\",\n value: function bindDragSelectionEvents() {\n document.addEventListener('mousemove', this.onDragSelectionMouseMove);\n document.addEventListener('mouseup', this.onDragSelectionMouseUp);\n document.body.appendChild(this.dragSelectionHelper);\n }\n }, {\n key: \"unbindDragSelectionEvents\",\n value: function unbindDragSelectionEvents() {\n this.onDragSelectionMouseUp();\n }\n }, {\n key: \"onDragSelectionMouseMove\",\n value: function onDragSelectionMouseMove(event) {\n var _this$initialDragPosi = this.initialDragPosition,\n x = _this$initialDragPosi.x,\n y = _this$initialDragPosi.y;\n var dx = event.clientX - x;\n var dy = event.clientY - y;\n if (dy < 0) this.dragSelectionHelper.style.top = \"\".concat(event.pageY + 5, \"px\");\n if (dx < 0) this.dragSelectionHelper.style.left = \"\".concat(event.pageX + 5, \"px\");\n this.dragSelectionHelper.style.height = \"\".concat(Math.abs(dy), \"px\");\n this.dragSelectionHelper.style.width = \"\".concat(Math.abs(dx), \"px\");\n event.preventDefault();\n }\n }, {\n key: \"onDragSelectionMouseUp\",\n value: function onDragSelectionMouseUp() {\n if (this.dragSelectionHelper) {\n this.dragSelectionHelper.remove();\n this.dragSelectionHelper = null;\n }\n\n document.removeEventListener('mousemove', this.onDragSelectionMouseMove);\n document.removeEventListener('mouseup', this.onDragSelectionMouseUp);\n }\n }, {\n key: \"onRowMouseDown\",\n value: function onRowMouseDown(event) {\n DomHandler.clearSelection();\n\n if (this.allowRowDrag(event)) {\n this.enableDragSelection(event.originalEvent);\n this.anchorRowIndex = event.index;\n this.rangeRowIndex = event.index;\n this.anchorRowFirst = this.props.first;\n }\n }\n }, {\n key: \"onRowMouseUp\",\n value: function onRowMouseUp(event) {\n var isSameRow = event.index === this.anchorRowIndex;\n\n if (this.allowRowDrag(event) && !isSameRow) {\n this.onRangeSelection(event);\n }\n }\n }, {\n key: \"onCellMouseDown\",\n value: function onCellMouseDown(event) {\n if (this.allowCellDrag(event)) {\n this.enableDragSelection(event.originalEvent);\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n this.anchorRowFirst = this.props.first;\n this.anchorCellIndex = event.cellIndex;\n }\n }\n }, {\n key: \"onCellMouseUp\",\n value: function onCellMouseUp(event) {\n var isSameCell = event.rowIndex === this.anchorRowIndex && event.cellIndex === this.anchorCellIndex;\n\n if (this.allowCellDrag(event) && !isSameCell) {\n this.onRangeSelection(event);\n }\n }\n }, {\n key: \"onRowTouchEnd\",\n value: function onRowTouchEnd(event) {\n this.rowTouched = true;\n }\n }, {\n key: \"onRowRightClick\",\n value: function onRowRightClick(event) {\n if (this.props.onContextMenu) {\n DomHandler.clearSelection();\n\n if (this.props.onContextMenuSelectionChange) {\n this.props.onContextMenuSelectionChange({\n originalEvent: event.originalEvent,\n value: event.data\n });\n }\n\n if (this.props.onContextMenu) {\n this.props.onContextMenu({\n originalEvent: event.originalEvent,\n data: event.data\n });\n }\n\n event.originalEvent.preventDefault();\n }\n }\n }, {\n key: \"onRadioClick\",\n value: function onRadioClick(event) {\n this.onSingleSelection(_objectSpread$1(_objectSpread$1({}, event), {}, {\n toggleable: true,\n type: 'radio'\n }));\n }\n }, {\n key: \"onCheckboxClick\",\n value: function onCheckboxClick(event) {\n this.onMultipleSelection(_objectSpread$1(_objectSpread$1({}, event), {}, {\n toggleable: true,\n type: 'checkbox'\n }));\n }\n }, {\n key: \"allowDrag\",\n value: function allowDrag(event) {\n return this.props.dragSelection && this.isMultipleSelection() && !event.originalEvent.shiftKey;\n }\n }, {\n key: \"allowRowDrag\",\n value: function allowRowDrag(event) {\n return !this.allowCellSelection() && this.allowDrag(event);\n }\n }, {\n key: \"allowCellDrag\",\n value: function allowCellDrag(event) {\n return this.allowCellSelection() && this.allowDrag(event);\n }\n }, {\n key: \"allowSelection\",\n value: function allowSelection(event) {\n var targetNode = event.originalEvent.target.nodeName;\n\n if (targetNode === 'INPUT' || targetNode === 'BUTTON' || targetNode === 'A' || DomHandler.hasClass(event.originalEvent.target, 'p-clickable')) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"allowMetaKeySelection\",\n value: function allowMetaKeySelection(event) {\n return !this.rowTouched && (!this.props.metaKeySelection || this.props.metaKeySelection && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));\n }\n }, {\n key: \"allowRangeSelection\",\n value: function allowRangeSelection(event) {\n return this.isMultipleSelection() && event.originalEvent.shiftKey && this.anchorRowIndex !== null;\n }\n }, {\n key: \"allowRowSelection\",\n value: function allowRowSelection() {\n return (this.props.selectionMode || this.props.selectionModeInColumn) && !this.isRadioOnlySelection() && !this.isCheckboxOnlySelection();\n }\n }, {\n key: \"allowCellSelection\",\n value: function allowCellSelection() {\n return this.props.cellSelection && !this.isRadioSelectionModeInColumn() && !this.isCheckboxSelectionModeInColumn();\n }\n }, {\n key: \"isRadioSelectionMode\",\n value: function isRadioSelectionMode() {\n return this.props.selectionMode === 'radiobutton';\n }\n }, {\n key: \"isCheckboxSelectionMode\",\n value: function isCheckboxSelectionMode() {\n return this.props.selectionMode === 'checkbox';\n }\n }, {\n key: \"isRadioSelectionModeInColumn\",\n value: function isRadioSelectionModeInColumn() {\n return this.props.selectionModeInColumn === 'single';\n }\n }, {\n key: \"isCheckboxSelectionModeInColumn\",\n value: function isCheckboxSelectionModeInColumn() {\n return this.props.selectionModeInColumn === 'multiple';\n }\n }, {\n key: \"isSingleSelection\",\n value: function isSingleSelection() {\n return this.props.selectionMode === 'single' && !this.isCheckboxSelectionModeInColumn() || !this.isRadioSelectionMode() && this.isRadioSelectionModeInColumn();\n }\n }, {\n key: \"isMultipleSelection\",\n value: function isMultipleSelection() {\n return this.props.selectionMode === 'multiple' && !this.isRadioSelectionModeInColumn() || this.isCheckboxSelectionModeInColumn();\n }\n }, {\n key: \"isRadioOnlySelection\",\n value: function isRadioOnlySelection() {\n return this.isRadioSelectionMode() && this.isRadioSelectionModeInColumn();\n }\n }, {\n key: \"isCheckboxOnlySelection\",\n value: function isCheckboxOnlySelection() {\n return this.isCheckboxSelectionMode() && this.isCheckboxSelectionModeInColumn();\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(rowData) {\n if (rowData && this.props.selection) {\n return this.props.selection instanceof Array ? this.findIndexInSelection(rowData) > -1 : this.equals(rowData, this.props.selection);\n }\n\n return false;\n }\n }, {\n key: \"isContextMenuSelected\",\n value: function isContextMenuSelected(rowData) {\n if (rowData && this.props.contextMenuSelection) {\n return this.equals(rowData, this.props.contextMenuSelection);\n }\n\n return false;\n }\n }, {\n key: \"focusOnElement\",\n value: function focusOnElement(event, isFocused) {\n var target = event.currentTarget;\n\n if (!this.allowCellSelection()) {\n if (this.isCheckboxSelectionModeInColumn()) {\n var checkbox = DomHandler.findSingle(target, 'td.p-selection-column .p-checkbox-box');\n checkbox && checkbox.focus();\n } else if (this.isRadioSelectionModeInColumn()) {\n var radio = DomHandler.findSingle(target, 'td.p-selection-column input[type=\"radio\"]');\n radio && radio.focus();\n }\n }\n\n !isFocused && target && target.focus();\n }\n }, {\n key: \"equals\",\n value: function equals(data1, data2) {\n if (this.allowCellSelection()) return (data1.rowIndex === data2.rowIndex || data1.rowData === data2.rowData) && (data1.field === data2.field || data1.cellIndex === data2.cellIndex);else return this.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.props.dataKey);\n }\n }, {\n key: \"findIndexInSelection\",\n value: function findIndexInSelection(data) {\n var _this3 = this;\n\n return this.props.selection ? this.props.selection.findIndex(function (d) {\n return _this3.equals(data, d);\n }) : -1;\n }\n }, {\n key: \"onRowToggle\",\n value: function onRowToggle(event) {\n var expandedRows;\n var dataKey = this.props.dataKey;\n\n if (dataKey) {\n var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));\n expandedRows = this.props.expandedRows ? _objectSpread$1({}, this.props.expandedRows) : {};\n\n if (expandedRows[dataKeyValue] != null) {\n delete expandedRows[dataKeyValue];\n\n if (this.props.onRowCollapse) {\n this.props.onRowCollapse({\n originalEvent: event,\n data: event.data\n });\n }\n } else {\n expandedRows[dataKeyValue] = true;\n\n if (this.props.onRowExpand) {\n this.props.onRowExpand({\n originalEvent: event,\n data: event.data\n });\n }\n }\n } else {\n var expandedRowIndex = this.findRowIndex(this.props.expandedRows, event.data);\n expandedRows = this.props.expandedRows ? _toConsumableArray(this.props.expandedRows) : [];\n\n if (expandedRowIndex !== -1) {\n expandedRows = expandedRows.filter(function (val, i) {\n return i !== expandedRowIndex;\n });\n\n if (this.props.onRowCollapse) {\n this.props.onRowCollapse({\n originalEvent: event,\n data: event.data\n });\n }\n } else {\n expandedRows.push(event.data);\n\n if (this.props.onRowExpand) {\n this.props.onRowExpand({\n originalEvent: event,\n data: event.data\n });\n }\n }\n }\n\n if (this.props.onRowToggle) {\n this.props.onRowToggle({\n data: expandedRows\n });\n }\n }\n }, {\n key: \"findRowIndex\",\n value: function findRowIndex(rows, row) {\n return rows ? rows.findIndex(function (r) {\n return ObjectUtils.equals(row, r);\n }) : -1;\n }\n }, {\n key: \"isRowExpanded\",\n value: function isRowExpanded(row) {\n var dataKey = this.props.dataKey;\n\n if (dataKey) {\n var dataKeyValue = String(ObjectUtils.resolveFieldData(row, dataKey));\n return this.props.expandedRows && this.props.expandedRows[dataKeyValue] != null;\n } else {\n return this.findRowIndex(this.props.expandedRows, row) !== -1;\n }\n }\n }, {\n key: \"onRowEditingToggle\",\n value: function onRowEditingToggle(event) {\n var editingRows;\n var dataKey = this.props.dataKey;\n\n if (dataKey) {\n var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));\n editingRows = this.props.editingRows ? _objectSpread$1({}, this.props.editingRows) : {};\n if (editingRows[dataKeyValue] != null) delete editingRows[dataKeyValue];else editingRows[dataKeyValue] = true;\n } else {\n var editingRowIndex = this.findRowIndex(this.props.editingRows, event.data);\n editingRows = this.props.editingRows ? _toConsumableArray(this.props.editingRows) : [];\n if (editingRowIndex !== -1) editingRows = editingRows.filter(function (val, i) {\n return i !== editingRowIndex;\n });else editingRows.push(event.data);\n }\n\n if (this.props.onRowEditChange) {\n this.props.onRowEditChange({\n originalEvent: event.originalEvent,\n data: editingRows,\n index: event.rowIndex\n });\n }\n }\n }, {\n key: \"isRowEditing\",\n value: function isRowEditing(row) {\n var dataKey = this.props.dataKey;\n\n if (dataKey) {\n var dataKeyValue = String(ObjectUtils.resolveFieldData(row, dataKey));\n return this.props.editingRows && this.props.editingRows[dataKeyValue] != null;\n } else {\n return this.findRowIndex(this.props.editingRows, row) !== -1;\n }\n }\n }, {\n key: \"isSelectionEnabled\",\n value: function isSelectionEnabled() {\n if (this.props.selectionMode || this.props.selectionModeInColumn != null) {\n return true;\n } else {\n if (Array.isArray(this.props.children)) {\n for (var i = 0; i < this.props.children.length; i++) {\n if (this.props.children[i].props.selectionMode) {\n return true;\n }\n }\n } else {\n return this.props.children && this.props.children.selectionMode != null;\n }\n }\n\n return false;\n }\n }, {\n key: \"onRowDragStart\",\n value: function onRowDragStart(event, index) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n }, {\n key: \"onRowDragEnd\",\n value: function onRowDragEnd(event, index) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n }, {\n key: \"onRowDragOver\",\n value: function onRowDragOver(event, index) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n var rowElement = event.rowElement;\n var rowY = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\n var pageY = event.originalEvent.pageY;\n var rowMidY = rowY + DomHandler.getOuterHeight(rowElement) / 2;\n var prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n } else {\n if (prevRowElement) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n }, {\n key: \"onRowDragLeave\",\n value: function onRowDragLeave(event) {\n var rowElement = event.rowElement;\n var prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n }, {\n key: \"onRowDrop\",\n value: function onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n var dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n\n var val = _toConsumableArray(this.props.value);\n\n ObjectUtils.reorderArray(val, this.draggedRowIndex, dropIndex);\n\n if (this.props.onRowReorder) {\n this.props.onRowReorder({\n originalEvent: event,\n value: val,\n dragIndex: this.draggedRowIndex,\n dropIndex: this.droppedRowIndex\n });\n }\n } //cleanup\n\n\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.dragSelection) {\n this.unbindDragSelectionEvents();\n }\n }\n }, {\n key: \"renderRowGroupHeader\",\n value: function renderRowGroupHeader(rowData, index) {\n var content = null;\n\n if (this.props.rowGroupMode === 'subheader' && this.props.expandableRowGroups) {\n content = /*#__PURE__*/React.createElement(RowTogglerButton, {\n onClick: this.onRowToggle,\n rowData: rowData,\n expanded: this.isRowExpanded(rowData)\n });\n }\n\n return /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\",\n key: index + '_rowgroupheader',\n className: \"p-rowgroup-header\"\n }, /*#__PURE__*/React.createElement(\"td\", {\n role: \"cell\",\n colSpan: React.Children.count(this.props.children)\n }, content, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-rowgroup-header-name\"\n }, this.props.rowGroupHeaderTemplate(rowData, index))));\n }\n }, {\n key: \"renderRowGroupFooter\",\n value: function renderRowGroupFooter(rowData, index) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\",\n key: index + '_rowgroupfooter',\n className: \"p-rowgroup-footer\"\n }, this.props.rowGroupFooterTemplate(rowData, index));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var rows;\n\n if (this.props.children) {\n var rpp = this.props.rows || 0;\n var first = this.props.first || 0;\n var selectionEnabled = this.isSelectionEnabled();\n var rowGroupMode = this.props.rowGroupMode;\n var hasSubheaderGrouping = rowGroupMode && rowGroupMode === 'subheader';\n var rowSpanGrouping = rowGroupMode && rowGroupMode === 'rowspan';\n var rowGroupHeaderExpanded = false;\n\n if (this.props.value && this.props.value.length) {\n rows = [];\n var startIndex = this.props.lazy ? 0 : this.props.value.length > first ? first : 0;\n var endIndex = this.props.virtualScroll ? startIndex + rpp * 2 : startIndex + rpp || this.props.value.length;\n\n var _loop = function _loop(i) {\n if (i >= _this4.props.value.length) {\n return \"break\";\n }\n\n var rowData = _this4.props.value[i];\n\n var expanded = _this4.isRowExpanded(rowData);\n\n var editing = _this4.isRowEditing(rowData);\n\n var selected = selectionEnabled ? _this4.isSelected(_this4.props.value[i]) : false;\n\n var contextMenuSelected = _this4.isContextMenuSelected(rowData);\n\n var groupRowSpan = void 0; //header row group\n\n if (hasSubheaderGrouping) {\n var currentRowFieldData = ObjectUtils.resolveFieldData(rowData, _this4.props.groupField);\n var previousRowFieldData = ObjectUtils.resolveFieldData(_this4.props.value[i - 1], _this4.props.groupField);\n\n if (i === 0 || currentRowFieldData !== previousRowFieldData) {\n rows.push(_this4.renderRowGroupHeader(rowData, i));\n rowGroupHeaderExpanded = expanded;\n }\n }\n\n if (rowSpanGrouping) {\n var rowSpanIndex = i;\n\n var _currentRowFieldData = ObjectUtils.resolveFieldData(rowData, _this4.props.sortField);\n\n var shouldCountRowSpan = i === startIndex || ObjectUtils.resolveFieldData(_this4.props.value[i - 1], _this4.props.sortField) !== _currentRowFieldData;\n\n if (shouldCountRowSpan) {\n var nextRowFieldData = _currentRowFieldData;\n groupRowSpan = 0;\n\n while (_currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n var nextRowData = _this4.props.value[++rowSpanIndex];\n\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, _this4.props.sortField);\n } else {\n break;\n }\n }\n }\n }\n\n var isRowGroupExpanded = _this4.props.expandableRowGroups && hasSubheaderGrouping && rowGroupHeaderExpanded;\n\n if (!_this4.props.expandableRowGroups || isRowGroupExpanded) {\n //row content\n var bodyRow = /*#__PURE__*/React.createElement(BodyRow, {\n tableId: _this4.props.tableId,\n key: i,\n value: _this4.props.value,\n rowData: rowData,\n rowIndex: i,\n onClick: _this4.onRowClick,\n onDoubleClick: _this4.props.onRowDoubleClick,\n onRightClick: _this4.onRowRightClick,\n onTouchEnd: _this4.onRowTouchEnd,\n onMouseDown: _this4.onRowMouseDown,\n onMouseUp: _this4.onRowMouseUp,\n onCellMouseDown: _this4.onCellMouseDown,\n onCellMouseUp: _this4.onCellMouseUp,\n onRowToggle: _this4.onRowToggle,\n expanded: expanded,\n selectionMode: _this4.props.selectionMode,\n selectOnEdit: _this4.props.selectOnEdit,\n onRadioClick: _this4.onRadioClick,\n onCheckboxClick: _this4.onCheckboxClick,\n selected: selected,\n contextMenuSelected: contextMenuSelected,\n rowClassName: _this4.props.rowClassName,\n cellClassName: _this4.props.cellClassName,\n sortField: _this4.props.sortField,\n rowGroupMode: _this4.props.rowGroupMode,\n groupRowSpan: groupRowSpan,\n onDragStart: function onDragStart(e) {\n return _this4.onRowDragStart(e, i);\n },\n onDragEnd: _this4.onRowDragEnd,\n onDragOver: function onDragOver(e) {\n return _this4.onRowDragOver(e, i);\n },\n onDragLeave: _this4.onRowDragLeave,\n onDrop: _this4.onRowDrop,\n virtualScroll: _this4.props.virtualScroll,\n virtualRowHeight: _this4.props.virtualRowHeight,\n editMode: _this4.props.editMode,\n editing: editing,\n isRowEditingControlled: !!_this4.props.onRowEditChange,\n rowEditorValidator: _this4.props.rowEditorValidator,\n onRowEditInit: _this4.props.onRowEditInit,\n onRowEditSave: _this4.props.onRowEditSave,\n onRowEditCancel: _this4.props.onRowEditCancel,\n onRowEditingToggle: _this4.onRowEditingToggle,\n showRowReorderElement: _this4.props.showRowReorderElement,\n showSelectionElement: _this4.props.showSelectionElement,\n onSelectionChange: _this4.props.onSelectionChange,\n selectionModeInColumn: _this4.props.selectionModeInColumn,\n dragSelection: _this4.props.dragSelection,\n selection: _this4.props.selection,\n allowRowSelection: _this4.allowRowSelection(),\n allowCellSelection: _this4.allowCellSelection(),\n onCellClick: _this4.onCellClick,\n onEditingCellChange: _this4.props.onEditingCellChange\n }, _this4.props.children);\n rows.push(bodyRow);\n } //row expansion\n\n\n if (expanded && !(hasSubheaderGrouping && _this4.props.expandableRowGroups)) {\n var expandedRowContent = _this4.props.rowExpansionTemplate(rowData);\n\n var id = \"\".concat(_this4.props.tableId ? _this4.props.tableId + '_' : '', \"content_\").concat(i, \"_expanded\");\n var expandedRow = /*#__PURE__*/React.createElement(\"tr\", {\n key: id,\n id: id,\n role: \"row\",\n className: \"p-row-expanded\"\n }, /*#__PURE__*/React.createElement(\"td\", {\n role: \"cell\",\n colSpan: _this4.props.children.length\n }, expandedRowContent));\n rows.push(expandedRow);\n } //footer row group\n\n\n if (hasSubheaderGrouping && (!_this4.props.expandableRowGroups || isRowGroupExpanded)) {\n var _currentRowFieldData2 = ObjectUtils.resolveFieldData(rowData, _this4.props.groupField);\n\n var _nextRowFieldData = ObjectUtils.resolveFieldData(_this4.props.value[i + 1], _this4.props.groupField);\n\n if (i === _this4.props.value.length - 1 || _currentRowFieldData2 !== _nextRowFieldData) {\n rows.push(_this4.renderRowGroupFooter(rowData, i));\n }\n }\n };\n\n for (var i = startIndex; i < endIndex; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"break\") break;\n }\n } else {\n var emptyMessage = this.props.emptyMessage;\n rows = !this.props.loading && emptyMessage !== null ? /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\",\n className: \"p-datatable-emptymessage\"\n }, /*#__PURE__*/React.createElement(\"td\", {\n role: \"cell\",\n colSpan: this.props.children.length\n }, typeof emptyMessage === 'function' ? emptyMessage(this.props.frozen) : emptyMessage)) : null;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"tbody\", {\n className: \"p-datatable-tbody\"\n }, rows);\n }\n }]);\n\n return TableBody;\n}(Component);\n\nfunction _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$5() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar FooterCell = /*#__PURE__*/function (_Component) {\n _inherits(FooterCell, _Component);\n\n var _super = _createSuper$5(FooterCell);\n\n function FooterCell() {\n _classCallCheck(this, FooterCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FooterCell, [{\n key: \"render\",\n value: function render() {\n var className = this.props.footerClassName || this.props.className;\n var footer = ObjectUtils.getJSXElement(this.props.footer, this.props);\n return /*#__PURE__*/React.createElement(\"td\", {\n role: \"cell\",\n className: className,\n style: this.props.footerStyle || this.props.style,\n colSpan: this.props.colSpan,\n rowSpan: this.props.rowSpan\n }, footer);\n }\n }]);\n\n return FooterCell;\n}(Component);\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableFooter = /*#__PURE__*/function (_Component) {\n _inherits(TableFooter, _Component);\n\n var _super = _createSuper$4(TableFooter);\n\n function TableFooter() {\n _classCallCheck(this, TableFooter);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TableFooter, [{\n key: \"createFooterCells\",\n value: function createFooterCells(root, column, i) {\n var children = React.Children.toArray(root.props.children);\n return React.Children.map(children, function (column, i) {\n return /*#__PURE__*/React.createElement(FooterCell, _extends({\n key: i\n }, column.props));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var content;\n\n if (this.props.columnGroup) {\n var rows = React.Children.toArray(this.props.columnGroup.props.children);\n content = rows.map(function (row, i) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n role: \"row\"\n }, _this.createFooterCells(row));\n });\n } else {\n content = /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.createFooterCells(this));\n }\n\n return /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"p-datatable-tfoot\"\n }, content);\n }\n }]);\n\n return TableFooter;\n}(Component);\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar HeaderCell = /*#__PURE__*/function (_Component) {\n _inherits(HeaderCell, _Component);\n\n var _super = _createSuper$3(HeaderCell);\n\n function HeaderCell(props) {\n var _this;\n\n _classCallCheck(this, HeaderCell);\n\n _this = _super.call(this, props);\n _this.state = {\n filterValue: '',\n badgeVisible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFilterChange = _this.onFilterChange.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onResizerMouseDown = _this.onResizerMouseDown.bind(_assertThisInitialized(_this));\n _this.onResizerClick = _this.onResizerClick.bind(_assertThisInitialized(_this));\n _this.onResizerDoubleClick = _this.onResizerDoubleClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onDragStart = _this.onDragStart.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(HeaderCell, [{\n key: \"onClick\",\n value: function onClick(event) {\n var _this$props$columnPro = this.props.columnProps,\n field = _this$props$columnPro.field,\n sortField = _this$props$columnPro.sortField,\n sortable = _this$props$columnPro.sortable,\n sortFunction = _this$props$columnPro.sortFunction;\n\n if (!this.isSortableDisabled()) {\n var targetNode = event.target;\n\n if (DomHandler.hasClass(targetNode, 'p-sortable-column') || DomHandler.hasClass(targetNode, 'p-column-title') || DomHandler.hasClass(targetNode, 'p-sortable-column-icon') || DomHandler.hasClass(targetNode.parentElement, 'p-sortable-column-icon')) {\n this.props.onSort({\n originalEvent: event,\n sortField: sortField || field,\n sortFunction: sortFunction,\n sortable: sortable,\n sortableDisabledFields: this.props.sortableDisabledFields\n });\n DomHandler.clearSelection();\n }\n }\n }\n }, {\n key: \"onFilterChange\",\n value: function onFilterChange(e) {\n var _this2 = this;\n\n var filterValue = e.target.value;\n\n if (this.props.columnProps.filter && this.props.onFilter) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n this.filterTimeout = setTimeout(function () {\n _this2.props.onFilter({\n value: filterValue,\n field: _this2.props.columnProps.filterField || _this2.props.columnProps.field,\n matchMode: _this2.props.columnProps.filterMatchMode\n });\n\n _this2.filterTimeout = null;\n }, this.props.filterDelay);\n }\n\n this.setState({\n filterValue: filterValue\n });\n }\n }, {\n key: \"onResizerMouseDown\",\n value: function onResizerMouseDown(event) {\n if (this.props.resizableColumns && this.props.onColumnResizeStart) {\n this.props.onColumnResizeStart({\n originalEvent: event,\n columnEl: event.target.parentElement,\n columnProps: this.props.columnProps\n });\n event.preventDefault();\n }\n }\n }, {\n key: \"onResizerClick\",\n value: function onResizerClick(event) {\n if (this.props.resizableColumns && this.props.onColumnResizerClick) {\n this.props.onColumnResizerClick({\n originalEvent: event,\n element: event.currentTarget.parentElement,\n column: this.props.columnProps\n });\n event.preventDefault();\n }\n }\n }, {\n key: \"onResizerDoubleClick\",\n value: function onResizerDoubleClick(event) {\n if (this.props.resizableColumns && this.props.onColumnResizerDoubleClick) {\n this.props.onColumnResizerDoubleClick({\n originalEvent: event,\n element: event.currentTarget.parentElement,\n column: this.props.columnProps\n });\n event.preventDefault();\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (this.props.reorderableColumns && this.props.columnProps.reorderable) {\n if (event.target.nodeName !== 'INPUT') this.el.draggable = true;else if (event.target.nodeName === 'INPUT') this.el.draggable = false;\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Enter' && event.currentTarget === this.el) {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event) {\n if (this.props.onDragStart) {\n this.props.onDragStart({\n originalEvent: event,\n column: this.props.columnProps\n });\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n if (this.props.onDragOver) {\n this.props.onDragOver({\n originalEvent: event,\n column: this.props.columnProps\n });\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n if (this.props.onDragLeave) {\n this.props.onDragLeave({\n originalEvent: event,\n column: this.props.columnProps\n });\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (this.props.onDrop) {\n this.props.onDrop({\n originalEvent: event,\n column: this.props.columnProps\n });\n }\n }\n }, {\n key: \"getMultiSortMetaDataIndex\",\n value: function getMultiSortMetaDataIndex() {\n if (this.props.multiSortMeta) {\n var columnSortField = this.props.columnProps.sortField || this.props.columnProps.field;\n\n for (var i = 0; i < this.props.multiSortMeta.length; i++) {\n if (this.props.multiSortMeta[i].field === columnSortField) {\n return i;\n }\n }\n }\n\n return -1;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var prevColumnProps = prevProps.columnProps;\n var columnProps = this.props.columnProps;\n var filterField = columnProps.filterField || columnProps.field;\n\n if (prevColumnProps.sortableDisabled !== columnProps.sortableDisabled || prevColumnProps.sortable !== columnProps.sortable) {\n this.props.onSortableChange();\n }\n\n if (this.state.filterValue && prevProps.filters && prevProps.filters[filterField] && (!this.props.filters || !this.props.filters[filterField])) {\n this.setState({\n filterValue: ''\n });\n }\n }\n }, {\n key: \"getAriaSort\",\n value: function getAriaSort(sorted, sortOrder) {\n if (this.props.columnProps.sortable) {\n var sortIcon = sorted ? sortOrder < 0 ? 'pi-sort-amount-down' : 'pi-sort-amount-up-alt' : 'pi-sort-alt';\n if (sortIcon === 'pi-sort-amount-down') return 'descending';else if (sortIcon === 'pi-sort-amount-up-alt') return 'ascending';else return 'none';\n } else {\n return null;\n }\n }\n }, {\n key: \"isSortableDisabled\",\n value: function isSortableDisabled() {\n return !this.props.columnProps.sortable || this.props.columnProps.sortable && (this.props.allSortableDisabled || this.props.columnProps.sortableDisabled);\n }\n }, {\n key: \"isSingleSorted\",\n value: function isSingleSorted() {\n return this.props.sortField !== null ? this.props.columnProps.field === this.props.sortField || this.props.columnProps.sortField === this.props.sortField : false;\n }\n }, {\n key: \"renderSortIcon\",\n value: function renderSortIcon(sorted, sortOrder) {\n if (this.props.columnProps.sortable) {\n var sortIcon = sorted ? sortOrder < 0 ? 'pi-sort-amount-down' : 'pi-sort-amount-up-alt' : 'pi-sort-alt';\n var sortIconClassName = classNames('p-sortable-column-icon pi pi-fw', sortIcon);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: sortIconClassName\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"renderSortBadge\",\n value: function renderSortBadge(sortMetaDataIndex) {\n if (sortMetaDataIndex !== -1 && this.state.badgeVisible) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-sortable-column-badge\"\n }, sortMetaDataIndex + 1);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var filterElement, headerCheckbox;\n\n if (this.props.columnProps.filter && this.props.renderOptions.renderFilter) {\n filterElement = this.props.columnProps.filterElement || /*#__PURE__*/React.createElement(InputText, {\n onChange: this.onFilterChange,\n type: this.props.columnProps.filterType,\n value: this.state.filterValue,\n className: \"p-column-filter\",\n placeholder: this.props.columnProps.filterPlaceholder,\n maxLength: this.props.columnProps.filterMaxLength\n });\n }\n\n if (this.props.columnProps.selectionMode === 'multiple' && this.props.renderOptions.renderHeaderCheckbox) {\n headerCheckbox = /*#__PURE__*/React.createElement(RowCheckbox, {\n onClick: this.props.onHeaderCheckboxClick,\n selected: this.props.headerCheckboxSelected,\n disabled: !this.props.value || this.props.value.length === 0\n });\n }\n\n if (this.props.renderOptions.filterOnly) {\n return /*#__PURE__*/React.createElement(\"th\", {\n ref: function ref(el) {\n return _this3.el = el;\n },\n role: \"columnheader\",\n className: classNames('p-filter-column', this.props.columnProps.filterHeaderClassName),\n style: this.props.columnProps.filterHeaderStyle || this.props.columnProps.style,\n colSpan: this.props.columnProps.colSpan,\n rowSpan: this.props.columnProps.rowSpan\n }, filterElement, headerCheckbox);\n } else {\n var sortMetaDataIndex = this.getMultiSortMetaDataIndex();\n var multiSortMetaData = sortMetaDataIndex !== -1 ? this.props.multiSortMeta[sortMetaDataIndex] : null;\n var singleSorted = this.isSingleSorted();\n var multipleSorted = multiSortMetaData !== null;\n var sortOrder = 0;\n var resizer = this.props.resizableColumns && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-resizer p-clickable\",\n onMouseDown: this.onResizerMouseDown,\n onClick: this.onResizerClick,\n onDoubleClick: this.onResizerDoubleClick\n });\n if (singleSorted) sortOrder = this.props.sortOrder;else if (multipleSorted) sortOrder = multiSortMetaData.order;\n var sorted = this.props.columnProps.sortable && (singleSorted || multipleSorted);\n var isSortableDisabled = this.isSortableDisabled();\n var className = classNames({\n 'p-sortable-column': this.props.columnProps.sortable,\n 'p-highlight': sorted,\n 'p-sortable-disabled': isSortableDisabled,\n 'p-resizable-column': this.props.resizableColumns,\n 'p-selection-column': this.props.columnProps.selectionMode\n }, this.props.columnProps.headerClassName || this.props.columnProps.className);\n var sortIconElement = this.renderSortIcon(sorted, sortOrder);\n var ariaSortData = this.getAriaSort(sorted, sortOrder);\n var sortBadge = this.renderSortBadge(sortMetaDataIndex);\n var tabIndex = this.props.columnProps.sortable && !isSortableDisabled ? this.props.tabIndex : null;\n return /*#__PURE__*/React.createElement(\"th\", {\n ref: function ref(el) {\n return _this3.el = el;\n },\n role: \"columnheader\",\n tabIndex: tabIndex,\n className: className,\n style: this.props.columnProps.headerStyle || this.props.columnProps.style,\n onClick: this.onClick,\n onMouseDown: this.onMouseDown,\n onKeyDown: this.onKeyDown,\n colSpan: this.props.columnProps.colSpan,\n rowSpan: this.props.columnProps.rowSpan,\n \"aria-sort\": ariaSortData,\n onDragStart: this.onDragStart,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop\n }, resizer, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-title\"\n }, this.props.columnProps.header), sortIconElement, sortBadge, filterElement, headerCheckbox);\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return {\n badgeVisible: nextProps.multiSortMeta && nextProps.multiSortMeta.length > 1\n };\n }\n }]);\n\n return HeaderCell;\n}(Component);\n\nfunction _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\nfunction _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableHeader = /*#__PURE__*/function (_Component) {\n _inherits(TableHeader, _Component);\n\n var _super = _createSuper$2(TableHeader);\n\n function TableHeader(props) {\n var _this;\n\n _classCallCheck(this, TableHeader);\n\n _this = _super.call(this, props);\n _this.state = {\n sortableDisabledFields: [],\n allSortableDisabled: false\n };\n _this.onSortableChange = _this.onSortableChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TableHeader, [{\n key: \"createHeaderCells\",\n value: function createHeaderCells(columns, renderOptions) {\n var _this2 = this;\n\n return React.Children.map(columns, function (column, i) {\n return /*#__PURE__*/React.createElement(HeaderCell, {\n key: column.props.columnKey || column.props.field || i,\n allSortableDisabled: _this2.isAllSortableDisabled(),\n onSortableChange: _this2.onSortableChange,\n columnProps: column.props,\n value: _this2.props.value,\n onSort: _this2.props.onSort,\n sortableDisabledFields: _this2.state.sortableDisabledFields,\n sortMode: _this2.props.sortMode,\n sortField: _this2.props.sortField,\n sortOrder: _this2.props.sortOrder,\n multiSortMeta: _this2.props.multiSortMeta,\n resizableColumns: _this2.props.resizableColumns,\n onColumnResizeStart: _this2.props.onColumnResizeStart,\n onColumnResizerClick: _this2.props.onColumnResizerClick,\n onColumnResizerDoubleClick: _this2.props.onColumnResizerDoubleClick,\n filterDelay: _this2.props.filterDelay,\n onFilter: _this2.props.onFilter,\n renderOptions: renderOptions,\n onHeaderCheckboxClick: _this2.props.onHeaderCheckboxClick,\n headerCheckboxSelected: _this2.props.headerCheckboxSelected,\n reorderableColumns: _this2.props.reorderableColumns,\n onDragStart: _this2.props.onColumnDragStart,\n onDragOver: _this2.props.onColumnDragOver,\n onDragLeave: _this2.props.onColumnDragLeave,\n onDrop: _this2.props.onColumnDrop,\n filters: _this2.props.filters,\n tabIndex: _this2.props.tabIndex\n });\n });\n }\n }, {\n key: \"hasColumnFilter\",\n value: function hasColumnFilter(columns) {\n if (columns) {\n var _iterator = _createForOfIteratorHelper$1(columns),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var col = _step.value;\n\n if (col.props.filter) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return false;\n }\n }, {\n key: \"isSingleSort\",\n value: function isSingleSort() {\n return this.props.sortMode === 'single';\n }\n }, {\n key: \"isMultipleSort\",\n value: function isMultipleSort() {\n return this.props.sortMode === 'multiple';\n }\n }, {\n key: \"isAllSortableDisabled\",\n value: function isAllSortableDisabled() {\n return this.isSingleSort() && this.state.allSortableDisabled;\n }\n }, {\n key: \"isColumnSorted\",\n value: function isColumnSorted(column) {\n return this.props.sortField !== null ? column.props.field === this.props.sortField || column.props.sortField === this.props.sortField : false;\n }\n }, {\n key: \"updateSortableDisabled\",\n value: function updateSortableDisabled() {\n var _this3 = this;\n\n if (this.isSingleSort() || this.isMultipleSort() && this.props.onSort) {\n var sortableDisabledFields = [];\n var allSortableDisabled = false;\n React.Children.forEach(this.props.children, function (column) {\n if (column.props.sortableDisabled) {\n sortableDisabledFields.push(column.props.sortField || column.props.field);\n\n if (!allSortableDisabled && _this3.isColumnSorted(column)) {\n allSortableDisabled = true;\n }\n }\n });\n this.setState({\n sortableDisabledFields: sortableDisabledFields,\n allSortableDisabled: allSortableDisabled\n });\n }\n }\n }, {\n key: \"onSortableChange\",\n value: function onSortableChange() {\n this.updateSortableDisabled();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateSortableDisabled();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var content;\n\n if (this.props.columnGroup) {\n var rows = React.Children.toArray(this.props.columnGroup.props.children);\n content = rows.map(function (row, i) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n role: \"row\"\n }, _this4.createHeaderCells(React.Children.toArray(row.props.children), {\n filterOnly: false,\n renderFilter: true,\n renderHeaderCheckbox: true\n }));\n });\n } else {\n var columns = React.Children.toArray(this.props.children);\n\n if (this.hasColumnFilter(columns)) {\n content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.createHeaderCells(columns, {\n filterOnly: false,\n renderFilter: false,\n renderHeaderCheckbox: false\n })), /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.createHeaderCells(columns, {\n filterOnly: true,\n renderFilter: true,\n renderHeaderCheckbox: true\n })));\n } else {\n content = /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.createHeaderCells(columns, {\n filterOnly: false,\n renderFilter: false,\n renderHeaderCheckbox: true\n }));\n }\n }\n\n return /*#__PURE__*/React.createElement(\"thead\", {\n className: \"p-datatable-thead\"\n }, content);\n }\n }]);\n\n return TableHeader;\n}(Component);\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableLoadingBody = /*#__PURE__*/function (_Component) {\n _inherits(TableLoadingBody, _Component);\n\n var _super = _createSuper$1(TableLoadingBody);\n\n function TableLoadingBody() {\n _classCallCheck(this, TableLoadingBody);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TableLoadingBody, [{\n key: \"renderRow\",\n value: function renderRow(index) {\n var cells = [];\n\n for (var i = 0; i < this.props.columns.length; i++) {\n cells.push( /*#__PURE__*/React.createElement(\"td\", {\n key: i\n }, this.props.columns[i].props.loadingBody()));\n }\n\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index\n }, cells);\n }\n }, {\n key: \"renderRows\",\n value: function renderRows() {\n var rows = [];\n\n for (var i = 0; i < this.props.rows; i++) {\n rows.push(this.renderRow(i));\n }\n\n return rows;\n }\n }, {\n key: \"render\",\n value: function render() {\n var rows = this.renderRows();\n return /*#__PURE__*/React.createElement(\"tbody\", {\n className: \"p-datatable-tbody\"\n }, rows);\n }\n }]);\n\n return TableLoadingBody;\n}(Component);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar DataTable = /*#__PURE__*/function (_Component) {\n _inherits(DataTable, _Component);\n\n var _super = _createSuper(DataTable);\n\n function DataTable(props) {\n var _this;\n\n _classCallCheck(this, DataTable);\n\n _this = _super.call(this, props);\n _this.state = {\n d_rows: props.rows,\n editingCells: []\n };\n\n if (!_this.props.onPage) {\n _this.state.first = props.first;\n _this.state.rows = props.rows;\n }\n\n if (!_this.props.onSort) {\n _this.state.sortField = props.sortField;\n _this.state.sortOrder = props.sortOrder;\n _this.state.multiSortMeta = props.multiSortMeta;\n }\n\n if (!_this.props.onFilter) {\n _this.state.filters = props.filters;\n }\n\n if (_this.isStateful()) {\n _this.restoreState(_this.state);\n }\n\n _this.onPageChange = _this.onPageChange.bind(_assertThisInitialized(_this));\n _this.onSort = _this.onSort.bind(_assertThisInitialized(_this));\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n _this.onColumnResizeStart = _this.onColumnResizeStart.bind(_assertThisInitialized(_this));\n _this.onHeaderCheckboxClick = _this.onHeaderCheckboxClick.bind(_assertThisInitialized(_this));\n _this.onColumnDragStart = _this.onColumnDragStart.bind(_assertThisInitialized(_this));\n _this.onColumnDragOver = _this.onColumnDragOver.bind(_assertThisInitialized(_this));\n _this.onColumnDragLeave = _this.onColumnDragLeave.bind(_assertThisInitialized(_this));\n _this.onColumnDrop = _this.onColumnDrop.bind(_assertThisInitialized(_this));\n _this.onVirtualScroll = _this.onVirtualScroll.bind(_assertThisInitialized(_this));\n _this.onEditingCellChange = _this.onEditingCellChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DataTable, [{\n key: \"getFirst\",\n value: function getFirst() {\n return this.props.onPage ? this.props.first : this.state.first;\n }\n }, {\n key: \"getRows\",\n value: function getRows() {\n return this.props.onPage ? this.props.rows : this.state.rows;\n }\n }, {\n key: \"getSortField\",\n value: function getSortField() {\n return this.props.onSort ? this.props.sortField : this.state.sortField;\n }\n }, {\n key: \"getSortOrder\",\n value: function getSortOrder() {\n return this.props.onSort ? this.props.sortOrder : this.state.sortOrder;\n }\n }, {\n key: \"getMultiSortMeta\",\n value: function getMultiSortMeta() {\n return this.props.onSort ? this.props.multiSortMeta : this.state.multiSortMeta;\n }\n }, {\n key: \"getFilters\",\n value: function getFilters() {\n return this.props.onFilter ? this.props.filters : this.state.filters;\n }\n }, {\n key: \"getStorage\",\n value: function getStorage() {\n switch (this.props.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n case 'custom':\n return null;\n\n default:\n throw new Error(this.props.stateStorage + ' is not a valid value for the state storage, supported values are \"local\", \"session\" and \"custom\".');\n }\n }\n }, {\n key: \"isCustomStateStorage\",\n value: function isCustomStateStorage() {\n return this.props.stateStorage === 'custom';\n }\n }, {\n key: \"isStateful\",\n value: function isStateful() {\n return this.props.stateKey != null || this.isCustomStateStorage();\n }\n }, {\n key: \"saveState\",\n value: function saveState() {\n var state = {};\n\n if (this.props.paginator) {\n state.first = this.getFirst();\n state.rows = this.getRows();\n }\n\n var sortField = this.getSortField();\n\n if (sortField) {\n state.sortField = sortField;\n state.sortOrder = this.getSortOrder();\n }\n\n var multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta) {\n state.multiSortMeta = multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.getFilters();\n }\n\n if (this.props.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = this.state.columnOrder;\n }\n\n if (this.props.expandedRows) {\n state.expandedRows = this.props.expandedRows;\n }\n\n if (this.props.selection && this.props.onSelectionChange) {\n state.selection = this.props.selection;\n }\n\n if (this.isCustomStateStorage()) {\n if (this.props.customSaveState) {\n this.props.customSaveState(state);\n }\n } else {\n var storage = this.getStorage();\n\n if (Object.keys(state).length) {\n storage.setItem(this.props.stateKey, JSON.stringify(state));\n }\n }\n\n if (this.props.onStateSave) {\n this.props.onStateSave(state);\n }\n }\n }, {\n key: \"clearState\",\n value: function clearState() {\n var storage = this.getStorage();\n\n if (storage && this.props.stateKey) {\n storage.removeItem(this.props.stateKey);\n }\n }\n }, {\n key: \"restoreState\",\n value: function restoreState(state) {\n var restoredState = {};\n\n if (this.isCustomStateStorage()) {\n if (this.props.customRestoreState) {\n restoredState = this.props.customRestoreState();\n }\n } else {\n var storage = this.getStorage();\n var stateString = storage.getItem(this.props.stateKey);\n\n if (stateString) {\n restoredState = JSON.parse(stateString);\n }\n }\n\n this._restoreState(restoredState, state);\n }\n }, {\n key: \"restoreTableState\",\n value: function restoreTableState(restoredState) {\n var state = this._restoreState(restoredState);\n\n if (state && Object.keys(state).length) {\n this.setState(state);\n }\n }\n }, {\n key: \"_restoreState\",\n value: function _restoreState(restoredState) {\n var _this2 = this;\n\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (restoredState && Object.keys(restoredState).length) {\n if (this.props.paginator) {\n if (this.props.onPage) {\n var getOnPageParams = function getOnPageParams(first, rows) {\n var totalRecords = _this2.getTotalRecords(_this2.processData());\n\n var pageCount = Math.ceil(totalRecords / rows) || 1;\n var page = Math.floor(first / rows);\n return {\n first: first,\n rows: rows,\n page: page,\n pageCount: pageCount\n };\n };\n\n this.props.onPage(getOnPageParams(restoredState.first, restoredState.rows));\n } else {\n state.first = restoredState.first;\n state.rows = restoredState.rows;\n }\n }\n\n if (restoredState.sortField) {\n if (this.props.onSort) {\n this.props.onSort({\n sortField: restoredState.sortField,\n sortOrder: restoredState.sortOrder\n });\n } else {\n state.sortField = restoredState.sortField;\n state.sortOrder = restoredState.sortOrder;\n }\n }\n\n if (restoredState.multiSortMeta) {\n if (this.props.onSort) {\n this.props.onSort({\n multiSortMeta: restoredState.multiSortMeta\n });\n } else {\n state.multiSortMeta = restoredState.multiSortMeta;\n }\n }\n\n if (restoredState.filters) {\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: restoredState.filters\n });\n } else {\n state.filters = restoredState.filters;\n }\n }\n\n if (this.props.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows && this.props.onRowToggle) {\n this.props.onRowToggle({\n data: restoredState.expandedRows\n });\n }\n\n if (restoredState.selection && this.props.onSelectionChange) {\n this.props.onSelectionChange({\n value: restoredState.selection\n });\n }\n\n if (this.props.onStateRestore) {\n this.props.onStateRestore(restoredState);\n }\n }\n\n return state;\n }\n }, {\n key: \"saveColumnWidths\",\n value: function saveColumnWidths(state) {\n var widths = [];\n var headers = DomHandler.find(this.container, '.p-datatable-thead > tr > th.p-resizable-column');\n headers.map(function (header) {\n return widths.push(DomHandler.getOuterWidth(header));\n });\n state.columnWidths = widths.join(',');\n\n if (this.props.columnResizeMode === 'expand') {\n state.tableWidth = this.props.scrollable ? DomHandler.findSingle(this.container, '.p-datatable-scrollable-header-table').style.width : DomHandler.getOuterWidth(this.table) + 'px';\n }\n }\n }, {\n key: \"restoreColumnWidths\",\n value: function restoreColumnWidths() {\n if (this.columnWidthsState) {\n var widths = this.columnWidthsState.split(',');\n\n if (this.props.columnResizeMode === 'expand' && this.tableWidthState) {\n if (this.props.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(null, this.tableWidthState, 0);\n } else {\n this.table.style.width = this.tableWidthState;\n this.container.style.width = this.tableWidthState;\n }\n }\n\n if (this.props.scrollable) {\n var headerCols = DomHandler.find(this.container, '.p-datatable-scrollable-header-table > colgroup > col');\n var bodyCols = DomHandler.find(this.container, '.p-datatable-scrollable-body-table > colgroup > col');\n headerCols.map(function (col, index) {\n return col.style.width = widths[index] + 'px';\n });\n bodyCols.map(function (col, index) {\n return col.style.width = widths[index] + 'px';\n });\n } else {\n var headers = DomHandler.find(this.table, '.p-datatable-thead > tr > th');\n headers.map(function (header, index) {\n return header.style.width = widths[index] + 'px';\n });\n }\n }\n }\n }, {\n key: \"onPageChange\",\n value: function onPageChange(event) {\n if (this.props.onPage) this.props.onPage(event);else this.setState({\n first: event.first,\n rows: event.rows\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData());\n }\n }\n }, {\n key: \"createPaginator\",\n value: function createPaginator(position, totalRecords, data) {\n var className = classNames('p-paginator-' + position, this.props.paginatorClassName);\n return /*#__PURE__*/React.createElement(Paginator, {\n first: this.getFirst(),\n rows: this.getRows(),\n pageLinkSize: this.props.pageLinkSize,\n className: className,\n onPageChange: this.onPageChange,\n template: this.props.paginatorTemplate,\n totalRecords: totalRecords,\n rowsPerPageOptions: this.props.rowsPerPageOptions,\n currentPageReportTemplate: this.props.currentPageReportTemplate,\n leftContent: this.props.paginatorLeft,\n rightContent: this.props.paginatorRight,\n alwaysShow: this.props.alwaysShowPaginator,\n dropdownAppendTo: this.props.paginatorDropdownAppendTo\n });\n }\n }, {\n key: \"onSort\",\n value: function onSort(event) {\n var sortField = event.sortField;\n var sortOrder = this.props.defaultSortOrder;\n var multiSortMeta;\n var eventMeta;\n this.columnSortable = event.sortable;\n this.columnSortFunction = event.sortFunction;\n this.columnField = event.sortField;\n\n if (this.props.sortMode === 'multiple') {\n var metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n var sortableDisabledFields = event.sortableDisabledFields;\n multiSortMeta = _toConsumableArray(this.getMultiSortMeta() || []);\n var sortMeta = multiSortMeta.find(function (sortMeta) {\n return sortMeta.field === sortField;\n });\n sortOrder = sortMeta ? this.getCalculatedSortOrder(sortMeta.order) : sortOrder;\n var newMetaData = {\n field: sortField,\n order: sortOrder\n };\n\n if (sortOrder) {\n multiSortMeta = metaKey ? multiSortMeta : multiSortMeta.filter(function (meta) {\n return sortableDisabledFields.some(function (field) {\n return field === meta.field;\n });\n });\n this.addSortMeta(newMetaData, multiSortMeta);\n } else if (this.props.removableSort) {\n this.removeSortMeta(newMetaData, multiSortMeta);\n }\n\n eventMeta = {\n multiSortMeta: multiSortMeta\n };\n } else {\n sortOrder = this.getSortField() === sortField ? this.getCalculatedSortOrder(this.getSortOrder()) : sortOrder;\n\n if (this.props.removableSort) {\n sortField = sortOrder ? sortField : null;\n }\n\n eventMeta = {\n sortField: sortField,\n sortOrder: sortOrder\n };\n }\n\n if (this.props.onSort) {\n this.props.onSort(eventMeta);\n } else {\n eventMeta.first = 0;\n this.setState(eventMeta);\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData({\n sortField: sortField,\n sortOrder: sortOrder,\n multiSortMeta: multiSortMeta\n }));\n }\n }\n }, {\n key: \"getCalculatedSortOrder\",\n value: function getCalculatedSortOrder(currentOrder) {\n return this.props.removableSort ? this.props.defaultSortOrder === currentOrder ? currentOrder * -1 : 0 : currentOrder * -1;\n }\n }, {\n key: \"addSortMeta\",\n value: function addSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) multiSortMeta[index] = meta;else multiSortMeta.push(meta);\n }\n }, {\n key: \"removeSortMeta\",\n value: function removeSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) {\n multiSortMeta.splice(index, 1);\n }\n\n multiSortMeta = multiSortMeta.length > 0 ? multiSortMeta : null;\n }\n }, {\n key: \"sortSingle\",\n value: function sortSingle(data, sortField, sortOrder) {\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n value = this.columnSortFunction({\n field: this.getSortField(),\n order: this.getSortOrder()\n });\n } else {\n value.sort(function (data1, data2) {\n var value1 = ObjectUtils.resolveFieldData(data1, sortField);\n var value2 = ObjectUtils.resolveFieldData(data2, sortField);\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return sortOrder * result;\n });\n }\n\n return value;\n }\n }, {\n key: \"sortMultiple\",\n value: function sortMultiple(data, multiSortMeta) {\n var _this3 = this;\n\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n var meta = multiSortMeta.find(function (meta) {\n return meta.field === _this3.columnField;\n });\n var field = this.columnField;\n var order = meta ? meta.order : this.defaultSortOrder;\n value = this.columnSortFunction({\n field: field,\n order: order\n });\n } else {\n value.sort(function (data1, data2) {\n return _this3.multisortField(data1, data2, multiSortMeta, 0);\n });\n }\n\n return value;\n }\n }, {\n key: \"multisortField\",\n value: function multisortField(data1, data2, multiSortMeta, index) {\n var value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n var value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n var result = null;\n\n if (typeof value1 === 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 !== value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, {\n numeric: true\n });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 === value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n }, {\n key: \"filter\",\n value: function filter(value, field, mode) {\n this.onFilter({\n value: value,\n field: field,\n matchMode: mode\n });\n }\n }, {\n key: \"onFilter\",\n value: function onFilter(event) {\n var currentFilters = this.getFilters();\n var newFilters = currentFilters ? _objectSpread({}, currentFilters) : {};\n if (!this.isFilterBlank(event.value)) newFilters[event.field] = {\n value: event.value,\n matchMode: event.matchMode\n };else if (newFilters[event.field]) delete newFilters[event.field];\n\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: newFilters\n });\n } else {\n this.setState({\n first: 0,\n filters: newFilters\n });\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData({\n filters: newFilters\n }));\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n var filters = this.getFilters() || this.props.globalFilter;\n return filters && Object.keys(filters).length > 0;\n }\n }, {\n key: \"isFilterBlank\",\n value: function isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length === 0 || filter instanceof Array && filter.length === 0) return true;else return false;\n }\n\n return true;\n }\n }, {\n key: \"hasFooter\",\n value: function hasFooter() {\n if (this.props.children) {\n if (this.props.footerColumnGroup) {\n return true;\n } else {\n return this.hasChildrenFooter(this.props.children);\n }\n } else {\n return false;\n }\n }\n }, {\n key: \"hasChildrenFooter\",\n value: function hasChildrenFooter(children) {\n var hasFooter = false;\n\n if (children) {\n if (children instanceof Array) {\n for (var i = 0; i < children.length; i++) {\n hasFooter = hasFooter || this.hasChildrenFooter(children[i]);\n }\n } else {\n return children.props && children.props.footer !== null;\n }\n }\n\n return hasFooter;\n }\n }, {\n key: \"onColumnResizeStart\",\n value: function onColumnResizeStart(event) {\n var containerLeft = DomHandler.getOffset(this.container).left;\n this.resizeColumn = event.columnEl;\n this.resizeColumnProps = event.columnProps;\n this.columnResizing = true;\n this.lastResizerHelperX = event.originalEvent.pageX - containerLeft + this.container.scrollLeft;\n this.bindColumnResizeEvents();\n }\n }, {\n key: \"onColumnResize\",\n value: function onColumnResize(event) {\n var containerLeft = DomHandler.getOffset(this.container).left;\n DomHandler.addClass(this.container, 'p-unselectable-text');\n this.resizerHelper.style.height = this.container.offsetHeight + 'px';\n this.resizerHelper.style.top = 0 + 'px';\n this.resizerHelper.style.left = event.pageX - containerLeft + this.container.scrollLeft + 'px';\n this.resizerHelper.style.display = 'block';\n }\n }, {\n key: \"onColumnResizeEnd\",\n value: function onColumnResizeEnd(event) {\n var delta = this.resizerHelper.offsetLeft - this.lastResizerHelperX;\n var columnWidth = this.resizeColumn.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumn.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.props.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumn.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n if (this.props.scrollable) {\n var scrollableView = this.findParentScrollableView(this.resizeColumn);\n var scrollableBodyTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-body-table');\n var scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-header-table');\n var scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-datatable-scrollable-footer-table');\n var resizeColumnIndex = DomHandler.index(this.resizeColumn);\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n this.resizeColumn.style.width = newColumnWidth + 'px';\n\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n } else if (this.props.columnResizeMode === 'expand') {\n if (this.props.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(this.resizeColumn, newColumnWidth, delta);\n } else {\n this.table.style.width = this.table.offsetWidth + delta + 'px';\n this.resizeColumn.style.width = newColumnWidth + 'px';\n }\n }\n\n if (this.props.onColumnResizeEnd) {\n this.props.onColumnResizeEnd({\n element: this.resizeColumn,\n column: this.resizeColumnProps,\n delta: delta\n });\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.resizerHelper.style.display = 'none';\n this.resizeColumn = null;\n this.resizeColumnProps = null;\n DomHandler.removeClass(this.container, 'p-unselectable-text');\n this.unbindColumnResizeEvents();\n }\n }, {\n key: \"setScrollableItemsWidthOnExpandResize\",\n value: function setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta) {\n var scrollableView = column ? this.findParentScrollableView(column) : this.container;\n var scrollableBody = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-body');\n var scrollableHeader = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-header');\n var scrollableFooter = DomHandler.findSingle(scrollableView, '.p-datatable-scrollable-footer');\n var scrollableBodyTable = DomHandler.findSingle(scrollableBody, 'table.p-datatable-scrollable-body-table');\n var scrollableHeaderTable = DomHandler.findSingle(scrollableHeader, 'table.p-datatable-scrollable-header-table');\n var scrollableFooterTable = DomHandler.findSingle(scrollableFooter, 'table.p-datatable-scrollable-footer-table');\n var scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n var scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n var isContainerInViewport = this.container.offsetWidth >= scrollableBodyTableWidth;\n\n var setWidth = function setWidth(container, table, width, isContainerInViewport) {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + DomHandler.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n if (column) {\n var resizeColumnIndex = DomHandler.index(column);\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n }\n }\n }, {\n key: \"findParentScrollableView\",\n value: function findParentScrollableView(column) {\n if (column) {\n var parent = column.parentElement;\n\n while (parent && !DomHandler.hasClass(parent, 'p-datatable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n }, {\n key: \"resizeColGroup\",\n value: function resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {\n if (table) {\n var colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n var col = colGroup.children[resizeColumnIndex];\n var nextCol = col.nextElementSibling;\n col.style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n nextCol.style.width = nextColumnWidth + 'px';\n }\n } else {\n throw new Error(\"Scrollable tables require a colgroup to support resizable columns\");\n }\n }\n }\n }, {\n key: \"bindColumnResizeEvents\",\n value: function bindColumnResizeEvents() {\n var _this4 = this;\n\n this.documentColumnResizeListener = document.addEventListener('mousemove', function (event) {\n if (_this4.columnResizing) {\n _this4.onColumnResize(event);\n }\n });\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function (event) {\n if (_this4.columnResizing) {\n _this4.columnResizing = false;\n\n _this4.onColumnResizeEnd(event);\n }\n });\n }\n }, {\n key: \"unbindColumnResizeEvents\",\n value: function unbindColumnResizeEvents() {\n document.removeEventListener('document', this.documentColumnResizeListener);\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n }\n }, {\n key: \"findParentHeader\",\n value: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n }\n }, {\n key: \"onColumnDragStart\",\n value: function onColumnDragStart(e) {\n var event = e.originalEvent,\n column = e.column;\n\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n\n this.iconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUp);\n this.iconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorUp);\n this.draggedColumnEl = this.findParentHeader(event.currentTarget);\n this.draggedColumn = column;\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n }\n }, {\n key: \"onColumnDragOver\",\n value: function onColumnDragOver(e) {\n var event = e.originalEvent;\n var dropHeader = this.findParentHeader(event.currentTarget);\n\n if (this.props.reorderableColumns && this.draggedColumnEl && dropHeader) {\n event.preventDefault();\n var containerOffset = DomHandler.getOffset(this.container);\n var dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumnEl !== dropHeader) {\n var targetLeft = dropHeaderOffset.left - containerOffset.left; //let targetTop = containerOffset.top - dropHeaderOffset.top;\n\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.iconHeight - 1) + 'px';\n this.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.reorderIndicatorUp.style.display = 'block';\n this.reorderIndicatorDown.style.display = 'block';\n }\n }\n }\n }, {\n key: \"onColumnDragLeave\",\n value: function onColumnDragLeave(e) {\n var event = e.originalEvent;\n\n if (this.props.reorderableColumns && this.draggedColumnEl) {\n event.preventDefault();\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n }\n }\n }, {\n key: \"onColumnDrop\",\n value: function onColumnDrop(e) {\n var _this5 = this;\n\n var event = e.originalEvent,\n column = e.column;\n event.preventDefault();\n\n if (this.draggedColumnEl) {\n var dragIndex = DomHandler.index(this.draggedColumnEl);\n var dropIndex = DomHandler.index(this.findParentHeader(event.currentTarget));\n var allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dragIndex - dropIndex === 1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n var columns = this.state.columnOrder ? this.getColumns() : React.Children.toArray(this.props.children);\n\n var isSameColumn = function isSameColumn(col1, col2) {\n return col1.columnKey || col2.columnKey ? ObjectUtils.equals(col1, col2, 'columnKey') : ObjectUtils.equals(col1, col2, 'field');\n };\n\n var dragColIndex = columns.findIndex(function (child) {\n return isSameColumn(child.props, _this5.draggedColumn);\n });\n var dropColIndex = columns.findIndex(function (child) {\n return isSameColumn(child.props, column);\n });\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n ObjectUtils.reorderArray(columns, dragColIndex, dropColIndex);\n var columnOrder = [];\n\n var _iterator = _createForOfIteratorHelper(columns),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _column = _step.value;\n columnOrder.push(_column.props.columnKey || _column.props.field);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n\n if (this.props.onColReorder) {\n this.props.onColReorder({\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex,\n columns: columns\n });\n }\n }\n\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnEl.draggable = false;\n this.draggedColumnEl = null;\n this.dropPosition = null;\n }\n }\n }, {\n key: \"onVirtualScroll\",\n value: function onVirtualScroll(event) {\n var _this6 = this;\n\n if (this.virtualScrollTimer) {\n clearTimeout(this.virtualScrollTimer);\n }\n\n this.virtualScrollTimer = setTimeout(function () {\n if (_this6.props.onVirtualScroll) {\n _this6.props.onVirtualScroll({\n first: (event.page - 1) * _this6.props.rows,\n rows: _this6.props.virtualScroll ? _this6.props.rows * 2 : _this6.props.rows\n });\n }\n }, this.props.virtualScrollDelay);\n }\n }, {\n key: \"hasEditingCell\",\n value: function hasEditingCell() {\n return this.state.editingCells && this.state.editingCells.length !== 0;\n }\n }, {\n key: \"onEditingCellChange\",\n value: function onEditingCellChange(event) {\n var _this7 = this;\n\n var rowIndex = event.rowIndex,\n cellIndex = event.cellIndex,\n editing = event.editing;\n\n var editingCells = _toConsumableArray(this.state.editingCells);\n\n if (editing) editingCells.push({\n rowIndex: rowIndex,\n cellIndex: cellIndex\n });else editingCells = editingCells.filter(function (cell) {\n return !(cell.rowIndex === rowIndex && cell.cellIndex === cellIndex);\n });\n this.setState({\n editingCells: editingCells\n }, function () {\n _this7.props.onValueChange && _this7.props.onValueChange(_this7.processData());\n });\n }\n }, {\n key: \"exportCSV\",\n value: function exportCSV(options) {\n var _this8 = this;\n\n var data;\n var csv = \"\\uFEFF\";\n var columns = this.getColumns();\n\n if (options && options.selectionOnly) {\n data = this.props.selection || [];\n } else {\n data = [].concat(_toConsumableArray(this.props.frozenValue || []), _toConsumableArray(this.processData() || []));\n } //headers\n\n\n columns.forEach(function (column, i) {\n var _column$props = column.props,\n field = _column$props.field,\n header = _column$props.header,\n exportable = _column$props.exportable;\n\n if (exportable && field) {\n csv += '\"' + (header || field) + '\"';\n\n if (i < columns.length - 1) {\n csv += _this8.props.csvSeparator;\n }\n }\n }); //body\n\n data.forEach(function (record) {\n csv += '\\n';\n columns.forEach(function (column, i) {\n var _column$props2 = column.props,\n field = _column$props2.field,\n exportable = _column$props2.exportable;\n\n if (exportable && field) {\n var cellData = ObjectUtils.resolveFieldData(record, field);\n if (cellData != null) cellData = _this8.props.exportFunction ? _this8.props.exportFunction({\n data: cellData,\n field: field\n }) : String(cellData).replace(/\"/g, '\"\"');else cellData = '';\n csv += '\"' + cellData + '\"';\n\n if (i < columns.length - 1) {\n csv += _this8.props.csvSeparator;\n }\n }\n });\n });\n var blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, this.props.exportFilename + '.csv');\n } else {\n var link = document.createElement(\"a\");\n\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.props.exportFilename + '.csv');\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n }\n }, {\n key: \"closeEditingCell\",\n value: function closeEditingCell() {\n if (this.props.editMode !== \"row\") {\n document.body.click();\n }\n }\n }, {\n key: \"onHeaderCheckboxClick\",\n value: function onHeaderCheckboxClick(event) {\n var originalEvent = event.originalEvent;\n var selection;\n\n if (!event.checked) {\n var visibleData = this.hasFilter() ? this.processData() : this.props.value;\n selection = _toConsumableArray(visibleData);\n this.props.onAllRowsSelect && this.props.onAllRowsSelect({\n originalEvent: originalEvent,\n data: selection,\n type: 'all'\n });\n } else {\n selection = [];\n this.props.onAllRowsUnselect && this.props.onAllRowsUnselect({\n originalEvent: originalEvent,\n data: selection,\n type: 'all'\n });\n }\n\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange({\n originalEvent: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"filterLocal\",\n value: function filterLocal(value, localFilters) {\n var filteredValue = [];\n var filters = localFilters || this.getFilters();\n var columns = React.Children.toArray(this.props.children);\n\n for (var i = 0; i < value.length; i++) {\n var localMatch = true;\n var globalMatch = false;\n\n for (var j = 0; j < columns.length; j++) {\n var col = columns[j];\n var columnField = col.props.filterField || col.props.field;\n var filterMeta = filters ? filters[columnField] : null; //local\n\n if (filterMeta) {\n var filterValue = filterMeta.value;\n var dataFieldValue = ObjectUtils.resolveFieldData(value[i], columnField);\n var filterMatchMode = filterMeta.matchMode || col.props.filterMatchMode;\n var filterConstraint = filterMatchMode === 'custom' ? col.props.filterFunction : FilterUtils[filterMatchMode];\n var options = {\n rowData: value[i],\n filters: filters,\n props: this.props,\n column: {\n filterMeta: filterMeta,\n filterField: columnField,\n props: col.props\n }\n };\n\n if (filterConstraint !== null && !filterConstraint(dataFieldValue, filterValue, this.props.filterLocale, options)) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n if (!col.props.excludeGlobalFilter && this.props.globalFilter && !globalMatch) {\n globalMatch = FilterUtils['contains'](ObjectUtils.resolveFieldData(value[i], columnField), this.props.globalFilter, this.props.filterLocale);\n }\n }\n\n var matches = localMatch;\n\n if (this.props.globalFilter) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredValue.push(value[i]);\n }\n }\n\n if (filteredValue.length === value.length) {\n filteredValue = value;\n }\n\n return filteredValue;\n }\n }, {\n key: \"processData\",\n value: function processData(localState) {\n var data = this.props.value;\n\n if (!this.props.lazy && !this.hasEditingCell()) {\n if (data && data.length) {\n var sortField = localState && localState.sortField || this.getSortField();\n var sortOrder = localState && localState.sortOrder || this.getSortOrder();\n var multiSortMeta = localState && localState.multiSortMeta || this.getMultiSortMeta();\n\n if (sortField || multiSortMeta && multiSortMeta.length) {\n if (this.props.sortMode === 'single') data = this.sortSingle(data, sortField, sortOrder);else if (this.props.sortMode === 'multiple') data = this.sortMultiple(data, multiSortMeta);\n }\n\n var localFilters = localState && localState.filters || this.getFilters();\n\n if (localFilters || this.props.globalFilter) {\n data = this.filterLocal(data, localFilters);\n }\n }\n }\n\n return data;\n }\n }, {\n key: \"isAllSelected\",\n value: function isAllSelected() {\n var visibleData = this.hasFilter() ? this.processData() : this.props.value;\n\n if (this.props.lazy) {\n return this.props.selection && this.props.totalRecords && this.props.selection.length === this.props.totalRecords;\n }\n\n return this.props.selection && visibleData && visibleData.length && this.props.selection.length === visibleData.length;\n }\n }, {\n key: \"getFrozenColumns\",\n value: function getFrozenColumns(columns) {\n var frozenColumns = null;\n\n var _iterator2 = _createForOfIteratorHelper(columns),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var col = _step2.value;\n\n if (col.props.frozen) {\n frozenColumns = frozenColumns || [];\n frozenColumns.push(col);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return frozenColumns;\n }\n }, {\n key: \"getScrollableColumns\",\n value: function getScrollableColumns(columns) {\n var scrollableColumns = null;\n\n var _iterator3 = _createForOfIteratorHelper(columns),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var col = _step3.value;\n\n if (!col.props.frozen) {\n scrollableColumns = scrollableColumns || [];\n scrollableColumns.push(col);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return scrollableColumns;\n }\n }, {\n key: \"getSelectionModeInColumn\",\n value: function getSelectionModeInColumn(columns) {\n if (Array.isArray(columns)) {\n var _iterator4 = _createForOfIteratorHelper(columns),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var col = _step4.value;\n if (col.props.selectionMode) return col.props.selectionMode;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n\n return null;\n }\n }, {\n key: \"createTableHeader\",\n value: function createTableHeader(value, columns, columnGroup) {\n return /*#__PURE__*/React.createElement(TableHeader, {\n value: value,\n sortMode: this.props.sortMode,\n onSort: this.onSort,\n sortField: this.getSortField(),\n sortOrder: this.getSortOrder(),\n multiSortMeta: this.getMultiSortMeta(),\n columnGroup: columnGroup,\n resizableColumns: this.props.resizableColumns,\n onColumnResizeStart: this.onColumnResizeStart,\n onColumnResizerClick: this.props.onColumnResizerClick,\n onColumnResizerDoubleClick: this.props.onColumnResizerDoubleClick,\n onFilter: this.onFilter,\n filterDelay: this.props.filterDelay,\n onHeaderCheckboxClick: this.onHeaderCheckboxClick,\n headerCheckboxSelected: this.isAllSelected(),\n reorderableColumns: this.props.reorderableColumns,\n onColumnDragStart: this.onColumnDragStart,\n filters: this.getFilters(),\n onColumnDragOver: this.onColumnDragOver,\n onColumnDragLeave: this.onColumnDragLeave,\n onColumnDrop: this.onColumnDrop,\n tabIndex: this.props.tabIndex\n }, columns);\n }\n }, {\n key: \"createTableBody\",\n value: function createTableBody(value, columns, frozen, selectionModeInColumn) {\n return /*#__PURE__*/React.createElement(TableBody, {\n tableId: this.props.id,\n value: value,\n first: this.getFirst(),\n rows: this.getRows(),\n lazy: this.props.lazy,\n paginator: this.props.paginator,\n dataKey: this.props.dataKey,\n compareSelectionBy: this.props.compareSelectionBy,\n selectionMode: this.props.selectionMode,\n selection: this.props.selection,\n metaKeySelection: this.props.metaKeySelection,\n frozen: frozen,\n selectionModeInColumn: selectionModeInColumn,\n onSelectionChange: this.props.onSelectionChange,\n onRowClick: this.props.onRowClick,\n onRowDoubleClick: this.props.onRowDoubleClick,\n onRowSelect: this.props.onRowSelect,\n onRowUnselect: this.props.onRowUnselect,\n contextMenuSelection: this.props.contextMenuSelection,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n onContextMenu: this.props.onContextMenu,\n expandedRows: this.props.expandedRows,\n onRowToggle: this.props.onRowToggle,\n rowExpansionTemplate: this.props.rowExpansionTemplate,\n selectOnEdit: this.props.selectOnEdit,\n onRowExpand: this.props.onRowExpand,\n onRowCollapse: this.props.onRowCollapse,\n emptyMessage: this.props.emptyMessage,\n virtualScroll: this.props.virtualScroll,\n virtualRowHeight: this.props.virtualRowHeight,\n loading: this.props.loading,\n groupField: this.props.groupField,\n rowGroupMode: this.props.rowGroupMode,\n rowGroupHeaderTemplate: this.props.rowGroupHeaderTemplate,\n rowGroupFooterTemplate: this.props.rowGroupFooterTemplate,\n sortField: this.getSortField(),\n rowClassName: this.props.rowClassName,\n cellClassName: this.props.cellClassName,\n onRowReorder: this.props.onRowReorder,\n editMode: this.props.editMode,\n editingRows: this.props.editingRows,\n rowEditorValidator: this.props.rowEditorValidator,\n onRowEditInit: this.props.onRowEditInit,\n onRowEditSave: this.props.onRowEditSave,\n onRowEditCancel: this.props.onRowEditCancel,\n onRowEditChange: this.props.onRowEditChange,\n expandableRowGroups: this.props.expandableRowGroups,\n showRowReorderElement: this.props.showRowReorderElement,\n showSelectionElement: this.props.showSelectionElement,\n dragSelection: this.props.dragSelection,\n cellSelection: this.props.cellSelection,\n onCellClick: this.props.onCellClick,\n onCellSelect: this.props.onCellSelect,\n onCellUnselect: this.props.onCellUnselect,\n onEditingCellChange: this.onEditingCellChange\n }, columns);\n }\n }, {\n key: \"createTableLoadingBody\",\n value: function createTableLoadingBody(columns) {\n if (this.props.virtualScroll) {\n return /*#__PURE__*/React.createElement(TableLoadingBody, {\n columns: columns,\n rows: this.getRows()\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"createTableFooter\",\n value: function createTableFooter(columns, columnGroup) {\n if (this.hasFooter()) return /*#__PURE__*/React.createElement(TableFooter, {\n columnGroup: columnGroup\n }, columns);else return null;\n }\n }, {\n key: \"createScrollableView\",\n value: function createScrollableView(value, columns, frozen, headerColumnGroup, footerColumnGroup, totalRecords, selectionModeInColumn) {\n return /*#__PURE__*/React.createElement(ScrollableView, {\n columns: columns,\n header: this.createTableHeader(value, columns, headerColumnGroup),\n body: this.createTableBody(value, columns, frozen, selectionModeInColumn),\n loadingBody: this.createTableLoadingBody(columns),\n frozenBody: this.props.frozenValue ? this.createTableBody(this.props.frozenValue, columns, true, selectionModeInColumn) : null,\n footer: this.createTableFooter(columns, footerColumnGroup),\n tableStyle: this.props.tableStyle,\n tableClassName: this.props.tableClassName,\n scrollHeight: this.props.scrollHeight,\n frozen: frozen,\n frozenWidth: this.props.frozenWidth,\n virtualScroll: this.props.virtualScroll,\n virtualRowHeight: this.props.virtualRowHeight,\n rows: this.props.rows,\n totalRecords: totalRecords,\n onVirtualScroll: this.onVirtualScroll,\n loading: this.props.loading\n });\n }\n }, {\n key: \"getColumns\",\n value: function getColumns() {\n var columns = React.Children.toArray(this.props.children);\n\n if (columns && columns.length) {\n if (this.props.reorderableColumns && this.state.columnOrder) {\n var orderedColumns = [];\n\n var _iterator5 = _createForOfIteratorHelper(this.state.columnOrder),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var columnKey = _step5.value;\n var column = this.findColumnByKey(columns, columnKey);\n\n if (column) {\n orderedColumns.push(column);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return [].concat(orderedColumns, _toConsumableArray(columns.filter(function (item) {\n return orderedColumns.indexOf(item) < 0;\n })));\n } else {\n return columns;\n }\n }\n\n return null;\n }\n }, {\n key: \"findColumnByKey\",\n value: function findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (var i = 0; i < columns.length; i++) {\n var child = columns[i];\n\n if (child.props.columnKey === key || child.props.field === key) {\n return child;\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"getTotalRecords\",\n value: function getTotalRecords(data) {\n return this.props.lazy ? this.props.totalRecords : data ? data.length : 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var state = {};\n\n if (!this.props.onPage) {\n state.first = this.props.first;\n state.rows = this.props.rows;\n }\n\n if (!this.props.onSort) {\n state.sortField = this.props.sortField;\n state.sortOrder = this.props.sortOrder;\n state.multiSortMeta = this.props.multiSortMeta;\n }\n\n if (!this.props.onFilter) {\n state.filters = this.props.filters;\n }\n\n this.resetColumnOrder();\n\n if (Object.keys(state).length) {\n this.setState(state);\n }\n }\n }, {\n key: \"resetColumnOrder\",\n value: function resetColumnOrder() {\n var columns = React.Children.toArray(this.props.children);\n var columnOrder = [];\n\n var _iterator6 = _createForOfIteratorHelper(columns),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var column = _step6.value;\n columnOrder.push(column.props.columnKey || column.props.field);\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n var iconClassName = classNames('p-datatable-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.isStateful() && this.props.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (prevProps.globalFilter !== this.props.globalFilter) {\n this.filter(this.props.globalFilter, 'globalFilter', 'contains');\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n var value = this.processData();\n var columns = this.getColumns();\n var totalRecords = this.getTotalRecords(value);\n var selectionModeInColumn = this.getSelectionModeInColumn(columns);\n var className = classNames('p-datatable p-component', {\n 'p-datatable-resizable': this.props.resizableColumns,\n 'p-datatable-resizable-fit': this.props.resizableColumns && this.props.columnResizeMode === 'fit',\n 'p-datatable-scrollable': this.props.scrollable,\n 'p-datatable-virtual-scrollable': this.props.virtualScroll,\n 'p-datatable-striped': this.props.stripedRows,\n 'p-datatable-gridlines': this.props.showGridlines,\n 'p-datatable-auto-layout': this.props.autoLayout,\n 'p-datatable-hoverable-rows': this.props.rowHover || this.props.selectionMode || selectionModeInColumn\n }, this.props.className);\n var paginatorTop = this.props.paginator && this.props.paginatorPosition !== 'bottom' && this.createPaginator('top', totalRecords);\n var paginatorBottom = this.props.paginator && this.props.paginatorPosition !== 'top' && this.createPaginator('bottom', totalRecords);\n var headerFacet = this.props.header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-header\"\n }, this.props.header);\n var footerFacet = this.props.footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-footer\"\n }, this.props.footer);\n var resizeHelper = this.props.resizableColumns && /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n _this9.resizerHelper = el;\n },\n className: \"p-column-resizer-helper p-highlight\",\n style: {\n display: 'none'\n }\n });\n var tableContent = null;\n var resizeIndicatorUp = this.props.reorderableColumns && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n _this9.reorderIndicatorUp = el;\n },\n className: \"pi pi-arrow-down p-datatable-reorder-indicator-up\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n var resizeIndicatorDown = this.props.reorderableColumns && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n _this9.reorderIndicatorDown = el;\n },\n className: \"pi pi-arrow-up p-datatable-reorder-indicator-down\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n var loader;\n\n if (this.props.loading) {\n loader = this.renderLoader();\n }\n\n if (Array.isArray(columns)) {\n if (this.props.scrollable) {\n var frozenColumns = this.getFrozenColumns(columns);\n var scrollableColumns = frozenColumns ? this.getScrollableColumns(columns) : columns;\n var frozenView, scrollableView;\n\n if (frozenColumns) {\n frozenView = this.createScrollableView(value, frozenColumns, true, this.props.frozenHeaderColumnGroup, this.props.frozenFooterColumnGroup, totalRecords, selectionModeInColumn);\n }\n\n scrollableView = this.createScrollableView(value, scrollableColumns, false, this.props.headerColumnGroup, this.props.footerColumnGroup, totalRecords, selectionModeInColumn);\n tableContent = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-scrollable-wrapper\"\n }, frozenView, scrollableView);\n } else {\n var tableHeader = this.createTableHeader(value, columns, this.props.headerColumnGroup);\n var tableBody = this.createTableBody(value, columns, false, selectionModeInColumn);\n var tableFooter = this.createTableFooter(columns, this.props.footerColumnGroup);\n tableContent = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-wrapper\"\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: this.props.tableStyle,\n role: \"grid\",\n className: this.props.tableClassName,\n ref: function ref(el) {\n _this9.table = el;\n }\n }, tableHeader, tableFooter, tableBody));\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style,\n ref: function ref(el) {\n _this9.container = el;\n },\n \"data-scrollselectors\": \".p-datatable-scrollable-body, .p-datatable-unfrozen-view .p-datatable-scrollable-body\"\n }, loader, headerFacet, paginatorTop, tableContent, paginatorBottom, footerFacet, resizeHelper, resizeIndicatorUp, resizeIndicatorDown);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.rows !== prevState.d_rows && !nextProps.onPage) {\n return {\n rows: nextProps.rows,\n d_rows: nextProps.rows\n };\n }\n\n return null;\n }\n }]);\n\n return DataTable;\n}(Component);\n\n_defineProperty(DataTable, \"defaultProps\", {\n id: null,\n value: null,\n header: null,\n footer: null,\n style: null,\n className: null,\n tableStyle: null,\n tableClassName: null,\n paginator: false,\n paginatorPosition: 'bottom',\n alwaysShowPaginator: true,\n paginatorClassName: null,\n paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n paginatorLeft: null,\n paginatorRight: null,\n paginatorDropdownAppendTo: null,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})',\n first: 0,\n rows: null,\n totalRecords: null,\n lazy: false,\n sortField: null,\n sortOrder: null,\n multiSortMeta: null,\n sortMode: 'single',\n defaultSortOrder: 1,\n removableSort: false,\n emptyMessage: 'No records found',\n selectionMode: null,\n dragSelection: false,\n cellSelection: false,\n selection: null,\n onSelectionChange: null,\n contextMenuSelection: null,\n onContextMenuSelectionChange: null,\n compareSelectionBy: 'deepEquals',\n dataKey: null,\n metaKeySelection: true,\n selectOnEdit: true,\n headerColumnGroup: null,\n footerColumnGroup: null,\n frozenHeaderColumnGroup: null,\n frozenFooterColumnGroup: null,\n rowExpansionTemplate: null,\n expandedRows: null,\n onRowToggle: null,\n resizableColumns: false,\n columnResizeMode: 'fit',\n reorderableColumns: false,\n filters: null,\n globalFilter: null,\n filterDelay: 300,\n filterLocale: undefined,\n scrollable: false,\n scrollHeight: null,\n virtualScroll: false,\n virtualScrollDelay: 150,\n virtualRowHeight: 28,\n frozenWidth: null,\n frozenValue: null,\n csvSeparator: ',',\n exportFilename: 'download',\n rowGroupMode: null,\n autoLayout: false,\n rowClassName: null,\n cellClassName: null,\n rowGroupHeaderTemplate: null,\n rowGroupFooterTemplate: null,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n tabIndex: 0,\n stateKey: null,\n stateStorage: 'session',\n groupField: null,\n editMode: 'cell',\n editingRows: null,\n expandableRowGroups: false,\n rowHover: false,\n showGridlines: false,\n stripedRows: false,\n showSelectionElement: null,\n showRowReorderElement: null,\n onColumnResizeEnd: null,\n onColumnResizerClick: null,\n onColumnResizerDoubleClick: null,\n onSort: null,\n onPage: null,\n onFilter: null,\n onVirtualScroll: null,\n onAllRowsSelect: null,\n onAllRowsUnselect: null,\n onRowClick: null,\n onRowDoubleClick: null,\n onRowSelect: null,\n onRowUnselect: null,\n onRowExpand: null,\n onRowCollapse: null,\n onContextMenu: null,\n onColReorder: null,\n onCellClick: null,\n onCellSelect: null,\n onCellUnselect: null,\n onRowReorder: null,\n onValueChange: null,\n rowEditorValidator: null,\n onRowEditInit: null,\n onRowEditSave: null,\n onRowEditCancel: null,\n onRowEditChange: null,\n exportFunction: null,\n customSaveState: null,\n customRestoreState: null,\n onStateSave: null,\n onStateRestore: null\n});\n\nexport { DataTable };\n","import React, { Component, createRef } from 'react';\nimport { classNames, ObjectUtils, Ripple, CSSTransition, Portal, DomHandler, OverlayService, ZIndexUtils, ConnectedOverlayScrollHandler, FilterUtils, tip } from 'primereact/core';\nimport { VirtualScroller } from 'primereact/virtualscroller';\nimport PrimeReact from 'primereact/api';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar DropdownItem = /*#__PURE__*/function (_Component) {\n _inherits(DropdownItem, _Component);\n\n var _super = _createSuper$2(DropdownItem);\n\n function DropdownItem(props) {\n var _this;\n\n _classCallCheck(this, DropdownItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-dropdown-item', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled,\n 'p-dropdown-item-empty': !this.props.label || this.props.label.length === 0\n }, this.props.option.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props.option) : this.props.label;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n \"aria-label\": this.props.label,\n key: this.props.label,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return DropdownItem;\n}(Component);\n\n_defineProperty(DropdownItem, \"defaultProps\", {\n option: null,\n label: null,\n template: null,\n selected: false,\n disabled: false,\n onClick: null\n});\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar DropdownPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(DropdownPanelComponent, _Component);\n\n var _super = _createSuper$1(DropdownPanelComponent);\n\n function DropdownPanelComponent(props) {\n var _this;\n\n _classCallCheck(this, DropdownPanelComponent);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownPanelComponent, [{\n key: \"onEnter\",\n value: function onEnter() {\n var _this2 = this;\n\n this.props.onEnter(function () {\n if (_this2.virtualScrollerRef) {\n var selectedIndex = _this2.props.getSelectedOptionIndex();\n\n if (selectedIndex !== -1) {\n _this2.virtualScrollerRef.scrollToIndex(selectedIndex);\n }\n }\n });\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n var _this3 = this;\n\n this.props.onEntered(function () {\n if (_this3.props.filter && _this3.props.filterInputAutoFocus) {\n _this3.filterInput.focus();\n }\n });\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n if (this.virtualScrollerRef) {\n this.virtualScrollerRef.scrollToIndex(0);\n }\n\n this.props.onFilterInputChange && this.props.onFilterInputChange(event);\n }\n }, {\n key: \"isEmptyFilter\",\n value: function isEmptyFilter() {\n return !(this.props.visibleOptions && this.props.visibleOptions.length) && this.props.hasFilter();\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup) {\n var _this4 = this;\n\n var groupChildren = this.props.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (option, j) {\n var optionLabel = _this4.props.getOptionLabel(option);\n\n var optionKey = j + '_' + _this4.props.getOptionRenderKey(option);\n\n var disabled = _this4.props.isOptionDisabled(option);\n\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: _this4.props.itemTemplate,\n selected: _this4.props.isSelected(option),\n disabled: disabled,\n onClick: _this4.props.onOptionClick\n });\n });\n }\n }, {\n key: \"renderEmptyMessage\",\n value: function renderEmptyMessage(emptyMessage) {\n var message = ObjectUtils.getJSXElement(emptyMessage, this.props);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-empty-message\"\n }, message);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(option, index) {\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, option, index) : this.props.getOptionGroupLabel(option);\n var groupChildrenContent = this.renderGroupChildren(option);\n var key = index + '_' + this.props.getOptionGroupRenderKey(option);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var optionLabel = this.props.getOptionLabel(option);\n var optionKey = index + '_' + this.props.getOptionRenderKey(option);\n var disabled = this.props.isOptionDisabled(option);\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: this.props.itemTemplate,\n selected: this.props.isSelected(option),\n disabled: disabled,\n onClick: this.props.onOptionClick\n });\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this5 = this;\n\n if (this.props.visibleOptions && this.props.visibleOptions.length) {\n return this.props.visibleOptions.map(function (option, index) {\n return _this5.renderItem(option, index);\n });\n } else if (this.props.hasFilter()) {\n return this.renderEmptyMessage(this.props.emptyFilterMessage);\n }\n\n return this.renderEmptyMessage(this.props.emptyMessage);\n }\n }, {\n key: \"renderFilterClearIcon\",\n value: function renderFilterClearIcon() {\n var _this6 = this;\n\n if (this.props.showFilterClear && this.props.filterValue) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-clear-icon pi pi-times\",\n onClick: function onClick() {\n return _this6.props.onFilterClearIconClick(function () {\n return _this6.filterInput.focus();\n });\n }\n });\n }\n\n return null;\n }\n }, {\n key: \"renderFilter\",\n value: function renderFilter() {\n var _this7 = this;\n\n if (this.props.filter) {\n var clearIcon = this.renderFilterClearIcon();\n var containerClassName = classNames('p-dropdown-filter-container', {\n 'p-dropdown-clearable-filter': !!clearIcon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-header\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this7.filterInput = el;\n },\n type: \"text\",\n autoComplete: \"off\",\n className: \"p-dropdown-filter p-inputtext p-component\",\n placeholder: this.props.filterPlaceholder,\n onKeyDown: this.props.onFilterInputKeyDown,\n onChange: this.onFilterInputChange,\n value: this.props.filterValue\n }), clearIcon, /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-icon pi pi-search\"\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this8 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions), {\n style: _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions.style), {\n height: this.props.scrollHeight\n }),\n className: classNames('p-dropdown-items-wrapper', this.props.virtualScrollerOptions.className),\n items: this.props.visibleOptions,\n onLazyLoad: function onLazyLoad(event) {\n return _this8.props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {\n filter: _this8.props.filterValue\n }));\n },\n itemTemplate: function itemTemplate(item, options) {\n return item && _this8.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-dropdown-items', options.className);\n var content = _this8.isEmptyFilter() ? _this8.renderEmptyMessage() : options.children;\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.ref,\n className: className,\n role: \"listbox\"\n }, content);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: function ref(el) {\n return _this8.virtualScrollerRef = el;\n }\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-items-wrapper\",\n style: {\n maxHeight: this.props.scrollHeight || 'auto'\n }\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-dropdown-items\",\n role: \"listbox\"\n }, items));\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-dropdown-panel p-component', this.props.panelClassName);\n var filter = this.renderFilter();\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntering: this.props.onEntering,\n onEntered: this.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n style: this.props.panelStyle,\n onClick: this.props.onClick\n }, filter, content));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return DropdownPanelComponent;\n}(Component);\n\nvar DropdownPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(DropdownPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Dropdown = /*#__PURE__*/function (_Component) {\n _inherits(Dropdown, _Component);\n\n var _super = _createSuper(Dropdown);\n\n function Dropdown(props) {\n var _this;\n\n _classCallCheck(this, Dropdown);\n\n _this = _super.call(this, props);\n _this.state = {\n filter: '',\n focused: false,\n overlayVisible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onEditableInputChange = _this.onEditableInputChange.bind(_assertThisInitialized(_this));\n _this.onEditableInputFocus = _this.onEditableInputFocus.bind(_assertThisInitialized(_this));\n _this.onOptionClick = _this.onOptionClick.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n _this.onFilterInputKeyDown = _this.onFilterInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onFilterClearIconClick = _this.onFilterClearIconClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.resetFilter = _this.resetFilter.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.hasFilter = _this.hasFilter.bind(_assertThisInitialized(_this));\n _this.getOptionLabel = _this.getOptionLabel.bind(_assertThisInitialized(_this));\n _this.getOptionRenderKey = _this.getOptionRenderKey.bind(_assertThisInitialized(_this));\n _this.isOptionDisabled = _this.isOptionDisabled.bind(_assertThisInitialized(_this));\n _this.getOptionGroupChildren = _this.getOptionGroupChildren.bind(_assertThisInitialized(_this));\n _this.getOptionGroupLabel = _this.getOptionGroupLabel.bind(_assertThisInitialized(_this));\n _this.getOptionGroupRenderKey = _this.getOptionGroupRenderKey.bind(_assertThisInitialized(_this));\n _this.getSelectedOptionIndex = _this.getSelectedOptionIndex.bind(_assertThisInitialized(_this));\n _this.isSelected = _this.isSelected.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Dropdown, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n if (DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {\n return;\n } else if (!this.overlayRef.current || !(this.overlayRef.current && this.overlayRef.current.contains(event.target))) {\n this.focusInput.focus();\n\n if (this.state.overlayVisible) {\n this.hideOverlay();\n } else {\n this.showOverlay();\n }\n }\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this2 = this;\n\n event.persist();\n\n if (this.props.showOnFocus && !this.state.overlayVisible) {\n this.showOverlay();\n }\n\n this.setState({\n focused: true\n }, function () {\n if (_this2.props.onFocus) {\n _this2.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this3.props.onBlur) {\n _this3.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //space\n\n case 32:\n if (this.state.overlayVisible) this.hideOverlay();else this.showOverlay();\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.hideOverlay();\n event.preventDefault();\n break;\n //escape and tab\n\n case 27:\n case 9:\n this.hideOverlay();\n break;\n\n default:\n this.search(event);\n break;\n }\n }\n }, {\n key: \"onFilterInputKeyDown\",\n value: function onFilterInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //enter and escape\n\n case 13:\n case 27:\n this.hideOverlay();\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"onUpKey\",\n value: function onUpKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n var prevOption = this.findPrevOption(this.getSelectedOptionIndex());\n\n if (prevOption) {\n this.selectItem({\n originalEvent: event,\n option: prevOption\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onDownKey\",\n value: function onDownKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n if (!this.state.overlayVisible && event.altKey) {\n this.showOverlay();\n } else {\n var nextOption = this.findNextOption(this.getSelectedOptionIndex());\n\n if (nextOption) {\n this.selectItem({\n originalEvent: event,\n option: nextOption\n });\n }\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"findNextOption\",\n value: function findNextOption(index) {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index === -1 ? 0 : index.group;\n var optionIndex = index === -1 ? -1 : index.option;\n var option = this.findNextOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return this.findNextOption({\n group: groupIndex + 1,\n option: -1\n });else return null;\n } else {\n return this.findNextOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findNextOptionInList\",\n value: function findNextOptionInList(list, index) {\n var i = index + 1;\n\n if (i === list.length) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findNextOptionInList(i);else return option;\n }\n }, {\n key: \"findPrevOption\",\n value: function findPrevOption(index) {\n if (index === -1) {\n return null;\n }\n\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index.group;\n var optionIndex = index.option;\n var option = this.findPrevOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex > 0) return this.findPrevOption({\n group: groupIndex - 1,\n option: this.getOptionGroupChildren(visibleOptions[groupIndex - 1]).length\n });else return null;\n } else {\n return this.findPrevOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findPrevOptionInList\",\n value: function findPrevOptionInList(list, index) {\n var i = index - 1;\n\n if (i < 0) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findPrevOption(i);else return option;\n }\n }, {\n key: \"search\",\n value: function search(event) {\n var _this4 = this;\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n var char = event.key;\n this.previousSearchChar = this.currentSearchChar;\n this.currentSearchChar = char;\n if (this.previousSearchChar === this.currentSearchChar) this.searchValue = this.currentSearchChar;else this.searchValue = this.searchValue ? this.searchValue + char : char;\n\n if (this.searchValue) {\n var searchIndex = this.getSelectedOptionIndex();\n var newOption = this.props.optionGroupLabel ? this.searchOptionInGroup(searchIndex) : this.searchOption(++searchIndex);\n\n if (newOption) {\n this.selectItem({\n originalEvent: event,\n option: newOption\n });\n this.selectedOptionUpdated = true;\n }\n }\n\n this.searchTimeout = setTimeout(function () {\n _this4.searchValue = null;\n }, 250);\n }\n }, {\n key: \"searchOption\",\n value: function searchOption(index) {\n var option;\n\n if (this.searchValue) {\n var visibleOptions = this.getVisibleOptions();\n option = this.searchOptionInRange(index, visibleOptions.length);\n\n if (!option) {\n option = this.searchOptionInRange(0, index);\n }\n }\n\n return option;\n }\n }, {\n key: \"searchOptionInRange\",\n value: function searchOptionInRange(start, end) {\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = start; i < end; i++) {\n var opt = visibleOptions[i];\n\n if (this.matchesSearchValue(opt)) {\n return opt;\n }\n }\n\n return null;\n }\n }, {\n key: \"searchOptionInGroup\",\n value: function searchOptionInGroup(index) {\n var searchIndex = index === -1 ? {\n group: 0,\n option: -1\n } : index;\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = searchIndex.group; i < visibleOptions.length; i++) {\n var groupOptions = this.getOptionGroupChildren(visibleOptions[i]);\n\n for (var j = searchIndex.group === i ? searchIndex.option + 1 : 0; j < groupOptions.length; j++) {\n if (this.matchesSearchValue(groupOptions[j])) {\n return groupOptions[j];\n }\n }\n }\n\n for (var _i = 0; _i <= searchIndex.group; _i++) {\n var _groupOptions = this.getOptionGroupChildren(visibleOptions[_i]);\n\n for (var _j = 0; _j < (searchIndex.group === _i ? searchIndex.option : _groupOptions.length); _j++) {\n if (this.matchesSearchValue(_groupOptions[_j])) {\n return _groupOptions[_j];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"matchesSearchValue\",\n value: function matchesSearchValue(option) {\n var label = this.getOptionLabel(option).toLocaleLowerCase(this.props.filterLocale);\n return label.startsWith(this.searchValue.toLocaleLowerCase(this.props.filterLocale));\n }\n }, {\n key: \"onEditableInputChange\",\n value: function onEditableInputChange(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: event.target.value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: event.target.value\n }\n });\n }\n }\n }, {\n key: \"onEditableInputFocus\",\n value: function onEditableInputFocus(event) {\n var _this5 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n _this5.hideOverlay();\n\n if (_this5.props.onFocus) {\n _this5.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onOptionClick\",\n value: function onOptionClick(event) {\n var option = event.option;\n\n if (!option.disabled) {\n this.selectItem(event);\n this.focusInput.focus();\n }\n\n this.hideOverlay();\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n var _this6 = this;\n\n var filter = event.target.value;\n this.setState({\n filter: filter\n }, function () {\n if (_this6.props.onFilter) {\n _this6.props.onFilter({\n originalEvent: event,\n filter: filter\n });\n }\n });\n }\n }, {\n key: \"onFilterClearIconClick\",\n value: function onFilterClearIconClick(callback) {\n this.resetFilter(callback);\n }\n }, {\n key: \"resetFilter\",\n value: function resetFilter(callback) {\n var _this7 = this;\n\n var filter = '';\n this.setState({\n filter: filter\n }, function () {\n _this7.props.onFilter && _this7.props.onFilter({\n filter: filter\n });\n callback && callback();\n });\n }\n }, {\n key: \"clear\",\n value: function clear(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: undefined,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: undefined\n }\n });\n }\n\n this.updateEditableLabel();\n }\n }, {\n key: \"selectItem\",\n value: function selectItem(event) {\n var currentSelectedOption = this.getSelectedOption();\n\n if (currentSelectedOption !== event.option) {\n this.updateEditableLabel(event.option);\n var optionValue = this.getOptionValue(event.option);\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: optionValue,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: optionValue\n }\n });\n }\n }\n }\n }, {\n key: \"getSelectedOption\",\n value: function getSelectedOption() {\n var index = this.getSelectedOptionIndex();\n var visibleOptions = this.getVisibleOptions();\n return index !== -1 ? this.props.optionGroupLabel ? this.getOptionGroupChildren(visibleOptions[index.group])[index.option] : visibleOptions[index] : null;\n }\n }, {\n key: \"getSelectedOptionIndex\",\n value: function getSelectedOptionIndex() {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.value != null && visibleOptions) {\n if (this.props.optionGroupLabel) {\n for (var i = 0; i < visibleOptions.length; i++) {\n var selectedOptionIndex = this.findOptionIndexInList(this.props.value, this.getOptionGroupChildren(visibleOptions[i]));\n\n if (selectedOptionIndex !== -1) {\n return {\n group: i,\n option: selectedOptionIndex\n };\n }\n }\n } else {\n return this.findOptionIndexInList(this.props.value, visibleOptions);\n }\n }\n\n return -1;\n }\n }, {\n key: \"findOptionIndexInList\",\n value: function findOptionIndexInList(value, list) {\n var key = this.equalityKey();\n\n for (var i = 0; i < list.length; i++) {\n if (ObjectUtils.equals(value, this.getOptionValue(list[i]), key)) {\n return i;\n }\n }\n\n return -1;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n return ObjectUtils.equals(this.props.value, this.getOptionValue(option), this.equalityKey());\n }\n }, {\n key: \"equalityKey\",\n value: function equalityKey() {\n return this.props.optionValue ? null : this.props.dataKey;\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter(callback) {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.alignOverlay();\n callback && callback();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered(callback) {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n callback && callback();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n if (this.props.filter && this.props.resetFilterOnHide) {\n this.resetFilter();\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n DomHandler.alignOverlay(this.overlayRef.current, this.input.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView() {\n var highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li.p-highlight');\n\n if (highlightItem) {\n highlightItem.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this8 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this8.state.overlayVisible && _this8.isOutsideClicked(event)) {\n _this8.hideOverlay();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this9 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this9.state.overlayVisible) {\n _this9.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this10 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this10.state.overlayVisible && !DomHandler.isTouchDevice()) {\n _this10.hideOverlay();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && !(this.container.isSameNode(event.target) || this.isClearClicked(event) || this.container.contains(event.target) || this.overlayRef && this.overlayRef.current.contains(event.target));\n }\n }, {\n key: \"isClearClicked\",\n value: function isClearClicked(event) {\n return DomHandler.hasClass(event.target, 'p-dropdown-clear-icon');\n }\n }, {\n key: \"updateEditableLabel\",\n value: function updateEditableLabel(option) {\n if (this.input) {\n this.input.value = option ? this.getOptionLabel(option) : this.props.value || '';\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n return this.state.filter && this.state.filter.trim().length > 0;\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n return this.props.optionValue ? ObjectUtils.resolveFieldData(option, this.props.optionValue) : option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"getOptionRenderKey\",\n value: function getOptionRenderKey(option) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(option, this.props.dataKey) : this.getOptionLabel(option);\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"checkValidity\",\n value: function checkValidity() {\n return this.inputRef.current.checkValidity();\n }\n }, {\n key: \"getVisibleOptions\",\n value: function getVisibleOptions() {\n if (this.hasFilter()) {\n var filterValue = this.state.filter.trim().toLocaleLowerCase(this.props.filterLocale);\n var searchFields = this.props.filterBy ? this.props.filterBy.split(',') : [this.props.optionLabel || 'label'];\n\n if (this.props.optionGroupLabel) {\n var filteredGroups = [];\n\n var _iterator = _createForOfIteratorHelper(this.props.options),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var optgroup = _step.value;\n var filteredSubOptions = FilterUtils.filter(this.getOptionGroupChildren(optgroup), searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), {\n items: filteredSubOptions\n }));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return filteredGroups;\n } else {\n return FilterUtils.filter(this.props.options, searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n }\n } else {\n return this.props.options;\n }\n }\n }, {\n key: \"updateInputField\",\n value: function updateInputField() {\n if (this.props.editable && this.input) {\n var selectedOption = this.getSelectedOption();\n var label = selectedOption ? this.getOptionLabel(selectedOption) : null;\n var value = label || this.props.value || '';\n this.input.value = value;\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.autoFocus && this.focusInput) {\n this.focusInput.focus();\n }\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n this.updateInputField();\n this.inputRef.current.selectedIndex = 1;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.state.overlayVisible) {\n if (this.props.filter) {\n this.alignOverlay();\n }\n\n if (prevProps.value !== this.props.value) {\n this.scrollInView();\n }\n }\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.state.filter && (!this.props.options || this.props.options.length === 0)) {\n this.setState({\n filter: ''\n });\n }\n\n this.updateInputField();\n this.inputRef.current.selectedIndex = 1;\n }\n }, {\n key: \"renderHiddenSelect\",\n value: function renderHiddenSelect(selectedOption) {\n var placeHolderOption = /*#__PURE__*/React.createElement(\"option\", {\n value: \"\"\n }, this.props.placeholder);\n var option = selectedOption ? /*#__PURE__*/React.createElement(\"option\", {\n value: selectedOption.value\n }, this.getOptionLabel(selectedOption)) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible p-dropdown-hidden-select\"\n }, /*#__PURE__*/React.createElement(\"select\", {\n ref: this.inputRef,\n required: this.props.required,\n name: this.props.name,\n tabIndex: -1,\n \"aria-hidden\": \"true\"\n }, placeHolderOption, option));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderKeyboardHelper\",\n value: function renderKeyboardHelper() {\n var _this11 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this11.focusInput = el;\n },\n id: this.props.inputId,\n type: \"text\",\n readOnly: true,\n \"aria-haspopup\": \"listbox\",\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onInputKeyDown,\n disabled: this.props.disabled,\n tabIndex: this.props.tabIndex,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy\n }));\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(selectedOption) {\n var _this12 = this;\n\n var label = selectedOption ? this.getOptionLabel(selectedOption) : null;\n\n if (this.props.editable) {\n var value = label || this.props.value || '';\n return /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n type: \"text\",\n defaultValue: value,\n className: \"p-dropdown-label p-inputtext\",\n disabled: this.props.disabled,\n placeholder: this.props.placeholder,\n maxLength: this.props.maxLength,\n onInput: this.onEditableInputChange,\n onFocus: this.onEditableInputFocus,\n onBlur: this.onInputBlur,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-haspopup\": \"listbox\"\n });\n } else {\n var className = classNames('p-dropdown-label p-inputtext', {\n 'p-placeholder': label === null && this.props.placeholder,\n 'p-dropdown-label-empty': label === null && !this.props.placeholder\n });\n var content = this.props.valueTemplate ? ObjectUtils.getJSXElement(this.props.valueTemplate, selectedOption, this.props) : label || this.props.placeholder || 'empty';\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n className: className\n }, content);\n }\n }\n }, {\n key: \"renderClearIcon\",\n value: function renderClearIcon() {\n if (this.props.value != null && this.props.showClear && !this.props.disabled) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-clear-icon pi pi-times\",\n onClick: this.clear\n });\n }\n\n return null;\n }\n }, {\n key: \"renderDropdownIcon\",\n value: function renderDropdownIcon() {\n var _this13 = this;\n\n var iconClassName = classNames('p-dropdown-trigger-icon p-clickable', this.props.dropdownIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this13.trigger = el;\n },\n className: \"p-dropdown-trigger\",\n role: \"button\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.state.overlayVisible\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this14 = this;\n\n var className = classNames('p-dropdown p-component p-inputwrapper', this.props.className, {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-dropdown-clearable': this.props.showClear && !this.props.disabled,\n 'p-inputwrapper-filled': this.props.value,\n 'p-inputwrapper-focus': this.state.focused || this.state.overlayVisible\n });\n var visibleOptions = this.getVisibleOptions();\n var selectedOption = this.getSelectedOption();\n var hiddenSelect = this.renderHiddenSelect(selectedOption);\n var keyboardHelper = this.renderKeyboardHelper();\n var labelElement = this.renderLabel(selectedOption);\n var dropdownIcon = this.renderDropdownIcon();\n var clearIcon = this.renderClearIcon();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this14.container = el;\n },\n className: className,\n style: this.props.style,\n onClick: this.onClick,\n onMouseDown: this.props.onMouseDown,\n onContextMenu: this.props.onContextMenu\n }, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React.createElement(DropdownPanel, _extends({\n ref: this.overlayRef,\n visibleOptions: visibleOptions\n }, this.props, {\n onClick: this.onPanelClick,\n onOptionClick: this.onOptionClick,\n filterValue: this.state.filter,\n hasFilter: this.hasFilter,\n onFilterClearIconClick: this.onFilterClearIconClick,\n onFilterInputKeyDown: this.onFilterInputKeyDown,\n onFilterInputChange: this.onFilterInputChange,\n getOptionLabel: this.getOptionLabel,\n getOptionRenderKey: this.getOptionRenderKey,\n isOptionDisabled: this.isOptionDisabled,\n getOptionGroupChildren: this.getOptionGroupChildren,\n getOptionGroupLabel: this.getOptionGroupLabel,\n getOptionGroupRenderKey: this.getOptionGroupRenderKey,\n isSelected: this.isSelected,\n getSelectedOptionIndex: this.getSelectedOptionIndex,\n in: this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n })));\n }\n }]);\n\n return Dropdown;\n}(Component);\n\n_defineProperty(Dropdown, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n valueTemplate: null,\n itemTemplate: null,\n style: null,\n className: null,\n virtualScrollerOptions: null,\n scrollHeight: '200px',\n filter: false,\n filterBy: null,\n filterMatchMode: 'contains',\n filterPlaceholder: null,\n filterLocale: undefined,\n emptyMessage: 'No records found',\n emptyFilterMessage: 'No results found',\n editable: false,\n placeholder: null,\n required: false,\n disabled: false,\n appendTo: null,\n tabIndex: null,\n autoFocus: false,\n filterInputAutoFocus: true,\n resetFilterOnHide: false,\n showFilterClear: false,\n panelClassName: null,\n panelStyle: null,\n dataKey: null,\n inputId: null,\n showClear: false,\n maxLength: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabel: null,\n ariaLabelledBy: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n showOnFocus: false,\n onChange: null,\n onFocus: null,\n onBlur: null,\n onMouseDown: null,\n onContextMenu: null,\n onShow: null,\n onHide: null,\n onFilter: null\n});\n\nexport { Dropdown };\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import React, { createRef, Component } from 'react';\nimport { tip, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RadioButton = /*#__PURE__*/function (_Component) {\n _inherits(RadioButton, _Component);\n\n var _super = _createSuper(RadioButton);\n\n function RadioButton(props) {\n var _this;\n\n _classCallCheck(this, RadioButton);\n\n _this = _super.call(this, props);\n _this.state = {};\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(RadioButton, [{\n key: \"select\",\n value: function select(e) {\n this.inputRef.current.checked = true;\n this.onClick(e);\n }\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n if (!this.props.disabled && this.props.onChange) {\n this.props.onChange({\n originalEvent: e,\n value: this.props.value,\n checked: !this.props.checked,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: this.props.value,\n checked: !this.props.checked\n }\n });\n this.inputRef.current.checked = !this.props.checked;\n this.inputRef.current.focus();\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (this.inputRef && this.inputRef.current) {\n this.inputRef.current.checked = this.props.checked;\n }\n\n var containerClass = classNames('p-radiobutton p-component', {\n 'p-radiobutton-checked': this.props.checked,\n 'p-radiobutton-disabled': this.props.disabled,\n 'p-radiobutton-focused': this.state.focused\n }, this.props.className);\n var boxClass = classNames('p-radiobutton-box', {\n 'p-highlight': this.props.checked,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this2.element = el;\n },\n id: this.props.id,\n className: containerClass,\n style: this.props.style,\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n id: this.props.inputId,\n type: \"radio\",\n \"aria-labelledby\": this.props.ariaLabelledBy,\n name: this.props.name,\n defaultChecked: this.props.checked,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: this.props.disabled,\n required: this.props.required,\n tabIndex: this.props.tabIndex\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: boxClass,\n ref: function ref(el) {\n _this2.box = el;\n },\n role: \"radio\",\n \"aria-checked\": this.props.checked\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-radiobutton-icon\"\n })));\n }\n }]);\n\n return RadioButton;\n}(Component);\n\n_defineProperty(RadioButton, \"defaultProps\", {\n id: null,\n inputRef: null,\n inputId: null,\n name: null,\n value: null,\n checked: false,\n style: null,\n className: null,\n disabled: false,\n required: false,\n tabIndex: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onChange: null\n});\n\nexport { RadioButton };\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument === 'function';\n};\n","import React, { Component } from 'react';\nimport { classNames, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Chip = /*#__PURE__*/function (_Component) {\n _inherits(Chip, _Component);\n\n var _super = _createSuper(Chip);\n\n function Chip(props) {\n var _this;\n\n _classCallCheck(this, Chip);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: true\n };\n _this.close = _this.close.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Chip, [{\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.keyCode === 13) {\n // enter\n this.close(event);\n }\n }\n }, {\n key: \"close\",\n value: function close(event) {\n var _this2 = this;\n\n event.persist();\n this.setState({\n visible: false\n }, function () {\n if (_this2.props.onRemove) {\n _this2.props.onRemove(event);\n }\n });\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this3 = this;\n\n var content = [];\n\n if (this.props.image) {\n var onError = function onError(e) {\n if (_this3.props.onImageError) {\n _this3.props.onImageError(e);\n }\n };\n\n content.push( /*#__PURE__*/React.createElement(\"img\", {\n key: \"image\",\n src: this.props.image,\n alt: this.props.imageAlt,\n onError: onError\n }));\n } else if (this.props.icon) {\n var iconClassName = classNames('p-chip-icon', this.props.icon);\n content.push( /*#__PURE__*/React.createElement(\"span\", {\n key: \"icon\",\n className: iconClassName\n }));\n }\n\n if (this.props.label) {\n content.push( /*#__PURE__*/React.createElement(\"span\", {\n key: \"label\",\n className: \"p-chip-text\"\n }, this.props.label));\n }\n\n if (this.props.removable) {\n var removableIconClassName = classNames('p-chip-remove-icon', this.props.removeIcon);\n content.push( /*#__PURE__*/React.createElement(\"span\", {\n key: \"removeIcon\",\n tabIndex: 0,\n className: removableIconClassName,\n onClick: this.close,\n onKeyDown: this.onKeyDown\n }));\n }\n\n return content;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var containerClassName = classNames('p-chip p-component', {\n 'p-chip-image': this.props.image != null\n }, this.props.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props) : this.renderContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n style: this.props.style\n }, content);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.state.visible && this.renderElement();\n }\n }]);\n\n return Chip;\n}(Component);\n\n_defineProperty(Chip, \"defaultProps\", {\n label: null,\n icon: null,\n image: null,\n removable: false,\n removeIcon: 'pi pi-times-circle',\n className: null,\n style: null,\n template: null,\n imageAlt: 'chip',\n onImageError: null,\n onRemove: null\n});\n\nexport { Chip };\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import React, { createRef, Component } from 'react';\nimport { DomHandler, tip, classNames, ObjectUtils } from 'primereact/core';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar InputTextareaComponent = /*#__PURE__*/function (_Component) {\n _inherits(InputTextareaComponent, _Component);\n\n var _super = _createSuper(InputTextareaComponent);\n\n function InputTextareaComponent(props) {\n var _this;\n\n _classCallCheck(this, InputTextareaComponent);\n\n _this = _super.call(this, props);\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyUp = _this.onKeyUp.bind(_assertThisInitialized(_this));\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.elementRef = /*#__PURE__*/createRef(_this.props.forwardRef);\n return _this;\n }\n\n _createClass(InputTextareaComponent, [{\n key: \"onFocus\",\n value: function onFocus(e) {\n if (this.props.autoResize) {\n this.resize();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(e) {\n if (this.props.autoResize) {\n this.resize();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"onKeyUp\",\n value: function onKeyUp(e) {\n if (this.props.autoResize) {\n this.resize();\n }\n\n if (this.props.onKeyUp) {\n this.props.onKeyUp(e);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(e) {\n if (this.props.autoResize) {\n this.resize();\n }\n\n if (e.target.value.length > 0) DomHandler.addClass(e.target, 'p-filled');else DomHandler.removeClass(e.target, 'p-filled');\n\n if (this.props.onInput) {\n this.props.onInput(e);\n }\n }\n }, {\n key: \"resize\",\n value: function resize(initial) {\n var inputEl = this.elementRef && this.elementRef.current;\n\n if (inputEl && DomHandler.isVisible(inputEl)) {\n if (!this.cachedScrollHeight) {\n this.cachedScrollHeight = inputEl.scrollHeight;\n inputEl.style.overflow = \"hidden\";\n }\n\n if (this.cachedScrollHeight !== inputEl.scrollHeight || initial) {\n inputEl.style.height = '';\n inputEl.style.height = inputEl.scrollHeight + 'px';\n\n if (parseFloat(inputEl.style.height) >= parseFloat(inputEl.style.maxHeight)) {\n inputEl.style.overflowY = \"scroll\";\n inputEl.style.height = inputEl.style.maxHeight;\n } else {\n inputEl.style.overflow = \"hidden\";\n }\n\n this.cachedScrollHeight = inputEl.scrollHeight;\n }\n }\n }\n }, {\n key: \"isFilled\",\n value: function isFilled() {\n return this.props.value != null && this.props.value.toString().length > 0 || this.props.defaultValue != null && this.props.defaultValue.toString().length > 0 || this.elementRef && this.elementRef.current && this.elementRef.current.value.toString().length > 0;\n }\n }, {\n key: \"updateForwardRef\",\n value: function updateForwardRef() {\n var ref = this.props.forwardRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.elementRef.current);\n } else {\n ref.current = this.elementRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateForwardRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n if (this.props.autoResize) {\n this.resize(true);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.props.autoResize) {\n this.resize(true);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.elementRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-inputtextarea p-inputtext p-component', {\n 'p-disabled': this.props.disabled,\n 'p-filled': this.isFilled(),\n 'p-inputtextarea-resizable': this.props.autoResize\n }, this.props.className);\n var textareaProps = ObjectUtils.findDiffKeys(this.props, InputTextareaComponent.defaultProps);\n return /*#__PURE__*/React.createElement(\"textarea\", _extends({\n ref: this.elementRef\n }, textareaProps, {\n className: className,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyUp: this.onKeyUp,\n onInput: this.onInput\n }));\n }\n }]);\n\n return InputTextareaComponent;\n}(Component);\n\n_defineProperty(InputTextareaComponent, \"defaultProps\", {\n autoResize: false,\n tooltip: null,\n tooltipOptions: null,\n onInput: null,\n forwardRef: null\n});\n\nvar InputTextarea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(InputTextareaComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nexport { InputTextarea };\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Tag = /*#__PURE__*/function (_Component) {\n _inherits(Tag, _Component);\n\n var _super = _createSuper(Tag);\n\n function Tag() {\n _classCallCheck(this, Tag);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Tag, [{\n key: \"render\",\n value: function render() {\n var tagClassName = classNames('p-tag p-component', {\n 'p-tag-info': this.props.severity === 'info',\n 'p-tag-success': this.props.severity === 'success',\n 'p-tag-warning': this.props.severity === 'warning',\n 'p-tag-danger': this.props.severity === 'danger',\n 'p-tag-rounded': this.props.rounded\n }, this.props.className);\n var iconClass = classNames('p-tag-icon', this.props.icon);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: tagClassName,\n style: this.props.style\n }, this.props.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClass\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-tag-value\"\n }, this.props.value), /*#__PURE__*/React.createElement(\"span\", null, this.props.children));\n }\n }]);\n\n return Tag;\n}(Component);\n\n_defineProperty(Tag, \"defaultProps\", {\n value: null,\n severity: null,\n rounded: false,\n icon: null,\n style: null,\n className: null\n});\n\nexport { Tag };\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Badge = /*#__PURE__*/function (_Component) {\n _inherits(Badge, _Component);\n\n var _super = _createSuper(Badge);\n\n function Badge() {\n _classCallCheck(this, Badge);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Badge, [{\n key: \"render\",\n value: function render() {\n var badgeClassName = classNames('p-badge p-component', {\n 'p-badge-no-gutter': this.props.value && String(this.props.value).length === 1,\n 'p-badge-dot': !this.props.value,\n 'p-badge-lg': this.props.size === 'large',\n 'p-badge-xl': this.props.size === 'xlarge',\n 'p-badge-info': this.props.severity === 'info',\n 'p-badge-success': this.props.severity === 'success',\n 'p-badge-warning': this.props.severity === 'warning',\n 'p-badge-danger': this.props.severity === 'danger'\n }, this.props.className);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: badgeClassName,\n style: this.props.style\n }, this.props.value);\n }\n }]);\n\n return Badge;\n}(Component);\n\n_defineProperty(Badge, \"defaultProps\", {\n value: null,\n severity: null,\n size: null,\n style: null,\n className: null\n});\n\nexport { Badge };\n","import React, { Component } from 'react';\nimport { UniqueComponentId, classNames, ObjectUtils, CSSTransition } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar AccordionTab = /*#__PURE__*/function (_Component) {\n _inherits(AccordionTab, _Component);\n\n var _super = _createSuper(AccordionTab);\n\n function AccordionTab() {\n _classCallCheck(this, AccordionTab);\n\n return _super.apply(this, arguments);\n }\n\n return AccordionTab;\n}(Component);\n\n_defineProperty(AccordionTab, \"defaultProps\", {\n header: null,\n disabled: false,\n headerStyle: null,\n headerClassName: null,\n headerTemplate: null,\n contentStyle: null,\n contentClassName: null\n});\n\nvar Accordion = /*#__PURE__*/function (_Component2) {\n _inherits(Accordion, _Component2);\n\n var _super2 = _createSuper(Accordion);\n\n function Accordion(props) {\n var _this;\n\n _classCallCheck(this, Accordion);\n\n _this = _super2.call(this, props);\n var state = {\n id: _this.props.id\n };\n\n if (!_this.props.onTabChange) {\n state = _objectSpread(_objectSpread({}, state), {}, {\n activeIndex: props.activeIndex\n });\n }\n\n _this.state = state;\n _this.contentWrappers = [];\n return _this;\n }\n\n _createClass(Accordion, [{\n key: \"onTabHeaderClick\",\n value: function onTabHeaderClick(event, tab, index) {\n if (!tab.props.disabled) {\n var selected = this.isSelected(index);\n var newActiveIndex = null;\n\n if (this.props.multiple) {\n var indexes = (this.props.onTabChange ? this.props.activeIndex : this.state.activeIndex) || [];\n if (selected) indexes = indexes.filter(function (i) {\n return i !== index;\n });else indexes = [].concat(_toConsumableArray(indexes), [index]);\n newActiveIndex = indexes;\n } else {\n newActiveIndex = selected ? null : index;\n }\n\n var callback = selected ? this.props.onTabClose : this.props.onTabOpen;\n\n if (callback) {\n callback({\n originalEvent: event,\n index: index\n });\n }\n\n if (this.props.onTabChange) {\n this.props.onTabChange({\n originalEvent: event,\n index: newActiveIndex\n });\n } else {\n this.setState({\n activeIndex: newActiveIndex\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(index) {\n var activeIndex = this.props.onTabChange ? this.props.activeIndex : this.state.activeIndex;\n return this.props.multiple ? activeIndex && activeIndex.indexOf(index) >= 0 : activeIndex === index;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n }\n }, {\n key: \"renderTabHeader\",\n value: function renderTabHeader(tab, selected, index) {\n var _classNames,\n _this2 = this;\n\n var tabHeaderClass = classNames('p-accordion-header', {\n 'p-highlight': selected,\n 'p-disabled': tab.props.disabled\n }, tab.props.headerClassName);\n var iconClassName = classNames('p-accordion-toggle-icon', (_classNames = {}, _defineProperty(_classNames, \"\".concat(this.props.expandIcon), !selected), _defineProperty(_classNames, \"\".concat(this.props.collapseIcon), selected), _classNames));\n var id = this.state.id + '_header_' + index;\n var ariaControls = this.state.id + '_content_' + index;\n var tabIndex = tab.props.disabled ? -1 : null;\n var header = tab.props.headerTemplate ? ObjectUtils.getJSXElement(tab.props.headerTemplate, tab.props) : /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-accordion-header-text\"\n }, tab.props.header);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: tabHeaderClass,\n style: tab.props.headerStyle\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: '#' + ariaControls,\n id: id,\n className: \"p-accordion-header-link\",\n \"aria-controls\": ariaControls,\n role: \"tab\",\n \"aria-expanded\": selected,\n onClick: function onClick(event) {\n return _this2.onTabHeaderClick(event, tab, index);\n },\n tabIndex: tabIndex\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), header));\n }\n }, {\n key: \"renderTabContent\",\n value: function renderTabContent(tab, selected, index) {\n var className = classNames('p-toggleable-content', tab.props.contentClassName);\n var id = this.state.id + '_content_' + index;\n var toggleableContentRef = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: toggleableContentRef,\n classNames: \"p-toggleable-content\",\n timeout: {\n enter: 1000,\n exit: 450\n },\n in: selected,\n unmountOnExit: true,\n options: this.props.transitionOptions\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: toggleableContentRef,\n id: id,\n className: className,\n style: tab.props.contentStyle,\n role: \"region\",\n \"aria-labelledby\": this.state.id + '_header_' + index\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-accordion-content\"\n }, tab.props.children)));\n }\n }, {\n key: \"renderTab\",\n value: function renderTab(tab, index) {\n var selected = this.isSelected(index);\n var tabHeader = this.renderTabHeader(tab, selected, index);\n var tabContent = this.renderTabContent(tab, selected, index);\n var tabClassName = classNames('p-accordion-tab', {\n 'p-accordion-tab-active': selected\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n key: tab.props.header,\n className: tabClassName\n }, tabHeader, tabContent);\n }\n }, {\n key: \"renderTabs\",\n value: function renderTabs() {\n var _this3 = this;\n\n return React.Children.map(this.props.children, function (tab, index) {\n if (tab && tab.type === AccordionTab) {\n return _this3.renderTab(tab, index);\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var className = classNames('p-accordion p-component', this.props.className);\n var tabs = this.renderTabs();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this4.container = el;\n },\n id: this.state.id,\n className: className,\n style: this.props.style\n }, tabs);\n }\n }]);\n\n return Accordion;\n}(Component);\n\n_defineProperty(Accordion, \"defaultProps\", {\n id: null,\n activeIndex: null,\n className: null,\n style: null,\n multiple: false,\n expandIcon: 'pi pi-chevron-right',\n collapseIcon: 'pi pi-chevron-down',\n transitionOptions: null,\n onTabOpen: null,\n onTabClose: null,\n onTabChange: null\n});\n\nexport { Accordion, AccordionTab };\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","import React, { Component } from 'react';\nimport { DomHandler, Ripple, ObjectUtils, classNames, ZIndexUtils, CSSTransition } from 'primereact/core';\nimport { TransitionGroup } from 'react-transition-group';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar ToastMessageComponent = /*#__PURE__*/function (_Component) {\n _inherits(ToastMessageComponent, _Component);\n\n var _super = _createSuper$1(ToastMessageComponent);\n\n function ToastMessageComponent(props) {\n var _this;\n\n _classCallCheck(this, ToastMessageComponent);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onClose = _this.onClose.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ToastMessageComponent, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!this.props.message.sticky) {\n this.timeout = setTimeout(function () {\n _this2.onClose(null);\n }, this.props.message.life || 3000);\n }\n }\n }, {\n key: \"onClose\",\n value: function onClose() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n if (this.props.onClose) {\n this.props.onClose(this.props.message);\n }\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick && !(DomHandler.hasClass(event.target, 'p-toast-icon-close') || DomHandler.hasClass(event.target, 'p-toast-icon-close-icon'))) {\n this.props.onClick(this.props.message);\n }\n }\n }, {\n key: \"renderCloseIcon\",\n value: function renderCloseIcon() {\n if (this.props.message.closable !== false) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-toast-icon-close p-link\",\n onClick: this.onClose\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-toast-icon-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderMessage\",\n value: function renderMessage() {\n if (this.props.message) {\n var _this$props$message = this.props.message,\n severity = _this$props$message.severity,\n content = _this$props$message.content,\n summary = _this$props$message.summary,\n detail = _this$props$message.detail;\n var contentEl = ObjectUtils.getJSXElement(content, _objectSpread(_objectSpread({}, this.props), {}, {\n onClose: this.onClose\n }));\n var iconClassName = classNames('p-toast-message-icon pi', {\n 'pi-info-circle': severity === 'info',\n 'pi-exclamation-triangle': severity === 'warn',\n 'pi-times': severity === 'error',\n 'pi-check': severity === 'success'\n });\n return contentEl || /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-toast-message-text\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-toast-summary\"\n }, summary), detail && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-toast-detail\"\n }, detail)));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var severity = this.props.message.severity;\n var contentClassName = this.props.message.contentClassName;\n var contentStyle = this.props.message.contentStyle;\n var style = this.props.message.style;\n var className = classNames('p-toast-message', {\n 'p-toast-message-info': severity === 'info',\n 'p-toast-message-warn': severity === 'warn',\n 'p-toast-message-error': severity === 'error',\n 'p-toast-message-success': severity === 'success'\n }, this.props.message.className);\n var message = this.renderMessage();\n var closeIcon = this.renderCloseIcon();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n style: style,\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames('p-toast-message-content', contentClassName),\n style: contentStyle\n }, message, closeIcon));\n }\n }]);\n\n return ToastMessageComponent;\n}(Component);\n\n_defineProperty(ToastMessageComponent, \"defaultProps\", {\n message: null,\n onClose: null,\n onClick: null\n});\n\nvar ToastMessage = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ToastMessageComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar messageIdx = 0;\nvar Toast = /*#__PURE__*/function (_Component) {\n _inherits(Toast, _Component);\n\n var _super = _createSuper(Toast);\n\n function Toast(props) {\n var _this;\n\n _classCallCheck(this, Toast);\n\n _this = _super.call(this, props);\n _this.state = {\n messages: []\n };\n _this.onClose = _this.onClose.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Toast, [{\n key: \"show\",\n value: function show(value) {\n if (value) {\n var newMessages;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i].id = messageIdx++;\n newMessages = [].concat(_toConsumableArray(this.state.messages), _toConsumableArray(value));\n }\n } else {\n value.id = messageIdx++;\n newMessages = this.state.messages ? [].concat(_toConsumableArray(this.state.messages), [value]) : [value];\n }\n\n this.state.messages.length === 0 && ZIndexUtils.set('toast', this.container, this.props.baseZIndex);\n this.setState({\n messages: newMessages\n });\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n ZIndexUtils.clear(this.container);\n this.setState({\n messages: []\n });\n }\n }, {\n key: \"onClose\",\n value: function onClose(message) {\n var newMessages = this.state.messages.filter(function (msg) {\n return msg.id !== message.id;\n });\n this.setState({\n messages: newMessages\n });\n\n if (this.props.onRemove) {\n this.props.onRemove(message);\n }\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n this.state.messages.length === 0 && ZIndexUtils.clear(this.container);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n ZIndexUtils.clear(this.container);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-toast p-component p-toast-' + this.props.position, this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n _this2.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(TransitionGroup, null, this.state.messages.map(function (message) {\n var messageRef = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: messageRef,\n key: message.id,\n classNames: \"p-toast-message\",\n unmountOnExit: true,\n timeout: {\n enter: 300,\n exit: 300\n },\n onEntered: _this2.onEntered,\n onExited: _this2.onExited,\n options: _this2.props.transitionOptions\n }, /*#__PURE__*/React.createElement(ToastMessage, {\n ref: messageRef,\n message: message,\n onClick: _this2.props.onClick,\n onClose: _this2.onClose\n }));\n })));\n }\n }]);\n\n return Toast;\n}(Component);\n\n_defineProperty(Toast, \"defaultProps\", {\n id: null,\n className: null,\n style: null,\n baseZIndex: 0,\n position: 'top-right',\n transitionOptions: null,\n onClick: null,\n onRemove: null,\n onShow: null,\n onHide: null\n});\n\nexport { Toast };\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import React, { Component } from 'react';\nimport { DomHandler, UniqueComponentId, classNames, ObjectUtils, Ripple } from 'primereact/core';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TabPanel = /*#__PURE__*/function (_Component) {\n _inherits(TabPanel, _Component);\n\n var _super = _createSuper(TabPanel);\n\n function TabPanel() {\n _classCallCheck(this, TabPanel);\n\n return _super.apply(this, arguments);\n }\n\n return TabPanel;\n}(Component);\n\n_defineProperty(TabPanel, \"defaultProps\", {\n header: null,\n headerTemplate: null,\n leftIcon: null,\n rightIcon: null,\n disabled: false,\n headerStyle: null,\n headerClassName: null,\n contentStyle: null,\n contentClassName: null\n});\n\nvar TabView = /*#__PURE__*/function (_Component2) {\n _inherits(TabView, _Component2);\n\n var _super2 = _createSuper(TabView);\n\n function TabView(props) {\n var _this;\n\n _classCallCheck(this, TabView);\n\n _this = _super2.call(this, props);\n var state = {\n id: props.id,\n backwardIsDisabled: true,\n forwardIsDisabled: false\n };\n\n if (!_this.props.onTabChange) {\n state = _objectSpread(_objectSpread({}, state), {}, {\n activeIndex: props.activeIndex\n });\n }\n\n _this.state = state;\n _this.navBackward = _this.navBackward.bind(_assertThisInitialized(_this));\n _this.navForward = _this.navForward.bind(_assertThisInitialized(_this));\n _this.onScroll = _this.onScroll.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TabView, [{\n key: \"getActiveIndex\",\n value: function getActiveIndex() {\n return this.props.onTabChange ? this.props.activeIndex : this.state.activeIndex;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(index) {\n return index === this.getActiveIndex();\n }\n }, {\n key: \"onTabHeaderClick\",\n value: function onTabHeaderClick(event, tab, index) {\n if (!tab.props.disabled) {\n if (this.props.onTabChange) {\n this.props.onTabChange({\n originalEvent: event,\n index: index\n });\n } else {\n this.setState({\n activeIndex: index\n });\n }\n }\n\n this.updateScrollBar(index);\n event.preventDefault();\n }\n }, {\n key: \"updateInkBar\",\n value: function updateInkBar() {\n var activeIndex = this.getActiveIndex();\n var tabHeader = this[\"tab_\".concat(activeIndex)];\n this.inkbar.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.nav).left + 'px';\n }\n }, {\n key: \"updateScrollBar\",\n value: function updateScrollBar(index) {\n var tabHeader = this[\"tab_\".concat(index)];\n tabHeader.scrollIntoView({\n block: 'nearest'\n });\n }\n }, {\n key: \"updateButtonState\",\n value: function updateButtonState() {\n var content = this.content;\n var scrollLeft = content.scrollLeft,\n scrollWidth = content.scrollWidth;\n var width = DomHandler.getWidth(content);\n this.setState({\n backwardIsDisabled: scrollLeft === 0\n });\n this.setState({\n forwardIsDisabled: scrollLeft === scrollWidth - width\n });\n }\n }, {\n key: \"onScroll\",\n value: function onScroll(event) {\n this.props.scrollable && this.updateButtonState();\n event.preventDefault();\n }\n }, {\n key: \"getVisibleButtonWidths\",\n value: function getVisibleButtonWidths() {\n var prevBtn = this.prevBtn;\n var nextBtn = this.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + DomHandler.getWidth(el) : acc;\n }, 0);\n }\n }, {\n key: \"navBackward\",\n value: function navBackward() {\n var content = this.content;\n var width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n }, {\n key: \"navForward\",\n value: function navForward() {\n var content = this.content;\n var width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n\n this.updateInkBar();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.updateInkBar();\n\n if (prevProps.activeIndex !== this.props.activeIndex) {\n this.updateScrollBar(this.props.activeIndex);\n }\n }\n }, {\n key: \"renderTabHeader\",\n value: function renderTabHeader(tab, index) {\n var _this2 = this;\n\n var selected = this.isSelected(index);\n var className = classNames('p-unselectable-text', {\n 'p-tabview-selected p-highlight': selected,\n 'p-disabled': tab.props.disabled\n }, tab.props.headerClassName);\n var id = this.state.id + '_header_' + index;\n var ariaControls = this.state.id + '_content_' + index;\n var tabIndex = tab.props.disabled ? null : 0;\n var leftIconElement = tab.props.leftIcon && /*#__PURE__*/React.createElement(\"i\", {\n className: tab.props.leftIcon\n });\n var titleElement = /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-tabview-title\"\n }, tab.props.header);\n var rightIconElement = tab.props.rightIcon && /*#__PURE__*/React.createElement(\"i\", {\n className: tab.props.rightIcon\n });\n var content =\n /*#__PURE__*/\n\n /* eslint-disable */\n React.createElement(\"a\", {\n role: \"tab\",\n className: \"p-tabview-nav-link\",\n onClick: function onClick(event) {\n return _this2.onTabHeaderClick(event, tab, index);\n },\n id: id,\n \"aria-controls\": ariaControls,\n \"aria-selected\": selected,\n tabIndex: tabIndex\n }, leftIconElement, titleElement, rightIconElement, /*#__PURE__*/React.createElement(Ripple, null))\n /* eslint-enable */\n ;\n\n if (tab.props.headerTemplate) {\n var defaultContentOptions = {\n className: 'p-tabview-nav-link',\n titleClassName: 'p-tabview-title',\n onClick: function onClick(event) {\n return _this2.onTabHeaderClick(event, tab, index);\n },\n leftIconElement: leftIconElement,\n titleElement: titleElement,\n rightIconElement: rightIconElement,\n element: content,\n props: this.props,\n index: index,\n selected: selected,\n ariaControls: ariaControls\n };\n content = ObjectUtils.getJSXElement(tab.props.headerTemplate, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n ref: function ref(el) {\n return _this2[\"tab_\".concat(index)] = el;\n },\n className: className,\n style: tab.props.headerStyle,\n role: \"presentation\"\n }, content);\n }\n }, {\n key: \"renderTabHeaders\",\n value: function renderTabHeaders() {\n var _this3 = this;\n\n return React.Children.map(this.props.children, function (tab, index) {\n return _this3.renderTabHeader(tab, index);\n });\n }\n }, {\n key: \"renderNavigator\",\n value: function renderNavigator() {\n var _this4 = this;\n\n var headers = this.renderTabHeaders();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this4.content = el;\n },\n id: this.props.id,\n className: \"p-tabview-nav-content\",\n style: this.props.style,\n onScroll: this.onScroll\n }, /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n return _this4.nav = el;\n },\n className: \"p-tabview-nav\",\n role: \"tablist\"\n }, headers, /*#__PURE__*/React.createElement(\"li\", {\n ref: function ref(el) {\n return _this4.inkbar = el;\n },\n className: \"p-tabview-ink-bar\"\n })));\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this5 = this;\n\n var contents = React.Children.map(this.props.children, function (tab, index) {\n if (!_this5.props.renderActiveOnly || _this5.isSelected(index)) {\n return _this5.createContent(tab, index);\n }\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tabview-panels\"\n }, contents);\n }\n }, {\n key: \"createContent\",\n value: function createContent(tab, index) {\n var selected = this.isSelected(index);\n var className = classNames(tab.props.contentClassName, 'p-tabview-panel', {\n 'p-hidden': !selected\n });\n var id = this.state.id + '_content_' + index;\n var ariaLabelledBy = this.state.id + '_header_' + index;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-hidden\": !selected,\n className: className,\n style: tab.props.contentStyle,\n role: \"tabpanel\"\n }, !this.props.renderActiveOnly ? tab.props.children : selected && tab.props.children);\n }\n }, {\n key: \"renderPrevButton\",\n value: function renderPrevButton() {\n var _this6 = this;\n\n if (this.props.scrollable && !this.state.backwardIsDisabled) {\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: function ref(el) {\n return _this6.prevBtn = el;\n },\n className: \"p-tabview-nav-prev p-tabview-nav-btn p-link\",\n onClick: this.navBackward,\n type: \"button\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-left\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderNextButton\",\n value: function renderNextButton() {\n var _this7 = this;\n\n if (this.props.scrollable && !this.state.forwardIsDisabled) {\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: function ref(el) {\n return _this7.nextBtn = el;\n },\n className: \"p-tabview-nav-next p-tabview-nav-btn p-link\",\n onClick: this.navForward,\n type: \"button\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-right\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-tabview p-component', this.props.className, {\n 'p-tabview-scrollable': this.props.scrollable\n });\n var navigator = this.renderNavigator();\n var content = this.renderContent();\n var prevButton = this.renderPrevButton();\n var nextButton = this.renderNextButton();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tabview-nav-container\"\n }, prevButton, navigator, nextButton), content);\n }\n }]);\n\n return TabView;\n}(Component);\n\n_defineProperty(TabView, \"defaultProps\", {\n id: null,\n activeIndex: 0,\n style: null,\n className: null,\n renderActiveOnly: true,\n onTabChange: null,\n scrollable: false\n});\n\nexport { TabPanel, TabView };\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","import React, { createRef, Component } from 'react';\nimport { InputText } from 'primereact/inputtext';\nimport { tip, classNames, Ripple } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar InputNumber = /*#__PURE__*/function (_Component) {\n _inherits(InputNumber, _Component);\n\n var _super = _createSuper(InputNumber);\n\n function InputNumber(props) {\n var _this;\n\n _classCallCheck(this, InputNumber);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n\n _this.constructParser();\n\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onInputKeyPress = _this.onInputKeyPress.bind(_assertThisInitialized(_this));\n _this.onInputClick = _this.onInputClick.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onPaste = _this.onPaste.bind(_assertThisInitialized(_this));\n _this.onUpButtonMouseLeave = _this.onUpButtonMouseLeave.bind(_assertThisInitialized(_this));\n _this.onUpButtonMouseDown = _this.onUpButtonMouseDown.bind(_assertThisInitialized(_this));\n _this.onUpButtonMouseUp = _this.onUpButtonMouseUp.bind(_assertThisInitialized(_this));\n _this.onUpButtonKeyDown = _this.onUpButtonKeyDown.bind(_assertThisInitialized(_this));\n _this.onUpButtonKeyUp = _this.onUpButtonKeyUp.bind(_assertThisInitialized(_this));\n _this.onDownButtonMouseLeave = _this.onDownButtonMouseLeave.bind(_assertThisInitialized(_this));\n _this.onDownButtonMouseDown = _this.onDownButtonMouseDown.bind(_assertThisInitialized(_this));\n _this.onDownButtonMouseUp = _this.onDownButtonMouseUp.bind(_assertThisInitialized(_this));\n _this.onDownButtonKeyDown = _this.onDownButtonKeyDown.bind(_assertThisInitialized(_this));\n _this.onDownButtonKeyUp = _this.onDownButtonKeyUp.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(InputNumber, [{\n key: \"getOptions\",\n value: function getOptions() {\n return {\n localeMatcher: this.props.localeMatcher,\n style: this.props.mode,\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay,\n useGrouping: this.props.useGrouping,\n minimumFractionDigits: this.props.minFractionDigits,\n maximumFractionDigits: this.props.maxFractionDigits\n };\n }\n }, {\n key: \"constructParser\",\n value: function constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.props.locale, this.getOptions());\n\n var numerals = _toConsumableArray(new Intl.NumberFormat(this.props.locale, {\n useGrouping: false\n }).format(9876543210)).reverse();\n\n var index = new Map(numerals.map(function (d, i) {\n return [d, i];\n }));\n this._numeral = new RegExp(\"[\".concat(numerals.join(''), \"]\"), 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n\n this._index = function (d) {\n return index.get(d);\n };\n }\n }, {\n key: \"escapeRegExp\",\n value: function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n }, {\n key: \"getDecimalExpression\",\n value: function getDecimalExpression() {\n var formatter = new Intl.NumberFormat(this.props.locale, _objectSpread(_objectSpread({}, this.getOptions()), {}, {\n useGrouping: false\n }));\n return new RegExp(\"[\".concat(formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, ''), \"]\"), 'g');\n }\n }, {\n key: \"getGroupingExpression\",\n value: function getGroupingExpression() {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n useGrouping: true\n });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(\"[\".concat(this.groupChar, \"]\"), 'g');\n }\n }, {\n key: \"getMinusSignExpression\",\n value: function getMinusSignExpression() {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n useGrouping: false\n });\n return new RegExp(\"[\".concat(formatter.format(-1).trim().replace(this._numeral, ''), \"]\"), 'g');\n }\n }, {\n key: \"getCurrencyExpression\",\n value: function getCurrencyExpression() {\n if (this.props.currency) {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n style: 'currency',\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n return new RegExp(\"[\".concat(formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, ''), \"]\"), 'g');\n }\n\n return new RegExp(\"[]\", 'g');\n }\n }, {\n key: \"getPrefixExpression\",\n value: function getPrefixExpression() {\n if (this.props.prefix) {\n this.prefixChar = this.props.prefix;\n } else {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n style: this.props.mode,\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n\n return new RegExp(\"\".concat(this.escapeRegExp(this.prefixChar || '')), 'g');\n }\n }, {\n key: \"getSuffixExpression\",\n value: function getSuffixExpression() {\n if (this.props.suffix) {\n this.suffixChar = this.props.suffix;\n } else {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n style: this.props.mode,\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n\n return new RegExp(\"\".concat(this.escapeRegExp(this.suffixChar || '')), 'g');\n }\n }, {\n key: \"formatValue\",\n value: function formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n\n if (this.props.format) {\n var formatter = new Intl.NumberFormat(this.props.locale, this.getOptions());\n var formattedValue = formatter.format(value);\n\n if (this.props.prefix) {\n formattedValue = this.props.prefix + formattedValue;\n }\n\n if (this.props.suffix) {\n formattedValue = formattedValue + this.props.suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n }\n }, {\n key: \"parseValue\",\n value: function parseValue(text) {\n var filteredText = text.replace(this._suffix, '').replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '').replace(this._group, '').replace(this._minusSign, '-').replace(this._decimal, '.').replace(this._numeral, this._index);\n\n if (filteredText) {\n if (filteredText === '-') // Minus sign\n return filteredText;\n var parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(event, interval, dir) {\n var _this2 = this;\n\n var i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this2.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n }\n }, {\n key: \"spin\",\n value: function spin(event, dir) {\n if (this.inputRef && this.inputRef.current) {\n var step = this.props.step * dir;\n var currentValue = this.parseValue(this.inputRef.current.value) || 0;\n var newValue = this.validateValue(currentValue + step);\n this.updateInput(newValue, null, 'spin');\n this.updateModel(event, newValue);\n this.handleOnChange(event, currentValue, newValue);\n }\n }\n }, {\n key: \"onUpButtonMouseDown\",\n value: function onUpButtonMouseDown(event) {\n if (!this.props.disabled) {\n this.inputRef.current.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n }\n }, {\n key: \"onUpButtonMouseUp\",\n value: function onUpButtonMouseUp() {\n if (!this.props.disabled) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onUpButtonMouseLeave\",\n value: function onUpButtonMouseLeave() {\n if (!this.props.disabled) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onUpButtonKeyUp\",\n value: function onUpButtonKeyUp() {\n if (!this.props.disabled) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onUpButtonKeyDown\",\n value: function onUpButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, 1);\n }\n }\n }, {\n key: \"onDownButtonMouseDown\",\n value: function onDownButtonMouseDown(event) {\n if (!this.props.disabled) {\n this.inputRef.current.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n }\n }, {\n key: \"onDownButtonMouseUp\",\n value: function onDownButtonMouseUp() {\n if (!this.props.disabled) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onDownButtonMouseLeave\",\n value: function onDownButtonMouseLeave() {\n if (!this.props.disabled) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onDownButtonKeyUp\",\n value: function onDownButtonKeyUp() {\n if (!this.props.disabled) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onDownButtonKeyDown\",\n value: function onDownButtonKeyDown(event) {\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.repeat(event, null, -1);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event) {\n if (this.isSpecialChar) {\n event.target.value = this.lastValue;\n }\n\n this.isSpecialChar = false;\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n this.lastValue = event.target.value;\n\n if (event.shiftKey || event.altKey) {\n this.isSpecialChar = true;\n return;\n }\n\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n var inputValue = event.target.value;\n var newValueStr = null;\n\n if (event.altKey) {\n event.preventDefault();\n }\n\n switch (event.which) {\n //up\n case 38:\n this.spin(event, 1);\n event.preventDefault();\n break;\n //down\n\n case 40:\n this.spin(event, -1);\n event.preventDefault();\n break;\n //left\n\n case 37:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n\n break;\n //right\n\n case 39:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n\n break;\n //enter\n\n case 13:\n newValueStr = this.validateValue(this.parseValue(inputValue));\n this.inputRef.current.value = this.formatValue(newValueStr);\n this.inputRef.current.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n //backspace\n\n case 8:\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n var deleteChar = inputValue.charAt(selectionStart - 1);\n\n var _this$getDecimalCharI = this.getDecimalCharIndexes(inputValue),\n decimalCharIndex = _this$getDecimalCharI.decimalCharIndex,\n decimalCharIndexWithoutPrefix = _this$getDecimalCharI.decimalCharIndexWithoutPrefix;\n\n if (this.isNumeralChar(deleteChar)) {\n var decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.inputRef.current.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n var insertedText = this.isDecimalMode() && (this.props.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n // del\n\n case 46:\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n var _deleteChar = inputValue.charAt(selectionStart);\n\n var _this$getDecimalCharI2 = this.getDecimalCharIndexes(inputValue),\n _decimalCharIndex = _this$getDecimalCharI2.decimalCharIndex,\n _decimalCharIndexWithoutPrefix = _this$getDecimalCharI2.decimalCharIndexWithoutPrefix;\n\n if (this.isNumeralChar(_deleteChar)) {\n var _decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(_deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(_deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (_decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (_decimalCharIndex > 0 && selectionStart > _decimalCharIndex) {\n var _insertedText = this.isDecimalMode() && (this.props.minFractionDigits || 0) < _decimalLength ? '' : '0';\n\n newValueStr = inputValue.slice(0, selectionStart) + _insertedText + inputValue.slice(selectionStart + 1);\n } else if (_decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n }\n }\n }, {\n key: \"onInputKeyPress\",\n value: function onInputKeyPress(event) {\n event.preventDefault();\n var code = event.which || event.keyCode;\n var char = String.fromCharCode(code);\n var isDecimalSign = this.isDecimalSign(char);\n var isMinusSign = this.isMinusSign(char);\n\n if (48 <= code && code <= 57 || isMinusSign || isDecimalSign) {\n this.insert(event, char, {\n isDecimalSign: isDecimalSign,\n isMinusSign: isMinusSign\n });\n }\n }\n }, {\n key: \"onPaste\",\n value: function onPaste(event) {\n event.preventDefault();\n var data = (event.clipboardData || window['clipboardData']).getData('Text');\n\n if (data) {\n var filteredData = this.parseValue(data);\n\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }, {\n key: \"allowMinusSign\",\n value: function allowMinusSign() {\n return this.props.min === null || this.props.min < 0;\n }\n }, {\n key: \"isMinusSign\",\n value: function isMinusSign(char) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"isDecimalSign\",\n value: function isDecimalSign(char) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"isDecimalMode\",\n value: function isDecimalMode() {\n return this.props.mode === 'decimal';\n }\n }, {\n key: \"getDecimalCharIndexes\",\n value: function getDecimalCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n var decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n decimalCharIndexWithoutPrefix: decimalCharIndexWithoutPrefix\n };\n }\n }, {\n key: \"getCharIndexes\",\n value: function getCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n var suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n var currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n minusCharIndex: minusCharIndex,\n suffixCharIndex: suffixCharIndex,\n currencyCharIndex: currencyCharIndex\n };\n }\n }, {\n key: \"insert\",\n value: function insert(event, text) {\n var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isDecimalSign: false,\n isMinusSign: false\n };\n var minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n\n var selectionStart = this.inputRef.current.selectionStart;\n var selectionEnd = this.inputRef.current.selectionEnd;\n var inputValue = this.inputRef.current.value.trim();\n\n var _this$getCharIndexes = this.getCharIndexes(inputValue),\n decimalCharIndex = _this$getCharIndexes.decimalCharIndex,\n minusCharIndex = _this$getCharIndexes.minusCharIndex,\n suffixCharIndex = _this$getCharIndexes.suffixCharIndex,\n currencyCharIndex = _this$getCharIndexes.currencyCharIndex;\n\n var newValueStr;\n\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.props.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n var maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n var charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n }, {\n key: \"insertText\",\n value: function insertText(value, text, start, end) {\n var textSplit = text === '.' ? text : text.split('.');\n\n if (textSplit.length === 2) {\n var decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : value || this.formatValue(text);\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n }, {\n key: \"deleteRange\",\n value: function deleteRange(value, start, end) {\n var newValueStr;\n if (end - start === value.length) newValueStr = '';else if (start === 0) newValueStr = value.slice(end);else if (end === value.length) newValueStr = value.slice(0, start);else newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n }\n }, {\n key: \"initCursor\",\n value: function initCursor() {\n var selectionStart = this.inputRef.current.selectionStart;\n var inputValue = this.inputRef.current.value;\n var valueLength = inputValue.length;\n var index = null; // remove prefix\n\n var prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n var char = inputValue.charAt(selectionStart);\n\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n } //left\n\n\n var i = selectionStart - 1;\n\n while (i >= 0) {\n char = inputValue.charAt(i);\n\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n\n if (index !== null) {\n this.inputRef.current.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n\n while (i < valueLength) {\n char = inputValue.charAt(i);\n\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n\n if (index !== null) {\n this.inputRef.current.setSelectionRange(index, index);\n }\n }\n\n return index || 0;\n }\n }, {\n key: \"onInputClick\",\n value: function onInputClick() {\n this.initCursor();\n }\n }, {\n key: \"isNumeralChar\",\n value: function isNumeralChar(char) {\n if (char.length === 1 && (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))) {\n this.resetRegex();\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"resetRegex\",\n value: function resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n }, {\n key: \"updateValue\",\n value: function updateValue(event, valueStr, insertedValueStr, operation) {\n var currentValue = this.inputRef.current.value;\n var newValue = null;\n\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.props.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnChange(event, currentValue, newValue);\n }\n }\n }, {\n key: \"handleOnChange\",\n value: function handleOnChange(event, currentValue, newValue) {\n if (this.props.onChange && this.isValueChanged(currentValue, newValue)) {\n this.props.onChange({\n originalEvent: event,\n value: newValue\n });\n }\n }\n }, {\n key: \"isValueChanged\",\n value: function isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n\n if (newValue != null) {\n var parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n\n return false;\n }\n }, {\n key: \"validateValue\",\n value: function validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n\n if (this.props.min !== null && value < this.props.min) {\n return this.props.min;\n }\n\n if (this.props.max !== null && value > this.props.max) {\n return this.props.max;\n }\n\n return value;\n }\n }, {\n key: \"updateInput\",\n value: function updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n var inputEl = this.inputRef.current;\n var inputValue = inputEl.value;\n var newValue = this.formatValue(value);\n var currentLength = inputValue.length;\n\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n\n if (currentLength === 0) {\n inputEl.value = newValue;\n inputEl.setSelectionRange(0, 0);\n var index = this.initCursor();\n var selectionEnd = index + insertedValueStr.length;\n inputEl.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n var selectionStart = inputEl.selectionStart;\n var _selectionEnd = inputEl.selectionEnd;\n inputEl.value = newValue;\n var newLength = newValue.length;\n\n if (operation === 'range-insert') {\n var startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n var startValueStr = startValue !== null ? startValue.toString() : '';\n var startExpr = startValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n var tExpr = insertedValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n _selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') inputEl.setSelectionRange(_selectionEnd + 1, _selectionEnd + 1);else if (operation === 'delete-single') inputEl.setSelectionRange(_selectionEnd - 1, _selectionEnd - 1);else if (operation === 'delete-range' || operation === 'spin') inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (operation === 'delete-back-single') {\n var prevChar = inputValue.charAt(_selectionEnd - 1);\n var nextChar = inputValue.charAt(_selectionEnd);\n var diff = currentLength - newLength;\n\n var isGroupChar = this._group.test(nextChar);\n\n if (isGroupChar && diff === 1) {\n _selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n _selectionEnd += -1 * diff + 1;\n }\n\n this._group.lastIndex = 0;\n inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n inputEl.setSelectionRange(0, 0);\n\n var _index = this.initCursor();\n\n var _selectionEnd2 = _index + insertedValueStr.length + 1;\n\n inputEl.setSelectionRange(_selectionEnd2, _selectionEnd2);\n } else {\n _selectionEnd = _selectionEnd + (newLength - currentLength);\n inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n }\n\n inputEl.setAttribute('aria-valuenow', value);\n }\n }, {\n key: \"updateInputValue\",\n value: function updateInputValue(newValue) {\n newValue = !newValue && !this.props.allowEmpty ? 0 : newValue;\n var inputEl = this.inputRef.current;\n var value = inputEl.value;\n var formattedValue = this.formattedValue(newValue);\n\n if (value !== formattedValue) {\n inputEl.value = formattedValue;\n inputEl.setAttribute('aria-valuenow', newValue);\n }\n }\n }, {\n key: \"formattedValue\",\n value: function formattedValue(val) {\n var newVal = !val && !this.props.allowEmpty ? 0 : val;\n return this.formatValue(newVal);\n }\n }, {\n key: \"concatValues\",\n value: function concatValues(val1, val2) {\n if (val1 && val2) {\n var decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n\n return val1;\n }\n }, {\n key: \"getDecimalLength\",\n value: function getDecimalLength(value) {\n if (value) {\n var valueSplit = value.split(this._decimal);\n\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '').trim().replace(/\\s/g, '').replace(this._currency, '').length;\n }\n }\n\n return 0;\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(event, value) {\n if (this.props.onValueChange) {\n this.props.onValueChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n if (_this3.props.onFocus) {\n _this3.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this4 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n var currentValue = _this4.inputRef.current.value;\n\n if (_this4.isValueChanged(currentValue, _this4.props.value)) {\n var newValue = _this4.validateValue(_this4.parseValue(currentValue));\n\n _this4.updateInputValue(newValue);\n\n _this4.updateModel(event, newValue);\n }\n\n if (_this4.props.onBlur) {\n _this4.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n }, {\n key: \"isStacked\",\n value: function isStacked() {\n return this.props.showButtons && this.props.buttonLayout === 'stacked';\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.props.showButtons && this.props.buttonLayout === 'horizontal';\n }\n }, {\n key: \"isVertical\",\n value: function isVertical() {\n return this.props.showButtons && this.props.buttonLayout === 'vertical';\n }\n }, {\n key: \"getInputMode\",\n value: function getInputMode() {\n return this.props.inputMode || (this.props.mode === 'decimal' && !this.props.minFractionDigits ? 'numeric' : 'decimal');\n }\n }, {\n key: \"getFormatter\",\n value: function getFormatter() {\n return this.numberFormat;\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n var newValue = this.validateValue(this.props.value);\n\n if (this.props.value !== null && this.props.value !== newValue) {\n this.updateModel(null, newValue);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n var isOptionChanged = this.isOptionChanged(prevProps);\n\n if (isOptionChanged) {\n this.constructParser();\n }\n\n if (prevProps.value !== this.props.value || isOptionChanged) {\n var newValue = this.validateValue(this.props.value);\n this.updateInputValue(newValue);\n\n if (this.props.value !== null && this.props.value !== newValue) {\n this.updateModel(null, newValue);\n }\n }\n }\n }, {\n key: \"isOptionChanged\",\n value: function isOptionChanged(prevProps) {\n var _this5 = this;\n\n var optionProps = ['locale', 'localeMatcher', 'mode', 'currency', 'currencyDisplay', 'useGrouping', 'minFractionDigits', 'maxFractionDigits', 'suffix', 'prefix'];\n return optionProps.some(function (option) {\n return prevProps[option] !== _this5.props[option];\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderInputElement\",\n value: function renderInputElement() {\n var className = classNames('p-inputnumber-input', this.props.inputClassName);\n var valueToRender = this.formattedValue(this.props.value);\n return /*#__PURE__*/React.createElement(InputText, {\n ref: this.inputRef,\n id: this.props.inputId,\n style: this.props.inputStyle,\n role: \"spinbutton\",\n className: className,\n defaultValue: valueToRender,\n type: this.props.type,\n size: this.props.size,\n tabIndex: this.props.tabIndex,\n inputMode: this.getInputMode(),\n maxLength: this.props.maxlength,\n disabled: this.props.disabled,\n required: this.props.required,\n pattern: this.props.pattern,\n placeholder: this.props.placeholder,\n readOnly: this.props.readOnly,\n name: this.props.name,\n autoFocus: this.props.autoFocus,\n onKeyDown: this.onInputKeyDown,\n onKeyPress: this.onInputKeyPress,\n onInput: this.onInput,\n onClick: this.onInputClick,\n onBlur: this.onInputBlur,\n onFocus: this.onInputFocus,\n onPaste: this.onPaste,\n min: this.props.min,\n max: this.props.max,\n \"aria-valuemin\": this.props.min,\n \"aria-valuemax\": this.props.max,\n \"aria-valuenow\": this.props.value,\n \"aria-labelledby\": this.props.ariaLabelledBy\n });\n }\n }, {\n key: \"renderUpButton\",\n value: function renderUpButton() {\n var className = classNames('p-inputnumber-button p-inputnumber-button-up p-button p-button-icon-only p-component', {\n 'p-disabled': this.props.disabled\n }, this.props.incrementButtonClassName);\n var icon = classNames('p-button-icon', this.props.incrementButtonIcon);\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onMouseLeave: this.onUpButtonMouseLeave,\n onMouseDown: this.onUpButtonMouseDown,\n onMouseUp: this.onUpButtonMouseUp,\n onKeyDown: this.onUpButtonKeyDown,\n onKeyUp: this.onUpButtonKeyUp,\n disabled: this.props.disabled,\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderDownButton\",\n value: function renderDownButton() {\n var className = classNames('p-inputnumber-button p-inputnumber-button-down p-button p-button-icon-only p-component', {\n 'p-disabled': this.props.disabled\n }, this.props.decrementButtonClassName);\n var icon = classNames('p-button-icon', this.props.decrementButtonIcon);\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onMouseLeave: this.onDownButtonMouseLeave,\n onMouseDown: this.onDownButtonMouseDown,\n onMouseUp: this.onDownButtonMouseUp,\n onKeyDown: this.onDownButtonKeyDown,\n onKeyUp: this.onDownButtonKeyUp,\n disabled: this.props.disabled,\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderButtonGroup\",\n value: function renderButtonGroup() {\n var upButton = this.props.showButtons && this.renderUpButton();\n var downButton = this.props.showButtons && this.renderDownButton();\n\n if (this.isStacked()) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-inputnumber-button-group\"\n }, upButton, downButton);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, upButton, downButton);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames('p-inputnumber p-component p-inputwrapper', this.props.className, {\n 'p-inputwrapper-filled': this.props.value != null && this.props.value.toString().length > 0,\n 'p-inputwrapper-focus': this.state.focused,\n 'p-inputnumber-buttons-stacked': this.isStacked(),\n 'p-inputnumber-buttons-horizontal': this.isHorizontal(),\n 'p-inputnumber-buttons-vertical': this.isVertical()\n });\n var inputElement = this.renderInputElement();\n var buttonGroup = this.renderButtonGroup();\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this6.element = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, inputElement, buttonGroup);\n }\n }]);\n\n return InputNumber;\n}(Component);\n\n_defineProperty(InputNumber, \"defaultProps\", {\n value: null,\n inputRef: null,\n format: true,\n showButtons: false,\n buttonLayout: 'stacked',\n incrementButtonClassName: null,\n decrementButtonClassName: null,\n incrementButtonIcon: 'pi pi-angle-up',\n decrementButtonIcon: 'pi pi-angle-down',\n locale: undefined,\n localeMatcher: undefined,\n mode: 'decimal',\n suffix: null,\n prefix: null,\n currency: undefined,\n currencyDisplay: undefined,\n useGrouping: true,\n minFractionDigits: undefined,\n maxFractionDigits: undefined,\n id: null,\n name: null,\n type: 'text',\n allowEmpty: true,\n step: 1,\n min: null,\n max: null,\n disabled: false,\n required: false,\n tabIndex: null,\n pattern: null,\n inputMode: null,\n placeholder: null,\n readOnly: false,\n size: null,\n style: null,\n className: null,\n inputId: null,\n autoFocus: false,\n inputStyle: null,\n inputClassName: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onValueChange: null,\n onChange: null,\n onBlur: null,\n onFocus: null,\n onKeyDown: null\n});\n\nexport { InputNumber };\n","import React, { Component, createRef } from 'react';\nimport { InputText } from 'primereact/inputtext';\nimport { Button } from 'primereact/button';\nimport { CSSTransition, Portal, mask, ZIndexUtils, tip, DomHandler, OverlayService, ConnectedOverlayScrollHandler, Ripple, ObjectUtils, classNames } from 'primereact/core';\nimport PrimeReact, { localeOption, localeOptions } from 'primereact/api';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar CalendarPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(CalendarPanelComponent, _Component);\n\n var _super = _createSuper$1(CalendarPanelComponent);\n\n function CalendarPanelComponent() {\n _classCallCheck(this, CalendarPanelComponent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CalendarPanelComponent, [{\n key: \"renderElement\",\n value: function renderElement() {\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.props.onEnter,\n onEntered: this.props.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: this.props.className,\n style: this.props.style,\n onClick: this.props.onClick\n }, this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return this.props.inline ? element : /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return CalendarPanelComponent;\n}(Component);\n\n_defineProperty(CalendarPanelComponent, \"defaultProps\", {\n appendTo: null,\n style: null,\n className: null\n});\n\nvar CalendarPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(CalendarPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Calendar = /*#__PURE__*/function (_Component) {\n _inherits(Calendar, _Component);\n\n var _super = _createSuper(Calendar);\n\n function Calendar(props) {\n var _this;\n\n _classCallCheck(this, Calendar);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false,\n overlayVisible: false\n };\n\n if (!_this.props.onViewDateChange) {\n var propValue = _this.props.value;\n\n if (Array.isArray(propValue)) {\n propValue = propValue[0];\n }\n\n var viewDate = _this.props.viewDate && _this.isValidDate(_this.props.viewDate) ? _this.props.viewDate : propValue && _this.isValidDate(propValue) ? propValue : new Date();\n\n _this.validateDate(viewDate);\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), {}, {\n viewDate: viewDate\n });\n }\n\n _this.navigation = null;\n _this.onUserInput = _this.onUserInput.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onButtonClick = _this.onButtonClick.bind(_assertThisInitialized(_this));\n _this.onPrevButtonClick = _this.onPrevButtonClick.bind(_assertThisInitialized(_this));\n _this.onNextButtonClick = _this.onNextButtonClick.bind(_assertThisInitialized(_this));\n _this.onMonthDropdownChange = _this.onMonthDropdownChange.bind(_assertThisInitialized(_this));\n _this.onYearDropdownChange = _this.onYearDropdownChange.bind(_assertThisInitialized(_this));\n _this.onTodayButtonClick = _this.onTodayButtonClick.bind(_assertThisInitialized(_this));\n _this.onClearButtonClick = _this.onClearButtonClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.incrementHour = _this.incrementHour.bind(_assertThisInitialized(_this));\n _this.decrementHour = _this.decrementHour.bind(_assertThisInitialized(_this));\n _this.incrementMinute = _this.incrementMinute.bind(_assertThisInitialized(_this));\n _this.decrementMinute = _this.decrementMinute.bind(_assertThisInitialized(_this));\n _this.incrementSecond = _this.incrementSecond.bind(_assertThisInitialized(_this));\n _this.decrementSecond = _this.decrementSecond.bind(_assertThisInitialized(_this));\n _this.toggleAmPm = _this.toggleAmPm.bind(_assertThisInitialized(_this));\n _this.onTimePickerElementMouseDown = _this.onTimePickerElementMouseDown.bind(_assertThisInitialized(_this));\n _this.onTimePickerElementMouseUp = _this.onTimePickerElementMouseUp.bind(_assertThisInitialized(_this));\n _this.onTimePickerElementMouseLeave = _this.onTimePickerElementMouseLeave.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.reFocusInputField = _this.reFocusInputField.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Calendar, [{\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n if (this.props.inline) {\n this.initFocusableCell();\n } else if (this.props.mask) {\n mask(this.inputRef.current, {\n mask: this.props.mask,\n readOnly: this.props.readOnlyInput || this.props.disabled,\n onChange: function onChange(e) {\n return _this2.updateValueOnInput(e.originalEvent, e.value);\n }\n });\n }\n\n if (this.props.value) {\n this.updateInputfield(this.props.value);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this3 = this;\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (!this.props.onViewDateChange && !this.viewStateChanged) {\n var propValue = this.props.value;\n\n if (Array.isArray(propValue)) {\n propValue = propValue[0];\n }\n\n var prevPropValue = prevProps.value;\n\n if (Array.isArray(prevPropValue)) {\n prevPropValue = prevPropValue[0];\n }\n\n if (!prevPropValue && propValue || propValue && propValue instanceof Date && propValue.getTime() !== prevPropValue.getTime()) {\n var viewDate = this.props.viewDate && this.isValidDate(this.props.viewDate) ? this.props.viewDate : propValue && this.isValidDate(propValue) ? propValue : new Date();\n this.validateDate(viewDate);\n this.setState({\n viewDate: viewDate\n }, function () {\n _this3.viewStateChanged = true;\n });\n }\n }\n\n if (this.overlayRef && this.overlayRef.current) {\n this.updateFocus();\n }\n\n if (prevProps.value !== this.props.value && (!this.viewStateChanged || !this.isVisible()) || this.isOptionChanged(prevProps)) {\n this.updateInputfield(this.props.value);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n }\n\n if (this.touchUIMask) {\n this.disableModality();\n this.touchUIMask = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.inputRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"isVisible\",\n value: function isVisible() {\n return this.props.onVisibleChange ? this.props.visible : this.state.overlayVisible;\n }\n }, {\n key: \"isOptionChanged\",\n value: function isOptionChanged(prevProps) {\n var _this4 = this;\n\n var optionProps = ['dateFormat', 'hourFormat', 'timeOnly', 'showSeconds', 'showMillisec'];\n return optionProps.some(function (option) {\n return prevProps[option] !== _this4.props[option];\n });\n }\n }, {\n key: \"getDateFormat\",\n value: function getDateFormat() {\n return this.props.dateFormat || localeOption('dateFormat', this.props.locale);\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this5 = this;\n\n if (this.ignoreFocusFunctionality) {\n this.setState({\n focused: true\n }, function () {\n _this5.ignoreFocusFunctionality = false;\n });\n } else {\n event.persist();\n\n if (this.props.showOnFocus && !this.isVisible()) {\n this.showOverlay();\n }\n\n this.setState({\n focused: true\n }, function () {\n if (_this5.props.onFocus) {\n _this5.props.onFocus(event);\n }\n });\n }\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this6 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this6.props.onBlur) {\n _this6.props.onBlur(event);\n }\n\n if (!_this6.props.keepInvalid) {\n _this6.updateInputfield(_this6.props.value);\n }\n });\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n this.isKeydown = true;\n\n switch (event.which) {\n //escape\n case 27:\n {\n this.hideOverlay();\n break;\n }\n //tab\n\n case 9:\n {\n if (this.isVisible()) {\n this.trapFocus(event);\n }\n\n if (this.props.touchUI) {\n this.disableModality();\n }\n\n break;\n }\n }\n }\n }, {\n key: \"onUserInput\",\n value: function onUserInput(event) {\n // IE 11 Workaround for input placeholder\n if (!this.isKeydown) {\n return;\n }\n\n this.isKeydown = false;\n this.updateValueOnInput(event, event.target.value);\n\n if (this.props.onInput) {\n this.props.onInput(event);\n }\n }\n }, {\n key: \"updateValueOnInput\",\n value: function updateValueOnInput(event, rawValue) {\n try {\n var value = this.parseValueFromString(rawValue);\n\n if (this.isValidSelection(value)) {\n this.updateModel(event, value);\n this.updateViewDate(event, value.length ? value[0] : value);\n }\n } catch (err) {\n //invalid date\n var _value = this.props.keepInvalid ? rawValue : null;\n\n this.updateModel(event, _value);\n }\n }\n }, {\n key: \"reFocusInputField\",\n value: function reFocusInputField() {\n if (!this.props.inline && this.inputRef.current) {\n this.ignoreFocusFunctionality = true;\n this.inputRef.current.focus();\n }\n }\n }, {\n key: \"isValidSelection\",\n value: function isValidSelection(value) {\n var _this7 = this;\n\n var isValid = true;\n\n if (this.isSingleSelection()) {\n if (!(this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false) && this.isSelectableTime(value))) {\n isValid = false;\n }\n } else if (value.every(function (v) {\n return _this7.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false) && _this7.isSelectableTime(value);\n })) {\n if (this.isRangeSelection()) {\n isValid = value.length > 1 && value[1] > value[0] ? true : false;\n }\n }\n\n return isValid;\n }\n }, {\n key: \"onButtonClick\",\n value: function onButtonClick() {\n if (this.isVisible()) {\n this.hideOverlay();\n } else {\n this.showOverlay();\n }\n }\n }, {\n key: \"onPrevButtonClick\",\n value: function onPrevButtonClick(event) {\n this.navigation = {\n backward: true,\n button: true\n };\n this.navBackward(event);\n }\n }, {\n key: \"onNextButtonClick\",\n value: function onNextButtonClick(event) {\n this.navigation = {\n backward: false,\n button: true\n };\n this.navForward(event);\n }\n }, {\n key: \"onContainerButtonKeydown\",\n value: function onContainerButtonKeydown(event) {\n switch (event.which) {\n //tab\n case 9:\n this.trapFocus(event);\n break;\n //escape\n\n case 27:\n this.hideOverlay(null, this.reFocusInputField);\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"trapFocus\",\n value: function trapFocus(event) {\n event.preventDefault();\n var focusableElements = DomHandler.getFocusableElements(this.overlayRef.current);\n\n if (focusableElements && focusableElements.length > 0) {\n if (!document.activeElement) {\n focusableElements[0].focus();\n } else {\n var focusedIndex = focusableElements.indexOf(document.activeElement);\n\n if (event.shiftKey) {\n if (focusedIndex === -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();else focusableElements[focusedIndex - 1].focus();\n } else {\n if (focusedIndex === -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();else focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n }, {\n key: \"updateFocus\",\n value: function updateFocus() {\n var cell;\n\n if (this.navigation) {\n if (this.navigation.button) {\n this.initFocusableCell();\n if (this.navigation.backward) DomHandler.findSingle(this.overlayRef.current, '.p-datepicker-prev').focus();else DomHandler.findSingle(this.overlayRef.current, '.p-datepicker-next').focus();\n } else {\n if (this.navigation.backward) {\n var cells = DomHandler.find(this.overlayRef.current, '.p-datepicker-calendar td span:not(.p-disabled)');\n cell = cells[cells.length - 1];\n } else {\n cell = DomHandler.findSingle(this.overlayRef.current, '.p-datepicker-calendar td span:not(.p-disabled)');\n }\n\n if (cell) {\n cell.tabIndex = '0';\n cell.focus();\n }\n }\n\n this.navigation = null;\n } else {\n this.initFocusableCell();\n }\n }\n }, {\n key: \"initFocusableCell\",\n value: function initFocusableCell() {\n var cell;\n\n if (this.view === 'month') {\n var cells = DomHandler.find(this.overlayRef.current, '.p-monthpicker .p-monthpicker-month');\n var selectedCell = DomHandler.findSingle(this.overlayRef.current, '.p-monthpicker .p-monthpicker-month.p-highlight');\n cells.forEach(function (cell) {\n return cell.tabIndex = -1;\n });\n cell = selectedCell || cells[0];\n } else {\n cell = DomHandler.findSingle(this.overlayRef.current, 'span.p-highlight');\n\n if (!cell) {\n var todayCell = DomHandler.findSingle(this.overlayRef.current, 'td.p-datepicker-today span:not(.p-disabled)');\n if (todayCell) cell = todayCell;else cell = DomHandler.findSingle(this.overlayRef.current, '.p-datepicker-calendar td span:not(.p-disabled)');\n }\n }\n\n if (cell) {\n cell.tabIndex = '0';\n }\n }\n }, {\n key: \"navBackward\",\n value: function navBackward(event) {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n\n var newViewDate = new Date(this.getViewDate().getTime());\n newViewDate.setDate(1);\n\n if (this.props.view === 'date') {\n if (newViewDate.getMonth() === 0) {\n newViewDate.setMonth(11);\n newViewDate.setFullYear(newViewDate.getFullYear() - 1);\n } else {\n newViewDate.setMonth(newViewDate.getMonth() - 1);\n }\n } else if (this.props.view === 'month') {\n var currentYear = newViewDate.getFullYear();\n var newYear = currentYear - 1;\n\n if (this.props.yearNavigator) {\n var minYear = parseInt(this.props.yearRange.split(':')[0], 10);\n\n if (newYear < minYear) {\n newYear = minYear;\n }\n }\n\n newViewDate.setFullYear(newYear);\n }\n\n this.updateViewDate(event, newViewDate);\n event.preventDefault();\n }\n }, {\n key: \"navForward\",\n value: function navForward(event) {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n\n var newViewDate = new Date(this.getViewDate().getTime());\n newViewDate.setDate(1);\n\n if (this.props.view === 'date') {\n if (newViewDate.getMonth() === 11) {\n newViewDate.setMonth(0);\n newViewDate.setFullYear(newViewDate.getFullYear() + 1);\n } else {\n newViewDate.setMonth(newViewDate.getMonth() + 1);\n }\n } else if (this.props.view === 'month') {\n var currentYear = newViewDate.getFullYear();\n var newYear = currentYear + 1;\n\n if (this.props.yearNavigator) {\n var maxYear = parseInt(this.props.yearRange.split(':')[1], 10);\n\n if (newYear > maxYear) {\n newYear = maxYear;\n }\n }\n\n newViewDate.setFullYear(newYear);\n }\n\n this.updateViewDate(event, newViewDate);\n event.preventDefault();\n }\n }, {\n key: \"onMonthDropdownChange\",\n value: function onMonthDropdownChange(event, value) {\n var currentViewDate = this.getViewDate();\n var newViewDate = new Date(currentViewDate.getTime());\n newViewDate.setMonth(parseInt(value, 10));\n this.updateViewDate(event, newViewDate);\n }\n }, {\n key: \"onYearDropdownChange\",\n value: function onYearDropdownChange(event, value) {\n var currentViewDate = this.getViewDate();\n var newViewDate = new Date(currentViewDate.getTime());\n newViewDate.setFullYear(parseInt(value, 10));\n this.updateViewDate(event, newViewDate);\n }\n }, {\n key: \"onTodayButtonClick\",\n value: function onTodayButtonClick(event) {\n var today = new Date();\n var dateMeta = {\n day: today.getDate(),\n month: today.getMonth(),\n year: today.getFullYear(),\n today: true,\n selectable: true\n };\n var timeMeta = {\n hours: today.getHours(),\n minutes: today.getMinutes(),\n seconds: today.getSeconds(),\n milliseconds: today.getMilliseconds()\n };\n this.updateViewDate(event, today);\n this.onDateSelect(event, dateMeta, timeMeta);\n\n if (this.props.onTodayButtonClick) {\n this.props.onTodayButtonClick(event);\n }\n }\n }, {\n key: \"onClearButtonClick\",\n value: function onClearButtonClick(event) {\n this.updateModel(event, null);\n this.updateInputfield(null);\n this.hideOverlay(null, this.reFocusInputField);\n\n if (this.props.onClearButtonClick) {\n this.props.onClearButtonClick(event);\n }\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n if (!this.props.inline) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }\n }, {\n key: \"onTimePickerElementMouseDown\",\n value: function onTimePickerElementMouseDown(event, type, direction) {\n if (!this.props.disabled) {\n this.repeat(event, null, type, direction);\n event.preventDefault();\n }\n }\n }, {\n key: \"onTimePickerElementMouseUp\",\n value: function onTimePickerElementMouseUp() {\n if (!this.props.disabled) {\n this.clearTimePickerTimer();\n }\n }\n }, {\n key: \"onTimePickerElementMouseLeave\",\n value: function onTimePickerElementMouseLeave() {\n if (!this.props.disabled) {\n this.clearTimePickerTimer();\n }\n }\n }, {\n key: \"repeat\",\n value: function repeat(event, interval, type, direction) {\n var _this8 = this;\n\n event.persist();\n var i = interval || 500;\n this.clearTimePickerTimer();\n this.timePickerTimer = setTimeout(function () {\n _this8.repeat(event, 100, type, direction);\n }, i);\n\n switch (type) {\n case 0:\n if (direction === 1) this.incrementHour(event);else this.decrementHour(event);\n break;\n\n case 1:\n if (direction === 1) this.incrementMinute(event);else this.decrementMinute(event);\n break;\n\n case 2:\n if (direction === 1) this.incrementSecond(event);else this.decrementSecond(event);\n break;\n\n case 3:\n if (direction === 1) this.incrementMilliSecond(event);else this.decrementMilliSecond(event);\n break;\n }\n }\n }, {\n key: \"clearTimePickerTimer\",\n value: function clearTimePickerTimer() {\n if (this.timePickerTimer) {\n clearTimeout(this.timePickerTimer);\n }\n }\n }, {\n key: \"incrementHour\",\n value: function incrementHour(event) {\n var currentTime = this.getCurrentDateTime();\n var currentHour = currentTime.getHours();\n var newHour = currentHour + this.props.stepHour;\n newHour = newHour >= 24 ? newHour - 24 : newHour;\n\n if (this.validateHour(newHour, currentTime)) {\n if (this.props.maxDate && this.props.maxDate.toDateString() === currentTime.toDateString() && this.props.maxDate.getHours() === newHour) {\n if (this.props.maxDate.getMinutes() < currentTime.getMinutes()) {\n if (this.props.maxDate.getSeconds() < currentTime.getSeconds()) {\n if (this.props.maxDate.getMilliseconds() < currentTime.getMilliseconds()) {\n this.updateTime(event, newHour, this.props.maxDate.getMinutes(), this.props.maxDate.getSeconds(), this.props.maxDate.getMilliseconds());\n } else {\n this.updateTime(event, newHour, this.props.maxDate.getMinutes(), this.props.maxDate.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, this.props.maxDate.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else if (this.props.maxDate.getMinutes() === currentTime.getMinutes()) {\n if (this.props.maxDate.getSeconds() < currentTime.getSeconds()) {\n if (this.props.maxDate.getMilliseconds() < currentTime.getMilliseconds()) {\n this.updateTime(event, newHour, this.props.maxDate.getMinutes(), this.props.maxDate.getSeconds(), this.props.maxDate.getMilliseconds());\n } else {\n this.updateTime(event, newHour, this.props.maxDate.getMinutes(), this.props.maxDate.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, this.props.maxDate.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, currentTime.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, currentTime.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"decrementHour\",\n value: function decrementHour(event) {\n var currentTime = this.getCurrentDateTime();\n var currentHour = currentTime.getHours();\n var newHour = currentHour - this.props.stepHour;\n newHour = newHour < 0 ? newHour + 24 : newHour;\n\n if (this.validateHour(newHour, currentTime)) {\n if (this.props.minDate && this.props.minDate.toDateString() === currentTime.toDateString() && this.props.minDate.getHours() === newHour) {\n if (this.props.minDate.getMinutes() > currentTime.getMinutes()) {\n if (this.props.minDate.getSeconds() > currentTime.getSeconds()) {\n if (this.props.minDate.getMilliseconds() > currentTime.getMilliseconds()) {\n this.updateTime(event, newHour, this.props.minDate.getMinutes(), this.props.minDate.getSeconds(), this.props.minDate.getMilliseconds());\n } else {\n this.updateTime(event, newHour, this.props.minDate.getMinutes(), this.props.minDate.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, this.props.minDate.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else if (this.props.minDate.getMinutes() === currentTime.getMinutes()) {\n if (this.props.minDate.getSeconds() > currentTime.getSeconds()) {\n if (this.props.minDate.getMilliseconds() > currentTime.getMilliseconds()) {\n this.updateTime(event, newHour, this.props.minDate.getMinutes(), this.props.minDate.getSeconds(), this.props.minDate.getMilliseconds());\n } else {\n this.updateTime(event, newHour, this.props.minDate.getMinutes(), this.props.minDate.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, this.props.minDate.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, currentTime.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, newHour, currentTime.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"incrementMinute\",\n value: function incrementMinute(event) {\n var currentTime = this.getCurrentDateTime();\n var currentMinute = currentTime.getMinutes();\n var newMinute = currentMinute + this.props.stepMinute;\n newMinute = newMinute > 59 ? newMinute - 60 : newMinute;\n\n if (this.validateMinute(newMinute, currentTime)) {\n if (this.props.maxDate && this.props.maxDate.toDateString() === currentTime.toDateString() && this.props.maxDate.getMinutes() === newMinute) {\n if (this.props.maxDate.getSeconds() < currentTime.getSeconds()) {\n if (this.props.maxDate.getMilliseconds() < currentTime.getMilliseconds()) {\n this.updateTime(event, currentTime.getHours(), newMinute, this.props.maxDate.getSeconds(), this.props.maxDate.getMilliseconds());\n } else {\n this.updateTime(event, currentTime.getHours(), newMinute, this.props.maxDate.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, currentTime.getHours(), newMinute, currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, currentTime.getHours(), newMinute, currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"decrementMinute\",\n value: function decrementMinute(event) {\n var currentTime = this.getCurrentDateTime();\n var currentMinute = currentTime.getMinutes();\n var newMinute = currentMinute - this.props.stepMinute;\n newMinute = newMinute < 0 ? newMinute + 60 : newMinute;\n\n if (this.validateMinute(newMinute, currentTime)) {\n if (this.props.minDate && this.props.minDate.toDateString() === currentTime.toDateString() && this.props.minDate.getMinutes() === newMinute) {\n if (this.props.minDate.getSeconds() > currentTime.getSeconds()) {\n if (this.props.minDate.getMilliseconds() > currentTime.getMilliseconds()) {\n this.updateTime(event, currentTime.getHours(), newMinute, this.props.minDate.getSeconds(), this.props.minDate.getMilliseconds());\n } else {\n this.updateTime(event, currentTime.getHours(), newMinute, this.props.minDate.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, currentTime.getHours(), newMinute, currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, currentTime.getHours(), newMinute, currentTime.getSeconds(), currentTime.getMilliseconds());\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"incrementSecond\",\n value: function incrementSecond(event) {\n var currentTime = this.getCurrentDateTime();\n var currentSecond = currentTime.getSeconds();\n var newSecond = currentSecond + this.props.stepSecond;\n newSecond = newSecond > 59 ? newSecond - 60 : newSecond;\n\n if (this.validateSecond(newSecond, currentTime)) {\n if (this.props.maxDate && this.props.maxDate.toDateString() === currentTime.toDateString() && this.props.maxDate.getSeconds() === newSecond) {\n if (this.props.maxDate.getMilliseconds() < currentTime.getMilliseconds()) {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), newSecond, this.props.maxDate.getMilliseconds());\n } else {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), newSecond, currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), newSecond, currentTime.getMilliseconds());\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"decrementSecond\",\n value: function decrementSecond(event) {\n var currentTime = this.getCurrentDateTime();\n var currentSecond = currentTime.getSeconds();\n var newSecond = currentSecond - this.props.stepSecond;\n newSecond = newSecond < 0 ? newSecond + 60 : newSecond;\n\n if (this.validateSecond(newSecond, currentTime)) {\n if (this.props.minDate && this.props.minDate.toDateString() === currentTime.toDateString() && this.props.minDate.getSeconds() === newSecond) {\n if (this.props.minDate.getMilliseconds() > currentTime.getMilliseconds()) {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), newSecond, this.props.minDate.getMilliseconds());\n } else {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), newSecond, currentTime.getMilliseconds());\n }\n } else {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), newSecond, currentTime.getMilliseconds());\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"incrementMilliSecond\",\n value: function incrementMilliSecond(event) {\n var currentTime = this.getCurrentDateTime();\n var currentMillisecond = currentTime.getMilliseconds();\n var newMillisecond = currentMillisecond + this.props.stepMillisec;\n newMillisecond = newMillisecond > 999 ? newMillisecond - 1000 : newMillisecond;\n\n if (this.validateMillisecond(newMillisecond, currentTime)) {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), currentTime.getSeconds(), newMillisecond);\n }\n\n event.preventDefault();\n }\n }, {\n key: \"decrementMilliSecond\",\n value: function decrementMilliSecond(event) {\n var currentTime = this.getCurrentDateTime();\n var currentMillisecond = currentTime.getMilliseconds();\n var newMillisecond = currentMillisecond - this.props.stepMillisec;\n newMillisecond = newMillisecond < 0 ? newMillisecond + 999 : newMillisecond;\n\n if (this.validateMillisecond(newMillisecond, currentTime)) {\n this.updateTime(event, currentTime.getHours(), currentTime.getMinutes(), currentTime.getSeconds(), newMillisecond);\n }\n\n event.preventDefault();\n }\n }, {\n key: \"toggleAmPm\",\n value: function toggleAmPm(event) {\n var currentTime = this.getCurrentDateTime();\n var currentHour = currentTime.getHours();\n var newHour = currentHour >= 12 ? currentHour - 12 : currentHour + 12;\n this.updateTime(event, newHour, currentTime.getMinutes(), currentTime.getSeconds(), currentTime.getMilliseconds());\n event.preventDefault();\n }\n }, {\n key: \"getViewDate\",\n value: function getViewDate() {\n return this.props.onViewDateChange ? this.props.viewDate : this.state.viewDate;\n }\n }, {\n key: \"getCurrentDateTime\",\n value: function getCurrentDateTime() {\n if (this.isSingleSelection()) {\n return this.props.value && this.props.value instanceof Date ? this.props.value : this.getViewDate();\n } else if (this.isMultipleSelection()) {\n if (this.props.value && this.props.value.length) {\n return this.props.value[this.props.value.length - 1];\n }\n } else if (this.isRangeSelection()) {\n if (this.props.value && this.props.value.length) {\n var startDate = this.props.value[0];\n var endDate = this.props.value[1];\n return endDate || startDate;\n }\n }\n\n return new Date();\n }\n }, {\n key: \"isValidDate\",\n value: function isValidDate(date) {\n return date instanceof Date && !isNaN(date);\n }\n }, {\n key: \"validateHour\",\n value: function validateHour(hour, value) {\n var valid = true;\n var valueDateString = value ? value.toDateString() : null;\n\n if (this.props.minDate && valueDateString && this.props.minDate.toDateString() === valueDateString) {\n if (this.props.minDate.getHours() > hour) {\n valid = false;\n }\n }\n\n if (this.props.maxDate && valueDateString && this.props.maxDate.toDateString() === valueDateString) {\n if (this.props.maxDate.getHours() < hour) {\n valid = false;\n }\n }\n\n return valid;\n }\n }, {\n key: \"validateMinute\",\n value: function validateMinute(minute, value) {\n var valid = true;\n var valueDateString = value ? value.toDateString() : null;\n\n if (this.props.minDate && valueDateString && this.props.minDate.toDateString() === valueDateString) {\n if (value.getHours() === this.props.minDate.getHours()) {\n if (this.props.minDate.getMinutes() > minute) {\n valid = false;\n }\n }\n }\n\n if (this.props.maxDate && valueDateString && this.props.maxDate.toDateString() === valueDateString) {\n if (value.getHours() === this.props.maxDate.getHours()) {\n if (this.props.maxDate.getMinutes() < minute) {\n valid = false;\n }\n }\n }\n\n return valid;\n }\n }, {\n key: \"validateSecond\",\n value: function validateSecond(second, value) {\n var valid = true;\n var valueDateString = value ? value.toDateString() : null;\n\n if (this.props.minDate && valueDateString && this.props.minDate.toDateString() === valueDateString) {\n if (value.getHours() === this.props.minDate.getHours() && value.getMinutes() === this.props.minDate.getMinutes()) {\n if (this.props.minDate.getSeconds() > second) {\n valid = false;\n }\n }\n }\n\n if (this.props.maxDate && valueDateString && this.props.maxDate.toDateString() === valueDateString) {\n if (value.getHours() === this.props.maxDate.getHours() && value.getMinutes() === this.props.maxDate.getMinutes()) {\n if (this.props.maxDate.getSeconds() < second) {\n valid = false;\n }\n }\n }\n\n return valid;\n }\n }, {\n key: \"validateMillisecond\",\n value: function validateMillisecond(millisecond, value) {\n var valid = true;\n var valueDateString = value ? value.toDateString() : null;\n\n if (this.props.minDate && valueDateString && this.props.minDate.toDateString() === valueDateString) {\n if (value.getHours() === this.props.minDate.getHours() && value.getSeconds() === this.props.minDate.getSeconds() && value.getMinutes() === this.props.minDate.getMinutes()) {\n if (this.props.minDate.getMilliseconds() > millisecond) {\n valid = false;\n }\n }\n }\n\n if (this.props.maxDate && valueDateString && this.props.maxDate.toDateString() === valueDateString) {\n if (value.getHours() === this.props.maxDate.getHours() && value.getSeconds() === this.props.maxDate.getSeconds() && value.getMinutes() === this.props.maxDate.getMinutes()) {\n if (this.props.maxDate.getMilliseconds() < millisecond) {\n valid = false;\n }\n }\n }\n\n return valid;\n }\n }, {\n key: \"validateDate\",\n value: function validateDate(value) {\n if (this.props.yearNavigator) {\n var viewYear = value.getFullYear();\n var minRangeYear = this.props.yearRange ? parseInt(this.props.yearRange.split(':')[0], 10) : null;\n var maxRangeYear = this.props.yearRange ? parseInt(this.props.yearRange.split(':')[1], 10) : null;\n var minYear = this.props.minDate && minRangeYear != null ? Math.max(this.props.minDate.getFullYear(), minRangeYear) : this.props.minDate || minRangeYear;\n var maxYear = this.props.maxDate && maxRangeYear != null ? Math.min(this.props.maxDate.getFullYear(), maxRangeYear) : this.props.maxDate || maxRangeYear;\n\n if (minYear && minYear > viewYear) {\n viewYear = minYear;\n }\n\n if (maxYear && maxYear < viewYear) {\n viewYear = maxYear;\n }\n\n value.setFullYear(viewYear);\n }\n\n if (this.props.monthNavigator && this.props.view !== 'month') {\n var viewMonth = value.getMonth();\n var viewMonthWithMinMax = parseInt(this.isInMinYear(value) && Math.max(this.props.minDate.getMonth(), viewMonth).toString() || this.isInMaxYear(value) && Math.min(this.props.maxDate.getMonth(), viewMonth).toString() || viewMonth);\n value.setMonth(viewMonthWithMinMax);\n }\n }\n }, {\n key: \"updateTime\",\n value: function updateTime(event, hour, minute, second, millisecond) {\n var newDateTime = this.getCurrentDateTime();\n newDateTime.setHours(hour);\n newDateTime.setMinutes(minute);\n newDateTime.setSeconds(second);\n newDateTime.setMilliseconds(millisecond);\n\n if (this.isMultipleSelection()) {\n if (this.props.value && this.props.value.length) {\n var value = _toConsumableArray(this.props.value);\n\n value[value.length - 1] = newDateTime;\n newDateTime = value;\n } else {\n newDateTime = [newDateTime];\n }\n } else if (this.isRangeSelection()) {\n if (this.props.value && this.props.value.length) {\n var startDate = this.props.value[0];\n var endDate = this.props.value[1];\n newDateTime = endDate ? [startDate, newDateTime] : [newDateTime, null];\n } else {\n newDateTime = [newDateTime, null];\n }\n }\n\n this.updateModel(event, newDateTime);\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n value: newDateTime\n });\n }\n\n this.updateInputfield(newDateTime);\n }\n }, {\n key: \"updateViewDate\",\n value: function updateViewDate(event, value) {\n this.validateDate(value);\n\n if (this.props.onViewDateChange) {\n this.props.onViewDateChange({\n originalEvent: event,\n value: value\n });\n } else {\n this.viewStateChanged = true;\n this.setState({\n viewDate: value\n });\n }\n }\n }, {\n key: \"onDateCellKeydown\",\n value: function onDateCellKeydown(event, date, groupIndex) {\n var cellContent = event.currentTarget;\n var cell = cellContent.parentElement;\n\n switch (event.which) {\n //down arrow\n case 40:\n {\n cellContent.tabIndex = '-1';\n var cellIndex = DomHandler.index(cell);\n var nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n var focusCell = nextRow.children[cellIndex].children[0];\n\n if (DomHandler.hasClass(focusCell, 'p-disabled')) {\n this.navigation = {\n backward: false\n };\n this.navForward(event);\n } else {\n nextRow.children[cellIndex].children[0].tabIndex = '0';\n nextRow.children[cellIndex].children[0].focus();\n }\n } else {\n this.navigation = {\n backward: false\n };\n this.navForward(event);\n }\n\n event.preventDefault();\n break;\n }\n //up arrow\n\n case 38:\n {\n cellContent.tabIndex = '-1';\n\n var _cellIndex = DomHandler.index(cell);\n\n var prevRow = cell.parentElement.previousElementSibling;\n\n if (prevRow) {\n var _focusCell = prevRow.children[_cellIndex].children[0];\n\n if (DomHandler.hasClass(_focusCell, 'p-disabled')) {\n this.navigation = {\n backward: true\n };\n this.navBackward(event);\n } else {\n _focusCell.tabIndex = '0';\n\n _focusCell.focus();\n }\n } else {\n this.navigation = {\n backward: true\n };\n this.navBackward(event);\n }\n\n event.preventDefault();\n break;\n }\n //left arrow\n\n case 37:\n {\n cellContent.tabIndex = '-1';\n var prevCell = cell.previousElementSibling;\n\n if (prevCell) {\n var _focusCell2 = prevCell.children[0];\n\n if (DomHandler.hasClass(_focusCell2, 'p-disabled')) {\n this.navigateToMonth(true, groupIndex, event);\n } else {\n _focusCell2.tabIndex = '0';\n\n _focusCell2.focus();\n }\n } else {\n this.navigateToMonth(true, groupIndex, event);\n }\n\n event.preventDefault();\n break;\n }\n //right arrow\n\n case 39:\n {\n cellContent.tabIndex = '-1';\n var nextCell = cell.nextElementSibling;\n\n if (nextCell) {\n var _focusCell3 = nextCell.children[0];\n\n if (DomHandler.hasClass(_focusCell3, 'p-disabled')) {\n this.navigateToMonth(false, groupIndex, event);\n } else {\n _focusCell3.tabIndex = '0';\n\n _focusCell3.focus();\n }\n } else {\n this.navigateToMonth(false, groupIndex, event);\n }\n\n event.preventDefault();\n break;\n }\n //enter\n\n case 13:\n {\n this.onDateSelect(event, date);\n event.preventDefault();\n break;\n }\n //escape\n\n case 27:\n {\n this.hideOverlay(null, this.reFocusInputField);\n event.preventDefault();\n break;\n }\n //tab\n\n case 9:\n {\n this.trapFocus(event);\n break;\n }\n }\n }\n }, {\n key: \"navigateToMonth\",\n value: function navigateToMonth(prev, groupIndex, event) {\n if (prev) {\n if (this.props.numberOfMonths === 1 || groupIndex === 0) {\n this.navigation = {\n backward: true\n };\n this.navBackward(event);\n } else {\n var prevMonthContainer = this.overlayRef.current.children[groupIndex - 1];\n var cells = DomHandler.find(prevMonthContainer, '.p-datepicker-calendar td span:not(.p-disabled)');\n var focusCell = cells[cells.length - 1];\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n if (this.props.numberOfMonths === 1 || groupIndex === this.props.numberOfMonths - 1) {\n this.navigation = {\n backward: false\n };\n this.navForward(event);\n } else {\n var nextMonthContainer = this.overlayRef.current.children[groupIndex + 1];\n\n var _focusCell4 = DomHandler.findSingle(nextMonthContainer, '.p-datepicker-calendar td span:not(.p-disabled)');\n\n _focusCell4.tabIndex = '0';\n\n _focusCell4.focus();\n }\n }\n }\n }, {\n key: \"onMonthCellKeydown\",\n value: function onMonthCellKeydown(event, index) {\n var cell = event.currentTarget;\n\n switch (event.which) {\n //arrows\n case 38:\n case 40:\n {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = DomHandler.index(cell);\n var nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];\n\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n\n event.preventDefault();\n break;\n }\n //left arrow\n\n case 37:\n {\n cell.tabIndex = '-1';\n var prevCell = cell.previousElementSibling;\n\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n }\n\n event.preventDefault();\n break;\n }\n //right arrow\n\n case 39:\n {\n cell.tabIndex = '-1';\n var _nextCell = cell.nextElementSibling;\n\n if (_nextCell) {\n _nextCell.tabIndex = '0';\n\n _nextCell.focus();\n }\n\n event.preventDefault();\n break;\n }\n //enter\n\n case 13:\n {\n this.onMonthSelect(event, index);\n event.preventDefault();\n break;\n }\n //escape\n\n case 27:\n {\n this.hideOverlay(null, this.reFocusInputField);\n event.preventDefault();\n break;\n }\n //tab\n\n case 9:\n {\n this.trapFocus(event);\n break;\n }\n }\n }\n }, {\n key: \"onDateSelect\",\n value: function onDateSelect(event, dateMeta, timeMeta) {\n var _this9 = this;\n\n if (this.props.disabled || !dateMeta.selectable) {\n event.preventDefault();\n return;\n }\n\n DomHandler.find(this.overlayRef.current, '.p-datepicker-calendar td span:not(.p-disabled)').forEach(function (cell) {\n return cell.tabIndex = -1;\n });\n event.currentTarget.focus();\n\n if (this.isMultipleSelection()) {\n if (this.isSelected(dateMeta)) {\n var value = this.props.value.filter(function (date, i) {\n return !_this9.isDateEquals(date, dateMeta);\n });\n this.updateModel(event, value);\n this.updateInputfield(value);\n } else if (!this.props.maxDateCount || !this.props.value || this.props.maxDateCount > this.props.value.length) {\n this.selectDate(event, dateMeta, timeMeta);\n }\n } else {\n this.selectDate(event, dateMeta, timeMeta);\n }\n\n if (!this.props.inline && this.isSingleSelection() && (!this.props.showTime || this.props.hideOnDateTimeSelect)) {\n setTimeout(function () {\n _this9.hideOverlay('dateselect');\n }, 100);\n\n if (this.touchUIMask) {\n this.disableModality();\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"selectTime\",\n value: function selectTime(date, timeMeta) {\n if (this.props.showTime) {\n var hours, minutes, seconds, milliseconds;\n\n if (timeMeta) {\n hours = timeMeta.hours;\n minutes = timeMeta.minutes;\n seconds = timeMeta.seconds;\n milliseconds = timeMeta.milliseconds;\n } else {\n var time = this.getCurrentDateTime();\n var _ref = [time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds()];\n hours = _ref[0];\n minutes = _ref[1];\n seconds = _ref[2];\n milliseconds = _ref[3];\n }\n\n date.setHours(hours);\n date.setMinutes(minutes);\n date.setSeconds(seconds);\n date.setMilliseconds(milliseconds);\n }\n }\n }, {\n key: \"selectDate\",\n value: function selectDate(event, dateMeta, timeMeta) {\n var date = new Date(dateMeta.year, dateMeta.month, dateMeta.day);\n this.selectTime(date, timeMeta);\n\n if (this.props.minDate && this.props.minDate > date) {\n date = this.props.minDate;\n }\n\n if (this.props.maxDate && this.props.maxDate < date) {\n date = this.props.maxDate;\n }\n\n var selectedValues = date;\n\n if (this.isSingleSelection()) {\n this.updateModel(event, date);\n } else if (this.isMultipleSelection()) {\n selectedValues = this.props.value ? [].concat(_toConsumableArray(this.props.value), [date]) : [date];\n this.updateModel(event, selectedValues);\n } else if (this.isRangeSelection()) {\n if (this.props.value && this.props.value.length) {\n var startDate = this.props.value[0];\n var endDate = this.props.value[1];\n\n if (!endDate && date.getTime() >= startDate.getTime()) {\n endDate = date;\n } else {\n startDate = date;\n endDate = null;\n }\n\n selectedValues = [startDate, endDate];\n this.updateModel(event, selectedValues);\n } else {\n selectedValues = [date, null];\n this.updateModel(event, selectedValues);\n }\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n value: date\n });\n }\n\n this.updateInputfield(selectedValues);\n }\n }, {\n key: \"onMonthSelect\",\n value: function onMonthSelect(event, month) {\n this.onDateSelect(event, {\n year: this.getViewDate().getFullYear(),\n month: month,\n day: 1,\n selectable: true\n });\n event.preventDefault();\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(event, value) {\n if (this.props.onChange) {\n var newValue = value && value instanceof Date ? new Date(value.getTime()) : value;\n this.viewStateChanged = true;\n this.props.onChange({\n originalEvent: event,\n value: newValue,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: newValue\n }\n });\n }\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay(type) {\n var _this10 = this;\n\n if (this.props.onVisibleChange) {\n this.props.onVisibleChange({\n visible: true,\n type: type\n });\n } else {\n this.setState({\n overlayVisible: true\n }, function () {\n _this10.overlayEventListener = function (e) {\n if (!_this10.isOutsideClicked(e.target)) {\n _this10.isOverlayClicked = true;\n }\n };\n\n OverlayService.on('overlay-click', _this10.overlayEventListener);\n });\n }\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay(type, callback) {\n var _this11 = this;\n\n var _hideCallback = function _hideCallback() {\n _this11.viewStateChanged = false;\n _this11.ignoreFocusFunctionality = false;\n _this11.isOverlayClicked = false;\n\n if (callback) {\n callback();\n }\n\n OverlayService.off('overlay-click', _this11.overlayEventListener);\n _this11.overlayEventListener = null;\n };\n\n if (this.props.onVisibleChange) this.props.onVisibleChange({\n visible: false,\n type: type,\n callback: _hideCallback\n });else this.setState({\n overlayVisible: false\n }, _hideCallback);\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter() {\n if (this.props.autoZIndex) {\n ZIndexUtils.set(this.props.touchUI ? 'modal' : 'overlay', this.overlayRef.current, this.props.baseZIndex);\n }\n\n this.alignOverlay();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered() {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this12 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (!_this12.isOverlayClicked && _this12.isVisible() && _this12.isOutsideClicked(event.target)) {\n _this12.hideOverlay('outside');\n }\n\n _this12.isOverlayClicked = false;\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n if (!this.documentResizeListener && !this.props.touchUI) {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this13 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this13.isVisible()) {\n _this13.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return this.container && !(this.container.isSameNode(target) || this.isNavIconClicked(target) || this.container.contains(target) || this.overlayRef && this.overlayRef.current.contains(target));\n }\n }, {\n key: \"isNavIconClicked\",\n value: function isNavIconClicked(target) {\n return DomHandler.hasClass(target, 'p-datepicker-prev') || DomHandler.hasClass(target, 'p-datepicker-prev-icon') || DomHandler.hasClass(target, 'p-datepicker-next') || DomHandler.hasClass(target, 'p-datepicker-next-icon');\n }\n }, {\n key: \"onWindowResize\",\n value: function onWindowResize() {\n if (this.isVisible() && !DomHandler.isAndroid()) {\n this.hideOverlay();\n }\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n if (this.props.touchUI) {\n this.enableModality();\n } else {\n DomHandler.alignOverlay(this.overlayRef.current, this.inputRef.current.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }\n }, {\n key: \"enableModality\",\n value: function enableModality() {\n var _this14 = this;\n\n if (!this.touchUIMask) {\n this.touchUIMask = document.createElement('div');\n this.touchUIMask.style.zIndex = String(ZIndexUtils.get(this.overlayRef.current) - 1);\n DomHandler.addMultipleClasses(this.touchUIMask, 'p-component-overlay p-datepicker-mask p-datepicker-mask-scrollblocker p-component-overlay-enter');\n\n this.touchUIMaskClickListener = function () {\n _this14.disableModality();\n };\n\n this.touchUIMask.addEventListener('click', this.touchUIMaskClickListener);\n document.body.appendChild(this.touchUIMask);\n DomHandler.addClass(document.body, 'p-overflow-hidden');\n }\n }\n }, {\n key: \"disableModality\",\n value: function disableModality() {\n var _this15 = this;\n\n if (this.touchUIMask) {\n DomHandler.addClass(this.touchUIMask, 'p-component-overlay-leave');\n this.touchUIMask.addEventListener('animationend', function () {\n _this15.destroyMask();\n });\n }\n }\n }, {\n key: \"destroyMask\",\n value: function destroyMask() {\n this.touchUIMask.removeEventListener('click', this.touchUIMaskClickListener);\n this.touchUIMaskClickListener = null;\n document.body.removeChild(this.touchUIMask);\n this.touchUIMask = null;\n var bodyChildren = document.body.children;\n var hasBlockerMasks;\n\n for (var i = 0; i < bodyChildren.length; i++) {\n var bodyChild = bodyChildren[i];\n\n if (DomHandler.hasClass(bodyChild, 'p-datepicker-mask-scrollblocker')) {\n hasBlockerMasks = true;\n break;\n }\n }\n\n if (!hasBlockerMasks) {\n DomHandler.removeClass(document.body, 'p-overflow-hidden');\n }\n }\n }, {\n key: \"getFirstDayOfMonthIndex\",\n value: function getFirstDayOfMonthIndex(month, year) {\n var day = new Date();\n day.setDate(1);\n day.setMonth(month);\n day.setFullYear(year);\n var dayIndex = day.getDay() + this.getSundayIndex();\n return dayIndex >= 7 ? dayIndex - 7 : dayIndex;\n }\n }, {\n key: \"getDaysCountInMonth\",\n value: function getDaysCountInMonth(month, year) {\n return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();\n }\n }, {\n key: \"getDaysCountInPrevMonth\",\n value: function getDaysCountInPrevMonth(month, year) {\n var prev = this.getPreviousMonthAndYear(month, year);\n return this.getDaysCountInMonth(prev.month, prev.year);\n }\n }, {\n key: \"daylightSavingAdjust\",\n value: function daylightSavingAdjust(date) {\n if (!date) {\n return null;\n }\n\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n }\n }, {\n key: \"getPreviousMonthAndYear\",\n value: function getPreviousMonthAndYear(month, year) {\n var m, y;\n\n if (month === 0) {\n m = 11;\n y = year - 1;\n } else {\n m = month - 1;\n y = year;\n }\n\n return {\n 'month': m,\n 'year': y\n };\n }\n }, {\n key: \"getNextMonthAndYear\",\n value: function getNextMonthAndYear(month, year) {\n var m, y;\n\n if (month === 11) {\n m = 0;\n y = year + 1;\n } else {\n m = month + 1;\n y = year;\n }\n\n return {\n 'month': m,\n 'year': y\n };\n }\n }, {\n key: \"getSundayIndex\",\n value: function getSundayIndex() {\n var firstDayOfWeek = localeOption('firstDayOfWeek', this.props.locale);\n return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;\n }\n }, {\n key: \"createWeekDays\",\n value: function createWeekDays() {\n var weekDays = [];\n\n var _localeOptions = localeOptions(this.props.locale),\n dayIndex = _localeOptions.firstDayOfWeek,\n dayNamesMin = _localeOptions.dayNamesMin;\n\n for (var i = 0; i < 7; i++) {\n weekDays.push(dayNamesMin[dayIndex]);\n dayIndex = dayIndex === 6 ? 0 : ++dayIndex;\n }\n\n return weekDays;\n }\n }, {\n key: \"createMonths\",\n value: function createMonths(month, year) {\n var months = [];\n\n for (var i = 0; i < this.props.numberOfMonths; i++) {\n var m = month + i;\n var y = year;\n\n if (m > 11) {\n m = m % 11 - 1;\n y = year + 1;\n }\n\n months.push(this.createMonth(m, y));\n }\n\n return months;\n }\n }, {\n key: \"createMonth\",\n value: function createMonth(month, year) {\n var dates = [];\n var firstDay = this.getFirstDayOfMonthIndex(month, year);\n var daysLength = this.getDaysCountInMonth(month, year);\n var prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);\n var dayNo = 1;\n var today = new Date();\n var weekNumbers = [];\n var monthRows = Math.ceil((daysLength + firstDay) / 7);\n\n for (var i = 0; i < monthRows; i++) {\n var week = [];\n\n if (i === 0) {\n for (var j = prevMonthDaysLength - firstDay + 1; j <= prevMonthDaysLength; j++) {\n var prev = this.getPreviousMonthAndYear(month, year);\n week.push({\n day: j,\n month: prev.month,\n year: prev.year,\n otherMonth: true,\n today: this.isToday(today, j, prev.month, prev.year),\n selectable: this.isSelectable(j, prev.month, prev.year, true)\n });\n }\n\n var remainingDaysLength = 7 - week.length;\n\n for (var _j = 0; _j < remainingDaysLength; _j++) {\n week.push({\n day: dayNo,\n month: month,\n year: year,\n today: this.isToday(today, dayNo, month, year),\n selectable: this.isSelectable(dayNo, month, year, false)\n });\n dayNo++;\n }\n } else {\n for (var _j2 = 0; _j2 < 7; _j2++) {\n if (dayNo > daysLength) {\n var next = this.getNextMonthAndYear(month, year);\n week.push({\n day: dayNo - daysLength,\n month: next.month,\n year: next.year,\n otherMonth: true,\n today: this.isToday(today, dayNo - daysLength, next.month, next.year),\n selectable: this.isSelectable(dayNo - daysLength, next.month, next.year, true)\n });\n } else {\n week.push({\n day: dayNo,\n month: month,\n year: year,\n today: this.isToday(today, dayNo, month, year),\n selectable: this.isSelectable(dayNo, month, year, false)\n });\n }\n\n dayNo++;\n }\n }\n\n if (this.props.showWeek) {\n weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));\n }\n\n dates.push(week);\n }\n\n return {\n month: month,\n year: year,\n dates: dates,\n weekNumbers: weekNumbers\n };\n }\n }, {\n key: \"getWeekNumber\",\n value: function getWeekNumber(date) {\n var checkDate = new Date(date.getTime());\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n var time = checkDate.getTime();\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable(day, month, year, otherMonth) {\n var validMin = true;\n var validMax = true;\n var validDate = true;\n var validDay = true;\n var validMonth = true;\n\n if (this.props.minDate) {\n if (this.props.minDate.getFullYear() > year) {\n validMin = false;\n } else if (this.props.minDate.getFullYear() === year) {\n if (this.props.minDate.getMonth() > month) {\n validMin = false;\n } else if (this.props.minDate.getMonth() === month) {\n if (this.props.minDate.getDate() > day) {\n validMin = false;\n }\n }\n }\n }\n\n if (this.props.maxDate) {\n if (this.props.maxDate.getFullYear() < year) {\n validMax = false;\n } else if (this.props.maxDate.getFullYear() === year) {\n if (this.props.maxDate.getMonth() < month) {\n validMax = false;\n } else if (this.props.maxDate.getMonth() === month) {\n if (this.props.maxDate.getDate() < day) {\n validMax = false;\n }\n }\n }\n }\n\n if (this.props.disabledDates) {\n validDate = !this.isDateDisabled(day, month, year);\n }\n\n if (this.props.disabledDays) {\n validDay = !this.isDayDisabled(day, month, year);\n }\n\n if (this.props.selectOtherMonths === false && otherMonth) {\n validMonth = false;\n }\n\n return validMin && validMax && validDate && validDay && validMonth;\n }\n }, {\n key: \"isSelectableTime\",\n value: function isSelectableTime(value) {\n var validMin = true;\n var validMax = true;\n\n if (this.props.minDate && this.props.minDate.toDateString() === value.toDateString()) {\n if (this.props.minDate.getHours() > value.getHours()) {\n validMin = false;\n } else if (this.props.minDate.getHours() === value.getHours()) {\n if (this.props.minDate.getMinutes() > value.getMinutes()) {\n validMin = false;\n } else if (this.props.minDate.getMinutes() === value.getMinutes()) {\n if (this.props.minDate.getSeconds() > value.getSeconds()) {\n validMin = false;\n } else if (this.props.minDate.getSeconds() === value.getSeconds()) {\n if (this.props.minDate.getMilliseconds() > value.getMilliseconds()) {\n validMin = false;\n }\n }\n }\n }\n }\n\n if (this.props.maxDate && this.props.maxDate.toDateString() === value.toDateString()) {\n if (this.props.maxDate.getHours() < value.getHours()) {\n validMax = false;\n } else if (this.props.maxDate.getHours() === value.getHours()) {\n if (this.props.maxDate.getMinutes() < value.getMinutes()) {\n validMax = false;\n } else if (this.props.maxDate.getMinutes() === value.getMinutes()) {\n if (this.props.maxDate.getSeconds() < value.getSeconds()) {\n validMax = false;\n } else if (this.props.maxDate.getSeconds() === value.getSeconds()) {\n if (this.props.maxDate.getMilliseconds() < value.getMilliseconds()) {\n validMax = false;\n }\n }\n }\n }\n }\n\n return validMin && validMax;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(dateMeta) {\n if (this.props.value) {\n if (this.isSingleSelection()) {\n return this.isDateEquals(this.props.value, dateMeta);\n } else if (this.isMultipleSelection()) {\n var selected = false;\n\n var _iterator = _createForOfIteratorHelper(this.props.value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var date = _step.value;\n selected = this.isDateEquals(date, dateMeta);\n\n if (selected) {\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return selected;\n } else if (this.isRangeSelection()) {\n if (this.props.value[1]) return this.isDateEquals(this.props.value[0], dateMeta) || this.isDateEquals(this.props.value[1], dateMeta) || this.isDateBetween(this.props.value[0], this.props.value[1], dateMeta);else {\n return this.isDateEquals(this.props.value[0], dateMeta);\n }\n }\n } else {\n return false;\n }\n }\n }, {\n key: \"isMonthSelected\",\n value: function isMonthSelected(month) {\n var viewDate = this.getViewDate();\n if (this.props.value && this.props.value instanceof Date) return this.props.value.getDate() === 1 && this.props.value.getMonth() === month && this.props.value.getFullYear() === viewDate.getFullYear();else return false;\n }\n }, {\n key: \"isDateEquals\",\n value: function isDateEquals(value, dateMeta) {\n if (value && value instanceof Date) return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;else return false;\n }\n }, {\n key: \"isDateBetween\",\n value: function isDateBetween(start, end, dateMeta) {\n var between = false;\n\n if (start && end) {\n var date = new Date(dateMeta.year, dateMeta.month, dateMeta.day);\n return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();\n }\n\n return between;\n }\n }, {\n key: \"isSingleSelection\",\n value: function isSingleSelection() {\n return this.props.selectionMode === 'single';\n }\n }, {\n key: \"isRangeSelection\",\n value: function isRangeSelection() {\n return this.props.selectionMode === 'range';\n }\n }, {\n key: \"isMultipleSelection\",\n value: function isMultipleSelection() {\n return this.props.selectionMode === 'multiple';\n }\n }, {\n key: \"isToday\",\n value: function isToday(today, day, month, year) {\n return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;\n }\n }, {\n key: \"isDateDisabled\",\n value: function isDateDisabled(day, month, year) {\n if (this.props.disabledDates) {\n for (var i = 0; i < this.props.disabledDates.length; i++) {\n var disabledDate = this.props.disabledDates[i];\n\n if (disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {\n return true;\n }\n }\n }\n\n return false;\n }\n }, {\n key: \"isDayDisabled\",\n value: function isDayDisabled(day, month, year) {\n if (this.props.disabledDays) {\n var weekday = new Date(year, month, day);\n var weekdayNumber = weekday.getDay();\n return this.props.disabledDays.indexOf(weekdayNumber) !== -1;\n }\n\n return false;\n }\n }, {\n key: \"updateInputfield\",\n value: function updateInputfield(value) {\n if (!(this.inputRef && this.inputRef.current)) {\n return;\n }\n\n var formattedValue = '';\n\n if (value) {\n try {\n if (this.isSingleSelection()) {\n formattedValue = this.isValidDate(value) ? this.formatDateTime(value) : '';\n } else if (this.isMultipleSelection()) {\n for (var i = 0; i < value.length; i++) {\n var selectedValue = value[i];\n var dateAsString = this.isValidDate(selectedValue) ? this.formatDateTime(selectedValue) : '';\n formattedValue += dateAsString;\n\n if (i !== value.length - 1) {\n formattedValue += ', ';\n }\n }\n } else if (this.isRangeSelection()) {\n if (value && value.length) {\n var startDate = value[0];\n var endDate = value[1];\n formattedValue = this.isValidDate(startDate) ? this.formatDateTime(startDate) : '';\n\n if (endDate) {\n formattedValue += this.isValidDate(endDate) ? ' - ' + this.formatDateTime(endDate) : '';\n }\n }\n }\n } catch (err) {\n formattedValue = value;\n }\n }\n\n this.inputRef.current.value = formattedValue;\n }\n }, {\n key: \"formatDateTime\",\n value: function formatDateTime(date) {\n var formattedValue = null;\n\n if (date) {\n if (this.props.timeOnly) {\n formattedValue = this.formatTime(date);\n } else {\n formattedValue = this.formatDate(date, this.getDateFormat());\n\n if (this.props.showTime) {\n formattedValue += ' ' + this.formatTime(date);\n }\n }\n }\n\n return formattedValue;\n }\n }, {\n key: \"formatDate\",\n value: function formatDate(date, format) {\n if (!date) {\n return '';\n }\n\n var iFormat;\n\n var lookAhead = function lookAhead(match) {\n var matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n\n if (matches) {\n iFormat++;\n }\n\n return matches;\n },\n formatNumber = function formatNumber(match, value, len) {\n var num = '' + value;\n\n if (lookAhead(match)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n\n return num;\n },\n formatName = function formatName(match, value, shortNames, longNames) {\n return lookAhead(match) ? longNames[value] : shortNames[value];\n };\n\n var output = '';\n var literal = false;\n\n var _localeOptions2 = localeOptions(this.props.locale),\n dayNamesShort = _localeOptions2.dayNamesShort,\n dayNames = _localeOptions2.dayNames,\n monthNamesShort = _localeOptions2.monthNamesShort,\n monthNames = _localeOptions2.monthNames;\n\n if (date) {\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === '\\'' && !lookAhead('\\'')) {\n literal = false;\n } else {\n output += format.charAt(iFormat);\n }\n } else {\n switch (format.charAt(iFormat)) {\n case 'd':\n output += formatNumber('d', date.getDate(), 2);\n break;\n\n case 'D':\n output += formatName('D', date.getDay(), dayNamesShort, dayNames);\n break;\n\n case 'o':\n output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\n break;\n\n case 'm':\n output += formatNumber('m', date.getMonth() + 1, 2);\n break;\n\n case 'M':\n output += formatName('M', date.getMonth(), monthNamesShort, monthNames);\n break;\n\n case 'y':\n output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + date.getFullYear() % 100;\n break;\n\n case '@':\n output += date.getTime();\n break;\n\n case '!':\n output += date.getTime() * 10000 + this.ticksTo1970;\n break;\n\n case '\\'':\n if (lookAhead('\\'')) {\n output += '\\'';\n } else {\n literal = true;\n }\n\n break;\n\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n }\n\n return output;\n }\n }, {\n key: \"formatTime\",\n value: function formatTime(date) {\n if (!date) {\n return '';\n }\n\n var output = '';\n var hours = date.getHours();\n var minutes = date.getMinutes();\n var seconds = date.getSeconds();\n var milliseconds = date.getMilliseconds();\n\n if (this.props.hourFormat === '12' && hours > 11 && hours !== 12) {\n hours -= 12;\n }\n\n if (this.props.hourFormat === '12') {\n output += hours === 0 ? 12 : hours < 10 ? '0' + hours : hours;\n } else {\n output += hours < 10 ? '0' + hours : hours;\n }\n\n output += ':';\n output += minutes < 10 ? '0' + minutes : minutes;\n\n if (this.props.showSeconds) {\n output += ':';\n output += seconds < 10 ? '0' + seconds : seconds;\n }\n\n if (this.props.showMillisec) {\n output += '.';\n output += milliseconds < 100 ? (milliseconds < 10 ? '00' : '0') + milliseconds : milliseconds;\n }\n\n if (this.props.hourFormat === '12') {\n output += date.getHours() > 11 ? ' PM' : ' AM';\n }\n\n return output;\n }\n }, {\n key: \"parseValueFromString\",\n value: function parseValueFromString(text) {\n if (!text || text.trim().length === 0) {\n return null;\n }\n\n var value;\n\n if (this.isSingleSelection()) {\n value = this.parseDateTime(text);\n } else if (this.isMultipleSelection()) {\n var tokens = text.split(',');\n value = [];\n\n var _iterator2 = _createForOfIteratorHelper(tokens),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var token = _step2.value;\n value.push(this.parseDateTime(token.trim()));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n } else if (this.isRangeSelection()) {\n var _tokens = text.split(' - ');\n\n value = [];\n\n for (var i = 0; i < _tokens.length; i++) {\n value[i] = this.parseDateTime(_tokens[i].trim());\n }\n }\n\n return value;\n }\n }, {\n key: \"parseDateTime\",\n value: function parseDateTime(text) {\n var date;\n var parts = text.split(' ');\n\n if (this.props.timeOnly) {\n date = new Date();\n this.populateTime(date, parts[0], parts[1]);\n } else {\n if (this.props.showTime) {\n date = this.parseDate(parts[0], this.getDateFormat());\n this.populateTime(date, parts[1], parts[2]);\n } else {\n date = this.parseDate(text, this.getDateFormat());\n }\n }\n\n return date;\n }\n }, {\n key: \"populateTime\",\n value: function populateTime(value, timeString, ampm) {\n if (this.props.hourFormat === '12' && ampm !== 'PM' && ampm !== 'AM') {\n throw new Error('Invalid Time');\n }\n\n var time = this.parseTime(timeString, ampm);\n value.setHours(time.hour);\n value.setMinutes(time.minute);\n value.setSeconds(time.second);\n value.setMilliseconds(time.millisecond);\n }\n }, {\n key: \"parseTime\",\n value: function parseTime(value, ampm) {\n value = this.props.showMillisec ? value.replace('.', ':') : value;\n var tokens = value.split(':');\n var validTokenLength = this.props.showSeconds ? 3 : 2;\n validTokenLength = this.props.showMillisec ? validTokenLength + 1 : validTokenLength;\n\n if (tokens.length !== validTokenLength || tokens[0].length !== 2 || tokens[1].length !== 2 || this.props.showSeconds && tokens[2].length !== 2 || this.props.showMillisec && tokens[3].length !== 3) {\n throw new Error('Invalid time');\n }\n\n var h = parseInt(tokens[0], 10);\n var m = parseInt(tokens[1], 10);\n var s = this.props.showSeconds ? parseInt(tokens[2], 10) : null;\n var ms = this.props.showMillisec ? parseInt(tokens[3], 10) : null;\n\n if (isNaN(h) || isNaN(m) || h > 23 || m > 59 || this.props.hourFormat === '12' && h > 12 || this.props.showSeconds && (isNaN(s) || s > 59) || this.props.showMillisec && (isNaN(s) || s > 1000)) {\n throw new Error('Invalid time');\n } else {\n if (this.props.hourFormat === '12' && h !== 12 && ampm === 'PM') {\n h += 12;\n }\n\n return {\n hour: h,\n minute: m,\n second: s,\n millisecond: ms\n };\n }\n } // Ported from jquery-ui datepicker parseDate\n\n }, {\n key: \"parseDate\",\n value: function parseDate(value, format) {\n if (format == null || value == null) {\n throw new Error('Invalid arguments');\n }\n\n value = _typeof(value) === \"object\" ? value.toString() : value + \"\";\n\n if (value === \"\") {\n return null;\n }\n\n var iFormat,\n dim,\n extra,\n iValue = 0,\n shortYearCutoff = typeof this.props.shortYearCutoff !== \"string\" ? this.props.shortYearCutoff : new Date().getFullYear() % 100 + parseInt(this.props.shortYearCutoff, 10),\n year = -1,\n month = -1,\n day = -1,\n doy = -1,\n literal = false,\n date,\n lookAhead = function lookAhead(match) {\n var matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n\n if (matches) {\n iFormat++;\n }\n\n return matches;\n },\n getNumber = function getNumber(match) {\n var isDoubled = lookAhead(match),\n size = match === \"@\" ? 14 : match === \"!\" ? 20 : match === \"y\" && isDoubled ? 4 : match === \"o\" ? 3 : 2,\n minSize = match === \"y\" ? size : 1,\n digits = new RegExp(\"^\\\\d{\" + minSize + \",\" + size + \"}\"),\n num = value.substring(iValue).match(digits);\n\n if (!num) {\n throw new Error('Missing number at position ' + iValue);\n }\n\n iValue += num[0].length;\n return parseInt(num[0], 10);\n },\n getName = function getName(match, shortNames, longNames) {\n var index = -1;\n var arr = lookAhead(match) ? longNames : shortNames;\n var names = [];\n\n for (var i = 0; i < arr.length; i++) {\n names.push([i, arr[i]]);\n }\n\n names.sort(function (a, b) {\n return -(a[1].length - b[1].length);\n });\n\n for (var _i = 0; _i < names.length; _i++) {\n var name = names[_i][1];\n\n if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\n index = names[_i][0];\n iValue += name.length;\n break;\n }\n }\n\n if (index !== -1) {\n return index + 1;\n } else {\n throw new Error('Unknown name at position ' + iValue);\n }\n },\n checkLiteral = function checkLiteral() {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw new Error('Unexpected literal at position ' + iValue);\n }\n\n iValue++;\n };\n\n if (this.props.view === 'month') {\n day = 1;\n }\n\n var _localeOptions3 = localeOptions(this.props.locale),\n dayNamesShort = _localeOptions3.dayNamesShort,\n dayNames = _localeOptions3.dayNames,\n monthNamesShort = _localeOptions3.monthNamesShort,\n monthNames = _localeOptions3.monthNames;\n\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n } else {\n checkLiteral();\n }\n } else {\n switch (format.charAt(iFormat)) {\n case \"d\":\n day = getNumber(\"d\");\n break;\n\n case \"D\":\n getName(\"D\", dayNamesShort, dayNames);\n break;\n\n case \"o\":\n doy = getNumber(\"o\");\n break;\n\n case \"m\":\n month = getNumber(\"m\");\n break;\n\n case \"M\":\n month = getName(\"M\", monthNamesShort, monthNames);\n break;\n\n case \"y\":\n year = getNumber(\"y\");\n break;\n\n case \"@\":\n date = new Date(getNumber(\"@\"));\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n\n case \"!\":\n date = new Date((getNumber(\"!\") - this.ticksTo1970) / 10000);\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n\n case \"'\":\n if (lookAhead(\"'\")) {\n checkLiteral();\n } else {\n literal = true;\n }\n\n break;\n\n default:\n checkLiteral();\n }\n }\n }\n\n if (iValue < value.length) {\n extra = value.substr(iValue);\n\n if (!/^\\s+/.test(extra)) {\n throw new Error('Extra/unparsed characters found in date: ' + extra);\n }\n }\n\n if (year === -1) {\n year = new Date().getFullYear();\n } else if (year < 100) {\n year += new Date().getFullYear() - new Date().getFullYear() % 100 + (year <= shortYearCutoff ? 0 : -100);\n }\n\n if (doy > -1) {\n month = 1;\n day = doy;\n\n do {\n dim = this.getDaysCountInMonth(year, month - 1);\n\n if (day <= dim) {\n break;\n }\n\n month++;\n day -= dim;\n } while (true);\n }\n\n date = this.daylightSavingAdjust(new Date(year, month - 1, day));\n\n if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\n throw new Error('Invalid date'); // E.g. 31/02/00\n }\n\n return date;\n }\n }, {\n key: \"renderBackwardNavigator\",\n value: function renderBackwardNavigator(isVisible) {\n var _this16 = this;\n\n var navigatorProps = isVisible ? {\n 'onClick': this.onPrevButtonClick,\n 'onKeyDown': function onKeyDown(e) {\n return _this16.onContainerButtonKeydown(e);\n }\n } : {\n 'style': {\n visibility: 'hidden'\n }\n };\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n type: \"button\",\n className: \"p-datepicker-prev p-link\"\n }, navigatorProps), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-datepicker-prev-icon pi pi-chevron-left\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderForwardNavigator\",\n value: function renderForwardNavigator(isVisible) {\n var _this17 = this;\n\n var navigatorProps = isVisible ? {\n 'onClick': this.onNextButtonClick,\n 'onKeyDown': function onKeyDown(e) {\n return _this17.onContainerButtonKeydown(e);\n }\n } : {\n 'style': {\n visibility: 'hidden'\n }\n };\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n type: \"button\",\n className: \"p-datepicker-next p-link\"\n }, navigatorProps), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-datepicker-next-icon pi pi-chevron-right\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"isInMinYear\",\n value: function isInMinYear(viewDate) {\n return this.props.minDate && this.props.minDate.getFullYear() === viewDate.getFullYear();\n }\n }, {\n key: \"isInMaxYear\",\n value: function isInMaxYear(viewDate) {\n return this.props.maxDate && this.props.maxDate.getFullYear() === viewDate.getFullYear();\n }\n }, {\n key: \"renderTitleMonthElement\",\n value: function renderTitleMonthElement(month) {\n var _this18 = this;\n\n var monthNames = localeOption('monthNames', this.props.locale);\n\n if (this.props.monthNavigator && this.props.view !== 'month') {\n var viewDate = this.getViewDate();\n var viewMonth = viewDate.getMonth();\n var displayedMonthOptions = monthNames.map(function (month, index) {\n return (!_this18.isInMinYear(viewDate) || index >= _this18.props.minDate.getMonth()) && (!_this18.isInMaxYear(viewDate) || index <= _this18.props.maxDate.getMonth()) ? {\n label: month,\n value: index,\n index: index\n } : null;\n }).filter(function (option) {\n return !!option;\n });\n var displayedMonthNames = displayedMonthOptions.map(function (option) {\n return option.label;\n });\n var content = /*#__PURE__*/React.createElement(\"select\", {\n className: \"p-datepicker-month\",\n onChange: function onChange(e) {\n return _this18.onMonthDropdownChange(e, e.target.value);\n },\n value: viewMonth\n }, displayedMonthOptions.map(function (option) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: option.label,\n value: option.value\n }, option.label);\n }));\n\n if (this.props.monthNavigatorTemplate) {\n var defaultContentOptions = {\n onChange: this.onMonthDropdownChange,\n className: 'p-datepicker-month',\n value: viewMonth,\n names: displayedMonthNames,\n options: displayedMonthOptions,\n element: content,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.monthNavigatorTemplate, defaultContentOptions);\n }\n\n return content;\n } else {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-datepicker-month\"\n }, monthNames[month]);\n }\n }\n }, {\n key: \"renderTitleYearElement\",\n value: function renderTitleYearElement(year) {\n var _this19 = this;\n\n if (this.props.yearNavigator) {\n var yearOptions = [];\n var years = this.props.yearRange.split(':');\n var yearStart = parseInt(years[0], 10);\n var yearEnd = parseInt(years[1], 10);\n\n for (var i = yearStart; i <= yearEnd; i++) {\n yearOptions.push(i);\n }\n\n var viewDate = this.getViewDate();\n var viewYear = viewDate.getFullYear();\n var displayedYearNames = yearOptions.filter(function (year) {\n return !(_this19.props.minDate && _this19.props.minDate.getFullYear() > year) && !(_this19.props.maxDate && _this19.props.maxDate.getFullYear() < year);\n });\n var content = /*#__PURE__*/React.createElement(\"select\", {\n className: \"p-datepicker-year\",\n onChange: function onChange(e) {\n return _this19.onYearDropdownChange(e, e.target.value);\n },\n value: viewYear\n }, displayedYearNames.map(function (year) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: year,\n value: year\n }, year);\n }));\n\n if (this.props.yearNavigatorTemplate) {\n var options = displayedYearNames.map(function (name, i) {\n return {\n label: name,\n value: name,\n index: i\n };\n });\n var defaultContentOptions = {\n onChange: this.onYearDropdownChange,\n className: 'p-datepicker-year',\n value: viewYear,\n names: displayedYearNames,\n options: options,\n element: content,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.yearNavigatorTemplate, defaultContentOptions);\n }\n\n return content;\n } else {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-datepicker-year\"\n }, year);\n }\n }\n }, {\n key: \"renderTitle\",\n value: function renderTitle(monthMetaData) {\n var month = this.renderTitleMonthElement(monthMetaData.month);\n var year = this.renderTitleYearElement(monthMetaData.year);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-title\"\n }, month, year);\n }\n }, {\n key: \"renderDayNames\",\n value: function renderDayNames(weekDays) {\n var dayNames = weekDays.map(function (weekDay, index) {\n return /*#__PURE__*/React.createElement(\"th\", {\n key: \"\".concat(weekDay, \"-\").concat(index),\n scope: \"col\"\n }, /*#__PURE__*/React.createElement(\"span\", null, weekDay));\n });\n\n if (this.props.showWeek) {\n var weekHeader = /*#__PURE__*/React.createElement(\"th\", {\n scope: \"col\",\n key: 'wn',\n className: \"p-datepicker-weekheader p-disabled\"\n }, /*#__PURE__*/React.createElement(\"span\", null, localeOption('weekHeader', this.props.locale)));\n return [weekHeader].concat(_toConsumableArray(dayNames));\n } else {\n return dayNames;\n }\n }\n }, {\n key: \"renderDateCellContent\",\n value: function renderDateCellContent(date, className, groupIndex) {\n var _this20 = this;\n\n var content = this.props.dateTemplate ? this.props.dateTemplate(date) : date.day;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onClick: function onClick(e) {\n return _this20.onDateSelect(e, date);\n },\n onKeyDown: function onKeyDown(e) {\n return _this20.onDateCellKeydown(e, date, groupIndex);\n }\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderWeek\",\n value: function renderWeek(weekDates, weekNumber, groupIndex) {\n var _this21 = this;\n\n var week = weekDates.map(function (date) {\n var selected = _this21.isSelected(date);\n\n var cellClassName = classNames({\n 'p-datepicker-other-month': date.otherMonth,\n 'p-datepicker-today': date.today\n });\n var dateClassName = classNames({\n 'p-highlight': selected,\n 'p-disabled': !date.selectable\n });\n var content = date.otherMonth && !_this21.props.showOtherMonths ? null : _this21.renderDateCellContent(date, dateClassName, groupIndex);\n return /*#__PURE__*/React.createElement(\"td\", {\n key: date.day,\n className: cellClassName\n }, content);\n });\n\n if (this.props.showWeek) {\n var weekNumberCell = /*#__PURE__*/React.createElement(\"td\", {\n key: 'wn' + weekNumber,\n className: \"p-datepicker-weeknumber\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-disabled\"\n }, weekNumber));\n return [weekNumberCell].concat(_toConsumableArray(week));\n } else {\n return week;\n }\n }\n }, {\n key: \"renderDates\",\n value: function renderDates(monthMetaData, groupIndex) {\n var _this22 = this;\n\n return monthMetaData.dates.map(function (weekDates, index) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index\n }, _this22.renderWeek(weekDates, monthMetaData.weekNumbers[index], groupIndex));\n });\n }\n }, {\n key: \"renderDateViewGrid\",\n value: function renderDateViewGrid(monthMetaData, weekDays, groupIndex) {\n var dayNames = this.renderDayNames(weekDays);\n var dates = this.renderDates(monthMetaData, groupIndex);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-calendar-container\"\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"p-datepicker-calendar\"\n }, /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, dayNames)), /*#__PURE__*/React.createElement(\"tbody\", null, dates)));\n }\n }, {\n key: \"renderMonth\",\n value: function renderMonth(monthMetaData, index) {\n var weekDays = this.createWeekDays();\n var backwardNavigator = this.renderBackwardNavigator(index === 0);\n var forwardNavigator = this.renderForwardNavigator(this.props.numberOfMonths === 1 || index === this.props.numberOfMonths - 1);\n var title = this.renderTitle(monthMetaData);\n var dateViewGrid = this.renderDateViewGrid(monthMetaData, weekDays, index);\n var header = this.props.headerTemplate ? this.props.headerTemplate() : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: monthMetaData.month,\n className: \"p-datepicker-group\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-header\"\n }, header, backwardNavigator, title, forwardNavigator), dateViewGrid);\n }\n }, {\n key: \"renderMonths\",\n value: function renderMonths(monthsMetaData) {\n var _this23 = this;\n\n var groups = monthsMetaData.map(function (monthMetaData, index) {\n return _this23.renderMonth(monthMetaData, index);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-group-container\"\n }, groups);\n }\n }, {\n key: \"renderDateView\",\n value: function renderDateView() {\n var viewDate = this.getViewDate();\n var monthsMetaData = this.createMonths(viewDate.getMonth(), viewDate.getFullYear());\n var months = this.renderMonths(monthsMetaData);\n return /*#__PURE__*/React.createElement(React.Fragment, null, months);\n }\n }, {\n key: \"renderMonthViewMonth\",\n value: function renderMonthViewMonth(index) {\n var _this24 = this;\n\n var className = classNames('p-monthpicker-month', {\n 'p-highlight': this.isMonthSelected(index)\n });\n var monthNamesShort = localeOption('monthNamesShort', this.props.locale);\n var monthName = monthNamesShort[index];\n return /*#__PURE__*/React.createElement(\"span\", {\n key: monthName,\n className: className,\n onClick: function onClick(event) {\n return _this24.onMonthSelect(event, index);\n },\n onKeyDown: function onKeyDown(event) {\n return _this24.onMonthCellKeydown(event, index);\n }\n }, monthName, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderMonthViewMonths\",\n value: function renderMonthViewMonths() {\n var months = [];\n\n for (var i = 0; i <= 11; i++) {\n months.push(this.renderMonthViewMonth(i));\n }\n\n return months;\n }\n }, {\n key: \"renderMonthView\",\n value: function renderMonthView() {\n var backwardNavigator = this.renderBackwardNavigator(true);\n var forwardNavigator = this.renderForwardNavigator(true);\n var yearElement = this.renderTitleYearElement(this.getViewDate().getFullYear());\n var months = this.renderMonthViewMonths();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-group-container\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-group\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-header\"\n }, backwardNavigator, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-title\"\n }, yearElement), forwardNavigator))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-monthpicker\"\n }, months));\n }\n }, {\n key: \"renderDatePicker\",\n value: function renderDatePicker() {\n if (!this.props.timeOnly) {\n if (this.props.view === 'date') {\n return this.renderDateView();\n } else if (this.props.view === 'month') {\n return this.renderMonthView();\n } else {\n return null;\n }\n }\n }\n }, {\n key: \"renderHourPicker\",\n value: function renderHourPicker() {\n var _this25 = this;\n\n var currentTime = this.getCurrentDateTime();\n var hour = currentTime.getHours();\n\n if (this.props.hourFormat === '12') {\n if (hour === 0) hour = 12;else if (hour > 11 && hour !== 12) hour = hour - 12;\n }\n\n var hourDisplay = hour < 10 ? '0' + hour : hour;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hour-picker\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this25.onTimePickerElementMouseDown(e, 0, 1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this25.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-up\"\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"span\", null, hourDisplay), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this25.onTimePickerElementMouseDown(e, 0, -1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this25.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-down\"\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }, {\n key: \"renderMinutePicker\",\n value: function renderMinutePicker() {\n var _this26 = this;\n\n var currentTime = this.getCurrentDateTime();\n var minute = currentTime.getMinutes();\n var minuteDisplay = minute < 10 ? '0' + minute : minute;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-minute-picker\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this26.onTimePickerElementMouseDown(e, 1, 1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this26.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-up\"\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"span\", null, minuteDisplay), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this26.onTimePickerElementMouseDown(e, 1, -1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this26.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-down\"\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }, {\n key: \"renderSecondPicker\",\n value: function renderSecondPicker() {\n var _this27 = this;\n\n if (this.props.showSeconds) {\n var currentTime = this.getCurrentDateTime();\n var second = currentTime.getSeconds();\n var secondDisplay = second < 10 ? '0' + second : second;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-second-picker\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this27.onTimePickerElementMouseDown(e, 2, 1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this27.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-up\"\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"span\", null, secondDisplay), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this27.onTimePickerElementMouseDown(e, 2, -1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this27.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-down\"\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n\n return null;\n }\n }, {\n key: \"renderMiliSecondPicker\",\n value: function renderMiliSecondPicker() {\n var _this28 = this;\n\n if (this.props.showMillisec) {\n var currentTime = this.getCurrentDateTime();\n var millisecond = currentTime.getMilliseconds();\n var millisecondDisplay = millisecond < 100 ? (millisecond < 10 ? '00' : '0') + millisecond : millisecond;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-millisecond-picker\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this28.onTimePickerElementMouseDown(e, 3, 1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this28.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-up\"\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"span\", null, millisecondDisplay), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onMouseDown: function onMouseDown(e) {\n return _this28.onTimePickerElementMouseDown(e, 3, -1);\n },\n onMouseUp: this.onTimePickerElementMouseUp,\n onMouseLeave: this.onTimePickerElementMouseLeave,\n onKeyDown: function onKeyDown(e) {\n return _this28.onContainerButtonKeydown(e);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-down\"\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n\n return null;\n }\n }, {\n key: \"renderAmPmPicker\",\n value: function renderAmPmPicker() {\n if (this.props.hourFormat === '12') {\n var currentTime = this.getCurrentDateTime();\n var hour = currentTime.getHours();\n var display = hour > 11 ? 'PM' : 'AM';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-ampm-picker\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onClick: this.toggleAmPm\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-up\"\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"span\", null, display), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onClick: this.toggleAmPm\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-chevron-down\"\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n\n return null;\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(separator) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-separator\"\n }, /*#__PURE__*/React.createElement(\"span\", null, separator));\n }\n }, {\n key: \"renderTimePicker\",\n value: function renderTimePicker() {\n if (this.props.showTime || this.props.timeOnly) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-timepicker\"\n }, this.renderHourPicker(), this.renderSeparator(':'), this.renderMinutePicker(), this.props.showSeconds && this.renderSeparator(':'), this.renderSecondPicker(), this.props.showMillisec && this.renderSeparator('.'), this.renderMiliSecondPicker(), this.props.hourFormat === '12' && this.renderSeparator(':'), this.renderAmPmPicker());\n }\n\n return null;\n }\n }, {\n key: \"renderInputElement\",\n value: function renderInputElement() {\n if (!this.props.inline) {\n return /*#__PURE__*/React.createElement(InputText, {\n ref: this.inputRef,\n id: this.props.inputId,\n name: this.props.name,\n type: \"text\",\n className: this.props.inputClassName,\n style: this.props.inputStyle,\n readOnly: this.props.readOnlyInput,\n disabled: this.props.disabled,\n required: this.props.required,\n autoComplete: \"off\",\n placeholder: this.props.placeholder,\n onInput: this.onUserInput,\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onInputKeyDown,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n inputMode: this.props.inputMode\n });\n }\n\n return null;\n }\n }, {\n key: \"renderButton\",\n value: function renderButton() {\n if (this.props.showIcon) {\n return /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: this.props.icon,\n onClick: this.onButtonClick,\n tabIndex: \"-1\",\n disabled: this.props.disabled,\n className: \"p-datepicker-trigger\"\n });\n }\n\n return null;\n }\n }, {\n key: \"renderButtonBar\",\n value: function renderButtonBar() {\n var _this29 = this;\n\n if (this.props.showButtonBar) {\n var todayClassName = classNames('p-button-text', this.props.todayButtonClassName);\n var clearClassName = classNames('p-button-text', this.props.clearButtonClassName);\n\n var _localeOptions4 = localeOptions(this.props.locale),\n today = _localeOptions4.today,\n clear = _localeOptions4.clear;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-buttonbar\"\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: today,\n onClick: this.onTodayButtonClick,\n onKeyDown: function onKeyDown(e) {\n return _this29.onContainerButtonKeydown(e);\n },\n className: todayClassName\n }), /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: clear,\n onClick: this.onClearButtonClick,\n onKeyDown: function onKeyDown(e) {\n return _this29.onContainerButtonKeydown(e);\n },\n className: clearClassName\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n if (this.props.footerTemplate) {\n var content = this.props.footerTemplate();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datepicker-footer\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this30 = this;\n\n var className = classNames('p-calendar p-component p-inputwrapper', this.props.className, {\n 'p-calendar-w-btn': this.props.showIcon,\n 'p-calendar-disabled': this.props.disabled,\n 'p-calendar-timeonly': this.props.timeOnly,\n 'p-inputwrapper-filled': this.props.value || DomHandler.hasClass(this.inputRef.current, 'p-filled') && this.inputRef.current.value !== '',\n 'p-inputwrapper-focus': this.state.focused\n });\n var panelClassName = classNames('p-datepicker p-component', this.props.panelClassName, {\n 'p-datepicker-inline': this.props.inline,\n 'p-disabled': this.props.disabled,\n 'p-datepicker-timeonly': this.props.timeOnly,\n 'p-datepicker-multiple-month': this.props.numberOfMonths > 1,\n 'p-datepicker-monthpicker': this.props.view === 'month',\n 'p-datepicker-touch-ui': this.props.touchUI\n });\n var input = this.renderInputElement();\n var button = this.renderButton();\n var datePicker = this.renderDatePicker();\n var timePicker = this.renderTimePicker();\n var buttonBar = this.renderButtonBar();\n var footer = this.renderFooter();\n var isVisible = this.props.inline || this.isVisible();\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this30.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, input, button, /*#__PURE__*/React.createElement(CalendarPanel, {\n ref: this.overlayRef,\n className: panelClassName,\n style: this.props.panelStyle,\n appendTo: this.props.appendTo,\n inline: this.props.inline,\n onClick: this.onPanelClick,\n in: isVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited,\n transitionOptions: this.props.transitionOptions\n }, datePicker, timePicker, buttonBar, footer));\n }\n }]);\n\n return Calendar;\n}(Component);\n\n_defineProperty(Calendar, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n value: null,\n visible: false,\n viewDate: null,\n style: null,\n className: null,\n inline: false,\n selectionMode: 'single',\n inputId: null,\n inputStyle: null,\n inputClassName: null,\n inputMode: 'none',\n required: false,\n readOnlyInput: false,\n keepInvalid: false,\n mask: null,\n disabled: false,\n tabIndex: null,\n placeholder: null,\n showIcon: false,\n icon: 'pi pi-calendar',\n showOnFocus: true,\n numberOfMonths: 1,\n view: 'date',\n touchUI: false,\n showTime: false,\n timeOnly: false,\n showSeconds: false,\n showMillisec: false,\n hourFormat: '24',\n stepHour: 1,\n stepMinute: 1,\n stepSecond: 1,\n stepMillisec: 1,\n shortYearCutoff: '+10',\n hideOnDateTimeSelect: false,\n showWeek: false,\n locale: null,\n dateFormat: null,\n panelStyle: null,\n panelClassName: null,\n monthNavigator: false,\n yearNavigator: false,\n yearRange: null,\n disabledDates: null,\n disabledDays: null,\n minDate: null,\n maxDate: null,\n maxDateCount: null,\n showOtherMonths: true,\n selectOtherMonths: false,\n showButtonBar: false,\n todayButtonClassName: 'p-button-secondary',\n clearButtonClassName: 'p-button-secondary',\n autoZIndex: true,\n baseZIndex: 0,\n appendTo: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n dateTemplate: null,\n headerTemplate: null,\n footerTemplate: null,\n monthNavigatorTemplate: null,\n yearNavigatorTemplate: null,\n transitionOptions: null,\n onVisibleChange: null,\n onFocus: null,\n onBlur: null,\n onInput: null,\n onSelect: null,\n onChange: null,\n onViewDateChange: null,\n onTodayButtonClick: null,\n onClearButtonClick: null,\n onShow: null,\n onHide: null\n});\n\nexport { Calendar };\n","import React, { Component } from 'react';\nimport { classNames, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Avatar = /*#__PURE__*/function (_Component) {\n _inherits(Avatar, _Component);\n\n var _super = _createSuper(Avatar);\n\n function Avatar() {\n _classCallCheck(this, Avatar);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Avatar, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this = this;\n\n if (this.props.label) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-avatar-text\"\n }, this.props.label);\n } else if (this.props.icon) {\n var iconClassName = classNames('p-avatar-icon', this.props.icon);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n } else if (this.props.image) {\n var onError = function onError(e) {\n if (_this.props.onImageError) {\n _this.props.onImageError(e);\n }\n };\n\n return /*#__PURE__*/React.createElement(\"img\", {\n src: this.props.image,\n alt: this.props.imageAlt,\n onError: onError\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var containerClassName = classNames('p-avatar p-component', {\n 'p-avatar-image': this.props.image != null,\n 'p-avatar-circle': this.props.shape === 'circle',\n 'p-avatar-lg': this.props.size === 'large',\n 'p-avatar-xl': this.props.size === 'xlarge',\n 'p-avatar-clickable': !!this.props.onClick\n }, this.props.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props) : this.renderContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n style: this.props.style,\n onClick: this.props.onClick\n }, content, this.props.children);\n }\n }]);\n\n return Avatar;\n}(Component);\n\n_defineProperty(Avatar, \"defaultProps\", {\n label: null,\n icon: null,\n image: null,\n size: 'normal',\n shape: 'square',\n style: null,\n className: null,\n template: null,\n imageAlt: 'avatar',\n onImageError: null,\n onClick: null\n});\n\nexport { Avatar };\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : isCallable(it);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ProgressBar = /*#__PURE__*/function (_Component) {\n _inherits(ProgressBar, _Component);\n\n var _super = _createSuper(ProgressBar);\n\n function ProgressBar() {\n _classCallCheck(this, ProgressBar);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ProgressBar, [{\n key: \"renderLabel\",\n value: function renderLabel() {\n if (this.props.showValue && this.props.value != null) {\n var label = this.props.displayValueTemplate ? this.props.displayValueTemplate(this.props.value) : this.props.value + this.props.unit;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-progressbar-label\"\n }, label);\n }\n\n return null;\n }\n }, {\n key: \"renderDeterminate\",\n value: function renderDeterminate() {\n var className = classNames('p-progressbar p-component p-progressbar-determinate', this.props.className);\n var label = this.renderLabel();\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"progressbar\",\n id: this.props.id,\n className: className,\n style: this.props.style,\n \"aria-valuemin\": \"0\",\n \"aria-valuenow\": this.props.value,\n \"aria-valuemax\": \"100\",\n \"aria-label\": this.props.value\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-progressbar-value p-progressbar-value-animate\",\n style: {\n width: this.props.value + '%',\n display: 'block',\n backgroundColor: this.props.color\n }\n }), label);\n }\n }, {\n key: \"renderIndeterminate\",\n value: function renderIndeterminate() {\n var className = classNames('p-progressbar p-component p-progressbar-indeterminate', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"progressbar\",\n id: this.props.id,\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-progressbar-indeterminate-container\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-progressbar-value p-progressbar-value-animate\",\n style: {\n backgroundColor: this.props.color\n }\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.props.mode === 'determinate') return this.renderDeterminate();else if (this.props.mode === 'indeterminate') return this.renderIndeterminate();else throw new Error(this.props.mode + \" is not a valid mode for the ProgressBar. Valid values are 'determinate' and 'indeterminate'\");\n }\n }]);\n\n return ProgressBar;\n}(Component);\n\n_defineProperty(ProgressBar, \"defaultProps\", {\n id: null,\n value: null,\n showValue: true,\n unit: '%',\n style: null,\n className: null,\n mode: 'determinate',\n displayValueTemplate: null,\n color: null\n});\n\nexport { ProgressBar };\n","import React, { Component } from 'react';\nimport { tip, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Rating = /*#__PURE__*/function (_Component) {\n _inherits(Rating, _Component);\n\n var _super = _createSuper(Rating);\n\n function Rating(props) {\n var _this;\n\n _classCallCheck(this, Rating);\n\n _this = _super.call(this, props);\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.onStarKeyDown = _this.onStarKeyDown.bind(_assertThisInitialized(_this));\n _this.onCancelKeyDown = _this.onCancelKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Rating, [{\n key: \"rate\",\n value: function rate(event, i) {\n if (!this.props.readOnly && !this.props.disabled && this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: i,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: i\n }\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"clear\",\n value: function clear(event) {\n if (!this.props.readOnly && !this.props.disabled && this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: null,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: null\n }\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n if (nextProps.value === this.props.value && nextProps.disabled === this.props.disabled) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"onStarKeyDown\",\n value: function onStarKeyDown(event, value) {\n if (event.key === 'Enter') {\n this.rate(event, value);\n }\n }\n }, {\n key: \"onCancelKeyDown\",\n value: function onCancelKeyDown(event) {\n if (event.key === 'Enter') {\n this.clear(event);\n }\n }\n }, {\n key: \"getFocusIndex\",\n value: function getFocusIndex() {\n return this.props.disabled || this.props.readOnly ? null : 0;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderStars\",\n value: function renderStars() {\n var _this2 = this;\n\n var starsArray = [];\n\n for (var i = 0; i < this.props.stars; i++) {\n starsArray[i] = i + 1;\n }\n\n var stars = starsArray.map(function (value) {\n var iconClass = classNames('p-rating-icon', {\n 'pi pi-star-o': !_this2.props.value || value > _this2.props.value,\n 'pi pi-star': value <= _this2.props.value\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n className: iconClass,\n onClick: function onClick(e) {\n return _this2.rate(e, value);\n },\n key: value,\n tabIndex: _this2.getFocusIndex(),\n onKeyDown: function onKeyDown(e) {\n return _this2.onStarKeyDown(e, value);\n }\n });\n });\n return stars;\n }\n }, {\n key: \"renderCancelIcon\",\n value: function renderCancelIcon() {\n if (this.props.cancel) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-rating-icon p-rating-cancel pi pi-ban\",\n onClick: this.clear,\n tabIndex: this.getFocusIndex(),\n onKeyDown: this.onCancelKeyDown\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var className = classNames('p-rating', {\n 'p-disabled': this.props.disabled,\n 'p-rating-readonly': this.props.readOnly\n }, this.props.className);\n var cancelIcon = this.renderCancelIcon();\n var stars = this.renderStars();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this3.element = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, cancelIcon, stars);\n }\n }]);\n\n return Rating;\n}(Component);\n\n_defineProperty(Rating, \"defaultProps\", {\n id: null,\n value: null,\n disabled: false,\n readOnly: false,\n stars: 5,\n cancel: true,\n style: null,\n className: null,\n tooltip: null,\n tooltipOptions: null,\n onChange: null\n});\n\nexport { Rating };\n","import React, { Component } from 'react';\nimport { UniqueComponentId, DomHandler, ZIndexUtils, Ripple, classNames, ObjectUtils, CSSTransition, Portal } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Dialog = /*#__PURE__*/function (_Component) {\n _inherits(Dialog, _Component);\n\n var _super = _createSuper(Dialog);\n\n function Dialog(props) {\n var _this;\n\n _classCallCheck(this, Dialog);\n\n _this = _super.call(this, props);\n _this.state = {\n id: props.id,\n maskVisible: props.visible,\n visible: false\n };\n\n if (!_this.props.onMaximize) {\n _this.state.maximized = props.maximized;\n }\n\n _this.onClose = _this.onClose.bind(_assertThisInitialized(_this));\n _this.toggleMaximize = _this.toggleMaximize.bind(_assertThisInitialized(_this));\n _this.onDragStart = _this.onDragStart.bind(_assertThisInitialized(_this));\n _this.onResizeStart = _this.onResizeStart.bind(_assertThisInitialized(_this));\n _this.onMaskClick = _this.onMaskClick.bind(_assertThisInitialized(_this));\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.attributeSelector = UniqueComponentId();\n _this.dialogRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(Dialog, [{\n key: \"onClose\",\n value: function onClose(event) {\n this.props.onHide();\n event.preventDefault();\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var activeElement = document.activeElement;\n var isActiveElementInDialog = activeElement && this.dialogRef && this.dialogRef.current.contains(activeElement);\n\n if (!isActiveElementInDialog && this.props.closable && this.props.showHeader) {\n this.closeElement.focus();\n }\n }\n }, {\n key: \"onMaskClick\",\n value: function onMaskClick(event) {\n if (this.props.dismissableMask && this.props.modal && this.mask === event.target) {\n this.onClose(event);\n }\n\n this.props.onMaskClick && this.props.onMaskClick(event);\n }\n }, {\n key: \"toggleMaximize\",\n value: function toggleMaximize(event) {\n var maximized = !this.maximized;\n\n if (this.props.onMaximize) {\n this.props.onMaximize({\n originalEvent: event,\n maximized: maximized\n });\n } else {\n this.setState({\n maximized: maximized\n }, this.changeScrollOnMaximizable);\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event) {\n if (DomHandler.hasClass(event.target, 'p-dialog-header-icon') || DomHandler.hasClass(event.target.parentElement, 'p-dialog-header-icon')) {\n return;\n }\n\n if (this.props.draggable) {\n this.dragging = true;\n this.lastPageX = event.pageX;\n this.lastPageY = event.pageY;\n this.dialogEl.style.margin = '0';\n DomHandler.addClass(document.body, 'p-unselectable-text');\n\n if (this.props.onDragStart) {\n this.props.onDragStart(event);\n }\n }\n }\n }, {\n key: \"onDrag\",\n value: function onDrag(event) {\n if (this.dragging) {\n var width = DomHandler.getOuterWidth(this.dialogEl);\n var height = DomHandler.getOuterHeight(this.dialogEl);\n var deltaX = event.pageX - this.lastPageX;\n var deltaY = event.pageY - this.lastPageY;\n var offset = this.dialogEl.getBoundingClientRect();\n var leftPos = offset.left + deltaX;\n var topPos = offset.top + deltaY;\n var viewport = DomHandler.getViewport();\n this.dialogEl.style.position = 'fixed';\n\n if (this.props.keepInViewport) {\n if (leftPos >= this.props.minX && leftPos + width < viewport.width) {\n this.lastPageX = event.pageX;\n this.dialogEl.style.left = leftPos + 'px';\n }\n\n if (topPos >= this.props.minY && topPos + height < viewport.height) {\n this.lastPageY = event.pageY;\n this.dialogEl.style.top = topPos + 'px';\n }\n } else {\n this.lastPageX = event.pageX;\n this.dialogEl.style.left = leftPos + 'px';\n this.lastPageY = event.pageY;\n this.dialogEl.style.top = topPos + 'px';\n }\n\n if (this.props.onDrag) {\n this.props.onDrag(event);\n }\n }\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n DomHandler.removeClass(document.body, 'p-unselectable-text');\n\n if (this.props.onDragEnd) {\n this.props.onDragEnd(event);\n }\n }\n }\n }, {\n key: \"onResizeStart\",\n value: function onResizeStart(event) {\n if (this.props.resizable) {\n this.resizing = true;\n this.lastPageX = event.pageX;\n this.lastPageY = event.pageY;\n DomHandler.addClass(document.body, 'p-unselectable-text');\n\n if (this.props.onResizeStart) {\n this.props.onResizeStart(event);\n }\n }\n }\n }, {\n key: \"convertToPx\",\n value: function convertToPx(value, property, viewport) {\n !viewport && (viewport = DomHandler.getViewport());\n var val = parseInt(value);\n\n if (/^(\\d+|(\\.\\d+))(\\.\\d+)?%$/.test(value)) {\n return val * (viewport[property] / 100);\n }\n\n return val;\n }\n }, {\n key: \"onResize\",\n value: function onResize(event) {\n if (this.resizing) {\n var deltaX = event.pageX - this.lastPageX;\n var deltaY = event.pageY - this.lastPageY;\n var width = DomHandler.getOuterWidth(this.dialogEl);\n var height = DomHandler.getOuterHeight(this.dialogEl);\n var offset = this.dialogEl.getBoundingClientRect();\n var viewport = DomHandler.getViewport();\n var newWidth = width + deltaX;\n var newHeight = height + deltaY;\n var minWidth = this.convertToPx(this.dialogEl.style.minWidth, 'width', viewport);\n var minHeight = this.convertToPx(this.dialogEl.style.minHeight, 'height', viewport);\n var hasBeenDragged = !parseInt(this.dialogEl.style.top) || !parseInt(this.dialogEl.style.left);\n\n if (hasBeenDragged) {\n newWidth += deltaX;\n newHeight += deltaY;\n }\n\n if ((!minWidth || newWidth > minWidth) && offset.left + newWidth < viewport.width) {\n this.dialogEl.style.width = newWidth + 'px';\n }\n\n if ((!minHeight || newHeight > minHeight) && offset.top + newHeight < viewport.height) {\n this.dialogEl.style.height = newHeight + 'px';\n }\n\n this.lastPageX = event.pageX;\n this.lastPageY = event.pageY;\n\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n }\n }\n }, {\n key: \"onResizeEnd\",\n value: function onResizeEnd(event) {\n if (this.resizing) {\n this.resizing = false;\n DomHandler.removeClass(document.body, 'p-unselectable-text');\n\n if (this.props.onResizeEnd) {\n this.props.onResizeEnd(event);\n }\n }\n }\n }, {\n key: \"resetPosition\",\n value: function resetPosition() {\n this.dialogEl.style.position = '';\n this.dialogEl.style.left = '';\n this.dialogEl.style.top = '';\n this.dialogEl.style.margin = '';\n }\n }, {\n key: \"getPositionClass\",\n value: function getPositionClass() {\n var _this2 = this;\n\n var positions = ['center', 'left', 'right', 'top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right'];\n var pos = positions.find(function (item) {\n return item === _this2.props.position || item.replace('-', '') === _this2.props.position;\n });\n return pos ? \"p-dialog-\".concat(pos) : '';\n }\n }, {\n key: \"maximized\",\n get: function get() {\n return this.props.onMaximize ? this.props.maximized : this.state.maximized;\n }\n }, {\n key: \"dialogEl\",\n get: function get() {\n return this.dialogRef.current;\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n this.dialogEl.setAttribute(this.attributeSelector, '');\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n if (this.props.onShow) {\n this.props.onShow();\n }\n\n if (this.props.focusOnShow) {\n this.focus();\n }\n\n this.enableDocumentSettings();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n this.dragging = false;\n ZIndexUtils.clear(this.mask);\n this.setState({\n maskVisible: false\n });\n DomHandler.addClass(this.mask, 'p-component-overlay-leave');\n this.disableDocumentSettings();\n }\n }, {\n key: \"enableDocumentSettings\",\n value: function enableDocumentSettings() {\n this.bindGlobalListeners();\n\n if (this.props.blockScroll || this.props.maximizable && this.maximized) {\n DomHandler.addClass(document.body, 'p-overflow-hidden');\n }\n }\n }, {\n key: \"disableDocumentSettings\",\n value: function disableDocumentSettings() {\n this.unbindGlobalListeners();\n\n if (this.props.modal) {\n var hasBlockScroll = document.primeDialogParams && document.primeDialogParams.some(function (param) {\n return param.hasBlockScroll;\n });\n\n if (!hasBlockScroll) {\n DomHandler.removeClass(document.body, 'p-overflow-hidden');\n }\n } else if (this.props.blockScroll || this.props.maximizable && this.maximized) {\n DomHandler.removeClass(document.body, 'p-overflow-hidden');\n }\n }\n }, {\n key: \"bindGlobalListeners\",\n value: function bindGlobalListeners() {\n if (this.props.draggable) {\n this.bindDocumentDragListener();\n }\n\n if (this.props.resizable) {\n this.bindDocumentResizeListeners();\n }\n\n if (this.props.closeOnEscape && this.props.closable) {\n this.bindDocumentKeyDownListener();\n }\n }\n }, {\n key: \"unbindGlobalListeners\",\n value: function unbindGlobalListeners() {\n this.unbindDocumentDragListener();\n this.unbindDocumentResizeListeners();\n this.unbindDocumentKeyDownListener();\n }\n }, {\n key: \"bindDocumentDragListener\",\n value: function bindDocumentDragListener() {\n this.documentDragListener = this.onDrag.bind(this);\n this.documentDragEndListener = this.onDragEnd.bind(this);\n window.document.addEventListener('mousemove', this.documentDragListener);\n window.document.addEventListener('mouseup', this.documentDragEndListener);\n }\n }, {\n key: \"unbindDocumentDragListener\",\n value: function unbindDocumentDragListener() {\n if (this.documentDragListener && this.documentDragEndListener) {\n window.document.removeEventListener('mousemove', this.documentDragListener);\n window.document.removeEventListener('mouseup', this.documentDragEndListener);\n this.documentDragListener = null;\n this.documentDragEndListener = null;\n }\n }\n }, {\n key: \"bindDocumentResizeListeners\",\n value: function bindDocumentResizeListeners() {\n this.documentResizeListener = this.onResize.bind(this);\n this.documentResizeEndListener = this.onResizeEnd.bind(this);\n window.document.addEventListener('mousemove', this.documentResizeListener);\n window.document.addEventListener('mouseup', this.documentResizeEndListener);\n }\n }, {\n key: \"unbindDocumentResizeListeners\",\n value: function unbindDocumentResizeListeners() {\n if (this.documentResizeListener && this.documentResizeEndListener) {\n window.document.removeEventListener('mousemove', this.documentResizeListener);\n window.document.removeEventListener('mouseup', this.documentResizeEndListener);\n this.documentResizeListener = null;\n this.documentResizeEndListener = null;\n }\n }\n }, {\n key: \"bindDocumentKeyDownListener\",\n value: function bindDocumentKeyDownListener() {\n var _this3 = this;\n\n this.documentKeyDownListener = function (event) {\n var currentTarget = event.currentTarget;\n\n if (currentTarget && currentTarget.primeDialogParams) {\n var params = currentTarget.primeDialogParams;\n var paramLength = params.length;\n var dialogId = params[paramLength - 1] ? params[paramLength - 1].id : undefined;\n\n if (dialogId === _this3.state.id) {\n var dialog = document.getElementById(dialogId);\n\n if (event.which === 27) {\n _this3.onClose(event);\n\n event.stopImmediatePropagation();\n params.splice(paramLength - 1, 1);\n } else if (event.which === 9) {\n event.preventDefault();\n var focusableElements = DomHandler.getFocusableElements(dialog);\n\n if (focusableElements && focusableElements.length > 0) {\n if (!document.activeElement) {\n focusableElements[0].focus();\n } else {\n var focusedIndex = focusableElements.indexOf(document.activeElement);\n\n if (event.shiftKey) {\n if (focusedIndex === -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();else focusableElements[focusedIndex - 1].focus();\n } else {\n if (focusedIndex === -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();else focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n }\n }\n };\n\n var newParam = {\n id: this.state.id,\n hasBlockScroll: this.props.blockScroll\n };\n document.primeDialogParams = document.primeDialogParams ? [].concat(_toConsumableArray(document.primeDialogParams), [newParam]) : [newParam];\n document.addEventListener('keydown', this.documentKeyDownListener);\n }\n }, {\n key: \"unbindDocumentKeyDownListener\",\n value: function unbindDocumentKeyDownListener() {\n var _this4 = this;\n\n if (this.documentKeyDownListener) {\n document.removeEventListener('keydown', this.documentKeyDownListener);\n document.primeDialogParams = document.primeDialogParams && document.primeDialogParams.filter(function (param) {\n return param.id !== _this4.state.id;\n });\n this.documentKeyDownListener = null;\n }\n }\n }, {\n key: \"createStyle\",\n value: function createStyle() {\n if (!this.styleElement) {\n this.styleElement = document.createElement('style');\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n\n for (var breakpoint in this.props.breakpoints) {\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-dialog[\").concat(this.attributeSelector, \"] {\\n width: \").concat(this.props.breakpoints[breakpoint], \" !important;\\n }\\n }\\n \");\n }\n\n this.styleElement.innerHTML = innerHTML;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this5 = this;\n\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n\n if (this.props.visible) {\n this.setState({\n visible: true\n }, function () {\n ZIndexUtils.set('modal', _this5.mask, _this5.props.baseZIndex);\n });\n }\n\n if (this.props.breakpoints) {\n this.createStyle();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this6 = this;\n\n if (this.props.visible && !this.state.maskVisible) {\n this.setState({\n maskVisible: true\n }, function () {\n ZIndexUtils.set('modal', _this6.mask, _this6.props.baseZIndex);\n });\n }\n\n if (this.props.visible !== this.state.visible && this.state.maskVisible) {\n this.setState({\n visible: this.props.visible\n });\n }\n\n if (prevProps.maximized !== this.props.maximized && this.props.onMaximize) {\n this.changeScrollOnMaximizable();\n }\n }\n }, {\n key: \"changeScrollOnMaximizable\",\n value: function changeScrollOnMaximizable() {\n if (!this.props.blockScroll) {\n var funcName = this.maximized ? 'addClass' : 'removeClass';\n DomHandler[funcName](document.body, 'p-overflow-hidden');\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.disableDocumentSettings();\n\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n\n ZIndexUtils.clear(this.mask);\n }\n }, {\n key: \"renderCloseIcon\",\n value: function renderCloseIcon() {\n var _this7 = this;\n\n if (this.props.closable) {\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: function ref(el) {\n return _this7.closeElement = el;\n },\n type: \"button\",\n className: \"p-dialog-header-icon p-dialog-header-close p-link\",\n \"aria-label\": this.props.ariaCloseIconLabel,\n onClick: this.onClose\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-dialog-header-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderMaximizeIcon\",\n value: function renderMaximizeIcon() {\n var iconClassName = classNames('p-dialog-header-maximize-icon pi', {\n 'pi-window-maximize': !this.maximized,\n 'pi-window-minimize': this.maximized\n });\n\n if (this.props.maximizable) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-dialog-header-icon p-dialog-header-maximize p-link\",\n onClick: this.toggleMaximize\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n var _this8 = this;\n\n if (this.props.showHeader) {\n var closeIcon = this.renderCloseIcon();\n var maximizeIcon = this.renderMaximizeIcon();\n var icons = ObjectUtils.getJSXElement(this.props.icons, this.props);\n var header = ObjectUtils.getJSXElement(this.props.header, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this8.headerEl = el;\n },\n className: \"p-dialog-header\",\n onMouseDown: this.onDragStart\n }, /*#__PURE__*/React.createElement(\"div\", {\n id: this.state.id + '_header',\n className: \"p-dialog-title\"\n }, header), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dialog-header-icons\"\n }, icons, maximizeIcon, closeIcon));\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this9 = this;\n\n var contentClassName = classNames('p-dialog-content', this.props.contentClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.state.id + '_content',\n ref: function ref(el) {\n return _this9.contentEl = el;\n },\n className: contentClassName,\n style: this.props.contentStyle\n }, this.props.children);\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n var _this10 = this;\n\n var footer = ObjectUtils.getJSXElement(this.props.footer, this.props);\n return footer && /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this10.footerElement = el;\n },\n className: \"p-dialog-footer\"\n }, footer);\n }\n }, {\n key: \"renderResizer\",\n value: function renderResizer() {\n if (this.props.resizable) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-resizable-handle\",\n style: {\n zIndex: 90\n },\n onMouseDown: this.onResizeStart\n });\n }\n\n return null;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this11 = this;\n\n var className = classNames('p-dialog p-component', this.props.className, {\n 'p-dialog-rtl': this.props.rtl,\n 'p-dialog-maximized': this.maximized\n });\n var maskClassName = classNames('p-dialog-mask', {\n 'p-component-overlay p-component-overlay-enter': this.props.modal,\n 'p-dialog-visible': this.state.maskVisible,\n 'p-dialog-draggable': this.props.draggable,\n 'p-dialog-resizable': this.props.resizable\n }, this.props.maskClassName, this.getPositionClass());\n var header = this.renderHeader();\n var content = this.renderContent();\n var footer = this.renderFooter();\n var resizer = this.renderResizer();\n var transitionTimeout = {\n enter: this.props.position === 'center' ? 150 : 300,\n exit: this.props.position === 'center' ? 150 : 300\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this11.mask = el;\n },\n className: maskClassName,\n onClick: this.onMaskClick\n }, /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.dialogRef,\n classNames: \"p-dialog\",\n timeout: transitionTimeout,\n in: this.state.visible,\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.dialogRef,\n id: this.state.id,\n className: className,\n style: this.props.style,\n onClick: this.props.onClick,\n role: \"dialog\",\n \"aria-labelledby\": this.state.id + '_header',\n \"aria-describedby\": this.state.id + '_content',\n \"aria-modal\": this.props.modal\n }, header, content, footer, resizer)));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.state.maskVisible) {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo,\n visible: true\n });\n }\n\n return null;\n }\n }]);\n\n return Dialog;\n}(Component);\n\n_defineProperty(Dialog, \"defaultProps\", {\n id: null,\n header: null,\n footer: null,\n visible: false,\n position: 'center',\n draggable: true,\n resizable: true,\n modal: true,\n onHide: null,\n onShow: null,\n contentStyle: null,\n contentClassName: null,\n closeOnEscape: true,\n dismissableMask: false,\n rtl: false,\n closable: true,\n style: null,\n className: null,\n maskClassName: null,\n showHeader: true,\n appendTo: null,\n baseZIndex: 0,\n maximizable: false,\n blockScroll: false,\n icons: null,\n ariaCloseIconLabel: 'Close',\n focusOnShow: true,\n minX: 0,\n minY: 0,\n keepInViewport: true,\n maximized: false,\n breakpoints: null,\n transitionOptions: null,\n onMaximize: null,\n onDragStart: null,\n onDrag: null,\n onDragEnd: null,\n onResizeStart: null,\n onResize: null,\n onResizeEnd: null,\n onClick: null,\n onMaskClick: null\n});\n\nexport { Dialog };\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React, { Component } from 'react';\nimport { ObjectUtils, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar VirtualScroller = /*#__PURE__*/function (_Component) {\n _inherits(VirtualScroller, _Component);\n\n var _super = _createSuper(VirtualScroller);\n\n function VirtualScroller(props) {\n var _this;\n\n _classCallCheck(this, VirtualScroller);\n\n _this = _super.call(this, props);\n\n var isBoth = _this.isBoth();\n\n _this.state = {\n first: isBoth ? {\n rows: 0,\n cols: 0\n } : 0,\n last: isBoth ? {\n rows: 0,\n cols: 0\n } : 0,\n numItemsInViewport: isBoth ? {\n rows: 0,\n cols: 0\n } : 0,\n numToleratedItems: props.numToleratedItems,\n loading: false\n };\n _this.onScroll = _this.onScroll.bind(_assertThisInitialized(_this));\n _this.lastScrollPos = isBoth ? {\n top: 0,\n left: 0\n } : 0;\n return _this;\n }\n\n _createClass(VirtualScroller, [{\n key: \"scrollTo\",\n value: function scrollTo(options) {\n this.element && this.element.scrollTo(options);\n }\n }, {\n key: \"scrollToIndex\",\n value: function scrollToIndex(index) {\n var _this2 = this;\n\n var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var first = this.state.first;\n var itemSize = this.props.itemSize;\n var contentPadding = this.getContentPadding();\n\n var calculateFirst = function calculateFirst() {\n var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n return _index <= _this2.state.numToleratedItems ? 0 : _index;\n };\n\n var calculateCoord = function calculateCoord(_first, _size, _padding) {\n return _first * _size + _padding;\n };\n\n var scrollTo = function scrollTo() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return _this2.scrollTo({\n left: left,\n top: top,\n behavior: behavior\n });\n };\n\n if (isBoth) {\n var newFirst = {\n rows: calculateFirst(index[0]),\n cols: calculateFirst(index[1])\n };\n (newFirst.rows !== first.rows || newFirst.cols !== first.cols) && scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPadding.left), calculateCoord(newFirst.rows, itemSize[0], contentPadding.top));\n } else {\n var _newFirst = calculateFirst(index);\n\n if (_newFirst !== first) {\n isHorizontal ? scrollTo(calculateCoord(_newFirst, itemSize, contentPadding.left), 0) : scrollTo(0, calculateCoord(_newFirst, itemSize, contentPadding.top));\n }\n }\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(index, to) {\n var _this3 = this;\n\n var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';\n\n if (to) {\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n\n var _this$getRenderedRang = this.getRenderedRange(),\n first = _this$getRenderedRang.first,\n viewport = _this$getRenderedRang.viewport;\n\n var itemSize = this.props.itemSize;\n\n var scrollTo = function scrollTo() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return _this3.scrollTo({\n left: left,\n top: top,\n behavior: behavior\n });\n };\n\n var isToStart = to === 'to-start';\n var isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (isBoth) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * itemSize, (viewport.first.rows - 1) * itemSize);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * itemSize, viewport.first.rows * itemSize);\n }\n } else {\n if (viewport.first - first > index) {\n var pos = (viewport.first - 1) * itemSize;\n isHorizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (isBoth) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * itemSize, (viewport.first.rows + 1) * itemSize);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * itemSize, viewport.first.rows * itemSize);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n var _pos2 = (viewport.first + 1) * itemSize;\n\n isHorizontal ? scrollTo(_pos2, 0) : scrollTo(0, _pos2);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n }, {\n key: \"getRenderedRange\",\n value: function getRenderedRange() {\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last,\n numItemsInViewport = _this$state.numItemsInViewport;\n var itemSize = this.props.itemSize;\n\n var calculateFirstInViewport = function calculateFirstInViewport(_pos, _size) {\n return Math.floor(_pos / (_size || _pos));\n };\n\n var firstInViewport = first;\n var lastInViewport = 0;\n\n if (this.element) {\n var scrollTop = this.element.scrollTop;\n var scrollLeft = this.element.scrollLeft;\n\n if (isBoth) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, itemSize[0]),\n cols: calculateFirstInViewport(scrollLeft, itemSize[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + numItemsInViewport.rows,\n cols: firstInViewport.cols + numItemsInViewport.cols\n };\n } else {\n var scrollPos = isHorizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, itemSize);\n lastInViewport = firstInViewport + numItemsInViewport;\n }\n }\n\n return {\n first: first,\n last: last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.props.orientation === 'horizontal';\n }\n }, {\n key: \"isBoth\",\n value: function isBoth() {\n return this.props.orientation === 'both';\n }\n }, {\n key: \"calculateOptions\",\n value: function calculateOptions() {\n var _this4 = this;\n\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var first = this.state.first;\n var itemSize = this.props.itemSize;\n var contentPadding = this.getContentPadding();\n var contentWidth = this.element ? this.element.offsetWidth - contentPadding.left : 0;\n var contentHeight = this.element ? this.element.offsetHeight - contentPadding.top : 0;\n\n var calculateNumItemsInViewport = function calculateNumItemsInViewport(_contentSize, _itemSize) {\n return Math.ceil(_contentSize / (_itemSize || _contentSize));\n };\n\n var numItemsInViewport = isBoth ? {\n rows: calculateNumItemsInViewport(contentHeight, itemSize[0]),\n cols: calculateNumItemsInViewport(contentWidth, itemSize[1])\n } : calculateNumItemsInViewport(isHorizontal ? contentWidth : contentHeight, itemSize);\n var numToleratedItems = this.state.numToleratedItems || Math.ceil((isBoth ? numItemsInViewport.rows : numItemsInViewport) / 2);\n\n var calculateLast = function calculateLast(_first, _num, _isCols) {\n return _this4.getLast(_first + _num + (_first < numToleratedItems ? 2 : 3) * numToleratedItems, _isCols);\n };\n\n var last = isBoth ? {\n rows: calculateLast(first.rows, numItemsInViewport.rows),\n cols: calculateLast(first.cols, numItemsInViewport.cols, true)\n } : calculateLast(first, numItemsInViewport);\n var state = {\n numItemsInViewport: numItemsInViewport,\n last: last,\n numToleratedItems: numToleratedItems\n };\n\n if (this.props.showLoader) {\n state['loaderArr'] = Array.from({\n length: isBoth ? numItemsInViewport.rows : numItemsInViewport\n });\n }\n\n this.setState(state, function () {\n if (_this4.props.lazy) {\n _this4.props.onLazyLoad && _this4.props.onLazyLoad({\n first: _this4.state.first,\n last: _this4.state.last\n });\n }\n });\n }\n }, {\n key: \"getLast\",\n value: function getLast(last, isCols) {\n return this.props.items ? Math.min(isCols ? this.props.items[0].length : this.props.items.length, last) : 0;\n }\n }, {\n key: \"getContentPadding\",\n value: function getContentPadding() {\n if (this.content) {\n var style = getComputedStyle(this.content);\n var left = parseInt(style.paddingLeft, 10);\n var right = parseInt(style.paddingRight, 10);\n var top = parseInt(style.paddingTop, 10);\n var bottom = parseInt(style.paddingBottom, 10);\n return {\n left: left,\n right: right,\n top: top,\n bottom: bottom,\n x: left + right,\n y: top + bottom\n };\n }\n\n return {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n x: 0,\n y: 0\n };\n }\n }, {\n key: \"setSize\",\n value: function setSize() {\n var _this5 = this;\n\n if (this.element) {\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var parentElement = this.element.parentElement;\n var width = this.props.scrollWidth || \"\".concat(this.element.offsetWidth || parentElement.offsetWidth, \"px\");\n var height = this.props.scrollHeight || \"\".concat(this.element.offsetHeight || parentElement.offsetHeight, \"px\");\n\n var setProp = function setProp(_name, _value) {\n return _this5.element.style[_name] = _value;\n };\n\n if (isBoth) {\n setProp('height', height);\n setProp('width', width);\n } else {\n isHorizontal ? setProp('width', width) : setProp('height', height);\n }\n }\n }\n }, {\n key: \"setSpacerSize\",\n value: function setSpacerSize() {\n var _this6 = this;\n\n var items = this.props.items;\n\n if (this.spacer && items) {\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var itemSize = this.props.itemSize;\n var contentPadding = this.getContentPadding();\n\n var setProp = function setProp(_name, _value, _size) {\n var _padding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n return _this6.spacer.style[_name] = (_value || []).length * _size + _padding + 'px';\n };\n\n if (isBoth) {\n setProp('height', items[0], itemSize[0], contentPadding.y);\n setProp('width', items[1], itemSize[1], contentPadding.x);\n } else {\n isHorizontal ? setProp('width', items, itemSize, contentPadding.x) : setProp('height', items, itemSize, contentPadding.y);\n }\n }\n }\n }, {\n key: \"setContentPosition\",\n value: function setContentPosition(pos) {\n var _this7 = this;\n\n if (this.content) {\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var first = pos ? pos.first : this.state.first;\n var itemSize = this.props.itemSize;\n\n var calculateTranslateVal = function calculateTranslateVal(_first, _size) {\n return _first * _size;\n };\n\n var setTransform = function setTransform() {\n var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n return _this7.content.style.transform = \"translate3d(\".concat(_x, \"px, \").concat(_y, \"px, 0)\");\n };\n\n if (isBoth) {\n setTransform(calculateTranslateVal(first.cols, itemSize[1]), calculateTranslateVal(first.rows, itemSize[0]));\n } else {\n var translateVal = calculateTranslateVal(first, itemSize);\n isHorizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n }, {\n key: \"onScrollPositionChange\",\n value: function onScrollPositionChange(event) {\n var _this8 = this;\n\n var target = event.target;\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last,\n numItemsInViewport = _this$state2.numItemsInViewport,\n numToleratedItems = _this$state2.numToleratedItems;\n var itemSize = this.props.itemSize;\n var contentPadding = this.getContentPadding();\n\n var calculateScrollPos = function calculateScrollPos(_pos, _padding) {\n return _pos ? _pos > _padding ? _pos - _padding : _pos : 0;\n };\n\n var calculateCurrentIndex = function calculateCurrentIndex(_pos, _size) {\n return Math.floor(_pos / (_size || _pos));\n };\n\n var calculateTriggerIndex = function calculateTriggerIndex(_currentIndex, _first, _last, _num, _isScrollDownOrRight) {\n return _currentIndex <= numToleratedItems ? numToleratedItems : _isScrollDownOrRight ? _last - _num - numToleratedItems : _first + numToleratedItems - 1;\n };\n\n var calculateFirst = function calculateFirst(_currentIndex, _triggerIndex, _first, _last, _num, _isScrollDownOrRight) {\n if (_currentIndex <= numToleratedItems) return 0;else return _isScrollDownOrRight ? _currentIndex < _triggerIndex ? _first : _currentIndex - numToleratedItems : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * numToleratedItems;\n };\n\n var calculateLast = function calculateLast(_currentIndex, _first, _last, _num, _isCols) {\n var lastValue = _first + _num + 2 * numToleratedItems;\n\n if (_currentIndex >= numToleratedItems) {\n lastValue += numToleratedItems + 1;\n }\n\n return _this8.getLast(lastValue, _isCols);\n };\n\n var scrollTop = calculateScrollPos(target.scrollTop, contentPadding.top);\n var scrollLeft = calculateScrollPos(target.scrollLeft, contentPadding.left);\n var newFirst = 0;\n var newLast = last;\n var isRangeChanged = false;\n\n if (isBoth) {\n var isScrollDown = this.lastScrollPos.top <= scrollTop;\n var isScrollRight = this.lastScrollPos.left <= scrollLeft;\n var currentIndex = {\n rows: calculateCurrentIndex(scrollTop, itemSize[0]),\n cols: calculateCurrentIndex(scrollLeft, itemSize[1])\n };\n var triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, first.rows, last.rows, numItemsInViewport.rows, isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, first.cols, last.cols, numItemsInViewport.cols, isScrollRight)\n };\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, first.rows, last.rows, numItemsInViewport.rows, isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, first.cols, last.cols, numItemsInViewport.cols, isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, last.rows, numItemsInViewport.rows),\n cols: calculateLast(currentIndex.cols, newFirst.cols, last.cols, numItemsInViewport.cols, true)\n };\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols || newLast.rows !== last.rows || newLast.cols !== last.cols;\n this.lastScrollPos = {\n top: scrollTop,\n left: scrollLeft\n };\n } else {\n var scrollPos = isHorizontal ? scrollLeft : scrollTop;\n var isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n var _currentIndex2 = calculateCurrentIndex(scrollPos, itemSize);\n\n var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, first, last, numItemsInViewport, isScrollDownOrRight);\n\n newFirst = calculateFirst(_currentIndex2, _triggerIndex2, first, last, numItemsInViewport, isScrollDownOrRight);\n newLast = calculateLast(_currentIndex2, newFirst, last, numItemsInViewport);\n isRangeChanged = newFirst !== first || newLast !== last;\n this.lastScrollPos = scrollPos;\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged: isRangeChanged\n };\n }\n }, {\n key: \"onScrollChange\",\n value: function onScrollChange(event) {\n var _this9 = this;\n\n var _this$onScrollPositio = this.onScrollPositionChange(event),\n first = _this$onScrollPositio.first,\n last = _this$onScrollPositio.last,\n isRangeChanged = _this$onScrollPositio.isRangeChanged;\n\n if (isRangeChanged) {\n var newState = {\n first: first,\n last: last\n };\n this.setContentPosition(newState);\n\n if (this.props.lazy) {\n this.props.onLazyLoad && this.props.onLazyLoad(newState);\n }\n\n this.setState(newState, function () {\n _this9.props.onScrollIndexChange && _this9.props.onScrollIndexChange(newState);\n });\n }\n }\n }, {\n key: \"onScroll\",\n value: function onScroll(event) {\n var _this10 = this;\n\n this.props.onScroll && this.props.onScroll(event);\n\n if (this.props.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.state.loading && this.props.showLoader) {\n var _this$onScrollPositio2 = this.onScrollPositionChange(event),\n changed = _this$onScrollPositio2.isRangeChanged;\n\n changed && this.setState({\n loading: true\n });\n }\n\n this.scrollTimeout = setTimeout(function () {\n _this10.onScrollChange(event);\n\n if (_this10.state.loading && _this10.props.showLoader && !_this10.props.lazy) {\n _this10.setState({\n loading: false\n });\n }\n }, this.props.delay);\n } else {\n this.onScrollChange(event);\n }\n }\n }, {\n key: \"getOptions\",\n value: function getOptions(index, count) {\n return {\n index: index,\n count: count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n props: this.props\n };\n }\n }, {\n key: \"init\",\n value: function init() {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.init();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (prevProps.itemSize !== this.props.itemSize || !prevProps.items || prevProps.items.length !== (this.props.items || []).length) {\n this.init();\n }\n\n if (this.props.lazy && prevProps.loading !== this.props.loading && this.state.loading !== this.props.loading) {\n this.setState({\n loading: this.props.loading\n });\n }\n\n if (prevProps.orientation !== this.props.orientation) {\n this.lastScrollPos = this.isBoth() ? {\n top: 0,\n left: 0\n } : 0;\n }\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index, count, passedItem) {\n var options = this.getOptions(index, count);\n var content = ObjectUtils.getJSXElement(this.props.itemTemplate, passedItem || item, options);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: index\n }, content);\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this11 = this;\n\n var items = this.props.items;\n\n if (items && !this.state.loading) {\n var isBoth = this.isBoth();\n var _this$state3 = this.state,\n first = _this$state3.first,\n last = _this$state3.last;\n var count = items.length;\n\n if (isBoth) {\n return items.slice(first.rows, last.rows).map(function (item, i) {\n var items = item.slice(first.cols, last.cols);\n var index = first.rows + i;\n return _this11.renderItem(item, index, count, items);\n });\n } else {\n return items.slice(first, last).map(function (item, i) {\n var index = first + i;\n return _this11.renderItem(item, index, count);\n });\n }\n }\n\n return null;\n }\n }, {\n key: \"renderLoaderItem\",\n value: function renderLoaderItem(index, count, extOptions) {\n var options = _objectSpread(_objectSpread({}, this.getOptions(index, count)), extOptions || {});\n\n var content = ObjectUtils.getJSXElement(this.props.loadingTemplate, options);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: index\n }, content);\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n var _this12 = this;\n\n if (this.state.loading) {\n var className = classNames('p-virtualscroller-loader', {\n 'p-component-overlay': !this.props.loadingTemplate\n });\n var content = /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-virtualscroller-loading-icon pi pi-spinner pi-spin\"\n });\n\n if (this.props.loadingTemplate) {\n var isBoth = this.isBoth();\n var numItemsInViewport = this.state.numItemsInViewport;\n var length = isBoth ? numItemsInViewport.rows : numItemsInViewport;\n content = this.state.loaderArr.map(function (_, index) {\n return _this12.renderLoaderItem(index, length, isBoth && {\n numCols: numItemsInViewport.cols\n });\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this13 = this;\n\n var items = this.renderItems();\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-virtualscroller-content\",\n ref: function ref(el) {\n return _this13.content = el;\n }\n }, items);\n\n if (this.props.contentTemplate) {\n var _this$state4 = this.state,\n loading = _this$state4.loading,\n first = _this$state4.first,\n last = _this$state4.last;\n var defaultOptions = {\n className: 'p-virtualscroller-content',\n ref: function ref(el) {\n return _this13.content = el;\n },\n children: items,\n element: content,\n props: this.props,\n loading: loading,\n first: first,\n last: last\n };\n return ObjectUtils.getJSXElement(this.props.contentTemplate, defaultOptions);\n }\n\n return content;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this14 = this;\n\n var isBoth = this.isBoth();\n var isHorizontal = this.isHorizontal();\n var className = classNames('p-virtualscroller', {\n 'p-both-scroll': isBoth,\n 'p-horizontal-scroll': isHorizontal\n }, this.props.className);\n var loader = this.renderLoader();\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this14.element = el;\n },\n className: className,\n tabIndex: 0,\n style: this.props.style,\n onScroll: this.onScroll\n }, content, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this14.spacer = el;\n },\n className: \"p-virtualscroller-spacer\"\n }), loader);\n }\n }]);\n\n return VirtualScroller;\n}(Component);\n\n_defineProperty(VirtualScroller, \"defaultProps\", {\n id: null,\n style: null,\n className: null,\n items: null,\n itemSize: 0,\n scrollHeight: null,\n scrollWidth: null,\n orientation: 'vertical',\n numToleratedItems: null,\n delay: 0,\n lazy: false,\n showLoader: false,\n loadingTemplate: null,\n itemTemplate: null,\n contentTemplate: null,\n onScroll: null,\n onScrollIndexChange: null,\n onLazyLoad: null\n});\n\nexport { VirtualScroller };\n","import React, { Component } from 'react';\nimport { Button } from 'primereact/button';\nimport { classNames, ObjectUtils, CSSTransition, Portal, OverlayService, ZIndexUtils, DomHandler, ConnectedOverlayScrollHandler, UniqueComponentId, tip } from 'primereact/core';\nimport PrimeReact from 'primereact/api';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar SplitButtonItem = /*#__PURE__*/function (_Component) {\n _inherits(SplitButtonItem, _Component);\n\n var _super = _createSuper$2(SplitButtonItem);\n\n function SplitButtonItem(props) {\n var _this;\n\n _classCallCheck(this, SplitButtonItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SplitButtonItem, [{\n key: \"onClick\",\n value: function onClick(e) {\n if (this.props.menuitem.command) {\n this.props.menuitem.command({\n originalEvent: e,\n item: this.props.menuitem\n });\n }\n\n if (this.props.onItemClick) {\n this.props.onItemClick(e);\n }\n\n e.preventDefault();\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator() {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem() {\n var _this2 = this;\n\n var _this$props$menuitem = this.props.menuitem,\n disabled = _this$props$menuitem.disabled,\n icon = _this$props$menuitem.icon,\n label = _this$props$menuitem.label,\n template = _this$props$menuitem.template,\n url = _this$props$menuitem.url,\n target = _this$props$menuitem.target;\n var className = classNames('p-menuitem-link', {\n 'p-disabled': disabled\n });\n var iconClassName = classNames('p-menuitem-icon', icon);\n icon = icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n label = label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, label);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: url || '#',\n role: \"menuitem\",\n className: className,\n target: target,\n onClick: this.onClick\n }, icon, label);\n\n if (template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this2.onClick(event);\n },\n className: className,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(template, this.props.menuitem, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-menuitem\",\n role: \"none\"\n }, content);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem() {\n if (this.props.menuitem.separator) {\n return this.renderSeparator();\n }\n\n return this.renderMenuitem();\n }\n }, {\n key: \"render\",\n value: function render() {\n var item = this.renderItem();\n return item;\n }\n }]);\n\n return SplitButtonItem;\n}(Component);\n\n_defineProperty(SplitButtonItem, \"defaultProps\", {\n menuitem: null,\n onItemClick: null\n});\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar SplitButtonPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(SplitButtonPanelComponent, _Component);\n\n var _super = _createSuper$1(SplitButtonPanelComponent);\n\n function SplitButtonPanelComponent() {\n _classCallCheck(this, SplitButtonPanelComponent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SplitButtonPanelComponent, [{\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-menu p-menu-overlay p-component', this.props.menuClassName);\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.props.onEnter,\n onEntered: this.props.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n style: this.props.menuStyle,\n id: this.props.id,\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-menu-list p-reset\",\n role: \"menu\"\n }, this.props.children)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return SplitButtonPanelComponent;\n}(Component);\n\n_defineProperty(SplitButtonPanelComponent, \"defaultProps\", {\n appendTo: null,\n menuStyle: null,\n menuClassName: null,\n id: null,\n onClick: null\n});\n\nvar SplitButtonPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SplitButtonPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar SplitButton = /*#__PURE__*/function (_Component) {\n _inherits(SplitButton, _Component);\n\n var _super = _createSuper(SplitButton);\n\n function SplitButton(props) {\n var _this;\n\n _classCallCheck(this, SplitButton);\n\n _this = _super.call(this, props);\n _this.state = {\n id: props.id,\n overlayVisible: false\n };\n _this.onDropdownButtonClick = _this.onDropdownButtonClick.bind(_assertThisInitialized(_this));\n _this.onItemClick = _this.onItemClick.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(SplitButton, [{\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"onDropdownButtonClick\",\n value: function onDropdownButtonClick() {\n if (this.state.overlayVisible) this.hide();else this.show();\n }\n }, {\n key: \"onItemClick\",\n value: function onItemClick() {\n this.hide();\n }\n }, {\n key: \"show\",\n value: function show() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter() {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.alignOverlay();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered() {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n DomHandler.alignOverlay(this.overlayRef.current, this.defaultButton.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this2 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this2.state.overlayVisible && _this2.isOutsideClicked(event)) {\n _this2.hide();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this3 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this3.state.overlayVisible) {\n _this3.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this4 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this4.state.overlayVisible && !DomHandler.isAndroid()) {\n _this4.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && this.overlayRef && this.overlayRef.current && !this.overlayRef.current.contains(event.target);\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this5 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (menuitem, index) {\n return /*#__PURE__*/React.createElement(SplitButtonItem, {\n menuitem: menuitem,\n key: index,\n onItemClick: _this5.onItemClick\n });\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames('p-splitbutton p-component', this.props.className, {\n 'p-disabled': this.props.disabled\n });\n var items = this.renderItems();\n var buttonContent = this.props.buttonTemplate ? ObjectUtils.getJSXElement(this.props.buttonTemplate, this.props) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.state.id,\n className: className,\n style: this.props.style,\n ref: function ref(el) {\n return _this6.container = el;\n }\n }, /*#__PURE__*/React.createElement(Button, {\n ref: function ref(el) {\n return _this6.defaultButton = el;\n },\n type: \"button\",\n className: \"p-splitbutton-defaultbutton\",\n icon: this.props.icon,\n label: this.props.label,\n onClick: this.props.onClick,\n disabled: this.props.disabled,\n tabIndex: this.props.tabIndex\n }, buttonContent), /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: \"p-splitbutton-menubutton\",\n icon: this.props.dropdownIcon,\n onClick: this.onDropdownButtonClick,\n disabled: this.props.disabled,\n \"aria-expanded\": this.state.overlayVisible,\n \"aria-haspopup\": true,\n \"aria-owns\": this.state.id + '_overlay'\n }), /*#__PURE__*/React.createElement(SplitButtonPanel, {\n ref: this.overlayRef,\n appendTo: this.props.appendTo,\n id: this.state.id + '_overlay',\n menuStyle: this.props.menuStyle,\n menuClassName: this.props.menuClassName,\n onClick: this.onPanelClick,\n in: this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited,\n transitionOptions: this.props.transitionOptions\n }, items));\n }\n }]);\n\n return SplitButton;\n}(Component);\n\n_defineProperty(SplitButton, \"defaultProps\", {\n id: null,\n label: null,\n icon: null,\n model: null,\n disabled: null,\n style: null,\n className: null,\n menuStyle: null,\n menuClassName: null,\n tabIndex: null,\n appendTo: null,\n tooltip: null,\n tooltipOptions: null,\n buttonTemplate: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n onClick: null,\n onShow: null,\n onHide: null\n});\n\nexport { SplitButton };\n","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Skeleton = /*#__PURE__*/function (_Component) {\n _inherits(Skeleton, _Component);\n\n var _super = _createSuper(Skeleton);\n\n function Skeleton() {\n _classCallCheck(this, Skeleton);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Skeleton, [{\n key: \"skeletonStyle\",\n value: function skeletonStyle() {\n if (this.props.size) return {\n width: this.props.size,\n height: this.props.size,\n borderRadius: this.props.borderRadius\n };else return {\n width: this.props.width,\n height: this.props.height,\n borderRadius: this.props.borderRadius\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var skeletonClassName = classNames('p-skeleton p-component', {\n 'p-skeleton-circle': this.props.shape === 'circle',\n 'p-skeleton-none': this.props.animation === 'none'\n }, this.props.className);\n var style = this.skeletonStyle();\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: skeletonClassName\n });\n }\n }]);\n\n return Skeleton;\n}(Component);\n\n_defineProperty(Skeleton, \"defaultProps\", {\n shape: 'rectangle',\n size: null,\n width: '100%',\n height: '1rem',\n borderRadius: null,\n animation: 'wave',\n style: null,\n className: null\n});\n\nexport { Skeleton };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar SplitterPanel = /*#__PURE__*/function (_Component) {\n _inherits(SplitterPanel, _Component);\n\n var _super = _createSuper(SplitterPanel);\n\n function SplitterPanel() {\n _classCallCheck(this, SplitterPanel);\n\n return _super.apply(this, arguments);\n }\n\n return SplitterPanel;\n}(Component);\n\n_defineProperty(SplitterPanel, \"defaultProps\", {\n size: null,\n minSize: null,\n style: null,\n className: null\n});\n\nvar Splitter = /*#__PURE__*/function (_Component2) {\n _inherits(Splitter, _Component2);\n\n var _super2 = _createSuper(Splitter);\n\n function Splitter() {\n _classCallCheck(this, Splitter);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Splitter, [{\n key: \"bindMouseListeners\",\n value: function bindMouseListeners() {\n var _this = this;\n\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = function (event) {\n return _this.onResize(event);\n };\n\n document.addEventListener('mousemove', this.mouseMoveListener);\n }\n\n if (!this.mouseUpListener) {\n this.mouseUpListener = function (event) {\n _this.onResizeEnd(event);\n\n _this.unbindMouseListeners();\n };\n\n document.addEventListener('mouseup', this.mouseUpListener);\n }\n }\n }, {\n key: \"validateResize\",\n value: function validateResize(newPrevPanelSize, newNextPanelSize) {\n if (this.props.children[this.prevPanelIndex].props && this.props.children[this.prevPanelIndex].props.minSize && this.props.children[this.prevPanelIndex].props.minSize > newPrevPanelSize) {\n return false;\n }\n\n if (this.props.children[this.prevPanelIndex + 1].props && this.props.children[this.prevPanelIndex + 1].props.minSize && this.props.children[this.prevPanelIndex + 1].props.minSize > newNextPanelSize) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"unbindMouseListeners\",\n value: function unbindMouseListeners() {\n if (this.mouseMoveListener) {\n document.removeEventListener('mousemove', this.mouseMoveListener);\n this.mouseMoveListener = null;\n }\n\n if (this.mouseUpListener) {\n document.removeEventListener('mouseup', this.mouseUpListener);\n this.mouseUpListener = null;\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n }\n }, {\n key: \"isStateful\",\n value: function isStateful() {\n return this.props.stateKey != null;\n }\n }, {\n key: \"getStorage\",\n value: function getStorage() {\n switch (this.props.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.props.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n }\n }, {\n key: \"saveState\",\n value: function saveState() {\n this.getStorage().setItem(this.props.stateKey, JSON.stringify(this.panelSizes));\n }\n }, {\n key: \"restoreState\",\n value: function restoreState() {\n var _this2 = this;\n\n var storage = this.getStorage();\n var stateString = storage.getItem(this.props.stateKey);\n\n if (stateString) {\n this.panelSizes = JSON.parse(stateString);\n\n var children = _toConsumableArray(this.container.children).filter(function (child) {\n return DomHandler.hasClass(child, 'p-splitter-panel');\n });\n\n children.forEach(function (child, i) {\n child.style.flexBasis = 'calc(' + _this2.panelSizes[i] + '% - ' + (_this2.props.children.length - 1) * _this2.props.gutterSize + 'px)';\n });\n return true;\n }\n\n return false;\n }\n }, {\n key: \"onResizeStart\",\n value: function onResizeStart(event, index) {\n var pageX = event.type === 'touchstart' ? event.touches[0].pageX : event.pageX;\n var pageY = event.type === 'touchstart' ? event.touches[0].pageY : event.pageY;\n this.gutterElement = event.currentTarget;\n this.size = this.props.layout === 'horizontal' ? DomHandler.getWidth(this.container) : DomHandler.getHeight(this.container);\n this.dragging = true;\n this.startPos = this.props.layout === 'horizontal' ? pageX : pageY;\n this.prevPanelElement = this.gutterElement.previousElementSibling;\n this.nextPanelElement = this.gutterElement.nextElementSibling;\n this.prevPanelSize = 100 * (this.props.layout === 'horizontal' ? DomHandler.getOuterWidth(this.prevPanelElement, true) : DomHandler.getOuterHeight(this.prevPanelElement, true)) / this.size;\n this.nextPanelSize = 100 * (this.props.layout === 'horizontal' ? DomHandler.getOuterWidth(this.nextPanelElement, true) : DomHandler.getOuterHeight(this.nextPanelElement, true)) / this.size;\n this.prevPanelIndex = index;\n DomHandler.addClass(this.gutterElement, 'p-splitter-gutter-resizing');\n DomHandler.addClass(this.container, 'p-splitter-resizing');\n }\n }, {\n key: \"onResize\",\n value: function onResize(event) {\n var newPos;\n var pageX = event.type === 'touchmove' ? event.touches[0].pageX : event.pageX;\n var pageY = event.type === 'touchmove' ? event.touches[0].pageY : event.pageY;\n if (this.props.layout === 'horizontal') newPos = pageX * 100 / this.size - this.startPos * 100 / this.size;else newPos = pageY * 100 / this.size - this.startPos * 100 / this.size;\n var newPrevPanelSize = this.prevPanelSize + newPos;\n var newNextPanelSize = this.nextPanelSize - newPos;\n\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n this.prevPanelElement.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.props.children.length - 1) * this.props.gutterSize + 'px)';\n this.nextPanelElement.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.props.children.length - 1) * this.props.gutterSize + 'px)';\n this.panelSizes[this.prevPanelIndex] = newPrevPanelSize;\n this.panelSizes[this.prevPanelIndex + 1] = newNextPanelSize;\n }\n }\n }, {\n key: \"onResizeEnd\",\n value: function onResizeEnd(event) {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (this.props.onResizeEnd) {\n this.props.onResizeEnd({\n originalEvent: event,\n sizes: this.panelSizes\n });\n }\n\n DomHandler.removeClass(this.gutterElement, 'p-splitter-gutter-resizing');\n DomHandler.removeClass(this.container, 'p-splitter-resizing');\n this.clear();\n }\n }, {\n key: \"onGutterMouseDown\",\n value: function onGutterMouseDown(event, index) {\n this.onResizeStart(event, index);\n this.bindMouseListeners();\n }\n }, {\n key: \"onGutterTouchStart\",\n value: function onGutterTouchStart(event, index) {\n this.onResizeStart(event, index);\n this.windowTouchMoveListener = this.onGutterTouchMove.bind(this);\n this.windowTouchEndListener = this.onGutterTouchEnd.bind(this);\n window.addEventListener('touchmove', this.windowTouchMoveListener, {\n passive: false,\n cancelable: false\n });\n window.addEventListener('touchend', this.windowTouchEndListener);\n }\n }, {\n key: \"onGutterTouchMove\",\n value: function onGutterTouchMove(event) {\n this.onResize(event);\n }\n }, {\n key: \"onGutterTouchEnd\",\n value: function onGutterTouchEnd(event) {\n this.onResizeEnd(event);\n window.removeEventListener('touchmove', this.windowTouchMoveListener);\n window.removeEventListener('touchend', this.windowTouchEndListener);\n this.windowTouchMoveListener = null;\n this.windowTouchEndListener = null;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this3 = this;\n\n if (this.panelElement) {\n if (this.panelElement.childNodes && DomHandler.find(this.panelElement, '.p-splitter')) {\n DomHandler.addClass(this.panelElement, 'p-splitter-panel-nested');\n }\n }\n\n if (this.props.children && this.props.children.length) {\n var initialized = false;\n\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n\n if (!initialized) {\n var children = _toConsumableArray(this.container.children).filter(function (child) {\n return DomHandler.hasClass(child, 'p-splitter-panel');\n });\n\n var _panelSizes = [];\n this.props.children.map(function (panel, i) {\n var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;\n var panelSize = panelInitialSize || 100 / _this3.props.children.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (_this3.props.children.length - 1) * _this3.props.gutterSize + 'px)';\n return _panelSizes;\n });\n this.panelSizes = _panelSizes;\n }\n }\n }\n }, {\n key: \"renderPanel\",\n value: function renderPanel(panel, index) {\n var _this4 = this;\n\n var panelClassName = classNames('p-splitter-panel', panel.props.className);\n var gutterStyle = this.props.layout === 'horizontal' ? {\n width: this.props.gutterSize + 'px'\n } : {\n height: this.props.gutterSize + 'px'\n };\n var gutter = index !== this.props.children.length - 1 && /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this4.gutterElement = el;\n },\n className: 'p-splitter-gutter',\n style: gutterStyle,\n onMouseDown: function onMouseDown(event) {\n return _this4.onGutterMouseDown(event, index);\n },\n onTouchStart: function onTouchStart(event) {\n return _this4.onGutterTouchStart(event, index);\n },\n onTouchMove: function onTouchMove(event) {\n return _this4.onGutterTouchMove(event);\n },\n onTouchEnd: function onTouchEnd(event) {\n return _this4.onGutterTouchEnd(event);\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-splitter-gutter-handle\"\n }));\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this4.panelElement = el;\n },\n key: index,\n className: panelClassName,\n style: panel.props.style\n }, panel.props.children), gutter);\n }\n }, {\n key: \"renderPanels\",\n value: function renderPanels() {\n var _this5 = this;\n\n return React.Children.map(this.props.children, function (panel, index) {\n return _this5.renderPanel(panel, index);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames(\"p-splitter p-component p-splitter-\".concat(this.props.layout), this.props.className);\n var panels = this.renderPanels();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this6.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, panels);\n }\n }]);\n\n return Splitter;\n}(Component);\n\n_defineProperty(Splitter, \"defaultProps\", {\n id: null,\n className: null,\n style: null,\n layout: 'horizontal',\n gutterSize: 4,\n stateKey: null,\n stateStorage: 'session',\n onResizeEnd: null\n});\n\nexport { Splitter, SplitterPanel };\n","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Chart = /*#__PURE__*/function (_Component) {\n _inherits(Chart, _Component);\n\n var _super = _createSuper(Chart);\n\n function Chart() {\n _classCallCheck(this, Chart);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Chart, [{\n key: \"initChart\",\n value: function initChart() {\n var _this = this;\n\n import('chart.js/auto').then(function (module) {\n if (_this.chart) {\n _this.chart.destroy();\n\n _this.chart = null;\n }\n\n if (module && module.default) {\n _this.chart = new module.default(_this.canvas, {\n type: _this.props.type,\n data: _this.props.data,\n options: _this.props.options,\n plugins: _this.props.plugins\n });\n }\n });\n }\n }, {\n key: \"getCanvas\",\n value: function getCanvas() {\n return this.canvas;\n }\n }, {\n key: \"getChart\",\n value: function getChart() {\n return this.chart;\n }\n }, {\n key: \"getBase64Image\",\n value: function getBase64Image() {\n return this.chart.toBase64Image();\n }\n }, {\n key: \"generateLegend\",\n value: function generateLegend() {\n if (this.chart) {\n this.chart.generateLegend();\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.chart) {\n this.chart.update();\n }\n }\n }, {\n key: \"reinit\",\n value: function reinit() {\n this.initChart();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.data === this.props.data && nextProps.options === this.props.options && nextProps.type === this.props.type) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.initChart();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.reinit();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.chart) {\n this.chart.destroy();\n this.chart = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-chart', this.props.className),\n style = Object.assign({\n width: this.props.width,\n height: this.props.height\n }, this.props.style);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n style: style,\n className: className\n }, /*#__PURE__*/React.createElement(\"canvas\", {\n ref: function ref(el) {\n _this2.canvas = el;\n },\n width: this.props.width,\n height: this.props.height\n }));\n }\n }]);\n\n return Chart;\n}(Component);\n\n_defineProperty(Chart, \"defaultProps\", {\n id: null,\n type: null,\n data: null,\n options: null,\n plugins: null,\n width: null,\n height: null,\n style: null,\n className: null\n});\n\nexport { Chart };\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import React, { Component } from 'react';\nimport { classNames, Ripple, ObjectUtils } from 'primereact/core';\nimport { Dropdown } from 'primereact/dropdown';\nimport { InputNumber } from 'primereact/inputnumber';\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$8() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar FirstPageLink = /*#__PURE__*/function (_Component) {\n _inherits(FirstPageLink, _Component);\n\n var _super = _createSuper$8(FirstPageLink);\n\n function FirstPageLink() {\n _classCallCheck(this, FirstPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FirstPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-first p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-double-left';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return FirstPageLink;\n}(Component);\n\n_defineProperty(FirstPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$7() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar NextPageLink = /*#__PURE__*/function (_Component) {\n _inherits(NextPageLink, _Component);\n\n var _super = _createSuper$7(NextPageLink);\n\n function NextPageLink() {\n _classCallCheck(this, NextPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NextPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-next p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-right';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return NextPageLink;\n}(Component);\n\n_defineProperty(NextPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$6() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PrevPageLink = /*#__PURE__*/function (_Component) {\n _inherits(PrevPageLink, _Component);\n\n var _super = _createSuper$6(PrevPageLink);\n\n function PrevPageLink() {\n _classCallCheck(this, PrevPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-prev p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-left';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return PrevPageLink;\n}(Component);\n\n_defineProperty(PrevPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$5() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar LastPageLink = /*#__PURE__*/function (_Component) {\n _inherits(LastPageLink, _Component);\n\n var _super = _createSuper$5(LastPageLink);\n\n function LastPageLink() {\n _classCallCheck(this, LastPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LastPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-last p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-double-right';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return LastPageLink;\n}(Component);\n\n_defineProperty(LastPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PageLinks = /*#__PURE__*/function (_Component) {\n _inherits(PageLinks, _Component);\n\n var _super = _createSuper$4(PageLinks);\n\n function PageLinks() {\n _classCallCheck(this, PageLinks);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PageLinks, [{\n key: \"onPageLinkClick\",\n value: function onPageLinkClick(event, pageLink) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n value: pageLink\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var elements;\n\n if (this.props.value) {\n var startPageInView = this.props.value[0];\n var endPageInView = this.props.value[this.props.value.length - 1];\n elements = this.props.value.map(function (pageLink, i) {\n var className = classNames('p-paginator-page p-paginator-element p-link', {\n 'p-paginator-page-start': pageLink === startPageInView,\n 'p-paginator-page-end': pageLink === endPageInView,\n 'p-highlight': pageLink - 1 === _this.props.page\n });\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: function onClick(e) {\n return _this.onPageLinkClick(e, pageLink);\n }\n }, pageLink, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (_this.props.template) {\n var defaultOptions = {\n onClick: function onClick(e) {\n return _this.onPageLinkClick(e, pageLink);\n },\n className: className,\n view: {\n startPage: startPageInView - 1,\n endPage: endPageInView - 1\n },\n page: pageLink - 1,\n currentPage: _this.props.page,\n totalPages: _this.props.pageCount,\n element: element,\n props: _this.props\n };\n element = ObjectUtils.getJSXElement(_this.props.template, defaultOptions);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: pageLink\n }, element);\n });\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-paginator-pages\"\n }, elements);\n }\n }]);\n\n return PageLinks;\n}(Component);\n\n_defineProperty(PageLinks, \"defaultProps\", {\n value: null,\n page: null,\n rows: null,\n pageCount: null,\n links: null,\n template: null\n});\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowsPerPageDropdown = /*#__PURE__*/function (_Component) {\n _inherits(RowsPerPageDropdown, _Component);\n\n var _super = _createSuper$3(RowsPerPageDropdown);\n\n function RowsPerPageDropdown() {\n _classCallCheck(this, RowsPerPageDropdown);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(RowsPerPageDropdown, [{\n key: \"hasOptions\",\n value: function hasOptions() {\n return this.props.options && this.props.options.length > 0;\n }\n }, {\n key: \"render\",\n value: function render() {\n var hasOptions = this.hasOptions();\n var options = hasOptions ? this.props.options.map(function (opt) {\n return {\n label: String(opt),\n value: opt\n };\n }) : [];\n var element = hasOptions ? /*#__PURE__*/React.createElement(Dropdown, {\n value: this.props.value,\n options: options,\n onChange: this.props.onChange,\n appendTo: this.props.appendTo,\n disabled: this.props.disabled\n }) : null;\n\n if (this.props.template) {\n var defaultOptions = {\n value: this.props.value,\n options: options,\n onChange: this.props.onChange,\n appendTo: this.props.appendTo,\n currentPage: this.props.page,\n totalPages: this.props.pageCount,\n totalRecords: this.props.totalRecords,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return RowsPerPageDropdown;\n}(Component);\n\n_defineProperty(RowsPerPageDropdown, \"defaultProps\", {\n options: null,\n value: null,\n page: null,\n pageCount: null,\n totalRecords: 0,\n appendTo: null,\n onChange: null,\n template: null,\n disabled: false\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar CurrentPageReport = /*#__PURE__*/function (_Component) {\n _inherits(CurrentPageReport, _Component);\n\n var _super = _createSuper$2(CurrentPageReport);\n\n function CurrentPageReport() {\n _classCallCheck(this, CurrentPageReport);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CurrentPageReport, [{\n key: \"render\",\n value: function render() {\n var report = {\n currentPage: this.props.page + 1,\n totalPages: this.props.pageCount,\n first: Math.min(this.props.first + 1, this.props.totalRecords),\n last: Math.min(this.props.first + this.props.rows, this.props.totalRecords),\n rows: this.props.rows,\n totalRecords: this.props.totalRecords\n };\n var text = this.props.reportTemplate.replace(\"{currentPage}\", report.currentPage).replace(\"{totalPages}\", report.totalPages).replace(\"{first}\", report.first).replace(\"{last}\", report.last).replace(\"{rows}\", report.rows).replace(\"{totalRecords}\", report.totalRecords);\n var element = /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-paginator-current\"\n }, text);\n\n if (this.props.template) {\n var defaultOptions = _objectSpread(_objectSpread({}, report), {\n className: 'p-paginator-current',\n element: element,\n props: this.props\n });\n\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return CurrentPageReport;\n}(Component);\n\n_defineProperty(CurrentPageReport, \"defaultProps\", {\n pageCount: null,\n page: null,\n first: null,\n rows: null,\n totalRecords: null,\n reportTemplate: '({currentPage} of {totalPages})',\n template: null\n});\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar JumpToPageInput = /*#__PURE__*/function (_Component) {\n _inherits(JumpToPageInput, _Component);\n\n var _super = _createSuper$1(JumpToPageInput);\n\n function JumpToPageInput(props) {\n var _this;\n\n _classCallCheck(this, JumpToPageInput);\n\n _this = _super.call(this, props);\n _this.onChange = _this.onChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(JumpToPageInput, [{\n key: \"onChange\",\n value: function onChange(event) {\n if (this.props.onChange) {\n this.props.onChange(this.props.rows * (event.value - 1), this.props.rows);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var value = this.props.pageCount > 0 ? this.props.page + 1 : 0;\n var element = /*#__PURE__*/React.createElement(InputNumber, {\n value: value,\n onChange: this.onChange,\n className: \"p-paginator-page-input\",\n disabled: this.props.disabled\n });\n\n if (this.props.template) {\n var defaultOptions = {\n value: value,\n onChange: this.onChange,\n disabled: this.props.disabled,\n className: 'p-paginator-page-input',\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return JumpToPageInput;\n}(Component);\n\n_defineProperty(JumpToPageInput, \"defaultProps\", {\n page: null,\n rows: null,\n pageCount: null,\n disabled: false,\n template: null,\n onChange: null\n});\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Paginator = /*#__PURE__*/function (_Component) {\n _inherits(Paginator, _Component);\n\n var _super = _createSuper(Paginator);\n\n function Paginator(props) {\n var _this;\n\n _classCallCheck(this, Paginator);\n\n _this = _super.call(this, props);\n _this.changePageToFirst = _this.changePageToFirst.bind(_assertThisInitialized(_this));\n _this.changePageToPrev = _this.changePageToPrev.bind(_assertThisInitialized(_this));\n _this.changePageToNext = _this.changePageToNext.bind(_assertThisInitialized(_this));\n _this.changePageToLast = _this.changePageToLast.bind(_assertThisInitialized(_this));\n _this.onRowsChange = _this.onRowsChange.bind(_assertThisInitialized(_this));\n _this.changePage = _this.changePage.bind(_assertThisInitialized(_this));\n _this.onPageLinkClick = _this.onPageLinkClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Paginator, [{\n key: \"isFirstPage\",\n value: function isFirstPage() {\n return this.getPage() === 0;\n }\n }, {\n key: \"isLastPage\",\n value: function isLastPage() {\n return this.getPage() === this.getPageCount() - 1;\n }\n }, {\n key: \"getPageCount\",\n value: function getPageCount() {\n return Math.ceil(this.props.totalRecords / this.props.rows);\n }\n }, {\n key: \"calculatePageLinkBoundaries\",\n value: function calculatePageLinkBoundaries() {\n var numberOfPages = this.getPageCount();\n var visiblePages = Math.min(this.props.pageLinkSize, numberOfPages); //calculate range, keep current in middle if necessary\n\n var start = Math.max(0, Math.ceil(this.getPage() - visiblePages / 2));\n var end = Math.min(numberOfPages - 1, start + visiblePages - 1); //check when approaching to last page\n\n var delta = this.props.pageLinkSize - (end - start + 1);\n start = Math.max(0, start - delta);\n return [start, end];\n }\n }, {\n key: \"updatePageLinks\",\n value: function updatePageLinks() {\n var pageLinks = [];\n var boundaries = this.calculatePageLinkBoundaries();\n var start = boundaries[0];\n var end = boundaries[1];\n\n for (var i = start; i <= end; i++) {\n pageLinks.push(i + 1);\n }\n\n return pageLinks;\n }\n }, {\n key: \"changePage\",\n value: function changePage(first, rows) {\n var pc = this.getPageCount();\n var p = Math.floor(first / rows);\n\n if (p >= 0 && p < pc) {\n var newPageState = {\n first: first,\n rows: rows,\n page: p,\n pageCount: pc\n };\n\n if (this.props.onPageChange) {\n this.props.onPageChange(newPageState);\n }\n }\n }\n }, {\n key: \"getPage\",\n value: function getPage() {\n return Math.floor(this.props.first / this.props.rows);\n }\n }, {\n key: \"empty\",\n value: function empty() {\n var pageCount = this.getPageCount();\n return pageCount === 0;\n }\n }, {\n key: \"changePageToFirst\",\n value: function changePageToFirst(event) {\n this.changePage(0, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"changePageToPrev\",\n value: function changePageToPrev(event) {\n this.changePage(this.props.first - this.props.rows, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"onPageLinkClick\",\n value: function onPageLinkClick(event) {\n this.changePage((event.value - 1) * this.props.rows, this.props.rows);\n }\n }, {\n key: \"changePageToNext\",\n value: function changePageToNext(event) {\n this.changePage(this.props.first + this.props.rows, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"changePageToLast\",\n value: function changePageToLast(event) {\n this.changePage((this.getPageCount() - 1) * this.props.rows, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"onRowsChange\",\n value: function onRowsChange(event) {\n var rows = event.value;\n this.isRowChanged = rows !== this.props.rows;\n this.changePage(0, rows);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.rows !== prevProps.rows && !this.isRowChanged) {\n this.changePage(0, this.props.rows);\n } else if (this.getPage() > 0 && prevProps.totalRecords !== this.props.totalRecords && this.props.first >= this.props.totalRecords) {\n this.changePage((this.getPageCount() - 1) * this.props.rows, this.props.rows);\n }\n\n this.isRowChanged = false;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement(key, template) {\n var element;\n\n switch (key) {\n case 'FirstPageLink':\n element = /*#__PURE__*/React.createElement(FirstPageLink, {\n key: key,\n onClick: this.changePageToFirst,\n disabled: this.isFirstPage() || this.empty(),\n template: template\n });\n break;\n\n case 'PrevPageLink':\n element = /*#__PURE__*/React.createElement(PrevPageLink, {\n key: key,\n onClick: this.changePageToPrev,\n disabled: this.isFirstPage() || this.empty(),\n template: template\n });\n break;\n\n case 'NextPageLink':\n element = /*#__PURE__*/React.createElement(NextPageLink, {\n key: key,\n onClick: this.changePageToNext,\n disabled: this.isLastPage() || this.empty(),\n template: template\n });\n break;\n\n case 'LastPageLink':\n element = /*#__PURE__*/React.createElement(LastPageLink, {\n key: key,\n onClick: this.changePageToLast,\n disabled: this.isLastPage() || this.empty(),\n template: template\n });\n break;\n\n case 'PageLinks':\n element = /*#__PURE__*/React.createElement(PageLinks, {\n key: key,\n value: this.updatePageLinks(),\n page: this.getPage(),\n rows: this.props.rows,\n pageCount: this.getPageCount(),\n onClick: this.onPageLinkClick,\n template: template\n });\n break;\n\n case 'RowsPerPageDropdown':\n element = /*#__PURE__*/React.createElement(RowsPerPageDropdown, {\n key: key,\n value: this.props.rows,\n page: this.getPage(),\n pageCount: this.getPageCount(),\n totalRecords: this.props.totalRecords,\n options: this.props.rowsPerPageOptions,\n onChange: this.onRowsChange,\n appendTo: this.props.dropdownAppendTo,\n template: template,\n disabled: this.empty()\n });\n break;\n\n case 'CurrentPageReport':\n element = /*#__PURE__*/React.createElement(CurrentPageReport, {\n reportTemplate: this.props.currentPageReportTemplate,\n key: key,\n page: this.getPage(),\n pageCount: this.getPageCount(),\n first: this.props.first,\n rows: this.props.rows,\n totalRecords: this.props.totalRecords,\n template: template\n });\n break;\n\n case 'JumpToPageInput':\n element = /*#__PURE__*/React.createElement(JumpToPageInput, {\n key: key,\n rows: this.props.rows,\n page: this.getPage(),\n pageCount: this.getPageCount(),\n onChange: this.changePage,\n disabled: this.empty(),\n template: template\n });\n break;\n\n default:\n element = null;\n break;\n }\n\n return element;\n }\n }, {\n key: \"renderElements\",\n value: function renderElements() {\n var _this2 = this;\n\n var template = this.props.template;\n\n if (template) {\n if (_typeof(template) === 'object') {\n return template.layout ? template.layout.split(' ').map(function (value) {\n var key = value.trim();\n return _this2.renderElement(key, template[key]);\n }) : Object.entries(template).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n _template = _ref2[1];\n\n return _this2.renderElement(key, _template);\n });\n }\n\n return template.split(' ').map(function (value) {\n return _this2.renderElement(value.trim());\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.props.alwaysShow && this.getPageCount() === 1) {\n return null;\n } else {\n var className = classNames('p-paginator p-component', this.props.className);\n var leftContent = ObjectUtils.getJSXElement(this.props.leftContent, this.props);\n var rightContent = ObjectUtils.getJSXElement(this.props.rightContent, this.props);\n var elements = this.renderElements();\n var leftElement = leftContent && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-paginator-left-content\"\n }, leftContent);\n var rightElement = rightContent && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-paginator-right-content\"\n }, rightContent);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: this.props.style\n }, leftElement, elements, rightElement);\n }\n }\n }]);\n\n return Paginator;\n}(Component);\n\n_defineProperty(Paginator, \"defaultProps\", {\n totalRecords: 0,\n rows: 0,\n first: 0,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n alwaysShow: true,\n style: null,\n className: null,\n template: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n onPageChange: null,\n leftContent: null,\n rightContent: null,\n dropdownAppendTo: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})'\n});\n\nexport { Paginator };\n","import {\n VNode, createElement,\n SimpleScrollGrid,\n SimpleScrollGridSection,\n ChunkContentCallbackArgs,\n createRef,\n ScrollGridSectionConfig,\n ViewRoot,\n DateComponent,\n ViewProps,\n RefObject,\n renderScrollShim,\n getStickyHeaderDates,\n getStickyFooterScrollbar,\n ChunkConfigRowContent,\n Dictionary,\n} from '@fullcalendar/common'\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\n\nexport abstract class TableView extends DateComponent {\n protected headerElRef: RefObject = createRef()\n\n renderSimpleLayout(\n headerRowContent: ChunkConfigRowContent,\n bodyContent: (contentArg: ChunkContentCallbackArgs) => VNode,\n ) {\n let { props, context } = this\n let sections: SimpleScrollGridSection[] = []\n let stickyHeaderDates = getStickyHeaderDates(context.options)\n\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n })\n }\n\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n })\n\n return (\n \n {(rootElRef, classNames) => (\n
\n \n
\n )}\n
\n )\n }\n\n renderHScrollLayout(\n headerRowContent: ChunkConfigRowContent,\n bodyContent: (contentArg: ChunkContentCallbackArgs) => VNode,\n colCnt: number,\n dayMinWidth: number,\n ) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl\n\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation')\n }\n\n let { props, context } = this\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options)\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options)\n let sections: ScrollGridSectionConfig[] = []\n\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n })\n }\n\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n })\n\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n })\n }\n\n return (\n \n {(rootElRef, classNames) => (\n
\n \n
\n )}\n
\n )\n }\n}\n","import { EventSegUiInteractionState, Seg } from '@fullcalendar/common'\n\n// this is a DATA STRUCTURE, not a component\n\nexport interface TableSeg extends Seg {\n row: number\n firstCol: number\n lastCol: number\n}\n\nexport function splitSegsByRow(segs: TableSeg[], rowCnt: number) {\n let byRow: TableSeg[][] = []\n\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = []\n }\n\n for (let seg of segs) {\n byRow[seg.row].push(seg)\n }\n\n return byRow\n}\n\nexport function splitSegsByFirstCol(segs: TableSeg[], colCnt: number) {\n let byCol: TableSeg[][] = []\n\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = []\n }\n\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg)\n }\n\n return byCol\n}\n\nexport function splitInteractionByRow(ui: EventSegUiInteractionState | null, rowCnt: number) {\n let byRow: EventSegUiInteractionState[] = []\n\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null\n }\n } else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n }\n }\n\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg)\n }\n }\n\n return byRow\n}\n","import {\n createElement,\n DateMarker,\n DateRange,\n buildNavLinkData,\n DayCellContentArg,\n DayCellContent,\n BaseComponent,\n DateProfile,\n Dictionary,\n Fragment,\n} from '@fullcalendar/common'\n\ninterface TableCellTopProps {\n date: DateMarker\n dateProfile: DateProfile\n showDayNumber: boolean\n forceDayTop: boolean // hack to force-create an element with height (created by a nbsp)\n todayRange: DateRange\n extraHookProps?: Dictionary\n}\n\nexport class TableCellTop extends BaseComponent {\n render() {\n let { props } = this\n\n let navLinkAttrs = this.context.options.navLinks\n ? { 'data-navlink': buildNavLinkData(props.date), tabIndex: 0 }\n : {}\n\n return (\n \n {(innerElRef, innerContent) => (\n (innerContent || props.forceDayTop) && (\n
\n )\n )}\n \n )\n }\n}\n\nfunction renderTopInner(props: DayCellContentArg) {\n return props.dayNumberText\n}\n","import { createFormatter } from '@fullcalendar/common'\nimport { TableSeg } from './TableSeg'\n\nexport const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n})\n\nexport function hasListItemDisplay(seg: TableSeg) {\n let { display } = seg.eventRange.ui\n\n return display === 'list-item' || (\n display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n )\n}\n","import { createElement, StandardEvent, BaseComponent, MinimalEventProps } from '@fullcalendar/common'\nimport { DEFAULT_TABLE_EVENT_TIME_FORMAT } from './event-rendering'\n\nexport interface TableBlockEventProps extends MinimalEventProps {\n defaultDisplayEventEnd: boolean\n}\n\nexport class TableBlockEvent extends BaseComponent {\n render() {\n let { props } = this\n\n return (\n \n )\n }\n}\n","import { createElement, BaseComponent, Seg, EventRoot, buildSegTimeText, EventContentArg, Fragment } from '@fullcalendar/common'\nimport { DEFAULT_TABLE_EVENT_TIME_FORMAT } from './event-rendering'\n\nexport interface DotTableEventProps {\n seg: Seg\n isDragging: boolean\n isSelected: boolean\n isPast: boolean\n isFuture: boolean\n isToday: boolean\n defaultDisplayEventEnd: boolean\n}\n\nexport class TableListItemEvent extends BaseComponent {\n render() {\n let { props, context } = this\n let timeFormat = context.options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT\n let timeText = buildSegTimeText(\n props.seg,\n timeFormat,\n context,\n true,\n props.defaultDisplayEventEnd,\n )\n\n return (\n \n {(rootElRef, classNames, innerElRef, innerContent) => ( // we don't use styles!\n \n {innerContent}\n \n )}\n \n )\n }\n}\n\nfunction renderInnerContent(innerProps: EventContentArg) {\n return (\n \n \n {innerProps.timeText && (\n
{innerProps.timeText}
\n )}\n
\n {innerProps.event.title ||  }\n
\n
\n )\n}\n\nfunction getSegAnchorAttrs(seg: Seg) { // not dry. in StandardEvent too\n let { url } = seg.eventRange.def\n return url ? { href: url } : {}\n}\n","import {\n createElement,\n MoreLinkRoot,\n RefObject,\n BaseComponent,\n memoize,\n DateMarker,\n Dictionary,\n DateProfile,\n DateRange,\n EventSegUiInteractionState,\n getSegMeta,\n Fragment,\n} from '@fullcalendar/common'\nimport { TableSegPlacement } from './event-placement'\nimport { hasListItemDisplay } from './event-rendering'\nimport { TableBlockEvent } from './TableBlockEvent'\nimport { TableListItemEvent } from './TableListItemEvent'\nimport { TableSeg } from './TableSeg'\n\nexport interface TableCellMoreLinkProps {\n allDayDate: DateMarker\n singlePlacements: TableSegPlacement[]\n moreCnt: number\n alignmentElRef: RefObject // for popover\n alignGridTop: boolean // for popover\n extraDateSpan?: Dictionary\n dateProfile: DateProfile\n todayRange: DateRange\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n}\n\nexport class TableCellMoreLink extends BaseComponent {\n compileSegs = memoize(compileSegs)\n\n render() {\n let { props } = this\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements)\n\n return (\n {\n let isForcedInvisible =\n (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {}\n return (\n \n {allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId\n return (\n \n {hasListItemDisplay(seg) ? (\n \n ) : (\n \n )}\n
\n )\n })}\n \n )\n }}\n >\n {(rootElRef, classNames, innerElRef, innerContent, handleClick) => (\n \n {innerContent}\n \n )}\n \n )\n }\n}\n\nfunction compileSegs(singlePlacements: TableSegPlacement[]): {\n allSegs: TableSeg[]\n invisibleSegs: TableSeg[]\n} {\n let allSegs: TableSeg[] = []\n let invisibleSegs: TableSeg[] = []\n\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg)\n\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg)\n }\n }\n\n return { allSegs, invisibleSegs }\n}\n","import {\n Ref,\n ComponentChildren,\n createElement,\n DateMarker,\n DateComponent,\n DateRange,\n buildNavLinkData,\n WeekNumberRoot,\n DayCellRoot,\n DateProfile,\n setRef,\n createFormatter,\n Dictionary,\n createRef,\n EventSegUiInteractionState,\n} from '@fullcalendar/common'\nimport { TableCellTop } from './TableCellTop'\nimport { TableCellMoreLink } from './TableCellMoreLink'\nimport { TableSegPlacement } from './event-placement'\n\nexport interface TableCellProps {\n date: DateMarker\n dateProfile: DateProfile\n extraHookProps?: Dictionary\n extraDataAttrs?: Dictionary\n extraClassNames?: string[]\n extraDateSpan?: Dictionary\n elRef?: Ref\n innerElRef?: Ref\n bgContent: ComponentChildren\n fgContentElRef?: Ref // TODO: rename!!! classname confusion. is the \"event\" div\n fgContent: ComponentChildren\n moreCnt: number\n moreMarginTop: number\n showDayNumber: boolean\n showWeekNumber: boolean\n forceDayTop: boolean\n todayRange: DateRange\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n singlePlacements: TableSegPlacement[]\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' })\n\nexport class TableCell extends DateComponent {\n private rootElRef = createRef()\n\n render() {\n let { props, context, rootElRef } = this\n let { options } = context\n let { date, dateProfile } = props\n let navLinkAttrs = options.navLinks\n ? { 'data-navlink': buildNavLinkData(date, 'week'), tabIndex: 0 }\n : {}\n\n return (\n \n {(dayElRef, dayClassNames, rootDataAttrs, isDisabled) => (\n \n
\n {props.showWeekNumber && (\n \n {(weekElRef, weekClassNames, innerElRef, innerContent) => (\n \n {innerContent}\n \n )}\n \n )}\n {!isDisabled && (\n \n )}\n \n {props.fgContent}\n
\n \n
\n
\n
\n {props.bgContent}\n
\n
\n \n )}\n \n )\n }\n\n handleRootEl = (el: HTMLElement) => {\n setRef(this.rootElRef, el)\n setRef(this.props.elRef, el)\n }\n}\n","import {\n SegSpan,\n SegEntry,\n SegEntryGroup,\n DateMarker,\n} from '@fullcalendar/common'\nimport { TimeColsSeg } from './TimeColsSeg'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { SegWebRect, buildPositioning } from './seg-web'\n\n// public interface\n// ------------------------------------------------------------------------------------------\n\nexport interface TimeColFgSegPlacement {\n seg: TimeColsSeg\n rect: SegWebRect | null\n}\n\nexport function computeSegVCoords(\n segs: TimeColsSeg[],\n colDate: DateMarker,\n slatCoords: TimeColsSlatsCoords = null,\n eventMinHeight: number = 0, // might be null/undefined :(\n): SegSpan[] {\n let vcoords: SegSpan[] = []\n\n if (slatCoords) {\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i]\n let spanStart = slatCoords.computeDateTop(seg.start, colDate)\n let spanEnd = Math.max(\n spanStart + (eventMinHeight || 0), // :(\n slatCoords.computeDateTop(seg.end, colDate),\n )\n vcoords.push({\n start: Math.round(spanStart), // for barely-overlapping collisions\n end: Math.round(spanEnd), //\n })\n }\n }\n\n return vcoords\n}\n\nexport function computeFgSegPlacements(\n segs: TimeColsSeg[],\n segVCoords: SegSpan[], // might not have for every seg\n eventOrderStrict?: boolean,\n eventMaxStack?: number,\n): { segPlacements: TimeColFgSegPlacement[], hiddenGroups: SegEntryGroup[] } {\n let segInputs: SegEntry[] = []\n let dumbSegs: TimeColsSeg[] = [] // segs without coords\n\n for (let i = 0; i < segs.length; i += 1) {\n let vcoords = segVCoords[i]\n if (vcoords) {\n segInputs.push({\n index: i,\n thickness: 1,\n span: vcoords,\n })\n } else {\n dumbSegs.push(segs[i])\n }\n }\n\n let { segRects, hiddenGroups } = buildPositioning(segInputs, eventOrderStrict, eventMaxStack)\n let segPlacements: TimeColFgSegPlacement[] = []\n\n for (let segRect of segRects) {\n segPlacements.push({\n seg: segs[segRect.index],\n rect: segRect,\n })\n }\n\n for (let dumbSeg of dumbSegs) {\n segPlacements.push({ seg: dumbSeg, rect: null })\n }\n\n return { segPlacements, hiddenGroups }\n}\n","import {\n EventSegUiInteractionState,\n VNode,\n DateComponent,\n createElement,\n PositionCache,\n RefMap,\n CssDimValue,\n DateRange,\n getSegMeta,\n DateProfile,\n Fragment,\n BgEvent,\n renderFill,\n isPropsEqual,\n createRef,\n buildEventRangeKey,\n sortEventSegs,\n DayTableCell,\n} from '@fullcalendar/common'\nimport { TableSeg, splitSegsByFirstCol } from './TableSeg'\nimport { TableCell } from './TableCell'\nimport { TableListItemEvent } from './TableListItemEvent'\nimport { TableBlockEvent } from './TableBlockEvent'\nimport { computeFgSegPlacement, TableSegPlacement } from './event-placement'\nimport { hasListItemDisplay } from './event-rendering'\n\n// TODO: attach to window resize?\n\nexport interface TableRowProps {\n cells: DayTableCell[]\n renderIntro?: () => VNode\n businessHourSegs: TableSeg[]\n bgEventSegs: TableSeg[]\n fgEventSegs: TableSeg[]\n dateSelectionSegs: TableSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n dayMaxEvents: boolean | number\n dayMaxEventRows: boolean | number\n clientWidth: number | null\n clientHeight: number | null // simply for causing an updateSize, for when liquid height\n dateProfile: DateProfile\n todayRange: DateRange\n showDayNumbers: boolean\n showWeekNumbers: boolean\n forPrint: boolean\n}\n\ninterface TableRowState {\n framePositions: PositionCache\n maxContentHeight: number | null\n eventInstanceHeights: { [instanceId: string]: number } // integers\n}\n\nexport class TableRow extends DateComponent {\n private cellElRefs = new RefMap() // the
\n {props.renderIntro && props.renderIntro()}\n {props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(\n col,\n props.forPrint ? singleColPlacements[col] : multiColPlacements[col],\n props.todayRange,\n isForcedInvisible,\n )\n\n let mirrorFgNodes = this.renderFgSegs(\n col,\n buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements),\n props.todayRange,\n {},\n Boolean(props.eventDrag),\n Boolean(props.eventResize),\n false, // date-selecting (because mirror is never drawn for date selection)\n )\n\n return (\n problem, but okay to use for left/right. TODO: rename prop */}\n dateProfile={props.dateProfile}\n date={cell.date}\n showDayNumber={props.showDayNumbers}\n showWeekNumber={props.showWeekNumbers && col === 0}\n forceDayTop={props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */}\n todayRange={props.todayRange}\n eventSelection={props.eventSelection}\n eventDrag={props.eventDrag}\n eventResize={props.eventResize}\n extraHookProps={cell.extraHookProps}\n extraDataAttrs={cell.extraDataAttrs}\n extraClassNames={cell.extraClassNames}\n extraDateSpan={cell.extraDateSpan}\n moreCnt={moreCnts[col]}\n moreMarginTop={moreMarginTops[col]}\n singlePlacements={singleColPlacements[col]}\n fgContentElRef={this.fgElRefs.createRef(cell.key)}\n fgContent={( // Fragment scopes the keys\n \n {normalFgNodes}\n {mirrorFgNodes}\n \n )}\n bgContent={( // Fragment scopes the keys\n \n {this.renderFillSegs(highlightSegsByCol[col], 'highlight')}\n {this.renderFillSegs(businessHoursByCol[col], 'non-business')}\n {this.renderFillSegs(bgEventSegsByCol[col], 'bg-event')}\n \n )}\n />\n )\n })}\n \n )\n }\n\n componentDidMount() {\n this.updateSizing(true)\n }\n\n componentDidUpdate(prevProps: TableRowProps, prevState: TableRowState) {\n let currentProps = this.props\n\n this.updateSizing(\n !isPropsEqual(prevProps, currentProps),\n )\n }\n\n getHighlightSegs(): TableSeg[] {\n let { props } = this\n\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs as TableSeg[]\n }\n\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs as TableSeg[]\n }\n\n return props.dateSelectionSegs\n }\n\n getMirrorSegs(): TableSeg[] {\n let { props } = this\n\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs as TableSeg[]\n }\n\n return []\n }\n\n renderFgSegs(\n col: number,\n segPlacements: TableSegPlacement[],\n todayRange: DateRange,\n isForcedInvisible: { [instanceId: string]: any },\n isDragging?: boolean,\n isResizing?: boolean,\n isDateSelecting?: boolean,\n ): VNode[] {\n let { context } = this\n let { eventSelection } = this.props\n let { framePositions } = this.state\n let defaultDisplayEventEnd = this.props.cells.length === 1 // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting\n let nodes: VNode[] = []\n\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement\n let { instanceId } = seg.eventRange.instance\n let key = instanceId + ':' + col\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId]\n let isAbsolute = placement.isAbsolute\n let left: CssDimValue = ''\n let right: CssDimValue = ''\n\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol]\n } else {\n left = 0\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol]\n }\n }\n\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(\n \n {hasListItemDisplay(seg) ? (\n \n ) : (\n \n )}\n ,\n )\n }\n }\n\n return nodes\n }\n\n renderFillSegs(segs: TableSeg[], fillType: string): VNode {\n let { isRtl } = this.context\n let { todayRange } = this.props\n let { framePositions } = this.state\n let nodes: VNode[] = []\n\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n }\n\n nodes.push(\n \n {fillType === 'bg-event' ?\n :\n renderFill(fillType)}\n ,\n )\n }\n }\n\n return createElement(Fragment, {}, ...nodes)\n }\n\n updateSizing(isExternalSizingChange) {\n let { props, frameElRefs } = this\n\n if (\n !props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key])\n\n if (frameEls.length) {\n let originEl = this.rootElRef.current\n\n this.setState({ // will trigger isCellPositionsChanged...\n framePositions: new PositionCache(\n originEl,\n frameEls,\n true, // isHorizontal\n false,\n ),\n })\n }\n }\n\n let limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true\n\n this.setState({\n eventInstanceHeights: this.queryEventInstanceHeights(),\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n })\n }\n }\n\n queryEventInstanceHeights() {\n let segElMap = this.segHarnessRefs.currentMap\n let eventInstanceHeights: { [key: string]: number } = {}\n\n // get the max height amongst instance segs\n for (let key in segElMap) {\n let height = Math.round(segElMap[key].getBoundingClientRect().height)\n let instanceId = key.split(':')[0] // deconstruct how renderFgSegs makes the key\n eventInstanceHeights[instanceId] = Math.max(eventInstanceHeights[instanceId] || 0, height)\n }\n\n return eventInstanceHeights\n }\n\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key\n let cellEl = this.cellElRefs.currentMap[firstKey]\n let fcContainerEl = this.fgElRefs.currentMap[firstKey]\n\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top\n }\n\n public getCellEls() {\n let elMap = this.cellElRefs.currentMap\n\n return this.props.cells.map((cell) => elMap[cell.key])\n }\n}\n\nTableRow.addStateEquality({\n eventInstanceHeights: isPropsEqual,\n})\n\nfunction buildMirrorPlacements(mirrorSegs: TableSeg[], colPlacements: TableSegPlacement[][]): TableSegPlacement[] {\n if (!mirrorSegs.length) {\n return []\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements) // TODO: cache this at first render?\n return mirrorSegs.map((seg: TableSeg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }))\n}\n\nfunction buildAbsoluteTopHash(colPlacements: TableSegPlacement[][]): { [instanceId: string]: number } {\n let topsByInstanceId: { [instanceId: string]: number } = {}\n\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop\n }\n }\n\n return topsByInstanceId\n}\n","import {\n EventSegUiInteractionState,\n VNode,\n DateComponent,\n RefObject,\n CssDimValue,\n createElement,\n PositionCache,\n memoize,\n addDays,\n RefMap,\n DateRange,\n NowTimer,\n DateMarker,\n DateProfile,\n Fragment,\n Hit,\n DayTableCell,\n} from '@fullcalendar/common'\nimport { TableSeg, splitSegsByRow, splitInteractionByRow } from './TableSeg'\nimport { TableRow } from './TableRow'\n\nexport interface TableProps {\n dateProfile: DateProfile\n cells: DayTableCell[][] // cells-BY-ROW\n renderRowIntro?: () => VNode\n colGroupNode: VNode\n tableMinWidth: CssDimValue\n expandRows: boolean\n showWeekNumbers: boolean\n clientWidth: number | null\n clientHeight: number | null\n businessHourSegs: TableSeg[]\n bgEventSegs: TableSeg[]\n fgEventSegs: TableSeg[]\n dateSelectionSegs: TableSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n dayMaxEvents: boolean | number\n dayMaxEventRows: boolean | number\n headerAlignElRef?: RefObject\n forPrint: boolean\n isHitComboAllowed?: (hit0: Hit, hit1: Hit) => boolean\n}\n\nexport class Table extends DateComponent {\n private splitBusinessHourSegs = memoize(splitSegsByRow)\n private splitBgEventSegs = memoize(splitSegsByRow)\n private splitFgEventSegs = memoize(splitSegsByRow)\n private splitDateSelectionSegs = memoize(splitSegsByRow)\n private splitEventDrag = memoize(splitInteractionByRow)\n private splitEventResize = memoize(splitInteractionByRow)\n private rootEl: HTMLElement\n private rowRefs = new RefMap()\n private rowPositions: PositionCache\n private colPositions: PositionCache\n\n render() {\n let { props } = this\n let { dateProfile, dayMaxEventRows, dayMaxEvents, expandRows } = props\n let rowCnt = props.cells.length\n\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt)\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt)\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt)\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt)\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt)\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt)\n\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true\n\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false\n dayMaxEventRows = null\n dayMaxEvents = null\n }\n\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced', // will all row heights be equal?\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ]\n\n return (\n \n \n {(nowDate: DateMarker, todayRange: DateRange) => (\n \n \n {props.colGroupNode}\n \n {props.cells.map((cells, row) => (\n 1}\n showWeekNumbers={props.showWeekNumbers}\n todayRange={todayRange}\n dateProfile={dateProfile}\n cells={cells}\n renderIntro={props.renderRowIntro}\n businessHourSegs={businessHourSegsByRow[row]}\n eventSelection={props.eventSelection}\n bgEventSegs={bgEventSegsByRow[row].filter(isSegAllDay) /* hack */}\n fgEventSegs={fgEventSegsByRow[row]}\n dateSelectionSegs={dateSelectionSegsByRow[row]}\n eventDrag={eventDragByRow[row]}\n eventResize={eventResizeByRow[row]}\n dayMaxEvents={dayMaxEvents}\n dayMaxEventRows={dayMaxEventRows}\n clientWidth={props.clientWidth}\n clientHeight={props.clientHeight}\n forPrint={props.forPrint}\n />\n ))}\n \n
/ elements with colspans.\n SOLUTION: making individual
\n
\n \n {content}\n \n
\n
\n private frameElRefs = new RefMap() // the fc-daygrid-day-frame\n private fgElRefs = new RefMap() // the fc-daygrid-day-events\n private segHarnessRefs = new RefMap() // indexed by \"instanceId:firstCol\"\n private rootElRef = createRef()\n\n state: TableRowState = {\n framePositions: null,\n maxContentHeight: null,\n eventInstanceHeights: {},\n }\n\n render() {\n let { props, state, context } = this\n let { options } = context\n let colCnt = props.cells.length\n\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt)\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt)\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt)\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt)\n\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(\n sortEventSegs(props.fgEventSegs, options.eventOrder) as TableSeg[],\n props.dayMaxEvents,\n props.dayMaxEventRows,\n options.eventOrderStrict,\n state.eventInstanceHeights,\n state.maxContentHeight,\n props.cells,\n )\n\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {}\n\n return (\n
\n \n )}\n \n \n )\n }\n\n handleRootEl = (rootEl: HTMLElement | null) => {\n this.rootEl = rootEl\n\n if (rootEl) {\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n })\n } else {\n this.context.unregisterInteractiveComponent(this)\n }\n }\n\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n\n prepareHits() {\n this.rowPositions = new PositionCache(\n this.rootEl,\n this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false,\n true, // vertical\n )\n\n this.colPositions = new PositionCache(\n this.rootEl,\n this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false,\n )\n }\n\n queryHit(positionLeft: number, positionTop: number): Hit {\n let { colPositions, rowPositions } = this\n let col = colPositions.leftToIndex(positionLeft)\n let row = rowPositions.topToIndex(positionTop)\n\n if (row != null && col != null) {\n let cell = this.props.cells[row][col]\n\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: {\n range: this.getCellRange(row, col),\n allDay: true,\n ...cell.extraDateSpan,\n },\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n }\n }\n\n return null\n }\n\n private getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col] // TODO: not optimal\n }\n\n private getCellRange(row, col) {\n let start = this.props.cells[row][col].date\n let end = addDays(start, 1)\n return { start, end }\n }\n}\n\nfunction isSegAllDay(seg: TableSeg) {\n return seg.eventRange.def.allDay\n}\n","import { DayTableModel, DateRange, Slicer } from '@fullcalendar/common'\nimport { TableSeg } from './TableSeg'\n\nexport class DayTableSlicer extends Slicer {\n forceDayIfListItem = true\n\n sliceRange(dateRange: DateRange, dayTableModel: DayTableModel): TableSeg[] {\n return dayTableModel.sliceRange(dateRange)\n }\n}\n","import {\n createElement, createRef, VNode,\n EventStore,\n EventUiHash,\n DateSpan,\n EventInteractionState,\n DayTableModel,\n Duration,\n DateComponent,\n ViewContext,\n RefObject,\n CssDimValue,\n DateProfile,\n} from '@fullcalendar/common'\nimport { Table } from './Table'\nimport { DayTableSlicer } from './DayTableSlicer'\n\nexport interface DayTableProps {\n dateProfile: DateProfile,\n dayTableModel: DayTableModel\n nextDayThreshold: Duration\n businessHours: EventStore\n eventStore: EventStore\n eventUiBases: EventUiHash\n dateSelection: DateSpan | null\n eventSelection: string\n eventDrag: EventInteractionState | null\n eventResize: EventInteractionState | null\n colGroupNode: VNode\n tableMinWidth: CssDimValue\n renderRowIntro?: () => VNode\n dayMaxEvents: boolean | number\n dayMaxEventRows: boolean | number\n expandRows: boolean\n showWeekNumbers: boolean\n headerAlignElRef?: RefObject // for more popover alignment\n clientWidth: number | null\n clientHeight: number | null\n forPrint: boolean\n}\n\nexport class DayTable extends DateComponent {\n private slicer = new DayTableSlicer()\n private tableRef = createRef()\n\n render() {\n let { props, context } = this\n\n return (\n \n )\n }\n}\n","import {\n createElement, createRef,\n DayHeader,\n DateProfileGenerator,\n DateProfile,\n memoize,\n DaySeriesModel,\n DayTableModel,\n ChunkContentCallbackArgs,\n} from '@fullcalendar/common'\nimport { TableView } from './TableView'\nimport { DayTable } from './DayTable'\n\nexport class DayTableView extends TableView {\n private buildDayTableModel = memoize(buildDayTableModel)\n private headerRef = createRef()\n private tableRef = createRef()\n\n render() {\n let { options, dateProfileGenerator } = this.context\n let { props } = this\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator)\n\n let headerContent = options.dayHeaders && (\n \n )\n\n let bodyContent = (contentArg: ChunkContentCallbackArgs) => (\n \n )\n\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent)\n }\n}\n\nexport function buildDayTableModel(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator)\n\n return new DayTableModel(\n daySeries,\n /year|month|week/.test(dateProfile.currentRangeUnit),\n )\n}\n","import {\n DateProfileGenerator,\n addWeeks, diffWeeks,\n DateRange,\n} from '@fullcalendar/common'\n\nexport class TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered.\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay): DateRange {\n let { dateEnv } = this.props\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay)\n let start = renderRange.start\n let end = renderRange.end\n let endOfWeek\n\n // year and month views should be aligned with weeks. this is already done for week\n if (/^(year|month)$/.test(currentRangeUnit)) {\n start = dateEnv.startOfWeek(start)\n\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end)\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1)\n }\n }\n\n // ensure 6 weeks\n if (\n this.props.monthMode &&\n this.props.fixedWeekCount\n ) {\n let rowCnt = Math.ceil( // could be partial weeks due to hiddenDays\n diffWeeks(start, end),\n )\n end = addWeeks(end, 6 - rowCnt)\n }\n\n return { start, end }\n }\n}\n","import { createPlugin } from '@fullcalendar/common'\nimport { DateClicking } from './interactions/DateClicking'\nimport { DateSelecting } from './interactions/DateSelecting'\nimport { EventDragging } from './interactions/EventDragging'\nimport { EventResizing } from './interactions/EventResizing'\nimport { UnselectAuto } from './interactions/UnselectAuto'\nimport { FeaturefulElementDragging } from './dnd/FeaturefulElementDragging'\nimport { OPTION_REFINERS, LISTENER_REFINERS } from './options'\nimport './options-declare'\n\nexport default createPlugin({\n componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],\n calendarInteractions: [UnselectAuto],\n elementDraggingImpl: FeaturefulElementDragging,\n optionRefiners: OPTION_REFINERS,\n listenerRefiners: LISTENER_REFINERS,\n})\n\nexport * from './api-type-deps'\nexport { FeaturefulElementDragging }\nexport { PointerDragging } from './dnd/PointerDragging'\nexport { ExternalDraggable as Draggable } from './interactions-external/ExternalDraggable'\nexport { ThirdPartyDraggable } from './interactions-external/ThirdPartyDraggable'\n","import React, { Component, createRef } from 'react';\nimport { InputText } from 'primereact/inputtext';\nimport { Button } from 'primereact/button';\nimport { ObjectUtils, Ripple, classNames, CSSTransition, Portal, ZIndexUtils, DomHandler, OverlayService, ConnectedOverlayScrollHandler, UniqueComponentId, tip } from 'primereact/core';\nimport { VirtualScroller } from 'primereact/virtualscroller';\nimport PrimeReact from 'primereact/api';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar AutoCompletePanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(AutoCompletePanelComponent, _Component);\n\n var _super = _createSuper$1(AutoCompletePanelComponent);\n\n function AutoCompletePanelComponent() {\n _classCallCheck(this, AutoCompletePanelComponent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(AutoCompletePanelComponent, [{\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup, i) {\n var _this = this;\n\n var groupChildren = this.props.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (item, j) {\n var itemContent = _this.props.itemTemplate ? ObjectUtils.getJSXElement(_this.props.itemTemplate, item, j) : _this.props.field ? ObjectUtils.resolveFieldData(item, _this.props.field) : item;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: j + '_item',\n role: \"option\",\n \"aria-selected\": _this.props.ariaSelected === item,\n className: \"p-autocomplete-item\",\n onClick: function onClick(e) {\n return _this.props.onItemClick(e, item);\n },\n \"data-group\": i,\n \"data-index\": j\n }, itemContent, /*#__PURE__*/React.createElement(Ripple, null));\n });\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(suggestion, index) {\n var _this2 = this;\n\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, suggestion, index) : this.props.getOptionGroupLabel(suggestion);\n var groupChildrenContent = this.renderGroupChildren(suggestion, index);\n var key = index + '_' + this.getOptionGroupRenderKey(suggestion);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-autocomplete-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var itemContent = this.props.itemTemplate ? ObjectUtils.getJSXElement(this.props.itemTemplate, suggestion, index) : this.props.field ? ObjectUtils.resolveFieldData(suggestion, this.props.field) : suggestion;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index + '_item',\n role: \"option\",\n \"aria-selected\": this.props.ariaSelected === suggestion,\n className: \"p-autocomplete-item\",\n onClick: function onClick(e) {\n return _this2.props.onItemClick(e, suggestion);\n }\n }, itemContent, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this3 = this;\n\n if (this.props.suggestions) {\n return this.props.suggestions.map(function (suggestion, index) {\n return _this3.renderItem(suggestion, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this4 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions), {\n style: _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions.style), {\n height: this.props.scrollHeight\n }),\n items: this.props.suggestions,\n itemTemplate: function itemTemplate(item, options) {\n return item && _this4.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-autocomplete-items', options.className);\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.ref,\n className: className,\n role: \"listbox\",\n id: _this4.props.listId\n }, options.children);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: this.props.virtualScrollerRef\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-autocomplete-items\",\n role: \"listbox\",\n id: this.props.listId\n }, items);\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var panelClassName = classNames('p-autocomplete-panel p-component', this.props.panelClassName);\n\n var panelStyle = _objectSpread$1({\n maxHeight: this.props.scrollHeight\n }, this.props.panelStyle);\n\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.props.onEnter,\n onEntering: this.props.onEntering,\n onEntered: this.props.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: panelClassName,\n style: panelStyle,\n onClick: this.props.onClick\n }, content));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return AutoCompletePanelComponent;\n}(Component);\n\nvar AutoCompletePanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(AutoCompletePanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar AutoComplete = /*#__PURE__*/function (_Component) {\n _inherits(AutoComplete, _Component);\n\n var _super = _createSuper(AutoComplete);\n\n function AutoComplete(props) {\n var _this;\n\n _classCallCheck(this, AutoComplete);\n\n _this = _super.call(this, props);\n _this.state = {\n id: _this.props.id,\n searching: false,\n focused: false,\n overlayVisible: false\n };\n _this.onInputChange = _this.onInputChange.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onDropdownClick = _this.onDropdownClick.bind(_assertThisInitialized(_this));\n _this.onMultiContainerClick = _this.onMultiContainerClick.bind(_assertThisInitialized(_this));\n _this.onMultiInputFocus = _this.onMultiInputFocus.bind(_assertThisInitialized(_this));\n _this.onMultiInputBlur = _this.onMultiInputBlur.bind(_assertThisInitialized(_this));\n _this.selectItem = _this.selectItem.bind(_assertThisInitialized(_this));\n _this.getOptionGroupLabel = _this.getOptionGroupLabel.bind(_assertThisInitialized(_this));\n _this.getOptionGroupChildren = _this.getOptionGroupChildren.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntering = _this.onOverlayEntering.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.virtualScrollerRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(AutoComplete, [{\n key: \"onInputChange\",\n value: function onInputChange(event) {\n var _this2 = this;\n\n //Cancel the search request if user types within the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n var query = event.target.value;\n\n if (!this.props.multiple) {\n this.updateModel(event, query);\n }\n\n if (query.length === 0) {\n this.hideOverlay();\n\n if (this.props.onClear) {\n this.props.onClear(event);\n }\n } else {\n if (query.length >= this.props.minLength) {\n this.timeout = setTimeout(function () {\n _this2.search(event, query, 'input');\n }, this.props.delay);\n } else {\n this.hideOverlay();\n }\n }\n }\n }, {\n key: \"search\",\n value: function search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n } //do not search blank values on input change\n\n\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n\n if (this.props.completeMethod) {\n this.setState({\n searching: true\n });\n this.props.completeMethod({\n originalEvent: event,\n query: query\n });\n }\n }\n }, {\n key: \"selectItem\",\n value: function selectItem(event, option, preventInputFocus) {\n if (this.props.multiple) {\n this.inputRef.current.value = '';\n\n if (!this.isSelected(option)) {\n var newValue = this.props.value ? [].concat(_toConsumableArray(this.props.value), [option]) : [option];\n this.updateModel(event, newValue);\n }\n } else {\n this.updateInputField(option);\n this.updateModel(event, option);\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n value: option\n });\n }\n\n if (!preventInputFocus) {\n this.inputRef.current.focus();\n this.hideOverlay();\n }\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(event, value) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.state.id,\n value: value\n }\n });\n }\n\n this.ariaSelected = value;\n }\n }, {\n key: \"formatValue\",\n value: function formatValue(value) {\n if (value) {\n if (this.props.selectedItemTemplate && (this.props.multiple ? this.isSelected(value) : this.findOptionIndex(value) > -1)) {\n var resolvedFieldData = ObjectUtils.getJSXElement(this.props.selectedItemTemplate, value);\n return resolvedFieldData ? resolvedFieldData : value;\n } else if (this.props.field) {\n var _resolvedFieldData = ObjectUtils.resolveFieldData(value, this.props.field);\n\n return _resolvedFieldData !== null && _resolvedFieldData !== undefined ? _resolvedFieldData : value;\n } else return value;\n } else return '';\n }\n }, {\n key: \"updateInputField\",\n value: function updateInputField(value) {\n var formattedValue = this.formatValue(value);\n this.inputRef.current.value = formattedValue;\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay() {\n this.setState({\n overlayVisible: false,\n searching: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter() {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.alignOverlay();\n }\n }, {\n key: \"onOverlayEntering\",\n value: function onOverlayEntering() {\n if (this.props.autoHighlight && this.props.suggestions && this.props.suggestions.length) {\n DomHandler.addClass(this.overlayRef.current.firstChild.firstChild, 'p-highlight');\n }\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered() {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n var target = this.props.multiple ? this.multiContainer : this.inputRef.current;\n DomHandler.alignOverlay(this.overlayRef.current, target, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"onDropdownClick\",\n value: function onDropdownClick(event) {\n this.inputRef.current.focus();\n if (this.props.dropdownMode === 'blank') this.search(event, '', 'dropdown');else if (this.props.dropdownMode === 'current') this.search(event, this.inputRef.current.value, 'dropdown');\n\n if (this.props.onDropdownClick) {\n this.props.onDropdownClick({\n originalEvent: event,\n query: this.inputRef.current.value\n });\n }\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(event, index) {\n var removedValue = this.props.value[index];\n var newValue = this.props.value.filter(function (val, i) {\n return index !== i;\n });\n this.updateModel(event, newValue);\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n value: removedValue\n });\n }\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n if (this.state.overlayVisible) {\n var highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li.p-highlight');\n\n switch (event.which) {\n //down\n case 40:\n if (highlightItem) {\n var nextElement = this.findNextItem(highlightItem);\n\n if (nextElement) {\n DomHandler.addClass(nextElement, 'p-highlight');\n DomHandler.removeClass(highlightItem, 'p-highlight');\n DomHandler.scrollInView(this.overlayRef.current, nextElement);\n }\n } else {\n highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li');\n\n if (DomHandler.hasClass(highlightItem, 'p-autocomplete-item-group')) {\n highlightItem = this.findNextItem(highlightItem);\n }\n\n if (highlightItem) {\n DomHandler.addClass(highlightItem, 'p-highlight');\n }\n }\n\n event.preventDefault();\n break;\n //up\n\n case 38:\n if (highlightItem) {\n var previousElement = this.findPrevItem(highlightItem);\n\n if (previousElement) {\n DomHandler.addClass(previousElement, 'p-highlight');\n DomHandler.removeClass(highlightItem, 'p-highlight');\n DomHandler.scrollInView(this.overlayRef.current, previousElement);\n }\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n if (highlightItem) {\n this.selectHighlightItem(event, highlightItem);\n this.hideOverlay();\n }\n\n event.preventDefault();\n break;\n //escape\n\n case 27:\n this.hideOverlay();\n event.preventDefault();\n break;\n //tab\n\n case 9:\n if (highlightItem) {\n this.selectHighlightItem(event, highlightItem);\n }\n\n this.hideOverlay();\n break;\n }\n }\n\n if (this.props.multiple) {\n switch (event.which) {\n //backspace\n case 8:\n if (this.props.value && this.props.value.length && !this.inputRef.current.value) {\n var removedValue = this.props.value[this.props.value.length - 1];\n var newValue = this.props.value.slice(0, -1);\n this.updateModel(event, newValue);\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n value: removedValue\n });\n }\n }\n\n break;\n }\n }\n }\n }, {\n key: \"selectHighlightItem\",\n value: function selectHighlightItem(event, item) {\n if (this.props.optionGroupLabel) {\n var optionGroup = this.props.suggestions[item.dataset.group];\n this.selectItem(event, this.getOptionGroupChildren(optionGroup)[item.dataset.index]);\n } else {\n this.selectItem(event, this.props.suggestions[DomHandler.index(item)]);\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n return nextItem ? DomHandler.hasClass(nextItem, 'p-autocomplete-item-group') ? this.findNextItem(nextItem) : nextItem : null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n return prevItem ? DomHandler.hasClass(prevItem, 'p-autocomplete-item-group') ? this.findPrevItem(prevItem) : prevItem : null;\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n if (_this3.props.onFocus) {\n _this3.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"forceItemSelection\",\n value: function forceItemSelection(event) {\n var valid = false;\n var inputValue = event.target.value.trim();\n\n if (this.props.suggestions) {\n var _iterator = _createForOfIteratorHelper(this.props.suggestions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n var itemValue = this.props.field ? ObjectUtils.resolveFieldData(item, this.props.field) : item;\n\n if (itemValue && inputValue === itemValue.trim()) {\n valid = true;\n this.selectItem(event, item, true);\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n if (!valid) {\n this.inputRef.current.value = '';\n this.updateModel(event, null);\n\n if (this.props.onClear) {\n this.props.onClear(event);\n }\n }\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this4 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this4.props.forceSelection) {\n _this4.forceItemSelection(event);\n }\n\n if (_this4.props.onBlur) {\n _this4.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"onMultiContainerClick\",\n value: function onMultiContainerClick(event) {\n this.inputRef.current.focus();\n\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n }, {\n key: \"onMultiInputFocus\",\n value: function onMultiInputFocus(event) {\n this.onInputFocus(event);\n DomHandler.addClass(this.multiContainer, 'p-focus');\n }\n }, {\n key: \"onMultiInputBlur\",\n value: function onMultiInputBlur(event) {\n this.onInputBlur(event);\n DomHandler.removeClass(this.multiContainer, 'p-focus');\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(val) {\n var selected = false;\n\n if (this.props.value && this.props.value.length) {\n for (var i = 0; i < this.props.value.length; i++) {\n if (ObjectUtils.equals(this.props.value[i], val)) {\n selected = true;\n break;\n }\n }\n }\n\n return selected;\n }\n }, {\n key: \"findOptionIndex\",\n value: function findOptionIndex(option) {\n var index = -1;\n\n if (this.props.suggestions) {\n for (var i = 0; i < this.props.suggestions.length; i++) {\n if (ObjectUtils.equals(option, this.props.suggestions[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return this.props.optionGroupLabel ? ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel) : optionGroup;\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this5 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (event.which === 3) {\n // right click\n return;\n }\n\n if (_this5.state.overlayVisible && _this5.isOutsideClicked(event)) {\n _this5.hideOverlay();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this6 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this6.state.overlayVisible) {\n _this6.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this7 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this7.state.overlayVisible && !DomHandler.isAndroid()) {\n _this7.hideOverlay();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && this.overlayRef && this.overlayRef.current && !this.overlayRef.current.contains(event.target) && !this.isInputClicked(event);\n }\n }, {\n key: \"isInputClicked\",\n value: function isInputClicked(event) {\n if (this.props.multiple) return event.target === this.multiContainer || this.multiContainer.contains(event.target);else return event.target === this.inputRef.current;\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n\n if (this.props.autoFocus && this.inputRef && this.inputRef.current) {\n this.inputRef.current.focus();\n }\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.suggestions !== this.props.suggestions && this.state.searching) {\n if (this.props.suggestions && this.props.suggestions.length) {\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n\n this.setState({\n searching: false\n });\n }\n\n if (this.inputRef && this.inputRef.current && !this.props.multiple) {\n this.updateInputField(this.props.value);\n }\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderSimpleAutoComplete\",\n value: function renderSimpleAutoComplete() {\n var inputClassName = classNames('p-autocomplete-input', this.props.inputClassName, {\n 'p-autocomplete-dd-input': this.props.dropdown\n });\n return /*#__PURE__*/React.createElement(InputText, {\n ref: this.inputRef,\n id: this.props.inputId,\n type: this.props.type,\n name: this.props.name,\n defaultValue: this.formatValue(this.props.value),\n role: \"searchbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-controls\": this.state.id + '_list',\n \"aria-labelledby\": this.props.ariaLabelledBy,\n className: inputClassName,\n style: this.props.inputStyle,\n autoComplete: \"off\",\n readOnly: this.props.readOnly,\n disabled: this.props.disabled,\n placeholder: this.props.placeholder,\n size: this.props.size,\n maxLength: this.props.maxlength,\n tabIndex: this.props.tabIndex,\n onBlur: this.onInputBlur,\n onFocus: this.onInputFocus,\n onChange: this.onInputChange,\n onMouseDown: this.props.onMouseDown,\n onKeyUp: this.props.onKeyUp,\n onKeyDown: this.onInputKeyDown,\n onKeyPress: this.props.onKeyPress,\n onContextMenu: this.props.onContextMenu,\n onClick: this.props.onClick,\n onDoubleClick: this.props.onDblClick\n });\n }\n }, {\n key: \"renderChips\",\n value: function renderChips() {\n var _this8 = this;\n\n if (this.props.value && this.props.value.length) {\n return this.props.value.map(function (val, index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index + 'multi-item',\n className: \"p-autocomplete-token p-highlight\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-autocomplete-token-label\"\n }, _this8.formatValue(val)), !_this8.props.disabled && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-autocomplete-token-icon pi pi-times-circle\",\n onClick: function onClick(e) {\n return _this8.removeItem(e, index);\n }\n }));\n });\n }\n\n return null;\n }\n }, {\n key: \"renderMultiInput\",\n value: function renderMultiInput() {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-autocomplete-input-token\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n type: this.props.type,\n disabled: this.props.disabled,\n placeholder: this.props.placeholder,\n role: \"searchbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-controls\": this.state.id + '_list',\n \"aria-labelledby\": this.props.ariaLabelledBy,\n autoComplete: \"off\",\n tabIndex: this.props.tabIndex,\n onChange: this.onInputChange,\n id: this.props.inputId,\n name: this.props.name,\n style: this.props.inputStyle,\n className: this.props.inputClassName,\n maxLength: this.props.maxlength,\n onKeyUp: this.props.onKeyUp,\n onKeyDown: this.onInputKeyDown,\n onKeyPress: this.props.onKeyPress,\n onFocus: this.onMultiInputFocus,\n onBlur: this.onMultiInputBlur\n }));\n }\n }, {\n key: \"renderMultipleAutoComplete\",\n value: function renderMultipleAutoComplete() {\n var _this9 = this;\n\n var multiContainerClass = classNames('p-autocomplete-multiple-container p-component p-inputtext', {\n 'p-disabled': this.props.disabled\n });\n var tokens = this.renderChips();\n var input = this.renderMultiInput();\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n _this9.multiContainer = el;\n },\n className: multiContainerClass,\n onContextMenu: this.props.onContextMenu,\n onMouseDown: this.props.onMouseDown,\n onClick: this.onMultiContainerClick,\n onDoubleClick: this.props.onDblClick\n }, tokens, input);\n }\n }, {\n key: \"renderDropdown\",\n value: function renderDropdown() {\n var _this10 = this;\n\n return /*#__PURE__*/React.createElement(Button, {\n ref: function ref(el) {\n return _this10.dropdownButton = el;\n },\n type: \"button\",\n icon: this.props.dropdownIcon,\n className: \"p-autocomplete-dropdown\",\n disabled: this.props.disabled,\n onClick: this.onDropdownClick\n });\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n if (this.state.searching) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-autocomplete-loader pi pi-spinner pi-spin\"\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this11 = this;\n\n var input, dropdown;\n var className = classNames('p-autocomplete p-component p-inputwrapper', this.props.className, {\n 'p-autocomplete-dd': this.props.dropdown,\n 'p-autocomplete-multiple': this.props.multiple,\n 'p-inputwrapper-filled': this.props.value,\n 'p-inputwrapper-focus': this.state.focused\n });\n var loader = this.renderLoader();\n if (this.props.multiple) input = this.renderMultipleAutoComplete();else input = this.renderSimpleAutoComplete();\n\n if (this.props.dropdown) {\n dropdown = this.renderDropdown();\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this11.container = el;\n },\n id: this.state.id,\n style: this.props.style,\n className: className,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.state.overlayVisible,\n \"aria-owns\": this.state.id + '_list'\n }, input, loader, dropdown, /*#__PURE__*/React.createElement(AutoCompletePanel, _extends({\n ref: this.overlayRef,\n virtualScrollerRef: this.virtualScrollerRef\n }, this.props, {\n listId: this.state.id + '_list',\n onItemClick: this.selectItem,\n ariaSelected: this.ariaSelected,\n onClick: this.onPanelClick,\n getOptionGroupLabel: this.getOptionGroupLabel,\n getOptionGroupChildren: this.getOptionGroupChildren,\n in: this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntering: this.onOverlayEntering,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n })));\n }\n }]);\n\n return AutoComplete;\n}(Component);\n\n_defineProperty(AutoComplete, \"defaultProps\", {\n id: null,\n inputRef: null,\n value: null,\n name: null,\n type: 'text',\n suggestions: null,\n field: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n forceSelection: false,\n autoHighlight: false,\n virtualScrollerOptions: null,\n scrollHeight: '200px',\n dropdown: false,\n dropdownMode: 'blank',\n multiple: false,\n minLength: 1,\n delay: 300,\n style: null,\n className: null,\n inputId: null,\n inputStyle: null,\n inputClassName: null,\n panelClassName: null,\n panelStyle: null,\n placeholder: null,\n readOnly: false,\n disabled: false,\n maxlength: null,\n size: null,\n appendTo: null,\n tabIndex: null,\n autoFocus: false,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n completeMethod: null,\n itemTemplate: null,\n selectedItemTemplate: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n onChange: null,\n onFocus: null,\n onBlur: null,\n onSelect: null,\n onUnselect: null,\n onDropdownClick: null,\n onClick: null,\n onDblClick: null,\n onMouseDown: null,\n onKeyUp: null,\n onKeyPress: null,\n onContextMenu: null,\n onClear: null,\n onShow: null,\n onHide: null\n});\n\nexport { AutoComplete };\n","import React, { createRef, Component } from 'react';\nimport { tip, classNames } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Chips = /*#__PURE__*/function (_Component) {\n _inherits(Chips, _Component);\n\n var _super = _createSuper(Chips);\n\n function Chips(props) {\n var _this;\n\n _classCallCheck(this, Chips);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onWrapperClick = _this.onWrapperClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onPaste = _this.onPaste.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Chips, [{\n key: \"removeItem\",\n value: function removeItem(event, index) {\n if (this.props.disabled) {\n return;\n }\n\n var values = _toConsumableArray(this.props.value);\n\n var removedItem = values.splice(index, 1);\n\n if (this.props.onRemove) {\n this.props.onRemove({\n originalEvent: event,\n value: removedItem\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: values,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: values\n }\n });\n }\n }\n }, {\n key: \"addItem\",\n value: function addItem(event, item, preventDefault) {\n if (item && item.trim().length) {\n var values = this.props.value ? _toConsumableArray(this.props.value) : [];\n\n if (this.props.allowDuplicate || values.indexOf(item) === -1) {\n values.push(item);\n\n if (this.props.onAdd) {\n this.props.onAdd({\n originalEvent: event,\n value: item\n });\n }\n }\n\n this.updateInput(event, values, preventDefault);\n }\n }\n }, {\n key: \"onWrapperClick\",\n value: function onWrapperClick() {\n this.inputRef.current.focus();\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n var inputValue = event.target.value;\n var values = this.props.value || [];\n\n switch (event.which) {\n //backspace\n case 8:\n if (this.inputRef.current.value.length === 0 && values.length > 0) {\n this.removeItem(event, values.length - 1);\n }\n\n break;\n //enter\n\n case 13:\n if (inputValue && inputValue.trim().length && (!this.props.max || this.props.max > values.length)) {\n this.addItem(event, inputValue, true);\n }\n\n break;\n\n default:\n if (this.isMaxedOut()) {\n event.preventDefault();\n } else if (this.props.separator) {\n if (this.props.separator === ',' && event.which === 188) {\n this.addItem(event, inputValue, true);\n }\n }\n\n break;\n }\n }\n }, {\n key: \"updateInput\",\n value: function updateInput(event, items, preventDefault) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: items,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: items\n }\n });\n }\n\n this.inputRef.current.value = '';\n\n if (preventDefault) {\n event.preventDefault();\n }\n }\n }, {\n key: \"onPaste\",\n value: function onPaste(event) {\n var _this2 = this;\n\n if (this.props.separator) {\n var pastedData = (event.clipboardData || window['clipboardData']).getData('Text');\n\n if (pastedData) {\n var values = this.props.value || [];\n var pastedValues = pastedData.split(this.props.separator);\n pastedValues = pastedValues.filter(function (val) {\n return (_this2.props.allowDuplicate || values.indexOf(val) === -1) && val.trim().length;\n });\n values = [].concat(_toConsumableArray(values), _toConsumableArray(pastedValues));\n this.updateInput(event, values, true);\n }\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n if (_this3.props.onFocus) {\n _this3.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(event) {\n var _this4 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this4.props.onBlur) {\n _this4.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"isMaxedOut\",\n value: function isMaxedOut() {\n return this.props.max && this.props.value && this.props.max === this.props.value.length;\n }\n }, {\n key: \"isFilled\",\n value: function isFilled() {\n return this.props.value && this.props.value.length || this.inputRef && this.inputRef.current && this.inputRef.current.value && this.inputRef.current.value.length;\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var isValueSame = this.props.value && prevProps.value && prevProps.value.length === this.props.value.length;\n\n if (this.props.tooltip) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n } else if (!isValueSame && this.tooltip) {\n this.tooltip.deactivate();\n this.tooltip.activate();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.inputRef.current,\n targetContainer: this.listElement,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(value, index) {\n var _this5 = this;\n\n var content = this.props.itemTemplate ? this.props.itemTemplate(value) : value;\n var icon = this.props.disabled ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-chips-token-icon pi pi-times-circle\",\n onClick: function onClick(event) {\n return _this5.removeItem(event, index);\n }\n });\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n className: \"p-chips-token p-highlight\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-chips-token-label\"\n }, content), icon);\n }\n }, {\n key: \"renderInputElement\",\n value: function renderInputElement() {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-chips-input-token\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n placeholder: this.props.placeholder,\n type: \"text\",\n name: this.props.name,\n disabled: this.props.disabled || this.isMaxedOut(),\n onKeyDown: this.onKeyDown,\n onPaste: this.onPaste,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n \"aria-labelledby\": this.props.ariaLabelledBy\n }));\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this6 = this;\n\n if (this.props.value) {\n return this.props.value.map(function (value, index) {\n return _this6.renderItem(value, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"renderList\",\n value: function renderList() {\n var _this7 = this;\n\n var className = classNames('p-inputtext p-chips-multiple-container', {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n var items = this.renderItems();\n var inputElement = this.renderInputElement();\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n return _this7.listElement = el;\n },\n className: className,\n onClick: this.onWrapperClick\n }, items, inputElement);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this8 = this;\n\n var className = classNames('p-chips p-component p-inputwrapper', this.props.className, {\n 'p-inputwrapper-filled': this.isFilled(),\n 'p-inputwrapper-focus': this.state.focused\n });\n var list = this.renderList();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this8.element = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, list);\n }\n }]);\n\n return Chips;\n}(Component);\n\n_defineProperty(Chips, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n placeholder: null,\n value: null,\n max: null,\n disabled: null,\n style: null,\n className: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n separator: null,\n allowDuplicate: true,\n itemTemplate: null,\n onAdd: null,\n onRemove: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n});\n\nexport { Chips };\n","import React, { createRef, Component } from 'react';\nimport { tip, classNames, Ripple, ObjectUtils, CSSTransition, Portal, OverlayService, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler, FilterUtils } from 'primereact/core';\nimport { InputText } from 'primereact/inputtext';\nimport { VirtualScroller } from 'primereact/virtualscroller';\nimport PrimeReact from 'primereact/api';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Checkbox = /*#__PURE__*/function (_Component) {\n _inherits(Checkbox, _Component);\n\n var _super = _createSuper$4(Checkbox);\n\n function Checkbox(props) {\n var _this;\n\n _classCallCheck(this, Checkbox);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: \"onClick\",\n value: function onClick(e) {\n if (!this.props.disabled && !this.props.readOnly && this.props.onChange) {\n var value = this.isChecked() ? this.props.falseValue : this.props.trueValue;\n this.props.onChange({\n originalEvent: e,\n value: this.props.value,\n checked: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n type: 'checkbox',\n name: this.props.name,\n id: this.props.id,\n value: this.props.value,\n checked: value\n }\n });\n this.inputRef.current.checked = !this.isChecked();\n this.inputRef.current.focus();\n e.preventDefault();\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.inputRef.current.checked = this.isChecked();\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread$2({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Enter') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"isChecked\",\n value: function isChecked() {\n return this.props.checked === this.props.trueValue;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var containerClass = classNames('p-checkbox p-component', {\n 'p-checkbox-checked': this.isChecked(),\n 'p-checkbox-disabled': this.props.disabled,\n 'p-checkbox-focused': this.state.focused\n }, this.props.className);\n var boxClass = classNames('p-checkbox-box', {\n 'p-highlight': this.isChecked(),\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n var iconClass = classNames('p-checkbox-icon p-c', _defineProperty({}, this.props.icon, this.isChecked()));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this2.element = el;\n },\n id: this.props.id,\n className: containerClass,\n style: this.props.style,\n onClick: this.onClick,\n onContextMenu: this.props.onContextMenu,\n onMouseDown: this.props.onMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n type: \"checkbox\",\n \"aria-labelledby\": this.props.ariaLabelledBy,\n id: this.props.inputId,\n name: this.props.name,\n tabIndex: this.props.tabIndex,\n defaultChecked: this.isChecked(),\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: this.props.disabled,\n readOnly: this.props.readOnly,\n required: this.props.required\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: boxClass,\n ref: function ref(el) {\n return _this2.box = el;\n },\n role: \"checkbox\",\n \"aria-checked\": this.isChecked()\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClass\n })));\n }\n }]);\n\n return Checkbox;\n}(Component);\n\n_defineProperty(Checkbox, \"defaultProps\", {\n id: null,\n inputRef: null,\n inputId: null,\n value: null,\n name: null,\n checked: false,\n trueValue: true,\n falseValue: false,\n style: null,\n className: null,\n disabled: false,\n required: false,\n readOnly: false,\n tabIndex: null,\n icon: 'pi pi-check',\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onChange: null,\n onMouseDown: null,\n onContextMenu: null\n});\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar MultiSelectHeader = /*#__PURE__*/function (_Component) {\n _inherits(MultiSelectHeader, _Component);\n\n var _super = _createSuper$3(MultiSelectHeader);\n\n function MultiSelectHeader(props) {\n var _this;\n\n _classCallCheck(this, MultiSelectHeader);\n\n _this = _super.call(this, props);\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n _this.onSelectAll = _this.onSelectAll.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(MultiSelectHeader, [{\n key: \"onFilter\",\n value: function onFilter(event) {\n if (this.props.onFilter) {\n this.props.onFilter({\n originalEvent: event,\n query: event.target.value\n });\n }\n }\n }, {\n key: \"onSelectAll\",\n value: function onSelectAll(event) {\n if (this.props.onSelectAll) {\n this.props.onSelectAll({\n originalEvent: event,\n checked: this.props.selectAll\n });\n }\n }\n }, {\n key: \"renderFilterElement\",\n value: function renderFilterElement() {\n if (this.props.filter) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-multiselect-filter-container\"\n }, /*#__PURE__*/React.createElement(InputText, {\n type: \"text\",\n role: \"textbox\",\n value: this.props.filterValue,\n onChange: this.onFilter,\n className: \"p-multiselect-filter\",\n placeholder: this.props.filterPlaceholder\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-multiselect-filter-icon pi pi-search\"\n }));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var filterElement = this.renderFilterElement();\n var checkboxElement = this.props.showSelectAll && /*#__PURE__*/React.createElement(Checkbox, {\n checked: this.props.selectAll,\n onChange: this.onSelectAll,\n role: \"checkbox\",\n \"aria-checked\": this.props.selectAll\n });\n var closeElement = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-multiselect-close p-link\",\n onClick: this.props.onClose\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-multiselect-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n var element = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-multiselect-header\"\n }, checkboxElement, filterElement, closeElement);\n\n if (this.props.template) {\n var defaultOptions = {\n className: 'p-multiselect-header',\n checkboxElement: checkboxElement,\n checked: this.props.selectAll,\n onChange: this.onSelectAll,\n filterElement: filterElement,\n closeElement: closeElement,\n closeElementClassName: 'p-multiselect-close p-link',\n closeIconClassName: 'p-multiselect-close-icon pi pi-times',\n onCloseClick: this.props.onClose,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return MultiSelectHeader;\n}(Component);\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar MultiSelectItem = /*#__PURE__*/function (_Component) {\n _inherits(MultiSelectItem, _Component);\n\n var _super = _createSuper$2(MultiSelectItem);\n\n function MultiSelectItem(props) {\n var _this;\n\n _classCallCheck(this, MultiSelectItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(MultiSelectItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (this.props.onKeyDown) {\n this.props.onKeyDown({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-multiselect-item', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled\n }, this.props.option.className);\n var checkboxClassName = classNames('p-checkbox-box', {\n 'p-highlight': this.props.selected\n });\n var checkboxIcon = classNames('p-checkbox-icon p-c', {\n 'pi pi-check': this.props.selected\n });\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props.option) : this.props.label;\n var tabIndex = this.props.disabled ? null : this.props.tabIndex || 0;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n tabIndex: tabIndex,\n onKeyDown: this.onKeyDown,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-checkbox p-component\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: checkboxClassName\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: checkboxIcon\n }))), /*#__PURE__*/React.createElement(\"span\", null, content), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return MultiSelectItem;\n}(Component);\n\n_defineProperty(MultiSelectItem, \"defaultProps\", {\n option: null,\n label: null,\n selected: false,\n disabled: false,\n tabIndex: null,\n template: null,\n onClick: null,\n onKeyDown: null\n});\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar MultiSelectPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(MultiSelectPanelComponent, _Component);\n\n var _super = _createSuper$1(MultiSelectPanelComponent);\n\n function MultiSelectPanelComponent(props) {\n var _this;\n\n _classCallCheck(this, MultiSelectPanelComponent);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(MultiSelectPanelComponent, [{\n key: \"onEnter\",\n value: function onEnter() {\n var _this2 = this;\n\n this.props.onEnter(function () {\n if (_this2.virtualScrollerRef) {\n var selectedIndex = _this2.props.getSelectedOptionIndex();\n\n if (selectedIndex !== -1) {\n _this2.virtualScrollerRef.scrollToIndex(selectedIndex);\n }\n }\n });\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n if (this.virtualScrollerRef) {\n this.virtualScrollerRef.scrollToIndex(0);\n }\n\n this.props.onFilterInputChange && this.props.onFilterInputChange(event);\n }\n }, {\n key: \"isEmptyFilter\",\n value: function isEmptyFilter() {\n return !(this.props.visibleOptions && this.props.visibleOptions.length) && this.props.hasFilter();\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n return /*#__PURE__*/React.createElement(MultiSelectHeader, {\n filter: this.props.filter,\n filterValue: this.props.filterValue,\n onFilter: this.onFilterInputChange,\n filterPlaceholder: this.props.filterPlaceholder,\n onClose: this.props.onCloseClick,\n showSelectAll: this.props.showSelectAll,\n selectAll: this.props.isAllSelected(),\n onSelectAll: this.props.onSelectAll,\n template: this.props.panelHeaderTemplate\n });\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n if (this.props.panelFooterTemplate) {\n var content = ObjectUtils.getJSXElement(this.props.panelFooterTemplate, this.props, this.props.onOverlayHide);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-multiselect-footer\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup) {\n var _this3 = this;\n\n var groupChildren = this.props.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (option, j) {\n var optionLabel = _this3.props.getOptionLabel(option);\n\n var optionKey = j + '_' + _this3.props.getOptionRenderKey(option);\n\n var disabled = _this3.props.isOptionDisabled(option);\n\n var tabIndex = disabled ? null : _this3.props.tabIndex || 0;\n return /*#__PURE__*/React.createElement(MultiSelectItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: _this3.props.itemTemplate,\n selected: _this3.props.isSelected(option),\n onClick: _this3.props.onOptionSelect,\n onKeyDown: _this3.props.onOptionKeyDown,\n tabIndex: tabIndex,\n disabled: disabled\n });\n });\n }\n }, {\n key: \"renderEmptyFilter\",\n value: function renderEmptyFilter() {\n var emptyFilterMessage = ObjectUtils.getJSXElement(this.props.emptyFilterMessage, this.props);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-multiselect-empty-message\"\n }, emptyFilterMessage);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(option, index) {\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, option, index) : this.props.getOptionGroupLabel(option);\n var groupChildrenContent = this.renderGroupChildren(option);\n var key = index + '_' + this.props.getOptionGroupRenderKey(option);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-multiselect-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var optionLabel = this.props.getOptionLabel(option);\n var optionKey = index + '_' + this.props.getOptionRenderKey(option);\n var disabled = this.props.isOptionDisabled(option);\n var tabIndex = disabled ? null : this.props.tabIndex || 0;\n return /*#__PURE__*/React.createElement(MultiSelectItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: this.props.itemTemplate,\n selected: this.props.isSelected(option),\n onClick: this.props.onOptionSelect,\n onKeyDown: this.props.onOptionKeyDown,\n tabIndex: tabIndex,\n disabled: disabled\n });\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this4 = this;\n\n if (this.props.visibleOptions && this.props.visibleOptions.length) {\n return this.props.visibleOptions.map(function (option, index) {\n return _this4.renderItem(option, index);\n });\n } else if (this.props.hasFilter()) {\n return this.renderEmptyFilter();\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this5 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions), {\n style: _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions.style), {\n height: this.props.scrollHeight\n }),\n className: classNames('p-multiselect-items-wrapper', this.props.virtualScrollerOptions.className),\n items: this.props.visibleOptions,\n onLazyLoad: function onLazyLoad(event) {\n return _this5.props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {\n filter: _this5.props.filterValue\n }));\n },\n itemTemplate: function itemTemplate(item, options) {\n return item && _this5.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-multiselect-items p-component', options.className);\n var content = _this5.isEmptyFilter() ? _this5.renderEmptyFilter() : options.children;\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.ref,\n className: className,\n role: \"listbox\",\n \"aria-multiselectable\": true\n }, content);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: function ref(el) {\n return _this5.virtualScrollerRef = el;\n }\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-multiselect-items-wrapper\",\n style: {\n maxHeight: this.props.scrollHeight\n }\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-multiselect-items p-component\",\n role: \"listbox\",\n \"aria-multiselectable\": true\n }, items));\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var panelClassName = classNames('p-multiselect-panel p-component', {\n 'p-multiselect-limited': !this.props.allowOptionSelect()\n }, this.props.panelClassName);\n var header = this.renderHeader();\n var content = this.renderContent();\n var footer = this.renderFooter();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.props.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: panelClassName,\n style: this.props.panelStyle,\n onClick: this.props.onClick\n }, header, content, footer));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return MultiSelectPanelComponent;\n}(Component);\n\nvar MultiSelectPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(MultiSelectPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar MultiSelect = /*#__PURE__*/function (_Component) {\n _inherits(MultiSelect, _Component);\n\n var _super = _createSuper(MultiSelect);\n\n function MultiSelect(props) {\n var _this;\n\n _classCallCheck(this, MultiSelect);\n\n _this = _super.call(this, props);\n _this.state = {\n filter: '',\n focused: false,\n overlayVisible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onOptionSelect = _this.onOptionSelect.bind(_assertThisInitialized(_this));\n _this.onOptionKeyDown = _this.onOptionKeyDown.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n _this.onCloseClick = _this.onCloseClick.bind(_assertThisInitialized(_this));\n _this.onSelectAll = _this.onSelectAll.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.getOptionLabel = _this.getOptionLabel.bind(_assertThisInitialized(_this));\n _this.getOptionRenderKey = _this.getOptionRenderKey.bind(_assertThisInitialized(_this));\n _this.isOptionDisabled = _this.isOptionDisabled.bind(_assertThisInitialized(_this));\n _this.getOptionGroupChildren = _this.getOptionGroupChildren.bind(_assertThisInitialized(_this));\n _this.getOptionGroupLabel = _this.getOptionGroupLabel.bind(_assertThisInitialized(_this));\n _this.getOptionGroupRenderKey = _this.getOptionGroupRenderKey.bind(_assertThisInitialized(_this));\n _this.allowOptionSelect = _this.allowOptionSelect.bind(_assertThisInitialized(_this));\n _this.isSelected = _this.isSelected.bind(_assertThisInitialized(_this));\n _this.isAllSelected = _this.isAllSelected.bind(_assertThisInitialized(_this));\n _this.hasFilter = _this.hasFilter.bind(_assertThisInitialized(_this));\n _this.getSelectedOptionIndex = _this.getSelectedOptionIndex.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n _this.onOptionKeyDown = _this.onOptionKeyDown.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(MultiSelect, [{\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"allowOptionSelect\",\n value: function allowOptionSelect() {\n return !this.props.selectionLimit || !this.props.value || this.props.value && this.props.value.length < this.props.selectionLimit;\n }\n }, {\n key: \"onOptionSelect\",\n value: function onOptionSelect(event) {\n var _this2 = this;\n\n var originalEvent = event.originalEvent,\n option = event.option;\n\n if (this.props.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n var optionValue = this.getOptionValue(option);\n var isOptionValueUsed = this.isOptionValueUsed(option);\n var selected = this.isSelected(option);\n var allowOptionSelect = this.allowOptionSelect();\n if (selected) this.updateModel(originalEvent, this.props.value.filter(function (val) {\n return !ObjectUtils.equals(isOptionValueUsed ? val : _this2.getOptionValue(val), optionValue, _this2.equalityKey());\n }));else if (allowOptionSelect) this.updateModel(originalEvent, [].concat(_toConsumableArray(this.props.value || []), [optionValue]));\n }\n }, {\n key: \"onOptionKeyDown\",\n value: function onOptionKeyDown(event) {\n var originalEvent = event.originalEvent;\n var listItem = originalEvent.currentTarget;\n\n switch (originalEvent.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.focus();\n }\n\n originalEvent.preventDefault();\n break;\n //up\n\n case 38:\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.focus();\n }\n\n originalEvent.preventDefault();\n break;\n //enter and space\n\n case 13:\n case 32:\n this.onOptionSelect(event);\n originalEvent.preventDefault();\n break;\n //escape\n\n case 27:\n this.hide();\n this.inputRef.current.focus();\n break;\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-disabled') || DomHandler.hasClass(nextItem, 'p-multiselect-item-group') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-disabled') || DomHandler.hasClass(prevItem, 'p-multiselect-item-group') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.props.disabled && !this.isPanelClicked(event) && !DomHandler.hasClass(event.target, 'p-multiselect-token-icon') && !this.isClearClicked(event)) {\n if (this.state.overlayVisible) {\n this.hide();\n } else {\n this.show();\n }\n\n this.inputRef.current.focus();\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n if (!this.state.overlayVisible && event.altKey) {\n this.show();\n event.preventDefault();\n }\n\n break;\n //space\n\n case 32:\n if (this.state.overlayVisible) this.hide();else this.show();\n event.preventDefault();\n break;\n //escape\n\n case 27:\n this.hide();\n break;\n //tab\n\n case 9:\n if (this.state.overlayVisible) {\n var firstFocusableElement = DomHandler.getFirstFocusableElement(this.overlayRef.current);\n\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n event.preventDefault();\n }\n }\n\n break;\n }\n }\n }, {\n key: \"onSelectAll\",\n value: function onSelectAll(event) {\n var _this3 = this;\n\n if (this.props.onSelectAll) {\n this.props.onSelectAll(event);\n } else {\n var value = null;\n var visibleOptions = this.getVisibleOptions();\n\n if (event.checked) {\n value = [];\n\n if (visibleOptions) {\n var selectedOptions = visibleOptions.filter(function (option) {\n return _this3.isOptionDisabled(option) && _this3.isSelected(option);\n });\n value = selectedOptions.map(function (option) {\n return _this3.getOptionValue(option);\n });\n }\n } else if (visibleOptions) {\n visibleOptions = visibleOptions.filter(function (option) {\n return !_this3.isOptionDisabled(option);\n });\n\n if (this.props.optionGroupLabel) {\n value = [];\n visibleOptions.forEach(function (optionGroup) {\n return value = [].concat(_toConsumableArray(value), _toConsumableArray(_this3.getOptionGroupChildren(optionGroup).filter(function (option) {\n return !_this3.isOptionDisabled(option);\n }).map(function (option) {\n return _this3.getOptionValue(option);\n })));\n });\n } else {\n value = visibleOptions.map(function (option) {\n return _this3.getOptionValue(option);\n });\n }\n\n value = _toConsumableArray(new Set([].concat(_toConsumableArray(value), _toConsumableArray(this.props.value || []))));\n }\n\n this.updateModel(event.originalEvent, value);\n }\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(event, value) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n var _this4 = this;\n\n var filter = event.query;\n this.setState({\n filter: filter\n }, function () {\n if (_this4.props.onFilter) {\n _this4.props.onFilter({\n originalEvent: event,\n filter: filter\n });\n }\n });\n }\n }, {\n key: \"resetFilter\",\n value: function resetFilter() {\n var _this5 = this;\n\n var filter = '';\n this.setState({\n filter: filter\n }, function () {\n _this5.props.onFilter && _this5.props.onFilter({\n filter: filter\n });\n });\n }\n }, {\n key: \"show\",\n value: function show() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter(callback) {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.alignOverlay();\n this.scrollInView();\n callback && callback();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered(callback) {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n callback && callback();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n if (this.props.filter && this.props.resetFilterOnHide) {\n this.resetFilter();\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n DomHandler.alignOverlay(this.overlayRef.current, this.label.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView() {\n var highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li.p-highlight');\n\n if (highlightItem) {\n highlightItem.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, {\n key: \"onCloseClick\",\n value: function onCloseClick(event) {\n this.hide();\n this.inputRef.current.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }, {\n key: \"getSelectedOptionIndex\",\n value: function getSelectedOptionIndex() {\n if (this.props.value != null && this.props.options) {\n if (this.props.optionGroupLabel) {\n for (var i = 0; i < this.props.options.length; i++) {\n var selectedOptionIndex = this.findOptionIndexInList(this.props.value, this.getOptionGroupChildren(this.props.options[i]));\n\n if (selectedOptionIndex !== -1) {\n return {\n group: i,\n option: selectedOptionIndex\n };\n }\n }\n } else {\n return this.findOptionIndexInList(this.props.value, this.props.options);\n }\n }\n\n return -1;\n }\n }, {\n key: \"findOptionIndexInList\",\n value: function findOptionIndexInList(value, list) {\n var _this6 = this;\n\n var key = this.equalityKey();\n return list.findIndex(function (item) {\n return value.some(function (val) {\n return ObjectUtils.equals(val, _this6.getOptionValue(item), key);\n });\n });\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n var _this7 = this;\n\n var selected = false;\n\n if (this.props.value) {\n var optionValue = this.getOptionValue(option);\n var isOptionValueUsed = this.isOptionValueUsed(option);\n var key = this.equalityKey();\n selected = this.props.value.some(function (val) {\n return ObjectUtils.equals(isOptionValueUsed ? val : _this7.getOptionValue(val), optionValue, key);\n });\n }\n\n return selected;\n }\n }, {\n key: \"getLabelByValue\",\n value: function getLabelByValue(val) {\n var option;\n\n if (this.props.options) {\n if (this.props.optionGroupLabel) {\n var _iterator = _createForOfIteratorHelper(this.props.options),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var optionGroup = _step.value;\n option = this.findOptionByValue(val, this.getOptionGroupChildren(optionGroup));\n\n if (option) {\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n option = this.findOptionByValue(val, this.props.options);\n }\n }\n\n return option ? this.getOptionLabel(option) : null;\n }\n }, {\n key: \"findOptionByValue\",\n value: function findOptionByValue(val, list) {\n var key = this.equalityKey();\n\n var _iterator2 = _createForOfIteratorHelper(list),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var option = _step2.value;\n var optionValue = this.getOptionValue(option);\n\n if (ObjectUtils.equals(optionValue, val, key)) {\n return option;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return null;\n }\n }, {\n key: \"onFocus\",\n value: function onFocus(event) {\n var _this8 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n if (_this8.props.onFocus) {\n _this8.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(event) {\n var _this9 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this9.props.onBlur) {\n _this9.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this10 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this10.state.overlayVisible && _this10.isOutsideClicked(event)) {\n _this10.hide();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this11 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this11.state.overlayVisible) {\n _this11.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this12 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this12.state.overlayVisible && !DomHandler.isAndroid()) {\n _this12.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && !(this.container.isSameNode(event.target) || this.isClearClicked(event) || this.container.contains(event.target) || this.isPanelClicked(event));\n }\n }, {\n key: \"isClearClicked\",\n value: function isClearClicked(event) {\n return DomHandler.hasClass(event.target, 'p-multiselect-clear-icon');\n }\n }, {\n key: \"isPanelClicked\",\n value: function isPanelClicked(event) {\n return this.overlayRef && this.overlayRef.current && this.overlayRef.current.contains(event.target);\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.state.overlayVisible && this.hasFilter()) {\n this.alignOverlay();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n return this.state.filter && this.state.filter.trim().length > 0;\n }\n }, {\n key: \"isAllSelected\",\n value: function isAllSelected() {\n var _this13 = this;\n\n if (this.props.onSelectAll) {\n return this.props.selectAll;\n } else {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions.length === 0) {\n return false;\n }\n\n visibleOptions = visibleOptions.filter(function (option) {\n return !_this13.isOptionDisabled(option);\n });\n\n if (this.props.optionGroupLabel) {\n var _iterator3 = _createForOfIteratorHelper(visibleOptions),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var optionGroup = _step3.value;\n var visibleOptionsGroupChildren = this.getOptionGroupChildren(optionGroup).filter(function (option) {\n return !_this13.isOptionDisabled(option);\n });\n\n var _iterator4 = _createForOfIteratorHelper(visibleOptionsGroupChildren),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var option = _step4.value;\n\n if (!this.isSelected(option)) {\n return false;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } else {\n var _iterator5 = _createForOfIteratorHelper(visibleOptions),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _option = _step5.value;\n\n if (!this.isSelected(_option)) {\n return false;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n\n return true;\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n if (this.props.optionValue) {\n var data = ObjectUtils.resolveFieldData(option, this.props.optionValue);\n return data !== null ? data : option;\n }\n\n return option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"getOptionRenderKey\",\n value: function getOptionRenderKey(option) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(option, this.props.dataKey) : this.getOptionLabel(option);\n }\n }, {\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"isOptionValueUsed\",\n value: function isOptionValueUsed(option) {\n return this.props.optionValue || option && option['value'] !== undefined;\n }\n }, {\n key: \"getVisibleOptions\",\n value: function getVisibleOptions() {\n if (this.hasFilter()) {\n var filterValue = this.state.filter.trim().toLocaleLowerCase(this.props.filterLocale);\n var searchFields = this.props.filterBy ? this.props.filterBy.split(',') : [this.props.optionLabel || 'label'];\n\n if (this.props.optionGroupLabel) {\n var filteredGroups = [];\n\n var _iterator6 = _createForOfIteratorHelper(this.props.options),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var optgroup = _step6.value;\n var filteredSubOptions = FilterUtils.filter(this.getOptionGroupChildren(optgroup), searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), {\n items: filteredSubOptions\n }));\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return filteredGroups;\n } else {\n return FilterUtils.filter(this.props.options, searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n }\n } else {\n return this.props.options;\n }\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return !this.props.value || this.props.value.length === 0;\n }\n }, {\n key: \"equalityKey\",\n value: function equalityKey() {\n return this.props.optionValue ? null : this.props.dataKey;\n }\n }, {\n key: \"checkValidity\",\n value: function checkValidity() {\n return this.inputRef.current.checkValidity();\n }\n }, {\n key: \"removeChip\",\n value: function removeChip(event, item) {\n var key = this.equalityKey();\n var value = this.props.value.filter(function (val) {\n return !ObjectUtils.equals(val, item, key);\n });\n this.updateModel(event, value);\n }\n }, {\n key: \"getSelectedItemsLabel\",\n value: function getSelectedItemsLabel() {\n var pattern = /{(.*?)}/;\n\n if (pattern.test(this.props.selectedItemsLabel)) {\n return this.props.selectedItemsLabel.replace(this.props.selectedItemsLabel.match(pattern)[0], this.props.value.length + '');\n }\n\n return this.props.selectedItemsLabel;\n }\n }, {\n key: \"getLabel\",\n value: function getLabel() {\n var label;\n\n if (!this.isEmpty() && !this.props.fixedPlaceholder) {\n if (this.props.value.length <= this.props.maxSelectedLabels) {\n label = '';\n\n for (var i = 0; i < this.props.value.length; i++) {\n if (i !== 0) {\n label += ',';\n }\n\n label += this.getLabelByValue(this.props.value[i]);\n }\n\n return label;\n } else {\n return this.getSelectedItemsLabel();\n }\n }\n\n return label;\n }\n }, {\n key: \"getLabelContent\",\n value: function getLabelContent() {\n var _this14 = this;\n\n if (this.props.selectedItemTemplate) {\n if (!this.isEmpty()) {\n if (this.props.value.length <= this.props.maxSelectedLabels) {\n return this.props.value.map(function (val, index) {\n var item = ObjectUtils.getJSXElement(_this14.props.selectedItemTemplate, val);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: index\n }, item);\n });\n } else {\n return this.getSelectedItemsLabel();\n }\n } else {\n return ObjectUtils.getJSXElement(this.props.selectedItemTemplate);\n }\n } else {\n if (this.props.display === 'chip' && !this.isEmpty()) {\n return this.props.value.map(function (val) {\n var label = _this14.getLabelByValue(val);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-multiselect-token\",\n key: label\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-multiselect-token-label\"\n }, label), !_this14.props.disabled && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-multiselect-token-icon pi pi-times-circle\",\n onClick: function onClick(e) {\n return _this14.removeChip(e, val);\n }\n }));\n });\n }\n\n return this.getLabel();\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderClearIcon\",\n value: function renderClearIcon() {\n var _this15 = this;\n\n var empty = this.isEmpty();\n\n if (!empty && this.props.showClear && !this.props.disabled) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-multiselect-clear-icon pi pi-times\",\n onClick: function onClick(e) {\n return _this15.updateModel(e, null);\n }\n });\n }\n\n return null;\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel() {\n var _this16 = this;\n\n var empty = this.isEmpty();\n var content = this.getLabelContent();\n var labelClassName = classNames('p-multiselect-label', {\n 'p-placeholder': empty && this.props.placeholder,\n 'p-multiselect-label-empty': empty && !this.props.placeholder && !this.props.selectedItemTemplate,\n 'p-multiselect-items-label': !empty && this.props.value.length > this.props.maxSelectedLabels\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this16.label = el;\n },\n className: \"p-multiselect-label-container\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: labelClassName\n }, content || this.props.placeholder || 'empty'));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this17 = this;\n\n var className = classNames('p-multiselect p-component p-inputwrapper', {\n 'p-multiselect-chip': this.props.display === 'chip',\n 'p-disabled': this.props.disabled,\n 'p-multiselect-clearable': this.props.showClear && !this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-inputwrapper-filled': this.props.value && this.props.value.length > 0,\n 'p-inputwrapper-focus': this.state.focused || this.state.overlayVisible\n }, this.props.className);\n var iconClassName = classNames('p-multiselect-trigger-icon p-c', this.props.dropdownIcon);\n var visibleOptions = this.getVisibleOptions();\n var label = this.renderLabel();\n var clearIcon = this.renderClearIcon();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n onClick: this.onClick,\n ref: function ref(el) {\n return _this17.container = el;\n },\n style: this.props.style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n id: this.props.inputId,\n name: this.props.name,\n readOnly: true,\n type: \"text\",\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n role: \"listbox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-expanded\": this.state.overlayVisible,\n disabled: this.props.disabled,\n tabIndex: this.props.tabIndex\n })), label, clearIcon, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-multiselect-trigger\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n })), /*#__PURE__*/React.createElement(MultiSelectPanel, _extends({\n ref: this.overlayRef,\n visibleOptions: visibleOptions\n }, this.props, {\n onClick: this.onPanelClick,\n onOverlayHide: this.hide,\n filterValue: this.state.filter,\n hasFilter: this.hasFilter,\n onFilterInputChange: this.onFilterInputChange,\n onCloseClick: this.onCloseClick,\n onSelectAll: this.onSelectAll,\n getOptionLabel: this.getOptionLabel,\n getOptionRenderKey: this.getOptionRenderKey,\n isOptionDisabled: this.isOptionDisabled,\n getOptionGroupChildren: this.getOptionGroupChildren,\n getOptionGroupLabel: this.getOptionGroupLabel,\n getOptionGroupRenderKey: this.getOptionGroupRenderKey,\n isSelected: this.isSelected,\n getSelectedOptionIndex: this.getSelectedOptionIndex,\n isAllSelected: this.isAllSelected,\n onOptionSelect: this.onOptionSelect,\n allowOptionSelect: this.allowOptionSelect,\n onOptionKeyDown: this.onOptionKeyDown,\n in: this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n })));\n }\n }]);\n\n return MultiSelect;\n}(Component);\n\n_defineProperty(MultiSelect, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n display: 'comma',\n style: null,\n className: null,\n panelClassName: null,\n panelStyle: null,\n virtualScrollerOptions: null,\n scrollHeight: '200px',\n placeholder: null,\n fixedPlaceholder: false,\n disabled: false,\n showClear: false,\n filter: false,\n filterBy: null,\n filterMatchMode: 'contains',\n filterPlaceholder: null,\n filterLocale: undefined,\n emptyFilterMessage: 'No results found',\n resetFilterOnHide: false,\n tabIndex: 0,\n dataKey: null,\n inputId: null,\n appendTo: null,\n tooltip: null,\n tooltipOptions: null,\n maxSelectedLabels: 3,\n selectionLimit: null,\n selectedItemsLabel: '{0} items selected',\n ariaLabelledBy: null,\n itemTemplate: null,\n selectedItemTemplate: null,\n panelHeaderTemplate: null,\n panelFooterTemplate: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n showSelectAll: true,\n selectAll: false,\n onChange: null,\n onFocus: null,\n onBlur: null,\n onShow: null,\n onHide: null,\n onFilter: null,\n onSelectAll: null\n});\n\nexport { MultiSelect };\n","import React from 'react';\nexport default React.createContext(null);","import React, { Component } from 'react';\nimport { UniqueComponentId, Ripple, ObjectUtils, CSSTransition, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Panel = /*#__PURE__*/function (_Component) {\n _inherits(Panel, _Component);\n\n var _super = _createSuper(Panel);\n\n function Panel(props) {\n var _this;\n\n _classCallCheck(this, Panel);\n\n _this = _super.call(this, props);\n var state = {\n id: _this.props.id\n };\n\n if (!_this.props.onToggle) {\n state = _objectSpread(_objectSpread({}, state), {}, {\n collapsed: _this.props.collapsed\n });\n }\n\n _this.state = state;\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.contentRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(Panel, [{\n key: \"toggle\",\n value: function toggle(event) {\n if (this.props.toggleable) {\n var collapsed = this.props.onToggle ? this.props.collapsed : this.state.collapsed;\n if (collapsed) this.expand(event);else this.collapse(event);\n\n if (this.props.onToggle) {\n this.props.onToggle({\n originalEvent: event,\n value: !collapsed\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"expand\",\n value: function expand(event) {\n if (!this.props.onToggle) {\n this.setState({\n collapsed: false\n });\n }\n\n if (this.props.onExpand) {\n this.props.onExpand(event);\n }\n }\n }, {\n key: \"collapse\",\n value: function collapse(event) {\n if (!this.props.onToggle) {\n this.setState({\n collapsed: true\n });\n }\n\n if (this.props.onCollapse) {\n this.props.onCollapse(event);\n }\n }\n }, {\n key: \"isCollapsed\",\n value: function isCollapsed() {\n return this.props.toggleable ? this.props.onToggle ? this.props.collapsed : this.state.collapsed : false;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n }\n }, {\n key: \"renderToggleIcon\",\n value: function renderToggleIcon(collapsed) {\n if (this.props.toggleable) {\n var id = this.state.id + '_label';\n var ariaControls = this.state.id + '_content';\n var toggleIcon = collapsed ? this.props.expandIcon : this.props.collapseIcon;\n return /*#__PURE__*/React.createElement(\"button\", {\n className: \"p-panel-header-icon p-panel-toggler p-link\",\n onClick: this.toggle,\n id: id,\n \"aria-controls\": ariaControls,\n \"aria-expanded\": !collapsed,\n role: \"tab\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: toggleIcon\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader(collapsed) {\n var header = ObjectUtils.getJSXElement(this.props.header, this.props);\n var icons = ObjectUtils.getJSXElement(this.props.icons, this.props);\n var togglerElement = this.renderToggleIcon(collapsed);\n var titleElement = /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-panel-title\",\n id: this.state.id + '_header'\n }, header);\n var iconsElement = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-panel-icons\"\n }, icons, togglerElement);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-panel-header\"\n }, titleElement, iconsElement);\n\n if (this.props.headerTemplate) {\n var defaultContentOptions = {\n className: 'p-panel-header',\n titleClassName: 'p-panel-title',\n iconsClassName: 'p-panel-icons',\n togglerClassName: 'p-panel-header-icon p-panel-toggler p-link',\n togglerIconClassName: collapsed ? this.props.expandIcon : this.props.collapseIcon,\n onTogglerClick: this.toggle,\n titleElement: titleElement,\n iconsElement: iconsElement,\n togglerElement: togglerElement,\n element: content,\n props: this.props,\n collapsed: collapsed\n };\n return ObjectUtils.getJSXElement(this.props.headerTemplate, defaultContentOptions);\n } else if (this.props.header || this.props.toggleable) {\n return content;\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent(collapsed) {\n var id = this.state.id + '_content';\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.contentRef,\n classNames: \"p-toggleable-content\",\n timeout: {\n enter: 1000,\n exit: 450\n },\n in: !collapsed,\n unmountOnExit: true,\n options: this.props.transitionOptions\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.contentRef,\n className: \"p-toggleable-content\",\n \"aria-hidden\": collapsed,\n role: \"region\",\n id: id,\n \"aria-labelledby\": this.state.id + '_header'\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-panel-content\"\n }, this.props.children)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-panel p-component', {\n 'p-panel-toggleable': this.props.toggleable\n }, this.props.className);\n var collapsed = this.isCollapsed();\n var header = this.renderHeader(collapsed);\n var content = this.renderContent(collapsed);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, header, content);\n }\n }]);\n\n return Panel;\n}(Component);\n\n_defineProperty(Panel, \"defaultProps\", {\n id: null,\n header: null,\n headerTemplate: null,\n toggleable: null,\n style: null,\n className: null,\n collapsed: null,\n expandIcon: 'pi pi-plus',\n collapseIcon: 'pi pi-minus',\n icons: null,\n transitionOptions: null,\n onExpand: null,\n onCollapse: null,\n onToggle: null\n});\n\nexport { Panel };\n","import React, { Component } from 'react';\nimport { ZIndexUtils, DomHandler, Ripple, ObjectUtils, classNames, CSSTransition, Portal } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Sidebar = /*#__PURE__*/function (_Component) {\n _inherits(Sidebar, _Component);\n\n var _super = _createSuper(Sidebar);\n\n function Sidebar(props) {\n var _this;\n\n _classCallCheck(this, Sidebar);\n\n _this = _super.call(this, props);\n _this.onCloseClick = _this.onCloseClick.bind(_assertThisInitialized(_this));\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.sidebarRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(Sidebar, [{\n key: \"onCloseClick\",\n value: function onCloseClick(event) {\n this.props.onHide();\n event.preventDefault();\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n ZIndexUtils.set('modal', this.sidebarRef.current, this.props.baseZIndex);\n\n if (this.props.modal) {\n this.enableModality();\n }\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n if (this.props.closeOnEscape) {\n this.bindDocumentEscapeListener();\n }\n\n if (this.closeIcon) {\n this.closeIcon.focus();\n }\n\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n this.unbindMaskClickListener();\n this.unbindDocumentEscapeListener();\n\n if (this.props.modal) {\n this.disableModality();\n }\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.sidebarRef.current);\n }\n }, {\n key: \"enableModality\",\n value: function enableModality() {\n if (!this.mask) {\n this.mask = document.createElement('div');\n this.mask.style.zIndex = String(ZIndexUtils.get(this.sidebarRef.current) - 1);\n var maskClassName = 'p-component-overlay p-component-overlay p-component-overlay-enter';\n\n if (this.props.blockScroll) {\n maskClassName += ' p-sidebar-mask-scrollblocker';\n }\n\n DomHandler.addMultipleClasses(this.mask, maskClassName);\n\n if (this.props.dismissable) {\n this.bindMaskClickListener();\n }\n\n document.body.appendChild(this.mask);\n\n if (this.props.blockScroll) {\n DomHandler.addClass(document.body, 'p-overflow-hidden');\n }\n }\n }\n }, {\n key: \"disableModality\",\n value: function disableModality() {\n var _this2 = this;\n\n if (this.mask) {\n DomHandler.addClass(this.mask, 'p-component-overlay-leave');\n this.mask.addEventListener('animationend', function () {\n _this2.destroyModal();\n });\n }\n }\n }, {\n key: \"destroyModal\",\n value: function destroyModal() {\n if (this.mask) {\n this.unbindMaskClickListener();\n document.body.removeChild(this.mask);\n DomHandler.removeClass(document.body, 'p-overflow-hidden');\n this.mask = null;\n }\n }\n }, {\n key: \"bindDocumentEscapeListener\",\n value: function bindDocumentEscapeListener() {\n var _this3 = this;\n\n this.documentEscapeListener = function (event) {\n if (event.which === 27) {\n if (ZIndexUtils.get(_this3.sidebarRef.current) === ZIndexUtils.getCurrent('modal')) {\n _this3.onCloseClick(event);\n }\n }\n };\n\n document.addEventListener('keydown', this.documentEscapeListener);\n }\n }, {\n key: \"unbindDocumentEscapeListener\",\n value: function unbindDocumentEscapeListener() {\n if (this.documentEscapeListener) {\n document.removeEventListener('keydown', this.documentEscapeListener);\n this.documentEscapeListener = null;\n }\n }\n }, {\n key: \"bindMaskClickListener\",\n value: function bindMaskClickListener() {\n var _this4 = this;\n\n if (!this.maskClickListener) {\n this.maskClickListener = function (event) {\n _this4.onCloseClick(event);\n };\n\n this.mask.addEventListener('click', this.maskClickListener);\n }\n }\n }, {\n key: \"unbindMaskClickListener\",\n value: function unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.mask.removeEventListener('click', this.maskClickListener);\n this.maskClickListener = null;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.mask && prevProps.dismissable !== this.props.dismissable) {\n if (this.props.dismissable) {\n this.bindMaskClickListener();\n } else {\n this.unbindMaskClickListener();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindMaskClickListener();\n this.disableModality();\n ZIndexUtils.clear(this.sidebarRef.current);\n }\n }, {\n key: \"renderCloseIcon\",\n value: function renderCloseIcon() {\n var _this5 = this;\n\n if (this.props.showCloseIcon) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n ref: function ref(el) {\n return _this5.closeIcon = el;\n },\n className: \"p-sidebar-close p-sidebar-icon p-link\",\n onClick: this.onCloseClick,\n \"aria-label\": this.props.ariaCloseLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-sidebar-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderIcons\",\n value: function renderIcons() {\n if (this.props.icons) {\n return ObjectUtils.getJSXElement(this.props.icons, this.props);\n }\n\n return null;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-sidebar p-component', this.props.className, 'p-sidebar-' + this.props.position, {\n 'p-sidebar-active': this.props.visible,\n 'p-sidebar-full': this.props.fullScreen\n });\n var closeIcon = this.renderCloseIcon();\n var icons = this.renderIcons();\n var transitionTimeout = {\n enter: this.props.fullScreen ? 400 : 300,\n exit: this.props.fullScreen ? 400 : 300\n };\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.sidebarRef,\n classNames: \"p-sidebar\",\n in: this.props.visible,\n timeout: transitionTimeout,\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.sidebarRef,\n id: this.props.id,\n className: className,\n style: this.props.style,\n role: \"complementary\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-sidebar-header\"\n }, icons, closeIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-sidebar-content\"\n }, this.props.children)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return Sidebar;\n}(Component);\n\n_defineProperty(Sidebar, \"defaultProps\", {\n id: null,\n style: null,\n className: null,\n visible: false,\n position: 'left',\n fullScreen: false,\n blockScroll: false,\n baseZIndex: 0,\n dismissable: true,\n showCloseIcon: true,\n ariaCloseLabel: 'close',\n closeOnEscape: true,\n icons: null,\n modal: true,\n appendTo: null,\n transitionOptions: null,\n onShow: null,\n onHide: null\n});\n\nexport { Sidebar };\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar has = require('../internals/has');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!has(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = {};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import React, { Component } from 'react';\nimport { Ripple, classNames, CSSTransition } from 'primereact/core';\nimport { TransitionGroup } from 'react-transition-group';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar UIMessageComponent = /*#__PURE__*/function (_Component) {\n _inherits(UIMessageComponent, _Component);\n\n var _super = _createSuper$1(UIMessageComponent);\n\n function UIMessageComponent(props) {\n var _this;\n\n _classCallCheck(this, UIMessageComponent);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onClose = _this.onClose.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(UIMessageComponent, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!this.props.message.sticky) {\n this.timeout = setTimeout(function () {\n _this2.onClose(null);\n }, this.props.message.life || 3000);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n }\n }, {\n key: \"onClose\",\n value: function onClose(event) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n if (this.props.onClose) {\n this.props.onClose(this.props.message);\n }\n\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }, {\n key: \"onClick\",\n value: function onClick() {\n if (this.props.onClick) {\n this.props.onClick(this.props.message);\n }\n }\n }, {\n key: \"renderCloseIcon\",\n value: function renderCloseIcon() {\n if (this.props.message.closable !== false) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-message-close p-link\",\n onClick: this.onClose\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-message-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderMessage\",\n value: function renderMessage() {\n if (this.props.message) {\n var _this$props$message = this.props.message,\n severity = _this$props$message.severity,\n content = _this$props$message.content,\n summary = _this$props$message.summary,\n detail = _this$props$message.detail;\n var icon = classNames('p-message-icon pi ', {\n 'pi-info-circle': severity === 'info',\n 'pi-check': severity === 'success',\n 'pi-exclamation-triangle': severity === 'warn',\n 'pi-times-circle': severity === 'error'\n });\n return content || /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-message-summary\"\n }, summary), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-message-detail\"\n }, detail));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var severity = this.props.message.severity;\n var className = 'p-message p-component p-message-' + severity;\n var closeIcon = this.renderCloseIcon();\n var message = this.renderMessage();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-message-wrapper\"\n }, message, closeIcon));\n }\n }]);\n\n return UIMessageComponent;\n}(Component);\n\n_defineProperty(UIMessageComponent, \"defaultProps\", {\n message: null,\n onClose: null,\n onClick: null\n});\n\nvar UIMessage = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(UIMessageComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar messageIdx = 0;\nvar Messages = /*#__PURE__*/function (_Component) {\n _inherits(Messages, _Component);\n\n var _super = _createSuper(Messages);\n\n function Messages(props) {\n var _this;\n\n _classCallCheck(this, Messages);\n\n _this = _super.call(this, props);\n _this.state = {\n messages: []\n };\n _this.onClose = _this.onClose.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Messages, [{\n key: \"show\",\n value: function show(value) {\n if (value) {\n var newMessages = [];\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i].id = messageIdx++;\n newMessages = [].concat(_toConsumableArray(this.state.messages), _toConsumableArray(value));\n }\n } else {\n value.id = messageIdx++;\n newMessages = this.state.messages ? [].concat(_toConsumableArray(this.state.messages), [value]) : [value];\n }\n\n this.setState({\n messages: newMessages\n });\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.setState({\n messages: []\n });\n }\n }, {\n key: \"replace\",\n value: function replace(value) {\n var _this2 = this;\n\n this.setState({\n messages: []\n }, function () {\n return _this2.show(value);\n });\n }\n }, {\n key: \"onClose\",\n value: function onClose(message) {\n var newMessages = this.state.messages.filter(function (msg) {\n return msg.id !== message.id;\n });\n this.setState({\n messages: newMessages\n });\n\n if (this.props.onRemove) {\n this.props.onRemove(message);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: this.props.className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(TransitionGroup, null, this.state.messages.map(function (message) {\n var messageRef = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: messageRef,\n key: message.id,\n classNames: \"p-message\",\n unmountOnExit: true,\n timeout: {\n enter: 300,\n exit: 300\n },\n options: _this3.props.transitionOptions\n }, /*#__PURE__*/React.createElement(UIMessage, {\n ref: messageRef,\n message: message,\n onClick: _this3.props.onClick,\n onClose: _this3.onClose\n }));\n })));\n }\n }]);\n\n return Messages;\n}(Component);\n\n_defineProperty(Messages, \"defaultProps\", {\n id: null,\n className: null,\n style: null,\n transitionOptions: null,\n onRemove: null,\n onClick: null\n});\n\nexport { Messages };\n","import React, { Component } from 'react';\nimport { Button } from 'primereact/button';\nimport { Messages } from 'primereact/messages';\nimport { ProgressBar } from 'primereact/progressbar';\nimport { DomHandler, classNames, Ripple, ObjectUtils } from 'primereact/core';\nimport { localeOption } from 'primereact/api';\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar FileUpload = /*#__PURE__*/function (_Component) {\n _inherits(FileUpload, _Component);\n\n var _super = _createSuper(FileUpload);\n\n function FileUpload(props) {\n var _this;\n\n _classCallCheck(this, FileUpload);\n\n _this = _super.call(this, props);\n _this.state = {\n files: [],\n msgs: [],\n focused: false\n };\n _this.choose = _this.choose.bind(_assertThisInitialized(_this));\n _this.upload = _this.upload.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.onFileSelect = _this.onFileSelect.bind(_assertThisInitialized(_this));\n _this.onDragEnter = _this.onDragEnter.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onSimpleUploaderClick = _this.onSimpleUploaderClick.bind(_assertThisInitialized(_this));\n _this.duplicateIEEvent = false;\n return _this;\n }\n\n _createClass(FileUpload, [{\n key: \"hasFiles\",\n value: function hasFiles() {\n return this.state.files && this.state.files.length > 0;\n }\n }, {\n key: \"isImage\",\n value: function isImage(file) {\n return /^image\\//.test(file.type);\n }\n }, {\n key: \"chooseDisabled\",\n value: function chooseDisabled() {\n return this.props.disabled || this.props.fileLimit && this.props.fileLimit <= this.state.files.length + this.uploadedFileCount;\n }\n }, {\n key: \"uploadDisabled\",\n value: function uploadDisabled() {\n return this.props.disabled || !this.hasFiles();\n }\n }, {\n key: \"cancelDisabled\",\n value: function cancelDisabled() {\n return this.props.disabled || !this.hasFiles();\n }\n }, {\n key: \"chooseButtonLabel\",\n value: function chooseButtonLabel() {\n return this.props.chooseLabel || this.props.chooseOptions.label || localeOption('choose');\n }\n }, {\n key: \"uploadButtonLabel\",\n value: function uploadButtonLabel() {\n return this.props.uploadLabel || this.props.uploadOptions.label || localeOption('upload');\n }\n }, {\n key: \"cancelButtonLabel\",\n value: function cancelButtonLabel() {\n return this.props.cancelLabel || this.props.cancelOptions.label || localeOption('cancel');\n }\n }, {\n key: \"remove\",\n value: function remove(event, index) {\n this.clearInputElement();\n\n var currentFiles = _toConsumableArray(this.state.files);\n\n var removedFile = this.state.files[index];\n currentFiles.splice(index, 1);\n this.setState({\n files: currentFiles\n });\n\n if (this.props.onRemove) {\n this.props.onRemove({\n originalEvent: event,\n file: removedFile\n });\n }\n }\n }, {\n key: \"clearInputElement\",\n value: function clearInputElement() {\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n }\n }, {\n key: \"clearIEInput\",\n value: function clearIEInput() {\n if (this.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n\n this.fileInput.value = '';\n }\n }\n }, {\n key: \"formatSize\",\n value: function formatSize(bytes) {\n if (bytes === 0) {\n return '0 B';\n }\n\n var k = 1000,\n dm = 3,\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n }, {\n key: \"onFileSelect\",\n value: function onFileSelect(event) {\n var _this2 = this;\n\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.setState({\n msgs: []\n });\n this.files = this.state.files || [];\n var files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.setState({\n files: this.files\n }, function () {\n if (_this2.hasFiles() && _this2.props.auto) {\n _this2.upload();\n }\n });\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n files: files\n });\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n\n if (this.props.mode === 'basic' && this.files.length > 0) {\n this.fileInput.style.display = 'none';\n }\n }\n }, {\n key: \"isFileSelected\",\n value: function isFileSelected(file) {\n var _iterator = _createForOfIteratorHelper(this.state.files),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var sFile = _step.value;\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n }\n }, {\n key: \"isIE11\",\n value: function isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n }, {\n key: \"validate\",\n value: function validate(file) {\n if (this.props.maxFileSize && file.size > this.props.maxFileSize) {\n var message = {\n severity: 'error',\n summary: this.props.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.props.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.props.maxFileSize))\n };\n\n if (this.props.mode === 'advanced') {\n this.messagesUI.show(message);\n }\n\n if (this.props.onValidationFail) {\n this.props.onValidationFail(file);\n }\n\n return false;\n }\n\n return true;\n }\n }, {\n key: \"upload\",\n value: function upload() {\n var _this3 = this;\n\n if (this.props.customUpload) {\n if (this.props.fileLimit) {\n this.uploadedFileCount += this.state.files.length;\n }\n\n if (this.props.uploadHandler) {\n this.props.uploadHandler({\n files: this.state.files,\n options: {\n clear: this.clear,\n props: this.props\n }\n });\n }\n } else {\n this.setState({\n msgs: []\n });\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n\n if (this.props.onBeforeUpload) {\n this.props.onBeforeUpload({\n 'xhr': xhr,\n 'formData': formData\n });\n }\n\n var _iterator2 = _createForOfIteratorHelper(this.state.files),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var file = _step2.value;\n formData.append(this.props.name, file, file.name);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n xhr.upload.addEventListener('progress', function (event) {\n if (event.lengthComputable) {\n _this3.setState({\n progress: Math.round(event.loaded * 100 / event.total)\n }, function () {\n if (_this3.props.onProgress) {\n _this3.props.onProgress({\n originalEvent: event,\n progress: _this3.state.progress\n });\n }\n });\n }\n });\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n _this3.setState({\n progress: 0\n });\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (_this3.props.fileLimit) {\n _this3.uploadedFileCount += _this3.state.files.length;\n }\n\n if (_this3.props.onUpload) {\n _this3.props.onUpload({\n xhr: xhr,\n files: _this3.state.files\n });\n }\n } else {\n if (_this3.props.onError) {\n _this3.props.onError({\n xhr: xhr,\n files: _this3.state.files\n });\n }\n }\n\n _this3.clear();\n }\n };\n\n xhr.open('POST', this.props.url, true);\n\n if (this.props.onBeforeSend) {\n this.props.onBeforeSend({\n 'xhr': xhr,\n 'formData': formData\n });\n }\n\n xhr.withCredentials = this.props.withCredentials;\n xhr.send(formData);\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.setState({\n files: []\n });\n\n if (this.props.onClear) {\n this.props.onClear();\n }\n\n this.clearInputElement();\n }\n }, {\n key: \"choose\",\n value: function choose() {\n this.fileInput.click();\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.which === 13) {\n // enter\n this.choose();\n }\n }\n }, {\n key: \"onDragEnter\",\n value: function onDragEnter(event) {\n if (!this.props.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n if (!this.props.disabled) {\n DomHandler.addClass(this.content, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n if (!this.props.disabled) {\n DomHandler.removeClass(this.content, 'p-fileupload-highlight');\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (!this.props.disabled) {\n DomHandler.removeClass(this.content, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n var files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n var allowDrop = this.props.multiple || files && files.length === 1;\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n }, {\n key: \"onSimpleUploaderClick\",\n value: function onSimpleUploaderClick() {\n if (this.hasFiles()) {\n this.upload();\n } else {\n this.fileInput.click();\n }\n }\n }, {\n key: \"renderChooseButton\",\n value: function renderChooseButton() {\n var _this4 = this;\n\n var _this$props$chooseOpt = this.props.chooseOptions,\n className = _this$props$chooseOpt.className,\n style = _this$props$chooseOpt.style,\n icon = _this$props$chooseOpt.icon,\n iconOnly = _this$props$chooseOpt.iconOnly;\n var chooseClassName = classNames('p-button p-fileupload-choose p-component', {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-button-icon-only': iconOnly\n }, className);\n var chooseIconClassName = classNames('p-button-icon p-button-icon-left p-clickable', {\n 'pi pi-fw pi-plus': !icon\n }, icon);\n var labelClassName = 'p-button-label p-clickable';\n var label = iconOnly ? /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.chooseButtonLabel());\n return /*#__PURE__*/React.createElement(\"span\", {\n className: chooseClassName,\n style: style,\n onClick: this.choose,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n tabIndex: 0\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this4.fileInput = el;\n },\n type: \"file\",\n onChange: this.onFileSelect,\n multiple: this.props.multiple,\n accept: this.props.accept,\n disabled: this.chooseDisabled()\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: chooseIconClassName\n }), label, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderFile\",\n value: function renderFile(file, index) {\n var _this5 = this;\n\n var preview = this.isImage(file) ? /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"img\", {\n alt: file.name,\n role: \"presentation\",\n src: file.objectURL,\n width: this.props.previewWidth\n })) : null;\n var fileName = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-filename\"\n }, file.name);\n var size = /*#__PURE__*/React.createElement(\"div\", null, this.formatSize(file.size));\n var removeButton = /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-times\",\n onClick: function onClick(e) {\n return _this5.remove(e, index);\n }\n }));\n var content = /*#__PURE__*/React.createElement(React.Fragment, null, preview, fileName, size, removeButton);\n\n if (this.props.itemTemplate) {\n var defaultContentOptions = {\n onRemove: function onRemove(event) {\n return _this5.remove(event, index);\n },\n previewElement: preview,\n fileNameElement: fileName,\n sizeElement: size,\n removeElement: removeButton,\n formatSize: this.formatSize(file.size),\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(this.props.itemTemplate, file, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-row\",\n key: file.name + file.type + file.size\n }, content);\n }\n }, {\n key: \"renderFiles\",\n value: function renderFiles() {\n var _this6 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-files\"\n }, this.state.files.map(function (file, index) {\n return _this6.renderFile(file, index);\n }));\n }\n }, {\n key: \"renderEmptyContent\",\n value: function renderEmptyContent() {\n if (this.props.emptyTemplate && !this.hasFiles()) {\n return ObjectUtils.getJSXElement(this.props.emptyTemplate, this.props);\n }\n\n return null;\n }\n }, {\n key: \"renderProgressBarContent\",\n value: function renderProgressBarContent() {\n if (this.props.progressBarTemplate) {\n return ObjectUtils.getJSXElement(this.props.progressBarTemplate, this.props);\n }\n\n return /*#__PURE__*/React.createElement(ProgressBar, {\n value: this.state.progress,\n showValue: false\n });\n }\n }, {\n key: \"renderAdvanced\",\n value: function renderAdvanced() {\n var _this7 = this;\n\n var className = classNames('p-fileupload p-fileupload-advanced p-component', this.props.className);\n var headerClassName = classNames('p-fileupload-buttonbar', this.props.headerClassName);\n var contentClassName = classNames('p-fileupload-content', this.props.contentClassName);\n var uploadButton, cancelButton, filesList, progressBar;\n var chooseButton = this.renderChooseButton();\n var emptyContent = this.renderEmptyContent();\n\n if (!this.props.auto) {\n var uploadOptions = this.props.uploadOptions;\n var cancelOptions = this.props.cancelOptions;\n var uploadLabel = !uploadOptions.iconOnly ? this.uploadButtonLabel() : '';\n var cancelLabel = !cancelOptions.iconOnly ? this.cancelButtonLabel() : '';\n uploadButton = /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: uploadLabel,\n icon: uploadOptions.icon || 'pi pi-upload',\n onClick: this.upload,\n disabled: this.uploadDisabled(),\n style: uploadOptions.style,\n className: uploadOptions.className\n });\n cancelButton = /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: cancelLabel,\n icon: cancelOptions.icon || 'pi pi-times',\n onClick: this.clear,\n disabled: this.cancelDisabled(),\n style: cancelOptions.style,\n className: cancelOptions.className\n });\n }\n\n if (this.hasFiles()) {\n filesList = this.renderFiles();\n progressBar = this.renderProgressBarContent();\n }\n\n var header = /*#__PURE__*/React.createElement(\"div\", {\n className: headerClassName,\n style: this.props.headerStyle\n }, chooseButton, uploadButton, cancelButton);\n\n if (this.props.headerTemplate) {\n var defaultContentOptions = {\n className: headerClassName,\n chooseButton: chooseButton,\n uploadButton: uploadButton,\n cancelButton: cancelButton,\n element: header,\n props: this.props\n };\n header = ObjectUtils.getJSXElement(this.props.headerTemplate, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, header, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n _this7.content = el;\n },\n className: contentClassName,\n style: this.props.contentStyle,\n onDragEnter: this.onDragEnter,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop\n }, progressBar, /*#__PURE__*/React.createElement(Messages, {\n ref: function ref(el) {\n return _this7.messagesUI = el;\n }\n }), filesList, emptyContent));\n }\n }, {\n key: \"renderBasic\",\n value: function renderBasic() {\n var _this8 = this;\n\n var chooseOptions = this.props.chooseOptions;\n var className = classNames('p-fileupload p-fileupload-basic p-component', this.props.className);\n var buttonClassName = classNames('p-button p-component p-fileupload-choose', {\n 'p-fileupload-choose-selected': this.hasFiles(),\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n }, chooseOptions.className);\n var iconClassName = classNames('p-button-icon p-button-icon-left pi', {\n 'pi-plus': !chooseOptions.icon && (!this.hasFiles() || this.props.auto),\n 'pi-upload': !chooseOptions.icon && this.hasFiles() && !this.props.auto\n }, chooseOptions.icon);\n var labelClassName = 'p-button-label p-clickable';\n var chooseLabel = chooseOptions.iconOnly ? /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.chooseButtonLabel());\n var label = this.props.auto ? chooseLabel : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.hasFiles() ? this.state.files[0].name : chooseLabel);\n var icon = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(Messages, {\n ref: function ref(el) {\n return _this8.messagesUI = el;\n }\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: buttonClassName,\n style: chooseOptions.style,\n onMouseUp: this.onSimpleUploaderClick,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n tabIndex: 0\n }, icon, label, !this.hasFiles() && /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this8.fileInput = el;\n },\n type: \"file\",\n accept: this.props.accept,\n multiple: this.props.multiple,\n disabled: this.props.disabled,\n onChange: this.onFileSelect\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.props.mode === 'advanced') return this.renderAdvanced();else if (this.props.mode === 'basic') return this.renderBasic();\n }\n }]);\n\n return FileUpload;\n}(Component);\n\n_defineProperty(FileUpload, \"defaultProps\", {\n id: null,\n name: null,\n url: null,\n mode: 'advanced',\n multiple: false,\n accept: null,\n disabled: false,\n auto: false,\n maxFileSize: null,\n invalidFileSizeMessageSummary: '{0}: Invalid file size, ',\n invalidFileSizeMessageDetail: 'maximum upload size is {0}.',\n style: null,\n className: null,\n widthCredentials: false,\n previewWidth: 50,\n chooseLabel: null,\n uploadLabel: null,\n cancelLabel: null,\n chooseOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n uploadOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n cancelOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n customUpload: false,\n headerClassName: null,\n headerStyle: null,\n contentClassName: null,\n contentStyle: null,\n headerTemplate: null,\n itemTemplate: null,\n emptyTemplate: null,\n progressBarTemplate: null,\n onBeforeUpload: null,\n onBeforeSend: null,\n onUpload: null,\n onError: null,\n onClear: null,\n onSelect: null,\n onProgress: null,\n onValidationFail: null,\n uploadHandler: null,\n onRemove: null\n});\n\nexport { FileUpload };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","module.exports = false;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import React, { createRef, Component } from 'react';\nimport { tip, classNames, ObjectUtils } from 'primereact/core';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar InputSwitch = /*#__PURE__*/function (_Component) {\n _inherits(InputSwitch, _Component);\n\n var _super = _createSuper(InputSwitch);\n\n function InputSwitch(props) {\n var _this;\n\n _classCallCheck(this, InputSwitch);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(InputSwitch, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n this.toggle(event);\n this.inputRef.current.focus();\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (this.props.onChange) {\n var value = this.isChecked() ? this.props.falseValue : this.props.trueValue;\n this.props.onChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus(event) {\n var _this2 = this;\n\n var currentEvent = event;\n this.setState({\n focused: true\n }, function () {\n if (_this2.props.onFocus) {\n _this2.props.onFocus(currentEvent);\n }\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(event) {\n var _this3 = this;\n\n var currentEvent = event;\n this.setState({\n focused: false\n }, function () {\n if (_this3.props.onBlur) {\n _this3.props.onBlur(currentEvent);\n }\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Enter') {\n this.onClick(event);\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"isChecked\",\n value: function isChecked() {\n return this.props.checked === this.props.trueValue;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var className = classNames('p-inputswitch p-component', {\n 'p-inputswitch-checked': this.isChecked(),\n 'p-disabled': this.props.disabled,\n 'p-inputswitch-focus': this.state.focused\n }, this.props.className);\n var inputSwitchProps = ObjectUtils.findDiffKeys(this.props, InputSwitch.defaultProps);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: function ref(el) {\n return _this4.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.onClick,\n role: \"checkbox\",\n \"aria-checked\": this.isChecked()\n }, inputSwitchProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: this.inputRef,\n type: \"checkbox\",\n id: this.props.inputId,\n name: this.props.name,\n checked: this.isChecked(),\n onChange: this.toggle,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n disabled: this.props.disabled,\n role: \"switch\",\n \"aria-checked\": this.isChecked(),\n \"aria-labelledby\": this.props.ariaLabelledBy\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-inputswitch-slider\"\n }));\n }\n }]);\n\n return InputSwitch;\n}(Component);\n\n_defineProperty(InputSwitch, \"defaultProps\", {\n id: null,\n inputRef: null,\n style: null,\n className: null,\n inputId: null,\n name: null,\n checked: false,\n trueValue: true,\n falseValue: false,\n disabled: false,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n});\n\nexport { InputSwitch };\n","import {\n Splitter,\n hasBgRendering,\n EventDef,\n DateSpan,\n} from '@fullcalendar/common'\n\nexport class AllDaySplitter extends Splitter {\n getKeyInfo() {\n return {\n allDay: {},\n timed: {},\n }\n }\n\n getKeysForDateSpan(dateSpan: DateSpan): string[] {\n if (dateSpan.allDay) {\n return ['allDay']\n }\n\n return ['timed']\n }\n\n getKeysForEventDef(eventDef: EventDef): string[] {\n if (!eventDef.allDay) {\n return ['timed']\n }\n\n if (hasBgRendering(eventDef)) {\n return ['timed', 'allDay']\n }\n\n return ['allDay']\n }\n}\n","import {\n createElement,\n ViewContext,\n createFormatter,\n ViewContextType,\n RenderHook,\n SlotLabelContentArg,\n} from '@fullcalendar/common'\nimport { TimeSlatMeta } from './time-slat-meta'\n\nconst DEFAULT_SLAT_LABEL_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'short',\n})\n\nexport function TimeColsAxisCell(props: TimeSlatMeta) {\n let classNames = [\n 'fc-timegrid-slot',\n 'fc-timegrid-slot-label',\n props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',\n ]\n\n return (\n \n {(context: ViewContext) => {\n if (!props.isLabeled) {\n return (\n \n )}\n \n )\n }}\n \n )\n}\n\nfunction renderInnerContent(props) { // TODO: add types\n return props.text\n}\n","import { createElement, BaseComponent } from '@fullcalendar/common'\nimport { TimeColsAxisCell } from './TimeColsAxisCell'\nimport { TimeSlatMeta } from './time-slat-meta'\n\n/* Thin Axis\n------------------------------------------------------------------------------------------------------------------*/\n\ninterface TimeBodyAxisProps {\n slatMetas: TimeSlatMeta[]\n}\n\nexport class TimeBodyAxis extends BaseComponent { // just content\n render() {\n return this.props.slatMetas.map((slatMeta: TimeSlatMeta) => (\n \n \n \n ))\n }\n}\n","import {\n createElement, createRef,\n diffDays,\n SimpleScrollGridSection,\n VNode,\n SimpleScrollGrid,\n ChunkContentCallbackArgs,\n ScrollGridSectionConfig,\n buildNavLinkData,\n ViewRoot,\n WeekNumberRoot,\n RenderHook,\n DateComponent,\n ViewProps,\n RefObject,\n renderScrollShim,\n getStickyHeaderDates,\n getStickyFooterScrollbar,\n createFormatter,\n AllDayContentArg,\n CssDimValue,\n NowTimer,\n DateMarker,\n NowIndicatorRoot,\n} from '@fullcalendar/common'\nimport { AllDaySplitter } from './AllDaySplitter'\nimport { TimeSlatMeta } from './time-slat-meta'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { TimeBodyAxis } from './TimeBodyAxis'\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'short' })\nconst AUTO_ALL_DAY_MAX_EVENT_ROWS = 5\n\n/* An abstract class for all timegrid-related views. Displays one more columns with time slots running vertically.\n----------------------------------------------------------------------------------------------------------------------*/\n// Is a manager for the TimeCols subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\n// Responsible for managing width/height.\n\ninterface TimeColsViewState {\n slatCoords: TimeColsSlatsCoords | null\n}\n\nexport abstract class TimeColsView extends DateComponent {\n protected allDaySplitter = new AllDaySplitter() // for use by subclasses\n\n protected headerElRef: RefObject = createRef()\n private rootElRef: RefObject = createRef()\n private scrollerElRef: RefObject = createRef()\n\n state = {\n slatCoords: null,\n }\n\n // rendering\n // ----------------------------------------------------------------------------------------------------\n\n renderSimpleLayout(\n headerRowContent: VNode | null,\n allDayContent: ((contentArg: ChunkContentCallbackArgs) => VNode) | null,\n timeContent: ((contentArg: ChunkContentCallbackArgs) => VNode) | null,\n ) {\n let { context, props } = this\n let sections: SimpleScrollGridSection[] = []\n let stickyHeaderDates = getStickyHeaderDates(context.options)\n\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n })\n }\n\n if (allDayContent) {\n sections.push({\n type: 'body',\n key: 'all-day',\n chunk: { content: allDayContent },\n })\n sections.push({\n type: 'body',\n key: 'all-day-divider',\n outerContent: ( // TODO: rename to cellContent so don't need to define ?\n \n \n \n ),\n })\n }\n\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n expandRows: Boolean(context.options.expandRows),\n chunk: {\n scrollerElRef: this.scrollerElRef,\n content: timeContent,\n },\n })\n\n return (\n \n {(rootElRef, classNames) => (\n
\n \n
\n )}\n
\n )\n }\n\n renderHScrollLayout(\n headerRowContent: VNode | null,\n allDayContent: ((contentArg: ChunkContentCallbackArgs) => VNode) | null,\n timeContent: ((contentArg: ChunkContentCallbackArgs) => VNode) | null,\n colCnt: number,\n dayMinWidth: number,\n slatMetas: TimeSlatMeta[],\n slatCoords: TimeColsSlatsCoords | null, // yuck\n ) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl\n\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation')\n }\n\n let { context, props } = this\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options)\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options)\n let sections: ScrollGridSectionConfig[] = []\n\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n syncRowHeights: true,\n chunks: [\n {\n key: 'axis',\n rowContent: (arg: ChunkContentCallbackArgs) => (\n {this.renderHeadAxis('day', arg.rowSyncHeights[0])}\n ),\n },\n {\n key: 'cols',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n ],\n })\n }\n\n if (allDayContent) {\n sections.push({\n type: 'body',\n key: 'all-day',\n syncRowHeights: true,\n chunks: [\n {\n key: 'axis',\n rowContent: (contentArg: ChunkContentCallbackArgs) => (\n {this.renderTableRowAxis(contentArg.rowSyncHeights[0])}\n ),\n },\n {\n key: 'cols',\n content: allDayContent,\n },\n ],\n })\n sections.push({\n key: 'all-day-divider',\n type: 'body',\n outerContent: ( // TODO: rename to cellContent so don't need to define ?\n \n \n \n ),\n })\n }\n\n let isNowIndicator = context.options.nowIndicator\n\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n expandRows: Boolean(context.options.expandRows),\n chunks: [\n {\n key: 'axis',\n content: (arg) => (\n // TODO: make this now-indicator arrow more DRY with TimeColsContent\n
\n
\n )\n }\n\n let { dateEnv, options, viewApi } = context\n let labelFormat = // TODO: fully pre-parse\n options.slotLabelFormat == null ? DEFAULT_SLAT_LABEL_FORMAT :\n Array.isArray(options.slotLabelFormat) ? createFormatter(options.slotLabelFormat[0]) :\n createFormatter(options.slotLabelFormat)\n\n let hookProps: SlotLabelContentArg = {\n level: 0,\n time: props.time,\n date: dateEnv.toDate(props.date),\n view: viewApi,\n text: dateEnv.format(props.date, labelFormat),\n }\n\n return (\n // needed?\n hookProps={hookProps}\n classNames={options.slotLabelClassNames}\n content={options.slotLabelContent}\n defaultContent={renderInnerContent}\n didMount={options.slotLabelDidMount}\n willUnmount={options.slotLabelWillUnmount}\n >\n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n \n
\n
\n {innerContent}\n
\n
\n
\n {arg.tableColGroupNode}\n \n \n \n
\n
\n \n {(nowDate: DateMarker) => {\n let nowIndicatorTop =\n isNowIndicator &&\n slatCoords &&\n slatCoords.safeComputeTop(nowDate) // might return void\n\n if (typeof nowIndicatorTop === 'number') {\n return (\n \n {(rootElRef, classNames, innerElRef, innerContent) => (\n \n {innerContent}\n
\n )}\n \n )\n }\n\n return null\n }}\n \n \n \n ),\n },\n {\n key: 'cols',\n scrollerElRef: this.scrollerElRef,\n content: timeContent,\n },\n ],\n })\n\n if (stickyFooterScrollbar) {\n sections.push({\n key: 'footer',\n type: 'footer',\n isSticky: true,\n chunks: [\n {\n key: 'axis',\n content: renderScrollShim,\n },\n {\n key: 'cols',\n content: renderScrollShim,\n },\n ],\n })\n }\n\n return (\n \n {(rootElRef, classNames) => (\n
\n \n
\n )}\n
\n )\n }\n\n handleScrollTopRequest = (scrollTop: number) => {\n let scrollerEl = this.scrollerElRef.current\n\n if (scrollerEl) { // TODO: not sure how this could ever be null. weirdness with the reducer\n scrollerEl.scrollTop = scrollTop\n }\n }\n\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n\n getAllDayMaxEventProps() {\n let { dayMaxEvents, dayMaxEventRows } = this.context.options\n\n if (dayMaxEvents === true || dayMaxEventRows === true) { // is auto?\n dayMaxEvents = undefined\n dayMaxEventRows = AUTO_ALL_DAY_MAX_EVENT_ROWS // make sure \"auto\" goes to a real number\n }\n\n return { dayMaxEvents, dayMaxEventRows }\n }\n\n /* Header Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n\n renderHeadAxis = (rowKey: 'day' | string, frameHeight: CssDimValue = '') => {\n let { options } = this.context\n let { dateProfile } = this.props\n let range = dateProfile.renderRange\n let dayCnt = diffDays(range.start, range.end)\n\n let navLinkAttrs = (options.navLinks && dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)\n ? { 'data-navlink': buildNavLinkData(range.start, 'week'), tabIndex: 0 }\n : {}\n\n if (options.weekNumbers && rowKey === 'day') {\n return (\n \n {(rootElRef, classNames, innerElRef, innerContent) => (\n \n \n \n {innerContent}\n \n \n \n )}\n \n )\n }\n\n return (\n \n
\n \n )\n }\n\n /* Table Component Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n\n // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,\n // but DayGrid still needs to have classNames on inner elements in order to measure.\n renderTableRowAxis = (rowHeight?: number) => {\n let { options, viewApi } = this.context\n let hookProps: AllDayContentArg = {\n text: options.allDayText,\n view: viewApi,\n }\n\n return (\n // TODO: make reusable hook. used in list view too\n \n hookProps={hookProps}\n classNames={options.allDayClassNames}\n content={options.allDayContent}\n defaultContent={renderAllDayInner}\n didMount={options.allDayDidMount}\n willUnmount={options.allDayWillUnmount}\n >\n {(rootElRef, classNames, innerElRef, innerContent) => (\n \n \n \n {innerContent}\n \n
\n \n )}\n \n )\n }\n\n handleSlatCoords = (slatCoords: TimeColsSlatsCoords) => {\n this.setState({ slatCoords })\n }\n}\n\nfunction renderAllDayInner(hookProps) {\n return hookProps.text\n}\n","import {\n PositionCache,\n DateMarker,\n startOfDay,\n createDuration,\n asRoughMs,\n DateProfile,\n Duration,\n rangeContainsMarker,\n} from '@fullcalendar/common'\n\nexport class TimeColsSlatsCoords {\n constructor(\n public positions: PositionCache,\n private dateProfile: DateProfile,\n private slotDuration: Duration,\n ) {\n }\n\n safeComputeTop(date: DateMarker) { // TODO: DRY with computeDateTop\n let { dateProfile } = this\n\n if (rangeContainsMarker(dateProfile.currentRange, date)) {\n let startOfDayDate = startOfDay(date)\n let timeMs = date.valueOf() - startOfDayDate.valueOf()\n\n if (\n timeMs >= asRoughMs(dateProfile.slotMinTime) &&\n timeMs < asRoughMs(dateProfile.slotMaxTime)\n ) {\n return this.computeTimeTop(createDuration(timeMs))\n }\n }\n\n return null\n }\n\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n computeDateTop(when: DateMarker, startOfDayDate?: DateMarker) {\n if (!startOfDayDate) {\n startOfDayDate = startOfDay(when)\n }\n return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()))\n }\n\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.\n // Eventually allow computation with arbirary slat dates.\n computeTimeTop(duration: Duration): number {\n let { positions, dateProfile } = this\n let len = positions.els.length\n\n // floating-point value of # of slots covered\n let slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.slotMinTime)) / asRoughMs(this.slotDuration)\n let slatIndex\n let slatRemainder\n\n // compute a floating-point number for how many slats should be progressed through.\n // from 0 to number of slats (inclusive)\n // constrained because slotMinTime/slotMaxTime might be customized.\n slatCoverage = Math.max(0, slatCoverage)\n slatCoverage = Math.min(len, slatCoverage)\n\n // an integer index of the furthest whole slat\n // from 0 to number slats (*exclusive*, so len-1)\n slatIndex = Math.floor(slatCoverage)\n slatIndex = Math.min(slatIndex, len - 1)\n\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n // could be 1.0 if slatCoverage is covering *all* the slots\n slatRemainder = slatCoverage - slatIndex\n\n return positions.tops[slatIndex] +\n positions.getHeight(slatIndex) * slatRemainder\n }\n}\n","import {\n createElement,\n BaseComponent,\n RefMap,\n RenderHook,\n SlotLaneContentArg,\n} from '@fullcalendar/common'\nimport { TimeColsAxisCell } from './TimeColsAxisCell'\nimport { TimeSlatMeta } from './time-slat-meta'\n\nexport interface TimeColsSlatsBodyProps {\n axis: boolean\n slatMetas: TimeSlatMeta[]\n slatElRefs: RefMap\n}\n\nexport class TimeColsSlatsBody extends BaseComponent {\n render() {\n let { props, context } = this\n let { options } = context\n let { slatElRefs } = props\n\n return (\n \n {props.slatMetas.map((slatMeta, i) => {\n let hookProps: SlotLaneContentArg = {\n time: slatMeta.time,\n date: context.dateEnv.toDate(slatMeta.date),\n view: context.viewApi,\n }\n\n let classNames = [\n 'fc-timegrid-slot',\n 'fc-timegrid-slot-lane',\n slatMeta.isLabeled ? '' : 'fc-timegrid-slot-minor',\n ]\n\n return (\n \n {props.axis && (\n \n )}\n \n {(rootElRef, customClassNames, innerElRef, innerContent) => (\n \n {innerContent}\n \n )}\n \n \n )\n })}\n \n )\n }\n}\n","import {\n createElement,\n VNode,\n BaseComponent,\n RefMap,\n CssDimValue,\n createRef,\n PositionCache,\n DateProfile,\n} from '@fullcalendar/common'\nimport { TimeSlatMeta } from './time-slat-meta'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { TimeColsSlatsBody } from './TimeColsSlatsBody'\n\nexport interface TimeColsSlatsProps extends TimeColsSlatsContentProps {\n dateProfile: DateProfile\n clientWidth: number | null\n minHeight: CssDimValue\n tableMinWidth: CssDimValue\n tableColGroupNode: VNode\n onCoords?: (coords: TimeColsSlatsCoords | null) => void\n}\n\ninterface TimeColsSlatsContentProps {\n axis: boolean\n slatMetas: TimeSlatMeta[]\n}\n\n/*\nfor the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n*/\n\nexport class TimeColsSlats extends BaseComponent {\n private rootElRef = createRef()\n private slatElRefs = new RefMap()\n\n render() {\n let { props, context } = this\n\n return (\n
\n \n {props.tableColGroupNode /* relies on there only being a single for the axis */}\n \n \n
\n )\n }\n\n componentDidMount() {\n this.updateSizing()\n }\n\n componentDidUpdate() {\n this.updateSizing()\n }\n\n componentWillUnmount() {\n if (this.props.onCoords) {\n this.props.onCoords(null)\n }\n }\n\n updateSizing() {\n let { context, props } = this\n\n if (\n props.onCoords &&\n props.clientWidth !== null // means sizing has stabilized\n ) {\n let rootEl = this.rootElRef.current\n\n if (rootEl.offsetHeight) { // not hidden by css\n props.onCoords(\n new TimeColsSlatsCoords(\n new PositionCache(\n this.rootElRef.current,\n collectSlatEls(this.slatElRefs.currentMap, props.slatMetas),\n false,\n true, // vertical\n ),\n this.props.dateProfile,\n context.options.slotDuration,\n ),\n )\n }\n }\n }\n}\n\nfunction collectSlatEls(elMap: { [key: string]: HTMLElement }, slatMetas: TimeSlatMeta[]) {\n return slatMetas.map((slatMeta) => elMap[slatMeta.key])\n}\n","import { DateMarker, Seg, EventSegUiInteractionState } from '@fullcalendar/common'\n\n// JUST A DATA STRUCTURE, not a component\n\nexport interface TimeColsSeg extends Seg {\n col: number\n start: DateMarker\n end: DateMarker\n}\n\nexport function splitSegsByCol(segs: TimeColsSeg[] | null, colCnt: number) { // can be given null/undefined!\n let segsByCol: TimeColsSeg[][] = []\n let i\n\n for (i = 0; i < colCnt; i += 1) {\n segsByCol.push([])\n }\n\n if (segs) {\n for (i = 0; i < segs.length; i += 1) {\n segsByCol[segs[i].col].push(segs[i])\n }\n }\n\n return segsByCol\n}\n\nexport function splitInteractionByCol(ui: EventSegUiInteractionState | null, colCnt: number) {\n let byRow: EventSegUiInteractionState[] = []\n\n if (!ui) {\n for (let i = 0; i < colCnt; i += 1) {\n byRow[i] = null\n }\n } else {\n for (let i = 0; i < colCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n }\n }\n\n for (let seg of ui.segs) {\n byRow[seg.col].segs.push(seg)\n }\n }\n\n return byRow\n}\n","import {\n createElement, MoreLinkContentArg, MoreLinkRoot, BaseComponent, createRef, setRef,\n Dictionary, DateProfile, DateRange, DateMarker, EventSegUiInteractionState, CssDimValue,\n} from '@fullcalendar/common'\nimport { renderPlainFgSegs } from './TimeCol'\nimport { TimeColsSeg } from './TimeColsSeg'\n\nexport interface TimeColMoreLinkProps {\n hiddenSegs: TimeColsSeg[]\n top: CssDimValue\n bottom: CssDimValue\n extraDateSpan?: Dictionary\n dateProfile: DateProfile\n todayRange: DateRange\n nowDate: DateMarker\n eventSelection: string\n eventDrag: EventSegUiInteractionState\n eventResize: EventSegUiInteractionState\n}\n\nexport class TimeColMoreLink extends BaseComponent {\n rootElRef = createRef()\n\n render() {\n let { props } = this\n return (\n renderPlainFgSegs(props.hiddenSegs, props)}\n >\n {(rootElRef, classNames, innerElRef, innerContent, handleClick) => (\n {\n setRef(rootElRef, el)\n setRef(this.rootElRef, el)\n }}\n className={['fc-timegrid-more-link'].concat(classNames).join(' ')}\n style={{ top: props.top, bottom: props.bottom }}\n onClick={handleClick}\n >\n
\n {innerContent}\n
\n \n )}\n \n )\n }\n}\n\nfunction renderMoreLinkInner(props: MoreLinkContentArg) {\n return props.shortText\n}\n","import {\n SegEntry,\n SegHierarchy,\n SegRect,\n buildEntryKey,\n getEntrySpanEnd,\n binarySearch,\n SegEntryGroup,\n groupIntersectingEntries,\n} from '@fullcalendar/common'\n\ninterface SegNode extends SegEntry {\n nextLevelNodes: SegNode[] // with highest-pressure first\n}\n\ntype SegNodeAndPressure = [ SegNode, number ]\n\ninterface SegSiblingRange { // will ALWAYS have span of 1 or more items. if not, will be null\n level: number\n lateralStart: number\n lateralEnd: number\n}\n\nexport interface SegWebRect extends SegRect {\n stackDepth: number\n stackForward: number\n}\n\n// segInputs assumed sorted\nexport function buildPositioning(\n segInputs: SegEntry[],\n strictOrder?: boolean,\n maxStackCnt?: number,\n): { segRects: SegWebRect[], hiddenGroups: SegEntryGroup[] } {\n let hierarchy = new SegHierarchy()\n if (strictOrder != null) {\n hierarchy.strictOrder = strictOrder\n }\n if (maxStackCnt != null) {\n hierarchy.maxStackCnt = maxStackCnt\n }\n\n let hiddenEntries = hierarchy.addSegs(segInputs)\n let hiddenGroups = groupIntersectingEntries(hiddenEntries)\n\n let web = buildWeb(hierarchy)\n web = stretchWeb(web, 1) // all levelCoords/thickness will have 0.0-1.0\n let segRects = webToRects(web)\n\n return { segRects, hiddenGroups }\n}\n\nfunction buildWeb(hierarchy: SegHierarchy): SegNode[] {\n const { entriesByLevel } = hierarchy\n\n const buildNode = cacheable(\n (level: number, lateral: number) => level + ':' + lateral,\n (level: number, lateral: number): SegNodeAndPressure => {\n let siblingRange = findNextLevelSegs(hierarchy, level, lateral)\n let nextLevelRes = buildNodes(siblingRange, buildNode)\n let entry = entriesByLevel[level][lateral]\n\n return [\n { ...entry, nextLevelNodes: nextLevelRes[0] },\n entry.thickness + nextLevelRes[1], // the pressure builds\n ]\n },\n )\n\n return buildNodes(\n entriesByLevel.length\n ? { level: 0, lateralStart: 0, lateralEnd: entriesByLevel[0].length }\n : null,\n buildNode,\n )[0]\n}\n\nfunction buildNodes(\n siblingRange: SegSiblingRange | null,\n buildNode: (level: number, lateral: number) => SegNodeAndPressure,\n): [SegNode[], number] { // number is maxPressure\n if (!siblingRange) {\n return [[], 0]\n }\n\n let { level, lateralStart, lateralEnd } = siblingRange\n let lateral = lateralStart\n let pairs: SegNodeAndPressure[] = []\n\n while (lateral < lateralEnd) {\n pairs.push(buildNode(level, lateral))\n lateral += 1\n }\n\n pairs.sort(cmpDescPressures)\n\n return [\n pairs.map(extractNode),\n pairs[0][1], // first item's pressure\n ]\n}\n\nfunction cmpDescPressures(a: SegNodeAndPressure, b: SegNodeAndPressure) { // sort pressure high -> low\n return b[1] - a[1]\n}\n\nfunction extractNode(a: SegNodeAndPressure): SegNode {\n return a[0]\n}\n\nfunction findNextLevelSegs(hierarchy: SegHierarchy, subjectLevel: number, subjectLateral: number): SegSiblingRange | null {\n let { levelCoords, entriesByLevel } = hierarchy\n let subjectEntry = entriesByLevel[subjectLevel][subjectLateral]\n let afterSubject = levelCoords[subjectLevel] + subjectEntry.thickness\n let levelCnt = levelCoords.length\n let level = subjectLevel\n\n // skip past levels that are too high up\n for (; level < levelCnt && levelCoords[level] < afterSubject; level += 1) ; // do nothing\n\n for (; level < levelCnt; level += 1) {\n let entries = entriesByLevel[level]\n let entry: SegEntry\n let searchIndex = binarySearch(entries, subjectEntry.span.start, getEntrySpanEnd)\n let lateralStart = searchIndex[0] + searchIndex[1] // if exact match (which doesn't collide), go to next one\n let lateralEnd = lateralStart\n\n while ( // loop through entries that horizontally intersect\n (entry = entries[lateralEnd]) && // but not past the whole seg list\n entry.span.start < subjectEntry.span.end\n ) { lateralEnd += 1 }\n\n if (lateralStart < lateralEnd) {\n return { level, lateralStart, lateralEnd }\n }\n }\n\n return null\n}\n\nfunction stretchWeb(topLevelNodes: SegNode[], totalThickness: number): SegNode[] {\n const stretchNode = cacheable(\n (node: SegNode, startCoord: number, prevThickness: number) => buildEntryKey(node),\n (node: SegNode, startCoord: number, prevThickness: number): [number, SegNode] => { // [startCoord, node]\n let { nextLevelNodes, thickness } = node\n let allThickness = thickness + prevThickness\n let thicknessFraction = thickness / allThickness\n let endCoord: number\n let newChildren: SegNode[] = []\n\n if (!nextLevelNodes.length) {\n endCoord = totalThickness\n } else {\n for (let childNode of nextLevelNodes) {\n if (endCoord === undefined) {\n let res = stretchNode(childNode, startCoord, allThickness)\n endCoord = res[0]\n newChildren.push(res[1])\n } else {\n let res = stretchNode(childNode, endCoord, 0)\n newChildren.push(res[1])\n }\n }\n }\n\n let newThickness = (endCoord - startCoord) * thicknessFraction\n return [endCoord - newThickness, {\n ...node,\n thickness: newThickness,\n nextLevelNodes: newChildren,\n }]\n },\n )\n\n return topLevelNodes.map((node: SegNode) => stretchNode(node, 0, 0)[1])\n}\n\n// not sorted in any particular order\nfunction webToRects(topLevelNodes: SegNode[]): SegWebRect[] {\n let rects: SegWebRect[] = []\n\n const processNode = cacheable(\n (node: SegNode, levelCoord: number, stackDepth: number) => buildEntryKey(node),\n (node: SegNode, levelCoord: number, stackDepth: number) => { // returns forwardPressure\n let rect: SegWebRect = {\n ...node,\n levelCoord,\n stackDepth,\n stackForward: 0, // will assign after recursing\n }\n rects.push(rect)\n\n return (\n rect.stackForward = processNodes(node.nextLevelNodes, levelCoord + node.thickness, stackDepth + 1) + 1\n )\n },\n )\n\n function processNodes(nodes: SegNode[], levelCoord: number, stackDepth: number) { // returns stackForward\n let stackForward = 0\n for (let node of nodes) {\n stackForward = Math.max(processNode(node, levelCoord, stackDepth), stackForward)\n }\n return stackForward\n }\n\n processNodes(topLevelNodes, 0, 0)\n return rects // TODO: sort rects by levelCoord to be consistent with toRects?\n}\n\n// TODO: move to general util\n\nfunction cacheable(\n keyFunc: (...args: Args) => string,\n workFunc: (...args: Args) => Res,\n): ((...args: Args) => Res) {\n const cache: { [key: string]: Res } = {}\n\n return (...args: Args) => {\n let key = keyFunc(...args)\n return (key in cache)\n ? cache[key]\n : (cache[key] = workFunc(...args))\n }\n}\n","import { createElement, StandardEvent, BaseComponent, MinimalEventProps, createFormatter } from '@fullcalendar/common'\n\nconst DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: false,\n})\n\nexport interface TimeColEventProps extends MinimalEventProps {\n isShort: boolean\n}\n\nexport class TimeColEvent extends BaseComponent {\n render() {\n let classNames = [\n 'fc-timegrid-event',\n 'fc-v-event',\n ]\n\n if (this.props.isShort) {\n classNames.push('fc-timegrid-event-short')\n }\n\n return (\n \n )\n }\n}\n","import {\n DateMarker, BaseComponent, createElement,\n DateRange, DayCellContent, DateProfile,\n} from '@fullcalendar/common'\n\nexport interface TimeColMiscProps { // should be given nowDate too??\n dateProfile: DateProfile\n date: DateMarker\n todayRange: DateRange\n extraHookProps?: any\n}\n\nexport class TimeColMisc extends BaseComponent {\n render() {\n let { props } = this\n\n return (\n \n {(innerElRef, innerContent) => (\n innerContent &&\n
{innerContent}
\n )}\n
\n )\n }\n}\n","import {\n Ref, DateMarker, BaseComponent, createElement, EventSegUiInteractionState, Seg, getSegMeta,\n DateRange, Fragment, DayCellRoot, NowIndicatorRoot, BgEvent, renderFill, buildIsoString, computeEarliestSegStart,\n DateProfile, buildEventRangeKey, sortEventSegs, memoize, SegEntryGroup, SegEntry, Dictionary, SegSpan, CssDimValue,\n} from '@fullcalendar/common'\nimport { TimeColMoreLink } from './TimeColMoreLink'\nimport { TimeColsSeg } from './TimeColsSeg'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { SegWebRect } from './seg-web'\nimport { computeFgSegPlacements, computeSegVCoords } from './event-placement'\nimport { TimeColEvent } from './TimeColEvent'\nimport { TimeColMisc } from './TimeColMisc'\n\nexport interface TimeColProps {\n elRef?: Ref\n dateProfile: DateProfile\n date: DateMarker\n nowDate: DateMarker\n todayRange: DateRange\n extraDataAttrs?: any\n extraHookProps?: any\n extraClassNames?: string[]\n extraDateSpan?: Dictionary\n fgEventSegs: TimeColsSeg[]\n bgEventSegs: TimeColsSeg[]\n businessHourSegs: TimeColsSeg[]\n nowIndicatorSegs: TimeColsSeg[]\n dateSelectionSegs: TimeColsSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n slatCoords: TimeColsSlatsCoords\n forPrint: boolean\n}\n\nexport class TimeCol extends BaseComponent {\n sortEventSegs = memoize(sortEventSegs)\n // TODO: memoize event-placement?\n\n render() {\n let { props, context } = this\n let isSelectMirror = context.options.selectMirror\n\n let mirrorSegs: Seg[] = // yuck\n (props.eventDrag && props.eventDrag.segs) ||\n (props.eventResize && props.eventResize.segs) ||\n (isSelectMirror && props.dateSelectionSegs) ||\n []\n\n let interactionAffectedInstances = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {}\n\n let sortedFgSegs = this.sortEventSegs(props.fgEventSegs, context.options.eventOrder) as TimeColsSeg[]\n\n return (\n \n {(rootElRef, classNames, dataAttrs) => (\n \n
\n
\n {this.renderFillSegs(props.businessHourSegs, 'non-business')}\n {this.renderFillSegs(props.bgEventSegs, 'bg-event')}\n {this.renderFillSegs(props.dateSelectionSegs, 'highlight')}\n
\n
\n {this.renderFgSegs(\n sortedFgSegs,\n interactionAffectedInstances,\n false,\n false,\n false,\n )}\n
\n
\n {this.renderFgSegs(\n mirrorSegs as TimeColsSeg[],\n {},\n Boolean(props.eventDrag),\n Boolean(props.eventResize),\n Boolean(isSelectMirror),\n )}\n
\n
\n {this.renderNowIndicator(props.nowIndicatorSegs)}\n
\n \n
\n \n )}\n \n )\n }\n\n renderFgSegs(\n sortedFgSegs: TimeColsSeg[],\n segIsInvisible: { [instanceId: string]: any },\n isDragging: boolean,\n isResizing: boolean,\n isDateSelecting: boolean,\n ) {\n let { props } = this\n if (props.forPrint) {\n return renderPlainFgSegs(sortedFgSegs, props)\n }\n return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting)\n }\n\n renderPositionedFgSegs(\n segs: TimeColsSeg[], // if not mirror, needs to be sorted\n segIsInvisible: { [instanceId: string]: any },\n isDragging: boolean,\n isResizing: boolean,\n isDateSelecting: boolean,\n ) {\n let { eventMaxStack, eventShortHeight, eventOrderStrict, eventMinHeight } = this.context.options\n let { date, slatCoords, eventSelection, todayRange, nowDate } = this.props\n let isMirror = isDragging || isResizing || isDateSelecting\n let segVCoords = computeSegVCoords(segs, date, slatCoords, eventMinHeight)\n let { segPlacements, hiddenGroups } = computeFgSegPlacements(segs, segVCoords, eventOrderStrict, eventMaxStack)\n\n return (\n \n {this.renderHiddenGroups(hiddenGroups, segs)}\n {segPlacements.map((segPlacement) => {\n let { seg, rect } = segPlacement\n let instanceId = seg.eventRange.instance.instanceId\n let isVisible = isMirror || Boolean(!segIsInvisible[instanceId] && rect)\n let vStyle = computeSegVStyle(rect && rect.span)\n let hStyle = (!isMirror && rect) ? this.computeSegHStyle(rect) : { left: 0, right: 0 }\n let isInset = Boolean(rect) && rect.stackForward > 0\n let isShort = Boolean(rect) && (rect.span.end - rect.span.start) < eventShortHeight // look at other places for this problem\n\n return (\n \n \n \n )\n })}\n \n )\n }\n\n // will already have eventMinHeight applied because segInputs already had it\n renderHiddenGroups(hiddenGroups: SegEntryGroup[], segs: TimeColsSeg[]) {\n let { extraDateSpan, dateProfile, todayRange, nowDate, eventSelection, eventDrag, eventResize } = this.props\n return (\n \n {hiddenGroups.map((hiddenGroup) => {\n let positionCss = computeSegVStyle(hiddenGroup.span)\n let hiddenSegs = compileSegsFromEntries(hiddenGroup.entries, segs)\n return (\n \n )\n })}\n \n )\n }\n\n renderFillSegs(segs: TimeColsSeg[], fillType: string) {\n let { props, context } = this\n let segVCoords = computeSegVCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight) // don't assume all populated\n\n let children = segVCoords.map((vcoords, i) => {\n let seg = segs[i]\n return (\n \n {fillType === 'bg-event' ?\n :\n renderFill(fillType)}\n \n )\n })\n\n return {children}\n }\n\n renderNowIndicator(segs: TimeColsSeg[]) {\n let { slatCoords, date } = this.props\n\n if (!slatCoords) { return null }\n\n return segs.map((seg, i) => (\n \n {(rootElRef, classNames, innerElRef, innerContent) => (\n \n {innerContent}\n \n )}\n \n ))\n }\n\n computeSegHStyle(segHCoords: SegWebRect) {\n let { isRtl, options } = this.context\n let shouldOverlap = options.slotEventOverlap\n let nearCoord = segHCoords.levelCoord // the left side if LTR. the right side if RTL. floating-point\n let farCoord = segHCoords.levelCoord + segHCoords.thickness // the right side if LTR. the left side if RTL. floating-point\n let left // amount of space from left edge, a fraction of the total width\n let right // amount of space from right edge, a fraction of the total width\n\n if (shouldOverlap) {\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\n farCoord = Math.min(1, nearCoord + (farCoord - nearCoord) * 2)\n }\n\n if (isRtl) {\n left = 1 - farCoord\n right = nearCoord\n } else {\n left = nearCoord\n right = 1 - farCoord\n }\n\n let props = {\n zIndex: segHCoords.stackDepth + 1, // convert from 0-base to 1-based\n left: left * 100 + '%',\n right: right * 100 + '%',\n }\n\n if (shouldOverlap && !segHCoords.stackForward) {\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\n props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2 // 10 is a guesstimate of the icon's width\n }\n\n return props\n }\n}\n\nexport function renderPlainFgSegs(\n sortedFgSegs: TimeColsSeg[],\n { todayRange, nowDate, eventSelection, eventDrag, eventResize }: {\n todayRange: DateRange\n nowDate: DateMarker\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n },\n) {\n let hiddenInstances =\n (eventDrag ? eventDrag.affectedInstances : null) ||\n (eventResize ? eventResize.affectedInstances : null) ||\n {}\n return (\n \n {sortedFgSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId\n return (\n \n \n \n )\n })}\n \n )\n}\n\nfunction computeSegVStyle(segVCoords: SegSpan | null): { top: CssDimValue, bottom: CssDimValue } {\n if (!segVCoords) {\n return { top: '', bottom: '' }\n }\n return {\n top: segVCoords.start,\n bottom: -segVCoords.end,\n }\n}\n\nfunction compileSegsFromEntries(\n segEntries: SegEntry[],\n allSegs: TimeColsSeg[],\n): TimeColsSeg[] {\n return segEntries.map((segEntry) => allSegs[segEntry.index])\n}\n","import {\n createElement, VNode,\n BaseComponent,\n EventSegUiInteractionState,\n CssDimValue,\n DateMarker,\n RefMap,\n createRef,\n PositionCache,\n memoize,\n DateRange,\n NowIndicatorRoot,\n DateProfile,\n DayTableCell,\n} from '@fullcalendar/common'\nimport { TimeColsSeg, splitSegsByCol, splitInteractionByCol } from './TimeColsSeg'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { TimeCol } from './TimeCol'\n\nexport interface TimeColsContentProps {\n axis: boolean\n cells: DayTableCell[]\n dateProfile: DateProfile\n nowDate: DateMarker\n todayRange: DateRange\n businessHourSegs: TimeColsSeg[]\n bgEventSegs: TimeColsSeg[]\n fgEventSegs: TimeColsSeg[]\n dateSelectionSegs: TimeColsSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n nowIndicatorSegs: TimeColsSeg[]\n clientWidth: number | null\n tableMinWidth: CssDimValue\n tableColGroupNode: VNode\n slatCoords: TimeColsSlatsCoords\n onColCoords?: (colCoords: PositionCache) => void\n forPrint: boolean\n}\n\nexport class TimeColsContent extends BaseComponent { // TODO: rename\n private splitFgEventSegs = memoize(splitSegsByCol)\n private splitBgEventSegs = memoize(splitSegsByCol)\n private splitBusinessHourSegs = memoize(splitSegsByCol)\n private splitNowIndicatorSegs = memoize(splitSegsByCol)\n private splitDateSelectionSegs = memoize(splitSegsByCol)\n private splitEventDrag = memoize(splitInteractionByCol)\n private splitEventResize = memoize(splitInteractionByCol)\n private rootElRef = createRef()\n private cellElRefs = new RefMap()\n\n render() {\n let { props, context } = this\n let nowIndicatorTop =\n context.options.nowIndicator &&\n props.slatCoords &&\n props.slatCoords.safeComputeTop(props.nowDate) // might return void\n\n let colCnt = props.cells.length\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, colCnt)\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, colCnt)\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, colCnt)\n let nowIndicatorSegsByRow = this.splitNowIndicatorSegs(props.nowIndicatorSegs, colCnt)\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt)\n let eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt)\n let eventResizeByRow = this.splitEventResize(props.eventResize, colCnt)\n\n return (\n
\n \n {props.tableColGroupNode}\n \n \n {props.axis && (\n \n )}\n {props.cells.map((cell, i) => (\n \n ))}\n \n \n
\n
\n
\n {typeof nowIndicatorTop === 'number' && (\n \n {(rootElRef, classNames, innerElRef, innerContent) => (\n \n {innerContent}\n
\n )}\n \n )}\n
\n \n
\n
\n )\n }\n\n componentDidMount() {\n this.updateCoords()\n }\n\n componentDidUpdate() {\n this.updateCoords()\n }\n\n updateCoords() {\n let { props } = this\n\n if (\n props.onColCoords &&\n props.clientWidth !== null // means sizing has stabilized\n ) {\n props.onColCoords(\n new PositionCache(\n this.rootElRef.current,\n collectCellEls(this.cellElRefs.currentMap, props.cells),\n true, // horizontal\n false,\n ),\n )\n }\n }\n}\n\nfunction collectCellEls(elMap: { [key: string]: HTMLElement }, cells: DayTableCell[]) {\n return cells.map((cell) => elMap[cell.key])\n}\n","import {\n createElement, VNode,\n addDurations,\n multiplyDuration,\n wholeDivideDurations,\n DateMarker,\n EventSegUiInteractionState,\n memoize,\n CssDimValue,\n PositionCache,\n ScrollResponder,\n ScrollRequest,\n DateRange,\n Duration,\n DateProfile,\n DayTableCell,\n Hit,\n DateComponent,\n} from '@fullcalendar/common'\nimport { TimeColsSlats } from './TimeColsSlats'\nimport { TimeSlatMeta } from './time-slat-meta'\nimport { TimeColsContent } from './TimeColsContent'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { TimeColsSeg } from './TimeColsSeg'\n\nexport interface TimeColsProps {\n cells: DayTableCell[]\n dateProfile: DateProfile\n slotDuration: Duration\n nowDate: DateMarker\n todayRange: DateRange\n businessHourSegs: TimeColsSeg[]\n bgEventSegs: TimeColsSeg[]\n fgEventSegs: TimeColsSeg[]\n dateSelectionSegs: TimeColsSeg[]\n eventSelection: string\n eventDrag: EventSegUiInteractionState | null\n eventResize: EventSegUiInteractionState | null\n tableColGroupNode: VNode\n tableMinWidth: CssDimValue\n clientWidth: number | null\n clientHeight: number | null\n expandRows: boolean\n nowIndicatorSegs: TimeColsSeg[]\n onScrollTopRequest?: (scrollTop: number) => void\n forPrint: boolean\n axis: boolean\n slatMetas: TimeSlatMeta[]\n onSlatCoords?: (slatCoords: TimeColsSlatsCoords) => void\n isHitComboAllowed?: (hit0: Hit, hit1: Hit) => boolean\n}\n\ninterface TimeColsState {\n slatCoords: TimeColsSlatsCoords | null\n}\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\n\nexport class TimeCols extends DateComponent {\n private processSlotOptions = memoize(processSlotOptions)\n private scrollResponder: ScrollResponder\n private colCoords: PositionCache\n\n state = {\n slatCoords: null,\n }\n\n render() {\n let { props, state } = this\n\n return (\n \n \n \n \n )\n }\n\n handleRootEl = (el: HTMLElement | null) => {\n if (el) {\n this.context.registerInteractiveComponent(this, {\n el,\n isHitComboAllowed: this.props.isHitComboAllowed,\n })\n } else {\n this.context.unregisterInteractiveComponent(this)\n }\n }\n\n componentDidMount() {\n this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest)\n }\n\n componentDidUpdate(prevProps: TimeColsProps) {\n this.scrollResponder.update(prevProps.dateProfile !== this.props.dateProfile)\n }\n\n componentWillUnmount() {\n this.scrollResponder.detach()\n }\n\n handleScrollRequest = (request: ScrollRequest) => {\n let { onScrollTopRequest } = this.props\n let { slatCoords } = this.state\n\n if (onScrollTopRequest && slatCoords) {\n if (request.time) {\n let top = slatCoords.computeTimeTop(request.time)\n top = Math.ceil(top) // zoom can give weird floating-point values. rather scroll a little bit further\n if (top) {\n top += 1 // to overcome top border that slots beyond the first have. looks better\n }\n\n onScrollTopRequest(top)\n }\n\n return true\n }\n\n return false\n }\n\n handleColCoords = (colCoords: PositionCache | null) => {\n this.colCoords = colCoords\n }\n\n handleSlatCoords = (slatCoords: TimeColsSlatsCoords | null) => {\n this.setState({ slatCoords })\n\n if (this.props.onSlatCoords) {\n this.props.onSlatCoords(slatCoords)\n }\n }\n\n queryHit(positionLeft: number, positionTop: number): Hit {\n let { dateEnv, options } = this.context\n let { colCoords } = this\n let { dateProfile } = this.props\n let { slatCoords } = this.state\n let { snapDuration, snapsPerSlot } = this.processSlotOptions(this.props.slotDuration, options.snapDuration)\n\n let colIndex = colCoords.leftToIndex(positionLeft)\n let slatIndex = slatCoords.positions.topToIndex(positionTop)\n\n if (colIndex != null && slatIndex != null) {\n let cell = this.props.cells[colIndex]\n let slatTop = slatCoords.positions.tops[slatIndex]\n let slatHeight = slatCoords.positions.getHeight(slatIndex)\n let partial = (positionTop - slatTop) / slatHeight // floating point number between 0 and 1\n let localSnapIndex = Math.floor(partial * snapsPerSlot) // the snap # relative to start of slat\n let snapIndex = slatIndex * snapsPerSlot + localSnapIndex\n\n let dayDate = this.props.cells[colIndex].date\n let time = addDurations(\n dateProfile.slotMinTime,\n multiplyDuration(snapDuration, snapIndex),\n )\n\n let start = dateEnv.add(dayDate, time)\n let end = dateEnv.add(start, snapDuration)\n\n return {\n dateProfile,\n dateSpan: {\n range: { start, end },\n allDay: false,\n ...cell.extraDateSpan,\n },\n dayEl: colCoords.els[colIndex],\n rect: {\n left: colCoords.lefts[colIndex],\n right: colCoords.rights[colIndex],\n top: slatTop,\n bottom: slatTop + slatHeight,\n },\n layer: 0,\n }\n }\n\n return null\n }\n}\n\nfunction processSlotOptions(slotDuration: Duration, snapDurationOverride: Duration | null) {\n let snapDuration = snapDurationOverride || slotDuration\n let snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration)\n\n if (snapsPerSlot === null) {\n snapDuration = slotDuration\n snapsPerSlot = 1\n // TODO: say warning?\n }\n\n return { snapDuration, snapsPerSlot }\n}\n","import { intersectRanges, DateRange, Slicer } from '@fullcalendar/common'\nimport { TimeColsSeg } from './TimeColsSeg'\n\nexport class DayTimeColsSlicer extends Slicer {\n sliceRange(range: DateRange, dayRanges: DateRange[]): TimeColsSeg[] {\n let segs: TimeColsSeg[] = []\n\n for (let col = 0; col < dayRanges.length; col += 1) {\n let segRange = intersectRanges(range, dayRanges[col])\n\n if (segRange) {\n segs.push({\n start: segRange.start,\n end: segRange.end,\n isStart: segRange.start.valueOf() === range.start.valueOf(),\n isEnd: segRange.end.valueOf() === range.end.valueOf(),\n col,\n })\n }\n }\n\n return segs\n }\n}\n","import {\n createElement,\n createRef,\n VNode,\n DateComponent,\n DateProfile,\n EventStore,\n EventUiHash,\n EventInteractionState,\n DateSpan,\n memoize,\n DateRange,\n DayTableModel,\n DateEnv,\n DateMarker,\n NowTimer,\n CssDimValue,\n Duration,\n} from '@fullcalendar/common'\nimport { TimeCols } from './TimeCols'\nimport { TimeSlatMeta } from './time-slat-meta'\nimport { TimeColsSlatsCoords } from './TimeColsSlatsCoords'\nimport { DayTimeColsSlicer } from './DayTimeColsSlicer'\n\nexport interface DayTimeColsProps {\n dateProfile: DateProfile\n dayTableModel: DayTableModel\n axis: boolean\n slotDuration: Duration\n slatMetas: TimeSlatMeta[]\n businessHours: EventStore\n eventStore: EventStore\n eventUiBases: EventUiHash\n dateSelection: DateSpan | null\n eventSelection: string\n eventDrag: EventInteractionState | null\n eventResize: EventInteractionState | null\n tableColGroupNode: VNode\n tableMinWidth: CssDimValue\n clientWidth: number | null\n clientHeight: number | null\n expandRows: boolean\n onScrollTopRequest?: (scrollTop: number) => void\n forPrint: boolean\n onSlatCoords?: (slatCoords: TimeColsSlatsCoords) => void\n}\n\nexport class DayTimeCols extends DateComponent {\n private buildDayRanges = memoize(buildDayRanges)\n private slicer = new DayTimeColsSlicer()\n private timeColsRef = createRef()\n\n render() {\n let { props, context } = this\n let { dateProfile, dayTableModel } = props\n\n let isNowIndicator = context.options.nowIndicator\n let dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv)\n\n // give it the first row of cells\n // TODO: would move this further down hierarchy, but sliceNowDate needs it\n return (\n \n {(nowDate: DateMarker, todayRange: DateRange) => (\n \n )}\n \n )\n }\n}\n\nexport function buildDayRanges(dayTableModel: DayTableModel, dateProfile: DateProfile, dateEnv: DateEnv): DateRange[] {\n let ranges: DateRange[] = []\n\n for (let date of dayTableModel.headerDates) {\n ranges.push({\n start: dateEnv.add(date, dateProfile.slotMinTime),\n end: dateEnv.add(date, dateProfile.slotMaxTime),\n })\n }\n\n return ranges\n}\n","import {\n createDuration,\n asRoughMs,\n formatIsoTimeString,\n addDurations,\n wholeDivideDurations,\n Duration,\n DateMarker,\n DateEnv,\n} from '@fullcalendar/common'\n\nexport interface TimeSlatMeta {\n date: DateMarker\n time: Duration\n key: string\n isoTimeStr: string\n isLabeled: boolean\n}\n\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nconst STOCK_SUB_DURATIONS = [\n { hours: 1 },\n { minutes: 30 },\n { minutes: 15 },\n { seconds: 30 },\n { seconds: 15 },\n]\n\nexport function buildSlatMetas(\n slotMinTime: Duration,\n slotMaxTime: Duration,\n explicitLabelInterval: Duration | null,\n slotDuration: Duration,\n dateEnv: DateEnv,\n) {\n let dayStart = new Date(0)\n let slatTime = slotMinTime\n let slatIterator = createDuration(0)\n let labelInterval = explicitLabelInterval || computeLabelInterval(slotDuration)\n let metas: TimeSlatMeta[] = []\n\n while (asRoughMs(slatTime) < asRoughMs(slotMaxTime)) {\n let date = dateEnv.add(dayStart, slatTime)\n let isLabeled = wholeDivideDurations(slatIterator, labelInterval) !== null\n\n metas.push({\n date,\n time: slatTime,\n key: date.toISOString(), // we can't use the isoTimeStr for uniqueness when minTime/maxTime beyone 0h/24h\n isoTimeStr: formatIsoTimeString(date),\n isLabeled,\n })\n\n slatTime = addDurations(slatTime, slotDuration)\n slatIterator = addDurations(slatIterator, slotDuration)\n }\n\n return metas\n}\n\n// Computes an automatic value for slotLabelInterval\nfunction computeLabelInterval(slotDuration) {\n let i\n let labelInterval\n let slotsPerLabel\n\n // find the smallest stock label interval that results in more than one slots-per-label\n for (i = STOCK_SUB_DURATIONS.length - 1; i >= 0; i -= 1) {\n labelInterval = createDuration(STOCK_SUB_DURATIONS[i])\n slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration)\n if (slotsPerLabel !== null && slotsPerLabel > 1) {\n return labelInterval\n }\n }\n\n return slotDuration // fall back\n}\n","import {\n createElement,\n DateProfileGenerator, DateProfile,\n DayHeader,\n DaySeriesModel,\n DayTableModel,\n memoize,\n ChunkContentCallbackArgs,\n} from '@fullcalendar/common'\nimport { DayTable } from '@fullcalendar/daygrid'\nimport { TimeColsView } from './TimeColsView'\nimport { DayTimeCols } from './DayTimeCols'\nimport { buildSlatMetas } from './time-slat-meta'\n\nexport class DayTimeColsView extends TimeColsView {\n private buildTimeColsModel = memoize(buildTimeColsModel)\n private buildSlatMetas = memoize(buildSlatMetas)\n\n render() {\n let { options, dateEnv, dateProfileGenerator } = this.context\n let { props } = this\n let { dateProfile } = props\n let dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator)\n let splitProps = this.allDaySplitter.splitProps(props)\n let slatMetas = this.buildSlatMetas(\n dateProfile.slotMinTime,\n dateProfile.slotMaxTime,\n options.slotLabelInterval,\n options.slotDuration,\n dateEnv,\n )\n let { dayMinWidth } = options\n let hasAttachedAxis = !dayMinWidth\n let hasDetachedAxis = dayMinWidth\n\n let headerContent = options.dayHeaders && (\n \n )\n\n let allDayContent = (options.allDaySlot !== false) && ((contentArg: ChunkContentCallbackArgs) => (\n \n ))\n\n let timeGridContent = (contentArg: ChunkContentCallbackArgs) => (\n \n )\n\n return hasDetachedAxis\n ? this.renderHScrollLayout(\n headerContent,\n allDayContent,\n timeGridContent,\n dayTableModel.colCnt,\n dayMinWidth,\n slatMetas,\n this.state.slatCoords,\n )\n : this.renderSimpleLayout(\n headerContent,\n allDayContent,\n timeGridContent,\n )\n }\n}\n\nexport function buildTimeColsModel(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator)\n\n return new DayTableModel(daySeries, false)\n}\n","import { config, elementClosest, Emitter, PointerDragEvent } from '@fullcalendar/common'\n\nconfig.touchMouseIgnoreWait = 500\n\nlet ignoreMouseDepth = 0\nlet listenerCnt = 0\nlet isWindowTouchMoveCancelled = false\n\n/*\nUses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\nTracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\nAlso, tracks if there was touch-scrolling.\nAlso, can prevent touch-scrolling from happening.\nAlso, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\nemits:\n- pointerdown\n- pointermove\n- pointerup\n*/\nexport class PointerDragging {\n containerEl: EventTarget\n subjectEl: HTMLElement | null = null\n emitter: Emitter\n\n // options that can be directly assigned by caller\n selector: string = '' // will cause subjectEl in all emitted events to be this element\n handleSelector: string = ''\n shouldIgnoreMove: boolean = false\n shouldWatchScroll: boolean = true // for simulating pointermove on scroll\n\n // internal states\n isDragging: boolean = false\n isTouchDragging: boolean = false\n wasTouchScroll: boolean = false\n origPageX: number\n origPageY: number\n prevPageX: number\n prevPageY: number\n prevScrollX: number // at time of last pointer pageX/pageY capture\n prevScrollY: number // \"\n\n constructor(containerEl: EventTarget) {\n this.containerEl = containerEl\n this.emitter = new Emitter()\n containerEl.addEventListener('mousedown', this.handleMouseDown as EventListener)\n containerEl.addEventListener('touchstart', this.handleTouchStart as EventListener, { passive: true })\n listenerCreated()\n }\n\n destroy() {\n this.containerEl.removeEventListener('mousedown', this.handleMouseDown as EventListener)\n this.containerEl.removeEventListener('touchstart', this.handleTouchStart as EventListener, { passive: true } as AddEventListenerOptions)\n listenerDestroyed()\n }\n\n tryStart(ev: UIEvent): boolean {\n let subjectEl = this.querySubjectEl(ev)\n let downEl = ev.target as HTMLElement\n\n if (\n subjectEl &&\n (!this.handleSelector || elementClosest(downEl, this.handleSelector))\n ) {\n this.subjectEl = subjectEl\n this.isDragging = true // do this first so cancelTouchScroll will work\n this.wasTouchScroll = false\n\n return true\n }\n\n return false\n }\n\n cleanup() {\n isWindowTouchMoveCancelled = false\n this.isDragging = false\n this.subjectEl = null\n // keep wasTouchScroll around for later access\n this.destroyScrollWatch()\n }\n\n querySubjectEl(ev: UIEvent): HTMLElement {\n if (this.selector) {\n return elementClosest(ev.target as HTMLElement, this.selector)\n }\n return this.containerEl as HTMLElement\n }\n\n // Mouse\n // ----------------------------------------------------------------------------------------------------\n\n handleMouseDown = (ev: MouseEvent) => {\n if (\n !this.shouldIgnoreMouse() &&\n isPrimaryMouseButton(ev) &&\n this.tryStart(ev)\n ) {\n let pev = this.createEventFromMouse(ev, true)\n this.emitter.trigger('pointerdown', pev)\n this.initScrollWatch(pev)\n\n if (!this.shouldIgnoreMove) {\n document.addEventListener('mousemove', this.handleMouseMove)\n }\n\n document.addEventListener('mouseup', this.handleMouseUp)\n }\n }\n\n handleMouseMove = (ev: MouseEvent) => {\n let pev = this.createEventFromMouse(ev)\n this.recordCoords(pev)\n this.emitter.trigger('pointermove', pev)\n }\n\n handleMouseUp = (ev: MouseEvent) => {\n document.removeEventListener('mousemove', this.handleMouseMove)\n document.removeEventListener('mouseup', this.handleMouseUp)\n\n this.emitter.trigger('pointerup', this.createEventFromMouse(ev))\n\n this.cleanup() // call last so that pointerup has access to props\n }\n\n shouldIgnoreMouse() {\n return ignoreMouseDepth || this.isTouchDragging\n }\n\n // Touch\n // ----------------------------------------------------------------------------------------------------\n\n handleTouchStart = (ev: TouchEvent) => {\n if (this.tryStart(ev)) {\n this.isTouchDragging = true\n\n let pev = this.createEventFromTouch(ev, true)\n this.emitter.trigger('pointerdown', pev)\n this.initScrollWatch(pev)\n\n // unlike mouse, need to attach to target, not document\n // https://stackoverflow.com/a/45760014\n let targetEl = ev.target as HTMLElement\n\n if (!this.shouldIgnoreMove) {\n targetEl.addEventListener('touchmove', this.handleTouchMove)\n }\n\n targetEl.addEventListener('touchend', this.handleTouchEnd)\n targetEl.addEventListener('touchcancel', this.handleTouchEnd) // treat it as a touch end\n\n // attach a handler to get called when ANY scroll action happens on the page.\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n // http://stackoverflow.com/a/32954565/96342\n window.addEventListener(\n 'scroll',\n this.handleTouchScroll,\n true, // useCapture\n )\n }\n }\n\n handleTouchMove = (ev: TouchEvent) => {\n let pev = this.createEventFromTouch(ev)\n this.recordCoords(pev)\n this.emitter.trigger('pointermove', pev)\n }\n\n handleTouchEnd = (ev: TouchEvent) => {\n if (this.isDragging) { // done to guard against touchend followed by touchcancel\n let targetEl = ev.target as HTMLElement\n\n targetEl.removeEventListener('touchmove', this.handleTouchMove)\n targetEl.removeEventListener('touchend', this.handleTouchEnd)\n targetEl.removeEventListener('touchcancel', this.handleTouchEnd)\n window.removeEventListener('scroll', this.handleTouchScroll, true) // useCaptured=true\n\n this.emitter.trigger('pointerup', this.createEventFromTouch(ev))\n\n this.cleanup() // call last so that pointerup has access to props\n this.isTouchDragging = false\n startIgnoringMouse()\n }\n }\n\n handleTouchScroll = () => {\n this.wasTouchScroll = true\n }\n\n // can be called by user of this class, to cancel touch-based scrolling for the current drag\n cancelTouchScroll() {\n if (this.isDragging) {\n isWindowTouchMoveCancelled = true\n }\n }\n\n // Scrolling that simulates pointermoves\n // ----------------------------------------------------------------------------------------------------\n\n initScrollWatch(ev: PointerDragEvent) {\n if (this.shouldWatchScroll) {\n this.recordCoords(ev)\n window.addEventListener('scroll', this.handleScroll, true) // useCapture=true\n }\n }\n\n recordCoords(ev: PointerDragEvent) {\n if (this.shouldWatchScroll) {\n this.prevPageX = (ev as any).pageX\n this.prevPageY = (ev as any).pageY\n this.prevScrollX = window.pageXOffset\n this.prevScrollY = window.pageYOffset\n }\n }\n\n handleScroll = (ev: UIEvent) => {\n if (!this.shouldIgnoreMove) {\n let pageX = (window.pageXOffset - this.prevScrollX) + this.prevPageX\n let pageY = (window.pageYOffset - this.prevScrollY) + this.prevPageY\n\n this.emitter.trigger('pointermove', {\n origEvent: ev,\n isTouch: this.isTouchDragging,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX: pageX - this.origPageX,\n deltaY: pageY - this.origPageY,\n } as PointerDragEvent)\n }\n }\n\n destroyScrollWatch() {\n if (this.shouldWatchScroll) {\n window.removeEventListener('scroll', this.handleScroll, true) // useCaptured=true\n }\n }\n\n // Event Normalization\n // ----------------------------------------------------------------------------------------------------\n\n createEventFromMouse(ev: MouseEvent, isFirst?: boolean): PointerDragEvent {\n let deltaX = 0\n let deltaY = 0\n\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = ev.pageX\n this.origPageY = ev.pageY\n } else {\n deltaX = ev.pageX - this.origPageX\n deltaY = ev.pageY - this.origPageY\n }\n\n return {\n origEvent: ev,\n isTouch: false,\n subjectEl: this.subjectEl,\n pageX: ev.pageX,\n pageY: ev.pageY,\n deltaX,\n deltaY,\n }\n }\n\n createEventFromTouch(ev: TouchEvent, isFirst?: boolean): PointerDragEvent {\n let touches = ev.touches\n let pageX\n let pageY\n let deltaX = 0\n let deltaY = 0\n\n // if touch coords available, prefer,\n // because FF would give bad ev.pageX ev.pageY\n if (touches && touches.length) {\n pageX = touches[0].pageX\n pageY = touches[0].pageY\n } else {\n pageX = (ev as any).pageX\n pageY = (ev as any).pageY\n }\n\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = pageX\n this.origPageY = pageY\n } else {\n deltaX = pageX - this.origPageX\n deltaY = pageY - this.origPageY\n }\n\n return {\n origEvent: ev,\n isTouch: true,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX,\n deltaY,\n }\n }\n}\n\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\nfunction isPrimaryMouseButton(ev: MouseEvent) {\n return ev.button === 0 && !ev.ctrlKey\n}\n\n// Ignoring fake mouse events generated by touch\n// ----------------------------------------------------------------------------------------------------\n\nfunction startIgnoringMouse() { // can be made non-class function\n ignoreMouseDepth += 1\n\n setTimeout(() => {\n ignoreMouseDepth -= 1\n }, config.touchMouseIgnoreWait)\n}\n\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\n\nfunction listenerCreated() {\n listenerCnt += 1\n\n if (listenerCnt === 1) {\n window.addEventListener('touchmove', onWindowTouchMove, { passive: false })\n }\n}\n\nfunction listenerDestroyed() {\n listenerCnt -= 1\n\n if (!listenerCnt) {\n window.removeEventListener('touchmove', onWindowTouchMove, { passive: false } as AddEventListenerOptions)\n }\n}\n\nfunction onWindowTouchMove(ev: UIEvent) {\n if (isWindowTouchMoveCancelled) {\n ev.preventDefault()\n }\n}\n","import { removeElement, applyStyle, whenTransitionDone, Rect } from '@fullcalendar/common'\n\n/*\nAn effect in which an element follows the movement of a pointer across the screen.\nThe moving element is a clone of some other element.\nMust call start + handleMove + stop.\n*/\nexport class ElementMirror {\n isVisible: boolean = false // must be explicitly enabled\n origScreenX?: number\n origScreenY?: number\n deltaX?: number\n deltaY?: number\n sourceEl: HTMLElement | null = null\n mirrorEl: HTMLElement | null = null\n sourceElRect: Rect | null = null // screen coords relative to viewport\n\n // options that can be set directly by caller\n parentNode: HTMLElement = document.body // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues\n zIndex: number = 9999\n revertDuration: number = 0\n\n start(sourceEl: HTMLElement, pageX: number, pageY: number) {\n this.sourceEl = sourceEl\n this.sourceElRect = this.sourceEl.getBoundingClientRect()\n this.origScreenX = pageX - window.pageXOffset\n this.origScreenY = pageY - window.pageYOffset\n this.deltaX = 0\n this.deltaY = 0\n this.updateElPosition()\n }\n\n handleMove(pageX: number, pageY: number) {\n this.deltaX = (pageX - window.pageXOffset) - this.origScreenX!\n this.deltaY = (pageY - window.pageYOffset) - this.origScreenY!\n this.updateElPosition()\n }\n\n // can be called before start\n setIsVisible(bool: boolean) {\n if (bool) {\n if (!this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = ''\n }\n\n this.isVisible = bool // needs to happen before updateElPosition\n this.updateElPosition() // because was not updating the position while invisible\n }\n } else if (this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = 'none'\n }\n\n this.isVisible = bool\n }\n }\n\n // always async\n stop(needsRevertAnimation: boolean, callback: () => void) {\n let done = () => {\n this.cleanup()\n callback()\n }\n\n if (\n needsRevertAnimation &&\n this.mirrorEl &&\n this.isVisible &&\n this.revertDuration && // if 0, transition won't work\n (this.deltaX || this.deltaY) // if same coords, transition won't work\n ) {\n this.doRevertAnimation(done, this.revertDuration)\n } else {\n setTimeout(done, 0)\n }\n }\n\n doRevertAnimation(callback: () => void, revertDuration: number) {\n let mirrorEl = this.mirrorEl!\n let finalSourceElRect = this.sourceEl!.getBoundingClientRect() // because autoscrolling might have happened\n\n mirrorEl.style.transition =\n 'top ' + revertDuration + 'ms,' +\n 'left ' + revertDuration + 'ms'\n\n applyStyle(mirrorEl, {\n left: finalSourceElRect.left,\n top: finalSourceElRect.top,\n })\n\n whenTransitionDone(mirrorEl, () => {\n mirrorEl.style.transition = ''\n callback()\n })\n }\n\n cleanup() {\n if (this.mirrorEl) {\n removeElement(this.mirrorEl)\n this.mirrorEl = null\n }\n\n this.sourceEl = null\n }\n\n updateElPosition() {\n if (this.sourceEl && this.isVisible) {\n applyStyle(this.getMirrorEl(), {\n left: this.sourceElRect!.left + this.deltaX!,\n top: this.sourceElRect!.top + this.deltaY!,\n })\n }\n }\n\n getMirrorEl(): HTMLElement {\n let sourceElRect = this.sourceElRect!\n let mirrorEl = this.mirrorEl\n\n if (!mirrorEl) {\n mirrorEl = this.mirrorEl = this.sourceEl!.cloneNode(true) as HTMLElement // cloneChildren=true\n\n // we don't want long taps or any mouse interaction causing selection/menus.\n // would use preventSelection(), but that prevents selectstart, causing problems.\n mirrorEl.classList.add('fc-unselectable')\n\n mirrorEl.classList.add('fc-event-dragging')\n\n applyStyle(mirrorEl, {\n position: 'fixed',\n zIndex: this.zIndex,\n visibility: '', // in case original element was hidden by the drag effect\n boxSizing: 'border-box', // for easy width/height\n width: sourceElRect.right - sourceElRect.left, // explicit height in case there was a 'right' value\n height: sourceElRect.bottom - sourceElRect.top, // explicit width in case there was a 'bottom' value\n right: 'auto', // erase and set width instead\n bottom: 'auto', // erase and set height instead\n margin: 0,\n })\n\n this.parentNode.appendChild(mirrorEl)\n }\n\n return mirrorEl\n }\n}\n","import { Rect, ScrollController } from '@fullcalendar/common'\n\n/*\nIs a cache for a given element's scroll information (all the info that ScrollController stores)\nin addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\nThe cache can be in one of two modes:\n- doesListening:false - ignores when the container is scrolled by someone else\n- doesListening:true - watch for scrolling and update the cache\n*/\nexport abstract class ScrollGeomCache extends ScrollController {\n clientRect: Rect\n origScrollTop: number\n origScrollLeft: number\n\n protected scrollController: ScrollController\n protected doesListening: boolean\n protected scrollTop: number\n protected scrollLeft: number\n protected scrollWidth: number\n protected scrollHeight: number\n protected clientWidth: number\n protected clientHeight: number\n\n constructor(scrollController: ScrollController, doesListening: boolean) {\n super()\n this.scrollController = scrollController\n this.doesListening = doesListening\n this.scrollTop = this.origScrollTop = scrollController.getScrollTop()\n this.scrollLeft = this.origScrollLeft = scrollController.getScrollLeft()\n this.scrollWidth = scrollController.getScrollWidth()\n this.scrollHeight = scrollController.getScrollHeight()\n this.clientWidth = scrollController.getClientWidth()\n this.clientHeight = scrollController.getClientHeight()\n this.clientRect = this.computeClientRect() // do last in case it needs cached values\n\n if (this.doesListening) {\n this.getEventTarget().addEventListener('scroll', this.handleScroll)\n }\n }\n\n abstract getEventTarget(): EventTarget\n abstract computeClientRect(): Rect\n\n destroy() {\n if (this.doesListening) {\n this.getEventTarget().removeEventListener('scroll', this.handleScroll)\n }\n }\n\n handleScroll = () => {\n this.scrollTop = this.scrollController.getScrollTop()\n this.scrollLeft = this.scrollController.getScrollLeft()\n this.handleScrollChange()\n }\n\n getScrollTop() {\n return this.scrollTop\n }\n\n getScrollLeft() {\n return this.scrollLeft\n }\n\n setScrollTop(top: number) {\n this.scrollController.setScrollTop(top)\n\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0)\n\n this.handleScrollChange()\n }\n }\n\n setScrollLeft(top: number) {\n this.scrollController.setScrollLeft(top)\n\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0)\n\n this.handleScrollChange()\n }\n }\n\n getClientWidth() {\n return this.clientWidth\n }\n\n getClientHeight() {\n return this.clientHeight\n }\n\n getScrollWidth() {\n return this.scrollWidth\n }\n\n getScrollHeight() {\n return this.scrollHeight\n }\n\n handleScrollChange() {\n }\n}\n","import { computeInnerRect, ElementScrollController } from '@fullcalendar/common'\nimport { ScrollGeomCache } from './ScrollGeomCache'\n\nexport class ElementScrollGeomCache extends ScrollGeomCache {\n constructor(el: HTMLElement, doesListening: boolean) {\n super(new ElementScrollController(el), doesListening)\n }\n\n getEventTarget(): EventTarget {\n return (this.scrollController as ElementScrollController).el\n }\n\n computeClientRect() {\n return computeInnerRect((this.scrollController as ElementScrollController).el)\n }\n}\n","import { Rect, WindowScrollController } from '@fullcalendar/common'\nimport { ScrollGeomCache } from './ScrollGeomCache'\n\nexport class WindowScrollGeomCache extends ScrollGeomCache {\n constructor(doesListening: boolean) {\n super(new WindowScrollController(), doesListening)\n }\n\n getEventTarget(): EventTarget {\n return window\n }\n\n computeClientRect(): Rect {\n return {\n left: this.scrollLeft,\n right: this.scrollLeft + this.clientWidth,\n top: this.scrollTop,\n bottom: this.scrollTop + this.clientHeight,\n }\n }\n\n // the window is the only scroll object that changes it's rectangle relative\n // to the document's topleft as it scrolls\n handleScrollChange() {\n this.clientRect = this.computeClientRect()\n }\n}\n","import { getElRoot } from '@fullcalendar/common'\nimport { ScrollGeomCache } from '../ScrollGeomCache'\nimport { ElementScrollGeomCache } from '../ElementScrollGeomCache'\nimport { WindowScrollGeomCache } from '../WindowScrollGeomCache'\n\ninterface Edge {\n scrollCache: ScrollGeomCache\n name: 'top' | 'left' | 'right' | 'bottom'\n distance: number // how many pixels the current pointer is from the edge\n}\n\n// If available we are using native \"performance\" API instead of \"Date\"\n// Read more about it on MDN:\n// https://developer.mozilla.org/en-US/docs/Web/API/Performance\nconst getTime = typeof performance === 'function' ? (performance as any).now : Date.now\n\n/*\nFor a pointer interaction, automatically scrolls certain scroll containers when the pointer\napproaches the edge.\n\nThe caller must call start + handleMove + stop.\n*/\nexport class AutoScroller {\n // options that can be set by caller\n isEnabled: boolean = true\n scrollQuery: (Window | string)[] = [window, '.fc-scroller']\n edgeThreshold: number = 50 // pixels\n maxVelocity: number = 300 // pixels per second\n\n // internal state\n pointerScreenX: number | null = null\n pointerScreenY: number | null = null\n isAnimating: boolean = false\n scrollCaches: ScrollGeomCache[] | null = null\n msSinceRequest?: number\n\n // protect against the initial pointerdown being too close to an edge and starting the scroll\n everMovedUp: boolean = false\n everMovedDown: boolean = false\n everMovedLeft: boolean = false\n everMovedRight: boolean = false\n\n start(pageX: number, pageY: number, scrollStartEl: HTMLElement) {\n if (this.isEnabled) {\n this.scrollCaches = this.buildCaches(scrollStartEl)\n this.pointerScreenX = null\n this.pointerScreenY = null\n this.everMovedUp = false\n this.everMovedDown = false\n this.everMovedLeft = false\n this.everMovedRight = false\n this.handleMove(pageX, pageY)\n }\n }\n\n handleMove(pageX: number, pageY: number) {\n if (this.isEnabled) {\n let pointerScreenX = pageX - window.pageXOffset\n let pointerScreenY = pageY - window.pageYOffset\n\n let yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY\n let xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX\n\n if (yDelta < 0) {\n this.everMovedUp = true\n } else if (yDelta > 0) {\n this.everMovedDown = true\n }\n\n if (xDelta < 0) {\n this.everMovedLeft = true\n } else if (xDelta > 0) {\n this.everMovedRight = true\n }\n\n this.pointerScreenX = pointerScreenX\n this.pointerScreenY = pointerScreenY\n\n if (!this.isAnimating) {\n this.isAnimating = true\n this.requestAnimation(getTime())\n }\n }\n }\n\n stop() {\n if (this.isEnabled) {\n this.isAnimating = false // will stop animation\n\n for (let scrollCache of this.scrollCaches!) {\n scrollCache.destroy()\n }\n\n this.scrollCaches = null\n }\n }\n\n requestAnimation(now: number) {\n this.msSinceRequest = now\n requestAnimationFrame(this.animate)\n }\n\n private animate = () => {\n if (this.isAnimating) { // wasn't cancelled between animation calls\n let edge = this.computeBestEdge(\n this.pointerScreenX! + window.pageXOffset,\n this.pointerScreenY! + window.pageYOffset,\n )\n\n if (edge) {\n let now = getTime()\n this.handleSide(edge, (now - this.msSinceRequest!) / 1000)\n this.requestAnimation(now)\n } else {\n this.isAnimating = false // will stop animation\n }\n }\n }\n\n private handleSide(edge: Edge, seconds: number) {\n let { scrollCache } = edge\n let { edgeThreshold } = this\n let invDistance = edgeThreshold - edge.distance\n let velocity = // the closer to the edge, the faster we scroll\n ((invDistance * invDistance) / (edgeThreshold * edgeThreshold)) * // quadratic\n this.maxVelocity * seconds\n let sign = 1\n\n switch (edge.name) {\n case 'left':\n sign = -1\n // falls through\n case 'right':\n scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign)\n break\n\n case 'top':\n sign = -1\n // falls through\n case 'bottom':\n scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign)\n break\n }\n }\n\n // left/top are relative to document topleft\n private computeBestEdge(left: number, top: number): Edge | null {\n let { edgeThreshold } = this\n let bestSide: Edge | null = null\n\n for (let scrollCache of this.scrollCaches!) {\n let rect = scrollCache.clientRect\n let leftDist = left - rect.left\n let rightDist = rect.right - left\n let topDist = top - rect.top\n let bottomDist = rect.bottom - top\n\n // completely within the rect?\n if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n if (\n topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&\n (!bestSide || bestSide.distance > topDist)\n ) {\n bestSide = { scrollCache, name: 'top', distance: topDist }\n }\n\n if (\n bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n (!bestSide || bestSide.distance > bottomDist)\n ) {\n bestSide = { scrollCache, name: 'bottom', distance: bottomDist }\n }\n\n if (\n leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n (!bestSide || bestSide.distance > leftDist)\n ) {\n bestSide = { scrollCache, name: 'left', distance: leftDist }\n }\n\n if (\n rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n (!bestSide || bestSide.distance > rightDist)\n ) {\n bestSide = { scrollCache, name: 'right', distance: rightDist }\n }\n }\n }\n\n return bestSide\n }\n\n private buildCaches(scrollStartEl: HTMLElement) {\n return this.queryScrollEls(scrollStartEl).map((el) => {\n if (el === window) {\n return new WindowScrollGeomCache(false) // false = don't listen to user-generated scrolls\n }\n return new ElementScrollGeomCache(el, false) // false = don't listen to user-generated scrolls\n })\n }\n\n private queryScrollEls(scrollStartEl: HTMLElement) {\n let els = []\n\n for (let query of this.scrollQuery) {\n if (typeof query === 'object') {\n els.push(query)\n } else {\n els.push(...Array.prototype.slice.call(\n getElRoot(scrollStartEl).querySelectorAll(query),\n ))\n }\n }\n\n return els\n }\n}\n","import {\n PointerDragEvent,\n preventSelection,\n allowSelection,\n preventContextMenu,\n allowContextMenu,\n ElementDragging,\n} from '@fullcalendar/common'\nimport { PointerDragging } from './PointerDragging'\nimport { ElementMirror } from './ElementMirror'\nimport { AutoScroller } from './AutoScroller'\n\n/*\nMonitors dragging on an element. Has a number of high-level features:\n- minimum distance required before dragging\n- minimum wait time (\"delay\") before dragging\n- a mirror element that follows the pointer\n*/\nexport class FeaturefulElementDragging extends ElementDragging {\n pointer: PointerDragging\n mirror: ElementMirror\n autoScroller: AutoScroller\n\n // options that can be directly set by caller\n // the caller can also set the PointerDragging's options as well\n delay: number | null = null\n minDistance: number = 0\n touchScrollAllowed: boolean = true // prevents drag from starting and blocks scrolling during drag\n\n mirrorNeedsRevert: boolean = false\n isInteracting: boolean = false // is the user validly moving the pointer? lasts until pointerup\n isDragging: boolean = false // is it INTENTFULLY dragging? lasts until after revert animation\n isDelayEnded: boolean = false\n isDistanceSurpassed: boolean = false\n delayTimeoutId: number | null = null\n\n constructor(private containerEl: HTMLElement, selector?: string) {\n super(containerEl)\n\n let pointer = this.pointer = new PointerDragging(containerEl)\n pointer.emitter.on('pointerdown', this.onPointerDown)\n pointer.emitter.on('pointermove', this.onPointerMove)\n pointer.emitter.on('pointerup', this.onPointerUp)\n\n if (selector) {\n pointer.selector = selector\n }\n\n this.mirror = new ElementMirror()\n this.autoScroller = new AutoScroller()\n }\n\n destroy() {\n this.pointer.destroy()\n\n // HACK: simulate a pointer-up to end the current drag\n // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)\n this.onPointerUp({} as any)\n }\n\n onPointerDown = (ev: PointerDragEvent) => {\n if (!this.isDragging) { // so new drag doesn't happen while revert animation is going\n this.isInteracting = true\n this.isDelayEnded = false\n this.isDistanceSurpassed = false\n\n preventSelection(document.body)\n preventContextMenu(document.body)\n\n // prevent links from being visited if there's an eventual drag.\n // also prevents selection in older browsers (maybe?).\n // not necessary for touch, besides, browser would complain about passiveness.\n if (!ev.isTouch) {\n ev.origEvent.preventDefault()\n }\n\n this.emitter.trigger('pointerdown', ev)\n\n if (\n this.isInteracting && // not destroyed via pointerdown handler\n !this.pointer.shouldIgnoreMove\n ) {\n // actions related to initiating dragstart+dragmove+dragend...\n\n this.mirror.setIsVisible(false) // reset. caller must set-visible\n this.mirror.start(ev.subjectEl as HTMLElement, ev.pageX, ev.pageY) // must happen on first pointer down\n\n this.startDelay(ev)\n\n if (!this.minDistance) {\n this.handleDistanceSurpassed(ev)\n }\n }\n }\n }\n\n onPointerMove = (ev: PointerDragEvent) => {\n if (this.isInteracting) {\n this.emitter.trigger('pointermove', ev)\n\n if (!this.isDistanceSurpassed) {\n let minDistance = this.minDistance\n let distanceSq // current distance from the origin, squared\n let { deltaX, deltaY } = ev\n\n distanceSq = deltaX * deltaX + deltaY * deltaY\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\n this.handleDistanceSurpassed(ev)\n }\n }\n\n if (this.isDragging) {\n // a real pointer move? (not one simulated by scrolling)\n if (ev.origEvent.type !== 'scroll') {\n this.mirror.handleMove(ev.pageX, ev.pageY)\n this.autoScroller.handleMove(ev.pageX, ev.pageY)\n }\n\n this.emitter.trigger('dragmove', ev)\n }\n }\n }\n\n onPointerUp = (ev: PointerDragEvent) => {\n if (this.isInteracting) {\n this.isInteracting = false\n\n allowSelection(document.body)\n allowContextMenu(document.body)\n\n this.emitter.trigger('pointerup', ev) // can potentially set mirrorNeedsRevert\n\n if (this.isDragging) {\n this.autoScroller.stop()\n this.tryStopDrag(ev) // which will stop the mirror\n }\n\n if (this.delayTimeoutId) {\n clearTimeout(this.delayTimeoutId)\n this.delayTimeoutId = null\n }\n }\n }\n\n startDelay(ev: PointerDragEvent) {\n if (typeof this.delay === 'number') {\n this.delayTimeoutId = setTimeout(() => {\n this.delayTimeoutId = null\n this.handleDelayEnd(ev)\n }, this.delay) as any // not assignable to number!\n } else {\n this.handleDelayEnd(ev)\n }\n }\n\n handleDelayEnd(ev: PointerDragEvent) {\n this.isDelayEnded = true\n this.tryStartDrag(ev)\n }\n\n handleDistanceSurpassed(ev: PointerDragEvent) {\n this.isDistanceSurpassed = true\n this.tryStartDrag(ev)\n }\n\n tryStartDrag(ev: PointerDragEvent) {\n if (this.isDelayEnded && this.isDistanceSurpassed) {\n if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n this.isDragging = true\n this.mirrorNeedsRevert = false\n\n this.autoScroller.start(ev.pageX, ev.pageY, this.containerEl)\n this.emitter.trigger('dragstart', ev)\n\n if (this.touchScrollAllowed === false) {\n this.pointer.cancelTouchScroll()\n }\n }\n }\n }\n\n tryStopDrag(ev: PointerDragEvent) {\n // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n // that come from the document to fire beforehand. much more convenient this way.\n this.mirror.stop(\n this.mirrorNeedsRevert,\n this.stopDrag.bind(this, ev), // bound with args\n )\n }\n\n stopDrag(ev: PointerDragEvent) {\n this.isDragging = false\n this.emitter.trigger('dragend', ev)\n }\n\n // fill in the implementations...\n\n setIgnoreMove(bool: boolean) {\n this.pointer.shouldIgnoreMove = bool\n }\n\n setMirrorIsVisible(bool: boolean) {\n this.mirror.setIsVisible(bool)\n }\n\n setMirrorNeedsRevert(bool: boolean) {\n this.mirrorNeedsRevert = bool\n }\n\n setAutoScrollEnabled(bool: boolean) {\n this.autoScroller.isEnabled = bool\n }\n}\n","import {\n getClippingParents, computeRect,\n pointInsideRect, Rect,\n} from '@fullcalendar/common'\nimport { ElementScrollGeomCache } from './ElementScrollGeomCache'\n\n/*\nWhen this class is instantiated, it records the offset of an element (relative to the document topleft),\nand continues to monitor scrolling, updating the cached coordinates if it needs to.\nDoes not access the DOM after instantiation, so highly performant.\n\nAlso keeps track of all scrolling/overflow:hidden containers that are parents of the given element\nand an determine if a given point is inside the combined clipping rectangle.\n*/\nexport class OffsetTracker { // ElementOffsetTracker\n scrollCaches: ElementScrollGeomCache[]\n origRect: Rect\n\n constructor(el: HTMLElement) {\n this.origRect = computeRect(el)\n\n // will work fine for divs that have overflow:hidden\n this.scrollCaches = getClippingParents(el).map(\n (scrollEl) => new ElementScrollGeomCache(scrollEl, true), // listen=true\n )\n }\n\n destroy() {\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy()\n }\n }\n\n computeLeft() {\n let left = this.origRect.left\n\n for (let scrollCache of this.scrollCaches) {\n left += scrollCache.origScrollLeft - scrollCache.getScrollLeft()\n }\n\n return left\n }\n\n computeTop() {\n let top = this.origRect.top\n\n for (let scrollCache of this.scrollCaches) {\n top += scrollCache.origScrollTop - scrollCache.getScrollTop()\n }\n\n return top\n }\n\n isWithinClipping(pageX: number, pageY: number): boolean {\n let point = { left: pageX, top: pageY }\n\n for (let scrollCache of this.scrollCaches) {\n if (\n !isIgnoredClipping(scrollCache.getEventTarget()) &&\n !pointInsideRect(point, scrollCache.clientRect)\n ) {\n return false\n }\n }\n\n return true\n }\n}\n\n// certain clipping containers should never constrain interactions, like and \n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node: EventTarget) {\n let tagName = (node as HTMLElement).tagName\n\n return tagName === 'HTML' || tagName === 'BODY'\n}\n","import {\n Emitter, PointerDragEvent,\n isDateSpansEqual,\n computeRect,\n constrainPoint, intersectRects, getRectCenter, diffPoints, Point,\n rangeContainsRange,\n Hit,\n InteractionSettingsStore,\n mapHash,\n ElementDragging,\n} from '@fullcalendar/common'\nimport { OffsetTracker } from '../OffsetTracker'\n\n/*\nTracks movement over multiple droppable areas (aka \"hits\")\nthat exist in one or more DateComponents.\nRelies on an existing draggable.\n\nemits:\n- pointerdown\n- dragstart\n- hitchange - fires initially, even if not over a hit\n- pointerup\n- (hitchange - again, to null, if ended over a hit)\n- dragend\n*/\nexport class HitDragging {\n droppableStore: InteractionSettingsStore\n dragging: ElementDragging\n emitter: Emitter\n\n // options that can be set by caller\n useSubjectCenter: boolean = false\n requireInitial: boolean = true // if doesn't start out on a hit, won't emit any events\n\n // internal state\n offsetTrackers: { [componentUid: string]: OffsetTracker }\n initialHit: Hit | null = null\n movingHit: Hit | null = null\n finalHit: Hit | null = null // won't ever be populated if shouldIgnoreMove\n coordAdjust?: Point\n\n constructor(dragging: ElementDragging, droppableStore: InteractionSettingsStore) {\n this.droppableStore = droppableStore\n\n dragging.emitter.on('pointerdown', this.handlePointerDown)\n dragging.emitter.on('dragstart', this.handleDragStart)\n dragging.emitter.on('dragmove', this.handleDragMove)\n dragging.emitter.on('pointerup', this.handlePointerUp)\n dragging.emitter.on('dragend', this.handleDragEnd)\n\n this.dragging = dragging\n this.emitter = new Emitter()\n }\n\n handlePointerDown = (ev: PointerDragEvent) => {\n let { dragging } = this\n\n this.initialHit = null\n this.movingHit = null\n this.finalHit = null\n\n this.prepareHits()\n this.processFirstCoord(ev)\n\n if (this.initialHit || !this.requireInitial) {\n dragging.setIgnoreMove(false)\n\n // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n this.emitter.trigger('pointerdown', ev)\n } else {\n dragging.setIgnoreMove(true)\n }\n }\n\n // sets initialHit\n // sets coordAdjust\n processFirstCoord(ev: PointerDragEvent) {\n let origPoint = { left: ev.pageX, top: ev.pageY }\n let adjustedPoint = origPoint\n let subjectEl = ev.subjectEl\n let subjectRect\n\n if (subjectEl instanceof HTMLElement) { // i.e. not a Document/ShadowRoot\n subjectRect = computeRect(subjectEl)\n adjustedPoint = constrainPoint(adjustedPoint, subjectRect)\n }\n\n let initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top)\n if (initialHit) {\n if (this.useSubjectCenter && subjectRect) {\n let slicedSubjectRect = intersectRects(subjectRect, initialHit.rect)\n if (slicedSubjectRect) {\n adjustedPoint = getRectCenter(slicedSubjectRect)\n }\n }\n\n this.coordAdjust = diffPoints(adjustedPoint, origPoint)\n } else {\n this.coordAdjust = { left: 0, top: 0 }\n }\n }\n\n handleDragStart = (ev: PointerDragEvent) => {\n this.emitter.trigger('dragstart', ev)\n this.handleMove(ev, true) // force = fire even if initially null\n }\n\n handleDragMove = (ev: PointerDragEvent) => {\n this.emitter.trigger('dragmove', ev)\n this.handleMove(ev)\n }\n\n handlePointerUp = (ev: PointerDragEvent) => {\n this.releaseHits()\n this.emitter.trigger('pointerup', ev)\n }\n\n handleDragEnd = (ev: PointerDragEvent) => {\n if (this.movingHit) {\n this.emitter.trigger('hitupdate', null, true, ev)\n }\n\n this.finalHit = this.movingHit\n this.movingHit = null\n this.emitter.trigger('dragend', ev)\n }\n\n handleMove(ev: PointerDragEvent, forceHandle?: boolean) {\n let hit = this.queryHitForOffset(\n ev.pageX + this.coordAdjust!.left,\n ev.pageY + this.coordAdjust!.top,\n )\n\n if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n this.movingHit = hit\n this.emitter.trigger('hitupdate', hit, false, ev)\n }\n }\n\n prepareHits() {\n this.offsetTrackers = mapHash(this.droppableStore, (interactionSettings) => {\n interactionSettings.component.prepareHits()\n return new OffsetTracker(interactionSettings.el)\n })\n }\n\n releaseHits() {\n let { offsetTrackers } = this\n\n for (let id in offsetTrackers) {\n offsetTrackers[id].destroy()\n }\n\n this.offsetTrackers = {}\n }\n\n queryHitForOffset(offsetLeft: number, offsetTop: number): Hit | null {\n let { droppableStore, offsetTrackers } = this\n let bestHit: Hit | null = null\n\n for (let id in droppableStore) {\n let component = droppableStore[id].component\n let offsetTracker = offsetTrackers[id]\n\n if (\n offsetTracker && // wasn't destroyed mid-drag\n offsetTracker.isWithinClipping(offsetLeft, offsetTop)\n ) {\n let originLeft = offsetTracker.computeLeft()\n let originTop = offsetTracker.computeTop()\n let positionLeft = offsetLeft - originLeft\n let positionTop = offsetTop - originTop\n let { origRect } = offsetTracker\n let width = origRect.right - origRect.left\n let height = origRect.bottom - origRect.top\n\n if (\n // must be within the element's bounds\n positionLeft >= 0 && positionLeft < width &&\n positionTop >= 0 && positionTop < height\n ) {\n let hit = component.queryHit(positionLeft, positionTop, width, height)\n if (\n hit && (\n // make sure the hit is within activeRange, meaning it's not a dead cell\n rangeContainsRange(hit.dateProfile.activeRange, hit.dateSpan.range)\n ) &&\n (!bestHit || hit.layer > bestHit.layer)\n ) {\n hit.componentId = id\n hit.context = component.context\n\n // TODO: better way to re-orient rectangle\n hit.rect.left += originLeft\n hit.rect.right += originLeft\n hit.rect.top += originTop\n hit.rect.bottom += originTop\n\n bestHit = hit\n }\n }\n }\n }\n\n return bestHit\n }\n}\n\nexport function isHitsEqual(hit0: Hit | null, hit1: Hit | null): boolean {\n if (!hit0 && !hit1) {\n return true\n }\n\n if (Boolean(hit0) !== Boolean(hit1)) {\n return false\n }\n\n return isDateSpansEqual(hit0!.dateSpan, hit1!.dateSpan)\n}\n","import { DateSpan, CalendarContext, DatePointApi, DateEnv, ViewApi, EventApi } from '@fullcalendar/common'\nimport { __assign } from 'tslib'\n\nexport interface DropArg extends DatePointApi {\n draggedEl: HTMLElement\n jsEvent: MouseEvent\n view: ViewApi\n}\n\nexport type EventReceiveArg = EventReceiveLeaveArg\nexport type EventLeaveArg = EventReceiveLeaveArg\nexport interface EventReceiveLeaveArg { // will this become public?\n draggedEl: HTMLElement\n event: EventApi\n relatedEvents: EventApi[]\n revert: () => void\n view: ViewApi\n}\n\nexport function buildDatePointApiWithContext(dateSpan: DateSpan, context: CalendarContext) {\n let props = {} as DatePointApi\n\n for (let transform of context.pluginHooks.datePointTransforms) {\n __assign(props, transform(dateSpan, context))\n }\n\n __assign(props, buildDatePointApi(dateSpan, context.dateEnv))\n\n return props\n}\n\nexport function buildDatePointApi(span: DateSpan, dateEnv: DateEnv): DatePointApi {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay,\n }\n}\n","import {\n PointerDragEvent, Interaction, InteractionSettings, interactionSettingsToStore,\n DatePointApi,\n ViewApi,\n} from '@fullcalendar/common'\nimport { FeaturefulElementDragging } from '../dnd/FeaturefulElementDragging'\nimport { HitDragging, isHitsEqual } from './HitDragging'\nimport { buildDatePointApiWithContext } from '../utils'\n\nexport interface DateClickArg extends DatePointApi {\n dayEl: HTMLElement\n jsEvent: MouseEvent\n view: ViewApi\n}\n\n/*\nMonitors when the user clicks on a specific date/time of a component.\nA pointerdown+pointerup on the same \"hit\" constitutes a click.\n*/\nexport class DateClicking extends Interaction {\n dragging: FeaturefulElementDragging\n hitDragging: HitDragging\n\n constructor(settings: InteractionSettings) {\n super(settings)\n\n // we DO want to watch pointer moves because otherwise finalHit won't get populated\n this.dragging = new FeaturefulElementDragging(settings.el)\n this.dragging.autoScroller.isEnabled = false\n\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings))\n hitDragging.emitter.on('pointerdown', this.handlePointerDown)\n hitDragging.emitter.on('dragend', this.handleDragEnd)\n }\n\n destroy() {\n this.dragging.destroy()\n }\n\n handlePointerDown = (pev: PointerDragEvent) => {\n let { dragging } = this\n let downEl = pev.origEvent.target as HTMLElement\n\n // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n dragging.setIgnoreMove(\n !this.component.isValidDateDownEl(downEl),\n )\n }\n\n // won't even fire if moving was ignored\n handleDragEnd = (ev: PointerDragEvent) => {\n let { component } = this\n let { pointer } = this.dragging\n\n if (!pointer.wasTouchScroll) {\n let { initialHit, finalHit } = this.hitDragging\n\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n let { context } = component\n let arg: DateClickArg = {\n ...buildDatePointApiWithContext(initialHit.dateSpan, context),\n dayEl: initialHit.dayEl,\n jsEvent: ev.origEvent as MouseEvent,\n view: context.viewApi || context.calendarApi.view,\n }\n\n context.emitter.trigger('dateClick', arg)\n }\n }\n }\n}\n","import {\n compareNumbers, enableCursor, disableCursor, DateComponent, Hit,\n DateSpan, PointerDragEvent, dateSelectionJoinTransformer,\n Interaction, InteractionSettings, interactionSettingsToStore,\n triggerDateSelect, isDateSelectionValid,\n} from '@fullcalendar/common'\nimport { __assign } from 'tslib'\nimport { HitDragging } from './HitDragging'\nimport { FeaturefulElementDragging } from '../dnd/FeaturefulElementDragging'\n\n/*\nTracks when the user selects a portion of time of a component,\nconstituted by a drag over date cells, with a possible delay at the beginning of the drag.\n*/\nexport class DateSelecting extends Interaction {\n dragging: FeaturefulElementDragging\n hitDragging: HitDragging\n dragSelection: DateSpan | null = null\n\n constructor(settings: InteractionSettings) {\n super(settings)\n let { component } = settings\n let { options } = component.context\n\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el)\n dragging.touchScrollAllowed = false\n dragging.minDistance = options.selectMinDistance || 0\n dragging.autoScroller.isEnabled = options.dragScroll\n\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings))\n hitDragging.emitter.on('pointerdown', this.handlePointerDown)\n hitDragging.emitter.on('dragstart', this.handleDragStart)\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate)\n hitDragging.emitter.on('pointerup', this.handlePointerUp)\n }\n\n destroy() {\n this.dragging.destroy()\n }\n\n handlePointerDown = (ev: PointerDragEvent) => {\n let { component, dragging } = this\n let { options } = component.context\n\n let canSelect = options.selectable &&\n component.isValidDateDownEl(ev.origEvent.target as HTMLElement)\n\n // don't bother to watch expensive moves if component won't do selection\n dragging.setIgnoreMove(!canSelect)\n\n // if touch, require user to hold down\n dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null\n }\n\n handleDragStart = (ev: PointerDragEvent) => {\n this.component.context.calendarApi.unselect(ev) // unselect previous selections\n }\n\n handleHitUpdate = (hit: Hit | null, isFinal: boolean) => {\n let { context } = this.component\n let dragSelection: DateSpan | null = null\n let isInvalid = false\n\n if (hit) {\n let initialHit = this.hitDragging.initialHit!\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit)\n\n if (!disallowed) {\n dragSelection = joinHitsIntoSelection(\n initialHit,\n hit,\n context.pluginHooks.dateSelectionTransformers,\n )\n }\n\n if (!dragSelection || !isDateSelectionValid(dragSelection, hit.dateProfile, context)) {\n isInvalid = true\n dragSelection = null\n }\n }\n\n if (dragSelection) {\n context.dispatch({ type: 'SELECT_DATES', selection: dragSelection })\n } else if (!isFinal) { // only unselect if moved away while dragging\n context.dispatch({ type: 'UNSELECT_DATES' })\n }\n\n if (!isInvalid) {\n enableCursor()\n } else {\n disableCursor()\n }\n\n if (!isFinal) {\n this.dragSelection = dragSelection // only clear if moved away from all hits while dragging\n }\n }\n\n handlePointerUp = (pev: PointerDragEvent) => {\n if (this.dragSelection) {\n // selection is already rendered, so just need to report selection\n triggerDateSelect(this.dragSelection, pev, this.component.context)\n\n this.dragSelection = null\n }\n }\n}\n\nfunction getComponentTouchDelay(component: DateComponent): number {\n let { options } = component.context\n let delay = options.selectLongPressDelay\n\n if (delay == null) {\n delay = options.longPressDelay\n }\n\n return delay\n}\n\nfunction joinHitsIntoSelection(hit0: Hit, hit1: Hit, dateSelectionTransformers: dateSelectionJoinTransformer[]): DateSpan {\n let dateSpan0 = hit0.dateSpan\n let dateSpan1 = hit1.dateSpan\n let ms = [\n dateSpan0.range.start,\n dateSpan0.range.end,\n dateSpan1.range.start,\n dateSpan1.range.end,\n ]\n\n ms.sort(compareNumbers)\n\n let props = {} as DateSpan\n\n for (let transformer of dateSelectionTransformers) {\n let res = transformer(hit0, hit1)\n\n if (res === false) {\n return null\n }\n\n if (res) {\n __assign(props, res)\n }\n }\n\n props.range = { start: ms[0], end: ms[3] }\n props.allDay = dateSpan0.allDay\n\n return props\n}\n","import {\n DateComponent, Seg,\n PointerDragEvent, Hit,\n EventMutation, applyMutationToEventStore,\n startOfDay,\n elementClosest,\n EventStore, getRelevantEvents, createEmptyEventStore,\n EventInteractionState,\n diffDates, enableCursor, disableCursor,\n EventRenderRange, getElSeg,\n EventApi,\n eventDragMutationMassager,\n Interaction, InteractionSettings, interactionSettingsStore,\n EventDropTransformers,\n CalendarContext,\n ViewApi,\n EventChangeArg,\n buildEventApis,\n EventAddArg,\n EventRemoveArg,\n isInteractionValid,\n getElRoot,\n} from '@fullcalendar/common'\nimport { __assign } from 'tslib'\nimport { HitDragging, isHitsEqual } from './HitDragging'\nimport { FeaturefulElementDragging } from '../dnd/FeaturefulElementDragging'\nimport { buildDatePointApiWithContext } from '../utils'\n\nexport type EventDragStopArg = EventDragArg\nexport type EventDragStartArg = EventDragArg\n\nexport interface EventDragArg {\n el: HTMLElement\n event: EventApi\n jsEvent: MouseEvent\n view: ViewApi\n}\n\nexport class EventDragging extends Interaction { // TODO: rename to EventSelectingAndDragging\n // TODO: test this in IE11\n // QUESTION: why do we need it on the resizable???\n static SELECTOR = '.fc-event-draggable, .fc-event-resizable'\n\n dragging: FeaturefulElementDragging\n hitDragging: HitDragging\n\n // internal state\n subjectEl: HTMLElement | null = null\n subjectSeg: Seg | null = null // the seg being selected/dragged\n isDragging: boolean = false\n eventRange: EventRenderRange | null = null\n relevantEvents: EventStore | null = null // the events being dragged\n receivingContext: CalendarContext | null = null\n validMutation: EventMutation | null = null\n mutatedRelevantEvents: EventStore | null = null\n\n constructor(settings: InteractionSettings) {\n super(settings)\n let { component } = this\n let { options } = component.context\n\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el)\n dragging.pointer.selector = EventDragging.SELECTOR\n dragging.touchScrollAllowed = false\n dragging.autoScroller.isEnabled = options.dragScroll\n\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsStore)\n hitDragging.useSubjectCenter = settings.useEventCenter\n hitDragging.emitter.on('pointerdown', this.handlePointerDown)\n hitDragging.emitter.on('dragstart', this.handleDragStart)\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate)\n hitDragging.emitter.on('pointerup', this.handlePointerUp)\n hitDragging.emitter.on('dragend', this.handleDragEnd)\n }\n\n destroy() {\n this.dragging.destroy()\n }\n\n handlePointerDown = (ev: PointerDragEvent) => {\n let origTarget = ev.origEvent.target as HTMLElement\n let { component, dragging } = this\n let { mirror } = dragging\n let { options } = component.context\n let initialContext = component.context\n this.subjectEl = ev.subjectEl as HTMLElement\n let subjectSeg = this.subjectSeg = getElSeg(ev.subjectEl as HTMLElement)!\n let eventRange = this.eventRange = subjectSeg.eventRange!\n let eventInstanceId = eventRange.instance!.instanceId\n\n this.relevantEvents = getRelevantEvents(\n initialContext.getCurrentData().eventStore,\n eventInstanceId,\n )\n\n dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance\n dragging.delay =\n // only do a touch delay if touch and this event hasn't been selected yet\n (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?\n getComponentTouchDelay(component) :\n null\n\n if (options.fixedMirrorParent) {\n mirror.parentNode = options.fixedMirrorParent\n } else {\n mirror.parentNode = elementClosest(origTarget, '.fc')\n }\n\n mirror.revertDuration = options.dragRevertDuration\n\n let isValid =\n component.isValidSegDownEl(origTarget) &&\n !elementClosest(origTarget, '.fc-event-resizer') // NOT on a resizer\n\n dragging.setIgnoreMove(!isValid)\n\n // disable dragging for elements that are resizable (ie, selectable)\n // but are not draggable\n this.isDragging = isValid &&\n (ev.subjectEl as HTMLElement).classList.contains('fc-event-draggable')\n }\n\n handleDragStart = (ev: PointerDragEvent) => {\n let initialContext = this.component.context\n let eventRange = this.eventRange!\n let eventInstanceId = eventRange.instance.instanceId\n\n if (ev.isTouch) {\n // need to select a different event?\n if (eventInstanceId !== this.component.props.eventSelection) {\n initialContext.dispatch({ type: 'SELECT_EVENT', eventInstanceId })\n }\n } else {\n // if now using mouse, but was previous touch interaction, clear selected event\n initialContext.dispatch({ type: 'UNSELECT_EVENT' })\n }\n\n if (this.isDragging) {\n initialContext.calendarApi.unselect(ev) // unselect *date* selection\n initialContext.emitter.trigger('eventDragStart', {\n el: this.subjectEl,\n event: new EventApi(initialContext, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent as MouseEvent, // Is this always a mouse event? See #4655\n view: initialContext.viewApi,\n } as EventDragStartArg)\n }\n }\n\n handleHitUpdate = (hit: Hit | null, isFinal: boolean) => {\n if (!this.isDragging) {\n return\n }\n\n let relevantEvents = this.relevantEvents!\n let initialHit = this.hitDragging.initialHit!\n let initialContext = this.component.context\n\n // states based on new hit\n let receivingContext: CalendarContext | null = null\n let mutation: EventMutation | null = null\n let mutatedRelevantEvents: EventStore | null = null\n let isInvalid = false\n let interaction: EventInteractionState = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n }\n\n if (hit) {\n receivingContext = hit.context\n let receivingOptions = receivingContext.options\n\n if (\n initialContext === receivingContext ||\n (receivingOptions.editable && receivingOptions.droppable)\n ) {\n mutation = computeEventMutation(initialHit, hit, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers)\n\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(\n relevantEvents,\n receivingContext.getCurrentData().eventUiBases,\n mutation,\n receivingContext,\n )\n interaction.mutatedEvents = mutatedRelevantEvents\n\n if (!isInteractionValid(interaction, hit.dateProfile, receivingContext)) {\n isInvalid = true\n mutation = null\n mutatedRelevantEvents = null\n interaction.mutatedEvents = createEmptyEventStore()\n }\n }\n } else {\n receivingContext = null\n }\n }\n\n this.displayDrag(receivingContext, interaction)\n\n if (!isInvalid) {\n enableCursor()\n } else {\n disableCursor()\n }\n\n if (!isFinal) {\n if (\n initialContext === receivingContext && // TODO: write test for this\n isHitsEqual(initialHit, hit)\n ) {\n mutation = null\n }\n\n this.dragging.setMirrorNeedsRevert(!mutation)\n\n // render the mirror if no already-rendered mirror\n // TODO: wish we could somehow wait for dispatch to guarantee render\n this.dragging.setMirrorIsVisible(\n !hit || !getElRoot(this.subjectEl).querySelector('.fc-event-mirror'), // TODO: turn className into constant\n )\n\n // assign states based on new hit\n this.receivingContext = receivingContext\n this.validMutation = mutation\n this.mutatedRelevantEvents = mutatedRelevantEvents\n }\n }\n\n handlePointerUp = () => {\n if (!this.isDragging) {\n this.cleanup() // because handleDragEnd won't fire\n }\n }\n\n handleDragEnd = (ev: PointerDragEvent) => {\n if (this.isDragging) {\n let initialContext = this.component.context\n let initialView = initialContext.viewApi\n let { receivingContext, validMutation } = this\n let eventDef = this.eventRange!.def\n let eventInstance = this.eventRange!.instance\n let eventApi = new EventApi(initialContext, eventDef, eventInstance)\n let relevantEvents = this.relevantEvents!\n let mutatedRelevantEvents = this.mutatedRelevantEvents!\n let { finalHit } = this.hitDragging\n\n this.clearDrag() // must happen after revert animation\n\n initialContext.emitter.trigger('eventDragStop', {\n el: this.subjectEl,\n event: eventApi,\n jsEvent: ev.origEvent as MouseEvent, // Is this always a mouse event? See #4655\n view: initialView,\n } as EventDragStopArg)\n\n if (validMutation) {\n // dropped within same calendar\n if (receivingContext === initialContext) {\n let updatedEventApi = new EventApi(\n initialContext,\n mutatedRelevantEvents.defs[eventDef.defId],\n eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null,\n )\n\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n })\n\n let eventChangeArg: EventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change data\n })\n },\n }\n\n let transformed: ReturnType = {}\n for (let transformer of initialContext.getCurrentData().pluginHooks.eventDropTransformers) {\n __assign(transformed, transformer(validMutation, initialContext))\n }\n\n initialContext.emitter.trigger('eventDrop', {\n ...eventChangeArg,\n ...transformed,\n el: ev.subjectEl as HTMLElement,\n delta: validMutation.datesDelta!,\n jsEvent: ev.origEvent as MouseEvent, // bad\n view: initialView,\n })\n\n initialContext.emitter.trigger('eventChange', eventChangeArg)\n\n // dropped in different calendar\n } else if (receivingContext) {\n let eventRemoveArg: EventRemoveArg = {\n event: eventApi,\n relatedEvents: buildEventApis(relevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n })\n },\n }\n\n initialContext.emitter.trigger('eventLeave', {\n ...eventRemoveArg,\n draggedEl: ev.subjectEl as HTMLElement,\n view: initialView,\n })\n\n initialContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: relevantEvents,\n })\n\n initialContext.emitter.trigger('eventRemove', eventRemoveArg)\n\n let addedEventDef = mutatedRelevantEvents.defs[eventDef.defId]\n let addedEventInstance = mutatedRelevantEvents.instances[eventInstance.instanceId]\n let addedEventApi = new EventApi(receivingContext, addedEventDef, addedEventInstance)\n\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n })\n\n let eventAddArg: EventAddArg = {\n event: addedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, receivingContext, addedEventInstance),\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: mutatedRelevantEvents,\n })\n },\n }\n\n receivingContext.emitter.trigger('eventAdd', eventAddArg)\n\n if (ev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: eventInstance.instanceId,\n })\n }\n\n receivingContext.emitter.trigger('drop', {\n ...buildDatePointApiWithContext(finalHit.dateSpan, receivingContext),\n draggedEl: ev.subjectEl as HTMLElement,\n jsEvent: ev.origEvent as MouseEvent, // Is this always a mouse event? See #4655\n view: finalHit.context.viewApi,\n })\n\n receivingContext.emitter.trigger('eventReceive', {\n ...eventAddArg,\n draggedEl: ev.subjectEl as HTMLElement,\n view: finalHit.context.viewApi,\n })\n }\n } else {\n initialContext.emitter.trigger('_noEventDrop')\n }\n }\n\n this.cleanup()\n }\n\n // render a drag state on the next receivingCalendar\n displayDrag(nextContext: CalendarContext | null, state: EventInteractionState) {\n let initialContext = this.component.context\n let prevContext = this.receivingContext\n\n // does the previous calendar need to be cleared?\n if (prevContext && prevContext !== nextContext) {\n // does the initial calendar need to be cleared?\n // if so, don't clear all the way. we still need to to hide the affectedEvents\n if (prevContext === initialContext) {\n prevContext.dispatch({\n type: 'SET_EVENT_DRAG',\n state: {\n affectedEvents: state.affectedEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n },\n })\n\n // completely clear the old calendar if it wasn't the initial\n } else {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' })\n }\n }\n\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state })\n }\n }\n\n clearDrag() {\n let initialCalendar = this.component.context\n let { receivingContext } = this\n\n if (receivingContext) {\n receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' })\n }\n\n // the initial calendar might have an dummy drag state from displayDrag\n if (initialCalendar !== receivingContext) {\n initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' })\n }\n }\n\n cleanup() { // reset all internal state\n this.subjectSeg = null\n this.isDragging = false\n this.eventRange = null\n this.relevantEvents = null\n this.receivingContext = null\n this.validMutation = null\n this.mutatedRelevantEvents = null\n }\n}\n\nfunction computeEventMutation(hit0: Hit, hit1: Hit, massagers: eventDragMutationMassager[]): EventMutation {\n let dateSpan0 = hit0.dateSpan\n let dateSpan1 = hit1.dateSpan\n let date0 = dateSpan0.range.start\n let date1 = dateSpan1.range.start\n let standardProps = {} as any\n\n if (dateSpan0.allDay !== dateSpan1.allDay) {\n standardProps.allDay = dateSpan1.allDay\n standardProps.hasEnd = hit1.context.options.allDayMaintainDuration\n\n if (dateSpan1.allDay) {\n // means date1 is already start-of-day,\n // but date0 needs to be converted\n date0 = startOfDay(date0)\n }\n }\n\n let delta = diffDates(\n date0, date1,\n hit0.context.dateEnv,\n hit0.componentId === hit1.componentId ?\n hit0.largeUnit :\n null,\n )\n\n if (delta.milliseconds) { // has hours/minutes/seconds\n standardProps.allDay = false\n }\n\n let mutation: EventMutation = {\n datesDelta: delta,\n standardProps,\n }\n\n for (let massager of massagers) {\n massager(mutation, hit0, hit1)\n }\n\n return mutation\n}\n\nfunction getComponentTouchDelay(component: DateComponent): number | null {\n let { options } = component.context\n let delay = options.eventLongPressDelay\n\n if (delay == null) {\n delay = options.longPressDelay\n }\n\n return delay\n}\n","import {\n Seg, Hit,\n EventMutation, applyMutationToEventStore,\n elementClosest,\n PointerDragEvent,\n EventStore, getRelevantEvents, createEmptyEventStore,\n diffDates, enableCursor, disableCursor,\n DateRange,\n EventApi,\n EventRenderRange, getElSeg,\n createDuration,\n EventInteractionState,\n Interaction, InteractionSettings, interactionSettingsToStore, ViewApi, Duration, EventChangeArg, buildEventApis, isInteractionValid,\n} from '@fullcalendar/common'\nimport { __assign } from 'tslib'\nimport { HitDragging, isHitsEqual } from './HitDragging'\nimport { FeaturefulElementDragging } from '../dnd/FeaturefulElementDragging'\n\nexport type EventResizeStartArg = EventResizeStartStopArg\nexport type EventResizeStopArg = EventResizeStartStopArg\n\nexport interface EventResizeStartStopArg {\n el: HTMLElement\n event: EventApi\n jsEvent: MouseEvent\n view: ViewApi\n}\n\nexport interface EventResizeDoneArg extends EventChangeArg {\n el: HTMLElement\n startDelta: Duration\n endDelta: Duration\n jsEvent: MouseEvent\n view: ViewApi\n}\n\nexport class EventResizing extends Interaction {\n dragging: FeaturefulElementDragging\n hitDragging: HitDragging\n\n // internal state\n draggingSegEl: HTMLElement | null = null\n draggingSeg: Seg | null = null // TODO: rename to resizingSeg? subjectSeg?\n eventRange: EventRenderRange | null = null\n relevantEvents: EventStore | null = null\n validMutation: EventMutation | null = null\n mutatedRelevantEvents: EventStore | null = null\n\n constructor(settings: InteractionSettings) {\n super(settings)\n let { component } = settings\n\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el)\n dragging.pointer.selector = '.fc-event-resizer'\n dragging.touchScrollAllowed = false\n dragging.autoScroller.isEnabled = component.context.options.dragScroll\n\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings))\n hitDragging.emitter.on('pointerdown', this.handlePointerDown)\n hitDragging.emitter.on('dragstart', this.handleDragStart)\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate)\n hitDragging.emitter.on('dragend', this.handleDragEnd)\n }\n\n destroy() {\n this.dragging.destroy()\n }\n\n handlePointerDown = (ev: PointerDragEvent) => {\n let { component } = this\n let segEl = this.querySegEl(ev)\n let seg = getElSeg(segEl)\n let eventRange = this.eventRange = seg.eventRange!\n\n this.dragging.minDistance = component.context.options.eventDragMinDistance\n\n // if touch, need to be working with a selected event\n this.dragging.setIgnoreMove(\n !this.component.isValidSegDownEl(ev.origEvent.target as HTMLElement) ||\n (ev.isTouch && this.component.props.eventSelection !== eventRange.instance!.instanceId),\n )\n }\n\n handleDragStart = (ev: PointerDragEvent) => {\n let { context } = this.component\n let eventRange = this.eventRange!\n\n this.relevantEvents = getRelevantEvents(\n context.getCurrentData().eventStore,\n this.eventRange.instance!.instanceId,\n )\n\n let segEl = this.querySegEl(ev)\n this.draggingSegEl = segEl\n this.draggingSeg = getElSeg(segEl)\n\n context.calendarApi.unselect()\n context.emitter.trigger('eventResizeStart', {\n el: segEl,\n event: new EventApi(context, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent as MouseEvent, // Is this always a mouse event? See #4655\n view: context.viewApi,\n } as EventResizeStartArg)\n }\n\n handleHitUpdate = (hit: Hit | null, isFinal: boolean, ev: PointerDragEvent) => {\n let { context } = this.component\n let relevantEvents = this.relevantEvents!\n let initialHit = this.hitDragging.initialHit!\n let eventInstance = this.eventRange.instance!\n let mutation: EventMutation | null = null\n let mutatedRelevantEvents: EventStore | null = null\n let isInvalid = false\n let interaction: EventInteractionState = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n }\n\n if (hit) {\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit)\n\n if (!disallowed) {\n mutation = computeMutation(\n initialHit,\n hit,\n (ev.subjectEl as HTMLElement).classList.contains('fc-event-resizer-start'),\n eventInstance.range,\n )\n }\n }\n\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, context.getCurrentData().eventUiBases, mutation, context)\n interaction.mutatedEvents = mutatedRelevantEvents\n\n if (!isInteractionValid(interaction, hit.dateProfile, context)) {\n isInvalid = true\n mutation = null\n mutatedRelevantEvents = null\n interaction.mutatedEvents = null\n }\n }\n\n if (mutatedRelevantEvents) {\n context.dispatch({\n type: 'SET_EVENT_RESIZE',\n state: interaction,\n })\n } else {\n context.dispatch({ type: 'UNSET_EVENT_RESIZE' })\n }\n\n if (!isInvalid) {\n enableCursor()\n } else {\n disableCursor()\n }\n\n if (!isFinal) {\n if (mutation && isHitsEqual(initialHit, hit)) {\n mutation = null\n }\n\n this.validMutation = mutation\n this.mutatedRelevantEvents = mutatedRelevantEvents\n }\n }\n\n handleDragEnd = (ev: PointerDragEvent) => {\n let { context } = this.component\n let eventDef = this.eventRange!.def\n let eventInstance = this.eventRange!.instance\n let eventApi = new EventApi(context, eventDef, eventInstance)\n let relevantEvents = this.relevantEvents!\n let mutatedRelevantEvents = this.mutatedRelevantEvents!\n\n context.emitter.trigger('eventResizeStop', {\n el: this.draggingSegEl,\n event: eventApi,\n jsEvent: ev.origEvent as MouseEvent, // Is this always a mouse event? See #4655\n view: context.viewApi,\n } as EventResizeStopArg)\n\n if (this.validMutation) {\n let updatedEventApi = new EventApi(\n context,\n mutatedRelevantEvents.defs[eventDef.defId],\n eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null,\n )\n\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n })\n\n let eventChangeArg: EventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, context, eventInstance),\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change events\n })\n },\n }\n\n context.emitter.trigger('eventResize', {\n ...eventChangeArg,\n el: this.draggingSegEl,\n startDelta: this.validMutation.startDelta || createDuration(0),\n endDelta: this.validMutation.endDelta || createDuration(0),\n jsEvent: ev.origEvent as MouseEvent,\n view: context.viewApi,\n })\n\n context.emitter.trigger('eventChange', eventChangeArg)\n } else {\n context.emitter.trigger('_noEventResize')\n }\n\n // reset all internal state\n this.draggingSeg = null\n this.relevantEvents = null\n this.validMutation = null\n\n // okay to keep eventInstance around. useful to set it in handlePointerDown\n }\n\n querySegEl(ev: PointerDragEvent) {\n return elementClosest(ev.subjectEl as HTMLElement, '.fc-event')\n }\n}\n\nfunction computeMutation(\n hit0: Hit,\n hit1: Hit,\n isFromStart: boolean,\n instanceRange: DateRange,\n): EventMutation | null {\n let dateEnv = hit0.context.dateEnv\n let date0 = hit0.dateSpan.range.start\n let date1 = hit1.dateSpan.range.start\n\n let delta = diffDates(\n date0, date1,\n dateEnv,\n hit0.largeUnit,\n )\n\n if (isFromStart) {\n if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n return { startDelta: delta }\n }\n } else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n return { endDelta: delta }\n }\n\n return null\n}\n","import {\n DateSelectionApi,\n PointerDragEvent,\n elementClosest,\n CalendarContext,\n getEventTargetViaRoot,\n} from '@fullcalendar/common'\nimport { PointerDragging } from '../dnd/PointerDragging'\nimport { EventDragging } from './EventDragging'\n\nexport class UnselectAuto {\n documentPointer: PointerDragging // for unfocusing\n isRecentPointerDateSelect = false // wish we could use a selector to detect date selection, but uses hit system\n matchesCancel = false\n matchesEvent = false\n\n constructor(private context: CalendarContext) {\n let documentPointer = this.documentPointer = new PointerDragging(document)\n documentPointer.shouldIgnoreMove = true\n documentPointer.shouldWatchScroll = false\n documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown)\n documentPointer.emitter.on('pointerup', this.onDocumentPointerUp)\n\n /*\n TODO: better way to know about whether there was a selection with the pointer\n */\n context.emitter.on('select', this.onSelect)\n }\n\n destroy() {\n this.context.emitter.off('select', this.onSelect)\n this.documentPointer.destroy()\n }\n\n onSelect = (selectInfo: DateSelectionApi) => {\n if (selectInfo.jsEvent) {\n this.isRecentPointerDateSelect = true\n }\n }\n\n onDocumentPointerDown = (pev: PointerDragEvent) => {\n let unselectCancel = this.context.options.unselectCancel\n let downEl = getEventTargetViaRoot(pev.origEvent) as HTMLElement\n\n this.matchesCancel = !!elementClosest(downEl, unselectCancel)\n this.matchesEvent = !!elementClosest(downEl, EventDragging.SELECTOR) // interaction started on an event?\n }\n\n onDocumentPointerUp = (pev: PointerDragEvent) => {\n let { context } = this\n let { documentPointer } = this\n let calendarState = context.getCurrentData()\n\n // touch-scrolling should never unfocus any type of selection\n if (!documentPointer.wasTouchScroll) {\n if (\n calendarState.dateSelection && // an existing date selection?\n !this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n ) {\n let unselectAuto = context.options.unselectAuto\n\n if (unselectAuto && (!unselectAuto || !this.matchesCancel)) {\n context.calendarApi.unselect(pev)\n }\n }\n\n if (\n calendarState.eventSelection && // an existing event selected?\n !this.matchesEvent // interaction DIDN'T start on an event\n ) {\n context.dispatch({ type: 'UNSELECT_EVENT' })\n }\n }\n\n this.isRecentPointerDateSelect = false\n }\n}\n","import {\n Hit,\n interactionSettingsStore,\n PointerDragEvent,\n parseEventDef, createEventInstance, EventTuple,\n createEmptyEventStore, eventTupleToStore,\n config,\n DateSpan, DatePointApi,\n EventInteractionState,\n DragMetaInput, DragMeta, parseDragMeta,\n EventApi,\n elementMatches,\n enableCursor, disableCursor,\n isInteractionValid,\n ElementDragging,\n ViewApi,\n CalendarContext,\n getDefaultEventEnd,\n refineEventDef,\n} from '@fullcalendar/common'\nimport { __assign } from 'tslib'\nimport { HitDragging } from '../interactions/HitDragging'\nimport { buildDatePointApiWithContext } from '../utils'\n\nexport type DragMetaGenerator = DragMetaInput | ((el: HTMLElement) => DragMetaInput)\n\nexport interface ExternalDropApi extends DatePointApi {\n draggedEl: HTMLElement\n jsEvent: UIEvent\n view: ViewApi\n}\n\n/*\nGiven an already instantiated draggable object for one-or-more elements,\nInterprets any dragging as an attempt to drag an events that lives outside\nof a calendar onto a calendar.\n*/\nexport class ExternalElementDragging {\n hitDragging: HitDragging\n receivingContext: CalendarContext | null = null\n droppableEvent: EventTuple | null = null // will exist for all drags, even if create:false\n suppliedDragMeta: DragMetaGenerator | null = null\n dragMeta: DragMeta | null = null\n\n constructor(dragging: ElementDragging, suppliedDragMeta?: DragMetaGenerator) {\n let hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore)\n hitDragging.requireInitial = false // will start outside of a component\n hitDragging.emitter.on('dragstart', this.handleDragStart)\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate)\n hitDragging.emitter.on('dragend', this.handleDragEnd)\n\n this.suppliedDragMeta = suppliedDragMeta\n }\n\n handleDragStart = (ev: PointerDragEvent) => {\n this.dragMeta = this.buildDragMeta(ev.subjectEl as HTMLElement)\n }\n\n buildDragMeta(subjectEl: HTMLElement) {\n if (typeof this.suppliedDragMeta === 'object') {\n return parseDragMeta(this.suppliedDragMeta)\n }\n if (typeof this.suppliedDragMeta === 'function') {\n return parseDragMeta(this.suppliedDragMeta(subjectEl))\n }\n return getDragMetaFromEl(subjectEl)\n }\n\n handleHitUpdate = (hit: Hit | null, isFinal: boolean, ev: PointerDragEvent) => {\n let { dragging } = this.hitDragging\n let receivingContext: CalendarContext | null = null\n let droppableEvent: EventTuple | null = null\n let isInvalid = false\n let interaction: EventInteractionState = {\n affectedEvents: createEmptyEventStore(),\n mutatedEvents: createEmptyEventStore(),\n isEvent: this.dragMeta!.create,\n }\n\n if (hit) {\n receivingContext = hit.context\n\n if (this.canDropElOnCalendar(ev.subjectEl as HTMLElement, receivingContext)) {\n droppableEvent = computeEventForDateSpan(\n hit.dateSpan,\n this.dragMeta!,\n receivingContext,\n )\n\n interaction.mutatedEvents = eventTupleToStore(droppableEvent)\n isInvalid = !isInteractionValid(interaction, hit.dateProfile, receivingContext)\n\n if (isInvalid) {\n interaction.mutatedEvents = createEmptyEventStore()\n droppableEvent = null\n }\n }\n }\n\n this.displayDrag(receivingContext, interaction)\n\n // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n // TODO: wish we could somehow wait for dispatch to guarantee render\n dragging.setMirrorIsVisible(\n isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'), // TODO: turn className into constant\n // TODO: somehow query FullCalendars WITHIN shadow-roots for existing event-mirror els\n )\n\n if (!isInvalid) {\n enableCursor()\n } else {\n disableCursor()\n }\n\n if (!isFinal) {\n dragging.setMirrorNeedsRevert(!droppableEvent)\n\n this.receivingContext = receivingContext\n this.droppableEvent = droppableEvent\n }\n }\n\n handleDragEnd = (pev: PointerDragEvent) => {\n let { receivingContext, droppableEvent } = this\n\n this.clearDrag()\n\n if (receivingContext && droppableEvent) {\n let finalHit = this.hitDragging.finalHit!\n let finalView = finalHit.context.viewApi\n let dragMeta = this.dragMeta!\n\n receivingContext.emitter.trigger('drop', {\n ...buildDatePointApiWithContext(finalHit.dateSpan, receivingContext),\n draggedEl: pev.subjectEl as HTMLElement,\n jsEvent: pev.origEvent as MouseEvent, // Is this always a mouse event? See #4655\n view: finalView,\n })\n\n if (dragMeta.create) {\n let addingEvents = eventTupleToStore(droppableEvent)\n\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: addingEvents,\n })\n\n if (pev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: droppableEvent.instance.instanceId,\n })\n }\n\n // signal that an external event landed\n receivingContext.emitter.trigger('eventReceive', {\n event: new EventApi(\n receivingContext,\n droppableEvent.def,\n droppableEvent.instance,\n ),\n relatedEvents: [],\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: addingEvents,\n })\n },\n draggedEl: pev.subjectEl as HTMLElement,\n view: finalView,\n })\n }\n }\n\n this.receivingContext = null\n this.droppableEvent = null\n }\n\n displayDrag(nextContext: CalendarContext | null, state: EventInteractionState) {\n let prevContext = this.receivingContext\n\n if (prevContext && prevContext !== nextContext) {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' })\n }\n\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state })\n }\n }\n\n clearDrag() {\n if (this.receivingContext) {\n this.receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' })\n }\n }\n\n canDropElOnCalendar(el: HTMLElement, receivingContext: CalendarContext): boolean {\n let dropAccept = receivingContext.options.dropAccept\n\n if (typeof dropAccept === 'function') {\n return dropAccept.call(receivingContext.calendarApi, el)\n }\n\n if (typeof dropAccept === 'string' && dropAccept) {\n return Boolean(elementMatches(el, dropAccept))\n }\n\n return true\n }\n}\n\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\n\nfunction computeEventForDateSpan(dateSpan: DateSpan, dragMeta: DragMeta, context: CalendarContext): EventTuple {\n let defProps = { ...dragMeta.leftoverProps }\n\n for (let transform of context.pluginHooks.externalDefTransforms) {\n __assign(defProps, transform(dateSpan, dragMeta))\n }\n\n let { refined, extra } = refineEventDef(defProps, context)\n let def = parseEventDef(\n refined,\n extra,\n dragMeta.sourceId,\n dateSpan.allDay,\n context.options.forceEventDuration || Boolean(dragMeta.duration), // hasEnd\n context,\n )\n\n let start = dateSpan.range.start\n\n // only rely on time info if drop zone is all-day,\n // otherwise, we already know the time\n if (dateSpan.allDay && dragMeta.startTime) {\n start = context.dateEnv.add(start, dragMeta.startTime)\n }\n\n let end = dragMeta.duration ?\n context.dateEnv.add(start, dragMeta.duration) :\n getDefaultEventEnd(dateSpan.allDay, start, context)\n\n let instance = createEventInstance(def.defId, { start, end })\n\n return { def, instance }\n}\n\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\n\nfunction getDragMetaFromEl(el: HTMLElement): DragMeta {\n let str = getEmbeddedElData(el, 'event')\n let obj = str ?\n JSON.parse(str) :\n { create: false } // if no embedded data, assume no event creation\n\n return parseDragMeta(obj)\n}\n\nconfig.dataAttrPrefix = ''\n\nfunction getEmbeddedElData(el: HTMLElement, name: string): string {\n let prefix = config.dataAttrPrefix\n let prefixedName = (prefix ? prefix + '-' : '') + name\n\n return el.getAttribute('data-' + prefixedName) || ''\n}\n","import { BASE_OPTION_DEFAULTS, PointerDragEvent } from '@fullcalendar/common'\nimport { FeaturefulElementDragging } from '../dnd/FeaturefulElementDragging'\nimport { ExternalElementDragging, DragMetaGenerator } from './ExternalElementDragging'\n\nexport interface ExternalDraggableSettings {\n eventData?: DragMetaGenerator\n itemSelector?: string\n minDistance?: number\n longPressDelay?: number\n appendTo?: HTMLElement\n}\n\n/*\nMakes an element (that is *external* to any calendar) draggable.\nCan pass in data that determines how an event will be created when dropped onto a calendar.\nLeverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n*/\nexport class ExternalDraggable {\n dragging: FeaturefulElementDragging\n settings: ExternalDraggableSettings\n\n constructor(el: HTMLElement, settings: ExternalDraggableSettings = {}) {\n this.settings = settings\n\n let dragging = this.dragging = new FeaturefulElementDragging(el)\n dragging.touchScrollAllowed = false\n\n if (settings.itemSelector != null) {\n dragging.pointer.selector = settings.itemSelector\n }\n\n if (settings.appendTo != null) {\n dragging.mirror.parentNode = settings.appendTo // TODO: write tests\n }\n\n dragging.emitter.on('pointerdown', this.handlePointerDown)\n dragging.emitter.on('dragstart', this.handleDragStart)\n\n new ExternalElementDragging(dragging, settings.eventData) // eslint-disable-line no-new\n }\n\n handlePointerDown = (ev: PointerDragEvent) => {\n let { dragging } = this\n let { minDistance, longPressDelay } = this.settings\n\n dragging.minDistance =\n minDistance != null ?\n minDistance :\n (ev.isTouch ? 0 : BASE_OPTION_DEFAULTS.eventDragMinDistance)\n\n dragging.delay =\n ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n (longPressDelay != null ? longPressDelay : BASE_OPTION_DEFAULTS.longPressDelay) :\n 0\n }\n\n handleDragStart = (ev: PointerDragEvent) => {\n if (\n ev.isTouch &&\n this.dragging.delay &&\n (ev.subjectEl as HTMLElement).classList.contains('fc-event')\n ) {\n this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected')\n }\n }\n\n destroy() {\n this.dragging.destroy()\n }\n}\n","import { PointerDragEvent, ElementDragging } from '@fullcalendar/common'\nimport { PointerDragging } from '../dnd/PointerDragging'\n\n/*\nDetects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\nThe third-party system is responsible for drawing the visuals effects of the drag.\nThis class simply monitors for pointer movements and fires events.\nIt also has the ability to hide the moving element (the \"mirror\") during the drag.\n*/\nexport class InferredElementDragging extends ElementDragging {\n pointer: PointerDragging\n shouldIgnoreMove: boolean = false\n mirrorSelector: string = ''\n currentMirrorEl: HTMLElement | null = null\n\n constructor(containerEl: HTMLElement) {\n super(containerEl)\n\n let pointer = this.pointer = new PointerDragging(containerEl)\n pointer.emitter.on('pointerdown', this.handlePointerDown)\n pointer.emitter.on('pointermove', this.handlePointerMove)\n pointer.emitter.on('pointerup', this.handlePointerUp)\n }\n\n destroy() {\n this.pointer.destroy()\n }\n\n handlePointerDown = (ev: PointerDragEvent) => {\n this.emitter.trigger('pointerdown', ev)\n\n if (!this.shouldIgnoreMove) {\n // fire dragstart right away. does not support delay or min-distance\n this.emitter.trigger('dragstart', ev)\n }\n }\n\n handlePointerMove = (ev: PointerDragEvent) => {\n if (!this.shouldIgnoreMove) {\n this.emitter.trigger('dragmove', ev)\n }\n }\n\n handlePointerUp = (ev: PointerDragEvent) => {\n this.emitter.trigger('pointerup', ev)\n\n if (!this.shouldIgnoreMove) {\n // fire dragend right away. does not support a revert animation\n this.emitter.trigger('dragend', ev)\n }\n }\n\n setIgnoreMove(bool: boolean) {\n this.shouldIgnoreMove = bool\n }\n\n setMirrorIsVisible(bool: boolean) {\n if (bool) {\n // restore a previously hidden element.\n // use the reference in case the selector class has already been removed.\n if (this.currentMirrorEl) {\n this.currentMirrorEl.style.visibility = ''\n this.currentMirrorEl = null\n }\n } else {\n let mirrorEl = this.mirrorSelector\n // TODO: somehow query FullCalendars WITHIN shadow-roots\n ? document.querySelector(this.mirrorSelector) as HTMLElement\n : null\n\n if (mirrorEl) {\n this.currentMirrorEl = mirrorEl\n mirrorEl.style.visibility = 'hidden'\n }\n }\n }\n}\n","import { ExternalElementDragging, DragMetaGenerator } from './ExternalElementDragging'\nimport { InferredElementDragging } from './InferredElementDragging'\n\nexport interface ThirdPartyDraggableSettings {\n eventData?: DragMetaGenerator\n itemSelector?: string\n mirrorSelector?: string\n}\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nexport class ThirdPartyDraggable {\n dragging: InferredElementDragging\n\n constructor(\n containerOrSettings?: EventTarget | ThirdPartyDraggableSettings,\n settings?: ThirdPartyDraggableSettings,\n ) {\n let containerEl: EventTarget = document\n\n if (\n // wish we could just test instanceof EventTarget, but doesn't work in IE11\n containerOrSettings === document ||\n containerOrSettings instanceof Element\n ) {\n containerEl = containerOrSettings as EventTarget\n settings = settings || {}\n } else {\n settings = (containerOrSettings || {}) as ThirdPartyDraggableSettings\n }\n\n let dragging = this.dragging = new InferredElementDragging(containerEl as HTMLElement)\n\n if (typeof settings.itemSelector === 'string') {\n dragging.pointer.selector = settings.itemSelector\n } else if (containerEl === document) {\n dragging.pointer.selector = '[data-event]'\n }\n\n if (typeof settings.mirrorSelector === 'string') {\n dragging.mirrorSelector = settings.mirrorSelector\n }\n\n new ExternalElementDragging(dragging, settings.eventData) // eslint-disable-line no-new\n }\n\n destroy() {\n this.dragging.destroy()\n }\n}\n","import React, { createRef, Component } from 'react';\nimport { DomHandler, tip, classNames } from 'primereact/core';\nimport { InputText } from 'primereact/inputtext';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar InputMask = /*#__PURE__*/function (_Component) {\n _inherits(InputMask, _Component);\n\n var _super = _createSuper(InputMask);\n\n function InputMask(props) {\n var _this;\n\n _classCallCheck(this, InputMask);\n\n _this = _super.call(this, props);\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onKeyPress = _this.onKeyPress.bind(_assertThisInitialized(_this));\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.handleInputChange = _this.handleInputChange.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(InputMask, [{\n key: \"caret\",\n value: function caret(first, last) {\n var range, begin, end;\n var inputEl = this.inputRef && this.inputRef.current;\n\n if (!inputEl || !inputEl.offsetParent || inputEl !== document.activeElement) {\n return;\n }\n\n if (typeof first === 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n\n if (inputEl.setSelectionRange) {\n inputEl.setSelectionRange(begin, end);\n } else if (inputEl['createTextRange']) {\n range = inputEl['createTextRange']();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', begin);\n range.select();\n }\n } else {\n if (inputEl.setSelectionRange) {\n begin = inputEl.selectionStart;\n end = inputEl.selectionEnd;\n } else if (document['selection'] && document['selection'].createRange) {\n range = document['selection'].createRange();\n begin = 0 - range.duplicate().moveStart('character', -100000);\n end = begin + range.text.length;\n }\n\n return {\n begin: begin,\n end: end\n };\n }\n }\n }, {\n key: \"isCompleted\",\n value: function isCompleted() {\n for (var i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"getPlaceholder\",\n value: function getPlaceholder(i) {\n if (i < this.props.slotChar.length) {\n return this.props.slotChar.charAt(i);\n }\n\n return this.props.slotChar.charAt(0);\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.props.unmask ? this.getUnmaskedValue() : this.inputRef && this.inputRef.current && this.inputRef.current.value;\n }\n }, {\n key: \"seekNext\",\n value: function seekNext(pos) {\n while (++pos < this.len && !this.tests[pos]) {\n }\n\n return pos;\n }\n }, {\n key: \"seekPrev\",\n value: function seekPrev(pos) {\n while (--pos >= 0 && !this.tests[pos]) {\n }\n\n return pos;\n }\n }, {\n key: \"shiftL\",\n value: function shiftL(begin, end) {\n var i, j;\n\n if (begin < 0) {\n return;\n }\n\n for (i = begin, j = this.seekNext(end); i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else {\n break;\n }\n\n j = this.seekNext(j);\n }\n }\n\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n }, {\n key: \"shiftR\",\n value: function shiftR(pos) {\n var i, c, j, t;\n\n for (i = pos, c = this.getPlaceholder(pos); i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n }\n }, {\n key: \"handleAndroidInput\",\n value: function handleAndroidInput(e) {\n var curVal = this.inputRef.current.value;\n var pos = this.caret();\n\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {\n // a deletion or backspace happened\n this.checkVal(true);\n\n while (pos.begin > 0 && !this.tests[pos.begin - 1]) {\n pos.begin--;\n }\n\n if (pos.begin === 0) {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n this.caret(pos.begin, pos.begin);\n } else {\n this.checkVal(true);\n\n while (pos.begin < this.len && !this.tests[pos.begin]) {\n pos.begin++;\n }\n\n this.caret(pos.begin, pos.begin);\n }\n\n if (this.props.onComplete && this.isCompleted()) {\n this.props.onComplete({\n originalEvent: e,\n value: this.getValue()\n });\n }\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(e) {\n this.focus = false;\n this.checkVal();\n this.updateModel(e);\n this.updateFilledState();\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n\n if (this.inputRef.current.value !== this.focusText) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n this.inputRef.current.dispatchEvent(event);\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(e) {\n if (this.props.readOnly) {\n return;\n }\n\n var k = e.which || e.keyCode,\n pos,\n begin,\n end;\n var iPhone = /iphone/i.test(DomHandler.getUserAgent());\n this.oldVal = this.inputRef.current.value; //backspace, delete, and escape get special treatment\n\n if (k === 8 || k === 46 || iPhone && k === 127) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? this.seekPrev(begin) : end = this.seekNext(begin - 1);\n end = k === 46 ? this.seekNext(end) : end;\n }\n\n this.clearBuffer(begin, end);\n this.shiftL(begin, end - 1);\n this.updateModel(e);\n e.preventDefault();\n } else if (k === 13) {\n // enter\n this.onBlur(e);\n this.updateModel(e);\n } else if (k === 27) {\n // escape\n this.inputRef.current.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n e.preventDefault();\n }\n }\n }, {\n key: \"onKeyPress\",\n value: function onKeyPress(e) {\n var _this2 = this;\n\n if (this.props.readOnly) {\n return;\n }\n\n var k = e.which || e.keyCode,\n pos = this.caret(),\n p,\n c,\n next,\n completed;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {\n //Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end - 1);\n }\n\n p = this.seekNext(pos.begin - 1);\n\n if (p < this.len) {\n c = String.fromCharCode(k);\n\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n\n if (/android/i.test(DomHandler.getUserAgent())) {\n //Path for CSP Violation on FireFox OS 1.1\n var proxy = function proxy() {\n _this2.caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n this.caret(next);\n }\n\n if (pos.begin <= this.lastRequiredNonMaskPos) {\n completed = this.isCompleted();\n }\n }\n }\n\n e.preventDefault();\n }\n\n this.updateModel(e);\n\n if (this.props.onComplete && completed) {\n this.props.onComplete({\n originalEvent: e,\n value: this.getValue()\n });\n }\n }\n }, {\n key: \"clearBuffer\",\n value: function clearBuffer(start, end) {\n var i;\n\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n }, {\n key: \"writeBuffer\",\n value: function writeBuffer() {\n this.inputRef.current.value = this.buffer.join('');\n }\n }, {\n key: \"checkVal\",\n value: function checkVal(allow) {\n this.isValueChecked = true; //try to place characters where they belong\n\n var test = this.inputRef.current.value,\n lastMatch = -1,\n i,\n c,\n pos;\n\n for (i = 0, pos = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n\n if (this.tests[i].test(c)) {\n this.buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n\n if (i < this.partialPosition) {\n lastMatch = i;\n }\n }\n }\n\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.props.autoClear || this.buffer.join('') === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.inputRef.current.value) this.inputRef.current.value = '';\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.inputRef.current.value = this.inputRef.current.value.substring(0, lastMatch + 1);\n }\n\n return this.partialPosition ? i : this.firstNonMaskPos;\n }\n }, {\n key: \"onFocus\",\n value: function onFocus(e) {\n var _this3 = this;\n\n if (this.props.readOnly) {\n return;\n }\n\n this.focus = true;\n clearTimeout(this.caretTimeoutId);\n var pos;\n this.focusText = this.inputRef.current.value;\n pos = this.checkVal();\n this.caretTimeoutId = setTimeout(function () {\n if (_this3.inputRef.current !== document.activeElement) {\n return;\n }\n\n _this3.writeBuffer();\n\n if (pos === _this3.props.mask.replace(\"?\", \"\").length) {\n _this3.caret(0, pos);\n } else {\n _this3.caret(pos);\n }\n\n _this3.updateFilledState();\n }, 10);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event) {\n if (this.androidChrome) this.handleAndroidInput(event);else this.handleInputChange(event);\n }\n }, {\n key: \"handleInputChange\",\n value: function handleInputChange(e) {\n if (this.props.readOnly) {\n return;\n }\n\n var pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(e);\n\n if (this.props.onComplete && this.isCompleted()) {\n this.props.onComplete({\n originalEvent: e,\n value: this.getValue()\n });\n }\n }\n }, {\n key: \"getUnmaskedValue\",\n value: function getUnmaskedValue() {\n var unmaskedBuffer = [];\n\n for (var i = 0; i < this.buffer.length; i++) {\n var c = this.buffer[i];\n\n if (this.tests[i] && c !== this.getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n\n return unmaskedBuffer.join('');\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(e) {\n if (this.props.onChange) {\n var val = this.props.unmask ? this.getUnmaskedValue() : e && e.target.value;\n this.props.onChange({\n originalEvent: e,\n value: this.defaultBuffer !== val ? val : '',\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: this.defaultBuffer !== val ? val : ''\n }\n });\n }\n }\n }, {\n key: \"updateFilledState\",\n value: function updateFilledState() {\n if (this.inputRef && this.inputRef.current && this.inputRef.current.value && this.inputRef.current.value.length > 0) DomHandler.addClass(this.inputRef.current, 'p-filled');else DomHandler.removeClass(this.inputRef.current, 'p-filled');\n }\n }, {\n key: \"updateValue\",\n value: function updateValue(allow) {\n var _this4 = this;\n\n var pos;\n\n if (this.inputRef && this.inputRef.current) {\n if (this.props.value == null) {\n this.inputRef.current.value = '';\n } else {\n this.inputRef.current.value = this.props.value;\n pos = this.checkVal(allow);\n setTimeout(function () {\n if (_this4.inputRef && _this4.inputRef.current) {\n _this4.writeBuffer();\n\n return _this4.checkVal(allow);\n }\n }, 10);\n }\n\n this.focusText = this.inputRef.current.value;\n }\n\n this.updateFilledState();\n return pos;\n }\n }, {\n key: \"isValueUpdated\",\n value: function isValueUpdated() {\n return this.props.unmask ? this.props.value !== this.getUnmaskedValue() : this.defaultBuffer !== this.inputRef.current.value && this.inputRef.current.value !== this.props.value;\n }\n }, {\n key: \"init\",\n value: function init() {\n if (this.props.mask) {\n this.tests = [];\n this.partialPosition = this.props.mask.length;\n this.len = this.props.mask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n '9': '[0-9]',\n 'a': '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n };\n var ua = DomHandler.getUserAgent();\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n var maskTokens = this.props.mask.split('');\n\n for (var i = 0; i < maskTokens.length; i++) {\n var c = maskTokens[i];\n\n if (c === '?') {\n this.len--;\n this.partialPosition = i;\n } else if (this.defs[c]) {\n this.tests.push(new RegExp(this.defs[c]));\n\n if (this.firstNonMaskPos === null) {\n this.firstNonMaskPos = this.tests.length - 1;\n }\n\n if (i < this.partialPosition) {\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n } else {\n this.tests.push(null);\n }\n }\n\n this.buffer = [];\n\n for (var _i = 0; _i < maskTokens.length; _i++) {\n var _c = maskTokens[_i];\n\n if (_c !== '?') {\n if (this.defs[_c]) this.buffer.push(this.getPlaceholder(_i));else this.buffer.push(_c);\n }\n }\n\n this.defaultBuffer = this.buffer.join('');\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n this.init();\n this.updateValue();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.isValueUpdated()) {\n this.updateValue();\n }\n\n if (prevProps.mask !== this.props.mask) {\n this.init();\n this.caret(this.updateValue(true));\n this.updateModel();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.inputRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var inputMaskClassName = classNames('p-inputmask', this.props.className);\n return /*#__PURE__*/React.createElement(InputText, {\n id: this.props.id,\n ref: this.inputRef,\n type: this.props.type,\n name: this.props.name,\n style: this.props.style,\n className: inputMaskClassName,\n placeholder: this.props.placeholder,\n size: this.props.size,\n maxLength: this.props.maxlength,\n tabIndex: this.props.tabIndex,\n disabled: this.props.disabled,\n readOnly: this.props.readOnly,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onKeyPress: this.onKeyPress,\n onInput: this.onInput,\n onPaste: this.handleInputChange,\n required: this.props.required,\n \"aria-labelledby\": this.props.ariaLabelledBy\n });\n }\n }]);\n\n return InputMask;\n}(Component);\n\n_defineProperty(InputMask, \"defaultProps\", {\n id: null,\n inputRef: null,\n value: null,\n type: 'text',\n mask: null,\n slotChar: '_',\n autoClear: true,\n unmask: false,\n style: null,\n className: null,\n placeholder: null,\n size: null,\n maxlength: null,\n tabIndex: null,\n disabled: false,\n readOnly: false,\n name: null,\n required: false,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onComplete: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n});\n\nexport { InputMask };\n","import React, { Component } from 'react';\nimport { classNames, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Toolbar = /*#__PURE__*/function (_Component) {\n _inherits(Toolbar, _Component);\n\n var _super = _createSuper(Toolbar);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Toolbar, [{\n key: \"render\",\n value: function render() {\n var toolbarClass = classNames('p-toolbar p-component', this.props.className);\n var left = ObjectUtils.getJSXElement(this.props.left, this.props);\n var right = ObjectUtils.getJSXElement(this.props.right, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: toolbarClass,\n style: this.props.style,\n role: \"toolbar\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-toolbar-group-left\"\n }, left), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-toolbar-group-right\"\n }, right));\n }\n }]);\n\n return Toolbar;\n}(Component);\n\n_defineProperty(Toolbar, \"defaultProps\", {\n id: null,\n style: null,\n className: null,\n left: null,\n right: null\n});\n\nexport { Toolbar };\n","import React, { Component } from 'react';\nimport { ObjectUtils, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Card = /*#__PURE__*/function (_Component) {\n _inherits(Card, _Component);\n\n var _super = _createSuper(Card);\n\n function Card() {\n _classCallCheck(this, Card);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Card, [{\n key: \"renderHeader\",\n value: function renderHeader() {\n if (this.props.header) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-card-header\"\n }, ObjectUtils.getJSXElement(this.props.header, this.props));\n }\n\n return null;\n }\n }, {\n key: \"renderBody\",\n value: function renderBody() {\n var title = this.props.title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-card-title\"\n }, ObjectUtils.getJSXElement(this.props.title, this.props));\n var subTitle = this.props.subTitle && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-card-subtitle\"\n }, ObjectUtils.getJSXElement(this.props.subTitle, this.props));\n var children = this.props.children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-card-content\"\n }, this.props.children);\n var footer = this.props.footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-card-footer\"\n }, ObjectUtils.getJSXElement(this.props.footer, this.props));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-card-body\"\n }, title, subTitle, children, footer);\n }\n }, {\n key: \"render\",\n value: function render() {\n var header = this.renderHeader();\n var body = this.renderBody();\n var className = classNames('p-card p-component', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: this.props.style,\n id: this.props.id\n }, header, body);\n }\n }]);\n\n return Card;\n}(Component);\n\n_defineProperty(Card, \"defaultProps\", {\n id: null,\n header: null,\n footer: null,\n title: null,\n subTitle: null,\n style: null,\n className: null\n});\n\nexport { Card };\n","import React, { createRef, Component } from 'react';\nimport { DomHandler, OverlayService, ZIndexUtils, ConnectedOverlayScrollHandler, tip, ObjectUtils, classNames, CSSTransition, Portal } from 'primereact/core';\nimport { InputText } from 'primereact/inputtext';\nimport PrimeReact, { localeOption } from 'primereact/api';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Password = /*#__PURE__*/function (_Component) {\n _inherits(Password, _Component);\n\n var _super = _createSuper(Password);\n\n function Password(props) {\n var _this;\n\n _classCallCheck(this, Password);\n\n _this = _super.call(this, props);\n _this.state = {\n overlayVisible: false,\n meter: null,\n infoText: _this.promptLabel(),\n focused: false,\n unmasked: false\n };\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyup = _this.onKeyup.bind(_assertThisInitialized(_this));\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.onMaskToggle = _this.onMaskToggle.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n _this.mediumCheckRegExp = new RegExp(_this.props.mediumRegex);\n _this.strongCheckRegExp = new RegExp(_this.props.strongRegex);\n return _this;\n }\n\n _createClass(Password, [{\n key: \"promptLabel\",\n value: function promptLabel() {\n return this.props.promptLabel || localeOption('passwordPrompt');\n }\n }, {\n key: \"weakLabel\",\n value: function weakLabel() {\n return this.props.weakLabel || localeOption('weak');\n }\n }, {\n key: \"mediumLabel\",\n value: function mediumLabel() {\n return this.props.mediumLabel || localeOption('medium');\n }\n }, {\n key: \"strongLabel\",\n value: function strongLabel() {\n return this.props.strongLabel || localeOption('strong');\n }\n }, {\n key: \"isFilled\",\n value: function isFilled() {\n return this.props.value != null && this.props.value.toString().length > 0 || this.props.defaultValue != null && this.props.defaultValue.toString().length > 0 || this.inputRef && this.inputRef.current && DomHandler.hasClass(this.inputRef.current, 'p-filled');\n }\n }, {\n key: \"getInputType\",\n value: function getInputType() {\n return this.state.unmasked ? 'text' : 'password';\n }\n }, {\n key: \"updateLabels\",\n value: function updateLabels() {\n if (this.state.meter) {\n var label = null;\n\n switch (this.state.meter.strength) {\n case 'weak':\n label = this.weakLabel();\n break;\n\n case 'medium':\n label = this.mediumLabel();\n break;\n\n case 'strong':\n label = this.strongLabel();\n break;\n }\n\n if (label && this.state.infoText !== label) {\n this.setState({\n infoText: label\n });\n }\n } else {\n var promptLabel = this.promptLabel();\n\n if (this.state.infoText !== promptLabel) {\n this.setState({\n infoText: promptLabel\n });\n }\n }\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n if (this.props.feedback) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }\n }, {\n key: \"onMaskToggle\",\n value: function onMaskToggle() {\n this.setState(function (prevState) {\n return {\n unmasked: !prevState.unmasked\n };\n });\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay() {\n this.updateLabels();\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n if (this.inputRef && this.inputRef.current) {\n DomHandler.alignOverlay(this.overlayRef.current, this.inputRef.current.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter() {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.alignOverlay();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered() {\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"onFocus\",\n value: function onFocus(event) {\n var _this2 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n if (_this2.props.feedback) {\n _this2.showOverlay();\n }\n\n if (_this2.props.onFocus) {\n _this2.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this3.props.feedback) {\n _this3.hideOverlay();\n }\n\n if (_this3.props.onBlur) {\n _this3.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"onKeyup\",\n value: function onKeyup(e) {\n var _this4 = this;\n\n var keyCode = e.keyCode || e.which;\n\n if (this.props.feedback) {\n var value = e.target.value;\n var label = null;\n var meter = null;\n\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakLabel();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n\n case 2:\n label = this.mediumLabel();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongLabel();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptLabel();\n meter = null;\n break;\n }\n\n this.setState({\n meter: meter,\n infoText: label\n }, function () {\n if (!!keyCode && !_this4.state.overlayVisible) {\n _this4.showOverlay();\n }\n });\n }\n\n if (this.props.onKeyUp) {\n this.props.onKeyUp(e);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event, validatePattern) {\n if (this.props.onInput) {\n this.props.onInput(event, validatePattern);\n }\n\n if (!this.props.onChange) {\n if (event.target.value.length > 0) DomHandler.addClass(this.container, 'p-inputwrapper-filled');else DomHandler.removeClass(this.container, 'p-inputwrapper-filled');\n }\n }\n }, {\n key: \"testStrength\",\n value: function testStrength(str) {\n var level = 0;\n if (this.strongCheckRegExp.test(str)) level = 3;else if (this.mediumCheckRegExp.test(str)) level = 2;else if (str.length) level = 1;\n return level;\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this5 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.inputEl, function () {\n if (_this5.state.overlayVisible) {\n _this5.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this6 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this6.state.overlayVisible && !DomHandler.isAndroid()) {\n _this6.hideOverlay();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (prevProps.mediumRegex !== this.props.mediumRegex) {\n this.mediumCheckRegExp = new RegExp(this.props.mediumRegex);\n }\n\n if (prevProps.strongRegex !== this.props.strongRegex) {\n this.strongCheckRegExp = new RegExp(this.props.strongRegex);\n }\n\n if (!this.isFilled() && DomHandler.hasClass(this.container, 'p-inputwrapper-filled')) {\n DomHandler.removeClass(this.container, 'p-inputwrapper-filled');\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.inputEl,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderIcon\",\n value: function renderIcon() {\n if (this.props.toggleMask) {\n var iconClassName = this.state.unmasked ? 'pi pi-eye-slash' : 'pi pi-eye';\n var content = /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName,\n onClick: this.onMaskToggle\n });\n\n if (this.props.icon) {\n var defaultIconOptions = {\n onClick: this.onMaskToggle,\n className: iconClassName,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(this.props.icon, defaultIconOptions);\n }\n\n return content;\n }\n\n return null;\n }\n }, {\n key: \"renderPanel\",\n value: function renderPanel() {\n var panelClassName = classNames('p-password-panel p-component', this.props.panelClassName);\n\n var _ref = this.state.meter || {\n strength: '',\n width: '0%'\n },\n strength = _ref.strength,\n width = _ref.width;\n\n var header = ObjectUtils.getJSXElement(this.props.header, this.props);\n var footer = ObjectUtils.getJSXElement(this.props.footer, this.props);\n var content = this.props.content ? ObjectUtils.getJSXElement(this.props.content, this.props) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-password-meter\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-password-strength \".concat(strength),\n style: {\n width: width\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-password-info\"\n }, this.state.infoText));\n var panel = /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.overlayRef,\n classNames: \"p-connected-overlay\",\n in: this.state.overlayVisible,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.overlayRef,\n className: panelClassName,\n style: this.props.panelStyle,\n onClick: this.onPanelClick\n }, header, content, footer));\n return /*#__PURE__*/React.createElement(Portal, {\n element: panel,\n appendTo: this.props.appendTo\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n var containerClassName = classNames('p-password p-component p-inputwrapper', {\n 'p-inputwrapper-filled': this.isFilled(),\n 'p-inputwrapper-focus': this.state.focused,\n 'p-input-icon-right': this.props.toggleMask\n }, this.props.className);\n var inputClassName = classNames('p-password-input', this.props.inputClassName);\n var type = this.getInputType();\n var inputProps = ObjectUtils.findDiffKeys(this.props, Password.defaultProps);\n var icon = this.renderIcon();\n var panel = this.renderPanel();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this7.container = el;\n },\n id: this.props.id,\n className: containerClassName,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(InputText, _extends({\n ref: this.inputRef,\n id: this.props.inputId\n }, inputProps, {\n type: type,\n className: inputClassName,\n style: this.props.inputStyle,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyUp: this.onKeyup,\n onInput: this.onInput\n })), icon, panel);\n }\n }]);\n\n return Password;\n}(Component);\n\n_defineProperty(Password, \"defaultProps\", {\n id: null,\n inputId: null,\n inputRef: null,\n promptLabel: null,\n weakLabel: null,\n mediumLabel: null,\n strongLabel: null,\n mediumRegex: '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})',\n strongRegex: '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})',\n feedback: true,\n toggleMask: false,\n appendTo: null,\n header: null,\n content: null,\n footer: null,\n icon: null,\n tooltip: null,\n tooltipOptions: null,\n style: null,\n className: null,\n inputStyle: null,\n inputClassName: null,\n panelStyle: null,\n panelClassName: null,\n transitionOptions: null,\n onInput: null,\n onShow: null,\n onHide: null\n});\n\nexport { Password };\n","import * as react from 'react';\nimport * as reactDom from 'react-dom';\n(typeof globalThis !== 'undefined' ? globalThis : window).FullCalendarVDom = {\n Component: react.Component,\n createElement: react.createElement,\n render: reactDom.render,\n createRef: react.createRef,\n Fragment: react.Fragment,\n createContext: react.createContext,\n createPortal: reactDom.createPortal,\n flushToDom: flushToDom,\n unmountComponentAtNode: reactDom.unmountComponentAtNode\n};\nexport function flushToDom() {\n // always sync from top-level\n}\n//# sourceMappingURL=vdom.js.map","import { __assign, __extends } from \"tslib\";\nimport './vdom';\nimport * as React from 'react';\nimport { CalendarApi, CalendarDataProvider, CalendarContent, CalendarRoot } from '@fullcalendar/common';\nvar FullCalendar = /** @class */ (function (_super) {\n __extends(FullCalendar, _super);\n function FullCalendar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._calendarApi = new CalendarApi();\n return _this;\n }\n FullCalendar.prototype.render = function () {\n return (React.createElement(CalendarDataProvider, { optionOverrides: this.props, calendarApi: this._calendarApi }, function (data) { return (React.createElement(CalendarRoot, { options: data.calendarOptions, theme: data.theme, emitter: data.emitter }, function (classNames, height, isHeightAuto, forPrint) { return (React.createElement(\"div\", { className: classNames.join(' '), style: { height: height } },\n React.createElement(CalendarContent, __assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, data)))); })); }));\n };\n FullCalendar.prototype.getApi = function () {\n return this._calendarApi;\n };\n return FullCalendar;\n}(React.Component));\nexport default FullCalendar;\n// export all important utils/types\nexport * from '@fullcalendar/common';\n//# sourceMappingURL=main.js.map","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Divider = /*#__PURE__*/function (_Component) {\n _inherits(Divider, _Component);\n\n var _super = _createSuper(Divider);\n\n function Divider() {\n _classCallCheck(this, Divider);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Divider, [{\n key: \"isHorizontal\",\n get: function get() {\n return this.props.layout === 'horizontal';\n }\n }, {\n key: \"isVertical\",\n get: function get() {\n return this.props.layout === 'vertical';\n }\n }, {\n key: \"render\",\n value: function render() {\n var dividerClassName = classNames(\"p-divider p-component p-divider-\".concat(this.props.layout, \" p-divider-\").concat(this.props.type), {\n 'p-divider-left': this.isHorizontal && (!this.props.align || this.props.align === 'left'),\n 'p-divider-right': this.isHorizontal && this.props.align === 'right',\n 'p-divider-center': this.isHorizontal && this.props.align === 'center' || this.isVertical && (!this.props.align || this.props.align === 'center'),\n 'p-divider-top': this.isVertical && this.props.align === 'top',\n 'p-divider-bottom': this.isVertical && this.props.align === 'bottom'\n }, this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: dividerClassName,\n style: this.props.style,\n role: \"separator\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-divider-content\"\n }, this.props.children));\n }\n }]);\n\n return Divider;\n}(Component);\n\n_defineProperty(Divider, \"defaultProps\", {\n align: null,\n layout: 'horizontal',\n type: 'solid',\n style: null,\n className: null\n});\n\nexport { Divider };\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var isCallable = require('../internals/is-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && Object(it) instanceof $Symbol;\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.18.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var classof = require('../internals/classof');\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import React, { Component } from 'react';\nimport { classNames, Ripple, ObjectUtils, tip } from 'primereact/core';\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar SelectButtonItem = /*#__PURE__*/function (_Component) {\n _inherits(SelectButtonItem, _Component);\n\n var _super = _createSuper$1(SelectButtonItem);\n\n function SelectButtonItem(props) {\n var _this;\n\n _classCallCheck(this, SelectButtonItem);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SelectButtonItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n var keyCode = event.which;\n\n if (keyCode === 32 || keyCode === 13) {\n //space and enter\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n if (this.props.template) {\n return this.props.template(this.props.option);\n } else {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-button-label p-c\"\n }, this.props.label);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-button p-component', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n }, this.props.className);\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n role: \"button\",\n \"aria-label\": this.props.label,\n \"aria-pressed\": this.props.selected,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n onClick: this.onClick,\n onKeyDown: this.onKeyDown,\n tabIndex: this.props.tabIndex,\n onFocus: this.onFocus,\n onBlur: this.onBlur\n }, content, !this.props.disabled && /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return SelectButtonItem;\n}(Component);\n\n_defineProperty(SelectButtonItem, \"defaultProps\", {\n option: null,\n label: null,\n className: null,\n selected: null,\n tabIndex: null,\n ariaLabelledBy: null,\n template: null,\n onClick: null\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar SelectButton = /*#__PURE__*/function (_Component) {\n _inherits(SelectButton, _Component);\n\n var _super = _createSuper(SelectButton);\n\n function SelectButton(props) {\n var _this;\n\n _classCallCheck(this, SelectButton);\n\n _this = _super.call(this, props);\n _this.onOptionClick = _this.onOptionClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SelectButton, [{\n key: \"onOptionClick\",\n value: function onOptionClick(event) {\n var _this2 = this;\n\n if (this.props.disabled || this.isOptionDisabled(event.option)) {\n return;\n }\n\n var selected = this.isSelected(event.option);\n\n if (selected && !this.props.unselectable) {\n return;\n }\n\n var optionValue = this.getOptionValue(event.option);\n var newValue;\n\n if (this.props.multiple) {\n var currentValue = this.props.value ? _toConsumableArray(this.props.value) : [];\n if (selected) newValue = currentValue.filter(function (val) {\n return !ObjectUtils.equals(val, optionValue, _this2.props.dataKey);\n });else newValue = [].concat(_toConsumableArray(currentValue), [optionValue]);\n } else {\n if (selected) newValue = null;else newValue = optionValue;\n }\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: newValue,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: newValue\n }\n });\n }\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n return this.props.optionValue ? ObjectUtils.resolveFieldData(option, this.props.optionValue) : option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n var selected = false;\n var optionValue = this.getOptionValue(option);\n\n if (this.props.multiple) {\n if (this.props.value && this.props.value.length) {\n var _iterator = _createForOfIteratorHelper(this.props.value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var val = _step.value;\n\n if (ObjectUtils.equals(val, optionValue, this.props.dataKey)) {\n selected = true;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n } else {\n selected = ObjectUtils.equals(this.props.value, optionValue, this.props.dataKey);\n }\n\n return selected;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this3 = this;\n\n if (this.props.options && this.props.options.length) {\n return this.props.options.map(function (option, index) {\n var isDisabled = _this3.props.disabled || _this3.isOptionDisabled(option);\n\n var optionLabel = _this3.getOptionLabel(option);\n\n var tabIndex = isDisabled ? null : 0;\n return /*#__PURE__*/React.createElement(SelectButtonItem, {\n key: \"\".concat(optionLabel, \"_\").concat(index),\n label: optionLabel,\n className: option.className,\n option: option,\n onClick: _this3.onOptionClick,\n template: _this3.props.itemTemplate,\n selected: _this3.isSelected(option),\n tabIndex: tabIndex,\n disabled: isDisabled,\n ariaLabelledBy: _this3.props.ariaLabelledBy\n });\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var className = classNames('p-selectbutton p-buttonset p-component', this.props.className);\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this4.element = el;\n },\n className: className,\n style: this.props.style,\n role: \"group\"\n }, items);\n }\n }]);\n\n return SelectButton;\n}(Component);\n\n_defineProperty(SelectButton, \"defaultProps\", {\n id: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n tabIndex: null,\n multiple: false,\n unselectable: true,\n disabled: false,\n style: null,\n className: null,\n dataKey: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n itemTemplate: null,\n onChange: null\n});\n\nexport { SelectButton };\n","import React, { Component } from 'react';\nimport { Paginator } from 'primereact/paginator';\nimport { classNames, Ripple, ObjectUtils } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar DataViewLayoutOptions = /*#__PURE__*/function (_Component) {\n _inherits(DataViewLayoutOptions, _Component);\n\n var _super = _createSuper(DataViewLayoutOptions);\n\n function DataViewLayoutOptions(props) {\n var _this;\n\n _classCallCheck(this, DataViewLayoutOptions);\n\n _this = _super.call(this, props);\n _this.changeLayout = _this.changeLayout.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DataViewLayoutOptions, [{\n key: \"changeLayout\",\n value: function changeLayout(event, layoutMode) {\n this.props.onChange({\n originalEvent: event,\n value: layoutMode\n });\n event.preventDefault();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-dataview-layout-options p-selectbutton p-buttonset', this.props.className);\n var buttonListClass = classNames('p-button p-button-icon-only', {\n 'p-highlight': this.props.layout === 'list'\n });\n var buttonGridClass = classNames('p-button p-button-icon-only', {\n 'p-highlight': this.props.layout === 'grid'\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n style: this.props.style,\n className: className\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: buttonListClass,\n onClick: function onClick(event) {\n return _this2.changeLayout(event, 'list');\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"pi pi-bars\"\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: buttonGridClass,\n onClick: function onClick(event) {\n return _this2.changeLayout(event, 'grid');\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"pi pi-th-large\"\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }]);\n\n return DataViewLayoutOptions;\n}(Component);\n\n_defineProperty(DataViewLayoutOptions, \"defaultProps\", {\n id: null,\n style: null,\n className: null,\n layout: null,\n onChange: null\n});\n\nvar DataViewItem = /*#__PURE__*/function (_Component2) {\n _inherits(DataViewItem, _Component2);\n\n var _super2 = _createSuper(DataViewItem);\n\n function DataViewItem() {\n _classCallCheck(this, DataViewItem);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(DataViewItem, [{\n key: \"render\",\n value: function render() {\n return this.props.template(this.props.item, this.props.layout);\n }\n }]);\n\n return DataViewItem;\n}(Component);\n\n_defineProperty(DataViewItem, \"defaultProps\", {\n template: null,\n item: null,\n layout: null\n});\n\nvar DataView = /*#__PURE__*/function (_Component3) {\n _inherits(DataView, _Component3);\n\n var _super3 = _createSuper(DataView);\n\n function DataView(props) {\n var _this3;\n\n _classCallCheck(this, DataView);\n\n _this3 = _super3.call(this, props);\n\n if (!_this3.props.onPage) {\n _this3.state = {\n first: _this3.props.first,\n rows: _this3.props.rows\n };\n }\n\n _this3.sortChange = false;\n _this3.onPageChange = _this3.onPageChange.bind(_assertThisInitialized(_this3));\n return _this3;\n }\n\n _createClass(DataView, [{\n key: \"getItemRenderKey\",\n value: function getItemRenderKey(value) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(value, this.props.dataKey) : null;\n }\n }, {\n key: \"getTotalRecords\",\n value: function getTotalRecords() {\n if (this.props.totalRecords) return this.props.totalRecords;else return this.props.value ? this.props.value.length : 0;\n }\n }, {\n key: \"createPaginator\",\n value: function createPaginator(position) {\n var className = classNames('p-paginator-' + position, this.props.paginatorClassName);\n var first = this.props.onPage ? this.props.first : this.state.first;\n var rows = this.props.onPage ? this.props.rows : this.state.rows;\n var totalRecords = this.getTotalRecords();\n return /*#__PURE__*/React.createElement(Paginator, {\n first: first,\n rows: rows,\n pageLinkSize: this.props.pageLinkSize,\n className: className,\n onPageChange: this.onPageChange,\n template: this.props.paginatorTemplate,\n totalRecords: totalRecords,\n rowsPerPageOptions: this.props.rowsPerPageOptions,\n currentPageReportTemplate: this.props.currentPageReportTemplate,\n leftContent: this.props.paginatorLeft,\n rightContent: this.props.paginatorRight,\n alwaysShow: this.props.alwaysShowPaginator,\n dropdownAppendTo: this.props.paginatorDropdownAppendTo\n });\n }\n }, {\n key: \"onPageChange\",\n value: function onPageChange(event) {\n if (this.props.onPage) {\n this.props.onPage(event);\n } else {\n this.setState({\n first: event.first,\n rows: event.rows\n });\n }\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return !this.props.value || this.props.value.length === 0;\n }\n }, {\n key: \"sort\",\n value: function sort() {\n var _this4 = this;\n\n if (this.props.value) {\n var value = _toConsumableArray(this.props.value);\n\n value.sort(function (data1, data2) {\n var value1 = ObjectUtils.resolveFieldData(data1, _this4.props.sortField);\n var value2 = ObjectUtils.resolveFieldData(data2, _this4.props.sortField);\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return _this4.props.sortOrder * result;\n });\n return value;\n } else {\n return null;\n }\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n if (this.props.loading) {\n var iconClassName = classNames('p-dataview-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dataview-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderTopPaginator\",\n value: function renderTopPaginator() {\n if (this.props.paginator && (this.props.paginatorPosition !== 'bottom' || this.props.paginatorPosition === 'both')) {\n return this.createPaginator('top');\n }\n\n return null;\n }\n }, {\n key: \"renderBottomPaginator\",\n value: function renderBottomPaginator() {\n if (this.props.paginator && (this.props.paginatorPosition !== 'top' || this.props.paginatorPosition === 'both')) {\n return this.createPaginator('bottom');\n }\n\n return null;\n }\n }, {\n key: \"renderEmptyMessage\",\n value: function renderEmptyMessage() {\n if (!this.props.loading) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-col-12 col-12 p-dataview-emptymessage\"\n }, this.props.emptyMessage);\n }\n\n return null;\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n if (this.props.header) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dataview-header\"\n }, this.props.header);\n }\n\n return null;\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n if (this.props.footer) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dataview-footer\"\n }, \" \", this.props.footer);\n }\n\n return null;\n }\n }, {\n key: \"renderItems\",\n value: function renderItems(value) {\n var _this5 = this;\n\n if (value && value.length) {\n if (this.props.paginator) {\n var rows = this.props.onPage ? this.props.rows : this.state.rows;\n var first = this.props.lazy ? 0 : this.props.onPage ? this.props.first : this.state.first;\n var totalRecords = this.getTotalRecords();\n var last = Math.min(rows + first, totalRecords);\n var items = [];\n\n for (var i = first; i < last; i++) {\n var val = value[i];\n val && items.push( /*#__PURE__*/React.createElement(DataViewItem, {\n key: this.getItemRenderKey(value) || i,\n template: this.props.itemTemplate,\n layout: this.props.layout,\n item: val\n }));\n }\n\n return items;\n } else {\n return value.map(function (item, index) {\n return /*#__PURE__*/React.createElement(DataViewItem, {\n key: _this5.getItemRenderKey(item) || index,\n template: _this5.props.itemTemplate,\n layout: _this5.props.layout,\n item: item\n });\n });\n }\n } else {\n return this.renderEmptyMessage();\n }\n }\n }, {\n key: \"renderContent\",\n value: function renderContent(value) {\n var items = this.renderItems(value);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dataview-content\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-grid p-nogutter grid grid-nogutter\"\n }, items));\n }\n }, {\n key: \"processData\",\n value: function processData() {\n var data = this.props.value;\n\n if (data && data.length) {\n if (this.props.sortField) {\n data = this.sort();\n }\n }\n\n return data;\n }\n }, {\n key: \"render\",\n value: function render() {\n var value = this.processData();\n var className = classNames('p-dataview p-component', {\n 'p-dataview-list': this.props.layout === 'list',\n 'p-dataview-grid': this.props.layout === 'grid',\n 'p-dataview-loading': this.props.loading\n }, this.props.className);\n var loader = this.renderLoader();\n var topPaginator = this.renderTopPaginator();\n var bottomPaginator = this.renderBottomPaginator();\n var header = this.renderHeader();\n var footer = this.renderFooter();\n var content = this.renderContent(value);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n style: this.props.style,\n className: className\n }, loader, header, topPaginator, content, bottomPaginator, footer);\n }\n }]);\n\n return DataView;\n}(Component);\n\n_defineProperty(DataView, \"defaultProps\", {\n id: null,\n header: null,\n footer: null,\n value: null,\n layout: 'list',\n dataKey: null,\n rows: null,\n first: 0,\n totalRecords: null,\n paginator: false,\n paginatorPosition: 'bottom',\n alwaysShowPaginator: true,\n paginatorClassName: null,\n paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n paginatorLeft: null,\n paginatorRight: null,\n paginatorDropdownAppendTo: null,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})',\n emptyMessage: 'No records found',\n sortField: null,\n sortOrder: null,\n style: null,\n className: null,\n lazy: false,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n itemTemplate: null,\n onPage: null\n});\n\nexport { DataView, DataViewLayoutOptions };\n","import React, { Component } from 'react';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler, DomHandler, OverlayService, ZIndexUtils, Ripple, classNames, CSSTransition, Portal } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar OverlayPanel = /*#__PURE__*/function (_Component) {\n _inherits(OverlayPanel, _Component);\n\n var _super = _createSuper(OverlayPanel);\n\n function OverlayPanel(props) {\n var _this;\n\n _classCallCheck(this, OverlayPanel);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false\n };\n _this.onCloseClick = _this.onCloseClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.attributeSelector = UniqueComponentId();\n _this.overlayRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(OverlayPanel, [{\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this2 = this;\n\n if (!this.documentClickListener && this.props.dismissable) {\n this.documentClickListener = function (event) {\n if (!_this2.isPanelClicked && _this2.isOutsideClicked(event.target)) {\n _this2.hide();\n }\n\n _this2.isPanelClicked = false;\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this3 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function () {\n if (_this3.state.visible) {\n _this3.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this4 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this4.state.visible && !DomHandler.isAndroid()) {\n _this4.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return this.overlayRef && this.overlayRef.current && !(this.overlayRef.current.isSameNode(target) || this.overlayRef.current.contains(target));\n }\n }, {\n key: \"hasTargetChanged\",\n value: function hasTargetChanged(event, target) {\n return this.target != null && this.target !== (target || event.currentTarget || event.target);\n }\n }, {\n key: \"onCloseClick\",\n value: function onCloseClick(event) {\n this.hide();\n event.preventDefault();\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n this.isPanelClicked = true;\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n }\n }, {\n key: \"onContentClick\",\n value: function onContentClick() {\n this.isPanelClicked = true;\n }\n }, {\n key: \"toggle\",\n value: function toggle(event, target) {\n var _this5 = this;\n\n if (this.state.visible) {\n this.hide();\n\n if (this.hasTargetChanged(event, target)) {\n this.target = target || event.currentTarget || event.target;\n setTimeout(function () {\n _this5.show(event, _this5.target);\n }, 200);\n }\n } else {\n this.show(event, target);\n }\n }\n }, {\n key: \"show\",\n value: function show(event, target) {\n var _this6 = this;\n\n this.target = target || event.currentTarget || event.target;\n\n if (this.state.visible) {\n this.align();\n } else {\n this.setState({\n visible: true\n }, function () {\n _this6.overlayEventListener = function (e) {\n if (!_this6.isOutsideClicked(e.target)) {\n _this6.isPanelClicked = true;\n }\n };\n\n OverlayService.on('overlay-click', _this6.overlayEventListener);\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this7 = this;\n\n this.setState({\n visible: false\n }, function () {\n OverlayService.off('overlay-click', _this7.overlayEventListener);\n _this7.overlayEventListener = null;\n });\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.overlayRef.current.setAttribute(this.attributeSelector, '');\n this.align();\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"align\",\n value: function align() {\n if (this.target) {\n DomHandler.absolutePosition(this.overlayRef.current, this.target);\n var containerOffset = DomHandler.getOffset(this.overlayRef.current);\n var targetOffset = DomHandler.getOffset(this.target);\n var arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n\n this.overlayRef.current.style.setProperty('--overlayArrowLeft', \"\".concat(arrowLeft, \"px\"));\n\n if (containerOffset.top < targetOffset.top) {\n DomHandler.addClass(this.overlayRef.current, 'p-overlaypanel-flipped');\n }\n }\n }\n }, {\n key: \"createStyle\",\n value: function createStyle() {\n if (!this.styleElement) {\n this.styleElement = document.createElement('style');\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n\n for (var breakpoint in this.props.breakpoints) {\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-overlaypanel[\").concat(this.attributeSelector, \"] {\\n width: \").concat(this.props.breakpoints[breakpoint], \" !important;\\n }\\n }\\n \");\n }\n\n this.styleElement.innerHTML = innerHTML;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.breakpoints) {\n this.createStyle();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n\n if (this.overlayEventListener) {\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"renderCloseIcon\",\n value: function renderCloseIcon() {\n if (this.props.showCloseIcon) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-overlaypanel-close p-link\",\n onClick: this.onCloseClick,\n \"aria-label\": this.props.ariaCloseLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-overlaypanel-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-overlaypanel p-component', this.props.className);\n var closeIcon = this.renderCloseIcon();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.overlayRef,\n classNames: \"p-overlaypanel\",\n in: this.state.visible,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.overlayRef,\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.onPanelClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-overlaypanel-content\",\n onClick: this.onContentClick,\n onMouseDown: this.onContentClick\n }, this.props.children), closeIcon));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return OverlayPanel;\n}(Component);\n\n_defineProperty(OverlayPanel, \"defaultProps\", {\n id: null,\n dismissable: true,\n showCloseIcon: false,\n style: null,\n className: null,\n appendTo: null,\n breakpoints: null,\n ariaCloseLabel: 'close',\n transitionOptions: null,\n onShow: null,\n onHide: null\n});\n\nexport { OverlayPanel };\n","import React, { Component } from 'react';\nimport { OverlayService, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler, classNames, ObjectUtils, CSSTransition, Portal } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Menu = /*#__PURE__*/function (_Component) {\n _inherits(Menu, _Component);\n\n var _super = _createSuper(Menu);\n\n function Menu(props) {\n var _this;\n\n _classCallCheck(this, Menu);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: !props.popup\n };\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.menuRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(Menu, [{\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n if (this.props.popup) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n }\n }\n }, {\n key: \"onItemClick\",\n value: function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (this.props.popup) {\n this.hide(event);\n }\n }\n }, {\n key: \"onItemKeyDown\",\n value: function onItemKeyDown(event, item) {\n var listItem = event.currentTarget.parentElement;\n\n switch (event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.children[0].focus();\n }\n\n event.preventDefault();\n break;\n //up\n\n case 38:\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.children[0].focus();\n }\n\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (this.props.popup) {\n if (this.state.visible) this.hide(event);else this.show(event);\n }\n }\n }, {\n key: \"show\",\n value: function show(event) {\n var _this2 = this;\n\n this.target = event.currentTarget;\n var currentEvent = event;\n this.setState({\n visible: true\n }, function () {\n if (_this2.props.onShow) {\n _this2.props.onShow(currentEvent);\n }\n });\n }\n }, {\n key: \"hide\",\n value: function hide(event) {\n var _this3 = this;\n\n var currentEvent = event;\n this.setState({\n visible: false\n }, function () {\n if (_this3.props.onHide) {\n _this3.props.onHide(currentEvent);\n }\n });\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n ZIndexUtils.set('menu', this.menuRef.current, this.props.baseZIndex);\n DomHandler.absolutePosition(this.menuRef.current, this.target);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.bindDocumentListeners();\n this.bindScrollListener();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n this.target = null;\n this.unbindDocumentListeners();\n this.unbindScrollListener();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.menuRef.current);\n }\n }, {\n key: \"bindDocumentListeners\",\n value: function bindDocumentListeners() {\n var _this4 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this4.state.visible && _this4.isOutsideClicked(event)) {\n _this4.hide(event);\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n\n if (!this.documentResizeListener) {\n this.documentResizeListener = function (event) {\n if (_this4.state.visible && !DomHandler.isAndroid()) {\n _this4.hide(event);\n }\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n }, {\n key: \"unbindDocumentListeners\",\n value: function unbindDocumentListeners() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this5 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function (event) {\n if (_this5.state.visible) {\n _this5.hide(event);\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.menuRef && this.menuRef.current && !(this.menuRef.current.isSameNode(event.target) || this.menuRef.current.contains(event.target));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentListeners();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n ZIndexUtils.clear(this.menuRef.current);\n }\n }, {\n key: \"renderSubmenu\",\n value: function renderSubmenu(submenu, index) {\n var _this6 = this;\n\n var className = classNames('p-submenu-header', {\n 'p-disabled': submenu.disabled\n }, submenu.className);\n var items = submenu.items.map(function (item, index) {\n return _this6.renderMenuitem(item, index);\n });\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: submenu.label + '_' + index\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n style: submenu.style,\n role: \"presentation\",\n \"aria-disabled\": submenu.disabled\n }, submenu.label), items);\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: 'separator_' + index,\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem(item, index) {\n var _this7 = this;\n\n var className = classNames('p-menuitem', item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var tabIndex = item.disabled ? null : 0;\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: linkClassName,\n role: \"menuitem\",\n target: item.target,\n onClick: function onClick(event) {\n return _this7.onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return _this7.onItemKeyDown(event, item);\n },\n tabIndex: tabIndex,\n \"aria-disabled\": item.disabled\n }, icon, label);\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this7.onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return _this7.onItemKeyDown(event, item);\n },\n className: linkClassName,\n tabIndex: tabIndex,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n className: className,\n style: item.style,\n role: \"none\"\n }, content);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index) {\n if (item.separator) {\n return this.renderSeparator(index);\n } else {\n if (item.items) return this.renderSubmenu(item, index);else return this.renderMenuitem(item, index);\n }\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this8 = this;\n\n return this.props.model.map(function (item, index) {\n return _this8.renderItem(item, index);\n });\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n if (this.props.model) {\n var className = classNames('p-menu p-component', this.props.className, {\n 'p-menu-overlay': this.props.popup\n });\n var menuitems = this.renderMenu();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.menuRef,\n classNames: \"p-connected-overlay\",\n in: this.state.visible,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.menuRef,\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.onPanelClick\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-menu-list p-reset\",\n role: \"menu\"\n }, menuitems)));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return this.props.popup ? /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n }) : element;\n }\n }]);\n\n return Menu;\n}(Component);\n\n_defineProperty(Menu, \"defaultProps\", {\n id: null,\n model: null,\n popup: false,\n style: null,\n className: null,\n autoZIndex: true,\n baseZIndex: 0,\n appendTo: null,\n transitionOptions: null,\n onShow: null,\n onHide: null\n});\n\nexport { Menu };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames, Ripple, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar MegaMenu = /*#__PURE__*/function (_Component) {\n _inherits(MegaMenu, _Component);\n\n var _super = _createSuper(MegaMenu);\n\n function MegaMenu(props) {\n var _this;\n\n _classCallCheck(this, MegaMenu);\n\n _this = _super.call(this, props);\n _this.state = {\n activeItem: null\n };\n _this.onLeafClick = _this.onLeafClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(MegaMenu, [{\n key: \"onLeafClick\",\n value: function onLeafClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n this.setState({\n activeItem: null\n });\n }\n }, {\n key: \"onCategoryMouseEnter\",\n value: function onCategoryMouseEnter(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (this.state.activeItem) {\n this.setState({\n activeItem: item\n });\n }\n }\n }, {\n key: \"onCategoryClick\",\n value: function onCategoryClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: this.props.item\n });\n }\n\n if (item.items) {\n if (this.state.activeItem && this.state.activeItem === item) {\n this.setState({\n activeItem: null\n });\n } else {\n this.setState({\n activeItem: item\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onCategoryKeyDown\",\n value: function onCategoryKeyDown(event, item) {\n var listItem = event.currentTarget.parentElement;\n\n switch (event.which) {\n //down\n case 40:\n if (this.isHorizontal()) this.expandMenu(item);else this.navigateToNextItem(listItem);\n event.preventDefault();\n break;\n //up\n\n case 38:\n if (this.isVertical()) this.navigateToPrevItem(listItem);else if (item.items && item === this.state.activeItem) this.collapseMenu();\n event.preventDefault();\n break;\n //right\n\n case 39:\n if (this.isHorizontal()) this.navigateToNextItem(listItem);else this.expandMenu(item);\n event.preventDefault();\n break;\n //left\n\n case 37:\n if (this.isHorizontal()) this.navigateToPrevItem(listItem);else if (item.items && item === this.state.activeItem) this.collapseMenu();\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"expandMenu\",\n value: function expandMenu(item) {\n if (item.items) {\n this.setState({\n activeItem: item\n });\n }\n }\n }, {\n key: \"collapseMenu\",\n value: function collapseMenu(item) {\n this.setState({\n activeItem: null\n });\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"navigateToNextItem\",\n value: function navigateToNextItem(listItem) {\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.children[0].focus();\n }\n }\n }, {\n key: \"navigateToPrevItem\",\n value: function navigateToPrevItem(listItem) {\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.children[0].focus();\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.props.orientation === 'horizontal';\n }\n }, {\n key: \"isVertical\",\n value: function isVertical() {\n return this.props.orientation === 'vertical';\n }\n }, {\n key: \"getColumnClassName\",\n value: function getColumnClassName(category) {\n var length = category.items ? category.items.length : 0;\n var columnClass;\n\n switch (length) {\n case 2:\n columnClass = 'p-megamenu-col-6';\n break;\n\n case 3:\n columnClass = 'p-megamenu-col-4';\n break;\n\n case 4:\n columnClass = 'p-megamenu-col-3';\n break;\n\n case 6:\n columnClass = 'p-megamenu-col-2';\n break;\n\n default:\n columnClass = 'p-megamenu-col-12';\n break;\n }\n\n return columnClass;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this2.container && !_this2.container.contains(event.target)) {\n _this2.setState({\n activeItem: null\n });\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: 'separator_' + index,\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n }\n }, {\n key: \"renderSubmenuIcon\",\n value: function renderSubmenuIcon(item) {\n if (item.items) {\n var className = classNames('p-submenu-icon pi', {\n 'pi-angle-down': this.isHorizontal(),\n 'pi-angle-right': this.isVertical()\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n });\n }\n\n return null;\n }\n }, {\n key: \"renderSubmenuItem\",\n value: function renderSubmenuItem(item, index) {\n var _this3 = this;\n\n if (item.separator) {\n return this.renderSeparator(index);\n } else {\n var className = classNames('p-menuitem', item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames(item.icon, 'p-menuitem-icon');\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: linkClassName,\n target: item.target,\n onClick: function onClick(event) {\n return _this3.onLeafClick(event, item);\n },\n role: \"menuitem\",\n \"aria-disabled\": item.disabled\n }, icon, label, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this3.onLeafClick(event, item);\n },\n className: linkClassName,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n className: className,\n style: item.style,\n role: \"none\"\n }, content);\n }\n }\n }, {\n key: \"renderSubmenu\",\n value: function renderSubmenu(submenu) {\n var _this4 = this;\n\n var className = classNames('p-megamenu-submenu-header', {\n 'p-disabled': submenu.disabled\n }, submenu.className);\n var items = submenu.items.map(function (item, index) {\n return _this4.renderSubmenuItem(item, index);\n });\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: submenu.label\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n style: submenu.style,\n role: \"presentation\",\n \"aria-disabled\": submenu.disabled\n }, submenu.label), items);\n }\n }, {\n key: \"renderSubmenus\",\n value: function renderSubmenus(column) {\n var _this5 = this;\n\n return column.map(function (submenu, index) {\n return _this5.renderSubmenu(submenu, index);\n });\n }\n }, {\n key: \"renderColumn\",\n value: function renderColumn(category, column, index, columnClassName) {\n var submenus = this.renderSubmenus(column);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: category.label + '_column_' + index,\n className: columnClassName\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-megamenu-submenu\",\n role: \"menu\"\n }, submenus));\n }\n }, {\n key: \"renderColumns\",\n value: function renderColumns(category) {\n var _this6 = this;\n\n if (category.items) {\n var columnClassName = this.getColumnClassName(category);\n return category.items.map(function (column, index) {\n return _this6.renderColumn(category, column, index, columnClassName);\n });\n }\n\n return null;\n }\n }, {\n key: \"renderCategoryPanel\",\n value: function renderCategoryPanel(category) {\n if (category.items) {\n var columns = this.renderColumns(category);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-megamenu-panel\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-megamenu-grid\"\n }, columns));\n }\n\n return null;\n }\n }, {\n key: \"renderCategory\",\n value: function renderCategory(category, index) {\n var _this7 = this;\n\n var className = classNames('p-menuitem', {\n 'p-menuitem-active': category === this.state.activeItem\n }, category.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': category.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', category.icon);\n var icon = category.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = category.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, category.label);\n var itemContent = category.template ? ObjectUtils.getJSXElement(category.template, category) : null;\n var submenuIcon = this.renderSubmenuIcon(category);\n var panel = this.renderCategoryPanel(category);\n return /*#__PURE__*/React.createElement(\"li\", {\n key: category.label + '_' + index,\n className: className,\n style: category.style,\n onMouseEnter: function onMouseEnter(e) {\n return _this7.onCategoryMouseEnter(e, category);\n },\n role: \"none\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: category.url || '#',\n className: linkClassName,\n target: category.target,\n onClick: function onClick(e) {\n return _this7.onCategoryClick(e, category);\n },\n onKeyDown: function onKeyDown(e) {\n return _this7.onCategoryKeyDown(e, category);\n },\n role: \"menuitem\",\n \"aria-haspopup\": category.items != null\n }, icon, label, itemContent, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null)), panel);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this8 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (item, index) {\n return _this8.renderCategory(item, index, true);\n });\n }\n\n return null;\n }\n }, {\n key: \"renderCustomContent\",\n value: function renderCustomContent() {\n if (this.props.children) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-megamenu-custom\"\n }, this.props.children);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n var className = classNames('p-megamenu p-component', {\n 'p-megamenu-horizontal': this.props.orientation === 'horizontal',\n 'p-megamenu-vertical': this.props.orientation === 'vertical'\n }, this.props.className);\n var menu = this.renderMenu();\n var customContent = this.renderCustomContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-megamenu-root-list\",\n role: \"menubar\"\n }, menu), customContent);\n }\n }]);\n\n return MegaMenu;\n}(Component);\n\n_defineProperty(MegaMenu, \"defaultProps\", {\n id: null,\n model: null,\n style: null,\n className: null,\n orientation: 'horizontal'\n});\n\nexport { MegaMenu };\n","import React, { Component } from 'react';\nimport { ObjectUtils, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Message = /*#__PURE__*/function (_Component) {\n _inherits(Message, _Component);\n\n var _super = _createSuper(Message);\n\n function Message() {\n _classCallCheck(this, Message);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Message, [{\n key: \"getContent\",\n value: function getContent() {\n if (this.props.content) {\n return ObjectUtils.getJSXElement(this.props.content, this.props);\n }\n\n var icon = classNames('p-inline-message-icon pi', {\n 'pi-info-circle': this.props.severity === 'info',\n 'pi-exclamation-triangle': this.props.severity === 'warn',\n 'pi-times-circle': this.props.severity === 'error',\n 'pi-check': this.props.severity === 'success'\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-inline-message-text\"\n }, this.props.text));\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-inline-message p-component', {\n 'p-inline-message-info': this.props.severity === 'info',\n 'p-inline-message-warn': this.props.severity === 'warn',\n 'p-inline-message-error': this.props.severity === 'error',\n 'p-inline-message-success': this.props.severity === 'success',\n 'p-inline-message-icon-only': !this.props.text\n }, this.props.className);\n var content = this.getContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n \"aria-live\": \"polite\",\n className: className,\n style: this.props.style,\n role: \"alert\"\n }, content);\n }\n }]);\n\n return Message;\n}(Component);\n\n_defineProperty(Message, \"defaultProps\", {\n id: null,\n className: null,\n style: null,\n text: null,\n severity: 'info',\n content: null\n});\n\nexport { Message };\n","var _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n * MIT license http://www.opensource.org/licenses/mit-license.php/\n * @author Lea Verou http://lea.verou.me\n */\n\nvar Prism = (function(){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-(\\w+)\\b/i;\nvar uniqueId = 0;\n\nvar _ = _self.Prism = {\n\tmanual: _self.Prism && _self.Prism.manual,\n\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\tutil: {\n\t\tencode: function (tokens) {\n\t\t\tif (tokens instanceof Token) {\n\t\t\t\treturn new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);\n\t\t\t} else if (_.util.type(tokens) === 'Array') {\n\t\t\t\treturn tokens.map(_.util.encode);\n\t\t\t} else {\n\t\t\t\treturn tokens.replace(/&/g, '&').replace(/ text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tpattern.lastIndex = 0;\n\n\t\t\t\t\tvar match = pattern.exec(str),\n\t\t\t\t\t delNum = 1;\n\n\t\t\t\t\t// Greedy patterns can override/remove up to two previously matched tokens\n\t\t\t\t\tif (!match && greedy && i != strarr.length - 1) {\n\t\t\t\t\t\tpattern.lastIndex = pos;\n\t\t\t\t\t\tmatch = pattern.exec(text);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index + (lookbehind ? match[1].length : 0),\n\t\t\t\t\t\t to = match.index + match[0].length,\n\t\t\t\t\t\t k = i,\n\t\t\t\t\t\t p = pos;\n\n\t\t\t\t\t\tfor (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) {\n\t\t\t\t\t\t\tp += strarr[k].length;\n\t\t\t\t\t\t\t// Move the index i to the element in strarr that is closest to from\n\t\t\t\t\t\t\tif (from >= p) {\n\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t\tpos = p;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * If strarr[i] is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\t * If strarr[k - 1] is greedy we are in conflict with another greedy pattern\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (strarr[i] instanceof Token || strarr[k - 1].greedy) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Number of tokens to delete and replace with the new match\n\t\t\t\t\t\tdelNum = k - i;\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\tif (oneshot) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(lookbehind) {\n\t\t\t\t\t\tlookbehindLength = match[1].length;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar from = match.index + lookbehindLength,\n\t\t\t\t\t match = match[0].slice(lookbehindLength),\n\t\t\t\t\t to = from + match.length,\n\t\t\t\t\t before = str.slice(0, from),\n\t\t\t\t\t after = str.slice(to);\n\n\t\t\t\t\tvar args = [i, delNum];\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\t++i;\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t\targs.push(before);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);\n\n\t\t\t\t\targs.push(wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\targs.push(after);\n\t\t\t\t\t}\n\n\t\t\t\t\tArray.prototype.splice.apply(strarr, args);\n\n\t\t\t\t\tif (delNum != 1)\n\t\t\t\t\t\t_.matchGrammar(text, strarr, grammar, i, pos, true, token);\n\n\t\t\t\t\tif (oneshot)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\ttokenize: function(text, grammar, language) {\n\t\tvar strarr = [text];\n\n\t\tvar rest = grammar.rest;\n\n\t\tif (rest) {\n\t\t\tfor (var token in rest) {\n\t\t\t\tgrammar[token] = rest[token];\n\t\t\t}\n\n\t\t\tdelete grammar.rest;\n\t\t}\n\n\t\t_.matchGrammar(text, strarr, grammar, 0, 0, false);\n\n\t\treturn strarr;\n\t},\n\n\thooks: {\n\t\tall: {},\n\n\t\tadd: function (name, callback) {\n\t\t\tvar hooks = _.hooks.all;\n\n\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\thooks[name].push(callback);\n\t\t},\n\n\t\trun: function (name, env) {\n\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i=0, callback; callback = callbacks[i++];) {\n\t\t\t\tcallback(env);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar Token = _.Token = function(type, content, alias, matchedStr, greedy) {\n\tthis.type = type;\n\tthis.content = content;\n\tthis.alias = alias;\n\t// Copy of the full string this token was created from\n\tthis.length = (matchedStr || \"\").length|0;\n\tthis.greedy = !!greedy;\n};\n\nToken.stringify = function(o, language, parent) {\n\tif (typeof o == 'string') {\n\t\treturn o;\n\t}\n\n\tif (_.util.type(o) === 'Array') {\n\t\treturn o.map(function(element) {\n\t\t\treturn Token.stringify(element, language, o);\n\t\t}).join('');\n\t}\n\n\tvar env = {\n\t\ttype: o.type,\n\t\tcontent: Token.stringify(o.content, language, parent),\n\t\ttag: 'span',\n\t\tclasses: ['token', o.type],\n\t\tattributes: {},\n\t\tlanguage: language,\n\t\tparent: parent\n\t};\n\n\tif (o.alias) {\n\t\tvar aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];\n\t\tArray.prototype.push.apply(env.classes, aliases);\n\t}\n\n\t_.hooks.run('wrap', env);\n\n\tvar attributes = Object.keys(env.attributes).map(function(name) {\n\t\treturn name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t}).join(' ');\n\n\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';\n\n};\n\nif (!_self.document) {\n\tif (!_self.addEventListener) {\n\t\t// in Node.js\n\t\treturn _self.Prism;\n\t}\n\n\tif (!_.disableWorkerMessageHandler) {\n\t\t// In worker\n\t\t_self.addEventListener('message', function (evt) {\n\t\t\tvar message = JSON.parse(evt.data),\n\t\t\t\tlang = message.language,\n\t\t\t\tcode = message.code,\n\t\t\t\timmediateClose = message.immediateClose;\n\n\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\tif (immediateClose) {\n\t\t\t\t_self.close();\n\t\t\t}\n\t\t}, false);\n\t}\n\n\treturn _self.Prism;\n}\n\n//Get current script and highlight\nvar script = document.currentScript || [].slice.call(document.getElementsByTagName(\"script\")).pop();\n\nif (script) {\n\t_.filename = script.src;\n\n\tif (!_.manual && !script.hasAttribute('data-manual')) {\n\t\tif(document.readyState !== \"loading\") {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(_.highlightAll);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(_.highlightAll, 16);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdocument.addEventListener('DOMContentLoaded', _.highlightAll);\n\t\t}\n\t}\n}\n\nreturn _self.Prism;\n\n})();\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n","import React, { Component } from 'react';\nimport { ObjectUtils, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Timeline = /*#__PURE__*/function (_Component) {\n _inherits(Timeline, _Component);\n\n var _super = _createSuper(Timeline);\n\n function Timeline() {\n _classCallCheck(this, Timeline);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Timeline, [{\n key: \"getKey\",\n value: function getKey(item, index) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(item, this.props.dataKey) : \"pr_id__\".concat(index);\n }\n }, {\n key: \"renderEvents\",\n value: function renderEvents() {\n var _this = this;\n\n return this.props.value && this.props.value.map(function (item, index) {\n var opposite = ObjectUtils.getJSXElement(_this.props.opposite, item, index);\n var marker = ObjectUtils.getJSXElement(_this.props.marker, item, index) || /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-timeline-event-marker\"\n });\n var connector = index !== _this.props.value.length - 1 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-timeline-event-connector\"\n });\n var content = ObjectUtils.getJSXElement(_this.props.content, item, index);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: _this.getKey(item, index),\n className: \"p-timeline-event\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-timeline-event-opposite\"\n }, opposite), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-timeline-event-separator\"\n }, marker, connector), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-timeline-event-content\"\n }, content));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var containerClassName = classNames('p-timeline p-component', (_classNames = {}, _defineProperty(_classNames, \"p-timeline-\".concat(this.props.align), true), _defineProperty(_classNames, \"p-timeline-\".concat(this.props.layout), true), _classNames), this.props.className);\n var events = this.renderEvents();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: containerClassName,\n style: this.props.style\n }, events);\n }\n }]);\n\n return Timeline;\n}(Component);\n\n_defineProperty(Timeline, \"defaultProps\", {\n id: null,\n value: null,\n align: 'left',\n layout: 'vertical',\n dataKey: null,\n className: null,\n style: null,\n opposite: null,\n marker: null,\n content: null\n});\n\nexport { Timeline };\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar has = require('../internals/has');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = has(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var aCallable = require('../internals/a-callable');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aCallable(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = constructorRegExp.exec;\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(function () { /* empty */ });\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(Object, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec.call(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (has(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._U = 0;\n this._V = 0;\n this._W = null;\n this._X = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._Y = null;\nPromise._Z = null;\nPromise._0 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._V === 3) {\n self = self._W;\n }\n if (Promise._Y) {\n Promise._Y(self);\n }\n if (self._V === 0) {\n if (self._U === 0) {\n self._U = 1;\n self._X = deferred;\n return;\n }\n if (self._U === 1) {\n self._U = 2;\n self._X = [self._X, deferred];\n return;\n }\n self._X.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._V === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._V === 1) {\n resolve(deferred.promise, self._W);\n } else {\n reject(deferred.promise, self._W);\n }\n return;\n }\n var ret = tryCallOne(cb, self._W);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._V = 3;\n self._W = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._V = 1;\n self._W = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._V = 2;\n self._W = newValue;\n if (Promise._Z) {\n Promise._Z(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._U === 1) {\n handle(self, self._X);\n self._X = null;\n }\n if (self._U === 2) {\n for (var i = 0; i < self._X.length; i++) {\n handle(self, self._X[i]);\n }\n self._X = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React, { Component } from 'react';\nimport { DomHandler } from 'primereact/core';\nimport PrimeReact from 'primereact/api';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Ripple = /*#__PURE__*/function (_Component) {\n _inherits(Ripple, _Component);\n\n var _super = _createSuper(Ripple);\n\n function Ripple(props) {\n var _this;\n\n _classCallCheck(this, Ripple);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Ripple, [{\n key: \"getTarget\",\n value: function getTarget() {\n return this.ink && this.ink.parentElement;\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (this.target) {\n this.target.addEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (this.target) {\n this.target.removeEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (!this.ink || getComputedStyle(this.ink, null).display === 'none') {\n return;\n }\n\n DomHandler.removeClass(this.ink, 'p-ink-active');\n\n if (!DomHandler.getHeight(this.ink) && !DomHandler.getWidth(this.ink)) {\n var d = Math.max(DomHandler.getOuterWidth(this.target), DomHandler.getOuterHeight(this.target));\n this.ink.style.height = d + 'px';\n this.ink.style.width = d + 'px';\n }\n\n var offset = DomHandler.getOffset(this.target);\n var x = event.pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(this.ink) / 2;\n var y = event.pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(this.ink) / 2;\n this.ink.style.top = y + 'px';\n this.ink.style.left = x + 'px';\n DomHandler.addClass(this.ink, 'p-ink-active');\n }\n }, {\n key: \"onAnimationEnd\",\n value: function onAnimationEnd(event) {\n DomHandler.removeClass(event.currentTarget, 'p-ink-active');\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.ink) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.ink && !this.target) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.ink) {\n this.target = null;\n this.unbindEvents();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return PrimeReact.ripple && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this2.ink = el;\n },\n className: \"p-ink\",\n onAnimationEnd: this.onAnimationEnd\n });\n }\n }]);\n\n return Ripple;\n}(Component);\n\nexport { Ripple };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Slider = /*#__PURE__*/function (_Component) {\n _inherits(Slider, _Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n _this.onBarClick = _this.onBarClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.handleIndex = 0;\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"spin\",\n value: function spin(event, dir) {\n var value = (this.props.range ? this.props.value[this.handleIndex] : this.props.value) || 0;\n var step = (this.props.step || 1) * dir;\n this.updateValue(event, value + step);\n event.preventDefault();\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event, index) {\n if (this.props.disabled) {\n return;\n }\n\n this.dragging = true;\n this.updateDomData();\n this.sliderHandleClick = true;\n this.handleIndex = index; //event.preventDefault();\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event, index) {\n this.bindDragListeners();\n this.onDragStart(event, index);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event, index) {\n this.bindTouchListeners();\n this.onDragStart(event, index);\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event, index) {\n if (this.props.disabled) {\n return;\n }\n\n this.handleIndex = index;\n var key = event.key;\n\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n this.spin(event, 1);\n } else if (key === 'ArrowLeft' || key === 'ArrowDown') {\n this.spin(event, -1);\n }\n }\n }, {\n key: \"onBarClick\",\n value: function onBarClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n if (!this.sliderHandleClick) {\n this.updateDomData();\n this.setValue(event);\n }\n\n this.sliderHandleClick = false;\n }\n }, {\n key: \"onDrag\",\n value: function onDrag(event) {\n if (this.dragging) {\n this.setValue(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n\n if (this.props.onSlideEnd) {\n this.props.onSlideEnd({\n originalEvent: event,\n value: this.props.value\n });\n }\n\n this.unbindDragListeners();\n this.unbindTouchListeners();\n }\n }\n }, {\n key: \"bindDragListeners\",\n value: function bindDragListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.dragListener);\n }\n\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.dragEndListener);\n }\n }\n }, {\n key: \"unbindDragListeners\",\n value: function unbindDragListeners() {\n if (this.dragListener) {\n document.removeEventListener('mousemove', this.dragListener);\n this.dragListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('mouseup', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n }, {\n key: \"bindTouchListeners\",\n value: function bindTouchListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('touchmove', this.dragListener);\n }\n\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('touchend', this.dragEndListener);\n }\n }\n }, {\n key: \"unbindTouchListeners\",\n value: function unbindTouchListeners() {\n if (this.dragListener) {\n document.removeEventListener('touchmove', this.dragListener);\n this.dragListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('touchend', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n }, {\n key: \"updateDomData\",\n value: function updateDomData() {\n var rect = this.el.getBoundingClientRect();\n this.initX = rect.left + DomHandler.getWindowScrollLeft();\n this.initY = rect.top + DomHandler.getWindowScrollTop();\n this.barWidth = this.el.offsetWidth;\n this.barHeight = this.el.offsetHeight;\n }\n }, {\n key: \"setValue\",\n value: function setValue(event) {\n var handleValue;\n var pageX = event.touches ? event.touches[0].pageX : event.pageX;\n var pageY = event.touches ? event.touches[0].pageY : event.pageY;\n if (this.props.orientation === 'horizontal') handleValue = (pageX - this.initX) * 100 / this.barWidth;else handleValue = (this.initY + this.barHeight - pageY) * 100 / this.barHeight;\n var newValue = (this.props.max - this.props.min) * (handleValue / 100) + this.props.min;\n\n if (this.props.step) {\n var oldValue = this.props.range ? this.props.value[this.handleIndex] : this.props.value;\n var diff = newValue - oldValue;\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / this.props.step - oldValue / this.props.step) * this.props.step;else if (diff > 0) newValue = oldValue + Math.floor(newValue / this.props.step - oldValue / this.props.step) * this.props.step;\n } else {\n newValue = Math.floor(newValue);\n }\n\n this.updateValue(event, newValue);\n }\n }, {\n key: \"updateValue\",\n value: function updateValue(event, value) {\n var newValue = parseFloat(value.toFixed(10));\n\n if (this.props.range) {\n if (this.handleIndex === 0) {\n if (newValue < this.props.min) newValue = this.props.min;else if (newValue > this.props.value[1]) newValue = this.props.value[1];\n } else {\n if (newValue > this.props.max) newValue = this.props.max;else if (newValue < this.props.value[0]) newValue = this.props.value[0];\n }\n\n var newValues = _toConsumableArray(this.props.value);\n\n newValues[this.handleIndex] = newValue;\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: newValues\n });\n }\n } else {\n if (newValue < this.props.min) newValue = this.props.min;else if (newValue > this.props.max) newValue = this.props.max;\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: newValue\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDragListeners();\n this.unbindTouchListeners();\n }\n }, {\n key: \"renderHandle\",\n value: function renderHandle(leftValue, bottomValue, index) {\n var _this2 = this;\n\n var handleClassName = classNames('p-slider-handle', {\n 'p-slider-handle-start': index === 0,\n 'p-slider-handle-end': index === 1,\n 'p-slider-handle-active': this.handleIndex === index\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(event) {\n return _this2.onMouseDown(event, index);\n },\n onTouchStart: function onTouchStart(event) {\n return _this2.onTouchStart(event, index);\n },\n onKeyDown: function onKeyDown(event) {\n return _this2.onKeyDown(event, index);\n },\n tabIndex: this.props.tabIndex,\n className: handleClassName,\n style: {\n transition: this.dragging ? 'none' : null,\n left: leftValue !== null && leftValue + '%',\n bottom: bottomValue && bottomValue + '%'\n },\n role: \"slider\",\n \"aria-valuemin\": this.props.min,\n \"aria-valuemax\": this.props.max,\n \"aria-valuenow\": leftValue || bottomValue,\n \"aria-labelledby\": this.props.ariaLabelledBy\n });\n }\n }, {\n key: \"renderRangeSlider\",\n value: function renderRangeSlider() {\n var values = this.props.value || [0, 0];\n var horizontal = this.props.orientation === 'horizontal';\n var handleValueStart = (values[0] < this.props.min ? 0 : values[0] - this.props.min) * 100 / (this.props.max - this.props.min);\n var handleValueEnd = (values[1] > this.props.max ? 100 : values[1] - this.props.min) * 100 / (this.props.max - this.props.min);\n var rangeStartHandle = horizontal ? this.renderHandle(handleValueStart, null, 0) : this.renderHandle(null, handleValueStart, 0);\n var rangeEndHandle = horizontal ? this.renderHandle(handleValueEnd, null, 1) : this.renderHandle(null, handleValueEnd, 1);\n var rangeStyle = horizontal ? {\n left: handleValueStart + '%',\n width: handleValueEnd - handleValueStart + '%'\n } : {\n bottom: handleValueStart + '%',\n height: handleValueEnd - handleValueStart + '%'\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-slider-range\",\n style: rangeStyle\n }), rangeStartHandle, rangeEndHandle);\n }\n }, {\n key: \"renderSingleSlider\",\n value: function renderSingleSlider() {\n var value = this.props.value || 0;\n var handleValue;\n if (value < this.props.min) handleValue = 0;else if (value > this.props.max) handleValue = 100;else handleValue = (value - this.props.min) * 100 / (this.props.max - this.props.min);\n var rangeStyle = this.props.orientation === 'horizontal' ? {\n width: handleValue + '%'\n } : {\n height: handleValue + '%'\n };\n var handle = this.props.orientation === 'horizontal' ? this.renderHandle(handleValue, null, null) : this.renderHandle(null, handleValue, null);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-slider-range\",\n style: rangeStyle\n }), handle);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var className = classNames('p-slider p-component', this.props.className, {\n 'p-disabled': this.props.disabled,\n 'p-slider-horizontal': this.props.orientation === 'horizontal',\n 'p-slider-vertical': this.props.orientation === 'vertical'\n });\n var content = this.props.range ? this.renderRangeSlider() : this.renderSingleSlider();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this3.el = el;\n },\n style: this.props.style,\n className: className,\n onClick: this.onBarClick\n }, content);\n }\n }]);\n\n return Slider;\n}(Component);\n\n_defineProperty(Slider, \"defaultProps\", {\n id: null,\n value: null,\n min: 0,\n max: 100,\n orientation: 'horizontal',\n step: null,\n range: false,\n style: null,\n className: null,\n disabled: false,\n tabIndex: 0,\n ariaLabelledBy: null,\n onChange: null,\n onSlideEnd: null\n});\n\nexport { Slider };\n","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Knob = /*#__PURE__*/function (_Component) {\n _inherits(Knob, _Component);\n\n var _super = _createSuper(Knob);\n\n function Knob(props) {\n var _this;\n\n _classCallCheck(this, Knob);\n\n _this = _super.call(this, props);\n _this.state = {};\n _this.radius = 40;\n _this.midX = 50;\n _this.midY = 50;\n _this.minRadians = 4 * Math.PI / 3;\n _this.maxRadians = -Math.PI / 3;\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.onMouseMove = _this.onMouseMove.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Knob, [{\n key: \"updateValue\",\n value: function updateValue(offsetX, offsetY) {\n var dx = offsetX - this.props.size / 2;\n var dy = this.props.size / 2 - offsetY;\n var angle = Math.atan2(dy, dx);\n var start = -Math.PI / 2 - Math.PI / 6;\n this.updateModel(angle, start);\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(angle, start) {\n var mappedValue;\n if (angle > this.maxRadians) mappedValue = this.mapRange(angle, this.minRadians, this.maxRadians, this.props.min, this.props.max);else if (angle < start) mappedValue = this.mapRange(angle + 2 * Math.PI, this.minRadians, this.maxRadians, this.props.min, this.props.max);else return;\n\n if (this.props.onChange) {\n var newValue = Math.round((mappedValue - this.props.min) / this.props.step) * this.props.step + this.props.min;\n this.props.onChange({\n value: newValue\n });\n }\n }\n }, {\n key: \"mapRange\",\n value: function mapRange(x, inMin, inMax, outMin, outMax) {\n return (x - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n this.updateValue(event.nativeEvent.offsetX, event.nativeEvent.offsetY);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n this.windowMouseMoveListener = this.onMouseMove;\n this.windowMouseUpListener = this.onMouseUp;\n window.addEventListener('mousemove', this.windowMouseMoveListener);\n window.addEventListener('mouseup', this.windowMouseUpListener);\n event.preventDefault();\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n window.removeEventListener('mousemove', this.windowMouseMoveListener);\n window.removeEventListener('mouseup', this.windowMouseUpListener);\n this.windowMouseMoveListener = null;\n this.windowMouseUpListener = null;\n event.preventDefault();\n }\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n this.windowTouchMoveListener = this.onTouchMove;\n this.windowTouchEndListener = this.onTouchEnd;\n window.addEventListener('touchmove', this.windowTouchMoveListener, {\n passive: false,\n cancelable: false\n });\n window.addEventListener('touchend', this.windowTouchEndListener);\n }\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n window.removeEventListener('touchmove', this.windowTouchMoveListener);\n window.removeEventListener('touchend', this.windowTouchEndListener);\n this.windowTouchMoveListener = null;\n this.windowTouchEndListener = null;\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n this.updateValue(event.offsetX, event.offsetY);\n event.preventDefault();\n }\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(event) {\n if (!this.props.disabled && !this.props.readOnly && event.touches.length === 1) {\n var rect = this.element.getBoundingClientRect();\n var touch = event.targetTouches.item(0);\n var offsetX = touch.clientX - rect.left;\n var offsetY = touch.clientY - rect.top;\n this.updateValue(offsetX, offsetY);\n event.preventDefault();\n }\n }\n }, {\n key: \"rangePath\",\n value: function rangePath() {\n return \"M \".concat(this.minX(), \" \").concat(this.minY(), \" A \").concat(this.radius, \" \").concat(this.radius, \" 0 1 1 \").concat(this.maxX(), \" \").concat(this.maxY());\n }\n }, {\n key: \"valuePath\",\n value: function valuePath() {\n return \"M \".concat(this.zeroX(), \" \").concat(this.zeroY(), \" A \").concat(this.radius, \" \").concat(this.radius, \" 0 \").concat(this.largeArc(), \" \").concat(this.sweep(), \" \").concat(this.valueX(), \" \").concat(this.valueY());\n }\n }, {\n key: \"zeroRadians\",\n value: function zeroRadians() {\n if (this.props.min > 0 && this.props.max > 0) return this.mapRange(this.props.min, this.props.min, this.props.max, this.minRadians, this.maxRadians);else return this.mapRange(0, this.props.min, this.props.max, this.minRadians, this.maxRadians);\n }\n }, {\n key: \"valueRadians\",\n value: function valueRadians() {\n return this.mapRange(this.props.value, this.props.min, this.props.max, this.minRadians, this.maxRadians);\n }\n }, {\n key: \"minX\",\n value: function minX() {\n return this.midX + Math.cos(this.minRadians) * this.radius;\n }\n }, {\n key: \"minY\",\n value: function minY() {\n return this.midY - Math.sin(this.minRadians) * this.radius;\n }\n }, {\n key: \"maxX\",\n value: function maxX() {\n return this.midX + Math.cos(this.maxRadians) * this.radius;\n }\n }, {\n key: \"maxY\",\n value: function maxY() {\n return this.midY - Math.sin(this.maxRadians) * this.radius;\n }\n }, {\n key: \"zeroX\",\n value: function zeroX() {\n return this.midX + Math.cos(this.zeroRadians()) * this.radius;\n }\n }, {\n key: \"zeroY\",\n value: function zeroY() {\n return this.midY - Math.sin(this.zeroRadians()) * this.radius;\n }\n }, {\n key: \"valueX\",\n value: function valueX() {\n return this.midX + Math.cos(this.valueRadians()) * this.radius;\n }\n }, {\n key: \"valueY\",\n value: function valueY() {\n return this.midY - Math.sin(this.valueRadians()) * this.radius;\n }\n }, {\n key: \"largeArc\",\n value: function largeArc() {\n return Math.abs(this.zeroRadians() - this.valueRadians()) < Math.PI ? 0 : 1;\n }\n }, {\n key: \"sweep\",\n value: function sweep() {\n return this.valueRadians() > this.zeroRadians() ? 0 : 1;\n }\n }, {\n key: \"valueToDisplay\",\n value: function valueToDisplay() {\n return this.props.valueTemplate.replace(\"{value}\", this.props.value.toString());\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var containerClassName = classNames('p-knob p-component', {\n 'p-disabled': this.props.disabled\n }, this.props.className);\n var text = this.props.showValue && /*#__PURE__*/React.createElement(\"text\", {\n x: 50,\n y: 57,\n textAnchor: 'middle',\n fill: this.props.textColor,\n className: 'p-knob-text',\n name: this.props.name\n }, this.valueToDisplay());\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: containerClassName,\n style: this.props.style,\n ref: function ref(el) {\n return _this2.element = el;\n }\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 100 100\",\n width: this.props.size,\n height: this.props.size,\n onClick: this.onClick,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n onTouchStart: this.onTouchStart,\n onTouchEnd: this.onTouchEnd\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: this.rangePath(),\n strokeWidth: this.props.strokeWidth,\n stroke: this.props.rangeColor,\n className: 'p-knob-range'\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: this.valuePath(),\n strokeWidth: this.props.strokeWidth,\n stroke: this.props.valueColor,\n className: 'p-knob-value'\n }), text));\n }\n }]);\n\n return Knob;\n}(Component);\n\n_defineProperty(Knob, \"defaultProps\", {\n id: null,\n style: null,\n className: null,\n value: null,\n size: 100,\n disabled: false,\n readOnly: false,\n showValue: true,\n step: 1,\n min: 0,\n max: 100,\n strokeWidth: 14,\n name: null,\n valueColor: 'var(--primary-color, Black)',\n rangeColor: 'var(--surface-d, LightGray)',\n textColor: 'var(--text-color-secondary, Black)',\n valueTemplate: '{value}',\n onChange: null\n});\n\nexport { Knob };\n","import React, { Component, createRef } from 'react';\nimport { classNames, CSSTransition, Portal, OverlayService, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler, tip, ObjectUtils } from 'primereact/core';\nimport PrimeReact from 'primereact/api';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar ColorPickerPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(ColorPickerPanelComponent, _Component);\n\n var _super = _createSuper$1(ColorPickerPanelComponent);\n\n function ColorPickerPanelComponent() {\n _classCallCheck(this, ColorPickerPanelComponent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ColorPickerPanelComponent, [{\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-colorpicker-panel', {\n 'p-colorpicker-overlay-panel': !this.props.inline,\n 'p-disabled': this.props.disabled\n });\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.props.onEnter,\n onEntered: this.props.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n onClick: this.props.onClick\n }, this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return this.props.inline ? element : /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return ColorPickerPanelComponent;\n}(Component);\n\n_defineProperty(ColorPickerPanelComponent, \"defaultProps\", {\n appendTo: null,\n inline: false,\n disabled: false,\n onClick: null\n});\n\nvar ColorPickerPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ColorPickerPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ColorPicker = /*#__PURE__*/function (_Component) {\n _inherits(ColorPicker, _Component);\n\n var _super = _createSuper(ColorPicker);\n\n function ColorPicker(props) {\n var _this;\n\n _classCallCheck(this, ColorPicker);\n\n _this = _super.call(this, props);\n _this.state = {\n overlayVisible: false\n };\n _this.onInputClick = _this.onInputClick.bind(_assertThisInitialized(_this));\n _this.onInputKeydown = _this.onInputKeydown.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onColorMousedown = _this.onColorMousedown.bind(_assertThisInitialized(_this));\n _this.onHueMousedown = _this.onHueMousedown.bind(_assertThisInitialized(_this));\n _this.onColorDragStart = _this.onColorDragStart.bind(_assertThisInitialized(_this));\n _this.onHueDragStart = _this.onHueDragStart.bind(_assertThisInitialized(_this));\n _this.onDrag = _this.onDrag.bind(_assertThisInitialized(_this));\n _this.onDragEnd = _this.onDragEnd.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n if (!this.props.inline) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }\n }, {\n key: \"onHueMousedown\",\n value: function onHueMousedown(event) {\n if (this.props.disabled) {\n return;\n }\n\n this.bindDragListeners();\n this.onHueDragStart(event);\n }\n }, {\n key: \"onHueDragStart\",\n value: function onHueDragStart(event) {\n if (this.props.disabled) {\n return;\n }\n\n this.hueDragging = true;\n this.pickHue(event);\n DomHandler.addClass(this.container, 'p-colorpicker-dragging');\n }\n }, {\n key: \"pickHue\",\n value: function pickHue(event) {\n var top = this.hueView.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n this.hsbValue = this.validateHSB({\n h: Math.floor(360 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top))) / 150),\n s: 100,\n b: 100\n });\n this.updateColorSelector();\n this.updateHue();\n this.updateModel();\n }\n }, {\n key: \"onColorMousedown\",\n value: function onColorMousedown(event) {\n if (this.props.disabled) {\n return;\n }\n\n this.bindDragListeners();\n this.onColorDragStart(event);\n }\n }, {\n key: \"onColorDragStart\",\n value: function onColorDragStart(event) {\n if (this.props.disabled) {\n return;\n }\n\n this.colorDragging = true;\n this.pickColor(event);\n DomHandler.addClass(this.container, 'p-colorpicker-dragging');\n event.preventDefault();\n }\n }, {\n key: \"onDrag\",\n value: function onDrag(event) {\n if (this.colorDragging) {\n this.pickColor(event);\n event.preventDefault();\n }\n\n if (this.hueDragging) {\n this.pickHue(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd() {\n this.colorDragging = false;\n this.hueDragging = false;\n DomHandler.removeClass(this.container, 'p-colorpicker-dragging');\n this.unbindDragListeners();\n }\n }, {\n key: \"bindDragListeners\",\n value: function bindDragListeners() {\n this.bindDocumentMouseMoveListener();\n this.bindDocumentMouseUpListener();\n }\n }, {\n key: \"unbindDragListeners\",\n value: function unbindDragListeners() {\n this.unbindDocumentMouseMoveListener();\n this.unbindDocumentMouseUpListener();\n }\n }, {\n key: \"pickColor\",\n value: function pickColor(event) {\n var rect = this.colorSelector.getBoundingClientRect();\n var top = rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n var left = rect.left + document.body.scrollLeft;\n var saturation = Math.floor(100 * Math.max(0, Math.min(150, (event.pageX || event.changedTouches[0].pageX) - left)) / 150);\n var brightness = Math.floor(100 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top))) / 150);\n this.hsbValue = this.validateHSB({\n h: this.hsbValue.h,\n s: saturation,\n b: brightness\n });\n this.updateColorHandle();\n this.updateInput();\n this.updateModel();\n }\n }, {\n key: \"updateModel\",\n value: function updateModel() {\n switch (this.props.format) {\n case 'hex':\n this.onChange(this.HSBtoHEX(this.hsbValue));\n break;\n\n case 'rgb':\n this.onChange(this.HSBtoRGB(this.hsbValue));\n break;\n\n case 'hsb':\n this.onChange(this.hsbValue);\n break;\n }\n }\n }, {\n key: \"toHSB\",\n value: function toHSB(value) {\n var hsb;\n\n if (value) {\n switch (this.props.format) {\n case 'hex':\n hsb = this.HEXtoHSB(value);\n break;\n\n case 'rgb':\n hsb = this.RGBtoHSB(value);\n break;\n\n case 'hsb':\n hsb = value;\n break;\n }\n } else {\n hsb = this.HEXtoHSB(this.props.defaultColor);\n }\n\n return hsb;\n }\n }, {\n key: \"updateHSBValue\",\n value: function updateHSBValue(value) {\n this.hsbValue = this.toHSB(value);\n }\n }, {\n key: \"areHSBEqual\",\n value: function areHSBEqual(val1, val2) {\n return val1.h === val2.h && val1.s === val2.s && val1.b === val2.b;\n }\n }, {\n key: \"onChange\",\n value: function onChange(value) {\n if (this.props.onChange) {\n this.props.onChange({\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"updateColorSelector\",\n value: function updateColorSelector() {\n if (this.colorSelector) {\n var hsbValue = this.validateHSB({\n h: this.hsbValue.h,\n s: 100,\n b: 100\n });\n this.colorSelector.style.backgroundColor = '#' + this.HSBtoHEX(hsbValue);\n }\n }\n }, {\n key: \"updateColorHandle\",\n value: function updateColorHandle() {\n if (this.colorHandle) {\n this.colorHandle.style.left = Math.floor(150 * this.hsbValue.s / 100) + 'px';\n this.colorHandle.style.top = Math.floor(150 * (100 - this.hsbValue.b) / 100) + 'px';\n }\n }\n }, {\n key: \"updateHue\",\n value: function updateHue() {\n if (this.hueHandle) {\n this.hueHandle.style.top = Math.floor(150 - 150 * this.hsbValue.h / 360) + 'px';\n }\n }\n }, {\n key: \"updateInput\",\n value: function updateInput() {\n if (this.inputRef && this.inputRef.current) {\n this.inputRef.current.style.backgroundColor = '#' + this.HSBtoHEX(this.hsbValue);\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter() {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.alignOverlay();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered() {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"onInputClick\",\n value: function onInputClick() {\n this.togglePanel();\n }\n }, {\n key: \"togglePanel\",\n value: function togglePanel() {\n if (this.state.overlayVisible) this.hide();else this.show();\n }\n }, {\n key: \"onInputKeydown\",\n value: function onInputKeydown(event) {\n switch (event.which) {\n //space\n case 32:\n this.togglePanel();\n event.preventDefault();\n break;\n //escape and tab\n\n case 27:\n case 9:\n this.hide();\n break;\n }\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this2 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this2.state.overlayVisible && _this2.isOutsideClicked(event)) {\n _this2.hide();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this3 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this3.state.overlayVisible) {\n _this3.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this4 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this4.state.overlayVisible && !DomHandler.isAndroid()) {\n _this4.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && !(this.container.isSameNode(event.target) || this.container.contains(event.target) || this.overlayRef && this.overlayRef.current.contains(event.target));\n }\n }, {\n key: \"bindDocumentMouseMoveListener\",\n value: function bindDocumentMouseMoveListener() {\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = this.onDocumentMouseMove.bind(this);\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n }\n }, {\n key: \"onDocumentMouseMove\",\n value: function onDocumentMouseMove(event) {\n if (this.colorDragging) {\n this.pickColor(event);\n }\n\n if (this.hueDragging) {\n this.pickHue(event);\n }\n }\n }, {\n key: \"unbindDocumentMouseMoveListener\",\n value: function unbindDocumentMouseMoveListener() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n }\n }, {\n key: \"bindDocumentMouseUpListener\",\n value: function bindDocumentMouseUpListener() {\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = this.onDocumentMouseUp.bind(this);\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n }\n }, {\n key: \"onDocumentMouseUp\",\n value: function onDocumentMouseUp() {\n this.colorDragging = false;\n this.hueDragging = false;\n DomHandler.removeClass(this.container, 'p-colorpicker-dragging');\n this.unbindDocumentMouseMoveListener();\n this.unbindDocumentMouseUpListener();\n }\n }, {\n key: \"unbindDocumentMouseUpListener\",\n value: function unbindDocumentMouseUpListener() {\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n }\n }, {\n key: \"validateHSB\",\n value: function validateHSB(hsb) {\n return {\n h: Math.min(360, Math.max(0, hsb.h)),\n s: Math.min(100, Math.max(0, hsb.s)),\n b: Math.min(100, Math.max(0, hsb.b))\n };\n }\n }, {\n key: \"validateRGB\",\n value: function validateRGB(rgb) {\n return {\n r: Math.min(255, Math.max(0, rgb.r)),\n g: Math.min(255, Math.max(0, rgb.g)),\n b: Math.min(255, Math.max(0, rgb.b))\n };\n }\n }, {\n key: \"validateHEX\",\n value: function validateHEX(hex) {\n var len = 6 - hex.length;\n\n if (len > 0) {\n var o = [];\n\n for (var i = 0; i < len; i++) {\n o.push('0');\n }\n\n o.push(hex);\n hex = o.join('');\n }\n\n return hex;\n }\n }, {\n key: \"HEXtoRGB\",\n value: function HEXtoRGB(hex) {\n var hexValue = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n return {\n r: hexValue >> 16,\n g: (hexValue & 0x00FF00) >> 8,\n b: hexValue & 0x0000FF\n };\n }\n }, {\n key: \"HEXtoHSB\",\n value: function HEXtoHSB(hex) {\n return this.RGBtoHSB(this.HEXtoRGB(hex));\n }\n }, {\n key: \"RGBtoHSB\",\n value: function RGBtoHSB(rgb) {\n var hsb = {\n h: 0,\n s: 0,\n b: 0\n };\n var min = Math.min(rgb.r, rgb.g, rgb.b);\n var max = Math.max(rgb.r, rgb.g, rgb.b);\n var delta = max - min;\n hsb.b = max;\n hsb.s = max !== 0 ? 255 * delta / max : 0;\n\n if (hsb.s !== 0) {\n if (rgb.r === max) {\n hsb.h = (rgb.g - rgb.b) / delta;\n } else if (rgb.g === max) {\n hsb.h = 2 + (rgb.b - rgb.r) / delta;\n } else {\n hsb.h = 4 + (rgb.r - rgb.g) / delta;\n }\n } else {\n hsb.h = -1;\n }\n\n hsb.h *= 60;\n\n if (hsb.h < 0) {\n hsb.h += 360;\n }\n\n hsb.s *= 100 / 255;\n hsb.b *= 100 / 255;\n return hsb;\n }\n }, {\n key: \"HSBtoRGB\",\n value: function HSBtoRGB(hsb) {\n var rgb = {\n r: null,\n g: null,\n b: null\n };\n var h = Math.round(hsb.h);\n var s = Math.round(hsb.s * 255 / 100);\n var v = Math.round(hsb.b * 255 / 100);\n\n if (s === 0) {\n rgb = {\n r: v,\n g: v,\n b: v\n };\n } else {\n var t1 = v;\n var t2 = (255 - s) * v / 255;\n var t3 = (t1 - t2) * (h % 60) / 60;\n if (h === 360) h = 0;\n\n if (h < 60) {\n rgb.r = t1;\n rgb.b = t2;\n rgb.g = t2 + t3;\n } else if (h < 120) {\n rgb.g = t1;\n rgb.b = t2;\n rgb.r = t1 - t3;\n } else if (h < 180) {\n rgb.g = t1;\n rgb.r = t2;\n rgb.b = t2 + t3;\n } else if (h < 240) {\n rgb.b = t1;\n rgb.r = t2;\n rgb.g = t1 - t3;\n } else if (h < 300) {\n rgb.b = t1;\n rgb.g = t2;\n rgb.r = t2 + t3;\n } else if (h < 360) {\n rgb.r = t1;\n rgb.g = t2;\n rgb.b = t1 - t3;\n } else {\n rgb.r = 0;\n rgb.g = 0;\n rgb.b = 0;\n }\n }\n\n return {\n r: Math.round(rgb.r),\n g: Math.round(rgb.g),\n b: Math.round(rgb.b)\n };\n }\n }, {\n key: \"RGBtoHEX\",\n value: function RGBtoHEX(rgb) {\n var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n\n for (var key in hex) {\n if (hex[key].length === 1) {\n hex[key] = '0' + hex[key];\n }\n }\n\n return hex.join('');\n }\n }, {\n key: \"HSBtoHEX\",\n value: function HSBtoHEX(hsb) {\n return this.RGBtoHEX(this.HSBtoRGB(hsb));\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n this.updateHSBValue(this.props.value);\n this.updateUI();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (!this.colorDragging && !this.hueDragging && this.props.value !== prevProps.value) {\n this.updateHSBValue(this.props.value);\n }\n\n this.updateUI();\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindDocumentMouseMoveListener();\n this.unbindDocumentMouseUpListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"updateUI\",\n value: function updateUI() {\n this.updateHue();\n this.updateColorHandle();\n this.updateInput();\n this.updateColorSelector();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n if (this.inputRef && this.inputRef.current) {\n DomHandler.alignOverlay(this.overlayRef.current, this.inputRef.current.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderColorSelector\",\n value: function renderColorSelector() {\n var _this5 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.colorSelector = el;\n },\n className: \"p-colorpicker-color-selector\",\n onMouseDown: this.onColorMousedown,\n onTouchStart: this.onColorDragStart,\n onTouchMove: this.onDrag,\n onTouchEnd: this.onDragEnd\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-colorpicker-color\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.colorHandle = el;\n },\n className: \"p-colorpicker-color-handle\"\n })));\n }\n }, {\n key: \"renderHue\",\n value: function renderHue() {\n var _this6 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this6.hueView = el;\n },\n className: \"p-colorpicker-hue\",\n onMouseDown: this.onHueMousedown,\n onTouchStart: this.onHueDragStart,\n onTouchMove: this.onDrag,\n onTouchEnd: this.onDragEnd\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this6.hueHandle = el;\n },\n className: \"p-colorpicker-hue-handle\"\n }));\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var colorSelector = this.renderColorSelector();\n var hue = this.renderHue();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-colorpicker-content\"\n }, colorSelector, hue);\n }\n }, {\n key: \"renderInput\",\n value: function renderInput() {\n if (!this.props.inline) {\n var inputClassName = classNames('p-colorpicker-preview p-inputtext', {\n 'p-disabled': this.props.disabled\n });\n var inputProps = ObjectUtils.findDiffKeys(this.props, ColorPicker.defaultProps);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n ref: this.inputRef,\n type: \"text\",\n className: inputClassName,\n readOnly: true,\n id: this.props.inputId,\n tabIndex: this.props.tabIndex,\n disabled: this.props.disabled,\n onClick: this.onInputClick,\n onKeyDown: this.onInputKeydown\n }, inputProps));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n var containerClassName = classNames('p-colorpicker p-component', {\n 'p-colorpicker-overlay': !this.props.inline\n }, this.props.className);\n var content = this.renderContent();\n var input = this.renderInput();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this7.container = el;\n },\n id: this.props.id,\n style: this.props.style,\n className: containerClassName\n }, input, /*#__PURE__*/React.createElement(ColorPickerPanel, {\n ref: this.overlayRef,\n appendTo: this.props.appendTo,\n inline: this.props.inline,\n disabled: this.props.disabled,\n onClick: this.onPanelClick,\n in: this.props.inline || this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited,\n transitionOptions: this.props.transitionOptions\n }, content));\n }\n }]);\n\n return ColorPicker;\n}(Component);\n\n_defineProperty(ColorPicker, \"defaultProps\", {\n id: null,\n inputRef: null,\n value: null,\n style: null,\n className: null,\n defaultColor: 'ff0000',\n inline: false,\n format: 'hex',\n appendTo: null,\n disabled: false,\n tabIndex: null,\n inputId: null,\n tooltip: null,\n tooltipOptions: null,\n transitionOptions: null,\n onChange: null,\n onShow: null,\n onHide: null\n});\n\nexport { ColorPicker };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames, ObjectUtils, Ripple, tip, FilterUtils } from 'primereact/core';\nimport { InputText } from 'primereact/inputtext';\nimport { VirtualScroller } from 'primereact/virtualscroller';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ListBoxItem = /*#__PURE__*/function (_Component) {\n _inherits(ListBoxItem, _Component);\n\n var _super = _createSuper$2(ListBoxItem);\n\n function ListBoxItem(props) {\n var _this;\n\n _classCallCheck(this, ListBoxItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ListBoxItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(event) {\n if (this.props.onTouchEnd) {\n this.props.onTouchEnd({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n var item = event.currentTarget;\n\n switch (event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n //up\n\n case 38:\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.onClick(event);\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-disabled') || DomHandler.hasClass(nextItem, 'p-listbox-item-group') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-disabled') || DomHandler.hasClass(prevItem, 'p-listbox-item-group') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-listbox-item', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled\n }, this.props.option.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props.option) : this.props.label;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n onTouchEnd: this.onTouchEnd,\n onKeyDown: this.onKeyDown,\n tabIndex: this.props.tabIndex,\n \"aria-label\": this.props.label,\n key: this.props.label,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return ListBoxItem;\n}(Component);\n\n_defineProperty(ListBoxItem, \"defaultProps\", {\n option: null,\n label: null,\n selected: false,\n disabled: false,\n tabIndex: null,\n onClick: null,\n onTouchEnd: null,\n template: null\n});\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ListBoxHeader = /*#__PURE__*/function (_Component) {\n _inherits(ListBoxHeader, _Component);\n\n var _super = _createSuper$1(ListBoxHeader);\n\n function ListBoxHeader(props) {\n var _this;\n\n _classCallCheck(this, ListBoxHeader);\n\n _this = _super.call(this, props);\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ListBoxHeader, [{\n key: \"onFilter\",\n value: function onFilter(event) {\n if (this.props.onFilter) {\n this.props.onFilter({\n originalEvent: event,\n value: event.target.value\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-listbox-header\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-listbox-filter-container\"\n }, /*#__PURE__*/React.createElement(InputText, {\n type: \"text\",\n value: this.props.filter,\n onChange: this.onFilter,\n className: \"p-listbox-filter\",\n disabled: this.props.disabled,\n placeholder: this.props.filterPlaceholder\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-listbox-filter-icon pi pi-search\"\n })));\n }\n }]);\n\n return ListBoxHeader;\n}(Component);\n\n_defineProperty(ListBoxHeader, \"defaultProps\", {\n filter: null,\n filterPlaceholder: null,\n disabled: false,\n onFilter: null\n});\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ListBox = /*#__PURE__*/function (_Component) {\n _inherits(ListBox, _Component);\n\n var _super = _createSuper(ListBox);\n\n function ListBox(props) {\n var _this;\n\n _classCallCheck(this, ListBox);\n\n _this = _super.call(this, props);\n _this.state = {};\n\n if (!_this.props.onFilterValueChange) {\n _this.state.filterValue = '';\n }\n\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n _this.onOptionSelect = _this.onOptionSelect.bind(_assertThisInitialized(_this));\n _this.onOptionTouchEnd = _this.onOptionTouchEnd.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ListBox, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"getFilterValue\",\n value: function getFilterValue() {\n return (this.props.onFilterValueChange ? this.props.filterValue : this.state.filterValue) || '';\n }\n }, {\n key: \"onOptionSelect\",\n value: function onOptionSelect(event) {\n var option = event.option;\n\n if (this.props.disabled || this.isOptionDisabled(option)) {\n return;\n }\n\n if (this.props.multiple) this.onOptionSelectMultiple(event.originalEvent, option);else this.onOptionSelectSingle(event.originalEvent, option);\n this.optionTouched = false;\n }\n }, {\n key: \"onOptionTouchEnd\",\n value: function onOptionTouchEnd() {\n if (this.props.disabled) {\n return;\n }\n\n this.optionTouched = true;\n }\n }, {\n key: \"onOptionSelectSingle\",\n value: function onOptionSelectSingle(event, option) {\n var selected = this.isSelected(option);\n var valueChanged = false;\n var value = null;\n var metaSelection = this.optionTouched ? false : this.props.metaKeySelection;\n\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.updateModel(event, value);\n }\n }\n }, {\n key: \"onOptionSelectMultiple\",\n value: function onOptionSelectMultiple(event, option) {\n var selected = this.isSelected(option);\n var valueChanged = false;\n var value = null;\n var metaSelection = this.optionTouched ? false : this.props.metaKeySelection;\n\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n\n if (selected) {\n if (metaKey) value = this.removeOption(option);else value = [this.getOptionValue(option)];\n valueChanged = true;\n } else {\n value = metaKey ? this.props.value || [] : [];\n value = [].concat(_toConsumableArray(value), [this.getOptionValue(option)]);\n valueChanged = true;\n }\n } else {\n if (selected) value = this.removeOption(option);else value = [].concat(_toConsumableArray(this.props.value || []), [this.getOptionValue(option)]);\n valueChanged = true;\n }\n\n if (valueChanged) {\n this.props.onChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"onFilter\",\n value: function onFilter(event) {\n var originalEvent = event.originalEvent,\n value = event.value;\n\n if (this.props.onFilterValueChange) {\n this.props.onFilterValueChange({\n originalEvent: originalEvent,\n value: value\n });\n } else {\n this.setState({\n filterValue: value\n });\n }\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(event, value) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"removeOption\",\n value: function removeOption(option) {\n var _this2 = this;\n\n return this.props.value.filter(function (val) {\n return !ObjectUtils.equals(val, _this2.getOptionValue(option), _this2.props.dataKey);\n });\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n var selected = false;\n var optionValue = this.getOptionValue(option);\n\n if (this.props.multiple) {\n if (this.props.value) {\n var _iterator = _createForOfIteratorHelper(this.props.value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var val = _step.value;\n\n if (ObjectUtils.equals(val, optionValue, this.props.dataKey)) {\n selected = true;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n } else {\n selected = ObjectUtils.equals(this.props.value, optionValue, this.props.dataKey);\n }\n\n return selected;\n }\n }, {\n key: \"filter\",\n value: function filter(option) {\n var filterValue = this.getFilterValue().trim().toLocaleLowerCase(this.props.filterLocale);\n var optionLabel = this.getOptionLabel(option).toLocaleLowerCase(this.props.filterLocale);\n return optionLabel.indexOf(filterValue) > -1;\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n var filter = this.getFilterValue();\n return filter && filter.trim().length > 0;\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n return this.props.optionValue ? ObjectUtils.resolveFieldData(option, this.props.optionValue) : option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"getOptionRenderKey\",\n value: function getOptionRenderKey(option) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(option, this.props.dataKey) : this.getOptionLabel(option);\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"getVisibleOptions\",\n value: function getVisibleOptions() {\n if (this.hasFilter()) {\n var filterValue = this.getFilterValue().trim().toLocaleLowerCase(this.props.filterLocale);\n var searchFields = this.props.filterBy ? this.props.filterBy.split(',') : [this.props.optionLabel || 'label'];\n\n if (this.props.optionGroupLabel) {\n var filteredGroups = [];\n\n var _iterator2 = _createForOfIteratorHelper(this.props.options),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var optgroup = _step2.value;\n var filteredSubOptions = FilterUtils.filter(this.getOptionGroupChildren(optgroup), searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), {\n items: filteredSubOptions\n }));\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return filteredGroups;\n } else {\n return FilterUtils.filter(this.props.options, searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n }\n } else {\n return this.props.options;\n }\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup) {\n var _this3 = this;\n\n var groupChildren = this.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (option, j) {\n var optionLabel = _this3.getOptionLabel(option);\n\n var optionKey = j + '_' + _this3.getOptionRenderKey(option);\n\n var disabled = _this3.isOptionDisabled(option);\n\n var tabIndex = disabled ? null : _this3.props.tabIndex || 0;\n return /*#__PURE__*/React.createElement(ListBoxItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: _this3.props.itemTemplate,\n selected: _this3.isSelected(option),\n onClick: _this3.onOptionSelect,\n onTouchEnd: _this3.onOptionTouchEnd,\n tabIndex: tabIndex,\n disabled: disabled\n });\n });\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(option, index) {\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, option, index) : this.getOptionGroupLabel(option);\n var groupChildrenContent = this.renderGroupChildren(option);\n var key = index + '_' + this.getOptionGroupRenderKey(option);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-listbox-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var optionLabel = this.getOptionLabel(option);\n var optionKey = index + '_' + this.getOptionRenderKey(option);\n var disabled = this.isOptionDisabled(option);\n var tabIndex = disabled ? null : this.props.tabIndex || 0;\n return /*#__PURE__*/React.createElement(ListBoxItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: this.props.itemTemplate,\n selected: this.isSelected(option),\n onClick: this.onOptionSelect,\n onTouchEnd: this.onOptionTouchEnd,\n tabIndex: tabIndex,\n disabled: disabled\n });\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems(visibleOptions) {\n var _this4 = this;\n\n if (visibleOptions && visibleOptions.length) {\n return visibleOptions.map(function (option, index) {\n return _this4.renderItem(option, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"renderList\",\n value: function renderList(visibleOptions) {\n var _this5 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread(_objectSpread({}, this.props.virtualScrollerOptions), {\n items: visibleOptions,\n onLazyLoad: function onLazyLoad(event) {\n return _this5.props.virtualScrollerOptions.onLazyLoad(_objectSpread(_objectSpread({}, event), {\n filter: _this5.getFilterValue()\n }));\n },\n itemTemplate: function itemTemplate(item, options) {\n return item && _this5.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-listbox-list', options.className);\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.ref,\n className: className,\n role: \"listbox\",\n \"aria-multiselectable\": _this5.props.multiple\n }, options.children);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: function ref(el) {\n return _this5.virtualScrollerRef = el;\n }\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems(visibleOptions);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-listbox-list\",\n role: \"listbox\",\n \"aria-multiselectable\": this.props.multiple\n }, items);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames('p-listbox p-component', {\n 'p-disabled': this.props.disabled\n }, this.props.className);\n var listClassName = classNames('p-listbox-list-wrapper', this.props.listClassName);\n var visibleOptions = this.getVisibleOptions();\n var list = this.renderList(visibleOptions);\n var header;\n\n if (this.props.filter) {\n header = /*#__PURE__*/React.createElement(ListBoxHeader, {\n filter: this.getFilterValue(),\n onFilter: this.onFilter,\n disabled: this.props.disabled,\n filterPlaceholder: this.props.filterPlaceholder\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this6.element = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, header, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this6.wrapper = el;\n },\n className: listClassName,\n style: this.props.listStyle\n }, list));\n }\n }]);\n\n return ListBox;\n}(Component);\n\n_defineProperty(ListBox, \"defaultProps\", {\n id: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n itemTemplate: null,\n style: null,\n listStyle: null,\n listClassName: null,\n className: null,\n virtualScrollerOptions: null,\n disabled: null,\n dataKey: null,\n multiple: false,\n metaKeySelection: false,\n filter: false,\n filterBy: null,\n filterValue: null,\n filterMatchMode: 'contains',\n filterPlaceholder: null,\n filterLocale: undefined,\n tabIndex: 0,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onChange: null,\n onFilterValueChange: null\n});\n\nexport { ListBox };\n","import React, { Component } from 'react';\nimport { tip, classNames, Ripple } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ToggleButton = /*#__PURE__*/function (_Component) {\n _inherits(ToggleButton, _Component);\n\n var _super = _createSuper(ToggleButton);\n\n function ToggleButton(props) {\n var _this;\n\n _classCallCheck(this, ToggleButton);\n\n _this = _super.call(this, props);\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ToggleButton, [{\n key: \"toggle\",\n value: function toggle(e) {\n if (!this.props.disabled && this.props.onChange) {\n this.props.onChange({\n originalEvent: e,\n value: !this.props.checked,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: !this.props.checked\n }\n });\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Enter') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"hasLabel\",\n value: function hasLabel() {\n return this.props.onLabel && this.props.onLabel.length > 0 && this.props.offLabel && this.props.offLabel.length > 0;\n }\n }, {\n key: \"hasIcon\",\n value: function hasIcon() {\n return this.props.onIcon && this.props.onIcon.length > 0 && this.props.offIcon && this.props.offIcon.length > 0;\n }\n }, {\n key: \"getLabel\",\n value: function getLabel() {\n return this.hasLabel() ? this.props.checked ? this.props.onLabel : this.props.offLabel : ' ';\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-button p-togglebutton p-component', {\n 'p-button-icon-only': this.hasIcon() && !this.hasLabel(),\n 'p-highlight': this.props.checked,\n 'p-disabled': this.props.disabled\n }, this.props.className),\n iconClassName = null;\n var hasIcon = this.hasIcon();\n var label = this.getLabel();\n\n if (hasIcon) {\n iconClassName = classNames('p-button-icon p-c', {\n 'p-button-icon-left': this.props.iconPos === 'left' && label,\n 'p-button-icon-right': this.props.iconPos === 'right' && label\n }, this.props.checked ? this.props.onIcon : this.props.offIcon);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this2.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.toggle,\n onFocus: this.props.onFocus,\n onBlur: this.props.onBlur,\n onKeyDown: this.onKeyDown,\n tabIndex: !this.props.disabled && this.props.tabIndex,\n \"aria-labelledby\": this.props.ariaLabelledBy\n }, hasIcon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-button-label\"\n }, label), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return ToggleButton;\n}(Component);\n\n_defineProperty(ToggleButton, \"defaultProps\", {\n id: null,\n onIcon: null,\n offIcon: null,\n onLabel: 'Yes',\n offLabel: 'No',\n iconPos: 'left',\n style: null,\n className: null,\n checked: false,\n tabIndex: 0,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n});\n\nexport { ToggleButton };\n","import React, { Component } from 'react';\nimport { classNames, Ripple, ObjectUtils, DomHandler } from 'primereact/core';\nimport { Button } from 'primereact/button';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PickListItem = /*#__PURE__*/function (_Component) {\n _inherits(PickListItem, _Component);\n\n var _super = _createSuper$4(PickListItem);\n\n function PickListItem(props) {\n var _this;\n\n _classCallCheck(this, PickListItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PickListItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n value: this.props.value\n });\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (this.props.onKeyDown) {\n this.props.onKeyDown({\n originalEvent: event,\n value: this.props.value\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.props.template ? this.props.template(this.props.value) : this.props.value;\n var className = classNames('p-picklist-item', {\n 'p-highlight': this.props.selected\n }, this.props.className);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n onKeyDown: this.onKeyDown,\n tabIndex: this.props.tabIndex,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return PickListItem;\n}(Component);\n\n_defineProperty(PickListItem, \"defaultProps\", {\n value: null,\n className: null,\n template: null,\n selected: false,\n tabIndex: null,\n onClick: null,\n onKeyDown: null\n});\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar PickListSubListComponent = /*#__PURE__*/function (_Component) {\n _inherits(PickListSubListComponent, _Component);\n\n var _super = _createSuper$3(PickListSubListComponent);\n\n function PickListSubListComponent(props) {\n var _this;\n\n _classCallCheck(this, PickListSubListComponent);\n\n _this = _super.call(this, props);\n _this.onItemClick = _this.onItemClick.bind(_assertThisInitialized(_this));\n _this.onItemKeyDown = _this.onItemKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PickListSubListComponent, [{\n key: \"onItemClick\",\n value: function onItemClick(event) {\n var originalEvent = event.originalEvent;\n var item = event.value;\n\n var selection = _toConsumableArray(this.props.selection);\n\n var index = ObjectUtils.findIndexInList(item, selection, this.props.dataKey);\n var selected = index !== -1;\n var metaSelection = this.props.metaKeySelection;\n\n if (metaSelection) {\n var metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n\n if (selected && metaKey) {\n selection.splice(index, 1);\n } else {\n if (!metaKey) {\n selection.length = 0;\n }\n\n selection.push(item);\n }\n } else {\n if (selected) selection.splice(index, 1);else selection.push(item);\n }\n\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange({\n event: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"onItemKeyDown\",\n value: function onItemKeyDown(event) {\n var listItem = event.originalEvent.currentTarget;\n\n switch (event.originalEvent.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n //up\n\n case 38:\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n //enter\n\n case 13:\n this.onItemClick(event);\n event.originalEvent.preventDefault();\n break;\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return !DomHandler.hasClass(nextItem, 'p-picklist-item') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return !DomHandler.hasClass(prevItem, 'p-picklist-item') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(item) {\n return ObjectUtils.findIndexInList(item, this.props.selection, this.props.dataKey) !== -1;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var header = null;\n var items = null;\n var wrapperClassName = classNames('p-picklist-list-wrapper', this.props.className);\n var listClassName = classNames('p-picklist-list', this.props.listClassName);\n\n if (this.props.header) {\n header = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-picklist-header\"\n }, ObjectUtils.getJSXElement(this.props.header, this.props));\n }\n\n if (this.props.list) {\n items = this.props.list.map(function (item, i) {\n return /*#__PURE__*/React.createElement(PickListItem, {\n key: JSON.stringify(item),\n value: item,\n template: _this2.props.itemTemplate,\n selected: _this2.isSelected(item),\n onClick: _this2.onItemClick,\n onKeyDown: _this2.onItemKeyDown,\n tabIndex: _this2.props.tabIndex\n });\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: wrapperClassName\n }, header, /*#__PURE__*/React.createElement(\"ul\", {\n className: listClassName,\n style: this.props.style,\n role: \"listbox\",\n \"aria-multiselectable\": true\n }, items));\n }\n }]);\n\n return PickListSubListComponent;\n}(Component);\n\nvar PickListSubList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(PickListSubListComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PickListControls = /*#__PURE__*/function (_Component) {\n _inherits(PickListControls, _Component);\n\n var _super = _createSuper$2(PickListControls);\n\n function PickListControls(props) {\n var _this;\n\n _classCallCheck(this, PickListControls);\n\n _this = _super.call(this, props);\n _this.moveUp = _this.moveUp.bind(_assertThisInitialized(_this));\n _this.moveTop = _this.moveTop.bind(_assertThisInitialized(_this));\n _this.moveDown = _this.moveDown.bind(_assertThisInitialized(_this));\n _this.moveBottom = _this.moveBottom.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PickListControls, [{\n key: \"moveUp\",\n value: function moveUp(event) {\n var selectedItems = this.props.selection;\n\n if (selectedItems && selectedItems.length) {\n var list = _toConsumableArray(this.props.list);\n\n for (var i = 0; i < selectedItems.length; i++) {\n var selectedItem = selectedItems[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list, this.props.dataKey);\n\n if (selectedItemIndex !== 0) {\n var movedItem = list[selectedItemIndex];\n var temp = list[selectedItemIndex - 1];\n list[selectedItemIndex - 1] = movedItem;\n list[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: list,\n direction: 'up'\n });\n }\n }\n }\n }, {\n key: \"moveTop\",\n value: function moveTop(event) {\n var selectedItems = this.props.selection;\n\n if (selectedItems && selectedItems.length) {\n var list = _toConsumableArray(this.props.list);\n\n for (var i = 0; i < selectedItems.length; i++) {\n var selectedItem = selectedItems[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list, this.props.dataKey);\n\n if (selectedItemIndex !== 0) {\n var movedItem = list.splice(selectedItemIndex, 1)[0];\n list.unshift(movedItem);\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: list,\n direction: 'top'\n });\n }\n }\n }\n }, {\n key: \"moveDown\",\n value: function moveDown(event) {\n var selectedItems = this.props.selection;\n\n if (selectedItems && selectedItems.length) {\n var list = _toConsumableArray(this.props.list);\n\n for (var i = selectedItems.length - 1; i >= 0; i--) {\n var selectedItem = selectedItems[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list, this.props.dataKey);\n\n if (selectedItemIndex !== list.length - 1) {\n var movedItem = list[selectedItemIndex];\n var temp = list[selectedItemIndex + 1];\n list[selectedItemIndex + 1] = movedItem;\n list[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: list,\n direction: 'down'\n });\n }\n\n this.movedDown = true;\n }\n }\n }, {\n key: \"moveBottom\",\n value: function moveBottom(event) {\n var selectedItems = this.props.selection;\n\n if (selectedItems && selectedItems.length) {\n var list = _toConsumableArray(this.props.list);\n\n for (var i = selectedItems.length - 1; i >= 0; i--) {\n var selectedItem = selectedItems[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list, this.props.dataKey);\n\n if (selectedItemIndex !== list.length - 1) {\n var movedItem = list.splice(selectedItemIndex, 1)[0];\n list.push(movedItem);\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: list,\n direction: 'bottom'\n });\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var moveDisabled = !this.props.selection.length;\n var className = classNames('p-picklist-buttons', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: moveDisabled,\n type: \"button\",\n icon: \"pi pi-angle-up\",\n onClick: this.moveUp\n }), /*#__PURE__*/React.createElement(Button, {\n disabled: moveDisabled,\n type: \"button\",\n icon: \"pi pi-angle-double-up\",\n onClick: this.moveTop\n }), /*#__PURE__*/React.createElement(Button, {\n disabled: moveDisabled,\n type: \"button\",\n icon: \"pi pi-angle-down\",\n onClick: this.moveDown\n }), /*#__PURE__*/React.createElement(Button, {\n disabled: moveDisabled,\n type: \"button\",\n icon: \"pi pi-angle-double-down\",\n onClick: this.moveBottom\n }));\n }\n }]);\n\n return PickListControls;\n}(Component);\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PickListTransferControls = /*#__PURE__*/function (_Component) {\n _inherits(PickListTransferControls, _Component);\n\n var _super = _createSuper$1(PickListTransferControls);\n\n function PickListTransferControls(props) {\n var _this;\n\n _classCallCheck(this, PickListTransferControls);\n\n _this = _super.call(this, props);\n _this.moveRight = _this.moveRight.bind(_assertThisInitialized(_this));\n _this.moveAllRight = _this.moveAllRight.bind(_assertThisInitialized(_this));\n _this.moveLeft = _this.moveLeft.bind(_assertThisInitialized(_this));\n _this.moveAllLeft = _this.moveAllLeft.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PickListTransferControls, [{\n key: \"moveRight\",\n value: function moveRight(event) {\n var selection = this.props.sourceSelection;\n\n if (selection && selection.length) {\n var targetList = _toConsumableArray(this.props.target);\n\n var sourceList = _toConsumableArray(this.props.source);\n\n for (var i = 0; i < selection.length; i++) {\n var selectedItem = selection[i];\n\n if (ObjectUtils.findIndexInList(selectedItem, targetList, this.props.dataKey) === -1) {\n targetList.push(sourceList.splice(ObjectUtils.findIndexInList(selectedItem, sourceList, this.props.dataKey), 1)[0]);\n }\n }\n\n if (this.props.onTransfer) {\n this.props.onTransfer({\n originalEvent: event,\n source: sourceList,\n target: targetList,\n direction: 'toTarget'\n });\n }\n }\n }\n }, {\n key: \"moveAllRight\",\n value: function moveAllRight(event) {\n if (this.props.source) {\n var targetList = [].concat(_toConsumableArray(this.props.target), _toConsumableArray(this.props.source));\n var sourceList = [];\n\n if (this.props.onTransfer) {\n this.props.onTransfer({\n originalEvent: event,\n source: sourceList,\n target: targetList,\n direction: 'allToTarget'\n });\n }\n }\n }\n }, {\n key: \"moveLeft\",\n value: function moveLeft(event) {\n var selection = this.props.targetSelection;\n\n if (selection && selection.length) {\n var targetList = _toConsumableArray(this.props.target);\n\n var sourceList = _toConsumableArray(this.props.source);\n\n for (var i = 0; i < selection.length; i++) {\n var selectedItem = selection[i];\n\n if (ObjectUtils.findIndexInList(selectedItem, sourceList, this.props.dataKey) === -1) {\n sourceList.push(targetList.splice(ObjectUtils.findIndexInList(selectedItem, targetList, this.props.dataKey), 1)[0]);\n }\n }\n\n if (this.props.onTransfer) {\n this.props.onTransfer({\n originalEvent: event,\n source: sourceList,\n target: targetList,\n direction: 'toSource'\n });\n }\n }\n }\n }, {\n key: \"moveAllLeft\",\n value: function moveAllLeft(event) {\n if (this.props.source) {\n var sourceList = [].concat(_toConsumableArray(this.props.source), _toConsumableArray(this.props.target));\n var targetList = [];\n\n if (this.props.onTransfer) {\n this.props.onTransfer({\n originalEvent: event,\n source: sourceList,\n target: targetList,\n direction: 'allToSource'\n });\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var moveRightDisabled = !this.props.sourceSelection.length;\n var moveLeftDisabled = !this.props.targetSelection.length;\n var moveAllRightDisabled = !this.props.source.length;\n var moveAllLeftDisabled = !this.props.target.length;\n var className = classNames('p-picklist-buttons p-picklist-transfer-buttons', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: moveRightDisabled,\n type: \"button\",\n icon: \"pi pi-angle-right\",\n onClick: this.moveRight\n }), /*#__PURE__*/React.createElement(Button, {\n disabled: moveAllRightDisabled,\n type: \"button\",\n icon: \"pi pi-angle-double-right\",\n onClick: this.moveAllRight\n }), /*#__PURE__*/React.createElement(Button, {\n disabled: moveLeftDisabled,\n type: \"button\",\n icon: \"pi pi-angle-left\",\n onClick: this.moveLeft\n }), /*#__PURE__*/React.createElement(Button, {\n disabled: moveAllLeftDisabled,\n type: \"button\",\n icon: \"pi pi-angle-double-left\",\n onClick: this.moveAllLeft\n }));\n }\n }]);\n\n return PickListTransferControls;\n}(Component);\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PickList = /*#__PURE__*/function (_Component) {\n _inherits(PickList, _Component);\n\n var _super = _createSuper(PickList);\n\n function PickList(props) {\n var _this;\n\n _classCallCheck(this, PickList);\n\n _this = _super.call(this, props);\n _this.state = {};\n\n if (!_this.props.onSourceSelectionChange) {\n _this.state.sourceSelection = [];\n }\n\n if (!_this.props.onTargetSelectionChange) {\n _this.state.targetSelection = [];\n }\n\n _this.onSourceReorder = _this.onSourceReorder.bind(_assertThisInitialized(_this));\n _this.onTargetReorder = _this.onTargetReorder.bind(_assertThisInitialized(_this));\n _this.onTransfer = _this.onTransfer.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PickList, [{\n key: \"getSourceSelection\",\n value: function getSourceSelection() {\n return this.props.onSourceSelectionChange ? this.props.sourceSelection : this.state.sourceSelection;\n }\n }, {\n key: \"getTargetSelection\",\n value: function getTargetSelection() {\n return this.props.onTargetSelectionChange ? this.props.targetSelection : this.state.targetSelection;\n }\n }, {\n key: \"onSourceReorder\",\n value: function onSourceReorder(event) {\n this.handleChange(event, event.value, this.props.target);\n this.reorderedListElement = this.sourceListElement;\n this.reorderDirection = event.direction;\n }\n }, {\n key: \"onTargetReorder\",\n value: function onTargetReorder(event) {\n this.handleChange(event, this.props.source, event.value);\n this.reorderedListElement = this.targetListElement;\n this.reorderDirection = event.direction;\n }\n }, {\n key: \"handleScrollPosition\",\n value: function handleScrollPosition(listElement, direction) {\n if (listElement) {\n var listContainer = DomHandler.findSingle(listElement, '.p-picklist-list');\n\n switch (direction) {\n case 'up':\n this.scrollInView(listContainer, -1);\n break;\n\n case 'top':\n listContainer.scrollTop = 0;\n break;\n\n case 'down':\n this.scrollInView(listContainer, 1);\n break;\n\n case 'bottom':\n listContainer.scrollTop = listContainer.scrollHeight;\n break;\n }\n }\n }\n }, {\n key: \"handleChange\",\n value: function handleChange(event, source, target) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n source: source,\n target: target\n });\n }\n }\n }, {\n key: \"onTransfer\",\n value: function onTransfer(event) {\n var originalEvent = event.originalEvent,\n source = event.source,\n target = event.target,\n direction = event.direction;\n\n switch (direction) {\n case 'toTarget':\n if (this.props.onMoveToTarget) {\n this.props.onMoveToTarget({\n originalEvent: originalEvent,\n value: this.getSourceSelection()\n });\n }\n\n break;\n\n case 'allToTarget':\n if (this.props.onMoveAllToTarget) {\n this.props.onMoveAllToTarget({\n originalEvent: originalEvent,\n value: this.props.source\n });\n }\n\n break;\n\n case 'toSource':\n if (this.props.onMoveToSource) {\n this.props.onMoveToSource({\n originalEvent: originalEvent,\n value: this.getTargetSelection()\n });\n }\n\n break;\n\n case 'allToSource':\n if (this.props.onMoveAllToSource) {\n this.props.onMoveAllToSource({\n originalEvent: originalEvent,\n value: this.props.target\n });\n }\n\n break;\n }\n\n this.onSelectionChange({\n originalEvent: originalEvent,\n value: []\n }, 'sourceSelection', this.props.onSourceSelectionChange);\n this.onSelectionChange({\n originalEvent: originalEvent,\n value: []\n }, 'targetSelection', this.props.onTargetSelectionChange);\n this.handleChange(event, source, target);\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(listContainer) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var selectedItems = listContainer.getElementsByClassName('p-highlight');\n DomHandler.scrollInView(listContainer, direction === -1 ? selectedItems[0] : selectedItems[selectedItems.length - 1]);\n }\n }, {\n key: \"onSelectionChange\",\n value: function onSelectionChange(e, stateKey, callback) {\n if (callback) {\n callback(e);\n } else {\n this.setState(_defineProperty({}, stateKey, e.value));\n }\n\n if (this.state.sourceSelection && this.state.sourceSelection.length && stateKey === 'targetSelection') {\n this.setState({\n sourceSelection: []\n });\n } else if (this.state.targetSelection && this.state.targetSelection.length && stateKey === 'sourceSelection') {\n this.setState({\n targetSelection: []\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.reorderedListElement) {\n this.handleScrollPosition(this.reorderedListElement, this.reorderDirection);\n this.reorderedListElement = null;\n this.reorderDirection = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-picklist p-component', this.props.className);\n var sourceSelection = this.getSourceSelection();\n var targetSelection = this.getTargetSelection();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, this.props.showSourceControls && /*#__PURE__*/React.createElement(PickListControls, {\n list: this.props.source,\n selection: sourceSelection,\n onReorder: this.onSourceReorder,\n className: \"p-picklist-source-controls\",\n dataKey: this.props.dataKey\n }), /*#__PURE__*/React.createElement(PickListSubList, {\n ref: function ref(el) {\n return _this2.sourceListElement = el;\n },\n list: this.props.source,\n selection: sourceSelection,\n onSelectionChange: function onSelectionChange(e) {\n return _this2.onSelectionChange(e, 'sourceSelection', _this2.props.onSourceSelectionChange);\n },\n itemTemplate: this.props.itemTemplate,\n header: this.props.sourceHeader,\n style: this.props.sourceStyle,\n className: \"p-picklist-source-wrapper\",\n listClassName: \"p-picklist-source\",\n metaKeySelection: this.props.metaKeySelection,\n tabIndex: this.props.tabIndex,\n dataKey: this.props.dataKey\n }), /*#__PURE__*/React.createElement(PickListTransferControls, {\n onTransfer: this.onTransfer,\n source: this.props.source,\n target: this.props.target,\n sourceSelection: sourceSelection,\n targetSelection: targetSelection,\n dataKey: this.props.dataKey\n }), /*#__PURE__*/React.createElement(PickListSubList, {\n ref: function ref(el) {\n return _this2.targetListElement = el;\n },\n list: this.props.target,\n selection: targetSelection,\n onSelectionChange: function onSelectionChange(e) {\n return _this2.onSelectionChange(e, 'targetSelection', _this2.props.onTargetSelectionChange);\n },\n itemTemplate: this.props.itemTemplate,\n header: this.props.targetHeader,\n style: this.props.targetStyle,\n className: \"p-picklist-target-wrapper\",\n listClassName: \"p-picklist-target\",\n metaKeySelection: this.props.metaKeySelection,\n tabIndex: this.props.tabIndex,\n dataKey: this.props.dataKey\n }), this.props.showTargetControls && /*#__PURE__*/React.createElement(PickListControls, {\n list: this.props.target,\n selection: targetSelection,\n onReorder: this.onTargetReorder,\n className: \"p-picklist-target-controls\",\n dataKey: this.props.dataKey\n }));\n }\n }]);\n\n return PickList;\n}(Component);\n\n_defineProperty(PickList, \"defaultProps\", {\n id: null,\n source: null,\n target: null,\n sourceHeader: null,\n targetHeader: null,\n style: null,\n className: null,\n sourceStyle: null,\n targetStyle: null,\n sourceSelection: null,\n targetSelection: null,\n showSourceControls: true,\n showTargetControls: true,\n metaKeySelection: true,\n tabIndex: 0,\n dataKey: null,\n itemTemplate: null,\n onChange: null,\n onMoveToSource: null,\n onMoveAllToSource: null,\n onMoveToTarget: null,\n onMoveAllToTarget: null,\n onSourceSelectionChange: null,\n onTargetSelectionChange: null\n});\n\nexport { PickList };\n","import React, { Component } from 'react';\nimport { Button } from 'primereact/button';\nimport { ObjectUtils, DomHandler, classNames, Ripple } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar OrderListControls = /*#__PURE__*/function (_Component) {\n _inherits(OrderListControls, _Component);\n\n var _super = _createSuper$2(OrderListControls);\n\n function OrderListControls() {\n var _this;\n\n _classCallCheck(this, OrderListControls);\n\n _this = _super.call(this);\n _this.moveUp = _this.moveUp.bind(_assertThisInitialized(_this));\n _this.moveTop = _this.moveTop.bind(_assertThisInitialized(_this));\n _this.moveDown = _this.moveDown.bind(_assertThisInitialized(_this));\n _this.moveBottom = _this.moveBottom.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(OrderListControls, [{\n key: \"moveUp\",\n value: function moveUp(event) {\n if (this.props.selection) {\n var value = _toConsumableArray(this.props.value);\n\n for (var i = 0; i < this.props.selection.length; i++) {\n var selectedItem = this.props.selection[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, value, this.props.dataKey);\n\n if (selectedItemIndex !== 0) {\n var movedItem = value[selectedItemIndex];\n var temp = value[selectedItemIndex - 1];\n value[selectedItemIndex - 1] = movedItem;\n value[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: value,\n direction: 'up'\n });\n }\n }\n }\n }, {\n key: \"moveTop\",\n value: function moveTop(event) {\n if (this.props.selection) {\n var value = _toConsumableArray(this.props.value);\n\n for (var i = 0; i < this.props.selection.length; i++) {\n var selectedItem = this.props.selection[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, value, this.props.dataKey);\n\n if (selectedItemIndex !== 0) {\n var movedItem = value.splice(selectedItemIndex, 1)[0];\n value.unshift(movedItem);\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: value,\n direction: 'top'\n });\n }\n }\n }\n }, {\n key: \"moveDown\",\n value: function moveDown(event) {\n if (this.props.selection) {\n var value = _toConsumableArray(this.props.value);\n\n for (var i = this.props.selection.length - 1; i >= 0; i--) {\n var selectedItem = this.props.selection[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, value, this.props.dataKey);\n\n if (selectedItemIndex !== value.length - 1) {\n var movedItem = value[selectedItemIndex];\n var temp = value[selectedItemIndex + 1];\n value[selectedItemIndex + 1] = movedItem;\n value[selectedItemIndex] = temp;\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: value,\n direction: 'down'\n });\n }\n }\n }\n }, {\n key: \"moveBottom\",\n value: function moveBottom(event) {\n if (this.props.selection) {\n var value = _toConsumableArray(this.props.value);\n\n for (var i = this.props.selection.length - 1; i >= 0; i--) {\n var selectedItem = this.props.selection[i];\n var selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, value, this.props.dataKey);\n\n if (selectedItemIndex !== value.length - 1) {\n var movedItem = value.splice(selectedItemIndex, 1)[0];\n value.push(movedItem);\n } else {\n break;\n }\n }\n\n if (this.props.onReorder) {\n this.props.onReorder({\n originalEvent: event,\n value: value,\n direction: 'bottom'\n });\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-orderlist-controls\"\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-angle-up\",\n onClick: this.moveUp\n }), /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-angle-double-up\",\n onClick: this.moveTop\n }), /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-angle-down\",\n onClick: this.moveDown\n }), /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-angle-double-down\",\n onClick: this.moveBottom\n }));\n }\n }]);\n\n return OrderListControls;\n}(Component);\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar OrderListSubList = /*#__PURE__*/function (_Component) {\n _inherits(OrderListSubList, _Component);\n\n var _super = _createSuper$1(OrderListSubList);\n\n function OrderListSubList(props) {\n var _this;\n\n _classCallCheck(this, OrderListSubList);\n\n _this = _super.call(this, props);\n _this.onDragEnd = _this.onDragEnd.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onListMouseMove = _this.onListMouseMove.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(OrderListSubList, [{\n key: \"isSelected\",\n value: function isSelected(item) {\n return ObjectUtils.findIndexInList(item, this.props.selection, this.props.dataKey) !== -1;\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event, index) {\n this.dragging = true;\n this.draggedItemIndex = index;\n\n if (this.props.dragdropScope) {\n event.dataTransfer.setData('text', 'orderlist');\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event, index) {\n if (this.draggedItemIndex !== index && this.draggedItemIndex + 1 !== index) {\n this.dragOverItemIndex = index;\n DomHandler.addClass(event.target, 'p-orderlist-droppoint-highlight');\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n this.dragOverItemIndex = null;\n DomHandler.removeClass(event.target, 'p-orderlist-droppoint-highlight');\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n var dropIndex = this.draggedItemIndex > this.dragOverItemIndex ? this.dragOverItemIndex : this.dragOverItemIndex === 0 ? 0 : this.dragOverItemIndex - 1;\n\n var value = _toConsumableArray(this.props.value);\n\n ObjectUtils.reorderArray(value, this.draggedItemIndex, dropIndex);\n this.dragOverItemIndex = null;\n DomHandler.removeClass(event.target, 'p-orderlist-droppoint-highlight');\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: value\n });\n }\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(event) {\n this.dragging = false;\n }\n }, {\n key: \"onListMouseMove\",\n value: function onListMouseMove(event) {\n if (this.dragging) {\n var offsetY = this.listElement.getBoundingClientRect().top + DomHandler.getWindowScrollTop();\n var bottomDiff = offsetY + this.listElement.clientHeight - event.pageY;\n var topDiff = event.pageY - offsetY;\n if (bottomDiff < 25 && bottomDiff > 0) this.listElement.scrollTop += 15;else if (topDiff < 25 && topDiff > 0) this.listElement.scrollTop -= 15;\n }\n }\n }, {\n key: \"renderDropPoint\",\n value: function renderDropPoint(index, key) {\n var _this2 = this;\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: key,\n className: \"p-orderlist-droppoint\",\n onDragOver: function onDragOver(e) {\n return _this2.onDragOver(e, index + 1);\n },\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var header = null;\n var items = null;\n\n if (this.props.header) {\n header = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-orderlist-header\"\n }, this.props.header);\n }\n\n if (this.props.value) {\n items = this.props.value.map(function (item, i) {\n var content = _this3.props.itemTemplate ? _this3.props.itemTemplate(item) : item;\n var itemClassName = classNames('p-orderlist-item', {\n 'p-highlight': _this3.isSelected(item)\n }, _this3.props.className);\n var key = JSON.stringify(item);\n\n if (_this3.props.dragdrop) {\n var _items = [_this3.renderDropPoint(i, key + '_droppoint'), /*#__PURE__*/React.createElement(\"li\", {\n key: key,\n className: itemClassName,\n onClick: function onClick(e) {\n return _this3.props.onItemClick({\n originalEvent: e,\n value: item,\n index: i\n });\n },\n onKeyDown: function onKeyDown(e) {\n return _this3.props.onItemKeyDown({\n originalEvent: e,\n value: item,\n index: i\n });\n },\n role: \"option\",\n \"aria-selected\": _this3.isSelected(item),\n draggable: \"true\",\n onDragStart: function onDragStart(e) {\n return _this3.onDragStart(e, i);\n },\n onDragEnd: _this3.onDragEnd,\n tabIndex: _this3.props.tabIndex\n }, content, /*#__PURE__*/React.createElement(Ripple, null))];\n\n if (i === _this3.props.value.length - 1) {\n _items.push(_this3.renderDropPoint(item, i, key + '_droppoint_end'));\n }\n\n return _items;\n } else {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: JSON.stringify(item),\n className: itemClassName,\n role: \"option\",\n \"aria-selected\": _this3.isSelected(item),\n onClick: function onClick(e) {\n return _this3.props.onItemClick({\n originalEvent: e,\n value: item,\n index: i\n });\n },\n onKeyDown: function onKeyDown(e) {\n return _this3.props.onItemKeyDown({\n originalEvent: e,\n value: item,\n index: i\n });\n },\n tabIndex: _this3.props.tabIndex\n }, content);\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-orderlist-list-container\"\n }, header, /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n return _this3.listElement = el;\n },\n className: \"p-orderlist-list\",\n style: this.props.listStyle,\n onDragOver: this.onListMouseMove,\n role: \"listbox\",\n \"aria-multiselectable\": true\n }, items));\n }\n }]);\n\n return OrderListSubList;\n}(Component);\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar OrderList = /*#__PURE__*/function (_Component) {\n _inherits(OrderList, _Component);\n\n var _super = _createSuper(OrderList);\n\n function OrderList(props) {\n var _this;\n\n _classCallCheck(this, OrderList);\n\n _this = _super.call(this, props);\n _this.state = {\n selection: []\n };\n _this.onItemClick = _this.onItemClick.bind(_assertThisInitialized(_this));\n _this.onItemKeyDown = _this.onItemKeyDown.bind(_assertThisInitialized(_this));\n _this.onReorder = _this.onReorder.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(OrderList, [{\n key: \"onItemClick\",\n value: function onItemClick(event) {\n var metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n var index = ObjectUtils.findIndexInList(event.value, this.state.selection, this.props.dataKey);\n var selected = index !== -1;\n var selection;\n\n if (selected) {\n if (metaKey) selection = this.state.selection.filter(function (val, i) {\n return i !== index;\n });else selection = [event.value];\n } else {\n if (metaKey) selection = [].concat(_toConsumableArray(this.state.selection), [event.value]);else selection = [event.value];\n }\n\n this.setState({\n selection: selection\n });\n }\n }, {\n key: \"onItemKeyDown\",\n value: function onItemKeyDown(event) {\n var listItem = event.originalEvent.currentTarget;\n\n switch (event.originalEvent.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n //up\n\n case 38:\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.focus();\n }\n\n event.originalEvent.preventDefault();\n break;\n //enter\n\n case 13:\n this.onItemClick(event);\n event.originalEvent.preventDefault();\n break;\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return !DomHandler.hasClass(nextItem, 'p-orderlist-item') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return !DomHandler.hasClass(prevItem, 'p-orderlist-item') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"onReorder\",\n value: function onReorder(event) {\n if (this.props.onChange) {\n this.props.onChange({\n event: event.originalEvent,\n value: event.value\n });\n }\n\n this.reorderDirection = event.direction;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.reorderDirection) {\n this.updateListScroll();\n this.reorderDirection = null;\n }\n }\n }, {\n key: \"updateListScroll\",\n value: function updateListScroll() {\n var listItems = DomHandler.find(this.subList.listElement, '.p-orderlist-item.p-highlight');\n\n if (listItems && listItems.length) {\n switch (this.reorderDirection) {\n case 'up':\n DomHandler.scrollInView(this.subList.listElement, listItems[0]);\n break;\n\n case 'top':\n this.subList.listElement.scrollTop = 0;\n break;\n\n case 'down':\n DomHandler.scrollInView(this.subList.listElement, listItems[listItems.length - 1]);\n break;\n\n case 'bottom':\n this.subList.listElement.scrollTop = this.subList.listElement.scrollHeight;\n break;\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-orderlist p-component', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this2.element = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(OrderListControls, {\n value: this.props.value,\n selection: this.state.selection,\n onReorder: this.onReorder,\n dataKey: this.props.dataKey\n }), /*#__PURE__*/React.createElement(OrderListSubList, {\n ref: function ref(el) {\n return _this2.subList = el;\n },\n value: this.props.value,\n selection: this.state.selection,\n onItemClick: this.onItemClick,\n onItemKeyDown: this.onItemKeyDown,\n itemTemplate: this.props.itemTemplate,\n header: this.props.header,\n listStyle: this.props.listStyle,\n dataKey: this.props.dataKey,\n dragdrop: this.props.dragdrop,\n onDragStart: this.onDragStart,\n onDragEnter: this.onDragEnter,\n onDragEnd: this.onDragEnd,\n onDragLeave: this.onDragEnter,\n onDrop: this.onDrop,\n onChange: this.props.onChange,\n tabIndex: this.props.tabIndex\n }));\n }\n }]);\n\n return OrderList;\n}(Component);\n\n_defineProperty(OrderList, \"defaultProps\", {\n id: null,\n value: null,\n header: null,\n style: null,\n className: null,\n listStyle: null,\n dragdrop: false,\n tabIndex: 0,\n dataKey: null,\n onChange: null,\n itemTemplate: null\n});\n\nexport { OrderList };\n","import React, { Component } from 'react';\nimport { DomHandler, ObjectUtils, classNames, Ripple } from 'primereact/core';\n\nfunction _arrayLikeToArray$2(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$2(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$2(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$2(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\nfunction _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar UITreeNode = /*#__PURE__*/function (_Component) {\n _inherits(UITreeNode, _Component);\n\n var _super = _createSuper$1(UITreeNode);\n\n function UITreeNode(props) {\n var _this;\n\n _classCallCheck(this, UITreeNode);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onDoubleClick = _this.onDoubleClick.bind(_assertThisInitialized(_this));\n _this.onRightClick = _this.onRightClick.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.onTogglerClick = _this.onTogglerClick.bind(_assertThisInitialized(_this));\n _this.onNodeKeyDown = _this.onNodeKeyDown.bind(_assertThisInitialized(_this));\n _this.propagateUp = _this.propagateUp.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragEnter = _this.onDragEnter.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDragStart = _this.onDragStart.bind(_assertThisInitialized(_this));\n _this.onDragEnd = _this.onDragEnd.bind(_assertThisInitialized(_this));\n _this.onDropPointDragOver = _this.onDropPointDragOver.bind(_assertThisInitialized(_this));\n _this.onDropPointDragEnter = _this.onDropPointDragEnter.bind(_assertThisInitialized(_this));\n _this.onDropPointDragLeave = _this.onDropPointDragLeave.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(UITreeNode, [{\n key: \"isLeaf\",\n value: function isLeaf() {\n return this.props.isNodeLeaf(this.props.node);\n }\n }, {\n key: \"expand\",\n value: function expand(event) {\n var expandedKeys = this.props.expandedKeys ? _objectSpread$1({}, this.props.expandedKeys) : {};\n expandedKeys[this.props.node.key] = true;\n this.props.onToggle({\n originalEvent: event,\n value: expandedKeys\n });\n this.invokeToggleEvents(event, true);\n }\n }, {\n key: \"collapse\",\n value: function collapse(event) {\n var expandedKeys = _objectSpread$1({}, this.props.expandedKeys);\n\n delete expandedKeys[this.props.node.key];\n this.props.onToggle({\n originalEvent: event,\n value: expandedKeys\n });\n this.invokeToggleEvents(event, false);\n }\n }, {\n key: \"onTogglerClick\",\n value: function onTogglerClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n if (this.isExpanded()) this.collapse(event);else this.expand(event);\n }\n }, {\n key: \"invokeToggleEvents\",\n value: function invokeToggleEvents(event, expanded) {\n if (expanded) {\n if (this.props.onExpand) {\n this.props.onExpand({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n if (this.props.onCollapse) {\n this.props.onCollapse({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }\n }, {\n key: \"isExpanded\",\n value: function isExpanded() {\n return (this.props.expandedKeys ? this.props.expandedKeys[this.props.node.key] !== undefined : false) || this.props.node.expanded;\n }\n }, {\n key: \"onNodeKeyDown\",\n value: function onNodeKeyDown(event) {\n if (this.props.disabled) {\n return;\n }\n\n var nodeElement = event.target.parentElement;\n\n if (!DomHandler.hasClass(nodeElement, 'p-treenode')) {\n return;\n }\n\n switch (event.which) {\n //down arrow\n case 40:\n var listElement = nodeElement.children[1];\n\n if (listElement) {\n this.focusNode(listElement.children[0]);\n } else {\n var nextNodeElement = nodeElement.nextElementSibling;\n\n if (nextNodeElement) {\n this.focusNode(nextNodeElement);\n } else {\n var nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n\n if (nextSiblingAncestor) {\n this.focusNode(nextSiblingAncestor);\n }\n }\n }\n\n event.preventDefault();\n break;\n //up arrow\n\n case 38:\n if (nodeElement.previousElementSibling) {\n this.focusNode(this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n var parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n this.focusNode(parentNodeElement);\n }\n }\n\n event.preventDefault();\n break;\n //right arrow\n\n case 39:\n if (!this.isExpanded()) {\n this.expand(event);\n }\n\n event.preventDefault();\n break;\n //left arrow\n\n case 37:\n if (this.isExpanded()) {\n this.collapse(event);\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.onClick(event);\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"findNextSiblingOfAncestor\",\n value: function findNextSiblingOfAncestor(nodeElement) {\n var parentNodeElement = this.getParentNodeElement(nodeElement);\n\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n }\n }, {\n key: \"findLastVisibleDescendant\",\n value: function findLastVisibleDescendant(nodeElement) {\n var childrenListElement = nodeElement.children[1];\n\n if (childrenListElement) {\n var lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n }\n }, {\n key: \"getParentNodeElement\",\n value: function getParentNodeElement(nodeElement) {\n var parentNodeElement = nodeElement.parentElement.parentElement;\n return DomHandler.hasClass(parentNodeElement, 'p-treenode') ? parentNodeElement : null;\n }\n }, {\n key: \"focusNode\",\n value: function focusNode(element) {\n element.children[0].focus();\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n node: this.props.node\n });\n }\n\n if (event.target.className && event.target.className.constructor === String && event.target.className.indexOf('p-tree-toggler') === 0 || this.props.disabled) {\n return;\n }\n\n if (this.props.selectionMode && this.props.node.selectable !== false) {\n var selectionKeys;\n\n if (this.isCheckboxSelectionMode()) {\n var checked = this.isChecked();\n selectionKeys = this.props.selectionKeys ? _objectSpread$1({}, this.props.selectionKeys) : {};\n\n if (checked) {\n if (this.props.propagateSelectionDown) this.propagateDown(this.props.node, false, selectionKeys);else delete selectionKeys[this.props.node.key];\n\n if (this.props.propagateSelectionUp && this.props.onPropagateUp) {\n this.props.onPropagateUp({\n originalEvent: event,\n check: false,\n selectionKeys: selectionKeys\n });\n }\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n if (this.props.propagateSelectionDown) this.propagateDown(this.props.node, true, selectionKeys);else selectionKeys[this.props.node.key] = {\n checked: true\n };\n\n if (this.props.propagateSelectionUp && this.props.onPropagateUp) {\n this.props.onPropagateUp({\n originalEvent: event,\n check: true,\n selectionKeys: selectionKeys\n });\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n } else {\n var selected = this.isSelected();\n var metaSelection = this.nodeTouched ? false : this.props.metaKeySelection;\n\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n selectionKeys = null;\n } else {\n selectionKeys = _objectSpread$1({}, this.props.selectionKeys);\n delete selectionKeys[this.props.node.key];\n }\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n selectionKeys = this.props.node.key;\n } else if (this.isMultipleSelectionMode()) {\n selectionKeys = !metaKey ? {} : this.props.selectionKeys ? _objectSpread$1({}, this.props.selectionKeys) : {};\n selectionKeys[this.props.node.key] = true;\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n selectionKeys = null;\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n selectionKeys = this.props.node.key;\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n } else {\n if (selected) {\n selectionKeys = _objectSpread$1({}, this.props.selectionKeys);\n delete selectionKeys[this.props.node.key];\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n selectionKeys = this.props.selectionKeys ? _objectSpread$1({}, this.props.selectionKeys) : {};\n selectionKeys[this.props.node.key] = true;\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }\n }\n }\n\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange({\n originalEvent: event,\n value: selectionKeys\n });\n }\n }\n\n this.nodeTouched = false;\n }\n }, {\n key: \"onDoubleClick\",\n value: function onDoubleClick(event) {\n if (this.props.onDoubleClick) {\n this.props.onDoubleClick({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }, {\n key: \"onRightClick\",\n value: function onRightClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n DomHandler.clearSelection();\n\n if (this.props.onContextMenuSelectionChange) {\n this.props.onContextMenuSelectionChange({\n originalEvent: event,\n value: this.props.node.key\n });\n }\n\n if (this.props.onContextMenu) {\n this.props.onContextMenu({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }, {\n key: \"propagateUp\",\n value: function propagateUp(event) {\n var check = event.check;\n var selectionKeys = event.selectionKeys;\n var checkedChildCount = 0;\n var childPartialSelected = false;\n\n var _iterator = _createForOfIteratorHelper$1(this.props.node.children),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n if (selectionKeys[child.key] && selectionKeys[child.key].checked) checkedChildCount++;else if (selectionKeys[child.key] && selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (check && checkedChildCount === this.props.node.children.length) {\n selectionKeys[this.props.node.key] = {\n checked: true,\n partialChecked: false\n };\n } else {\n if (!check) {\n delete selectionKeys[this.props.node.key];\n }\n\n if (childPartialSelected || checkedChildCount > 0 && checkedChildCount !== this.props.node.children.length) selectionKeys[this.props.node.key] = {\n checked: false,\n partialChecked: true\n };else delete selectionKeys[this.props.node.key];\n }\n\n if (this.props.propagateSelectionUp && this.props.onPropagateUp) {\n this.props.onPropagateUp(event);\n }\n }\n }, {\n key: \"propagateDown\",\n value: function propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[node.key] = {\n checked: true,\n partialChecked: false\n };else delete selectionKeys[node.key];\n\n if (node.children && node.children.length) {\n for (var i = 0; i < node.children.length; i++) {\n this.propagateDown(node.children[i], check, selectionKeys);\n }\n }\n }\n }, {\n key: \"isSelected\",\n value: function isSelected() {\n if (this.props.selectionMode && this.props.selectionKeys) return this.isSingleSelectionMode() ? this.props.selectionKeys === this.props.node.key : this.props.selectionKeys[this.props.node.key] !== undefined;else return false;\n }\n }, {\n key: \"isChecked\",\n value: function isChecked() {\n return this.props.selectionKeys ? this.props.selectionKeys[this.props.node.key] && this.props.selectionKeys[this.props.node.key].checked : false;\n }\n }, {\n key: \"isPartialChecked\",\n value: function isPartialChecked() {\n return this.props.selectionKeys ? this.props.selectionKeys[this.props.node.key] && this.props.selectionKeys[this.props.node.key].partialChecked : false;\n }\n }, {\n key: \"isSingleSelectionMode\",\n value: function isSingleSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'single';\n }\n }, {\n key: \"isMultipleSelectionMode\",\n value: function isMultipleSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'multiple';\n }\n }, {\n key: \"isCheckboxSelectionMode\",\n value: function isCheckboxSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'checkbox';\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd() {\n this.nodeTouched = true;\n }\n }, {\n key: \"onDropPoint\",\n value: function onDropPoint(event, position) {\n event.preventDefault();\n\n if (this.props.node.droppable !== false) {\n DomHandler.removeClass(event.target, 'p-treenode-droppoint-active');\n\n if (this.props.onDropPoint) {\n this.props.onDropPoint({\n originalEvent: event,\n path: this.props.path,\n index: this.props.index,\n position: position\n });\n }\n }\n }\n }, {\n key: \"onDropPointDragOver\",\n value: function onDropPointDragOver(event) {\n if (event.dataTransfer.types[1] === this.props.dragdropScope.toLocaleLowerCase()) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n }\n }\n }, {\n key: \"onDropPointDragEnter\",\n value: function onDropPointDragEnter(event) {\n if (event.dataTransfer.types[1] === this.props.dragdropScope.toLocaleLowerCase()) {\n DomHandler.addClass(event.target, 'p-treenode-droppoint-active');\n }\n }\n }, {\n key: \"onDropPointDragLeave\",\n value: function onDropPointDragLeave(event) {\n if (event.dataTransfer.types[1] === this.props.dragdropScope.toLocaleLowerCase()) {\n DomHandler.removeClass(event.target, 'p-treenode-droppoint-active');\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (this.props.dragdropScope && this.props.node.droppable !== false) {\n DomHandler.removeClass(this.contentElement, 'p-treenode-dragover');\n event.preventDefault();\n event.stopPropagation();\n\n if (this.props.onDrop) {\n this.props.onDrop({\n originalEvent: event,\n path: this.props.path,\n index: this.props.index\n });\n }\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n if (event.dataTransfer.types[1] === this.props.dragdropScope.toLocaleLowerCase() && this.props.node.droppable !== false) {\n event.dataTransfer.dropEffect = 'move';\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }, {\n key: \"onDragEnter\",\n value: function onDragEnter(event) {\n if (event.dataTransfer.types[1] === this.props.dragdropScope.toLocaleLowerCase() && this.props.node.droppable !== false) {\n DomHandler.addClass(this.contentElement, 'p-treenode-dragover');\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n if (event.dataTransfer.types[1] === this.props.dragdropScope.toLocaleLowerCase() && this.props.node.droppable !== false) {\n var rect = event.currentTarget.getBoundingClientRect();\n\n if (event.nativeEvent.x > rect.left + rect.width || event.nativeEvent.x < rect.left || event.nativeEvent.y >= Math.floor(rect.top + rect.height) || event.nativeEvent.y < rect.top) {\n DomHandler.removeClass(this.contentElement, 'p-treenode-dragover');\n }\n }\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event) {\n event.dataTransfer.setData(\"text\", this.props.dragdropScope);\n event.dataTransfer.setData(this.props.dragdropScope, this.props.dragdropScope);\n\n if (this.props.onDragStart) {\n this.props.onDragStart({\n originalEvent: event,\n path: this.props.path,\n index: this.props.index\n });\n }\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(event) {\n if (this.props.onDragEnd) {\n this.props.onDragEnd({\n originalEvent: event\n });\n }\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel() {\n var content = /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-treenode-label\"\n }, this.props.node.label);\n\n if (this.props.nodeTemplate) {\n var defaultContentOptions = {\n onTogglerClick: this.onTogglerClick,\n className: 'p-treenode-label',\n element: content,\n props: this.props,\n expanded: this.isExpanded()\n };\n content = ObjectUtils.getJSXElement(this.props.nodeTemplate, this.props.node, defaultContentOptions);\n }\n\n return content;\n }\n }, {\n key: \"renderCheckbox\",\n value: function renderCheckbox() {\n if (this.isCheckboxSelectionMode() && this.props.node.selectable !== false) {\n var checked = this.isChecked();\n var partialChecked = this.isPartialChecked();\n var className = classNames('p-checkbox-box', {\n 'p-highlight': checked,\n 'p-indeterminate': partialChecked,\n 'p-disabled': this.props.disabled\n });\n var icon = classNames('p-checkbox-icon p-c', {\n 'pi pi-check': checked,\n 'pi pi-minus': partialChecked\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-checkbox p-component\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n role: \"checkbox\",\n \"aria-checked\": checked\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderIcon\",\n value: function renderIcon(expanded) {\n var icon = this.props.node.icon || (expanded ? this.props.node.expandedIcon : this.props.node.collapsedIcon);\n\n if (icon) {\n var className = classNames('p-treenode-icon', icon);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n });\n }\n\n return null;\n }\n }, {\n key: \"renderToggler\",\n value: function renderToggler(expanded) {\n var iconClassName = classNames('p-tree-toggler-icon pi pi-fw', {\n 'pi-chevron-right': !expanded,\n 'pi-chevron-down': expanded\n });\n var content = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-tree-toggler p-link\",\n tabIndex: -1,\n onClick: this.onTogglerClick\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.togglerTemplate) {\n var defaultContentOptions = {\n onClick: this.onTogglerClick,\n containerClassName: 'p-tree-toggler p-link',\n iconClassName: 'p-tree-toggler-icon',\n element: content,\n props: this.props,\n expanded: expanded\n };\n content = ObjectUtils.getJSXElement(this.props.togglerTemplate, this.props.node, defaultContentOptions);\n }\n\n return content;\n }\n }, {\n key: \"renderDropPoint\",\n value: function renderDropPoint(position) {\n var _this2 = this;\n\n if (this.props.dragdropScope) {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-treenode-droppoint\",\n onDrop: function onDrop(event) {\n return _this2.onDropPoint(event, position);\n },\n onDragOver: this.onDropPointDragOver,\n onDragEnter: this.onDropPointDragEnter,\n onDragLeave: this.onDropPointDragLeave\n });\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this3 = this;\n\n var selected = this.isSelected();\n var checked = this.isChecked();\n var className = classNames('p-treenode-content', this.props.node.className, {\n 'p-treenode-selectable': this.props.selectionMode && this.props.node.selectable !== false,\n 'p-highlight': this.isCheckboxSelectionMode() ? checked : selected,\n 'p-highlight-contextmenu': this.props.contextMenuSelectionKey && this.props.contextMenuSelectionKey === this.props.node.key,\n 'p-disabled': this.props.disabled\n });\n var expanded = this.isExpanded();\n var toggler = this.renderToggler(expanded);\n var checkbox = this.renderCheckbox();\n var icon = this.renderIcon(expanded);\n var label = this.renderLabel();\n var tabIndex = this.props.disabled ? undefined : 0;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this3.contentElement = el;\n },\n className: className,\n style: this.props.node.style,\n onClick: this.onClick,\n onDoubleClick: this.onDoubleClick,\n onContextMenu: this.onRightClick,\n onTouchEnd: this.onTouchEnd,\n draggable: this.props.dragdropScope && this.props.node.draggable !== false && !this.props.disabled,\n onDrop: this.onDrop,\n onDragOver: this.onDragOver,\n onDragEnter: this.onDragEnter,\n onDragLeave: this.onDragLeave,\n onDragStart: this.onDragStart,\n onDragEnd: this.onDragEnd,\n tabIndex: tabIndex,\n onKeyDown: this.onNodeKeyDown,\n role: \"treeitem\",\n \"aria-posinset\": this.props.index + 1,\n \"aria-expanded\": this.isExpanded(),\n \"aria-selected\": checked || selected\n }, toggler, checkbox, icon, label);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this4 = this;\n\n if (this.props.node.children && this.props.node.children.length && this.isExpanded()) {\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-treenode-children\",\n role: \"group\"\n }, this.props.node.children.map(function (childNode, index) {\n return /*#__PURE__*/React.createElement(UITreeNode, {\n key: childNode.key || childNode.label,\n node: childNode,\n parent: _this4.props.node,\n index: index,\n last: index === _this4.props.node.children.length - 1,\n path: _this4.props.path + '-' + index,\n disabled: _this4.props.disabled,\n selectionMode: _this4.props.selectionMode,\n selectionKeys: _this4.props.selectionKeys,\n onSelectionChange: _this4.props.onSelectionChange,\n metaKeySelection: _this4.props.metaKeySelection,\n propagateSelectionDown: _this4.props.propagateSelectionDown,\n propagateSelectionUp: _this4.props.propagateSelectionUp,\n contextMenuSelectionKey: _this4.props.contextMenuSelectionKey,\n onContextMenuSelectionChange: _this4.props.onContextMenuSelectionChange,\n onContextMenu: _this4.props.onContextMenu,\n onExpand: _this4.props.onExpand,\n onCollapse: _this4.props.onCollapse,\n onSelect: _this4.props.onSelect,\n onUnselect: _this4.props.onUnselect,\n expandedKeys: _this4.props.expandedKeys,\n onToggle: _this4.props.onToggle,\n onPropagateUp: _this4.propagateUp,\n nodeTemplate: _this4.props.nodeTemplate,\n togglerTemplate: _this4.props.togglerTemplate,\n isNodeLeaf: _this4.props.isNodeLeaf,\n dragdropScope: _this4.props.dragdropScope,\n onDragStart: _this4.props.onDragStart,\n onDragEnd: _this4.props.onDragEnd,\n onDrop: _this4.props.onDrop,\n onDropPoint: _this4.props.onDropPoint\n });\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderNode\",\n value: function renderNode() {\n var className = classNames('p-treenode', {\n 'p-treenode-leaf': this.isLeaf()\n }, this.props.node.className);\n var content = this.renderContent();\n var children = this.renderChildren();\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n style: this.props.node.style\n }, content, children);\n }\n }, {\n key: \"render\",\n value: function render() {\n var node = this.renderNode();\n\n if (this.props.dragdropScope && !this.props.disabled) {\n var beforeDropPoint = this.renderDropPoint(-1);\n var afterDropPoint = this.props.last ? this.renderDropPoint(1) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, beforeDropPoint, node, afterDropPoint);\n } else {\n return node;\n }\n }\n }]);\n\n return UITreeNode;\n}(Component);\n\n_defineProperty(UITreeNode, \"defaultProps\", {\n node: null,\n index: null,\n last: null,\n parent: null,\n path: null,\n disabled: false,\n selectionMode: null,\n selectionKeys: null,\n contextMenuSelectionKey: null,\n metaKeySelection: true,\n expandedKeys: null,\n propagateSelectionUp: true,\n propagateSelectionDown: true,\n dragdropScope: null,\n ariaLabel: null,\n ariaLabelledBy: null,\n nodeTemplate: null,\n togglerTemplate: null,\n isNodeLeaf: null,\n onSelect: null,\n onUnselect: null,\n onExpand: null,\n onCollapse: null,\n onToggle: null,\n onSelectionChange: null,\n onContextMenuSelectionChange: null,\n onPropagateUp: null,\n onDragStart: null,\n onDragEnd: null,\n onDrop: null,\n onDropPoint: null,\n onContextMenu: null,\n onNodeClick: null,\n onNodeDoubleClick: null\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Tree = /*#__PURE__*/function (_Component) {\n _inherits(Tree, _Component);\n\n var _super = _createSuper(Tree);\n\n function Tree(props) {\n var _this;\n\n _classCallCheck(this, Tree);\n\n _this = _super.call(this, props);\n _this.state = {};\n\n if (!_this.props.onFilterValueChange) {\n _this.state['filterValue'] = '';\n }\n\n if (!_this.props.onToggle) {\n _this.state['expandedKeys'] = _this.props.expandedKeys;\n }\n\n _this.isNodeLeaf = _this.isNodeLeaf.bind(_assertThisInitialized(_this));\n _this.onToggle = _this.onToggle.bind(_assertThisInitialized(_this));\n _this.onDragStart = _this.onDragStart.bind(_assertThisInitialized(_this));\n _this.onDragEnd = _this.onDragEnd.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onDropPoint = _this.onDropPoint.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n _this.onFilterInputKeyDown = _this.onFilterInputKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Tree, [{\n key: \"getFilterValue\",\n value: function getFilterValue() {\n return this.props.onFilterValueChange ? this.props.filterValue : this.state.filterValue;\n }\n }, {\n key: \"getExpandedKeys\",\n value: function getExpandedKeys() {\n return this.props.onToggle ? this.props.expandedKeys : this.state.expandedKeys;\n }\n }, {\n key: \"getRootNode\",\n value: function getRootNode() {\n return this.props.filter && this.filteredNodes ? this.filteredNodes : this.props.value;\n }\n }, {\n key: \"onToggle\",\n value: function onToggle(event) {\n if (this.props.onToggle) {\n this.props.onToggle(event);\n } else {\n this.setState({\n expandedKeys: event.value\n });\n }\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event) {\n this.dragState = {\n path: event.path,\n index: event.index\n };\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd() {\n this.dragState = null;\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (this.validateDropNode(this.dragState.path, event.path)) {\n var value = JSON.parse(JSON.stringify(this.props.value));\n var dragPaths = this.dragState.path.split('-');\n dragPaths.pop();\n var dragNodeParent = this.findNode(value, dragPaths);\n var dragNode = dragNodeParent ? dragNodeParent.children[this.dragState.index] : value[this.dragState.index];\n var dropNode = this.findNode(value, event.path.split('-'));\n if (dropNode.children) dropNode.children.push(dragNode);else dropNode.children = [dragNode];\n if (dragNodeParent) dragNodeParent.children.splice(this.dragState.index, 1);else value.splice(this.dragState.index, 1);\n\n if (this.props.onDragDrop) {\n this.props.onDragDrop({\n originalEvent: event.originalEvent,\n value: value,\n dragNode: dragNode,\n dropNode: dropNode,\n dropIndex: event.index\n });\n }\n }\n }\n }, {\n key: \"onDropPoint\",\n value: function onDropPoint(event) {\n if (this.validateDropPoint(event)) {\n var value = JSON.parse(JSON.stringify(this.props.value));\n var dragPaths = this.dragState.path.split('-');\n dragPaths.pop();\n var dropPaths = event.path.split('-');\n dropPaths.pop();\n var dragNodeParent = this.findNode(value, dragPaths);\n var dropNodeParent = this.findNode(value, dropPaths);\n var dragNode = dragNodeParent ? dragNodeParent.children[this.dragState.index] : value[this.dragState.index];\n var siblings = this.areSiblings(this.dragState.path, event.path);\n if (dragNodeParent) dragNodeParent.children.splice(this.dragState.index, 1);else value.splice(this.dragState.index, 1);\n\n if (event.position < 0) {\n var dropIndex = siblings ? this.dragState.index > event.index ? event.index : event.index - 1 : event.index;\n if (dropNodeParent) dropNodeParent.children.splice(dropIndex, 0, dragNode);else value.splice(dropIndex, 0, dragNode);\n } else {\n if (dropNodeParent) dropNodeParent.children.push(dragNode);else value.push(dragNode);\n }\n\n if (this.props.onDragDrop) {\n this.props.onDragDrop({\n originalEvent: event.originalEvent,\n value: value,\n dragNode: dragNode,\n dropNode: dropNodeParent,\n dropIndex: event.index\n });\n }\n }\n }\n }, {\n key: \"validateDrop\",\n value: function validateDrop(dragPath, dropPath) {\n if (!dragPath) {\n return false;\n } else {\n //same node\n if (dragPath === dropPath) {\n return false;\n } //parent dropped on an descendant\n\n\n if (dropPath.indexOf(dragPath) === 0) {\n return false;\n }\n\n return true;\n }\n }\n }, {\n key: \"validateDropNode\",\n value: function validateDropNode(dragPath, dropPath) {\n var validateDrop = this.validateDrop(dragPath, dropPath);\n\n if (validateDrop) {\n //child dropped on parent\n if (dragPath.indexOf('-') > 0 && dragPath.substring(0, dragPath.lastIndexOf('-')) === dropPath) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"validateDropPoint\",\n value: function validateDropPoint(event) {\n var validateDrop = this.validateDrop(this.dragState.path, event.path);\n\n if (validateDrop) {\n //child dropped to next sibling's drop point\n if (event.position === -1 && this.areSiblings(this.dragState.path, event.path) && this.dragState.index + 1 === event.index) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"areSiblings\",\n value: function areSiblings(path1, path2) {\n if (path1.length === 1 && path2.length === 1) return true;else return path1.substring(0, path1.lastIndexOf('-')) === path2.substring(0, path2.lastIndexOf('-'));\n }\n }, {\n key: \"findNode\",\n value: function findNode(value, path) {\n if (path.length === 0) {\n return null;\n } else {\n var index = parseInt(path[0], 10);\n var nextSearchRoot = value.children ? value.children[index] : value[index];\n\n if (path.length === 1) {\n return nextSearchRoot;\n } else {\n path.shift();\n return this.findNode(nextSearchRoot, path);\n }\n }\n }\n }, {\n key: \"isNodeLeaf\",\n value: function isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n }, {\n key: \"onFilterInputKeyDown\",\n value: function onFilterInputKeyDown(event) {\n //enter\n if (event.which === 13) {\n event.preventDefault();\n }\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n this.filterChanged = true;\n var filterValue = event.target.value;\n\n if (this.props.onFilterValueChange) {\n this.props.onFilterValueChange({\n originalEvent: event,\n value: filterValue\n });\n } else {\n this.setState({\n filterValue: filterValue\n });\n }\n }\n }, {\n key: \"filter\",\n value: function filter(value) {\n this.setState({\n filterValue: ObjectUtils.isNotEmpty(value) ? value : ''\n }, this._filter);\n }\n }, {\n key: \"_filter\",\n value: function _filter() {\n if (!this.filterChanged) {\n return;\n }\n\n var filterValue = this.getFilterValue();\n\n if (ObjectUtils.isEmpty(filterValue)) {\n this.filteredNodes = this.props.value;\n } else {\n this.filteredNodes = [];\n var searchFields = this.props.filterBy.split(',');\n var filterText = filterValue.toLocaleLowerCase(this.props.filterLocale);\n var isStrictMode = this.props.filterMode === 'strict';\n\n var _iterator = _createForOfIteratorHelper(this.props.value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var node = _step.value;\n\n var copyNode = _objectSpread({}, node);\n\n var paramsWithoutNode = {\n searchFields: searchFields,\n filterText: filterText,\n isStrictMode: isStrictMode\n };\n\n if (isStrictMode && (this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode)) || !isStrictMode && (this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode))) {\n this.filteredNodes.push(copyNode);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n this.filterChanged = false;\n }\n }, {\n key: \"findFilteredNodes\",\n value: function findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n var matched = false;\n\n if (node.children) {\n var childNodes = _toConsumableArray(node.children);\n\n node.children = [];\n\n var _iterator2 = _createForOfIteratorHelper(childNodes),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var childNode = _step2.value;\n\n var copyChildNode = _objectSpread({}, childNode);\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n if (matched) {\n node.expanded = true;\n return true;\n }\n }\n }\n }, {\n key: \"isFilterMatched\",\n value: function isFilterMatched(node, _ref) {\n var searchFields = _ref.searchFields,\n filterText = _ref.filterText,\n isStrictMode = _ref.isStrictMode;\n var matched = false;\n\n var _iterator3 = _createForOfIteratorHelper(searchFields),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var field = _step3.value;\n var fieldValue = String(ObjectUtils.resolveFieldData(node, field)).toLocaleLowerCase(this.props.filterLocale);\n\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n if (!matched || isStrictMode && !this.isNodeLeaf(node)) {\n matched = this.findFilteredNodes(node, {\n searchFields: searchFields,\n filterText: filterText,\n isStrictMode: isStrictMode\n }) || matched;\n }\n\n return matched;\n }\n }, {\n key: \"renderRootChild\",\n value: function renderRootChild(node, index, last) {\n return /*#__PURE__*/React.createElement(UITreeNode, {\n key: node.key || node.label,\n node: node,\n index: index,\n last: last,\n path: String(index),\n disabled: this.props.disabled,\n selectionMode: this.props.selectionMode,\n selectionKeys: this.props.selectionKeys,\n onSelectionChange: this.props.onSelectionChange,\n metaKeySelection: this.props.metaKeySelection,\n contextMenuSelectionKey: this.props.contextMenuSelectionKey,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n onContextMenu: this.props.onContextMenu,\n propagateSelectionDown: this.props.propagateSelectionDown,\n propagateSelectionUp: this.props.propagateSelectionUp,\n onExpand: this.props.onExpand,\n onCollapse: this.props.onCollapse,\n onSelect: this.props.onSelect,\n onUnselect: this.props.onUnselect,\n expandedKeys: this.getExpandedKeys(),\n onToggle: this.onToggle,\n nodeTemplate: this.props.nodeTemplate,\n togglerTemplate: this.props.togglerTemplate,\n isNodeLeaf: this.isNodeLeaf,\n dragdropScope: this.props.dragdropScope,\n onDragStart: this.onDragStart,\n onDragEnd: this.onDragEnd,\n onDrop: this.onDrop,\n onDropPoint: this.onDropPoint,\n onNodeClick: this.props.onNodeClick,\n onNodeDoubleClick: this.props.onNodeDoubleClick\n });\n }\n }, {\n key: \"renderRootChildren\",\n value: function renderRootChildren() {\n var _this2 = this;\n\n if (this.props.filter) {\n this.filterChanged = true;\n\n this._filter();\n }\n\n var value = this.getRootNode();\n return value.map(function (node, index) {\n return _this2.renderRootChild(node, index, index === value.length - 1);\n });\n }\n }, {\n key: \"renderModel\",\n value: function renderModel() {\n if (this.props.value) {\n var rootNodes = this.renderRootChildren();\n var contentClass = classNames('p-tree-container', this.props.contentClassName);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: contentClass,\n role: \"tree\",\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n style: this.props.contentStyle\n }, rootNodes);\n }\n\n return null;\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n if (this.props.loading) {\n var icon = classNames('p-tree-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tree-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: icon\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderFilter\",\n value: function renderFilter() {\n if (this.props.filter) {\n var filterValue = this.getFilterValue();\n filterValue = ObjectUtils.isNotEmpty(filterValue) ? filterValue : '';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tree-filter-container\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: filterValue,\n autoComplete: \"off\",\n className: \"p-tree-filter p-inputtext p-component\",\n placeholder: this.props.filterPlaceholder,\n onKeyDown: this.onFilterInputKeyDown,\n onChange: this.onFilterInputChange,\n disabled: this.props.disabled\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-tree-filter-icon pi pi-search\"\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n if (this.props.showHeader) {\n var filterElement = this.renderFilter();\n var content = filterElement;\n\n if (this.props.header) {\n var defaultContentOptions = {\n filterContainerClassName: 'p-tree-filter-container',\n filterIconClasssName: 'p-tree-filter-icon pi pi-search',\n filterInput: {\n className: 'p-tree-filter p-inputtext p-component',\n onKeyDown: this.onFilterInputKeyDown,\n onChange: this.onFilterInputChange\n },\n filterElement: filterElement,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(this.props.header, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tree-header\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n var content = ObjectUtils.getJSXElement(this.props.footer, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tree-footer\"\n }, content);\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-tree p-component', this.props.className, {\n 'p-tree-selectable': this.props.selectionMode,\n 'p-tree-loading': this.props.loading,\n 'p-disabled': this.props.disabled\n });\n var loader = this.renderLoader();\n var content = this.renderModel();\n var header = this.renderHeader();\n var footer = this.renderFooter();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, loader, header, content, footer);\n }\n }]);\n\n return Tree;\n}(Component);\n\n_defineProperty(Tree, \"defaultProps\", {\n id: null,\n value: null,\n disabled: false,\n selectionMode: null,\n selectionKeys: null,\n onSelectionChange: null,\n contextMenuSelectionKey: null,\n onContextMenuSelectionChange: null,\n expandedKeys: null,\n style: null,\n className: null,\n contentStyle: null,\n contentClassName: null,\n metaKeySelection: true,\n propagateSelectionUp: true,\n propagateSelectionDown: true,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n dragdropScope: null,\n header: null,\n footer: null,\n showHeader: true,\n filter: false,\n filterValue: null,\n filterBy: 'label',\n filterMode: 'lenient',\n filterPlaceholder: null,\n filterLocale: undefined,\n nodeTemplate: null,\n togglerTemplate: null,\n onSelect: null,\n onUnselect: null,\n onExpand: null,\n onCollapse: null,\n onToggle: null,\n onDragDrop: null,\n onContextMenu: null,\n onFilterValueChange: null,\n onNodeClick: null,\n onNodeDoubleClick: null\n});\n\nexport { Tree };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames, OverlayService, ObjectUtils, Ripple, FilterUtils } from 'primereact/core';\nimport { Paginator } from 'primereact/paginator';\nimport { InputText } from 'primereact/inputtext';\n\nfunction _arrayLikeToArray$3(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$3(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$3(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$3(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$3(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelper$2(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); }\n\nfunction _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$6() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTableHeader = /*#__PURE__*/function (_Component) {\n _inherits(TreeTableHeader, _Component);\n\n var _super = _createSuper$6(TreeTableHeader);\n\n function TreeTableHeader(props) {\n var _this;\n\n _classCallCheck(this, TreeTableHeader);\n\n _this = _super.call(this, props);\n _this.state = {\n badgeVisible: false\n };\n _this.onFilterInput = _this.onFilterInput.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TreeTableHeader, [{\n key: \"onHeaderClick\",\n value: function onHeaderClick(event, column) {\n if (column.props.sortable) {\n var targetNode = event.target;\n\n if (DomHandler.hasClass(targetNode, 'p-sortable-column') || DomHandler.hasClass(targetNode, 'p-column-title') || DomHandler.hasClass(targetNode, 'p-sortable-column-icon') || DomHandler.hasClass(targetNode.parentElement, 'p-sortable-column-icon')) {\n this.props.onSort({\n originalEvent: event,\n sortField: column.props.sortField || column.props.field,\n sortFunction: column.props.sortFunction,\n sortable: column.props.sortable\n });\n DomHandler.clearSelection();\n }\n }\n }\n }, {\n key: \"onHeaderMouseDown\",\n value: function onHeaderMouseDown(event, column) {\n if (this.props.reorderableColumns && column.props.reorderable) {\n if (event.target.nodeName !== 'INPUT') event.currentTarget.draggable = true;else if (event.target.nodeName === 'INPUT') event.currentTarget.draggable = false;\n }\n }\n }, {\n key: \"onHeaderKeyDown\",\n value: function onHeaderKeyDown(event, column) {\n if (event.key === 'Enter') {\n this.onHeaderClick(event, column);\n event.preventDefault();\n }\n }\n }, {\n key: \"getMultiSortMetaDataIndex\",\n value: function getMultiSortMetaDataIndex(column) {\n if (this.props.multiSortMeta) {\n for (var i = 0; i < this.props.multiSortMeta.length; i++) {\n if (this.props.multiSortMeta[i].field === column.props.field) {\n return i;\n }\n }\n }\n\n return -1;\n }\n }, {\n key: \"onResizerMouseDown\",\n value: function onResizerMouseDown(event, column) {\n if (this.props.resizableColumns && this.props.onResizeStart) {\n this.props.onResizeStart({\n originalEvent: event,\n columnEl: event.target.parentElement,\n column: column\n });\n }\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event, column) {\n if (this.props.onDragStart) {\n this.props.onDragStart({\n originalEvent: event,\n column: column\n });\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event, column) {\n if (this.props.onDragOver) {\n this.props.onDragOver({\n originalEvent: event,\n column: column\n });\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event, column) {\n if (this.props.onDragLeave) {\n this.props.onDragLeave({\n originalEvent: event,\n column: column\n });\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event, column) {\n if (this.props.onDrop) {\n this.props.onDrop({\n originalEvent: event,\n column: column\n });\n }\n }\n }, {\n key: \"onFilterInput\",\n value: function onFilterInput(e, column) {\n var _this2 = this;\n\n if (column.props.filter && this.props.onFilter) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n var filterValue = e.target.value;\n this.filterTimeout = setTimeout(function () {\n _this2.props.onFilter({\n value: filterValue,\n field: column.props.field,\n matchMode: column.props.filterMatchMode\n });\n\n _this2.filterTimeout = null;\n }, this.props.filterDelay);\n }\n }\n }, {\n key: \"hasColumnFilter\",\n value: function hasColumnFilter(columns) {\n if (columns) {\n var _iterator = _createForOfIteratorHelper$2(columns),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var col = _step.value;\n\n if (col.props.filter) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return false;\n }\n }, {\n key: \"renderSortIcon\",\n value: function renderSortIcon(column, sorted, sortOrder) {\n if (column.props.sortable) {\n var sortIcon = sorted ? sortOrder < 0 ? 'pi-sort-amount-down' : 'pi-sort-amount-up-alt' : 'pi-sort-alt';\n var sortIconClassName = classNames('p-sortable-column-icon', 'pi pi-fw', sortIcon);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: sortIconClassName\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"renderResizer\",\n value: function renderResizer(column) {\n var _this3 = this;\n\n if (this.props.resizableColumns) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-resizer p-clickable\",\n onMouseDown: function onMouseDown(e) {\n return _this3.onResizerMouseDown(e, column);\n }\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"getAriaSort\",\n value: function getAriaSort(column, sorted, sortOrder) {\n if (column.props.sortable) {\n var sortIcon = sorted ? sortOrder < 0 ? 'pi-sort-down' : 'pi-sort-up' : 'pi-sort';\n if (sortIcon === 'pi-sort-down') return 'descending';else if (sortIcon === 'pi-sort-up') return 'ascending';else return 'none';\n } else {\n return null;\n }\n }\n }, {\n key: \"renderSortBadge\",\n value: function renderSortBadge(sortMetaDataIndex) {\n if (sortMetaDataIndex !== -1 && this.state.badgeVisible) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-sortable-column-badge\"\n }, sortMetaDataIndex + 1);\n }\n\n return null;\n }\n }, {\n key: \"renderHeaderCell\",\n value: function renderHeaderCell(column, options) {\n var _this4 = this;\n\n var filterElement;\n\n if (column.props.filter && options.renderFilter) {\n filterElement = column.props.filterElement || /*#__PURE__*/React.createElement(InputText, {\n onInput: function onInput(e) {\n return _this4.onFilterInput(e, column);\n },\n type: this.props.filterType,\n defaultValue: this.props.filters && this.props.filters[column.props.field] ? this.props.filters[column.props.field].value : null,\n className: \"p-column-filter\",\n placeholder: column.props.filterPlaceholder,\n maxLength: column.props.filterMaxLength\n });\n }\n\n if (options.filterOnly) {\n return /*#__PURE__*/React.createElement(\"th\", {\n key: column.props.columnKey || column.props.field || options.index,\n className: classNames('p-filter-column', column.props.filterHeaderClassName),\n style: column.props.filterHeaderStyle || column.props.style,\n rowSpan: column.props.rowSpan,\n colSpan: column.props.colSpan\n }, filterElement);\n } else {\n var sortMetaDataIndex = this.getMultiSortMetaDataIndex(column);\n var multiSortMetaData = sortMetaDataIndex !== -1 ? this.props.multiSortMeta[sortMetaDataIndex] : null;\n var singleSorted = column.props.field === this.props.sortField;\n var multipleSorted = multiSortMetaData !== null;\n var sorted = column.props.sortable && (singleSorted || multipleSorted);\n var sortOrder = 0;\n if (singleSorted) sortOrder = this.props.sortOrder;else if (multipleSorted) sortOrder = multiSortMetaData.order;\n var sortIconElement = this.renderSortIcon(column, sorted, sortOrder);\n var ariaSortData = this.getAriaSort(column, sorted, sortOrder);\n var sortBadge = this.renderSortBadge(sortMetaDataIndex);\n var className = classNames(column.props.headerClassName || column.props.className, {\n 'p-sortable-column': column.props.sortable,\n 'p-highlight': sorted,\n 'p-resizable-column': this.props.resizableColumns\n });\n var resizer = this.renderResizer(column);\n return /*#__PURE__*/React.createElement(\"th\", {\n key: column.columnKey || column.field || options.index,\n className: className,\n style: column.props.headerStyle || column.props.style,\n tabIndex: column.props.sortable ? this.props.tabIndex : null,\n onClick: function onClick(e) {\n return _this4.onHeaderClick(e, column);\n },\n onMouseDown: function onMouseDown(e) {\n return _this4.onHeaderMouseDown(e, column);\n },\n onKeyDown: function onKeyDown(e) {\n return _this4.onHeaderKeyDown(e, column);\n },\n rowSpan: column.props.rowSpan,\n colSpan: column.props.colSpan,\n \"aria-sort\": ariaSortData,\n onDragStart: function onDragStart(e) {\n return _this4.onDragStart(e, column);\n },\n onDragOver: function onDragOver(e) {\n return _this4.onDragOver(e, column);\n },\n onDragLeave: function onDragLeave(e) {\n return _this4.onDragLeave(e, column);\n },\n onDrop: function onDrop(e) {\n return _this4.onDrop(e, column);\n }\n }, resizer, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-title\"\n }, column.props.header), sortIconElement, sortBadge, filterElement);\n }\n }\n }, {\n key: \"renderHeaderRow\",\n value: function renderHeaderRow(row, index) {\n var _this5 = this;\n\n var rowColumns = React.Children.toArray(row.props.children);\n var rowHeaderCells = rowColumns.map(function (col, i) {\n return _this5.renderHeaderCell(col, {\n index: i,\n filterOnly: false,\n renderFilter: true\n });\n });\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index\n }, rowHeaderCells);\n }\n }, {\n key: \"renderColumnGroup\",\n value: function renderColumnGroup() {\n var _this6 = this;\n\n var rows = React.Children.toArray(this.props.columnGroup.props.children);\n return rows.map(function (row, i) {\n return _this6.renderHeaderRow(row, i);\n });\n }\n }, {\n key: \"renderColumns\",\n value: function renderColumns(columns) {\n var _this7 = this;\n\n if (columns) {\n if (this.hasColumnFilter(columns)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", null, columns.map(function (col, i) {\n return _this7.renderHeaderCell(col, {\n index: i,\n filterOnly: false,\n renderFilter: false\n });\n })), /*#__PURE__*/React.createElement(\"tr\", null, columns.map(function (col, i) {\n return _this7.renderHeaderCell(col, {\n index: i,\n filterOnly: true,\n renderFilter: true\n });\n })));\n } else {\n return /*#__PURE__*/React.createElement(\"tr\", null, columns.map(function (col, i) {\n return _this7.renderHeaderCell(col, {\n index: i,\n filterOnly: false,\n renderFilter: false\n });\n }));\n }\n } else {\n return null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.props.columnGroup ? this.renderColumnGroup() : this.renderColumns(this.props.columns);\n return /*#__PURE__*/React.createElement(\"thead\", {\n className: \"p-treetable-thead\"\n }, content);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return {\n badgeVisible: nextProps.multiSortMeta && nextProps.multiSortMeta.length > 1\n };\n }\n }]);\n\n return TreeTableHeader;\n}(Component);\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$5() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTableBodyCell = /*#__PURE__*/function (_Component) {\n _inherits(TreeTableBodyCell, _Component);\n\n var _super = _createSuper$5(TreeTableBodyCell);\n\n function TreeTableBodyCell(props) {\n var _this;\n\n _classCallCheck(this, TreeTableBodyCell);\n\n _this = _super.call(this, props);\n\n if (_this.props.editor) {\n _this.state = {};\n }\n\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onEditorFocus = _this.onEditorFocus.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TreeTableBodyCell, [{\n key: \"onClick\",\n value: function onClick() {\n var _this2 = this;\n\n if (this.props.editor && !this.state.editing && (this.props.selectOnEdit || !this.props.selectOnEdit && this.props.selected)) {\n this.selfClick = true;\n this.setState({\n editing: true\n }, function () {\n _this2.bindDocumentEditListener();\n\n _this2.overlayEventListener = function (e) {\n if (!_this2.isOutsideClicked(e.target)) {\n _this2.selfClick = true;\n }\n };\n\n OverlayService.on('overlay-click', _this2.overlayEventListener);\n });\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.which === 13 || event.which === 9) {\n this.switchCellToViewMode(event);\n }\n }\n }, {\n key: \"bindDocumentEditListener\",\n value: function bindDocumentEditListener() {\n var _this3 = this;\n\n if (!this.documentEditListener) {\n this.documentEditListener = function (e) {\n if (!_this3.selfClick && _this3.isOutsideClicked(e.target)) {\n _this3.switchCellToViewMode(e);\n }\n\n _this3.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return this.container && !(this.container.isSameNode(target) || this.container.contains(target));\n }\n }, {\n key: \"unbindDocumentEditListener\",\n value: function unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n }\n }, {\n key: \"closeCell\",\n value: function closeCell() {\n var _this4 = this;\n\n /* When using the 'tab' key, the focus event of the next cell is not called in IE. */\n setTimeout(function () {\n _this4.setState({\n editing: false\n }, function () {\n _this4.unbindDocumentEditListener();\n\n OverlayService.off('overlay-click', _this4.overlayEventListener);\n _this4.overlayEventListener = null;\n });\n }, 1);\n }\n }, {\n key: \"onEditorFocus\",\n value: function onEditorFocus(event) {\n this.onClick(event);\n }\n }, {\n key: \"switchCellToViewMode\",\n value: function switchCellToViewMode(event) {\n if (this.props.editorValidator) {\n var valid = this.props.editorValidator({\n originalEvent: event,\n columnProps: this.props\n });\n\n if (valid) {\n this.closeCell();\n }\n } else {\n this.closeCell();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this5 = this;\n\n if (this.container && this.props.editor) {\n clearTimeout(this.tabindexTimeout);\n\n if (this.state && this.state.editing) {\n var focusable = DomHandler.findSingle(this.container, 'input');\n\n if (focusable && document.activeElement !== focusable && !focusable.hasAttribute('data-isCellEditing')) {\n focusable.setAttribute('data-isCellEditing', true);\n focusable.focus();\n }\n\n this.keyHelper.tabIndex = -1;\n } else {\n this.tabindexTimeout = setTimeout(function () {\n if (_this5.keyHelper) {\n _this5.keyHelper.setAttribute('tabindex', 0);\n }\n }, 50);\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentEditListener();\n\n if (this.overlayEventListener) {\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames(this.props.bodyClassName || this.props.className, {\n 'p-editable-column': this.props.editor,\n 'p-cell-editing': this.props.editor ? this.state.editing : false\n });\n var style = this.props.bodyStyle || this.props.style;\n var content;\n\n if (this.state && this.state.editing) {\n if (this.props.editor) content = this.props.editor(this.props);else throw new Error(\"Editor is not found on column.\");\n } else {\n if (this.props.body) content = this.props.body(this.props.node, this.props);else content = ObjectUtils.resolveFieldData(this.props.node.data, this.props.field);\n }\n /* eslint-disable */\n\n\n var editorKeyHelper = this.props.editor && /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n ref: function ref(el) {\n _this6.keyHelper = el;\n },\n className: \"p-cell-editor-key-helper p-hidden-accessible\",\n onFocus: this.onEditorFocus\n }, /*#__PURE__*/React.createElement(\"span\", null));\n /* eslint-enable */\n\n return /*#__PURE__*/React.createElement(\"td\", {\n ref: function ref(el) {\n return _this6.container = el;\n },\n className: className,\n style: style,\n onClick: this.onClick,\n onKeyDown: this.onKeyDown\n }, this.props.children, editorKeyHelper, content);\n }\n }]);\n\n return TreeTableBodyCell;\n}(Component);\n\nfunction _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\nfunction _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTableRow = /*#__PURE__*/function (_Component) {\n _inherits(TreeTableRow, _Component);\n\n var _super = _createSuper$4(TreeTableRow);\n\n function TreeTableRow(props) {\n var _this;\n\n _classCallCheck(this, TreeTableRow);\n\n _this = _super.call(this, props);\n _this.onTogglerClick = _this.onTogglerClick.bind(_assertThisInitialized(_this));\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.propagateUp = _this.propagateUp.bind(_assertThisInitialized(_this));\n _this.onCheckboxChange = _this.onCheckboxChange.bind(_assertThisInitialized(_this));\n _this.onCheckboxFocus = _this.onCheckboxFocus.bind(_assertThisInitialized(_this));\n _this.onCheckboxBlur = _this.onCheckboxBlur.bind(_assertThisInitialized(_this));\n _this.onRightClick = _this.onRightClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TreeTableRow, [{\n key: \"isLeaf\",\n value: function isLeaf() {\n return this.props.node.leaf === false ? false : !(this.props.node.children && this.props.node.children.length);\n }\n }, {\n key: \"onTogglerClick\",\n value: function onTogglerClick(event) {\n if (this.isExpanded()) this.collapse(event);else this.expand(event);\n event.preventDefault();\n event.stopPropagation();\n }\n }, {\n key: \"expand\",\n value: function expand(event) {\n var expandedKeys = this.props.expandedKeys ? _objectSpread$1({}, this.props.expandedKeys) : {};\n expandedKeys[this.props.node.key] = true;\n this.props.onToggle({\n originalEvent: event,\n value: expandedKeys\n });\n this.invokeToggleEvents(event, true);\n }\n }, {\n key: \"collapse\",\n value: function collapse(event) {\n var expandedKeys = _objectSpread$1({}, this.props.expandedKeys);\n\n delete expandedKeys[this.props.node.key];\n this.props.onToggle({\n originalEvent: event,\n value: expandedKeys\n });\n this.invokeToggleEvents(event, false);\n }\n }, {\n key: \"invokeToggleEvents\",\n value: function invokeToggleEvents(event, expanded) {\n if (expanded) {\n if (this.props.onExpand) {\n this.props.onExpand({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n if (this.props.onCollapse) {\n this.props.onCollapse({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onRowClick) {\n this.props.onRowClick({\n originalEvent: event,\n node: this.props.node\n });\n }\n\n var targetNode = event.target.nodeName;\n\n if (targetNode === 'INPUT' || targetNode === 'BUTTON' || targetNode === 'A' || DomHandler.hasClass(event.target, 'p-clickable') || DomHandler.hasClass(event.target, 'p-treetable-toggler') || DomHandler.hasClass(event.target.parentElement, 'p-treetable-toggler')) {\n return;\n }\n\n if ((this.isSingleSelectionMode() || this.isMultipleSelectionMode()) && this.props.node.selectable !== false) {\n var selectionKeys;\n var selected = this.isSelected();\n var metaSelection = this.nodeTouched ? false : this.props.metaKeySelection;\n\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n selectionKeys = null;\n } else {\n selectionKeys = _objectSpread$1({}, this.props.selectionKeys);\n delete selectionKeys[this.props.node.key];\n }\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n if (this.isSingleSelectionMode()) {\n selectionKeys = this.props.node.key;\n } else if (this.isMultipleSelectionMode()) {\n selectionKeys = !metaKey ? {} : this.props.selectionKeys ? _objectSpread$1({}, this.props.selectionKeys) : {};\n selectionKeys[this.props.node.key] = true;\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n } else {\n if (this.isSingleSelectionMode()) {\n if (selected) {\n selectionKeys = null;\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n selectionKeys = this.props.node.key;\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n } else {\n if (selected) {\n selectionKeys = _objectSpread$1({}, this.props.selectionKeys);\n delete selectionKeys[this.props.node.key];\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n selectionKeys = this.props.selectionKeys ? _objectSpread$1({}, this.props.selectionKeys) : {};\n selectionKeys[this.props.node.key] = true;\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }\n }\n\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange({\n originalEvent: event,\n value: selectionKeys\n });\n }\n }\n\n this.nodeTouched = false;\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd() {\n this.nodeTouched = true;\n }\n }, {\n key: \"onCheckboxChange\",\n value: function onCheckboxChange(event) {\n var checked = this.isChecked();\n var selectionKeys = this.props.selectionKeys ? _objectSpread$1({}, this.props.selectionKeys) : {};\n\n if (checked) {\n if (this.props.propagateSelectionDown) this.propagateDown(this.props.node, false, selectionKeys);else delete selectionKeys[this.props.node.key];\n\n if (this.props.propagateSelectionUp && this.props.onPropagateUp) {\n this.props.onPropagateUp({\n originalEvent: event,\n check: false,\n selectionKeys: selectionKeys\n });\n }\n\n if (this.props.onUnselect) {\n this.props.onUnselect({\n originalEvent: event,\n node: this.props.node\n });\n }\n } else {\n if (this.props.propagateSelectionDown) this.propagateDown(this.props.node, true, selectionKeys);else selectionKeys[this.props.node.key] = {\n checked: true\n };\n\n if (this.props.propagateSelectionUp && this.props.onPropagateUp) {\n this.props.onPropagateUp({\n originalEvent: event,\n check: true,\n selectionKeys: selectionKeys\n });\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange({\n originalEvent: event,\n value: selectionKeys\n });\n }\n\n DomHandler.clearSelection();\n }\n }, {\n key: \"onCheckboxFocus\",\n value: function onCheckboxFocus() {\n DomHandler.addClass(this.checkboxBox, 'p-focus');\n }\n }, {\n key: \"onCheckboxBlur\",\n value: function onCheckboxBlur() {\n DomHandler.removeClass(this.checkboxBox, 'p-focus');\n }\n }, {\n key: \"propagateUp\",\n value: function propagateUp(event) {\n var check = event.check;\n var selectionKeys = event.selectionKeys;\n var checkedChildCount = 0;\n var childPartialSelected = false;\n\n var _iterator = _createForOfIteratorHelper$1(this.props.node.children),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n if (selectionKeys[child.key] && selectionKeys[child.key].checked) checkedChildCount++;else if (selectionKeys[child.key] && selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (check && checkedChildCount === this.props.node.children.length) {\n selectionKeys[this.props.node.key] = {\n checked: true,\n partialChecked: false\n };\n } else {\n if (!check) {\n delete selectionKeys[this.props.node.key];\n }\n\n if (childPartialSelected || checkedChildCount > 0 && checkedChildCount !== this.props.node.children.length) selectionKeys[this.props.node.key] = {\n checked: false,\n partialChecked: true\n };else selectionKeys[this.props.node.key] = {\n checked: false,\n partialChecked: false\n };\n }\n\n if (this.props.propagateSelectionUp && this.props.onPropagateUp) {\n this.props.onPropagateUp(event);\n }\n }\n }, {\n key: \"propagateDown\",\n value: function propagateDown(node, check, selectionKeys) {\n if (check) selectionKeys[node.key] = {\n checked: true,\n partialChecked: false\n };else delete selectionKeys[node.key];\n\n if (node.children && node.children.length) {\n for (var i = 0; i < node.children.length; i++) {\n this.propagateDown(node.children[i], check, selectionKeys);\n }\n }\n }\n }, {\n key: \"onRightClick\",\n value: function onRightClick(event) {\n DomHandler.clearSelection();\n\n if (this.props.onContextMenuSelectionChange) {\n this.props.onContextMenuSelectionChange({\n originalEvent: event,\n value: this.props.node.key\n });\n }\n\n if (this.props.onContextMenu) {\n this.props.onContextMenu({\n originalEvent: event,\n node: this.props.node\n });\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.target === this.container) {\n var rowElement = event.currentTarget;\n\n switch (event.which) {\n //down arrow\n case 40:\n var nextRow = rowElement.nextElementSibling;\n\n if (nextRow) {\n nextRow.focus();\n }\n\n event.preventDefault();\n break;\n //up arrow\n\n case 38:\n var previousRow = rowElement.previousElementSibling;\n\n if (previousRow) {\n previousRow.focus();\n }\n\n event.preventDefault();\n break;\n //right arrow\n\n case 39:\n if (!this.isExpanded()) {\n this.expand(event);\n }\n\n event.preventDefault();\n break;\n //left arrow\n\n case 37:\n if (this.isExpanded()) {\n this.collapse(event);\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.onClick(event);\n event.preventDefault();\n break;\n }\n }\n }\n }, {\n key: \"isSingleSelectionMode\",\n value: function isSingleSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'single';\n }\n }, {\n key: \"isMultipleSelectionMode\",\n value: function isMultipleSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'multiple';\n }\n }, {\n key: \"isExpanded\",\n value: function isExpanded() {\n return this.props.expandedKeys ? this.props.expandedKeys[this.props.node.key] !== undefined : false;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected() {\n if ((this.props.selectionMode === 'single' || this.props.selectionMode === 'multiple') && this.props.selectionKeys) return this.props.selectionMode === 'single' ? this.props.selectionKeys === this.props.node.key : this.props.selectionKeys[this.props.node.key] !== undefined;else return false;\n }\n }, {\n key: \"isChecked\",\n value: function isChecked() {\n return this.props.selectionKeys ? this.props.selectionKeys[this.props.node.key] && this.props.selectionKeys[this.props.node.key].checked : false;\n }\n }, {\n key: \"isPartialChecked\",\n value: function isPartialChecked() {\n return this.props.selectionKeys ? this.props.selectionKeys[this.props.node.key] && this.props.selectionKeys[this.props.node.key].partialChecked : false;\n }\n }, {\n key: \"renderToggler\",\n value: function renderToggler() {\n var expanded = this.isExpanded();\n var iconClassName = classNames('\"p-treetable-toggler-icon pi pi-fw', {\n 'pi-chevron-right': !expanded,\n 'pi-chevron-down': expanded\n });\n var style = {\n marginLeft: this.props.level * 16 + 'px',\n visibility: this.props.node.leaf === false || this.props.node.children && this.props.node.children.length ? 'visible' : 'hidden'\n };\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-treetable-toggler p-link p-unselectable-text\",\n onClick: this.onTogglerClick,\n tabIndex: -1,\n style: style\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderCheckbox\",\n value: function renderCheckbox() {\n var _this2 = this;\n\n if (this.props.selectionMode === 'checkbox' && this.props.node.selectable !== false) {\n var checked = this.isChecked();\n var partialChecked = this.isPartialChecked();\n var className = classNames('p-checkbox-box', {\n 'p-highlight': checked,\n 'p-indeterminate': partialChecked\n });\n var icon = classNames('p-checkbox-icon p-c', {\n 'pi pi-check': checked,\n 'pi pi-minus': partialChecked\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-checkbox p-treetable-checkbox p-component\",\n onClick: this.onCheckboxChange,\n role: \"checkbox\",\n \"aria-checked\": checked\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"checkbox\",\n onFocus: this.onCheckboxFocus,\n onBlur: this.onCheckboxBlur\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n ref: function ref(el) {\n return _this2.checkboxBox = el;\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n })));\n } else {\n return null;\n }\n }\n }, {\n key: \"renderCell\",\n value: function renderCell(column) {\n var toggler, checkbox;\n\n if (column.props.expander) {\n toggler = this.renderToggler();\n checkbox = this.renderCheckbox();\n }\n\n return /*#__PURE__*/React.createElement(TreeTableBodyCell, _extends({\n key: column.props.columnKey || column.props.field\n }, column.props, {\n selectOnEdit: this.props.selectOnEdit,\n selected: this.isSelected(),\n node: this.props.node,\n rowIndex: this.props.rowIndex\n }), toggler, checkbox);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this3 = this;\n\n if (this.isExpanded() && this.props.node.children) {\n return this.props.node.children.map(function (childNode, index) {\n return /*#__PURE__*/React.createElement(TreeTableRow, {\n key: childNode.key || JSON.stringify(childNode.data),\n level: _this3.props.level + 1,\n rowIndex: _this3.props.rowIndex + '_' + index,\n node: childNode,\n columns: _this3.props.columns,\n expandedKeys: _this3.props.expandedKeys,\n selectOnEdit: _this3.props.selectOnEdit,\n onToggle: _this3.props.onToggle,\n onExpand: _this3.props.onExpand,\n onCollapse: _this3.props.onCollapse,\n selectionMode: _this3.props.selectionMode,\n selectionKeys: _this3.props.selectionKeys,\n onSelectionChange: _this3.props.onSelectionChange,\n metaKeySelection: _this3.props.metaKeySelection,\n onRowClick: _this3.props.onRowClick,\n onSelect: _this3.props.onSelect,\n onUnselect: _this3.props.onUnselect,\n propagateSelectionUp: _this3.props.propagateSelectionUp,\n propagateSelectionDown: _this3.props.propagateSelectionDown,\n onPropagateUp: _this3.propagateUp,\n rowClassName: _this3.props.rowClassName,\n contextMenuSelectionKey: _this3.props.contextMenuSelectionKey,\n onContextMenuSelectionChange: _this3.props.onContextMenuSelectionChange,\n onContextMenu: _this3.props.onContextMenu\n });\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var cells = this.props.columns.map(function (col) {\n return _this4.renderCell(col);\n });\n var children = this.renderChildren();\n var className = {\n 'p-highlight': this.isSelected(),\n 'p-highlight-contextmenu': this.props.contextMenuSelectionKey && this.props.contextMenuSelectionKey === this.props.node.key\n };\n\n if (this.props.rowClassName) {\n var rowClassName = this.props.rowClassName(this.props.node);\n className = _objectSpread$1(_objectSpread$1({}, className), rowClassName);\n }\n\n className = classNames(className, this.props.node.className);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", {\n ref: function ref(el) {\n return _this4.container = el;\n },\n tabIndex: 0,\n className: className,\n style: this.props.node.style,\n onClick: this.onClick,\n onTouchEnd: this.onTouchEnd,\n onContextMenu: this.onRightClick,\n onKeyDown: this.onKeyDown\n }, cells), children);\n }\n }]);\n\n return TreeTableRow;\n}(Component);\n\n_defineProperty(TreeTableRow, \"defaultProps\", {\n node: null,\n level: null,\n columns: null,\n expandedKeys: null,\n contextMenuSelectionKey: null,\n selectionMode: null,\n selectionKeys: null,\n metaKeySelection: true,\n propagateSelectionUp: true,\n propagateSelectionDown: true,\n rowClassName: null,\n onExpand: null,\n onCollapse: null,\n onToggle: null,\n onRowClick: null,\n onSelect: null,\n onUnselect: null,\n onSelectionChange: null,\n onPropagateUp: null,\n onContextMenuSelectionChange: null,\n onContextMenu: null\n});\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTableBody = /*#__PURE__*/function (_Component) {\n _inherits(TreeTableBody, _Component);\n\n var _super = _createSuper$3(TreeTableBody);\n\n function TreeTableBody() {\n _classCallCheck(this, TreeTableBody);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TreeTableBody, [{\n key: \"createRow\",\n value: function createRow(node, index) {\n return /*#__PURE__*/React.createElement(TreeTableRow, {\n key: node.key || JSON.stringify(node.data),\n level: 0,\n rowIndex: index,\n selectOnEdit: this.props.selectOnEdit,\n node: node,\n columns: this.props.columns,\n expandedKeys: this.props.expandedKeys,\n onToggle: this.props.onToggle,\n onExpand: this.props.onExpand,\n onCollapse: this.props.onCollapse,\n selectionMode: this.props.selectionMode,\n selectionKeys: this.props.selectionKeys,\n onSelectionChange: this.props.onSelectionChange,\n metaKeySelection: this.props.metaKeySelection,\n onRowClick: this.props.onRowClick,\n onSelect: this.props.onSelect,\n onUnselect: this.props.onUnselect,\n propagateSelectionUp: this.props.propagateSelectionUp,\n propagateSelectionDown: this.props.propagateSelectionDown,\n rowClassName: this.props.rowClassName,\n contextMenuSelectionKey: this.props.contextMenuSelectionKey,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n onContextMenu: this.props.onContextMenu\n });\n }\n }, {\n key: \"renderRows\",\n value: function renderRows() {\n var _this = this;\n\n if (this.props.paginator && !this.props.lazy) {\n var rpp = this.props.rows || 0;\n var startIndex = this.props.first || 0;\n var endIndex = startIndex + rpp;\n var rows = [];\n\n for (var i = startIndex; i < endIndex; i++) {\n var rowData = this.props.value[i];\n if (rowData) rows.push(this.createRow(this.props.value[i]));else break;\n }\n\n return rows;\n } else {\n return this.props.value.map(function (node, index) {\n return _this.createRow(node, index);\n });\n }\n }\n }, {\n key: \"renderEmptyMessage\",\n value: function renderEmptyMessage() {\n if (this.props.loading) {\n return null;\n } else {\n var colSpan = this.props.columns ? this.props.columns.length : null;\n return /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n className: \"p-treetable-emptymessage\",\n colSpan: colSpan\n }, this.props.emptyMessage));\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.props.value && this.props.value.length ? this.renderRows() : this.renderEmptyMessage();\n return /*#__PURE__*/React.createElement(\"tbody\", {\n className: \"p-treetable-tbody\"\n }, content);\n }\n }]);\n\n return TreeTableBody;\n}(Component);\n\n_defineProperty(TreeTableBody, \"defaultProps\", {\n value: null,\n columns: null,\n expandedKeys: null,\n contextMenuSelectionKey: null,\n paginator: false,\n first: null,\n rows: null,\n selectionMode: null,\n selectionKeys: null,\n metaKeySelection: true,\n propagateSelectionUp: true,\n propagateSelectionDown: true,\n lazy: false,\n rowClassName: null,\n emptyMessage: \"No records found\",\n loading: false,\n onExpand: null,\n onCollapse: null,\n onToggle: null,\n onRowClick: null,\n onSelect: null,\n onUnselect: null,\n onSelectionChange: null,\n onContextMenuSelectionChange: null,\n onContextMenu: null\n});\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTableFooter = /*#__PURE__*/function (_Component) {\n _inherits(TreeTableFooter, _Component);\n\n var _super = _createSuper$2(TreeTableFooter);\n\n function TreeTableFooter() {\n _classCallCheck(this, TreeTableFooter);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TreeTableFooter, [{\n key: \"renderFooterCell\",\n value: function renderFooterCell(column, index) {\n return /*#__PURE__*/React.createElement(\"td\", {\n key: column.field || index,\n className: column.props.footerClassName || column.props.className,\n style: column.props.footerStyle || column.props.style,\n rowSpan: column.props.rowSpan,\n colSpan: column.props.colSpan\n }, column.props.footer);\n }\n }, {\n key: \"renderFooterRow\",\n value: function renderFooterRow(row, index) {\n var _this = this;\n\n var rowColumns = React.Children.toArray(row.props.children);\n var rowFooterCells = rowColumns.map(function (col, index) {\n return _this.renderFooterCell(col, index);\n });\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index\n }, rowFooterCells);\n }\n }, {\n key: \"renderColumnGroup\",\n value: function renderColumnGroup() {\n var _this2 = this;\n\n var rows = React.Children.toArray(this.props.columnGroup.props.children);\n return rows.map(function (row, i) {\n return _this2.renderFooterRow(row, i);\n });\n }\n }, {\n key: \"renderColumns\",\n value: function renderColumns(columns) {\n var _this3 = this;\n\n if (columns) {\n var headerCells = columns.map(function (col, index) {\n return _this3.renderFooterCell(col, index);\n });\n return /*#__PURE__*/React.createElement(\"tr\", null, headerCells);\n } else {\n return null;\n }\n }\n }, {\n key: \"hasFooter\",\n value: function hasFooter() {\n if (this.props.columnGroup) {\n return true;\n } else {\n for (var i = 0; i < this.props.columns.length; i++) {\n if (this.props.columns[i].props.footer) {\n return true;\n }\n }\n }\n\n return false;\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.props.columnGroup ? this.renderColumnGroup() : this.renderColumns(this.props.columns);\n\n if (this.hasFooter()) {\n return /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"p-treetable-tfoot\"\n }, content);\n } else {\n return null;\n }\n }\n }]);\n\n return TreeTableFooter;\n}(Component);\n\n_defineProperty(TreeTableFooter, \"defaultProps\", {\n columns: null,\n columnGroup: null\n});\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTableScrollableView = /*#__PURE__*/function (_Component) {\n _inherits(TreeTableScrollableView, _Component);\n\n var _super = _createSuper$1(TreeTableScrollableView);\n\n function TreeTableScrollableView(props) {\n var _this;\n\n _classCallCheck(this, TreeTableScrollableView);\n\n _this = _super.call(this, props);\n _this.onHeaderScroll = _this.onHeaderScroll.bind(_assertThisInitialized(_this));\n _this.onBodyScroll = _this.onBodyScroll.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TreeTableScrollableView, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setScrollHeight();\n\n if (!this.props.frozen) {\n var scrollBarWidth = DomHandler.calculateScrollbarWidth();\n this.scrollHeaderBox.style.marginRight = scrollBarWidth + 'px';\n\n if (this.scrollFooterBox) {\n this.scrollFooterBox.style.marginRight = scrollBarWidth + 'px';\n }\n } else {\n this.scrollBody.style.paddingBottom = DomHandler.calculateScrollbarWidth() + 'px';\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.setScrollHeight();\n }\n }, {\n key: \"setScrollHeight\",\n value: function setScrollHeight() {\n if (this.props.scrollHeight) {\n if (this.props.scrollHeight.indexOf('%') !== -1) {\n var datatableContainer = this.findDataTableContainer(this.container);\n this.scrollBody.style.visibility = 'hidden';\n this.scrollBody.style.height = '100px'; //temporary height to calculate static height\n\n var containerHeight = DomHandler.getOuterHeight(datatableContainer);\n var relativeHeight = DomHandler.getOuterHeight(datatableContainer.parentElement) * parseInt(this.props.scrollHeight, 10) / 100;\n var staticHeight = containerHeight - 100; //total height of headers, footers, paginators\n\n var scrollBodyHeight = relativeHeight - staticHeight;\n this.scrollBody.style.height = 'auto';\n this.scrollBody.style.maxHeight = scrollBodyHeight + 'px';\n this.scrollBody.style.visibility = 'visible';\n } else {\n this.scrollBody.style.maxHeight = this.props.scrollHeight;\n }\n }\n }\n }, {\n key: \"findDataTableContainer\",\n value: function findDataTableContainer(element) {\n if (element) {\n var el = element;\n\n while (el && !DomHandler.hasClass(el, 'p-treetable')) {\n el = el.parentElement;\n }\n\n return el;\n } else {\n return null;\n }\n }\n }, {\n key: \"onHeaderScroll\",\n value: function onHeaderScroll() {\n this.scrollHeader.scrollLeft = 0;\n }\n }, {\n key: \"onBodyScroll\",\n value: function onBodyScroll() {\n var frozenView = this.container.previousElementSibling;\n var frozenScrollBody;\n\n if (frozenView) {\n frozenScrollBody = DomHandler.findSingle(frozenView, '.p-treetable-scrollable-body');\n }\n\n this.scrollHeaderBox.style.marginLeft = -1 * this.scrollBody.scrollLeft + 'px';\n\n if (this.scrollFooterBox) {\n this.scrollFooterBox.style.marginLeft = -1 * this.scrollBody.scrollLeft + 'px';\n }\n\n if (frozenScrollBody) {\n frozenScrollBody.scrollTop = this.scrollBody.scrollTop;\n }\n }\n }, {\n key: \"calculateRowHeight\",\n value: function calculateRowHeight() {\n var row = DomHandler.findSingle(this.scrollTable, 'tr:not(.p-treetable-emptymessage-row)');\n\n if (row) {\n this.rowHeight = DomHandler.getOuterHeight(row);\n }\n }\n }, {\n key: \"renderColGroup\",\n value: function renderColGroup() {\n if (this.props.columns && this.props.columns.length) {\n return /*#__PURE__*/React.createElement(\"colgroup\", {\n className: \"p-treetable-scrollable-colgroup\"\n }, this.props.columns.map(function (col, i) {\n return /*#__PURE__*/React.createElement(\"col\", {\n key: col.field + '_' + i\n });\n }));\n } else {\n return null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-treetable-scrollable-view', {\n 'p-treetable-frozen-view': this.props.frozen,\n 'p-treetable-unfrozen-view': !this.props.frozen && this.props.frozenWidth\n });\n var width = this.props.frozen ? this.props.frozenWidth : 'calc(100% - ' + this.props.frozenWidth + ')';\n var left = this.props.frozen ? null : this.props.frozenWidth;\n var colGroup = this.renderColGroup();\n var scrollableBodyStyle = !this.props.frozen && this.props.scrollHeight ? {\n overflowY: 'scroll'\n } : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: {\n width: width,\n left: left\n },\n ref: function ref(el) {\n _this2.container = el;\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-scrollable-header\",\n ref: function ref(el) {\n _this2.scrollHeader = el;\n },\n onScroll: this.onHeaderScroll\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-scrollable-header-box\",\n ref: function ref(el) {\n _this2.scrollHeaderBox = el;\n }\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"p-treetable-scrollable-header-table\"\n }, colGroup, this.props.header))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-scrollable-body\",\n ref: function ref(el) {\n _this2.scrollBody = el;\n },\n style: scrollableBodyStyle,\n onScroll: this.onBodyScroll\n }, /*#__PURE__*/React.createElement(\"table\", {\n ref: function ref(el) {\n _this2.scrollTable = el;\n },\n style: {\n top: '0'\n },\n className: \"p-treetable-scrollable-body-table\"\n }, colGroup, this.props.body)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-scrollable-footer\",\n ref: function ref(el) {\n _this2.scrollFooter = el;\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-scrollable-footer-box\",\n ref: function ref(el) {\n _this2.scrollFooterBox = el;\n }\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"p-treetable-scrollable-footer-table\"\n }, colGroup, this.props.footer))));\n }\n }]);\n\n return TreeTableScrollableView;\n}(Component);\n\n_defineProperty(TreeTableScrollableView, \"defaultProps\", {\n header: null,\n body: null,\n footer: null,\n columns: null,\n frozen: null,\n frozenWidth: null,\n frozenBody: null\n});\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TreeTable = /*#__PURE__*/function (_Component) {\n _inherits(TreeTable, _Component);\n\n var _super = _createSuper(TreeTable);\n\n function TreeTable(props) {\n var _this;\n\n _classCallCheck(this, TreeTable);\n\n _this = _super.call(this, props);\n var state = {};\n\n if (!_this.props.onToggle) {\n _this.state = {\n expandedKeys: _this.props.expandedKeys\n };\n }\n\n if (!_this.props.onPage) {\n state.first = props.first;\n state.rows = props.rows;\n }\n\n if (!_this.props.onSort) {\n state.sortField = props.sortField;\n state.sortOrder = props.sortOrder;\n state.multiSortMeta = props.multiSortMeta;\n }\n\n if (!_this.props.onFilter) {\n state.filters = props.filters;\n }\n\n if (Object.keys(state).length) {\n _this.state = state;\n }\n\n _this.onToggle = _this.onToggle.bind(_assertThisInitialized(_this));\n _this.onPageChange = _this.onPageChange.bind(_assertThisInitialized(_this));\n _this.onSort = _this.onSort.bind(_assertThisInitialized(_this));\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n _this.onColumnResizeStart = _this.onColumnResizeStart.bind(_assertThisInitialized(_this));\n _this.onColumnDragStart = _this.onColumnDragStart.bind(_assertThisInitialized(_this));\n _this.onColumnDragOver = _this.onColumnDragOver.bind(_assertThisInitialized(_this));\n _this.onColumnDragLeave = _this.onColumnDragLeave.bind(_assertThisInitialized(_this));\n _this.onColumnDrop = _this.onColumnDrop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TreeTable, [{\n key: \"onToggle\",\n value: function onToggle(event) {\n if (this.props.onToggle) {\n this.props.onToggle(event);\n } else {\n this.setState({\n expandedKeys: event.value\n });\n }\n }\n }, {\n key: \"onPageChange\",\n value: function onPageChange(event) {\n if (this.props.onPage) this.props.onPage(event);else this.setState({\n first: event.first,\n rows: event.rows\n });\n }\n }, {\n key: \"onSort\",\n value: function onSort(event) {\n var sortField = event.sortField;\n var sortOrder = this.props.defaultSortOrder;\n var multiSortMeta;\n var eventMeta;\n this.columnSortable = event.sortable;\n this.columnSortFunction = event.sortFunction;\n this.columnField = event.sortField;\n\n if (this.props.sortMode === 'multiple') {\n var metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta && multiSortMeta instanceof Array) {\n var sortMeta = multiSortMeta.find(function (sortMeta) {\n return sortMeta.field === sortField;\n });\n sortOrder = sortMeta ? this.getCalculatedSortOrder(sortMeta.order) : sortOrder;\n }\n\n var newMetaData = {\n field: sortField,\n order: sortOrder\n };\n\n if (sortOrder) {\n if (!multiSortMeta || !metaKey) {\n multiSortMeta = [];\n }\n\n this.addSortMeta(newMetaData, multiSortMeta);\n } else if (this.props.removableSort && multiSortMeta) {\n this.removeSortMeta(newMetaData, multiSortMeta);\n }\n\n eventMeta = {\n multiSortMeta: multiSortMeta\n };\n } else {\n sortOrder = this.getSortField() === sortField ? this.getCalculatedSortOrder(this.getSortOrder()) : sortOrder;\n\n if (this.props.removableSort) {\n sortField = sortOrder ? sortField : null;\n }\n\n eventMeta = {\n sortField: sortField,\n sortOrder: sortOrder\n };\n }\n\n if (this.props.onSort) {\n this.props.onSort(eventMeta);\n } else {\n eventMeta.first = 0;\n this.setState(eventMeta);\n }\n }\n }, {\n key: \"getCalculatedSortOrder\",\n value: function getCalculatedSortOrder(currentOrder) {\n return this.props.removableSort ? this.props.defaultSortOrder === currentOrder ? currentOrder * -1 : 0 : currentOrder * -1;\n }\n }, {\n key: \"addSortMeta\",\n value: function addSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) multiSortMeta[index] = meta;else multiSortMeta.push(meta);\n }\n }, {\n key: \"removeSortMeta\",\n value: function removeSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) {\n multiSortMeta.splice(index, 1);\n }\n\n multiSortMeta = multiSortMeta.length > 0 ? multiSortMeta : null;\n }\n }, {\n key: \"sortSingle\",\n value: function sortSingle(data) {\n return this.sortNodes(data);\n }\n }, {\n key: \"sortNodes\",\n value: function sortNodes(data) {\n var _this2 = this;\n\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortable === 'custom' && this.columnSortFunction) {\n value = this.columnSortFunction({\n field: this.getSortField(),\n order: this.getSortOrder()\n });\n } else {\n value.sort(function (node1, node2) {\n var sortField = _this2.getSortField();\n\n var value1 = ObjectUtils.resolveFieldData(node1.data, sortField);\n var value2 = ObjectUtils.resolveFieldData(node2.data, sortField);\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return _this2.getSortOrder() * result;\n });\n\n for (var i = 0; i < value.length; i++) {\n if (value[i].children && value[i].children.length) {\n value[i].children = this.sortNodes(value[i].children);\n }\n }\n }\n\n return value;\n }\n }, {\n key: \"sortMultiple\",\n value: function sortMultiple(data) {\n var multiSortMeta = this.getMultiSortMeta();\n if (multiSortMeta) return this.sortMultipleNodes(data, multiSortMeta);else return data;\n }\n }, {\n key: \"sortMultipleNodes\",\n value: function sortMultipleNodes(data, multiSortMeta) {\n var _this3 = this;\n\n var value = _toConsumableArray(data);\n\n value.sort(function (node1, node2) {\n return _this3.multisortField(node1, node2, multiSortMeta, 0);\n });\n\n for (var i = 0; i < value.length; i++) {\n if (value[i].children && value[i].children.length) {\n value[i].children = this.sortMultipleNodes(value[i].children, multiSortMeta);\n }\n }\n\n return value;\n }\n }, {\n key: \"multisortField\",\n value: function multisortField(node1, node2, multiSortMeta, index) {\n var value1 = ObjectUtils.resolveFieldData(node1.data, multiSortMeta[index].field);\n var value2 = ObjectUtils.resolveFieldData(node2.data, multiSortMeta[index].field);\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else {\n if (value1 === value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(node1, node2, multiSortMeta, index + 1) : 0;\n } else {\n if ((typeof value1 === 'string' || value1 instanceof String) && (typeof value2 === 'string' || value2 instanceof String)) return multiSortMeta[index].order * value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : 1;\n }\n }\n return multiSortMeta[index].order * result;\n }\n }, {\n key: \"filter\",\n value: function filter(value, field, mode) {\n this.onFilter({\n value: value,\n field: field,\n matchMode: mode\n });\n }\n }, {\n key: \"onFilter\",\n value: function onFilter(event) {\n var currentFilters = this.getFilters();\n var newFilters = currentFilters ? _objectSpread({}, currentFilters) : {};\n if (!this.isFilterBlank(event.value)) newFilters[event.field] = {\n value: event.value,\n matchMode: event.matchMode\n };else if (newFilters[event.field]) delete newFilters[event.field];\n\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: newFilters\n });\n } else {\n this.setState({\n first: 0,\n filters: newFilters\n });\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n var filters = this.getFilters();\n return filters && Object.keys(filters).length > 0;\n }\n }, {\n key: \"isFilterBlank\",\n value: function isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length === 0 || filter instanceof Array && filter.length === 0) return true;else return false;\n }\n\n return true;\n }\n }, {\n key: \"onColumnResizeStart\",\n value: function onColumnResizeStart(event) {\n var containerLeft = DomHandler.getOffset(this.container).left;\n this.resizeColumn = event.columnEl;\n this.resizeColumnProps = event.column;\n this.columnResizing = true;\n this.lastResizerHelperX = event.originalEvent.pageX - containerLeft + this.container.scrollLeft;\n this.bindColumnResizeEvents();\n }\n }, {\n key: \"onColumnResize\",\n value: function onColumnResize(event) {\n var containerLeft = DomHandler.getOffset(this.container).left;\n DomHandler.addClass(this.container, 'p-unselectable-text');\n this.resizerHelper.style.height = this.container.offsetHeight + 'px';\n this.resizerHelper.style.top = 0 + 'px';\n this.resizerHelper.style.left = event.pageX - containerLeft + this.container.scrollLeft + 'px';\n this.resizerHelper.style.display = 'block';\n }\n }, {\n key: \"onColumnResizeEnd\",\n value: function onColumnResizeEnd(event) {\n var delta = this.resizerHelper.offsetLeft - this.lastResizerHelperX;\n var columnWidth = this.resizeColumn.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumn.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.props.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumn.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n if (this.props.scrollable) {\n var scrollableView = this.findParentScrollableView(this.resizeColumn);\n var scrollableBodyTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-body-table');\n var scrollableHeaderTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-header-table');\n var scrollableFooterTable = DomHandler.findSingle(scrollableView, 'table.p-treetable-scrollable-footer-table');\n var resizeColumnIndex = DomHandler.index(this.resizeColumn);\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n this.resizeColumn.style.width = newColumnWidth + 'px';\n\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n } else if (this.props.columnResizeMode === 'expand') {\n if (this.props.scrollable) {\n var _scrollableView = this.findParentScrollableView(this.resizeColumn);\n\n var _scrollableBodyTable = DomHandler.findSingle(_scrollableView, 'table.p-treetable-scrollable-body-table');\n\n var _scrollableHeaderTable = DomHandler.findSingle(_scrollableView, 'table.p-treetable-scrollable-header-table');\n\n var _scrollableFooterTable = DomHandler.findSingle(_scrollableView, 'table.p-treetable-scrollable-footer-table');\n\n _scrollableBodyTable.style.width = _scrollableBodyTable.offsetWidth + delta + 'px';\n _scrollableHeaderTable.style.width = _scrollableHeaderTable.offsetWidth + delta + 'px';\n\n if (_scrollableFooterTable) {\n _scrollableFooterTable.style.width = _scrollableHeaderTable.offsetWidth + delta + 'px';\n }\n\n var _resizeColumnIndex = DomHandler.index(this.resizeColumn);\n\n this.resizeColGroup(_scrollableHeaderTable, _resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(_scrollableBodyTable, _resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(_scrollableFooterTable, _resizeColumnIndex, newColumnWidth, null);\n } else {\n this.table.style.width = this.table.offsetWidth + delta + 'px';\n this.resizeColumn.style.width = newColumnWidth + 'px';\n }\n }\n\n if (this.props.onColumnResizeEnd) {\n this.props.onColumnResizeEnd({\n element: this.resizeColumn,\n column: this.resizeColumnProps,\n delta: delta\n });\n }\n }\n\n this.resizerHelper.style.display = 'none';\n this.resizeColumn = null;\n this.resizeColumnProps = null;\n DomHandler.removeClass(this.container, 'p-unselectable-text');\n this.unbindColumnResizeEvents();\n }\n }, {\n key: \"findParentScrollableView\",\n value: function findParentScrollableView(column) {\n if (column) {\n var parent = column.parentElement;\n\n while (parent && !DomHandler.hasClass(parent, 'p-treetable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n }, {\n key: \"resizeColGroup\",\n value: function resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {\n if (table) {\n var colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n var col = colGroup.children[resizeColumnIndex];\n var nextCol = col.nextElementSibling;\n col.style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n nextCol.style.width = nextColumnWidth + 'px';\n }\n } else {\n throw new Error(\"Scrollable tables require a colgroup to support resizable columns\");\n }\n }\n }\n }, {\n key: \"bindColumnResizeEvents\",\n value: function bindColumnResizeEvents() {\n var _this4 = this;\n\n this.documentColumnResizeListener = document.addEventListener('mousemove', function (event) {\n if (_this4.columnResizing) {\n _this4.onColumnResize(event);\n }\n });\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function (event) {\n if (_this4.columnResizing) {\n _this4.columnResizing = false;\n\n _this4.onColumnResizeEnd(event);\n }\n });\n }\n }, {\n key: \"unbindColumnResizeEvents\",\n value: function unbindColumnResizeEvents() {\n document.removeEventListener('document', this.documentColumnResizeListener);\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n }\n }, {\n key: \"onColumnDragStart\",\n value: function onColumnDragStart(e) {\n var event = e.originalEvent,\n column = e.column;\n\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n\n this.iconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUp);\n this.iconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorUp);\n this.draggedColumnEl = this.findParentHeader(event.currentTarget);\n this.draggedColumn = column;\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n }\n }, {\n key: \"onColumnDragOver\",\n value: function onColumnDragOver(e) {\n var event = e.originalEvent;\n var dropHeader = this.findParentHeader(event.currentTarget);\n\n if (this.props.reorderableColumns && this.draggedColumnEl && dropHeader) {\n event.preventDefault();\n var containerOffset = DomHandler.getOffset(this.container);\n var dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumnEl !== dropHeader) {\n var targetLeft = dropHeaderOffset.left - containerOffset.left; //let targetTop = containerOffset.top - dropHeaderOffset.top;\n\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.iconHeight - 1) + 'px';\n this.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.reorderIndicatorUp.style.display = 'block';\n this.reorderIndicatorDown.style.display = 'block';\n }\n }\n }\n }, {\n key: \"onColumnDragLeave\",\n value: function onColumnDragLeave(e) {\n var event = e.originalEvent;\n\n if (this.props.reorderableColumns && this.draggedColumnEl) {\n event.preventDefault();\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n }\n }\n }, {\n key: \"onColumnDrop\",\n value: function onColumnDrop(e) {\n var _this5 = this;\n\n var event = e.originalEvent,\n column = e.column;\n event.preventDefault();\n\n if (this.draggedColumnEl) {\n var dragIndex = DomHandler.index(this.draggedColumnEl);\n var dropIndex = DomHandler.index(this.findParentHeader(event.currentTarget));\n var allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dragIndex - dropIndex === 1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n var columns = this.state.columnOrder ? this.getColumns() : React.Children.toArray(this.props.children);\n\n var isSameColumn = function isSameColumn(col1, col2) {\n return col1.props.columnKey || col2.props.columnKey ? ObjectUtils.equals(col1, col2, 'props.columnKey') : ObjectUtils.equals(col1, col2, 'props.field');\n };\n\n var dragColIndex = columns.findIndex(function (child) {\n return isSameColumn(child, _this5.draggedColumn);\n });\n var dropColIndex = columns.findIndex(function (child) {\n return isSameColumn(child, column);\n });\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n ObjectUtils.reorderArray(columns, dragColIndex, dropColIndex);\n var columnOrder = [];\n\n var _iterator = _createForOfIteratorHelper(columns),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _column = _step.value;\n columnOrder.push(_column.props.columnKey || _column.props.field);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n\n if (this.props.onColReorder) {\n this.props.onColReorder({\n dragIndex: dragColIndex,\n dropIndex: dropColIndex,\n columns: columns\n });\n }\n }\n\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnEl.draggable = false;\n this.draggedColumnEl = null;\n this.dropPosition = null;\n }\n }\n }, {\n key: \"findParentHeader\",\n value: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n }\n }, {\n key: \"getExpandedKeys\",\n value: function getExpandedKeys() {\n return this.props.onToggle ? this.props.expandedKeys : this.state.expandedKeys;\n }\n }, {\n key: \"getFirst\",\n value: function getFirst() {\n return this.props.onPage ? this.props.first : this.state.first;\n }\n }, {\n key: \"getRows\",\n value: function getRows() {\n return this.props.onPage ? this.props.rows : this.state.rows;\n }\n }, {\n key: \"getSortField\",\n value: function getSortField() {\n return this.props.onSort ? this.props.sortField : this.state.sortField;\n }\n }, {\n key: \"getSortOrder\",\n value: function getSortOrder() {\n return this.props.onSort ? this.props.sortOrder : this.state.sortOrder;\n }\n }, {\n key: \"getMultiSortMeta\",\n value: function getMultiSortMeta() {\n return this.props.onSort ? this.props.multiSortMeta : this.state.multiSortMeta;\n }\n }, {\n key: \"getFilters\",\n value: function getFilters() {\n return this.props.onFilter ? this.props.filters : this.state.filters;\n }\n }, {\n key: \"findColumnByKey\",\n value: function findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (var i = 0; i < columns.length; i++) {\n var child = columns[i];\n\n if (child.props.columnKey === key || child.props.field === key) {\n return child;\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"getColumns\",\n value: function getColumns() {\n var columns = React.Children.toArray(this.props.children);\n\n if (columns && columns.length) {\n if (this.props.reorderableColumns && this.state.columnOrder) {\n var orderedColumns = [];\n\n var _iterator2 = _createForOfIteratorHelper(this.state.columnOrder),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var columnKey = _step2.value;\n var column = this.findColumnByKey(columns, columnKey);\n\n if (column) {\n orderedColumns.push(column);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return [].concat(orderedColumns, _toConsumableArray(columns.filter(function (item) {\n return orderedColumns.indexOf(item) < 0;\n })));\n } else {\n return columns;\n }\n }\n\n return null;\n }\n }, {\n key: \"getTotalRecords\",\n value: function getTotalRecords(data) {\n return this.props.lazy ? this.props.totalRecords : data ? data.length : 0;\n }\n }, {\n key: \"isSingleSelectionMode\",\n value: function isSingleSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'single';\n }\n }, {\n key: \"isMultipleSelectionMode\",\n value: function isMultipleSelectionMode() {\n return this.props.selectionMode && this.props.selectionMode === 'multiple';\n }\n }, {\n key: \"isRowSelectionMode\",\n value: function isRowSelectionMode() {\n return this.isSingleSelectionMode() || this.isMultipleSelectionMode();\n }\n }, {\n key: \"getFrozenColumns\",\n value: function getFrozenColumns(columns) {\n var frozenColumns = null;\n\n var _iterator3 = _createForOfIteratorHelper(columns),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var col = _step3.value;\n\n if (col.props.frozen) {\n frozenColumns = frozenColumns || [];\n frozenColumns.push(col);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return frozenColumns;\n }\n }, {\n key: \"getScrollableColumns\",\n value: function getScrollableColumns(columns) {\n var scrollableColumns = null;\n\n var _iterator4 = _createForOfIteratorHelper(columns),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var col = _step4.value;\n\n if (!col.props.frozen) {\n scrollableColumns = scrollableColumns || [];\n scrollableColumns.push(col);\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return scrollableColumns;\n }\n }, {\n key: \"filterLocal\",\n value: function filterLocal(value) {\n var filteredNodes = [];\n var filters = this.getFilters();\n var columns = React.Children.toArray(this.props.children);\n var isStrictMode = this.props.filterMode === 'strict';\n\n var _iterator5 = _createForOfIteratorHelper(value),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var node = _step5.value;\n\n var copyNode = _objectSpread({}, node);\n\n var localMatch = true;\n var globalMatch = false;\n\n for (var j = 0; j < columns.length; j++) {\n var col = columns[j];\n var filterMeta = filters ? filters[col.props.field] : null;\n var filterField = col.props.field;\n var filterValue = void 0,\n filterConstraint = void 0,\n paramsWithoutNode = void 0,\n options = void 0; //local\n\n if (filterMeta) {\n var filterMatchMode = filterMeta.matchMode || col.props.filterMatchMode;\n filterValue = filterMeta.value;\n filterConstraint = filterMatchMode === 'custom' ? col.props.filterFunction : FilterUtils[filterMatchMode];\n options = {\n rowData: node,\n filters: filters,\n props: this.props,\n column: {\n filterMeta: filterMeta,\n filterField: filterField,\n props: col.props\n }\n };\n paramsWithoutNode = {\n filterField: filterField,\n filterValue: filterValue,\n filterConstraint: filterConstraint,\n isStrictMode: isStrictMode,\n options: options\n };\n\n if (isStrictMode && !(this.findFilteredNodes(copyNode, paramsWithoutNode) || this.isFilterMatched(copyNode, paramsWithoutNode)) || !isStrictMode && !(this.isFilterMatched(copyNode, paramsWithoutNode) || this.findFilteredNodes(copyNode, paramsWithoutNode))) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n } //global\n\n\n if (this.props.globalFilter && !globalMatch) {\n var copyNodeForGlobal = _objectSpread({}, copyNode);\n\n filterValue = this.props.globalFilter;\n filterConstraint = FilterUtils['contains'];\n paramsWithoutNode = {\n filterField: filterField,\n filterValue: filterValue,\n filterConstraint: filterConstraint,\n isStrictMode: isStrictMode\n };\n\n if (isStrictMode && (this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode) || this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode)) || !isStrictMode && (this.isFilterMatched(copyNodeForGlobal, paramsWithoutNode) || this.findFilteredNodes(copyNodeForGlobal, paramsWithoutNode))) {\n globalMatch = true;\n copyNode = copyNodeForGlobal;\n }\n }\n }\n\n var matches = localMatch;\n\n if (this.props.globalFilter) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredNodes.push(copyNode);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return filteredNodes;\n }\n }, {\n key: \"findFilteredNodes\",\n value: function findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n var matched = false;\n\n if (node.children) {\n var childNodes = _toConsumableArray(node.children);\n\n node.children = [];\n\n var _iterator6 = _createForOfIteratorHelper(childNodes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var childNode = _step6.value;\n\n var copyChildNode = _objectSpread({}, childNode);\n\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n\n if (matched) {\n return true;\n }\n }\n }\n }, {\n key: \"isFilterMatched\",\n value: function isFilterMatched(node, _ref) {\n var filterField = _ref.filterField,\n filterValue = _ref.filterValue,\n filterConstraint = _ref.filterConstraint,\n isStrictMode = _ref.isStrictMode,\n options = _ref.options;\n var matched = false;\n var dataFieldValue = ObjectUtils.resolveFieldData(node.data, filterField);\n\n if (filterConstraint(dataFieldValue, filterValue, this.props.filterLocale, options)) {\n matched = true;\n }\n\n if (!matched || isStrictMode && !this.isNodeLeaf(node)) {\n matched = this.findFilteredNodes(node, {\n filterField: filterField,\n filterValue: filterValue,\n filterConstraint: filterConstraint,\n isStrictMode: isStrictMode\n }) || matched;\n }\n\n return matched;\n }\n }, {\n key: \"isNodeLeaf\",\n value: function isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n }\n }, {\n key: \"processValue\",\n value: function processValue() {\n var data = this.props.value;\n\n if (!this.props.lazy) {\n if (data && data.length) {\n if (this.getSortField() || this.getMultiSortMeta()) {\n if (this.props.sortMode === 'single') data = this.sortSingle(data);else if (this.props.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n\n var localFilters = this.getFilters();\n\n if (localFilters || this.props.globalFilter) {\n data = this.filterLocal(data, localFilters);\n }\n }\n }\n\n return data;\n }\n }, {\n key: \"createTableHeader\",\n value: function createTableHeader(columns, columnGroup) {\n return /*#__PURE__*/React.createElement(TreeTableHeader, {\n columns: columns,\n columnGroup: columnGroup,\n tabIndex: this.props.tabIndex,\n onSort: this.onSort,\n sortField: this.getSortField(),\n sortOrder: this.getSortOrder(),\n multiSortMeta: this.getMultiSortMeta(),\n resizableColumns: this.props.resizableColumns,\n onResizeStart: this.onColumnResizeStart,\n reorderableColumns: this.props.reorderableColumns,\n onDragStart: this.onColumnDragStart,\n onDragOver: this.onColumnDragOver,\n onDragLeave: this.onColumnDragLeave,\n onDrop: this.onColumnDrop,\n onFilter: this.onFilter,\n filters: this.getFilters(),\n filterDelay: this.props.filterDelay\n });\n }\n }, {\n key: \"createTableFooter\",\n value: function createTableFooter(columns, columnGroup) {\n return /*#__PURE__*/React.createElement(TreeTableFooter, {\n columns: columns,\n columnGroup: columnGroup\n });\n }\n }, {\n key: \"createTableBody\",\n value: function createTableBody(value, columns) {\n return /*#__PURE__*/React.createElement(TreeTableBody, {\n value: value,\n columns: columns,\n expandedKeys: this.getExpandedKeys(),\n selectOnEdit: this.props.selectOnEdit,\n onToggle: this.onToggle,\n onExpand: this.props.onExpand,\n onCollapse: this.props.onCollapse,\n paginator: this.props.paginator,\n first: this.getFirst(),\n rows: this.getRows(),\n selectionMode: this.props.selectionMode,\n selectionKeys: this.props.selectionKeys,\n onSelectionChange: this.props.onSelectionChange,\n metaKeySelection: this.props.metaKeySelection,\n onRowClick: this.props.onRowClick,\n onSelect: this.props.onSelect,\n onUnselect: this.props.onUnselect,\n propagateSelectionUp: this.props.propagateSelectionUp,\n propagateSelectionDown: this.props.propagateSelectionDown,\n lazy: this.props.lazy,\n rowClassName: this.props.rowClassName,\n emptyMessage: this.props.emptyMessage,\n loading: this.props.loading,\n contextMenuSelectionKey: this.props.contextMenuSelectionKey,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n onContextMenu: this.props.onContextMenu\n });\n }\n }, {\n key: \"createPaginator\",\n value: function createPaginator(position, totalRecords) {\n var className = classNames('p-paginator-' + position, this.props.paginatorClassName);\n return /*#__PURE__*/React.createElement(Paginator, {\n first: this.getFirst(),\n rows: this.getRows(),\n pageLinkSize: this.props.pageLinkSize,\n className: className,\n onPageChange: this.onPageChange,\n template: this.props.paginatorTemplate,\n totalRecords: totalRecords,\n rowsPerPageOptions: this.props.rowsPerPageOptions,\n currentPageReportTemplate: this.props.currentPageReportTemplate,\n leftContent: this.props.paginatorLeft,\n rightContent: this.props.paginatorRight,\n alwaysShow: this.props.alwaysShowPaginator,\n dropdownAppendTo: this.props.paginatorDropdownAppendTo\n });\n }\n }, {\n key: \"createScrollableView\",\n value: function createScrollableView(value, columns, frozen, headerColumnGroup, footerColumnGroup) {\n var header = this.createTableHeader(columns, headerColumnGroup);\n var footer = this.createTableFooter(columns, footerColumnGroup);\n var body = this.createTableBody(value, columns);\n return /*#__PURE__*/React.createElement(TreeTableScrollableView, {\n columns: columns,\n header: header,\n body: body,\n footer: footer,\n scrollHeight: this.props.scrollHeight,\n frozen: frozen,\n frozenWidth: this.props.frozenWidth\n });\n }\n }, {\n key: \"renderScrollableTable\",\n value: function renderScrollableTable(value) {\n var columns = this.getColumns();\n var frozenColumns = this.getFrozenColumns(columns);\n var scrollableColumns = frozenColumns ? this.getScrollableColumns(columns) : columns;\n var frozenView, scrollableView;\n\n if (frozenColumns) {\n frozenView = this.createScrollableView(value, frozenColumns, true, this.props.frozenHeaderColumnGroup, this.props.frozenFooterColumnGroup);\n }\n\n scrollableView = this.createScrollableView(value, scrollableColumns, false, this.props.headerColumnGroup, this.props.footerColumnGroup);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-scrollable-wrapper\"\n }, frozenView, scrollableView);\n }\n }, {\n key: \"renderRegularTable\",\n value: function renderRegularTable(value) {\n var _this6 = this;\n\n var columns = this.getColumns();\n var header = this.createTableHeader(columns, this.props.headerColumnGroup);\n var footer = this.createTableFooter(columns, this.props.footerColumnGroup);\n var body = this.createTableBody(value, columns);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-wrapper\"\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: this.props.tableStyle,\n className: this.props.tableClassName,\n ref: function ref(el) {\n return _this6.table = el;\n }\n }, header, footer, body));\n }\n }, {\n key: \"renderTable\",\n value: function renderTable(value) {\n if (this.props.scrollable) return this.renderScrollableTable(value);else return this.renderRegularTable(value);\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n if (this.props.loading) {\n var iconClassName = classNames('p-treetable-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-loading\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName\n })));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n var value = this.processValue();\n var className = classNames('p-treetable p-component', {\n 'p-treetable-hoverable-rows': this.isRowSelectionMode(),\n 'p-treetable-resizable': this.props.resizableColumns,\n 'p-treetable-resizable-fit': this.props.resizableColumns && this.props.columnResizeMode === 'fit',\n 'p-treetable-auto-layout': this.props.autoLayout,\n 'p-treetable-striped': this.props.stripedRows,\n 'p-treetable-gridlines': this.props.showGridlines\n }, this.props.className);\n var table = this.renderTable(value);\n var totalRecords = this.getTotalRecords(value);\n var headerFacet = this.props.header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-header\"\n }, this.props.header);\n var footerFacet = this.props.footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-treetable-footer\"\n }, this.props.footer);\n var paginatorTop = this.props.paginator && this.props.paginatorPosition !== 'bottom' && this.createPaginator('top', totalRecords);\n var paginatorBottom = this.props.paginator && this.props.paginatorPosition !== 'top' && this.createPaginator('bottom', totalRecords);\n var loader = this.renderLoader();\n var resizeHelper = this.props.resizableColumns && /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n _this7.resizerHelper = el;\n },\n className: \"p-column-resizer-helper\",\n style: {\n display: 'none'\n }\n });\n var reorderIndicatorUp = this.props.reorderableColumns && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this7.reorderIndicatorUp = el;\n },\n className: \"pi pi-arrow-down p-datatable-reorder-indicator-up\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n var reorderIndicatorDown = this.props.reorderableColumns && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this7.reorderIndicatorDown = el;\n },\n className: \"pi pi-arrow-up p-datatable-reorder-indicator-down\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style,\n ref: function ref(el) {\n return _this7.container = el;\n },\n \"data-scrollselectors\": \".p-treetable-scrollable-body\"\n }, loader, headerFacet, paginatorTop, table, paginatorBottom, footerFacet, resizeHelper, reorderIndicatorUp, reorderIndicatorDown);\n }\n }]);\n\n return TreeTable;\n}(Component);\n\n_defineProperty(TreeTable, \"defaultProps\", {\n id: null,\n value: null,\n header: null,\n footer: null,\n style: null,\n className: null,\n tableStyle: null,\n tableClassName: null,\n expandedKeys: null,\n paginator: false,\n paginatorPosition: 'bottom',\n alwaysShowPaginator: true,\n paginatorClassName: null,\n paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n paginatorLeft: null,\n paginatorRight: null,\n paginatorDropdownAppendTo: null,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})',\n first: null,\n rows: null,\n totalRecords: null,\n lazy: false,\n sortField: null,\n sortOrder: null,\n multiSortMeta: null,\n sortMode: 'single',\n defaultSortOrder: 1,\n removableSort: false,\n selectionMode: null,\n selectionKeys: null,\n contextMenuSelectionKey: null,\n metaKeySelection: true,\n selectOnEdit: true,\n propagateSelectionUp: true,\n propagateSelectionDown: true,\n autoLayout: false,\n rowClassName: null,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n tabIndex: 0,\n scrollable: false,\n scrollHeight: null,\n reorderableColumns: false,\n headerColumnGroup: null,\n footerColumnGroup: null,\n frozenHeaderColumnGroup: null,\n frozenFooterColumnGroup: null,\n frozenWidth: null,\n resizableColumns: false,\n columnResizeMode: 'fit',\n emptyMessage: \"No records found\",\n filters: null,\n globalFilter: null,\n filterMode: 'lenient',\n filterDelay: 300,\n filterLocale: undefined,\n showGridlines: false,\n stripedRows: false,\n onFilter: null,\n onExpand: null,\n onCollapse: null,\n onToggle: null,\n onPage: null,\n onSort: null,\n onSelect: null,\n onUnselect: null,\n onRowClick: null,\n onSelectionChange: null,\n onContextMenuSelectionChange: null,\n onColumnResizeEnd: null,\n onColReorder: null,\n onContextMenu: null\n});\n\nexport { TreeTable };\n","import React, { Component } from 'react';\nimport { UniqueComponentId, CSSTransition, classNames, Ripple } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Fieldset = /*#__PURE__*/function (_Component) {\n _inherits(Fieldset, _Component);\n\n var _super = _createSuper(Fieldset);\n\n function Fieldset(props) {\n var _this;\n\n _classCallCheck(this, Fieldset);\n\n _this = _super.call(this, props);\n var state = {\n id: props.id\n };\n\n if (!_this.props.onToggle) {\n state = _objectSpread(_objectSpread({}, state), {}, {\n collapsed: props.collapsed\n });\n }\n\n _this.state = state;\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.contentRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(Fieldset, [{\n key: \"toggle\",\n value: function toggle(event) {\n if (this.props.toggleable) {\n var collapsed = this.props.onToggle ? this.props.collapsed : this.state.collapsed;\n if (collapsed) this.expand(event);else this.collapse(event);\n\n if (this.props.onToggle) {\n this.props.onToggle({\n originalEvent: event,\n value: !collapsed\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"expand\",\n value: function expand(event) {\n if (!this.props.onToggle) {\n this.setState({\n collapsed: false\n });\n }\n\n if (this.props.onExpand) {\n this.props.onExpand(event);\n }\n }\n }, {\n key: \"collapse\",\n value: function collapse(event) {\n if (!this.props.onToggle) {\n this.setState({\n collapsed: true\n });\n }\n\n if (this.props.onCollapse) {\n this.props.onCollapse(event);\n }\n }\n }, {\n key: \"isCollapsed\",\n value: function isCollapsed() {\n return this.props.toggleable ? this.props.onToggle ? this.props.collapsed : this.state.collapsed : false;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n }\n }, {\n key: \"renderContent\",\n value: function renderContent(collapsed) {\n var id = this.state.id + '_content';\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.contentRef,\n classNames: \"p-toggleable-content\",\n timeout: {\n enter: 1000,\n exit: 450\n },\n in: !collapsed,\n unmountOnExit: true,\n options: this.props.transitionOptions\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.contentRef,\n id: id,\n className: \"p-toggleable-content\",\n \"aria-hidden\": collapsed,\n role: \"region\",\n \"aria-labelledby\": this.state.id + '_header'\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fieldset-content\"\n }, this.props.children)));\n }\n }, {\n key: \"renderToggleIcon\",\n value: function renderToggleIcon(collapsed) {\n if (this.props.toggleable) {\n var className = classNames('p-fieldset-toggler pi', {\n 'pi-plus': collapsed,\n 'pi-minus': !collapsed\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n });\n }\n\n return null;\n }\n }, {\n key: \"renderLegendContent\",\n value: function renderLegendContent(collapsed) {\n if (this.props.toggleable) {\n var toggleIcon = this.renderToggleIcon(collapsed);\n var ariaControls = this.state.id + '_content';\n return /*#__PURE__*/React.createElement(\"a\", {\n href: '#' + ariaControls,\n \"aria-controls\": ariaControls,\n id: this.state.id + '_header',\n \"aria-expanded\": !collapsed,\n tabIndex: this.props.toggleable ? null : -1\n }, toggleIcon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-fieldset-legend-text\"\n }, this.props.legend), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-fieldset-legend-text\",\n id: this.state.id + '_header'\n }, this.props.legend);\n }\n }, {\n key: \"renderLegend\",\n value: function renderLegend(collapsed) {\n var legendContent = this.renderLegendContent(collapsed);\n\n if (this.props.legend != null || this.props.toggleable) {\n return /*#__PURE__*/React.createElement(\"legend\", {\n className: \"p-fieldset-legend p-unselectable-text\",\n onClick: this.toggle\n }, legendContent);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-fieldset p-component', this.props.className, {\n 'p-fieldset-toggleable': this.props.toggleable\n });\n var collapsed = this.isCollapsed();\n var legend = this.renderLegend(collapsed);\n var content = this.renderContent(collapsed);\n return /*#__PURE__*/React.createElement(\"fieldset\", {\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.props.onClick\n }, legend, content);\n }\n }]);\n\n return Fieldset;\n}(Component);\n\n_defineProperty(Fieldset, \"defaultProps\", {\n id: null,\n legend: null,\n className: null,\n style: null,\n toggleable: null,\n collapsed: null,\n transitionOptions: null,\n onExpand: null,\n onCollapse: null,\n onToggle: null,\n onClick: null\n});\n\nexport { Fieldset };\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { DomHandler, ConnectedOverlayScrollHandler, OverlayService, ZIndexUtils, classNames, ObjectUtils, CSSTransition, Portal } from 'primereact/core';\nimport { Button } from 'primereact/button';\nimport { localeOption } from 'primereact/api';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nfunction confirmPopup(props) {\n var appendTo = props.appendTo || document.body;\n var confirmPopupWrapper = document.createDocumentFragment();\n DomHandler.appendChild(confirmPopupWrapper, appendTo);\n props = _objectSpread(_objectSpread({}, props), {\n visible: props.visible === undefined ? true : props.visible\n });\n var confirmPopupEl = /*#__PURE__*/React.createElement(ConfirmPopup, props);\n ReactDOM.render(confirmPopupEl, confirmPopupWrapper);\n\n var updateConfirmPopup = function updateConfirmPopup(newProps) {\n props = _objectSpread(_objectSpread({}, props), newProps);\n ReactDOM.render( /*#__PURE__*/React.cloneElement(confirmPopupEl, props), confirmPopupWrapper);\n };\n\n return {\n _destroy: function _destroy() {\n ReactDOM.unmountComponentAtNode(confirmPopupWrapper);\n },\n show: function show() {\n updateConfirmPopup({\n visible: true,\n onHide: function onHide() {\n updateConfirmPopup({\n visible: false\n }); // reset\n }\n });\n },\n hide: function hide() {\n updateConfirmPopup({\n visible: false\n });\n },\n update: function update(newProps) {\n updateConfirmPopup(newProps);\n }\n };\n}\nvar ConfirmPopup = /*#__PURE__*/function (_Component) {\n _inherits(ConfirmPopup, _Component);\n\n var _super = _createSuper(ConfirmPopup);\n\n function ConfirmPopup(props) {\n var _this;\n\n _classCallCheck(this, ConfirmPopup);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false\n };\n _this.reject = _this.reject.bind(_assertThisInitialized(_this));\n _this.accept = _this.accept.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n _this.onCloseClick = _this.onCloseClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/React.createRef();\n _this.acceptBtnRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(ConfirmPopup, [{\n key: \"acceptLabel\",\n value: function acceptLabel() {\n return this.props.acceptLabel || localeOption('accept');\n }\n }, {\n key: \"rejectLabel\",\n value: function rejectLabel() {\n return this.props.rejectLabel || localeOption('reject');\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this2 = this;\n\n if (!this.documentClickListener && this.props.dismissable) {\n this.documentClickListener = function (event) {\n if (!_this2.isPanelClicked && _this2.isOutsideClicked(event.target)) {\n _this2.hide();\n }\n\n _this2.isPanelClicked = false;\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this3 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.props.target, function () {\n if (_this3.state.visible) {\n _this3.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this4 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this4.state.visible && !DomHandler.isAndroid()) {\n _this4.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return this.overlayRef && this.overlayRef.current && !(this.overlayRef.current.isSameNode(target) || this.overlayRef.current.contains(target));\n }\n }, {\n key: \"onCloseClick\",\n value: function onCloseClick(event) {\n this.hide();\n event.preventDefault();\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n this.isPanelClicked = true;\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.props.target\n });\n }\n }, {\n key: \"accept\",\n value: function accept() {\n if (this.props.accept) {\n this.props.accept();\n }\n\n this.hide('accept');\n }\n }, {\n key: \"reject\",\n value: function reject() {\n if (this.props.reject) {\n this.props.reject();\n }\n\n this.hide('reject');\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this5 = this;\n\n this.setState({\n visible: true\n }, function () {\n _this5.overlayEventListener = function (e) {\n if (!_this5.isOutsideClicked(e.target)) {\n _this5.isPanelClicked = true;\n }\n };\n\n OverlayService.on('overlay-click', _this5.overlayEventListener);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(result) {\n var _this6 = this;\n\n this.setState({\n visible: false\n }, function () {\n OverlayService.off('overlay-click', _this6.overlayEventListener);\n _this6.overlayEventListener = null;\n\n if (_this6.props.onHide) {\n _this6.props.onHide(result);\n }\n });\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n ZIndexUtils.set('overlay', this.overlayRef.current);\n this.align();\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n if (this.acceptBtnRef && this.acceptBtnRef.current) {\n this.acceptBtnRef.current.focus();\n }\n\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"align\",\n value: function align() {\n if (this.props.target) {\n DomHandler.absolutePosition(this.overlayRef.current, this.props.target);\n var containerOffset = DomHandler.getOffset(this.overlayRef.current);\n var targetOffset = DomHandler.getOffset(this.props.target);\n var arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n\n this.overlayRef.current.style.setProperty('--overlayArrowLeft', \"\".concat(arrowLeft, \"px\"));\n\n if (containerOffset.top < targetOffset.top) {\n DomHandler.addClass(this.overlayRef.current, 'p-confirm-popup-flipped');\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.visible) {\n this.setState({\n visible: true\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.visible !== this.props.visible) {\n this.setState({\n visible: this.props.visible\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.overlayEventListener) {\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var iconClassName = classNames('p-confirm-popup-icon', this.props.icon);\n var message = ObjectUtils.getJSXElement(this.props.message, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-confirm-popup-content\"\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-confirm-popup-message\"\n }, message));\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n var acceptClassName = classNames('p-confirm-popup-accept p-button-sm', this.props.acceptClassName);\n var rejectClassName = classNames('p-confirm-popup-reject p-button-sm', {\n 'p-button-text': !this.props.rejectClassName\n }, this.props.rejectClassName);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-confirm-popup-footer\"\n }, /*#__PURE__*/React.createElement(Button, {\n label: this.rejectLabel(),\n icon: this.props.rejectIcon,\n className: rejectClassName,\n onClick: this.reject\n }), /*#__PURE__*/React.createElement(Button, {\n ref: this.acceptBtnRef,\n label: this.acceptLabel(),\n icon: this.props.acceptIcon,\n className: acceptClassName,\n onClick: this.accept\n }));\n\n if (this.props.footer) {\n var defaultContentOptions = {\n accept: this.accept,\n reject: this.reject,\n className: 'p-confirm-popup-footer',\n acceptClassName: acceptClassName,\n rejectClassName: rejectClassName,\n acceptLabel: this.acceptLabel(),\n rejectLabel: this.rejectLabel(),\n element: content,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.footer, defaultContentOptions);\n }\n\n return content;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-confirm-popup p-component', this.props.className);\n var content = this.renderContent();\n var footer = this.renderFooter();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.overlayRef,\n classNames: \"p-connected-overlay\",\n in: this.state.visible,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.overlayRef,\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.onPanelClick\n }, content, footer));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo,\n visible: true\n });\n }\n }]);\n\n return ConfirmPopup;\n}(Component);\n\n_defineProperty(ConfirmPopup, \"defaultProps\", {\n target: null,\n visible: false,\n message: null,\n rejectLabel: null,\n acceptLabel: null,\n icon: null,\n rejectIcon: null,\n acceptIcon: null,\n rejectClassName: null,\n acceptClassName: null,\n className: null,\n style: null,\n appendTo: null,\n dismissable: true,\n footer: null,\n onShow: null,\n onHide: null,\n accept: null,\n reject: null,\n transitionOptions: null\n});\n\nexport { ConfirmPopup, confirmPopup };\n","import React, { Component } from 'react';\nimport { UniqueComponentId, DomHandler, classNames, Ripple } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar CarouselItem = /*#__PURE__*/function (_Component) {\n _inherits(CarouselItem, _Component);\n\n var _super = _createSuper(CarouselItem);\n\n function CarouselItem() {\n _classCallCheck(this, CarouselItem);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CarouselItem, [{\n key: \"render\",\n value: function render() {\n var content = this.props.template(this.props.item);\n var itemClassName = classNames(this.props.className, 'p-carousel-item', {\n 'p-carousel-item-active': this.props.active,\n 'p-carousel-item-start': this.props.start,\n 'p-carousel-item-end': this.props.end\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: itemClassName\n }, content);\n }\n }]);\n\n return CarouselItem;\n}(Component);\n\n_defineProperty(CarouselItem, \"defaultProps\", {\n template: null,\n item: null,\n active: false,\n start: false,\n end: false,\n className: null\n});\n\nvar Carousel = /*#__PURE__*/function (_Component2) {\n _inherits(Carousel, _Component2);\n\n var _super2 = _createSuper(Carousel);\n\n function Carousel(props) {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super2.call(this, props);\n _this.state = {\n numVisible: props.numVisible,\n numScroll: props.numScroll,\n totalShiftedItems: props.page * props.numScroll * -1\n };\n\n if (!_this.props.onPageChange) {\n _this.state = _objectSpread(_objectSpread({}, _this.state), {}, {\n page: props.page\n });\n }\n\n _this.navBackward = _this.navBackward.bind(_assertThisInitialized(_this));\n _this.navForward = _this.navForward.bind(_assertThisInitialized(_this));\n _this.onTransitionEnd = _this.onTransitionEnd.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.totalIndicators = 0;\n _this.remainingItems = 0;\n _this.allowAutoplay = !!_this.props.autoplayInterval;\n _this.circular = _this.props.circular || _this.allowAutoplay;\n _this.attributeSelector = UniqueComponentId();\n _this.swipeThreshold = 20;\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"step\",\n value: function step(dir, page) {\n var totalShiftedItems = this.state.totalShiftedItems;\n var isCircular = this.isCircular();\n\n if (page != null) {\n totalShiftedItems = this.state.numScroll * page * -1;\n\n if (isCircular) {\n totalShiftedItems -= this.state.numVisible;\n }\n\n this.isRemainingItemsAdded = false;\n } else {\n totalShiftedItems += this.state.numScroll * dir;\n\n if (this.isRemainingItemsAdded) {\n totalShiftedItems += this.remainingItems - this.state.numScroll * dir;\n this.isRemainingItemsAdded = false;\n }\n\n var originalShiftedItems = isCircular ? totalShiftedItems + this.state.numVisible : totalShiftedItems;\n page = Math.abs(Math.floor(originalShiftedItems / this.state.numScroll));\n }\n\n if (isCircular && this.state.page === this.totalIndicators - 1 && dir === -1) {\n totalShiftedItems = -1 * (this.props.value.length + this.state.numVisible);\n page = 0;\n } else if (isCircular && this.state.page === 0 && dir === 1) {\n totalShiftedItems = 0;\n page = this.totalIndicators - 1;\n } else if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n totalShiftedItems += this.remainingItems * -1 - this.state.numScroll * dir;\n this.isRemainingItemsAdded = true;\n }\n\n if (this.itemsContainer) {\n DomHandler.removeClass(this.itemsContainer, 'p-items-hidden');\n this.changePosition(totalShiftedItems);\n this.itemsContainer.style.transition = 'transform 500ms ease 0s';\n }\n\n if (this.props.onPageChange) {\n this.setState({\n totalShiftedItems: totalShiftedItems\n });\n this.props.onPageChange({\n page: page\n });\n } else {\n this.setState({\n page: page,\n totalShiftedItems: totalShiftedItems\n });\n }\n }\n }, {\n key: \"calculatePosition\",\n value: function calculatePosition() {\n if (this.itemsContainer && this.responsiveOptions) {\n var windowWidth = window.innerWidth;\n var matchedResponsiveData = {\n numVisible: this.props.numVisible,\n numScroll: this.props.numScroll\n };\n\n for (var i = 0; i < this.responsiveOptions.length; i++) {\n var res = this.responsiveOptions[i];\n\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\n matchedResponsiveData = res;\n }\n }\n\n var state = {};\n\n if (this.state.numScroll !== matchedResponsiveData.numScroll) {\n var page = this.getPage();\n page = Math.floor(page * this.state.numScroll / matchedResponsiveData.numScroll);\n var totalShiftedItems = matchedResponsiveData.numScroll * page * -1;\n\n if (this.isCircular()) {\n totalShiftedItems -= matchedResponsiveData.numVisible;\n }\n\n state = {\n totalShiftedItems: totalShiftedItems,\n numScroll: matchedResponsiveData.numScroll\n };\n\n if (this.props.onPageChange) {\n this.props.onPageChange({\n page: page\n });\n } else {\n state = _objectSpread(_objectSpread({}, state), {}, {\n page: page\n });\n }\n }\n\n if (this.state.numVisible !== matchedResponsiveData.numVisible) {\n state = _objectSpread(_objectSpread({}, state), {}, {\n numVisible: matchedResponsiveData.numVisible\n });\n }\n\n if (Object.keys(state).length) {\n this.setState(state);\n }\n }\n }\n }, {\n key: \"navBackward\",\n value: function navBackward(e, page) {\n if (this.circular || this.getPage() !== 0) {\n this.step(1, page);\n }\n\n this.allowAutoplay = false;\n\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"navForward\",\n value: function navForward(e, page) {\n if (this.circular || this.getPage() < this.totalIndicators - 1) {\n this.step(-1, page);\n }\n\n this.allowAutoplay = false;\n\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"onDotClick\",\n value: function onDotClick(e, page) {\n var currentPage = this.getPage();\n\n if (page > currentPage) {\n this.navForward(e, page);\n } else if (page < currentPage) {\n this.navBackward(e, page);\n }\n }\n }, {\n key: \"onTransitionEnd\",\n value: function onTransitionEnd() {\n if (this.itemsContainer) {\n DomHandler.addClass(this.itemsContainer, 'p-items-hidden');\n this.itemsContainer.style.transition = '';\n\n if ((this.state.page === 0 || this.state.page === this.totalIndicators - 1) && this.isCircular()) {\n this.changePosition(this.state.totalShiftedItems);\n }\n }\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(e) {\n var touchobj = e.changedTouches[0];\n this.startPos = {\n x: touchobj.pageX,\n y: touchobj.pageY\n };\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(e) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(e) {\n var touchobj = e.changedTouches[0];\n\n if (this.isVertical()) {\n this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n } else {\n this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n }\n }\n }, {\n key: \"changePageOnTouch\",\n value: function changePageOnTouch(e, diff) {\n if (Math.abs(diff) > this.swipeThreshold) {\n if (diff < 0) {\n // left\n this.navForward(e);\n } else {\n // right\n this.navBackward(e);\n }\n }\n }\n }, {\n key: \"bindDocumentListeners\",\n value: function bindDocumentListeners() {\n var _this2 = this;\n\n if (!this.documentResizeListener) {\n this.documentResizeListener = function () {\n _this2.calculatePosition();\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n }, {\n key: \"unbindDocumentListeners\",\n value: function unbindDocumentListeners() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"isVertical\",\n value: function isVertical() {\n return this.props.orientation === 'vertical';\n }\n }, {\n key: \"isCircular\",\n value: function isCircular() {\n return this.circular && this.props.value.length >= this.state.numVisible;\n }\n }, {\n key: \"getPage\",\n value: function getPage() {\n return this.props.onPageChange ? this.props.page : this.state.page;\n }\n }, {\n key: \"getTotalIndicators\",\n value: function getTotalIndicators() {\n return this.props.value ? Math.ceil((this.props.value.length - this.state.numVisible) / this.state.numScroll) + 1 : 0;\n }\n }, {\n key: \"isAutoplay\",\n value: function isAutoplay() {\n return this.props.autoplayInterval && this.allowAutoplay;\n }\n }, {\n key: \"startAutoplay\",\n value: function startAutoplay() {\n var _this3 = this;\n\n this.interval = setInterval(function () {\n if (_this3.state.page === _this3.totalIndicators - 1) {\n _this3.step(-1, 0);\n } else {\n _this3.step(-1, _this3.state.page + 1);\n }\n }, this.props.autoplayInterval);\n }\n }, {\n key: \"stopAutoplay\",\n value: function stopAutoplay() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n }, {\n key: \"createStyle\",\n value: function createStyle() {\n if (!this.carouselStyle) {\n this.carouselStyle = document.createElement('style');\n document.body.appendChild(this.carouselStyle);\n }\n\n var innerHTML = \"\\n .p-carousel[\".concat(this.attributeSelector, \"] .p-carousel-item {\\n flex: 1 0 \").concat(100 / this.state.numVisible, \"%\\n }\\n \");\n\n if (this.props.responsiveOptions) {\n this.responsiveOptions = _toConsumableArray(this.props.responsiveOptions);\n this.responsiveOptions.sort(function (data1, data2) {\n var value1 = data1.breakpoint;\n var value2 = data2.breakpoint;\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return -1 * result;\n });\n\n for (var i = 0; i < this.responsiveOptions.length; i++) {\n var res = this.responsiveOptions[i];\n innerHTML += \"\\n @media screen and (max-width: \".concat(res.breakpoint, \") {\\n .p-carousel[\").concat(this.attributeSelector, \"] .p-carousel-item {\\n flex: 1 0 \").concat(100 / res.numVisible, \"%\\n }\\n }\\n \");\n }\n }\n\n this.carouselStyle.innerHTML = innerHTML;\n }\n }, {\n key: \"changePosition\",\n value: function changePosition(totalShiftedItems) {\n if (this.itemsContainer) {\n this.itemsContainer.style.transform = this.isVertical() ? \"translate3d(0, \".concat(totalShiftedItems * (100 / this.state.numVisible), \"%, 0)\") : \"translate3d(\".concat(totalShiftedItems * (100 / this.state.numVisible), \"%, 0, 0)\");\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.container) {\n this.container.setAttribute(this.attributeSelector, '');\n }\n\n this.createStyle();\n this.calculatePosition();\n this.changePosition(this.state.totalShiftedItems);\n\n if (this.props.responsiveOptions) {\n this.bindDocumentListeners();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var isCircular = this.isCircular();\n var stateChanged = false;\n var totalShiftedItems = this.state.totalShiftedItems;\n\n if (this.props.autoplayInterval) {\n this.stopAutoplay();\n }\n\n if (prevState.numScroll !== this.state.numScroll || prevState.numVisible !== this.state.numVisible || this.props.value && prevProps.value && prevProps.value.length !== this.props.value.length) {\n this.remainingItems = (this.props.value.length - this.state.numVisible) % this.state.numScroll;\n var page = this.getPage();\n\n if (this.totalIndicators !== 0 && page >= this.totalIndicators) {\n page = this.totalIndicators - 1;\n\n if (this.props.onPageChange) {\n this.props.onPageChange({\n page: page\n });\n } else {\n this.setState({\n page: page\n });\n }\n\n stateChanged = true;\n }\n\n totalShiftedItems = page * this.state.numScroll * -1;\n\n if (isCircular) {\n totalShiftedItems -= this.state.numVisible;\n }\n\n if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n totalShiftedItems += -1 * this.remainingItems + this.state.numScroll;\n this.isRemainingItemsAdded = true;\n } else {\n this.isRemainingItemsAdded = false;\n }\n\n if (totalShiftedItems !== this.state.totalShiftedItems) {\n this.setState({\n totalShiftedItems: totalShiftedItems\n });\n stateChanged = true;\n }\n\n this.changePosition(totalShiftedItems);\n }\n\n if (isCircular) {\n if (this.state.page === 0) {\n totalShiftedItems = -1 * this.state.numVisible;\n } else if (totalShiftedItems === 0) {\n totalShiftedItems = -1 * this.props.value.length;\n\n if (this.remainingItems > 0) {\n this.isRemainingItemsAdded = true;\n }\n }\n\n if (totalShiftedItems !== this.state.totalShiftedItems) {\n this.setState({\n totalShiftedItems: totalShiftedItems\n });\n stateChanged = true;\n }\n }\n\n if (prevProps.page !== this.props.page) {\n if (this.props.page > prevProps.page && this.props.page <= this.totalIndicators - 1) {\n this.step(-1, this.props.page);\n } else if (this.props.page < prevProps.page) {\n this.step(1, this.props.page);\n }\n }\n\n if (!stateChanged && this.isAutoplay()) {\n this.startAutoplay();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.responsiveOptions) {\n this.unbindDocumentListeners();\n }\n\n if (this.props.autoplayInterval) {\n this.stopAutoplay();\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this4 = this;\n\n if (this.props.value && this.props.value.length) {\n var isCircular = this.isCircular();\n var clonedItemsForStarting = null;\n var clonedItemsForFinishing = null;\n\n if (isCircular) {\n var clonedElements = null;\n clonedElements = this.props.value.slice(-1 * this.state.numVisible);\n clonedItemsForStarting = clonedElements.map(function (item, index) {\n var isActive = _this4.state.totalShiftedItems * -1 === _this4.props.value.length + _this4.state.numVisible,\n start = index === 0,\n end = index === clonedElements.length - 1;\n return /*#__PURE__*/React.createElement(CarouselItem, {\n key: index + '_scloned',\n className: \"p-carousel-item-cloned\",\n template: _this4.props.itemTemplate,\n item: item,\n active: isActive,\n start: start,\n end: end\n });\n });\n clonedElements = this.props.value.slice(0, this.state.numVisible);\n clonedItemsForFinishing = clonedElements.map(function (item, index) {\n var isActive = _this4.state.totalShiftedItems === 0,\n start = index === 0,\n end = index === clonedElements.length - 1;\n return /*#__PURE__*/React.createElement(CarouselItem, {\n key: index + '_fcloned',\n className: \"p-carousel-item-cloned\",\n template: _this4.props.itemTemplate,\n item: item,\n active: isActive,\n start: start,\n end: end\n });\n });\n }\n\n var items = this.props.value.map(function (item, index) {\n var firstIndex = isCircular ? -1 * (_this4.state.totalShiftedItems + _this4.state.numVisible) : _this4.state.totalShiftedItems * -1,\n lastIndex = firstIndex + _this4.state.numVisible - 1,\n isActive = firstIndex <= index && lastIndex >= index,\n start = firstIndex === index,\n end = lastIndex === index;\n return /*#__PURE__*/React.createElement(CarouselItem, {\n key: index,\n template: _this4.props.itemTemplate,\n item: item,\n active: isActive,\n start: start,\n end: end\n });\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, clonedItemsForStarting, items, clonedItemsForFinishing);\n }\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n if (this.props.header) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-carousel-header\"\n }, this.props.header);\n }\n\n return null;\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n if (this.props.footer) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-carousel-footer\"\n }, this.props.footer);\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this5 = this;\n\n var items = this.renderItems();\n var height = this.isVertical() ? this.props.verticalViewPortHeight : 'auto';\n var backwardNavigator = this.renderBackwardNavigator();\n var forwardNavigator = this.renderForwardNavigator();\n var containerClassName = classNames('p-carousel-container', this.props.containerClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, backwardNavigator, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-carousel-items-content\",\n style: {\n 'height': height\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.itemsContainer = el;\n },\n className: \"p-carousel-items-container\",\n onTransitionEnd: this.onTransitionEnd,\n onTouchStart: this.onTouchStart,\n onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd\n }, items)), forwardNavigator);\n }\n }, {\n key: \"renderBackwardNavigator\",\n value: function renderBackwardNavigator() {\n var isDisabled = (!this.circular || this.props.value && this.props.value.length < this.state.numVisible) && this.getPage() === 0;\n var buttonClassName = classNames('p-carousel-prev p-link', {\n 'p-disabled': isDisabled\n }),\n iconClassName = classNames('p-carousel-prev-icon pi', {\n 'pi-chevron-left': !this.isVertical(),\n 'pi-chevron-up': this.isVertical()\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: buttonClassName,\n onClick: this.navBackward,\n disabled: isDisabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderForwardNavigator\",\n value: function renderForwardNavigator() {\n var isDisabled = (!this.circular || this.props.value && this.props.value.length < this.state.numVisible) && (this.getPage() === this.totalIndicators - 1 || this.totalIndicators === 0);\n var buttonClassName = classNames('p-carousel-next p-link', {\n 'p-disabled': isDisabled\n }),\n iconClassName = classNames('p-carousel-next-icon pi', {\n 'pi-chevron-right': !this.isVertical(),\n 'pi-chevron-down': this.isVertical()\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: buttonClassName,\n onClick: this.navForward,\n disabled: isDisabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderIndicator\",\n value: function renderIndicator(index) {\n var _this6 = this;\n\n var isActive = this.getPage() === index,\n indicatorItemClassName = classNames('p-carousel-indicator', {\n 'p-highlight': isActive\n });\n return /*#__PURE__*/React.createElement(\"li\", {\n className: indicatorItemClassName,\n key: 'p-carousel-indicator-' + index\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-link\",\n onClick: function onClick(e) {\n return _this6.onDotClick(e, index);\n }\n }, /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }, {\n key: \"renderIndicators\",\n value: function renderIndicators() {\n var indicatorsContentClassName = classNames('p-carousel-indicators p-reset', this.props.indicatorsContentClassName);\n var indicators = [];\n\n for (var i = 0; i < this.totalIndicators; i++) {\n indicators.push(this.renderIndicator(i));\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: indicatorsContentClassName\n }, indicators);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n var className = classNames('p-carousel p-component', {\n 'p-carousel-vertical': this.isVertical(),\n 'p-carousel-horizontal': !this.isVertical()\n }, this.props.className);\n var contentClassName = classNames('p-carousel-content', this.props.contentClassName);\n this.totalIndicators = this.getTotalIndicators();\n var content = this.renderContent();\n var indicators = this.renderIndicators();\n var header = this.renderHeader();\n var footer = this.renderFooter();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this7.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, header, /*#__PURE__*/React.createElement(\"div\", {\n className: contentClassName\n }, content, indicators), footer);\n }\n }]);\n\n return Carousel;\n}(Component);\n\n_defineProperty(Carousel, \"defaultProps\", {\n id: null,\n value: null,\n page: 0,\n header: null,\n footer: null,\n style: null,\n className: null,\n itemTemplate: null,\n circular: false,\n autoplayInterval: 0,\n numVisible: 1,\n numScroll: 1,\n responsiveOptions: null,\n orientation: \"horizontal\",\n verticalViewPortHeight: \"300px\",\n contentClassName: null,\n containerClassName: null,\n indicatorsContentClassName: null,\n onPageChange: null\n});\n\nexport { Carousel };\n","import React, { Component } from 'react';\nimport { classNames, Ripple, UniqueComponentId, DomHandler, ZIndexUtils, CSSTransition, Portal } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar GalleriaItemComponent = /*#__PURE__*/function (_Component) {\n _inherits(GalleriaItemComponent, _Component);\n\n var _super = _createSuper$2(GalleriaItemComponent);\n\n function GalleriaItemComponent(props) {\n var _this;\n\n _classCallCheck(this, GalleriaItemComponent);\n\n _this = _super.call(this, props);\n _this.navForward = _this.navForward.bind(_assertThisInitialized(_this));\n _this.navBackward = _this.navBackward.bind(_assertThisInitialized(_this));\n _this.next = _this.next.bind(_assertThisInitialized(_this));\n _this.prev = _this.prev.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(GalleriaItemComponent, [{\n key: \"step\",\n value: function step(index) {\n if (this.itemsContainer) {\n this.itemsContainer.style.transform = this.isVertical() ? \"translate3d(0, \".concat(index * 100, \"%, 0)\") : \"translate3d(\".concat(index * 100, \"%, 0, 0)\");\n this.itemsContainer.style.transition = 'transform 500ms ease 0s';\n }\n }\n }, {\n key: \"next\",\n value: function next() {\n var nextItemIndex = this.props.activeItemIndex + 1;\n this.props.onActiveItemChange({\n index: this.props.circular && this.props.value.length - 1 === this.props.activeItemIndex ? 0 : nextItemIndex\n });\n }\n }, {\n key: \"prev\",\n value: function prev() {\n var prevItemIndex = this.props.activeItemIndex !== 0 ? this.props.activeItemIndex - 1 : 0;\n this.props.onActiveItemChange({\n index: this.props.circular && this.props.activeItemIndex === 0 ? this.props.value.length - 1 : prevItemIndex\n });\n }\n }, {\n key: \"stopSlideShow\",\n value: function stopSlideShow() {\n if (this.props.slideShowActive && this.props.stopSlideShow) {\n this.props.stopSlideShow();\n }\n }\n }, {\n key: \"navBackward\",\n value: function navBackward(e) {\n this.stopSlideShow();\n this.prev();\n\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"navForward\",\n value: function navForward(e) {\n this.stopSlideShow();\n this.next();\n\n if (e && e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"onIndicatorClick\",\n value: function onIndicatorClick(index) {\n this.stopSlideShow();\n this.props.onActiveItemChange({\n index: index\n });\n }\n }, {\n key: \"onIndicatorMouseEnter\",\n value: function onIndicatorMouseEnter(index) {\n if (this.props.changeItemOnIndicatorHover) {\n this.stopSlideShow();\n this.props.onActiveItemChange({\n index: index\n });\n }\n }\n }, {\n key: \"onIndicatorKeyDown\",\n value: function onIndicatorKeyDown(event, index) {\n if (event.which === 13) {\n this.stopSlideShow();\n this.props.onActiveItemChange({\n index: index\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.autoPlay) {\n this.props.startSlideShow();\n }\n }\n }, {\n key: \"renderBackwardNavigator\",\n value: function renderBackwardNavigator() {\n if (this.props.showItemNavigators) {\n var isDisabled = !this.props.circular && this.props.activeItemIndex === 0;\n var buttonClassName = classNames('p-galleria-item-prev p-galleria-item-nav p-link', {\n 'p-disabled': isDisabled\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: buttonClassName,\n onClick: this.navBackward,\n disabled: isDisabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-galleria-item-prev-icon pi pi-chevron-left\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderForwardNavigator\",\n value: function renderForwardNavigator() {\n if (this.props.showItemNavigators) {\n var isDisabled = !this.props.circular && this.props.activeItemIndex === this.props.value.length - 1;\n var buttonClassName = classNames('p-galleria-item-next p-galleria-item-nav p-link', {\n 'p-disabled': isDisabled\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: buttonClassName,\n onClick: this.navForward,\n disabled: isDisabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-galleria-item-next-icon pi pi-chevron-right\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderCaption\",\n value: function renderCaption() {\n if (this.props.caption) {\n var content = this.props.caption(this.props.value[this.props.activeItemIndex]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-caption\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderIndicator\",\n value: function renderIndicator(index) {\n var _this2 = this;\n\n var indicator = this.props.indicator && this.props.indicator(index);\n var isActive = this.props.activeItemIndex === index;\n var indicatorItemClassName = classNames('p-galleria-indicator', {\n 'p-highlight': isActive\n });\n\n if (!indicator) {\n indicator = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n tabIndex: -1,\n className: \"p-link\"\n }, /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: indicatorItemClassName,\n key: 'p-galleria-indicator-' + index,\n tabIndex: 0,\n onClick: function onClick() {\n return _this2.onIndicatorClick(index);\n },\n onMouseEnter: function onMouseEnter() {\n return _this2.onIndicatorMouseEnter(index);\n },\n onKeyDown: function onKeyDown(e) {\n return _this2.onIndicatorKeyDown(e, index);\n }\n }, indicator);\n }\n }, {\n key: \"renderIndicators\",\n value: function renderIndicators() {\n if (this.props.showIndicators) {\n var indicatorsContentClassName = classNames('p-galleria-indicators p-reset', this.props.indicatorsContentClassName);\n var indicators = [];\n\n for (var i = 0; i < this.props.value.length; i++) {\n indicators.push(this.renderIndicator(i));\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: indicatorsContentClassName\n }, indicators);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var content = this.props.itemTemplate && this.props.itemTemplate(this.props.value[this.props.activeItemIndex]);\n var backwardNavigator = this.renderBackwardNavigator();\n var forwardNavigator = this.renderForwardNavigator();\n var caption = this.renderCaption();\n var indicators = this.renderIndicators();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this3.props.forwardRef(el);\n },\n className: \"p-galleria-item-wrapper\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-item-container\"\n }, backwardNavigator, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-item\"\n }, content), forwardNavigator, caption), indicators);\n }\n }]);\n\n return GalleriaItemComponent;\n}(Component);\n\nvar GalleriaItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(GalleriaItemComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar GalleriaThumbnailItem = /*#__PURE__*/function (_Component) {\n _inherits(GalleriaThumbnailItem, _Component);\n\n var _super = _createSuper$1(GalleriaThumbnailItem);\n\n function GalleriaThumbnailItem(props) {\n var _this;\n\n _classCallCheck(this, GalleriaThumbnailItem);\n\n _this = _super.call(this, props);\n _this.onItemClick = _this.onItemClick.bind(_assertThisInitialized(_this));\n _this.onItemKeyDown = _this.onItemKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(GalleriaThumbnailItem, [{\n key: \"onItemClick\",\n value: function onItemClick(event) {\n this.props.onItemClick({\n originalEvent: event,\n index: this.props.index\n });\n }\n }, {\n key: \"onItemKeyDown\",\n value: function onItemKeyDown(event) {\n if (event.which === 13) {\n this.props.onItemClick({\n originalEvent: event,\n index: this.props.index\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.props.template && this.props.template(this.props.item);\n var itemClassName = classNames(this.props.className, 'p-galleria-thumbnail-item', {\n 'p-galleria-thumbnail-item-current': this.props.current,\n 'p-galleria-thumbnail-item-active': this.props.active,\n 'p-galleria-thumbnail-item-start': this.props.start,\n 'p-galleria-thumbnail-item-end': this.props.end\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: itemClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-thumbnail-item-content\",\n tabIndex: this.props.active ? 0 : null,\n onClick: this.onItemClick,\n onKeyDown: this.onItemKeyDown\n }, content));\n }\n }]);\n\n return GalleriaThumbnailItem;\n}(Component);\n\n_defineProperty(GalleriaThumbnailItem, \"defaultProps\", {\n index: null,\n template: null,\n item: null,\n current: false,\n active: false,\n start: false,\n end: false,\n className: null,\n onItemClick: null\n});\n\nvar GalleriaThumbnails = /*#__PURE__*/function (_Component2) {\n _inherits(GalleriaThumbnails, _Component2);\n\n var _super2 = _createSuper$1(GalleriaThumbnails);\n\n function GalleriaThumbnails(props) {\n var _this2;\n\n _classCallCheck(this, GalleriaThumbnails);\n\n _this2 = _super2.call(this, props);\n _this2.state = {\n numVisible: props.numVisible,\n totalShiftedItems: 0,\n page: 0\n };\n _this2.navForward = _this2.navForward.bind(_assertThisInitialized(_this2));\n _this2.navBackward = _this2.navBackward.bind(_assertThisInitialized(_this2));\n _this2.onTransitionEnd = _this2.onTransitionEnd.bind(_assertThisInitialized(_this2));\n _this2.onTouchStart = _this2.onTouchStart.bind(_assertThisInitialized(_this2));\n _this2.onTouchMove = _this2.onTouchMove.bind(_assertThisInitialized(_this2));\n _this2.onTouchEnd = _this2.onTouchEnd.bind(_assertThisInitialized(_this2));\n _this2.onItemClick = _this2.onItemClick.bind(_assertThisInitialized(_this2));\n _this2.attributeSelector = UniqueComponentId();\n return _this2;\n }\n\n _createClass(GalleriaThumbnails, [{\n key: \"step\",\n value: function step(dir) {\n var totalShiftedItems = this.state.totalShiftedItems + dir;\n\n if (dir < 0 && -1 * totalShiftedItems + this.state.numVisible > this.props.value.length - 1) {\n totalShiftedItems = this.state.numVisible - this.props.value.length;\n } else if (dir > 0 && totalShiftedItems > 0) {\n totalShiftedItems = 0;\n }\n\n if (this.props.circular) {\n if (dir < 0 && this.props.value.length - 1 === this.props.activeItemIndex) {\n totalShiftedItems = 0;\n } else if (dir > 0 && this.props.activeItemIndex === 0) {\n totalShiftedItems = this.state.numVisible - this.props.value.length;\n }\n }\n\n if (this.itemsContainer) {\n DomHandler.removeClass(this.itemsContainer, 'p-items-hidden');\n this.itemsContainer.style.transform = this.props.isVertical ? \"translate3d(0, \".concat(totalShiftedItems * (100 / this.state.numVisible), \"%, 0)\") : \"translate3d(\".concat(totalShiftedItems * (100 / this.state.numVisible), \"%, 0, 0)\");\n this.itemsContainer.style.transition = 'transform 500ms ease 0s';\n }\n\n this.setState({\n totalShiftedItems: totalShiftedItems\n });\n }\n }, {\n key: \"stopSlideShow\",\n value: function stopSlideShow() {\n if (this.props.slideShowActive && this.props.stopSlideShow) {\n this.props.stopSlideShow();\n }\n }\n }, {\n key: \"getMedianItemIndex\",\n value: function getMedianItemIndex() {\n var index = Math.floor(this.state.numVisible / 2);\n return this.state.numVisible % 2 ? index : index - 1;\n }\n }, {\n key: \"navBackward\",\n value: function navBackward(e) {\n this.stopSlideShow();\n var prevItemIndex = this.props.activeItemIndex !== 0 ? this.props.activeItemIndex - 1 : 0;\n var diff = prevItemIndex + this.state.totalShiftedItems;\n\n if (this.state.numVisible - diff - 1 > this.getMedianItemIndex() && (-1 * this.state.totalShiftedItems !== 0 || this.props.circular)) {\n this.step(1);\n }\n\n this.props.onActiveItemChange({\n index: this.props.circular && this.props.activeItemIndex === 0 ? this.props.value.length - 1 : prevItemIndex\n });\n\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"navForward\",\n value: function navForward(e) {\n this.stopSlideShow();\n var nextItemIndex = this.props.activeItemIndex + 1;\n\n if (nextItemIndex + this.state.totalShiftedItems > this.getMedianItemIndex() && (-1 * this.state.totalShiftedItems < this.getTotalPageNumber() - 1 || this.props.circular)) {\n this.step(-1);\n }\n\n this.props.onActiveItemChange({\n index: this.props.circular && this.props.value.length - 1 === this.props.activeItemIndex ? 0 : nextItemIndex\n });\n\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"onItemClick\",\n value: function onItemClick(event) {\n this.stopSlideShow();\n var selectedItemIndex = event.index;\n\n if (selectedItemIndex !== this.props.activeItemIndex) {\n var diff = selectedItemIndex + this.state.totalShiftedItems;\n var dir = 0;\n\n if (selectedItemIndex < this.props.activeItemIndex) {\n dir = this.state.numVisible - diff - 1 - this.getMedianItemIndex();\n\n if (dir > 0 && -1 * this.state.totalShiftedItems !== 0) {\n this.step(dir);\n }\n } else {\n dir = this.getMedianItemIndex() - diff;\n\n if (dir < 0 && -1 * this.state.totalShiftedItems < this.getTotalPageNumber() - 1) {\n this.step(dir);\n }\n }\n\n this.props.onActiveItemChange({\n index: selectedItemIndex\n });\n }\n }\n }, {\n key: \"onTransitionEnd\",\n value: function onTransitionEnd(e) {\n if (this.itemsContainer && e.propertyName === 'transform') {\n DomHandler.addClass(this.itemsContainer, 'p-items-hidden');\n this.itemsContainer.style.transition = '';\n }\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(e) {\n var touchobj = e.changedTouches[0];\n this.startPos = {\n x: touchobj.pageX,\n y: touchobj.pageY\n };\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(e) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(e) {\n var touchobj = e.changedTouches[0];\n\n if (this.props.isVertical) {\n this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n } else {\n this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n }\n }\n }, {\n key: \"changePageOnTouch\",\n value: function changePageOnTouch(e, diff) {\n if (diff < 0) {\n // left\n this.navForward(e);\n } else {\n // right\n this.navBackward(e);\n }\n }\n }, {\n key: \"getTotalPageNumber\",\n value: function getTotalPageNumber() {\n return this.props.value.length > this.state.numVisible ? this.props.value.length - this.state.numVisible + 1 : 0;\n }\n }, {\n key: \"createStyle\",\n value: function createStyle() {\n if (!this.thumbnailsStyle) {\n this.thumbnailsStyle = document.createElement('style');\n document.body.appendChild(this.thumbnailsStyle);\n }\n\n var innerHTML = \"\\n .p-galleria-thumbnail-items[\".concat(this.attributeSelector, \"] .p-galleria-thumbnail-item {\\n flex: 1 0 \").concat(100 / this.state.numVisible, \"%\\n }\\n \");\n\n if (this.props.responsiveOptions) {\n this.responsiveOptions = _toConsumableArray(this.props.responsiveOptions);\n this.responsiveOptions.sort(function (data1, data2) {\n var value1 = data1.breakpoint;\n var value2 = data2.breakpoint;\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return -1 * result;\n });\n\n for (var i = 0; i < this.responsiveOptions.length; i++) {\n var res = this.responsiveOptions[i];\n innerHTML += \"\\n @media screen and (max-width: \".concat(res.breakpoint, \") {\\n .p-galleria-thumbnail-items[\").concat(this.attributeSelector, \"] .p-galleria-thumbnail-item {\\n flex: 1 0 \").concat(100 / res.numVisible, \"%\\n }\\n }\\n \");\n }\n }\n\n this.thumbnailsStyle.innerHTML = innerHTML;\n }\n }, {\n key: \"calculatePosition\",\n value: function calculatePosition() {\n if (this.itemsContainer && this.responsiveOptions) {\n var windowWidth = window.innerWidth;\n var matchedResponsiveData = {\n numVisible: this.props.numVisible\n };\n\n for (var i = 0; i < this.responsiveOptions.length; i++) {\n var res = this.responsiveOptions[i];\n\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\n matchedResponsiveData = res;\n }\n }\n\n if (this.state.numVisible !== matchedResponsiveData.numVisible) {\n this.setState({\n numVisible: matchedResponsiveData.numVisible\n });\n }\n }\n }\n }, {\n key: \"bindDocumentListeners\",\n value: function bindDocumentListeners() {\n var _this3 = this;\n\n if (!this.documentResizeListener) {\n this.documentResizeListener = function () {\n _this3.calculatePosition();\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n }, {\n key: \"unbindDocumentListeners\",\n value: function unbindDocumentListeners() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.itemsContainer) {\n this.itemsContainer.setAttribute(this.attributeSelector, '');\n }\n\n this.createStyle();\n this.calculatePosition();\n\n if (this.props.responsiveOptions) {\n this.bindDocumentListeners();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var totalShiftedItems = this.state.totalShiftedItems;\n\n if (prevState.numVisible !== this.state.numVisible || prevProps.activeItemIndex !== this.props.activeItemIndex) {\n if (this.props.activeItemIndex <= this.getMedianItemIndex()) {\n totalShiftedItems = 0;\n } else if (this.props.value.length - this.state.numVisible + this.getMedianItemIndex() < this.props.activeItemIndex) {\n totalShiftedItems = this.state.numVisible - this.props.value.length;\n } else if (this.props.value.length - this.state.numVisible < this.props.activeItemIndex && this.state.numVisible % 2 === 0) {\n totalShiftedItems = this.props.activeItemIndex * -1 + this.getMedianItemIndex() + 1;\n } else {\n totalShiftedItems = this.props.activeItemIndex * -1 + this.getMedianItemIndex();\n }\n\n if (totalShiftedItems !== this.state.totalShiftedItems) {\n this.setState({\n totalShiftedItems: totalShiftedItems\n });\n }\n\n this.itemsContainer.style.transform = this.props.isVertical ? \"translate3d(0, \".concat(totalShiftedItems * (100 / this.state.numVisible), \"%, 0)\") : \"translate3d(\".concat(totalShiftedItems * (100 / this.state.numVisible), \"%, 0, 0)\");\n\n if (prevProps.activeItemIndex !== this.props.activeItemIndex) {\n DomHandler.removeClass(this.itemsContainer, 'p-items-hidden');\n this.itemsContainer.style.transition = 'transform 500ms ease 0s';\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.responsiveOptions) {\n this.unbindDocumentListeners();\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this4 = this;\n\n return this.props.value.map(function (item, index) {\n var firstIndex = _this4.state.totalShiftedItems * -1,\n lastIndex = firstIndex + _this4.state.numVisible - 1,\n isActive = firstIndex <= index && lastIndex >= index,\n start = firstIndex === index,\n end = lastIndex === index,\n current = _this4.props.activeItemIndex === index;\n return /*#__PURE__*/React.createElement(GalleriaThumbnailItem, {\n key: index,\n index: index,\n template: _this4.props.itemTemplate,\n item: item,\n active: isActive,\n start: start,\n end: end,\n onItemClick: _this4.onItemClick,\n current: current\n });\n });\n }\n }, {\n key: \"renderBackwardNavigator\",\n value: function renderBackwardNavigator() {\n if (this.props.showThumbnailNavigators) {\n var isDisabled = !this.props.circular && this.props.activeItemIndex === 0 || this.props.value.length <= this.state.numVisible;\n var buttonClassName = classNames('p-galleria-thumbnail-prev p-link', {\n 'p-disabled': isDisabled\n }),\n iconClassName = classNames('p-galleria-thumbnail-prev-icon pi', {\n 'pi-chevron-left': !this.props.isVertical,\n 'pi-chevron-up': this.props.isVertical\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n className: buttonClassName,\n onClick: this.navBackward,\n disabled: isDisabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderForwardNavigator\",\n value: function renderForwardNavigator() {\n if (this.props.showThumbnailNavigators) {\n var isDisabled = !this.props.circular && this.props.activeItemIndex === this.props.value.length - 1 || this.props.value.length <= this.state.numVisible;\n var buttonClassName = classNames('p-galleria-thumbnail-next p-link', {\n 'p-disabled': isDisabled\n }),\n iconClassName = classNames('p-galleria-thumbnail-next-icon pi', {\n 'pi-chevron-right': !this.props.isVertical,\n 'pi-chevron-down': this.props.isVertical\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n className: buttonClassName,\n onClick: this.navForward,\n disabled: isDisabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this5 = this;\n\n var items = this.renderItems();\n var height = this.props.isVertical ? this.props.contentHeight : '';\n var backwardNavigator = this.renderBackwardNavigator();\n var forwardNavigator = this.renderForwardNavigator();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-thumbnail-container\"\n }, backwardNavigator, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-thumbnail-items-container\",\n style: {\n 'height': height\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.itemsContainer = el;\n },\n className: \"p-galleria-thumbnail-items\",\n onTransitionEnd: this.onTransitionEnd,\n onTouchStart: this.onTouchStart,\n onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd\n }, items)), forwardNavigator);\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-thumbnail-wrapper\"\n }, content);\n }\n }]);\n\n return GalleriaThumbnails;\n}(Component);\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Galleria = /*#__PURE__*/function (_Component) {\n _inherits(Galleria, _Component);\n\n var _super = _createSuper(Galleria);\n\n function Galleria(props) {\n var _this;\n\n _classCallCheck(this, Galleria);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false,\n numVisible: props.numVisible,\n slideShowActive: false\n };\n\n if (!_this.props.onItemChange) {\n _this.state = _objectSpread(_objectSpread({}, _this.state), {}, {\n activeIndex: props.activeIndex\n });\n }\n\n _this.onActiveItemChange = _this.onActiveItemChange.bind(_assertThisInitialized(_this));\n _this.show = _this.show.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n _this.startSlideShow = _this.startSlideShow.bind(_assertThisInitialized(_this));\n _this.stopSlideShow = _this.stopSlideShow.bind(_assertThisInitialized(_this));\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntering = _this.onEntering.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.galleriaRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(Galleria, [{\n key: \"activeItemIndex\",\n get: function get() {\n return this.props.onItemChange ? this.props.activeIndex : this.state.activeIndex;\n }\n }, {\n key: \"onActiveItemChange\",\n value: function onActiveItemChange(event) {\n if (this.props.onItemChange) {\n this.props.onItemChange(event);\n } else {\n this.setState({\n activeIndex: event.index\n });\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n this.setState({\n visible: true\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.setState({\n visible: false\n });\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n DomHandler.addClass(document.body, 'p-overflow-hidden');\n }\n }, {\n key: \"onEntering\",\n value: function onEntering() {\n ZIndexUtils.set('modal', this.mask, this.props.baseZIndex);\n DomHandler.addMultipleClasses(this.mask, 'p-component-overlay p-component-overlay-enter');\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n DomHandler.removeClass(document.body, 'p-overflow-hidden');\n DomHandler.addClass(this.mask, 'p-component-overlay-leave');\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.mask);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"isAutoPlayActive\",\n value: function isAutoPlayActive() {\n return this.state.slideShowActive;\n }\n }, {\n key: \"startSlideShow\",\n value: function startSlideShow() {\n var _this2 = this;\n\n this.interval = setInterval(function () {\n var activeIndex = _this2.props.circular && _this2.props.value.length - 1 === _this2.activeItemIndex ? 0 : _this2.activeItemIndex + 1;\n\n _this2.onActiveItemChange({\n index: activeIndex\n });\n }, this.props.transitionInterval);\n this.setState({\n slideShowActive: true\n });\n }\n }, {\n key: \"stopSlideShow\",\n value: function stopSlideShow() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n\n this.setState({\n slideShowActive: false\n });\n }\n }, {\n key: \"getPositionClassName\",\n value: function getPositionClassName(preClassName, position) {\n var positions = ['top', 'left', 'bottom', 'right'];\n var pos = positions.find(function (item) {\n return item === position;\n });\n return pos ? \"\".concat(preClassName, \"-\").concat(pos) : '';\n }\n }, {\n key: \"isVertical\",\n value: function isVertical() {\n return this.props.thumbnailsPosition === 'left' || this.props.thumbnailsPosition === 'right';\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (prevProps.value !== this.props.value) {\n if (this.props.value && this.props.value.length < this.state.numVisible) {\n this.setState({\n numVisible: this.props.value.length\n });\n }\n }\n\n if (prevProps.numVisible !== this.props.numVisible) {\n this.setState({\n numVisible: this.props.numVisible\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.slideShowActive) {\n this.stopSlideShow();\n }\n\n ZIndexUtils.clear(this.mask);\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n if (this.props.header) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-header\"\n }, this.props.header);\n }\n\n return null;\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n if (this.props.footer) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-footer\"\n }, this.props.footer);\n }\n\n return null;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this3 = this;\n\n var isVertical = this.isVertical();\n var thumbnailsPosClassName = this.props.showThumbnails && this.getPositionClassName('p-galleria-thumbnails', this.props.thumbnailsPosition);\n var indicatorPosClassName = this.props.showIndicators && this.getPositionClassName('p-galleria-indicators', this.props.indicatorsPosition);\n var galleriaClassName = classNames('p-galleria p-component', this.props.className, {\n 'p-galleria-fullscreen': this.props.fullScreen,\n 'p-galleria-indicator-onitem': this.props.showIndicatorsOnItem,\n 'p-galleria-item-nav-onhover': this.props.showItemNavigatorsOnHover && !this.props.fullScreen\n }, thumbnailsPosClassName, indicatorPosClassName);\n var closeIcon = this.props.fullScreen && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-galleria-close p-link\",\n onClick: this.hide\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-galleria-close-icon pi pi-times\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n var header = this.renderHeader();\n var footer = this.renderFooter();\n var element = /*#__PURE__*/React.createElement(\"div\", {\n ref: this.galleriaRef,\n id: this.props.id,\n className: galleriaClassName,\n style: this.props.style\n }, closeIcon, header, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-galleria-content\"\n }, /*#__PURE__*/React.createElement(GalleriaItem, {\n ref: function ref(el) {\n return _this3.previewContent = el;\n },\n value: this.props.value,\n activeItemIndex: this.activeItemIndex,\n onActiveItemChange: this.onActiveItemChange,\n itemTemplate: this.props.item,\n circular: this.props.circular,\n caption: this.props.caption,\n showIndicators: this.props.showIndicators,\n changeItemOnIndicatorHover: this.props.changeItemOnIndicatorHover,\n indicator: this.props.indicator,\n showItemNavigators: this.props.showItemNavigators,\n autoPlay: this.props.autoPlay,\n slideShowActive: this.state.slideShowActive,\n startSlideShow: this.startSlideShow,\n stopSlideShow: this.stopSlideShow\n }), this.props.showThumbnails && /*#__PURE__*/React.createElement(GalleriaThumbnails, {\n value: this.props.value,\n activeItemIndex: this.activeItemIndex,\n onActiveItemChange: this.onActiveItemChange,\n itemTemplate: this.props.thumbnail,\n numVisible: this.state.numVisible,\n responsiveOptions: this.props.responsiveOptions,\n circular: this.props.circular,\n isVertical: isVertical,\n contentHeight: this.props.verticalThumbnailViewPortHeight,\n showThumbnailNavigators: this.props.showThumbnailNavigators,\n autoPlay: this.props.autoPlay,\n slideShowActive: this.state.slideShowActive,\n stopSlideShow: this.stopSlideShow\n })), footer);\n return element;\n }\n }, {\n key: \"renderGalleria\",\n value: function renderGalleria() {\n var _this4 = this;\n\n var element = this.renderElement();\n\n if (this.props.fullScreen) {\n var maskClassName = classNames('p-galleria-mask', {\n 'p-galleria-visible': this.state.visible\n });\n var galleriaWrapper = /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this4.mask = el;\n },\n className: maskClassName\n }, /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.galleriaRef,\n classNames: \"p-galleria\",\n in: this.state.visible,\n timeout: {\n enter: 150,\n exit: 150\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, element));\n return /*#__PURE__*/React.createElement(Portal, {\n element: galleriaWrapper\n });\n } else {\n return element;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.value && this.props.value.length > 0 && this.renderGalleria();\n }\n }]);\n\n return Galleria;\n}(Component);\n\n_defineProperty(Galleria, \"defaultProps\", {\n id: null,\n value: null,\n activeIndex: 0,\n fullScreen: false,\n item: null,\n thumbnail: null,\n indicator: null,\n caption: null,\n className: null,\n style: null,\n header: null,\n footer: null,\n numVisible: 3,\n responsiveOptions: null,\n showItemNavigators: false,\n showThumbnailNavigators: true,\n showItemNavigatorsOnHover: false,\n changeItemOnIndicatorHover: false,\n circular: false,\n autoPlay: false,\n transitionInterval: 4000,\n showThumbnails: true,\n thumbnailsPosition: \"bottom\",\n verticalThumbnailViewPortHeight: \"300px\",\n showIndicators: false,\n showIndicatorsOnItem: false,\n indicatorsPosition: \"bottom\",\n baseZIndex: 0,\n transitionOptions: null,\n onItemChange: null\n});\n\nexport { Galleria };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames, Ripple, ObjectUtils, ZIndexUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar MenubarSubComponent = /*#__PURE__*/function (_Component) {\n _inherits(MenubarSubComponent, _Component);\n\n var _super = _createSuper$1(MenubarSubComponent);\n\n function MenubarSubComponent(props) {\n var _this;\n\n _classCallCheck(this, MenubarSubComponent);\n\n _this = _super.call(this, props);\n _this.state = {\n activeItem: null\n };\n _this.onLeafClick = _this.onLeafClick.bind(_assertThisInitialized(_this));\n _this.onChildItemKeyDown = _this.onChildItemKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(MenubarSubComponent, [{\n key: \"getElementRef\",\n value: function getElementRef(el) {\n this.element = el;\n\n if (this.props.forwardRef) {\n return this.props.forwardRef(el);\n }\n\n return this.element;\n }\n }, {\n key: \"onItemMouseEnter\",\n value: function onItemMouseEnter(event, item) {\n if (item.disabled || this.props.mobileActive) {\n event.preventDefault();\n return;\n }\n\n if (this.props.root) {\n if (this.state.activeItem || this.props.popup) {\n this.setState({\n activeItem: item\n });\n }\n } else {\n this.setState({\n activeItem: item\n });\n }\n }\n }, {\n key: \"onItemClick\",\n value: function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (item.items) {\n if (this.state.activeItem && item === this.state.activeItem) {\n this.setState({\n activeItem: null\n });\n } else {\n this.setState({\n activeItem: item\n });\n }\n } else {\n this.onLeafClick();\n }\n }\n }, {\n key: \"onItemKeyDown\",\n value: function onItemKeyDown(event, item) {\n var listItem = event.currentTarget.parentElement;\n\n switch (event.which) {\n //down\n case 40:\n if (this.props.root) {\n if (item.items) {\n this.expandSubmenu(item, listItem);\n }\n } else {\n this.navigateToNextItem(listItem);\n }\n\n event.preventDefault();\n break;\n //up\n\n case 38:\n if (!this.props.root) {\n this.navigateToPrevItem(listItem);\n }\n\n event.preventDefault();\n break;\n //right\n\n case 39:\n if (this.props.root) {\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.children[0].focus();\n }\n } else {\n if (item.items) {\n this.expandSubmenu(item, listItem);\n }\n }\n\n event.preventDefault();\n break;\n //left\n\n case 37:\n if (this.props.root) {\n this.navigateToPrevItem(listItem);\n }\n\n event.preventDefault();\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event, listItem);\n }\n }\n }, {\n key: \"onChildItemKeyDown\",\n value: function onChildItemKeyDown(event, childListItem) {\n if (this.props.root) {\n //up\n if (event.which === 38 && childListItem.previousElementSibling == null) {\n this.collapseMenu(childListItem);\n }\n } else {\n //left\n if (event.which === 37) {\n this.collapseMenu(childListItem);\n }\n }\n }\n }, {\n key: \"expandSubmenu\",\n value: function expandSubmenu(item, listItem) {\n this.setState({\n activeItem: item\n });\n setTimeout(function () {\n listItem.children[1].children[0].children[0].focus();\n }, 50);\n }\n }, {\n key: \"collapseMenu\",\n value: function collapseMenu(listItem) {\n this.setState({\n activeItem: null\n });\n listItem.parentElement.previousElementSibling.focus();\n }\n }, {\n key: \"navigateToNextItem\",\n value: function navigateToNextItem(listItem) {\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.children[0].focus();\n }\n }\n }, {\n key: \"navigateToPrevItem\",\n value: function navigateToPrevItem(listItem) {\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.children[0].focus();\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"onLeafClick\",\n value: function onLeafClick() {\n this.setState({\n activeItem: null\n });\n\n if (this.props.onLeafClick) {\n this.props.onLeafClick();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this2.element && !_this2.element.contains(event.target)) {\n _this2.setState({\n activeItem: null\n });\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.parentActive && !this.props.parentActive) {\n this.setState({\n activeItem: null\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: 'separator_' + index,\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n }\n }, {\n key: \"renderSubmenu\",\n value: function renderSubmenu(item) {\n if (item.items) {\n return /*#__PURE__*/React.createElement(MenubarSub, {\n model: item.items,\n mobileActive: this.props.mobileActive,\n onLeafClick: this.onLeafClick,\n onKeyDown: this.onChildItemKeyDown,\n parentActive: item === this.state.activeItem\n });\n }\n\n return null;\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem(item, index) {\n var _this3 = this;\n\n var className = classNames('p-menuitem', {\n 'p-menuitem-active': this.state.activeItem === item\n }, item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var submenuIconClassName = classNames('p-submenu-icon pi', {\n 'pi-angle-down': this.props.root,\n 'pi-angle-right': !this.props.root\n });\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var submenuIcon = item.items && /*#__PURE__*/React.createElement(\"span\", {\n className: submenuIconClassName\n });\n var submenu = this.renderSubmenu(item);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n role: \"menuitem\",\n className: linkClassName,\n target: item.target,\n \"aria-haspopup\": item.items != null,\n onClick: function onClick(event) {\n return _this3.onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return _this3.onItemKeyDown(event, item);\n }\n }, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this3.onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return _this3.onItemKeyDown(event, item);\n },\n className: linkClassName,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n submenuIconClassName: submenuIconClassName,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n role: \"none\",\n className: className,\n style: item.style,\n onMouseEnter: function onMouseEnter(event) {\n return _this3.onItemMouseEnter(event, item);\n }\n }, content, submenu);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index) {\n if (item.separator) return this.renderSeparator(index);else return this.renderMenuitem(item, index);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (item, index) {\n return _this4.renderItem(item, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n var className = classNames({\n 'p-submenu-list': !this.props.root,\n 'p-menubar-root-list': this.props.root\n });\n var submenu = this.renderMenu();\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n return _this5.getElementRef(el);\n },\n className: className,\n role: this.props.root ? 'menubar' : 'menu'\n }, submenu);\n }\n }]);\n\n return MenubarSubComponent;\n}(Component);\n\n_defineProperty(MenubarSubComponent, \"defaultProps\", {\n model: null,\n root: false,\n className: null,\n popup: false,\n onLeafClick: null,\n onKeyDown: null,\n parentActive: false,\n mobileActive: false,\n forwardRef: null\n});\n\nvar MenubarSub = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(MenubarSubComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Menubar = /*#__PURE__*/function (_Component) {\n _inherits(Menubar, _Component);\n\n var _super = _createSuper(Menubar);\n\n function Menubar(props) {\n var _this;\n\n _classCallCheck(this, Menubar);\n\n _this = _super.call(this, props);\n _this.state = {\n mobileActive: false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.onLeafClick = _this.onLeafClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Menubar, [{\n key: \"toggle\",\n value: function toggle(event) {\n var _this2 = this;\n\n event.preventDefault();\n this.setState(function (prevState) {\n return {\n mobileActive: !prevState.mobileActive\n };\n }, function () {\n if (_this2.state.mobileActive) {\n ZIndexUtils.set('menu', _this2.rootmenu);\n\n _this2.bindDocumentClickListener();\n } else {\n _this2.unbindDocumentClickListener();\n\n ZIndexUtils.clear(_this2.rootmenu);\n }\n });\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this3 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this3.state.mobileActive && _this3.isOutsideClicked(event)) {\n _this3.setState({\n mobileActive: false\n }, function () {\n _this3.unbindDocumentClickListener();\n\n ZIndexUtils.clear(_this3.rootmenu);\n });\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.rootmenu !== event.target && !this.rootmenu.contains(event.target) && this.menubutton !== event.target && !this.menubutton.contains(event.target);\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"onLeafClick\",\n value: function onLeafClick() {\n var _this4 = this;\n\n this.setState({\n mobileActive: false\n }, function () {\n _this4.unbindDocumentClickListener();\n\n ZIndexUtils.clear(_this4.rootmenu);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n ZIndexUtils.clear(this.rootmenu);\n }\n }, {\n key: \"renderCustomContent\",\n value: function renderCustomContent() {\n if (this.props.children) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-menubar-custom\"\n }, this.props.children);\n }\n\n return null;\n }\n }, {\n key: \"renderStartContent\",\n value: function renderStartContent() {\n if (this.props.start) {\n var start = ObjectUtils.getJSXElement(this.props.start, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-menubar-start\"\n }, start);\n }\n\n return null;\n }\n }, {\n key: \"renderEndContent\",\n value: function renderEndContent() {\n if (this.props.end) {\n var end = ObjectUtils.getJSXElement(this.props.end, this.props);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-menubar-end\"\n }, end);\n }\n\n return null;\n }\n }, {\n key: \"renderMenuButton\",\n value: function renderMenuButton() {\n var _this5 = this;\n\n /* eslint-disable */\n var button = /*#__PURE__*/React.createElement(\"a\", {\n ref: function ref(el) {\n return _this5.menubutton = el;\n },\n href: '#',\n role: \"button\",\n tabIndex: 0,\n className: \"p-menubar-button\",\n onClick: this.toggle\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"pi pi-bars\"\n }));\n /* eslint-enable */\n\n return button;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames('p-menubar p-component', {\n 'p-menubar-mobile-active': this.state.mobileActive\n }, this.props.className);\n var start = this.renderStartContent();\n var end = this.renderEndContent();\n var menuButton = this.renderMenuButton();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, start, menuButton, /*#__PURE__*/React.createElement(MenubarSub, {\n ref: function ref(el) {\n return _this6.rootmenu = el;\n },\n model: this.props.model,\n root: true,\n mobileActive: this.state.mobileActive,\n onLeafClick: this.onLeafClick\n }), end);\n }\n }]);\n\n return Menubar;\n}(Component);\n\n_defineProperty(Menubar, \"defaultProps\", {\n id: null,\n model: null,\n style: null,\n className: null,\n start: null,\n end: null\n});\n\nexport { Menubar };\n","import React, { Component } from 'react';\nimport { classNames, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar BreadCrumb = /*#__PURE__*/function (_Component) {\n _inherits(BreadCrumb, _Component);\n\n var _super = _createSuper(BreadCrumb);\n\n function BreadCrumb() {\n _classCallCheck(this, BreadCrumb);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(BreadCrumb, [{\n key: \"itemClick\",\n value: function itemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n }\n }, {\n key: \"renderHome\",\n value: function renderHome() {\n var _this = this;\n\n if (this.props.home) {\n var className = classNames('p-breadcrumb-home', {\n 'p-disabled': this.props.home.disabled\n }, this.props.home.className);\n var iconClassName = classNames('p-menuitem-icon', this.props.home.icon);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n style: this.props.home.style\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: this.props.home.url || '#',\n className: \"p-menuitem-link\",\n \"aria-disabled\": this.props.home.disabled,\n target: this.props.home.target,\n onClick: function onClick(event) {\n return _this.itemClick(event, _this.props.home);\n }\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator() {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-breadcrumb-chevron pi pi-chevron-right\"\n });\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem(item) {\n var _this2 = this;\n\n var className = classNames(item.className, {\n 'p-disabled': item.disabled\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: \"p-menuitem-link\",\n target: item.target,\n onClick: function onClick(event) {\n return _this2.itemClick(event, item);\n },\n \"aria-disabled\": item.disabled\n }, label);\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this2.itemClick(event, item);\n },\n className: 'p-menuitem-link',\n labelClassName: 'p-menuitem-text',\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n style: item.style\n }, content);\n }\n }, {\n key: \"renderMenuitems\",\n value: function renderMenuitems() {\n var _this3 = this;\n\n if (this.props.model) {\n var items = this.props.model.map(function (item, index) {\n var menuitem = _this3.renderMenuitem(item);\n\n var separator = index === _this3.props.model.length - 1 ? null : _this3.renderSeparator();\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: item.label + '_' + index\n }, menuitem, separator);\n });\n return items;\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-breadcrumb p-component', this.props.className);\n var home = this.renderHome();\n var items = this.renderMenuitems();\n var separator = this.renderSeparator();\n return /*#__PURE__*/React.createElement(\"nav\", {\n id: this.props.id,\n className: className,\n style: this.props.style,\n \"aria-label\": \"Breadcrumb\"\n }, /*#__PURE__*/React.createElement(\"ul\", null, home, separator, items));\n }\n }]);\n\n return BreadCrumb;\n}(Component);\n\n_defineProperty(BreadCrumb, \"defaultProps\", {\n id: null,\n model: null,\n home: null,\n style: null,\n className: null\n});\n\nexport { BreadCrumb };\n","import React, { Component } from 'react';\nimport { classNames, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Steps = /*#__PURE__*/function (_Component) {\n _inherits(Steps, _Component);\n\n var _super = _createSuper(Steps);\n\n function Steps() {\n _classCallCheck(this, Steps);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Steps, [{\n key: \"itemClick\",\n value: function itemClick(event, item, index) {\n if (this.props.readOnly || item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n item: item,\n index: index\n });\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item,\n index: index\n });\n }\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index) {\n var _this = this;\n\n var active = index === this.props.activeIndex;\n var disabled = item.disabled || index !== this.props.activeIndex && this.props.readOnly;\n var className = classNames('p-steps-item', item.className, {\n 'p-highlight p-steps-current': active,\n 'p-disabled': disabled\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-steps-title\"\n }, item.label);\n var tabIndex = disabled ? -1 : '';\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: \"p-menuitem-link\",\n role: \"presentation\",\n target: item.target,\n onClick: function onClick(event) {\n return _this.itemClick(event, item, index);\n },\n tabIndex: tabIndex,\n \"aria-disabled\": disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-steps-number\"\n }, index + 1), label);\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this.itemClick(event, item, index);\n },\n className: 'p-menuitem-link',\n labelClassName: 'p-steps-title',\n numberClassName: 'p-steps-number',\n element: content,\n props: this.props,\n tabIndex: tabIndex,\n active: active,\n disabled: disabled\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n className: className,\n style: item.style,\n role: \"tab\",\n \"aria-selected\": active,\n \"aria-expanded\": active\n }, content);\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this2 = this;\n\n if (this.props.model) {\n var items = this.props.model.map(function (item, index) {\n return _this2.renderItem(item, index);\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n role: \"tablist\"\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-steps p-component', this.props.className, {\n 'p-readonly': this.props.readOnly\n });\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, items);\n }\n }]);\n\n return Steps;\n}(Component);\n\n_defineProperty(Steps, \"defaultProps\", {\n id: null,\n model: null,\n activeIndex: 0,\n readOnly: true,\n style: null,\n className: null,\n onSelect: null\n});\n\nexport { Steps };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames, Ripple, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TabMenu = /*#__PURE__*/function (_Component) {\n _inherits(TabMenu, _Component);\n\n var _super = _createSuper(TabMenu);\n\n function TabMenu(props) {\n var _this;\n\n _classCallCheck(this, TabMenu);\n\n _this = _super.call(this, props);\n\n if (!_this.props.onTabChange) {\n _this.state = {\n activeIndex: props.activeIndex\n };\n }\n\n return _this;\n }\n\n _createClass(TabMenu, [{\n key: \"itemClick\",\n value: function itemClick(event, item, index) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (this.props.onTabChange) {\n this.props.onTabChange({\n originalEvent: event,\n value: item,\n index: index\n });\n } else {\n this.setState({\n activeIndex: index\n });\n }\n }\n }, {\n key: \"getActiveIndex\",\n value: function getActiveIndex() {\n return this.props.onTabChange ? this.props.activeIndex : this.state.activeIndex;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(index) {\n return index === (this.getActiveIndex() || 0);\n }\n }, {\n key: \"updateInkBar\",\n value: function updateInkBar() {\n var activeIndex = this.getActiveIndex();\n var tabHeader = this[\"tab_\".concat(activeIndex)];\n this.inkbar.style.width = DomHandler.getWidth(tabHeader) + 'px';\n this.inkbar.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.nav).left + 'px';\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInkBar();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateInkBar();\n }\n }, {\n key: \"renderMenuItem\",\n value: function renderMenuItem(item, index) {\n var _this2 = this;\n\n var active = this.isSelected(index);\n var className = classNames('p-tabmenuitem', {\n 'p-highlight': active,\n 'p-disabled': item.disabled\n }, item.className);\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: \"p-menuitem-link\",\n target: item.target,\n onClick: function onClick(event) {\n return _this2.itemClick(event, item, index);\n },\n role: \"presentation\"\n }, icon, label, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this2.itemClick(event, item);\n },\n className: 'p-menuitem-link',\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n element: content,\n props: this.props,\n active: active,\n index: index\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n ref: function ref(el) {\n return _this2[\"tab_\".concat(index)] = el;\n },\n key: item.label + '_' + index,\n className: className,\n style: item.style,\n role: \"tab\",\n \"aria-selected\": active,\n \"aria-expanded\": active,\n \"aria-disabled\": item.disabled\n }, content);\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this3 = this;\n\n return this.props.model.map(function (item, index) {\n return _this3.renderMenuItem(item, index);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n if (this.props.model) {\n var className = classNames('p-tabmenu p-component', this.props.className);\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n return _this4.nav = el;\n },\n className: \"p-tabmenu-nav p-reset\",\n role: \"tablist\"\n }, items, /*#__PURE__*/React.createElement(\"li\", {\n ref: function ref(el) {\n return _this4.inkbar = el;\n },\n className: \"p-tabmenu-ink-bar\"\n })));\n }\n\n return null;\n }\n }]);\n\n return TabMenu;\n}(Component);\n\n_defineProperty(TabMenu, \"defaultProps\", {\n id: null,\n model: null,\n activeIndex: 0,\n style: null,\n className: null,\n onTabChange: null\n});\n\nexport { TabMenu };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames, Ripple, ObjectUtils, OverlayService, ZIndexUtils, ConnectedOverlayScrollHandler, CSSTransition, Portal } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TieredMenuSub = /*#__PURE__*/function (_Component) {\n _inherits(TieredMenuSub, _Component);\n\n var _super = _createSuper$1(TieredMenuSub);\n\n function TieredMenuSub(props) {\n var _this;\n\n _classCallCheck(this, TieredMenuSub);\n\n _this = _super.call(this, props);\n _this.state = {\n activeItem: null\n };\n _this.onLeafClick = _this.onLeafClick.bind(_assertThisInitialized(_this));\n _this.onChildItemKeyDown = _this.onChildItemKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TieredMenuSub, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.parentActive && !this.props.parentActive) {\n this.setState({\n activeItem: null\n });\n }\n\n if (this.props.parentActive && !this.props.root) {\n this.position();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this2.element && !_this2.element.contains(event.target)) {\n _this2.setState({\n activeItem: null\n });\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"position\",\n value: function position() {\n if (this.element) {\n var parentItem = this.element.parentElement;\n var containerOffset = DomHandler.getOffset(parentItem);\n var viewport = DomHandler.getViewport();\n var sublistWidth = this.element.offsetParent ? this.element.offsetWidth : DomHandler.getHiddenElementOuterWidth(this.element);\n var itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);\n\n if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {\n DomHandler.addClass(this.element, 'p-submenu-list-flipped');\n }\n }\n }\n }, {\n key: \"onItemMouseEnter\",\n value: function onItemMouseEnter(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (this.props.root) {\n if (this.state.activeItem || this.props.popup) {\n this.setState({\n activeItem: item\n });\n }\n } else {\n this.setState({\n activeItem: item\n });\n }\n }\n }, {\n key: \"onItemClick\",\n value: function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (this.props.root) {\n if (item.items) {\n if (this.state.activeItem && item === this.state.activeItem) {\n this.setState({\n activeItem: null\n });\n } else {\n this.setState({\n activeItem: item\n });\n }\n }\n }\n\n if (!item.items) {\n this.onLeafClick();\n }\n }\n }, {\n key: \"onItemKeyDown\",\n value: function onItemKeyDown(event, item) {\n var listItem = event.currentTarget.parentElement;\n\n switch (event.which) {\n //down\n case 40:\n var nextItem = this.findNextItem(listItem);\n\n if (nextItem) {\n nextItem.children[0].focus();\n }\n\n event.preventDefault();\n break;\n //up\n\n case 38:\n var prevItem = this.findPrevItem(listItem);\n\n if (prevItem) {\n prevItem.children[0].focus();\n }\n\n event.preventDefault();\n break;\n //right\n\n case 39:\n if (item.items) {\n this.setState({\n activeItem: item\n });\n setTimeout(function () {\n listItem.children[1].children[0].children[0].focus();\n }, 50);\n }\n\n event.preventDefault();\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event, listItem);\n }\n }\n }, {\n key: \"onChildItemKeyDown\",\n value: function onChildItemKeyDown(event, childListItem) {\n //left\n if (event.which === 37) {\n this.setState({\n activeItem: null\n });\n childListItem.parentElement.previousElementSibling.focus();\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? this.findNextItem(nextItem) : nextItem;else return null;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? this.findPrevItem(prevItem) : prevItem;else return null;\n }\n }, {\n key: \"onLeafClick\",\n value: function onLeafClick() {\n this.setState({\n activeItem: null\n });\n\n if (this.props.onLeafClick) {\n this.props.onLeafClick();\n }\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: 'separator_' + index,\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n }\n }, {\n key: \"renderSubmenu\",\n value: function renderSubmenu(item) {\n if (item.items) {\n return /*#__PURE__*/React.createElement(TieredMenuSub, {\n model: item.items,\n onLeafClick: this.onLeafClick,\n popup: this.props.popup,\n onKeyDown: this.onChildItemKeyDown,\n parentActive: item === this.state.activeItem\n });\n }\n\n return null;\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem(item, index) {\n var _this3 = this;\n\n var active = this.state.activeItem === item;\n var className = classNames('p-menuitem', {\n 'p-menuitem-active': active\n }, item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var submenuIconClassName = 'p-submenu-icon pi pi-angle-right';\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var submenuIcon = item.items && /*#__PURE__*/React.createElement(\"span\", {\n className: submenuIconClassName\n });\n var submenu = this.renderSubmenu(item);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: linkClassName,\n target: item.target,\n role: \"menuitem\",\n \"aria-haspopup\": item.items != null,\n onClick: function onClick(event) {\n return _this3.onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return _this3.onItemKeyDown(event, item);\n },\n \"aria-disabled\": item.disabled\n }, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this3.onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return _this3.onItemKeyDown(event, item);\n },\n className: linkClassName,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n submenuIconClassName: submenuIconClassName,\n element: content,\n props: this.props,\n active: active\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n className: className,\n style: item.style,\n onMouseEnter: function onMouseEnter(event) {\n return _this3.onItemMouseEnter(event, item);\n },\n role: \"none\"\n }, content, submenu);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index) {\n if (item.separator) return this.renderSeparator(index);else return this.renderMenuitem(item, index);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (item, index) {\n return _this4.renderItem(item, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n var className = classNames({\n 'p-submenu-list': !this.props.root\n });\n var submenu = this.renderMenu();\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: function ref(el) {\n return _this5.element = el;\n },\n className: className,\n role: this.props.root ? 'menubar' : 'menu',\n \"aria-orientation\": \"horizontal\"\n }, submenu);\n }\n }]);\n\n return TieredMenuSub;\n}(Component);\n\n_defineProperty(TieredMenuSub, \"defaultProps\", {\n model: null,\n root: false,\n className: null,\n popup: false,\n onLeafClick: null,\n onKeyDown: null,\n parentActive: false\n});\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TieredMenu = /*#__PURE__*/function (_Component) {\n _inherits(TieredMenu, _Component);\n\n var _super = _createSuper(TieredMenu);\n\n function TieredMenu(props) {\n var _this;\n\n _classCallCheck(this, TieredMenu);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: !props.popup\n };\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.menuRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(TieredMenu, [{\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n if (this.props.popup) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n }\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (this.props.popup) {\n if (this.state.visible) this.hide(event);else this.show(event);\n }\n }\n }, {\n key: \"show\",\n value: function show(event) {\n var _this2 = this;\n\n this.target = event.currentTarget;\n var currentEvent = event;\n this.setState({\n visible: true\n }, function () {\n if (_this2.props.onShow) {\n _this2.props.onShow(currentEvent);\n }\n });\n }\n }, {\n key: \"hide\",\n value: function hide(event) {\n var _this3 = this;\n\n var currentEvent = event;\n this.setState({\n visible: false\n }, function () {\n if (_this3.props.onHide) {\n _this3.props.onHide(currentEvent);\n }\n });\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n if (this.props.autoZIndex) {\n ZIndexUtils.set('menu', this.menuRef.current, this.props.baseZIndex);\n }\n\n DomHandler.absolutePosition(this.menuRef.current, this.target);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.bindDocumentListeners();\n this.bindScrollListener();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n this.target = null;\n this.unbindDocumentListeners();\n this.unbindScrollListener();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.menuRef.current);\n }\n }, {\n key: \"bindDocumentListeners\",\n value: function bindDocumentListeners() {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n }\n }, {\n key: \"unbindDocumentListeners\",\n value: function unbindDocumentListeners() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this4 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this4.props.popup && _this4.state.visible && _this4.menuRef.current && !_this4.menuRef.current.contains(event.target)) {\n _this4.hide(event);\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n var _this5 = this;\n\n if (!this.documentResizeListener) {\n this.documentResizeListener = function (event) {\n if (_this5.state.visible && !DomHandler.isAndroid()) {\n _this5.hide(event);\n }\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this6 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function (event) {\n if (_this6.state.visible) {\n _this6.hide(event);\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentListeners();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n ZIndexUtils.clear(this.menuRef.current);\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-tieredmenu p-component', {\n 'p-tieredmenu-overlay': this.props.popup\n }, this.props.className);\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.menuRef,\n classNames: \"p-connected-overlay\",\n in: this.state.visible,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.menuRef,\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.onPanelClick\n }, /*#__PURE__*/React.createElement(TieredMenuSub, {\n model: this.props.model,\n root: true,\n popup: this.props.popup\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return this.props.popup ? /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n }) : element;\n }\n }]);\n\n return TieredMenu;\n}(Component);\n\n_defineProperty(TieredMenu, \"defaultProps\", {\n id: null,\n model: null,\n popup: false,\n style: null,\n className: null,\n autoZIndex: true,\n baseZIndex: 0,\n appendTo: null,\n transitionOptions: null,\n onShow: null,\n onHide: null\n});\n\nexport { TieredMenu };\n","import React, { Component } from 'react';\nimport { ZIndexUtils, DomHandler, classNames, CSSTransition, Portal, Ripple, ObjectUtils } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar ContextMenuSub = /*#__PURE__*/function (_Component) {\n _inherits(ContextMenuSub, _Component);\n\n var _super = _createSuper(ContextMenuSub);\n\n function ContextMenuSub(props) {\n var _this;\n\n _classCallCheck(this, ContextMenuSub);\n\n _this = _super.call(this, props);\n _this.state = {\n activeItem: null\n };\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.submenuRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(ContextMenuSub, [{\n key: \"onItemMouseEnter\",\n value: function onItemMouseEnter(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n this.setState({\n activeItem: item\n });\n }\n }, {\n key: \"onItemClick\",\n value: function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n if (!item.items) {\n this.props.onLeafClick(event);\n }\n }\n }, {\n key: \"position\",\n value: function position() {\n var parentItem = this.submenuRef.current.parentElement;\n var containerOffset = DomHandler.getOffset(this.submenuRef.current.parentElement);\n var viewport = DomHandler.getViewport();\n var sublistWidth = this.submenuRef.current.offsetParent ? this.submenuRef.current.offsetWidth : DomHandler.getHiddenElementOuterWidth(this.submenuRef.current);\n var itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);\n this.submenuRef.current.style.top = '0px';\n\n if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {\n this.submenuRef.current.style.left = -1 * sublistWidth + 'px';\n } else {\n this.submenuRef.current.style.left = itemOuterWidth + 'px';\n }\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n this.position();\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.props.root || !this.props.resetMenu;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.isActive()) {\n this.position();\n }\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: 'separator_' + index,\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n }\n }, {\n key: \"renderSubmenu\",\n value: function renderSubmenu(item) {\n if (item.items) {\n return /*#__PURE__*/React.createElement(ContextMenuSub, {\n model: item.items,\n resetMenu: item !== this.state.activeItem,\n onLeafClick: this.props.onLeafClick\n });\n }\n\n return null;\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem(item, index) {\n var _this2 = this;\n\n var active = this.state.activeItem === item;\n var className = classNames('p-menuitem', {\n 'p-menuitem-active': active\n }, item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var submenuIconClassName = 'p-submenu-icon pi pi-angle-right';\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var submenuIcon = item.items && /*#__PURE__*/React.createElement(\"span\", {\n className: submenuIconClassName\n });\n var submenu = this.renderSubmenu(item);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: linkClassName,\n target: item.target,\n onClick: function onClick(event) {\n return _this2.onItemClick(event, item, index);\n },\n role: \"menuitem\",\n \"aria-haspopup\": item.items != null,\n \"aria-disabled\": item.disabled\n }, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this2.onItemClick(event, item, index);\n },\n className: linkClassName,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n submenuIconClassName: submenuIconClassName,\n element: content,\n props: this.props,\n active: active\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n role: \"none\",\n className: className,\n style: item.style,\n onMouseEnter: function onMouseEnter(event) {\n return _this2.onItemMouseEnter(event, item);\n }\n }, content, submenu);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index) {\n if (item.separator) return this.renderSeparator(index);else return this.renderMenuitem(item, index);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this3 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (item, index) {\n return _this3.renderItem(item, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames({\n 'p-submenu-list': !this.props.root\n });\n var submenu = this.renderMenu();\n var isActive = this.isActive();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.submenuRef,\n classNames: \"p-contextmenusub\",\n in: isActive,\n timeout: {\n enter: 0,\n exit: 0\n },\n unmountOnExit: true,\n onEnter: this.onEnter\n }, /*#__PURE__*/React.createElement(\"ul\", {\n ref: this.submenuRef,\n className: className\n }, submenu));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.resetMenu === true) {\n return {\n activeItem: null\n };\n }\n\n return null;\n }\n }]);\n\n return ContextMenuSub;\n}(Component);\n\n_defineProperty(ContextMenuSub, \"defaultProps\", {\n model: null,\n root: false,\n className: null,\n resetMenu: false,\n onLeafClick: null\n});\n\nvar ContextMenu = /*#__PURE__*/function (_Component2) {\n _inherits(ContextMenu, _Component2);\n\n var _super2 = _createSuper(ContextMenu);\n\n function ContextMenu(props) {\n var _this4;\n\n _classCallCheck(this, ContextMenu);\n\n _this4 = _super2.call(this, props);\n _this4.state = {\n visible: false,\n reshow: false,\n resetMenu: false\n };\n _this4.onMenuClick = _this4.onMenuClick.bind(_assertThisInitialized(_this4));\n _this4.onLeafClick = _this4.onLeafClick.bind(_assertThisInitialized(_this4));\n _this4.onMenuMouseEnter = _this4.onMenuMouseEnter.bind(_assertThisInitialized(_this4));\n _this4.onEnter = _this4.onEnter.bind(_assertThisInitialized(_this4));\n _this4.onEntered = _this4.onEntered.bind(_assertThisInitialized(_this4));\n _this4.onExit = _this4.onExit.bind(_assertThisInitialized(_this4));\n _this4.onExited = _this4.onExited.bind(_assertThisInitialized(_this4));\n _this4.menuRef = /*#__PURE__*/React.createRef();\n return _this4;\n }\n\n _createClass(ContextMenu, [{\n key: \"onMenuClick\",\n value: function onMenuClick() {\n this.setState({\n resetMenu: false\n });\n }\n }, {\n key: \"onMenuMouseEnter\",\n value: function onMenuMouseEnter() {\n this.setState({\n resetMenu: false\n });\n }\n }, {\n key: \"show\",\n value: function show(event) {\n var _this5 = this;\n\n if (!(event instanceof Event)) {\n event.persist();\n }\n\n event.stopPropagation();\n event.preventDefault();\n this.currentEvent = event;\n\n if (this.state.visible) {\n this.setState({\n reshow: true\n });\n } else {\n this.setState({\n visible: true\n }, function () {\n if (_this5.props.onShow) {\n _this5.props.onShow(_this5.currentEvent);\n }\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this6 = this;\n\n if (this.state.visible && prevState.reshow !== this.state.reshow) {\n var event = this.currentEvent;\n this.setState({\n visible: false,\n reshow: false,\n rePosition: false,\n resetMenu: true\n }, function () {\n return _this6.show(event);\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(event) {\n var _this7 = this;\n\n if (!(event instanceof Event)) {\n event.persist();\n }\n\n this.currentEvent = event;\n this.setState({\n visible: false,\n reshow: false\n }, function () {\n if (_this7.props.onHide) {\n _this7.props.onHide(_this7.currentEvent);\n }\n });\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n if (this.props.autoZIndex) {\n ZIndexUtils.set('menu', this.menuRef.current, this.props.baseZIndex);\n }\n\n this.position(this.currentEvent);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.bindDocumentListeners();\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n this.currentEvent = null;\n this.unbindDocumentListeners();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.menuRef.current);\n }\n }, {\n key: \"position\",\n value: function position(event) {\n if (event) {\n var left = event.pageX + 1;\n var top = event.pageY + 1;\n var width = this.menuRef.current.offsetParent ? this.menuRef.current.offsetWidth : DomHandler.getHiddenElementOuterWidth(this.menuRef.current);\n var height = this.menuRef.current.offsetParent ? this.menuRef.current.offsetHeight : DomHandler.getHiddenElementOuterHeight(this.menuRef.current);\n var viewport = DomHandler.getViewport(); //flip\n\n if (left + width - document.body.scrollLeft > viewport.width) {\n left -= width;\n } //flip\n\n\n if (top + height - document.body.scrollTop > viewport.height) {\n top -= height;\n } //fit\n\n\n if (left < document.body.scrollLeft) {\n left = document.body.scrollLeft;\n } //fit\n\n\n if (top < document.body.scrollTop) {\n top = document.body.scrollTop;\n }\n\n this.menuRef.current.style.left = left + 'px';\n this.menuRef.current.style.top = top + 'px';\n }\n }\n }, {\n key: \"onLeafClick\",\n value: function onLeafClick(event) {\n this.setState({\n resetMenu: true\n });\n this.hide(event);\n event.stopPropagation();\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.menuRef && this.menuRef.current && !(this.menuRef.current.isSameNode(event.target) || this.menuRef.current.contains(event.target));\n }\n }, {\n key: \"bindDocumentListeners\",\n value: function bindDocumentListeners() {\n this.bindDocumentResizeListener();\n this.bindDocumentClickListener();\n }\n }, {\n key: \"unbindDocumentListeners\",\n value: function unbindDocumentListeners() {\n this.unbindDocumentResizeListener();\n this.unbindDocumentClickListener();\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this8 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this8.isOutsideClicked(event) && event.button !== 2) {\n _this8.hide(event);\n\n _this8.setState({\n resetMenu: true\n });\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"bindDocumentContextMenuListener\",\n value: function bindDocumentContextMenuListener() {\n var _this9 = this;\n\n if (!this.documentContextMenuListener) {\n this.documentContextMenuListener = function (event) {\n _this9.show(event);\n };\n\n document.addEventListener('contextmenu', this.documentContextMenuListener);\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n var _this10 = this;\n\n if (!this.documentResizeListener) {\n this.documentResizeListener = function (event) {\n if (_this10.state.visible && !DomHandler.isAndroid()) {\n _this10.hide(event);\n }\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"unbindDocumentContextMenuListener\",\n value: function unbindDocumentContextMenuListener() {\n if (this.documentContextMenuListener) {\n document.removeEventListener('contextmenu', this.documentContextMenuListener);\n this.documentContextMenuListener = null;\n }\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.global) {\n this.bindDocumentContextMenuListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentListeners();\n this.unbindDocumentContextMenuListener();\n ZIndexUtils.clear(this.menuRef.current);\n }\n }, {\n key: \"renderContextMenu\",\n value: function renderContextMenu() {\n var className = classNames('p-contextmenu p-component', this.props.className);\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.menuRef,\n classNames: \"p-contextmenu\",\n in: this.state.visible,\n timeout: {\n enter: 250,\n exit: 0\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.menuRef,\n id: this.props.id,\n className: className,\n style: this.props.style,\n onClick: this.onMenuClick,\n onMouseEnter: this.onMenuMouseEnter\n }, /*#__PURE__*/React.createElement(ContextMenuSub, {\n model: this.props.model,\n root: true,\n resetMenu: this.state.resetMenu,\n onLeafClick: this.onLeafClick\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderContextMenu();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return ContextMenu;\n}(Component);\n\n_defineProperty(ContextMenu, \"defaultProps\", {\n id: null,\n model: null,\n style: null,\n className: null,\n global: false,\n autoZIndex: true,\n baseZIndex: 0,\n appendTo: null,\n transitionOptions: null,\n onShow: null,\n onHide: null\n});\n\nexport { ContextMenu };\n","import React, { Component } from 'react';\nimport { UniqueComponentId, classNames, ObjectUtils, CSSTransition } from 'primereact/core';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar PanelMenuSub = /*#__PURE__*/function (_Component) {\n _inherits(PanelMenuSub, _Component);\n\n var _super = _createSuper(PanelMenuSub);\n\n function PanelMenuSub(props) {\n var _this;\n\n _classCallCheck(this, PanelMenuSub);\n\n _this = _super.call(this, props);\n _this.state = {\n activeItem: _this.findActiveItem()\n };\n return _this;\n }\n\n _createClass(PanelMenuSub, [{\n key: \"onItemClick\",\n value: function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n var activeItem = this.state.activeItem;\n var active = this.isItemActive(item);\n\n if (active) {\n item.expanded = false;\n this.setState({\n activeItem: this.props.multiple ? activeItem.filter(function (a_item) {\n return a_item !== item;\n }) : null\n });\n } else {\n if (!this.props.multiple && activeItem) {\n activeItem.expanded = false;\n }\n\n item.expanded = true;\n this.setState({\n activeItem: this.props.multiple ? [].concat(_toConsumableArray(activeItem || []), [item]) : item\n });\n }\n }\n }, {\n key: \"findActiveItem\",\n value: function findActiveItem() {\n if (this.props.model) {\n if (this.props.multiple) {\n return this.props.model.filter(function (item) {\n return item.expanded;\n });\n } else {\n var activeItem = null;\n this.props.model.forEach(function (item) {\n if (item.expanded) {\n if (!activeItem) activeItem = item;else item.expanded = false;\n }\n });\n return activeItem;\n }\n }\n\n return null;\n }\n }, {\n key: \"isItemActive\",\n value: function isItemActive(item) {\n return this.state.activeItem && (this.props.multiple ? this.state.activeItem.indexOf(item) > -1 : this.state.activeItem === item);\n }\n }, {\n key: \"renderSeparator\",\n value: function renderSeparator(index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: 'separator_' + index,\n className: \"p-menu-separator\"\n });\n }\n }, {\n key: \"renderSubmenu\",\n value: function renderSubmenu(item, active) {\n var submenuWrapperClassName = classNames('p-toggleable-content', {\n 'p-toggleable-content-collapsed': !active\n });\n var submenuContentRef = /*#__PURE__*/React.createRef();\n\n if (item.items) {\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: submenuContentRef,\n classNames: \"p-toggleable-content\",\n timeout: {\n enter: 1000,\n exit: 450\n },\n in: active,\n unmountOnExit: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: submenuContentRef,\n className: submenuWrapperClassName\n }, /*#__PURE__*/React.createElement(PanelMenuSub, {\n model: item.items,\n multiple: this.props.multiple\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderMenuitem\",\n value: function renderMenuitem(item, index) {\n var _this2 = this;\n\n var active = this.isItemActive(item);\n var className = classNames('p-menuitem', item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var submenuIconClassName = classNames('p-panelmenu-icon pi pi-fw', {\n 'pi-angle-right': !active,\n 'pi-angle-down': active\n });\n var icon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var submenuIcon = item.items && /*#__PURE__*/React.createElement(\"span\", {\n className: submenuIconClassName\n });\n var submenu = this.renderSubmenu(item, active);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: linkClassName,\n target: item.target,\n onClick: function onClick(event) {\n return _this2.onItemClick(event, item, index);\n },\n role: \"menuitem\",\n \"aria-disabled\": item.disabled\n }, submenuIcon, icon, label);\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this2.onItemClick(event, item, index);\n },\n className: linkClassName,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n submenuIconClassName: submenuIconClassName,\n element: content,\n props: this.props,\n leaf: !item.items,\n active: active\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.label + '_' + index,\n className: className,\n style: item.style,\n role: \"none\"\n }, content, submenu);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item, index) {\n if (item.separator) return this.renderSeparator(index);else return this.renderMenuitem(item, index);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this3 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (item, index) {\n return _this3.renderItem(item, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-submenu-list', this.props.className);\n var menu = this.renderMenu();\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: className,\n role: \"tree\"\n }, menu);\n }\n }]);\n\n return PanelMenuSub;\n}(Component);\n\n_defineProperty(PanelMenuSub, \"defaultProps\", {\n model: null,\n multiple: false\n});\n\nvar PanelMenu = /*#__PURE__*/function (_Component2) {\n _inherits(PanelMenu, _Component2);\n\n var _super2 = _createSuper(PanelMenu);\n\n function PanelMenu(props) {\n var _this4;\n\n _classCallCheck(this, PanelMenu);\n\n _this4 = _super2.call(this, props);\n _this4.state = {\n id: props.id,\n activeItem: _this4.findActiveItem()\n };\n return _this4;\n }\n\n _createClass(PanelMenu, [{\n key: \"onItemClick\",\n value: function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!item.url) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n\n var activeItem = this.state.activeItem;\n var active = this.isItemActive(item);\n\n if (active) {\n item.expanded = false;\n this.setState({\n activeItem: this.props.multiple ? activeItem.filter(function (a_item) {\n return a_item !== item;\n }) : null\n });\n } else {\n if (!this.props.multiple && activeItem) {\n activeItem.expanded = false;\n }\n\n item.expanded = true;\n this.setState({\n activeItem: this.props.multiple ? [].concat(_toConsumableArray(activeItem || []), [item]) : item\n });\n }\n }\n }, {\n key: \"findActiveItem\",\n value: function findActiveItem() {\n if (this.props.model) {\n if (this.props.multiple) {\n return this.props.model.filter(function (item) {\n return item.expanded;\n });\n } else {\n var activeItem = null;\n this.props.model.forEach(function (item) {\n if (item.expanded) {\n if (!activeItem) activeItem = item;else item.expanded = false;\n }\n });\n return activeItem;\n }\n }\n\n return null;\n }\n }, {\n key: \"isItemActive\",\n value: function isItemActive(item) {\n return this.state.activeItem && (this.props.multiple ? this.state.activeItem.indexOf(item) > -1 : this.state.activeItem === item);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.state.id) {\n this.setState({\n id: UniqueComponentId()\n });\n }\n }\n }, {\n key: \"renderPanel\",\n value: function renderPanel(item, index) {\n var _this5 = this;\n\n var active = this.isItemActive(item);\n var className = classNames('p-panelmenu-panel', item.className);\n var headerClassName = classNames('p-component p-panelmenu-header', {\n 'p-highlight': active,\n 'p-disabled': item.disabled\n });\n var submenuIconClassName = classNames('p-panelmenu-icon pi', {\n 'pi-chevron-right': !active,\n ' pi-chevron-down': active\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var submenuIcon = item.items && /*#__PURE__*/React.createElement(\"span\", {\n className: submenuIconClassName\n });\n var itemIcon = item.icon && /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var contentWrapperClassName = classNames('p-toggleable-content', {\n 'p-toggleable-content-collapsed': !active\n });\n var menuContentRef = /*#__PURE__*/React.createRef();\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n className: \"p-panelmenu-header-link\",\n onClick: function onClick(e) {\n return _this5.onItemClick(e, item);\n },\n \"aria-expanded\": active,\n id: this.state.id + '_header',\n \"aria-controls\": this.state.id + 'content',\n \"aria-disabled\": item.disabled\n }, submenuIcon, itemIcon, label);\n\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return _this5.onItemClick(event, item);\n },\n className: 'p-panelmenu-header-link',\n labelClassName: 'p-menuitem-text',\n submenuIconClassName: submenuIconClassName,\n iconClassName: iconClassName,\n element: content,\n props: this.props,\n leaf: !item.items,\n active: active\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n key: item.label + '_' + index,\n className: className,\n style: item.style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: headerClassName,\n style: item.style\n }, content), /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: menuContentRef,\n classNames: \"p-toggleable-content\",\n timeout: {\n enter: 1000,\n exit: 450\n },\n in: active,\n unmountOnExit: true,\n options: this.props.transitionOptions\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: menuContentRef,\n className: contentWrapperClassName,\n role: \"region\",\n id: this.state.id + '_content',\n \"aria-labelledby\": this.state.id + '_header'\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-panelmenu-content\"\n }, /*#__PURE__*/React.createElement(PanelMenuSub, {\n model: item.items,\n className: \"p-panelmenu-root-submenu\",\n multiple: this.props.multiple\n })))));\n }\n }, {\n key: \"renderPanels\",\n value: function renderPanels() {\n var _this6 = this;\n\n if (this.props.model) {\n return this.props.model.map(function (item, index) {\n return _this6.renderPanel(item, index);\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-panelmenu p-component', this.props.className);\n var panels = this.renderPanels();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, panels);\n }\n }]);\n\n return PanelMenu;\n}(Component);\n\n_defineProperty(PanelMenu, \"defaultProps\", {\n id: null,\n model: null,\n style: null,\n className: null,\n multiple: false,\n transitionOptions: null\n});\n\nexport { PanelMenu };\n","import React, { Component } from 'react';\nimport { classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar AvatarGroup = /*#__PURE__*/function (_Component) {\n _inherits(AvatarGroup, _Component);\n\n var _super = _createSuper(AvatarGroup);\n\n function AvatarGroup() {\n _classCallCheck(this, AvatarGroup);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(AvatarGroup, [{\n key: \"render\",\n value: function render() {\n var containerClassName = classNames('p-avatar-group p-component', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n style: this.props.style\n }, this.props.children);\n }\n }]);\n\n return AvatarGroup;\n}(Component);\n\n_defineProperty(AvatarGroup, \"defaultProps\", {\n style: null,\n className: null\n});\n\nexport { AvatarGroup };\n","import React, { Component } from 'react';\nimport { DomHandler, classNames } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ScrollPanel = /*#__PURE__*/function (_Component) {\n _inherits(ScrollPanel, _Component);\n\n var _super = _createSuper(ScrollPanel);\n\n function ScrollPanel(props) {\n var _this;\n\n _classCallCheck(this, ScrollPanel);\n\n _this = _super.call(this, props);\n _this.moveBar = _this.moveBar.bind(_assertThisInitialized(_this));\n _this.onXBarMouseDown = _this.onXBarMouseDown.bind(_assertThisInitialized(_this));\n _this.onYBarMouseDown = _this.onYBarMouseDown.bind(_assertThisInitialized(_this));\n _this.onDocumentMouseMove = _this.onDocumentMouseMove.bind(_assertThisInitialized(_this));\n _this.onDocumentMouseUp = _this.onDocumentMouseUp.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ScrollPanel, [{\n key: \"calculateContainerHeight\",\n value: function calculateContainerHeight() {\n var containerStyles = getComputedStyle(this.container),\n xBarStyles = getComputedStyle(this.xBar),\n pureContainerHeight = DomHandler.getHeight(this.container) - parseInt(xBarStyles['height'], 10);\n\n if (containerStyles['max-height'] !== \"none\" && pureContainerHeight === 0) {\n if (this.content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n this.container.style.height = containerStyles['max-height'];\n } else {\n this.container.style.height = this.content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + \"px\";\n }\n }\n }\n }, {\n key: \"moveBar\",\n value: function moveBar() {\n var _this2 = this;\n\n /* horizontal scroll */\n var totalWidth = this.content.scrollWidth;\n var ownWidth = this.content.clientWidth;\n var bottom = (this.container.clientHeight - this.xBar.clientHeight) * -1;\n this.scrollXRatio = ownWidth / totalWidth;\n /* vertical scroll */\n\n var totalHeight = this.content.scrollHeight;\n var ownHeight = this.content.clientHeight;\n var right = (this.container.clientWidth - this.yBar.clientWidth) * -1;\n this.scrollYRatio = ownHeight / totalHeight;\n this.frame = this.requestAnimationFrame(function () {\n if (_this2.scrollXRatio >= 1) {\n DomHandler.addClass(_this2.xBar, 'p-scrollpanel-hidden');\n } else {\n DomHandler.removeClass(_this2.xBar, 'p-scrollpanel-hidden');\n _this2.xBar.style.cssText = 'width:' + Math.max(_this2.scrollXRatio * 100, 10) + '%; left:' + _this2.content.scrollLeft / totalWidth * 100 + '%;bottom:' + bottom + 'px;';\n }\n\n if (_this2.scrollYRatio >= 1) {\n DomHandler.addClass(_this2.yBar, 'p-scrollpanel-hidden');\n } else {\n DomHandler.removeClass(_this2.yBar, 'p-scrollpanel-hidden');\n _this2.yBar.style.cssText = 'height:' + Math.max(_this2.scrollYRatio * 100, 10) + '%; top: calc(' + _this2.content.scrollTop / totalHeight * 100 + '% - ' + _this2.xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n });\n }\n }, {\n key: \"onYBarMouseDown\",\n value: function onYBarMouseDown(e) {\n this.isYBarClicked = true;\n this.lastPageY = e.pageY;\n DomHandler.addClass(this.yBar, 'p-scrollpanel-grabbed');\n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n }, {\n key: \"onXBarMouseDown\",\n value: function onXBarMouseDown(e) {\n this.isXBarClicked = true;\n this.lastPageX = e.pageX;\n DomHandler.addClass(this.xBar, 'p-scrollpanel-grabbed');\n DomHandler.addClass(document.body, 'p-scrollpanel-grabbed');\n document.addEventListener('mousemove', this.onDocumentMouseMove);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n e.preventDefault();\n }\n }, {\n key: \"onDocumentMouseMove\",\n value: function onDocumentMouseMove(e) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n } else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n } else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n }\n }, {\n key: \"onMouseMoveForXBar\",\n value: function onMouseMoveForXBar(e) {\n var _this3 = this;\n\n var deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n this.frame = this.requestAnimationFrame(function () {\n _this3.content.scrollLeft += deltaX / _this3.scrollXRatio;\n });\n }\n }, {\n key: \"onMouseMoveForYBar\",\n value: function onMouseMoveForYBar(e) {\n var _this4 = this;\n\n var deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n this.frame = this.requestAnimationFrame(function () {\n _this4.content.scrollTop += deltaY / _this4.scrollYRatio;\n });\n }\n }, {\n key: \"onDocumentMouseUp\",\n value: function onDocumentMouseUp(e) {\n DomHandler.removeClass(this.yBar, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(this.xBar, 'p-scrollpanel-grabbed');\n DomHandler.removeClass(document.body, 'p-scrollpanel-grabbed');\n document.removeEventListener('mousemove', this.onDocumentMouseMove);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n }\n }, {\n key: \"requestAnimationFrame\",\n value: function requestAnimationFrame(f) {\n var frame = window.requestAnimationFrame || this.timeoutFrame;\n return frame(f);\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.moveBar();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.moveBar();\n this.moveBar = this.moveBar.bind(this);\n window.addEventListener('resize', this.moveBar);\n this.calculateContainerHeight();\n this.initialized = true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.initialized) {\n window.removeEventListener('resize', this.moveBar);\n }\n\n if (this.frame) {\n window.cancelAnimationFrame(this.frame);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n var className = classNames('p-scrollpanel p-component', this.props.className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.container = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-scrollpanel-wrapper\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.content = el;\n },\n className: \"p-scrollpanel-content\",\n onScroll: this.moveBar,\n onMouseEnter: this.moveBar\n }, this.props.children)), /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.xBar = el;\n },\n className: \"p-scrollpanel-bar p-scrollpanel-bar-x\",\n onMouseDown: this.onXBarMouseDown\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this5.yBar = el;\n },\n className: \"p-scrollpanel-bar p-scrollpanel-bar-y\",\n onMouseDown: this.onYBarMouseDown\n }));\n }\n }]);\n\n return ScrollPanel;\n}(Component);\n\n_defineProperty(ScrollPanel, \"defaultProps\", {\n id: null,\n style: null,\n className: null\n});\n\nexport { ScrollPanel };\n","import React, { Component } from 'react';\nimport { DomHandler, ZIndexUtils, classNames, CSSTransition, Ripple } from 'primereact/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ScrollTop = /*#__PURE__*/function (_Component) {\n _inherits(ScrollTop, _Component);\n\n var _super = _createSuper(ScrollTop);\n\n function ScrollTop(props) {\n var _this;\n\n _classCallCheck(this, ScrollTop);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n _this.scrollElementRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n _createClass(ScrollTop, [{\n key: \"onClick\",\n value: function onClick() {\n var scrollElement = this.props.target === 'window' ? window : this.helper.parentElement;\n scrollElement.scroll({\n top: 0,\n behavior: this.props.behavior\n });\n }\n }, {\n key: \"checkVisibility\",\n value: function checkVisibility(scrollY) {\n this.setState({\n visible: scrollY > this.props.threshold\n });\n }\n }, {\n key: \"bindParentScrollListener\",\n value: function bindParentScrollListener() {\n var _this2 = this;\n\n this.scrollListener = function () {\n _this2.checkVisibility(_this2.helper.parentElement.scrollTop);\n };\n\n this.helper.parentElement.addEventListener('scroll', this.scrollListener);\n }\n }, {\n key: \"bindDocumentScrollListener\",\n value: function bindDocumentScrollListener() {\n var _this3 = this;\n\n this.scrollListener = function () {\n _this3.checkVisibility(DomHandler.getWindowScrollTop());\n };\n\n window.addEventListener('scroll', this.scrollListener);\n }\n }, {\n key: \"unbindParentScrollListener\",\n value: function unbindParentScrollListener() {\n if (this.scrollListener) {\n this.helper.parentElement.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n }\n }, {\n key: \"unbindDocumentScrollListener\",\n value: function unbindDocumentScrollListener() {\n if (this.scrollListener) {\n window.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n ZIndexUtils.set('overlay', this.scrollElementRef.current);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n ZIndexUtils.clear(this.scrollElementRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.target === 'window') this.bindDocumentScrollListener();else if (this.props.target === 'parent') this.bindParentScrollListener();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.target === 'window') this.unbindDocumentScrollListener();else if (this.props.target === 'parent') this.unbindParentScrollListener();\n ZIndexUtils.clear(this.scrollElementRef.current);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var className = classNames('p-scrolltop p-link p-component', {\n 'p-scrolltop-sticky': this.props.target !== 'window'\n }, this.props.className);\n var iconClassName = classNames('p-scrolltop-icon', this.props.icon);\n var isTargetParent = this.props.target === 'parent';\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.scrollElementRef,\n classNames: \"p-scrolltop\",\n in: this.state.visible,\n timeout: {\n enter: 150,\n exit: 150\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onExited: this.onExited\n }, /*#__PURE__*/React.createElement(\"button\", {\n ref: this.scrollElementRef,\n type: \"button\",\n className: className,\n style: this.props.style,\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null))), isTargetParent && /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this4.helper = el;\n },\n className: \"p-scrolltop-helper\"\n }));\n }\n }]);\n\n return ScrollTop;\n}(Component);\n\n_defineProperty(ScrollTop, \"defaultProps\", {\n target: 'window',\n threshold: 400,\n icon: 'pi pi-chevron-up',\n behavior: 'smooth',\n className: null,\n style: null,\n transitionOptions: null,\n onShow: null,\n onHide: null\n});\n\nexport { ScrollTop };\n","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n self.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// Make sure we're in a Browser-like environment before importing polyfills\n// This prevents `fetch()` from being imported in a Node test environment\nif (typeof window !== 'undefined') {\n // fetch() polyfill for making API calls.\n require('whatwg-fetch');\n}\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// Support for...of (a commonly used syntax feature that requires Symbols)\nrequire('core-js/features/symbol');\n// Support iterable spread (...Set, ...Map)\nrequire('core-js/features/array/from');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n var valueOf = $Symbol[PROTOTYPE].valueOf;\n redefine($Symbol[PROTOTYPE], TO_PRIMITIVE, function () {\n return valueOf.apply(this, arguments);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","module.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var nativeSymbol = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = nativeSymbol ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = innerResult.call(iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(iteratorMethod.call(argument));\n throw TypeError(String(argument) + ' is not iterable');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (argument) {\n if (typeof argument === 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('dispose');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._Y = null;\n Promise._Z = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._Y = function (promise) {\n if (\n promise._V === 2 && // IS REJECTED\n rejections[promise._1]\n ) {\n if (rejections[promise._1].logged) {\n onHandled(promise._1);\n } else {\n clearTimeout(rejections[promise._1].timeout);\n }\n delete rejections[promise._1];\n }\n };\n Promise._Z = function (promise, err) {\n if (promise._U === 0) { // not yet handled\n promise._1 = id++;\n rejections[promise._1] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._1),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._0);\n p._V = 1;\n p._W = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._V === 3) {\n val = val._W;\n }\n if (val._V === 1) return res(i, val._W);\n if (val._V === 2) reject(val._W);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n","var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","Prism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\tpunctuation: /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'function': /[a-z0-9_]+(?=\\()/i,\n\t'number': /\\b-?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)\\b/i,\n\t'operator': /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n","Prism.languages.markup = {\n\t'comment': //,\n\t'prolog': /<\\?[\\s\\S]+?\\?>/,\n\t'doctype': //i,\n\t'cdata': //i,\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t/^=/,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^|[^\\\\])[\"']/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': /&#?[\\da-z]{1,8};/i\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function(env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nPrism.languages.xml = Prism.languages.markup;\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n","(function(Prism) {\n\nvar javascript = Prism.util.clone(Prism.languages.javascript);\n\nPrism.languages.jsx = Prism.languages.extend('markup', javascript);\nPrism.languages.jsx.tag.pattern= /<\\/?[\\w.:-]+\\s*(?:\\s+(?:[\\w.:-]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+|(?:\\{\\{?[^}]*\\}?\\})))?|\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}))*\\s*\\/?>/i;\n\nPrism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\\{)(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">]+)/i;\n\nPrism.languages.insertBefore('inside', 'attr-name', {\n\t'spread': {\n\t\tpattern: /\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}/,\n\t\tinside: {\n\t\t\t'punctuation': /\\.{3}|[{}.]/,\n\t\t\t'attr-value': /\\w+/\n\t\t}\n\t}\n}, Prism.languages.jsx.tag);\n\nvar jsxExpression = Prism.util.clone(Prism.languages.jsx);\n\ndelete jsxExpression.punctuation;\n\njsxExpression = Prism.languages.insertBefore('jsx', 'operator', {\n 'punctuation': /=(?={)|[{}[\\];(),.:]/\n}, { jsx: jsxExpression });\n\nPrism.languages.insertBefore('inside', 'attr-value',{\n\t'script': {\n\t\t// Allow for one level of nesting\n\t\tpattern: /=(\\{(?:\\{[^}]*\\}|[^}])+\\})/i,\n\t\tinside: jsxExpression,\n\t\t'alias': 'language-javascript'\n\t}\n}, Prism.languages.jsx.tag);\n\n}(Prism));\n","Prism.languages.javascript = Prism.languages.extend('clike', {\n\t'keyword': /\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,\n\t'number': /\\b-?(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?|NaN|Infinity)\\b/,\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*\\()/i,\n\t'operator': /-[-=]?|\\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/\n});\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: /(^|[^/])\\/(?!\\/)(\\[[^\\]\\r\\n]+]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})]))/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,\n\t\talias: 'function'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'script': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/script>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript,\n\t\t\talias: 'language-javascript',\n\t\t\tgreedy: true\n\t\t}\n\t});\n}\n\nPrism.languages.js = Prism.languages.javascript;\n","Prism.languages.css = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t'atrule': {\n\t\tpattern: /@[\\w-]+?.*?(?:;|(?=\\s*\\{))/i,\n\t\tinside: {\n\t\t\t'rule': /@[\\w-]+/\n\t\t\t// See rest below\n\t\t}\n\t},\n\t'url': /url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,\n\t'selector': /[^{}\\s][^{};]*?(?=\\s*\\{)/,\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'property': /[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,\n\t'important': /\\B!important\\b/i,\n\t'function': /[-a-z0-9]+(?=\\()/i,\n\t'punctuation': /[(){};:]/\n};\n\nPrism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);\n\nif (Prism.languages.markup) {\n\tPrism.languages.insertBefore('markup', 'tag', {\n\t\t'style': {\n\t\t\tpattern: /()[\\s\\S]*?(?=<\\/style>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.css,\n\t\t\talias: 'language-css',\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('inside', 'attr-value', {\n\t\t'style-attr': {\n\t\t\tpattern: /\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,\n\t\t\tinside: {\n\t\t\t\t'attr-name': {\n\t\t\t\t\tpattern: /^\\s*style/i,\n\t\t\t\t\tinside: Prism.languages.markup.tag.inside\n\t\t\t\t},\n\t\t\t\t'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /.+/i,\n\t\t\t\t\tinside: Prism.languages.css\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'language-css'\n\t\t}\n\t}, Prism.languages.markup.tag);\n}","Prism.languages.scss = Prism.languages.extend('css', {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n\t\tlookbehind: true\n\t},\n\t'atrule': {\n\t\tpattern: /@[\\w-]+(?:\\([^()]+\\)|[^(])*?(?=\\s+[{;])/,\n\t\tinside: {\n\t\t\t'rule': /@[\\w-]+/\n\t\t\t// See rest below\n\t\t}\n\t},\n\t// url, compassified\n\t'url': /(?:[-a-z]+-)*url(?=\\()/i,\n\t// CSS selector regex is not appropriate for Sass\n\t// since there can be lot more things (var, @ directive, nesting..)\n\t// a selector must start at the end of a property or after a brace (end of other rules or nesting)\n\t// it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n\t// the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n\t// can \"pass\" as a selector- e.g: proper#{$erty})\n\t// this one was hard to do, so please be careful if you edit this one :)\n\t'selector': {\n\t\t// Initial look-ahead is used to prevent matching of blank selectors\n\t\tpattern: /(?=\\S)[^@;{}()]?(?:[^@;{}()]|&|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}]+[:{][^}]+))/m,\n\t\tinside: {\n\t\t\t'parent': {\n\t\t\t\tpattern: /&/,\n\t\t\t\talias: 'important'\n\t\t\t},\n\t\t\t'placeholder': /%[-\\w]+/,\n\t\t\t'variable': /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n\t\t}\n\t}\n});\n\nPrism.languages.insertBefore('scss', 'atrule', {\n\t'keyword': [\n\t\t/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,\n\t\t{\n\t\t\tpattern: /( +)(?:from|through)(?= )/,\n\t\t\tlookbehind: true\n\t\t}\n\t]\n});\n\nPrism.languages.scss.property = {\n\tpattern: /(?:[\\w-]|\\$[-\\w]+|#\\{\\$[-\\w]+\\})+(?=\\s*:)/i,\n\tinside: {\n\t\t'variable': /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n\t}\n};\n\nPrism.languages.insertBefore('scss', 'important', {\n\t// var and interpolated vars\n\t'variable': /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n});\n\nPrism.languages.insertBefore('scss', 'function', {\n\t'placeholder': {\n\t\tpattern: /%[-\\w]+/,\n\t\talias: 'selector'\n\t},\n\t'statement': {\n\t\tpattern: /\\B!(?:default|optional)\\b/i,\n\t\talias: 'keyword'\n\t},\n\t'boolean': /\\b(?:true|false)\\b/,\n\t'null': /\\bnull\\b/,\n\t'operator': {\n\t\tpattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|or|not)(?=\\s)/,\n\t\tlookbehind: true\n\t}\n});\n\nPrism.languages.scss['atrule'].inside.rest = Prism.util.clone(Prism.languages.scss);","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}"],"sourceRoot":""}